zevairouter 1.0.190 → 1.0.192
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/cli/app/.next-cli-build/BUILD_ID +1 -1
- package/cli/app/.next-cli-build/app-path-routes-manifest.json +9 -9
- package/cli/app/.next-cli-build/build-manifest.json +2 -2
- package/cli/app/.next-cli-build/prerender-manifest.json +3 -3
- package/cli/app/.next-cli-build/required-server-files.json +2 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +3 -3
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js +3 -3
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +3 -3
- package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/metrics/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -51
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +1 -51
- package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -51
- package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +3 -3
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -51
- package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -51
- package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -51
- package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -51
- package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/callback/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/callback.html +1 -1
- package/cli/app/.next-cli-build/server/app/callback.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/index.html +1 -1
- package/cli/app/.next-cli-build/server/app/index.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/landing/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/landing.html +1 -1
- package/cli/app/.next-cli-build/server/app/landing.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/login/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/login.html +1 -1
- package/cli/app/.next-cli-build/server/app/login.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app-paths-manifest.json +9 -9
- package/cli/app/.next-cli-build/server/chunks/1051.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/1131.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/1350.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/1998.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/2760.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/3675.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/3696.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/3949.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/3999.js +24 -0
- package/cli/app/.next-cli-build/server/chunks/4404.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/4566.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/4621.js +45 -0
- package/cli/app/.next-cli-build/server/chunks/4720.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/{8242.js → 4721.js} +2 -2
- package/cli/app/.next-cli-build/server/chunks/4803.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/4827.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/5295.js +51 -0
- package/cli/app/.next-cli-build/server/chunks/5307.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/{318.js → 5330.js} +3 -3
- package/cli/app/.next-cli-build/server/chunks/5436.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/5470.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/5800.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/5846.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/6103.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/6252.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/6492.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/7239.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/7250.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/{3155.js → 7276.js} +2 -52
- package/cli/app/.next-cli-build/server/chunks/7319.js +471 -0
- package/cli/app/.next-cli-build/server/chunks/7464.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/7688.js +4 -0
- package/cli/app/.next-cli-build/server/chunks/7726.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/8062.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/8255.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/8274.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/8469.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/8666.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/8895.js +6 -6
- package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/9048.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/9489.js +1 -1
- package/cli/app/.next-cli-build/server/instrumentation.js +1 -0
- package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/pages/404.html +1 -1
- package/cli/app/.next-cli-build/server/pages/500.html +1 -1
- package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/cli/app/.next-cli-build/static/chunks/620-249977f9b2e0b7fa.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-e5efdecc55c42601.js → page-5482865f680033fb.js} +2 -2
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-2b460c956a7f0a30.js +1 -0
- package/cli/app/.next-cli-build/static/css/da8bb26878f01d92.css +1 -0
- package/cli/app/CHANGELOG.md +11 -0
- package/cli/app/package.json +1 -1
- package/cli/package.json +1 -1
- package/package.json +1 -1
- package/cli/app/.next-cli-build/server/chunks/1188.js +0 -1
- package/cli/app/.next-cli-build/server/chunks/1818.js +0 -1
- package/cli/app/.next-cli-build/server/chunks/2693.js +0 -1
- package/cli/app/.next-cli-build/server/chunks/6457.js +0 -4
- package/cli/app/.next-cli-build/server/chunks/8590.js +0 -1
- package/cli/app/.next-cli-build/server/chunks/877.js +0 -24
- package/cli/app/.next-cli-build/server/chunks/9071.js +0 -1
- package/cli/app/.next-cli-build/server/chunks/9621.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/620-7016f473d3f50f28.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-465deae43bb4635c.js +0 -1
- package/cli/app/.next-cli-build/static/css/934d7e4bee6b9fa0.css +0 -1
- /package/cli/app/.next-cli-build/static/{oU2ATjp7Ko7FfQ5eQHM8x → EEihXestozORJ8znRIdjp}/_buildManifest.js +0 -0
- /package/cli/app/.next-cli-build/static/{oU2ATjp7Ko7FfQ5eQHM8x → EEihXestozORJ8znRIdjp}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
exports.id=4621,exports.ids=[4621],exports.modules={4457:(a,b,c)=>{let d=c(85510),e={};for(let a of Object.keys(d))e[d[a]]=a;let f={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(let b of(a.exports=f,Object.keys(f))){if(!("channels"in f[b]))throw Error("missing channels property: "+b);if(!("labels"in f[b]))throw Error("missing channel labels property: "+b);if(f[b].labels.length!==f[b].channels)throw Error("channel and label counts mismatch: "+b);let{channels:a,labels:c}=f[b];delete f[b].channels,delete f[b].labels,Object.defineProperty(f[b],"channels",{value:a}),Object.defineProperty(f[b],"labels",{value:c})}f.rgb.hsl=function(a){let b,c=a[0]/255,d=a[1]/255,e=a[2]/255,f=Math.min(c,d,e),g=Math.max(c,d,e),h=g-f;g===f?b=0:c===g?b=(d-e)/h:d===g?b=2+(e-c)/h:e===g&&(b=4+(c-d)/h),(b=Math.min(60*b,360))<0&&(b+=360);let i=(f+g)/2;return[b,100*(g===f?0:i<=.5?h/(g+f):h/(2-g-f)),100*i]},f.rgb.hsv=function(a){let b,c,d,e,f,g=a[0]/255,h=a[1]/255,i=a[2]/255,j=Math.max(g,h,i),k=j-Math.min(g,h,i),l=function(a){return(j-a)/6/k+.5};return 0===k?(e=0,f=0):(f=k/j,b=l(g),c=l(h),d=l(i),g===j?e=d-c:h===j?e=1/3+b-d:i===j&&(e=2/3+c-b),e<0?e+=1:e>1&&(e-=1)),[360*e,100*f,100*j]},f.rgb.hwb=function(a){let b=a[0],c=a[1],d=a[2];return[f.rgb.hsl(a)[0],1/255*Math.min(b,Math.min(c,d))*100,100*(d=1-1/255*Math.max(b,Math.max(c,d)))]},f.rgb.cmyk=function(a){let b=a[0]/255,c=a[1]/255,d=a[2]/255,e=Math.min(1-b,1-c,1-d);return[100*((1-b-e)/(1-e)||0),100*((1-c-e)/(1-e)||0),100*((1-d-e)/(1-e)||0),100*e]},f.rgb.keyword=function(a){let b,c=e[a];if(c)return c;let f=1/0;for(let c of Object.keys(d)){let e=d[c],g=(a[0]-e[0])**2+(a[1]-e[1])**2+(a[2]-e[2])**2;g<f&&(f=g,b=c)}return b},f.keyword.rgb=function(a){return d[a]},f.rgb.xyz=function(a){let b=a[0]/255,c=a[1]/255,d=a[2]/255;return[100*(.4124*(b=b>.04045?((b+.055)/1.055)**2.4:b/12.92)+.3576*(c=c>.04045?((c+.055)/1.055)**2.4:c/12.92)+.1805*(d=d>.04045?((d+.055)/1.055)**2.4:d/12.92)),100*(.2126*b+.7152*c+.0722*d),100*(.0193*b+.1192*c+.9505*d)]},f.rgb.lab=function(a){let b=f.rgb.xyz(a),c=b[0],d=b[1],e=b[2];return c/=95.047,d/=100,e/=108.883,[116*(d=d>.008856?d**(1/3):7.787*d+16/116)-16,500*((c=c>.008856?c**(1/3):7.787*c+16/116)-d),200*(d-(e=e>.008856?e**(1/3):7.787*e+16/116))]},f.hsl.rgb=function(a){let b,c,d,e=a[0]/360,f=a[1]/100,g=a[2]/100;if(0===f)return[d=255*g,d,d];b=g<.5?g*(1+f):g+f-g*f;let h=2*g-b,i=[0,0,0];for(let a=0;a<3;a++)(c=e+-(1/3*(a-1)))<0&&c++,c>1&&c--,d=6*c<1?h+(b-h)*6*c:2*c<1?b:3*c<2?h+(b-h)*(2/3-c)*6:h,i[a]=255*d;return i},f.hsl.hsv=function(a){let b=a[0],c=a[1]/100,d=a[2]/100,e=c,f=Math.max(d,.01);d*=2,c*=d<=1?d:2-d,e*=f<=1?f:2-f;let g=(d+c)/2;return[b,100*(0===d?2*e/(f+e):2*c/(d+c)),100*g]},f.hsv.rgb=function(a){let b=a[0]/60,c=a[1]/100,d=a[2]/100,e=Math.floor(b)%6,f=b-Math.floor(b),g=255*d*(1-c),h=255*d*(1-c*f),i=255*d*(1-c*(1-f));switch(d*=255,e){case 0:return[d,i,g];case 1:return[h,d,g];case 2:return[g,d,i];case 3:return[g,h,d];case 4:return[i,g,d];case 5:return[d,g,h]}},f.hsv.hsl=function(a){let b,c,d=a[0],e=a[1]/100,f=a[2]/100,g=Math.max(f,.01);c=(2-e)*f;let h=(2-e)*g;return[d,100*(b=(b=e*g/(h<=1?h:2-h))||0),100*(c/=2)]},f.hwb.rgb=function(a){let b,c,d,e,f=a[0]/360,g=a[1]/100,h=a[2]/100,i=g+h;i>1&&(g/=i,h/=i);let j=Math.floor(6*f),k=1-h;b=6*f-j,(1&j)!=0&&(b=1-b);let l=g+b*(k-g);switch(j){default:case 6:case 0:c=k,d=l,e=g;break;case 1:c=l,d=k,e=g;break;case 2:c=g,d=k,e=l;break;case 3:c=g,d=l,e=k;break;case 4:c=l,d=g,e=k;break;case 5:c=k,d=g,e=l}return[255*c,255*d,255*e]},f.cmyk.rgb=function(a){let b=a[0]/100,c=a[1]/100,d=a[2]/100,e=a[3]/100;return[255*(1-Math.min(1,b*(1-e)+e)),255*(1-Math.min(1,c*(1-e)+e)),255*(1-Math.min(1,d*(1-e)+e))]},f.xyz.rgb=function(a){let b,c,d,e=a[0]/100,f=a[1]/100,g=a[2]/100;return b=(b=3.2406*e+-1.5372*f+-.4986*g)>.0031308?1.055*b**(1/2.4)-.055:12.92*b,c=(c=-.9689*e+1.8758*f+.0415*g)>.0031308?1.055*c**(1/2.4)-.055:12.92*c,d=(d=.0557*e+-.204*f+1.057*g)>.0031308?1.055*d**(1/2.4)-.055:12.92*d,[255*(b=Math.min(Math.max(0,b),1)),255*(c=Math.min(Math.max(0,c),1)),255*(d=Math.min(Math.max(0,d),1))]},f.xyz.lab=function(a){let b=a[0],c=a[1],d=a[2];return b/=95.047,c/=100,d/=108.883,[116*(c=c>.008856?c**(1/3):7.787*c+16/116)-16,500*((b=b>.008856?b**(1/3):7.787*b+16/116)-c),200*(c-(d=d>.008856?d**(1/3):7.787*d+16/116))]},f.lab.xyz=function(a){let b,c,d,e=a[0],f=a[1],g=a[2];b=f/500+(c=(e+16)/116),d=c-g/200;let h=c**3,i=b**3,j=d**3;return c=(h>.008856?h:(c-16/116)/7.787)*100,[b=(i>.008856?i:(b-16/116)/7.787)*95.047,c,d=(j>.008856?j:(d-16/116)/7.787)*108.883]},f.lab.lch=function(a){let b,c=a[0],d=a[1],e=a[2];return(b=360*Math.atan2(e,d)/2/Math.PI)<0&&(b+=360),[c,Math.sqrt(d*d+e*e),b]},f.lch.lab=function(a){let b=a[0],c=a[1],d=a[2]/360*2*Math.PI;return[b,c*Math.cos(d),c*Math.sin(d)]},f.rgb.ansi16=function(a,b=null){let[c,d,e]=a,g=null===b?f.rgb.hsv(a)[2]:b;if(0===(g=Math.round(g/50)))return 30;let h=30+(Math.round(e/255)<<2|Math.round(d/255)<<1|Math.round(c/255));return 2===g&&(h+=60),h},f.hsv.ansi16=function(a){return f.rgb.ansi16(f.hsv.rgb(a),a[2])},f.rgb.ansi256=function(a){let b=a[0],c=a[1],d=a[2];return b===c&&c===d?b<8?16:b>248?231:Math.round((b-8)/247*24)+232:16+36*Math.round(b/255*5)+6*Math.round(c/255*5)+Math.round(d/255*5)},f.ansi16.rgb=function(a){let b=a%10;if(0===b||7===b)return a>50&&(b+=3.5),[b=b/10.5*255,b,b];let c=(~~(a>50)+1)*.5;return[(1&b)*c*255,(b>>1&1)*c*255,(b>>2&1)*c*255]},f.ansi256.rgb=function(a){let b;if(a>=232){let b=(a-232)*10+8;return[b,b,b]}return[Math.floor((a-=16)/36)/5*255,Math.floor((b=a%36)/6)/5*255,b%6/5*255]},f.rgb.hex=function(a){let b=(((255&Math.round(a[0]))<<16)+((255&Math.round(a[1]))<<8)+(255&Math.round(a[2]))).toString(16).toUpperCase();return"000000".substring(b.length)+b},f.hex.rgb=function(a){let b=a.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!b)return[0,0,0];let c=b[0];3===b[0].length&&(c=c.split("").map(a=>a+a).join(""));let d=parseInt(c,16);return[d>>16&255,d>>8&255,255&d]},f.rgb.hcg=function(a){let b,c=a[0]/255,d=a[1]/255,e=a[2]/255,f=Math.max(Math.max(c,d),e),g=Math.min(Math.min(c,d),e),h=f-g;return b=h<1?g/(1-h):0,[360*((h<=0?0:f===c?(d-e)/h%6:f===d?2+(e-c)/h:4+(c-d)/h)/6%1),100*h,100*b]},f.hsl.hcg=function(a){let b=a[1]/100,c=a[2]/100,d=c<.5?2*b*c:2*b*(1-c),e=0;return d<1&&(e=(c-.5*d)/(1-d)),[a[0],100*d,100*e]},f.hsv.hcg=function(a){let b=a[1]/100,c=a[2]/100,d=b*c,e=0;return d<1&&(e=(c-d)/(1-d)),[a[0],100*d,100*e]},f.hcg.rgb=function(a){let b=a[0]/360,c=a[1]/100,d=a[2]/100;if(0===c)return[255*d,255*d,255*d];let e=[0,0,0],f=b%1*6,g=f%1,h=1-g,i=0;switch(Math.floor(f)){case 0:e[0]=1,e[1]=g,e[2]=0;break;case 1:e[0]=h,e[1]=1,e[2]=0;break;case 2:e[0]=0,e[1]=1,e[2]=g;break;case 3:e[0]=0,e[1]=h,e[2]=1;break;case 4:e[0]=g,e[1]=0,e[2]=1;break;default:e[0]=1,e[1]=0,e[2]=h}return i=(1-c)*d,[(c*e[0]+i)*255,(c*e[1]+i)*255,(c*e[2]+i)*255]},f.hcg.hsv=function(a){let b=a[1]/100,c=b+a[2]/100*(1-b),d=0;return c>0&&(d=b/c),[a[0],100*d,100*c]},f.hcg.hsl=function(a){let b=a[1]/100,c=a[2]/100*(1-b)+.5*b,d=0;return c>0&&c<.5?d=b/(2*c):c>=.5&&c<1&&(d=b/(2*(1-c))),[a[0],100*d,100*c]},f.hcg.hwb=function(a){let b=a[1]/100,c=b+a[2]/100*(1-b);return[a[0],(c-b)*100,(1-c)*100]},f.hwb.hcg=function(a){let b=a[1]/100,c=1-a[2]/100,d=c-b,e=0;return d<1&&(e=(c-d)/(1-d)),[a[0],100*d,100*e]},f.apple.rgb=function(a){return[a[0]/65535*255,a[1]/65535*255,a[2]/65535*255]},f.rgb.apple=function(a){return[a[0]/255*65535,a[1]/255*65535,a[2]/255*65535]},f.gray.rgb=function(a){return[a[0]/100*255,a[0]/100*255,a[0]/100*255]},f.gray.hsl=function(a){return[0,0,a[0]]},f.gray.hsv=f.gray.hsl,f.gray.hwb=function(a){return[0,100,a[0]]},f.gray.cmyk=function(a){return[0,0,0,a[0]]},f.gray.lab=function(a){return[a[0],0,0]},f.gray.hex=function(a){let b=255&Math.round(a[0]/100*255),c=((b<<16)+(b<<8)+b).toString(16).toUpperCase();return"000000".substring(c.length)+c},f.rgb.gray=function(a){return[(a[0]+a[1]+a[2])/3/255*100]}},12623:(a,b,c)=>{"use strict";let d,e=c(21820),f=c(83997),g=c(78450),{env:h}=process;function i(a){return 0!==a&&{level:a,hasBasic:!0,has256:a>=2,has16m:a>=3}}function j(a,b){if(0===d)return 0;if(g("color=16m")||g("color=full")||g("color=truecolor"))return 3;if(g("color=256"))return 2;if(a&&!b&&void 0===d)return 0;let c=d||0;if("dumb"===h.TERM)return c;if("win32"===process.platform){let a=e.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in h)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in h)||"codeship"===h.CI_NAME?1:c;if("TEAMCITY_VERSION"in h)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(h.TEAMCITY_VERSION);if("truecolor"===h.COLORTERM)return 3;if("TERM_PROGRAM"in h){let a=parseInt((h.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(h.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(h.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(h.TERM)||"COLORTERM"in h?1:c}g("no-color")||g("no-colors")||g("color=false")||g("color=never")?d=0:(g("color")||g("colors")||g("color=true")||g("color=always"))&&(d=1),"FORCE_COLOR"in h&&(d="true"===h.FORCE_COLOR?1:"false"===h.FORCE_COLOR?0:0===h.FORCE_COLOR.length?1:Math.min(parseInt(h.FORCE_COLOR,10),3)),a.exports={supportsColor:function(a){return i(j(a,a&&a.isTTY))},stdout:i(j(!0,f.isatty(1))),stderr:i(j(!0,f.isatty(2)))}},13073:(a,b,c)=>{"use strict";c.d(b,{DI:()=>h,Hp:()=>j,LT:()=>i,MZ:()=>s,Nl:()=>y,Nu:()=>o,OV:()=>g,Td:()=>v,Tx:()=>p,WN:()=>q,Ww:()=>A,YT:()=>m,ZL:()=>l,cD:()=>n,f7:()=>x,hF:()=>k,lB:()=>t,ne:()=>z,qp:()=>w,t:()=>r,w1:()=>u});var d=c(21820),e=c(25482);function f(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let g={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"},h={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"}},i={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"]},j={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"},k={openApiBaseUrl:"https://openapi.qoder.sh",centerBaseUrl:"https://center.qoder.sh",chatBaseUrl:"https://api3.qoder.sh",deviceTokenUrl:"https://openapi.qoder.sh/api/v1/deviceToken/poll",refreshUrl:"https://center.qoder.sh/algo/api/v3/user/refresh_token",userInfoUrl:"https://openapi.qoder.sh/api/v1/userinfo",quotaUsageUrl:"https://openapi.qoder.sh/api/v2/quota/usage",loginUrl:"https://qoder.com/device/selectAccounts"},l={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"}},m={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:9,platform:f(),pluginType:2})};function n(){return{ideType:9,platform:f(),pluginType:2}}let o={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"},p={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"]},q={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/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"},dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},r={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"},s={apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},t={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"},u={appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenUrl:"https://api.cline.bot/api/v1/auth/token",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},v={webAppUrl:"https://app.kimchi.dev",validationUrl:"https://api.cast.ai/v1/llm/openai/supported-providers",userInfoUrl:"https://app.kimchi.dev/api/v1/me",modelsUrl:"https://llm.kimchi.dev/v1/models/metadata?include_in_cli=true"},w={clientId:"b1a00492-073a-47ea-816f-4c329264a828",deviceCodeUrl:"https://auth.x.ai/oauth2/device/code",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token",scope:e.qF,referrer:"grok-build",refreshLeadMs:3e5},x={defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"},y={baseUrl:"https://www.codebuddy.ai",stateUrl:"https://www.codebuddy.ai/v2/plugin/auth/state",tokenUrl:"https://www.codebuddy.ai/v2/plugin/auth/token",accountUrl:"https://www.codebuddy.ai/v2/plugin/login/account",accountsUrl:"https://www.codebuddy.ai/v2/plugin/accounts",refreshUrl:"https://www.codebuddy.ai/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",domain:"www.codebuddy.ai",platform:"CLI",pollInterval:5e3},z={baseUrl:"https://www.codebuddy.cn",stateUrl:"https://www.codebuddy.cn/v2/plugin/auth/state",tokenUrl:"https://www.codebuddy.cn/v2/plugin/auth/token",accountUrl:"https://www.codebuddy.cn/v2/plugin/login/account",accountsUrl:"https://www.codebuddy.cn/v2/plugin/accounts",refreshUrl:"https://www.codebuddy.cn/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",domain:"www.codebuddy.cn",platform:"CLI",pollInterval:5e3},A=3e5},14621:(a,b,c)=>{"use strict";let d,e,f,g,h,i,j;c.r(b),c.d(b,{XaiService:()=>bJ,decodeIdTokenEmail:()=>bI,discoverEndpoints:()=>bH,validateOAuthEndpoint:()=>bG});var k=c(1708),l=c(76760),m=c(73136),n=c(31421),o=c(51455),p=c(48161),q=c(73024);function r(){return void 0===e&&(e=(()=>{try{return q.statSync("/run/.containerenv"),!0}catch{return!1}})()||(void 0===d&&(d=function(){try{return q.statSync("/.dockerenv"),!0}catch{return!1}}()||function(){try{return q.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}()),d)),e}let s=()=>{if("linux"!==k.platform)return!1;if(p.release().toLowerCase().includes("microsoft"))return!r();try{if(q.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft"))return!r()}catch{}return!!(q.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")||q.existsSync("/run/WSL"))&&!r()},t=k.env.__IS_WSL_TEST__?s:s();var u=c(57975),v=c(4573);let w=(0,u.promisify)(n.execFile),x=()=>`${k.env.SYSTEMROOT||k.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`,y=async(a,b={})=>{let{powerShellPath:c,...d}=b,e=y.encodeCommand(a);return w(c??x(),[...y.argumentsPrefix,e],{encoding:"utf8",...d})};y.argumentsPrefix=["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"],y.encodeCommand=a=>v.Buffer.from(a,"utf16le").toString("base64"),y.escapeArgument=a=>`'${String(a).replaceAll("'","''")}'`;let z=(0,u.promisify)(n.execFile),A=(i="/mnt/",async function(){if(h)return h;let a="/etc/wsl.conf",b=!1;try{await o.access(a,o.constants.F_OK),b=!0}catch{}if(!b)return i;let c=function(a){for(let b of a.split("\n")){if(/^\s*#/.test(b))continue;let a=/^\s*root\s*=\s*(?<mountPoint>"[^"]*"|'[^']*'|[^#]*)/.exec(b);if(a)return a.groups.mountPoint.trim().replaceAll(/^["']|["']$/g,"")}}(await o.readFile(a,{encoding:"utf8"}));return void 0===c?i:h=(h=c).endsWith("/")?h:`${h}/`}),B=async()=>{let a=await A();return`${a}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`},C=t?B:x,D=async()=>f??=(async()=>{try{let a=await C();return await o.access(a,o.constants.X_OK),!0}catch{return!1}})(),E=async()=>{let a=await C(),b=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,{stdout:c}=await y(b,{powerShellPath:a});return c.trim()},F=async a=>{if(/^[a-z]+:\/\//i.test(a))return a;try{let{stdout:b}=await z("wslpath",["-aw",a],{encoding:"utf8"});return b.trim()}catch{return a}};function G(a,b,c){let d=c=>Object.defineProperty(a,b,{value:c,enumerable:!0,writable:!0});return Object.defineProperty(a,b,{configurable:!0,enumerable:!0,get(){let a=c();return d(a),a},set(a){d(a)}}),a}let H=(0,u.promisify)(n.execFile),I={MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},MSEdgeBHTML:{name:"Edge Beta",id:"com.microsoft.edge.beta"},MSEdgeDHTML:{name:"Edge Dev",id:"com.microsoft.edge.dev"},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},ChromeBHTML:{name:"Chrome Beta",id:"com.google.chrome.beta"},ChromeDHTML:{name:"Chrome Dev",id:"com.google.chrome.dev"},ChromiumHTM:{name:"Chromium",id:"org.chromium.Chromium"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveDHTML:{name:"Brave Dev",id:"com.brave.Browser.dev"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},OperaStable:{name:"Opera",id:"com.operasoftware.Opera"},VivaldiHTM:{name:"Vivaldi",id:"com.vivaldi.Vivaldi"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"}},J=new Map(Object.entries(I));class K extends Error{}async function L(a=H){let{stdout:b}=await a("reg",["QUERY"," HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice","/v","ProgId"]),c=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(b);if(!c)throw new K(`Cannot find Windows browser in stdout: ${JSON.stringify(b)}`);let{id:d}=c.groups,e=d.lastIndexOf("."),f=d.lastIndexOf("-"),g=-1===e?void 0:d.slice(0,e),h=-1===f?void 0:d.slice(0,f);return I[d]??I[g]??I[h]??{name:d,id:d}}let M=(0,u.promisify)(n.execFile);async function N(){if("darwin"!==k.platform)throw Error("macOS only");let{stdout:a}=await M("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),b=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(a),c=b?.groups.id??"com.apple.Safari";return"com.apple.safari"===c?"com.apple.Safari":c}let O=(0,u.promisify)(n.execFile);async function P(a,{humanReadableOutput:b=!0,signal:c}={}){if("darwin"!==k.platform)throw Error("macOS only");let d={};c&&(d.signal=c);let{stdout:e}=await O("osascript",["-e",a,b?[]:["-ss"]],d);return e.trim()}async function Q(a){return P(`tell application "Finder" to set app_path to application file id "${a}" as string
|
|
2
|
+
tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}let R=(0,u.promisify)(n.execFile);async function S(){if("darwin"===k.platform){let a=await N();return{name:await Q(a),id:a}}if("linux"===k.platform){let{stdout:a}=await R("xdg-mime",["query","default","x-scheme-handler/http"]),b=a.trim();return{name:b.replace(/.desktop$/,"").replace("-"," ").toLowerCase().replaceAll(/(?:^|\s|-)\S/g,a=>a.toUpperCase()),id:b}}if("win32"===k.platform)return L();throw Error("Only macOS, Linux, and Windows are supported")}let T=!!(k.env.SSH_CONNECTION||k.env.SSH_CLIENT||k.env.SSH_TTY),U=Symbol("fallbackAttempt"),V=l.dirname((0,m.fileURLToPath)("file:///zevairouter-build/node_modules/open/index.js")),W=l.join(V,"xdg-open"),{platform:X,arch:Y}=k,Z=async(a,b)=>{if(0===a.length)return;let c=[];for(let d of a)try{return await b(d)}catch(a){c.push(a)}throw AggregateError(c,"Failed to open in all supported apps")},$=async a=>{let b,c=!0===(a={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...a})[U];if(delete a[U],Array.isArray(a.app))return Z(a.app,b=>$({...a,app:b,[U]:!0}));let{name:d,arguments:e=[]}=a.app??{};if(e=[...e],Array.isArray(d))return Z(d,b=>$({...a,app:{name:b,arguments:e},[U]:!0}));if("browser"===d||"browserPrivate"===d){let b,c={"com.google.chrome":"chrome","google-chrome.desktop":"chrome","com.brave.browser":"brave","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.microsoft.msedge":"edge","com.microsoft.edge":"edge","com.microsoft.edgemac":"edge","microsoft-edge.desktop":"edge","com.apple.safari":"safari"};if(t){let a=await E();b=J.get(a)??{}}else b=await S();if(b.id in c){let f=c[b.id.toLowerCase()];if("browserPrivate"===d){if("safari"===f)throw Error("Safari doesn't support opening in private mode via command line");e.push({chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"}[f])}return $({...a,app:{name:ab[f],arguments:e}})}throw Error(`${b.name} is not supported as a default browser`)}let f=[],g={},h=!1;if(!t||r()||T||d||(h=await D()),"darwin"===X)b="open",a.wait&&f.push("--wait-apps"),a.background&&f.push("--background"),a.newInstance&&f.push("--new"),d&&f.push("-a",d);else if("win32"===X||h){b=await C(),f.push(...y.argumentsPrefix),t||(g.windowsVerbatimArguments=!0),t&&a.target&&(a.target=await F(a.target));let c=["$ProgressPreference = 'SilentlyContinue';","Start"];a.wait&&c.push("-Wait"),d?(c.push(y.escapeArgument(d)),a.target&&e.push(a.target)):a.target&&c.push(y.escapeArgument(a.target)),e.length>0&&c.push("-ArgumentList",(e=e.map(a=>y.escapeArgument(a))).join(",")),a.target=y.encodeCommand(c.join(" ")),a.wait||(g.stdio="ignore")}else{if(d)b=d;else{let a=!1;try{await o.access(W,o.constants.X_OK),a=!0}catch{}b=k.versions.electron??("android"===X||!V||"/"===V||!a)?"xdg-open":W}e.length>0&&f.push(...e),a.wait||(g.stdio="ignore",g.detached=!0)}"darwin"===X&&e.length>0&&f.push("--args",...e),a.target&&f.push(a.target);let i=n.spawn(b,f,g);return a.wait?new Promise((b,c)=>{i.once("error",c),i.once("close",d=>{a.allowNonzeroExitCode||0===d?b(i):c(Error(`Exited with code ${d}`))})}):c?new Promise((a,b)=>{i.once("error",b),i.once("spawn",()=>{i.once("close",c=>{(i.off("error",b),0!==c)?b(Error(`Exited with code ${c}`)):(i.unref(),a(i))})})}):(i.unref(),new Promise((a,b)=>{i.once("error",b),i.once("spawn",()=>{i.off("error",b),a(i)})}))};function _(a){if("string"==typeof a||Array.isArray(a))return a;let{[Y]:b}=a;if(!b)throw Error(`${Y} is not supported`);return b}function aa({[X]:a},{wsl:b}={}){if(b&&t)return _(b);if(!a)throw Error(`${X} is not supported`);return _(a)}let ab={browser:"browser",browserPrivate:"browserPrivate"};G(ab,"chrome",()=>aa({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium","chromium-browser"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}})),G(ab,"brave",()=>aa({darwin:"brave browser",win32:"brave",linux:["brave-browser","brave"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe",x64:["/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe","/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe"]}})),G(ab,"firefox",()=>aa({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"})),G(ab,"edge",()=>aa({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"})),G(ab,"safari",()=>aa({darwin:"Safari"}));let ac=(a,b)=>{if("string"!=typeof a)throw TypeError("Expected a `target`");return $({...b,target:a})};var ad=c(81630),ae=c.n(ad),af=c(1932);function ag(a,b=null){return new Promise((c,d)=>{let e=ae().createServer((b,c)=>{let d=new af.URL(b.url,"http://localhost");if("/callback"===d.pathname||"/auth/callback"===d.pathname){let b=Object.fromEntries(d.searchParams);c.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),c.end(`<!DOCTYPE html>
|
|
3
|
+
<html>
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<title>Authentication Successful</title>
|
|
7
|
+
<style>
|
|
8
|
+
body { font-family: system-ui; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f5f5f5; }
|
|
9
|
+
.container { text-align: center; padding: 2rem; background: white; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
|
|
10
|
+
.success { color: #22c55e; font-size: 3rem; }
|
|
11
|
+
h1 { margin: 1rem 0; }
|
|
12
|
+
p { color: #666; }
|
|
13
|
+
#countdown { font-weight: bold; }
|
|
14
|
+
</style>
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
<div class="container">
|
|
18
|
+
<div class="success">✓</div>
|
|
19
|
+
<h1>Authentication Successful</h1>
|
|
20
|
+
<p id="message">Closing in <span id="countdown">3</span> seconds...</p>
|
|
21
|
+
</div>
|
|
22
|
+
<script>
|
|
23
|
+
let count = 3;
|
|
24
|
+
const countdown = document.getElementById("countdown");
|
|
25
|
+
const message = document.getElementById("message");
|
|
26
|
+
const timer = setInterval(() => {
|
|
27
|
+
count--;
|
|
28
|
+
countdown.textContent = count;
|
|
29
|
+
if (count <= 0) {
|
|
30
|
+
clearInterval(timer);
|
|
31
|
+
window.close();
|
|
32
|
+
setTimeout(() => {
|
|
33
|
+
message.textContent = "Please close this tab manually.";
|
|
34
|
+
}, 500);
|
|
35
|
+
}
|
|
36
|
+
}, 1000);
|
|
37
|
+
</script>
|
|
38
|
+
</body>
|
|
39
|
+
</html>`),a(b)}else c.writeHead(404),c.end("Not found")});e.listen(b||0,"127.0.0.1",()=>{let{port:a}=e.address();c({server:e,port:a,close:()=>e.close()})}),e.on("error",a=>{"EADDRINUSE"===a.code&&b?d(Error(`Port ${b} is already in use. Please close other applications using this port.`)):d(a)})})}var ah=c(25467);c(86310);let ai=(a=0)=>b=>`\u001B[${b+a}m`,aj=(a=0)=>b=>`\u001B[${38+a};5;${b}m`,ak=(a=0)=>(b,c,d)=>`\u001B[${38+a};2;${b};${c};${d}m`,al={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(al.modifier),[...Object.keys(al.color),...Object.keys(al.bgColor)];let am=function(){let a=new Map;for(let[b,c]of Object.entries(al)){for(let[b,d]of Object.entries(c))al[b]={open:`\u001B[${d[0]}m`,close:`\u001B[${d[1]}m`},c[b]=al[b],a.set(d[0],d[1]);Object.defineProperty(al,b,{value:c,enumerable:!1})}return Object.defineProperty(al,"codes",{value:a,enumerable:!1}),al.color.close="\x1b[39m",al.bgColor.close="\x1b[49m",al.color.ansi=ai(),al.color.ansi256=aj(),al.color.ansi16m=ak(),al.bgColor.ansi=ai(10),al.bgColor.ansi256=aj(10),al.bgColor.ansi16m=ak(10),Object.defineProperties(al,{rgbToAnsi256:{value:(a,b,c)=>a===b&&b===c?a<8?16:a>248?231:Math.round((a-8)/247*24)+232:16+36*Math.round(a/255*5)+6*Math.round(b/255*5)+Math.round(c/255*5),enumerable:!1},hexToRgb:{value(a){let b=/[a-f\d]{6}|[a-f\d]{3}/i.exec(a.toString(16));if(!b)return[0,0,0];let[c]=b;3===c.length&&(c=[...c].map(a=>a+a).join(""));let d=Number.parseInt(c,16);return[d>>16&255,d>>8&255,255&d]},enumerable:!1},hexToAnsi256:{value:a=>al.rgbToAnsi256(...al.hexToRgb(a)),enumerable:!1},ansi256ToAnsi:{value(a){let b,c,d;if(a<8)return 30+a;if(a<16)return 90+(a-8);if(a>=232)c=b=((a-232)*10+8)/255,d=b;else{let e=(a-=16)%36;b=Math.floor(a/36)/5,c=Math.floor(e/6)/5,d=e%6/5}let e=2*Math.max(b,c,d);if(0===e)return 30;let f=30+(Math.round(d)<<2|Math.round(c)<<1|Math.round(b));return 2===e&&(f+=60),f},enumerable:!1},rgbToAnsi:{value:(a,b,c)=>al.ansi256ToAnsi(al.rgbToAnsi256(a,b,c)),enumerable:!1},hexToAnsi:{value:a=>al.ansi256ToAnsi(al.hexToAnsi256(a)),enumerable:!1}}),al}();var an=c(7066);function ao(a,b=globalThis.Deno?globalThis.Deno.args:k.argv){let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}let{env:ap}=k;function aq(a,b={}){var c;return 0!==(c=function(a,{streamIsTTY:b,sniffFlags:c=!0}={}){let d=function(){if("FORCE_COLOR"in ap)return"true"===ap.FORCE_COLOR?1:"false"===ap.FORCE_COLOR?0:0===ap.FORCE_COLOR.length?1:Math.min(Number.parseInt(ap.FORCE_COLOR,10),3)}();void 0!==d&&(g=d);let e=c?g:d;if(0===e)return 0;if(c){if(ao("color=16m")||ao("color=full")||ao("color=truecolor"))return 3;if(ao("color=256"))return 2}if("TF_BUILD"in ap&&"AGENT_NAME"in ap)return 1;if(a&&!b&&void 0===e)return 0;let f=e||0;if("dumb"===ap.TERM)return f;if("win32"===k.platform){let a=p.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in ap)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(a=>a in ap)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(a=>a in ap)||"codeship"===ap.CI_NAME?1:f;if("TEAMCITY_VERSION"in ap)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(ap.TEAMCITY_VERSION);if("truecolor"===ap.COLORTERM||"xterm-kitty"===ap.TERM||"xterm-ghostty"===ap.TERM||"wezterm"===ap.TERM)return 3;if("TERM_PROGRAM"in ap){let a=Number.parseInt((ap.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(ap.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(ap.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(ap.TERM)||"COLORTERM"in ap?1:f}(a,{streamIsTTY:a&&a.isTTY,...b}))&&{level:c,hasBasic:!0,has256:c>=2,has16m:c>=3}}ao("no-color")||ao("no-colors")||ao("color=false")||ao("color=never")?g=0:(ao("color")||ao("colors")||ao("color=true")||ao("color=always"))&&(g=1);let{stdout:ar,stderr:as}={stdout:aq({isTTY:an.isatty(1)}),stderr:aq({isTTY:an.isatty(2)})},at=Symbol("GENERATOR"),au=Symbol("STYLER"),av=Symbol("IS_EMPTY"),aw=["ansi","ansi","ansi256","ansi16m"],ax=Object.create(null);function ay(a){let b;return((a,b={})=>{if(b.level&&!(Number.isInteger(b.level)&&b.level>=0&&b.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let c=ar?ar.level:0;a.level=void 0===b.level?c:b.level})(b=(...a)=>a.join(" "),a),Object.setPrototypeOf(b,ay.prototype),b}for(let[a,b]of(Object.setPrototypeOf(ay.prototype,Function.prototype),Object.entries(am)))ax[a]={get(){let c=aC(this,aB(b.open,b.close,this[au]),this[av]);return Object.defineProperty(this,a,{value:c}),c}};ax.visible={get(){let a=aC(this,this[au],!0);return Object.defineProperty(this,"visible",{value:a}),a}};let az=(a,b,c,...d)=>"rgb"===a?"ansi16m"===b?am[c].ansi16m(...d):"ansi256"===b?am[c].ansi256(am.rgbToAnsi256(...d)):am[c].ansi(am.rgbToAnsi(...d)):"hex"===a?az("rgb",b,c,...am.hexToRgb(...d)):am[c][a](...d);for(let a of["rgb","hex","ansi256"])ax[a]={get(){let{level:b}=this;return function(...c){return aC(this,aB(az(a,aw[b],"color",...c),am.color.close,this[au]),this[av])}}},ax["bg"+a[0].toUpperCase()+a.slice(1)]={get(){let{level:b}=this;return function(...c){return aC(this,aB(az(a,aw[b],"bgColor",...c),am.bgColor.close,this[au]),this[av])}}};let aA=Object.defineProperties(()=>{},{...ax,level:{enumerable:!0,get(){return this[at].level},set(a){this[at].level=a}}}),aB=(a,b,c)=>{let d,e;return void 0===c?(d=a,e=b):(d=c.openAll+a,e=b+c.closeAll),{open:a,close:b,openAll:d,closeAll:e,parent:c}},aC=(a,b,c)=>{let d=(...a)=>aD(d,1===a.length?""+a[0]:a.join(" "));return Object.setPrototypeOf(d,aA),d[at]=a,d[au]=b,d[av]=c,d},aD=(a,b)=>{if(a.level<=0||!b)return a[av]?"":b;let c=a[au];if(void 0===c)return b;let{openAll:d,closeAll:e}=c;if(b.includes("\x1b"))for(;void 0!==c;)b=function(a,b,c){let d=a.indexOf(b);if(-1===d)return a;let e=b.length,f=0,g="";do g+=a.slice(f,d)+b+c,f=d+e,d=a.indexOf(b,f);while(-1!==d);return g+a.slice(f)}(b,c.close,c.open),c=c.parent;let f=b.indexOf("\n");return -1!==f&&(b=function(a,b,c,d){let e=0,f="";do{let g="\r"===a[d-1];f+=a.slice(e,g?d-1:d)+b+(g?"\r\n":"\n")+c,e=d+1,d=a.indexOf("\n",e)}while(-1!==d);return f+a.slice(e)}(b,e,d,f)),d+b+e};Object.defineProperties(ay.prototype,ax);let aE=ay();ay({level:as?as.level:0});let aF=(a,b,c,d)=>{if("length"===c||"prototype"===c||"arguments"===c||"caller"===c)return;let e=Object.getOwnPropertyDescriptor(a,c),f=Object.getOwnPropertyDescriptor(b,c);(aG(e,f)||!d)&&Object.defineProperty(a,c,f)},aG=function(a,b){return void 0===a||a.configurable||a.writable===b.writable&&a.enumerable===b.enumerable&&a.configurable===b.configurable&&(a.writable||a.value===b.value)},aH=(a,b)=>`/* Wrapped ${a}*/
|
|
40
|
+
${b}`,aI=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),aJ=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),aK=new WeakMap,aL=(a,b={})=>{let c;if("function"!=typeof a)throw TypeError("Expected a function");let d=0,e=a.displayName||a.name||"<anonymous>",f=function(...g){if(aK.set(f,++d),1===d)c=a.apply(this,g),a=void 0;else if(!0===b.throw)throw Error(`Function \`${e}\` can only be called once`);return c};return!function(a,b,{ignoreNonConfigurable:c=!1}={}){let d,{name:e}=a;for(let d of Reflect.ownKeys(b))aF(a,b,d,c);(d=Object.getPrototypeOf(b))!==Object.getPrototypeOf(a)&&Object.setPrototypeOf(a,d),((a,b,c)=>{let d=""===c?"":`with ${c.trim()}() `,e=aH.bind(null,d,b.toString());Object.defineProperty(e,"name",aJ);let{writable:f,enumerable:g,configurable:h}=aI;Object.defineProperty(a,"toString",{value:e,writable:f,enumerable:g,configurable:h})})(a,b,e)}(f,a),aK.set(f,d),f};aL.callCount=a=>{if(!aK.has(a))throw Error(`The given function \`${a.name}\` is not wrapped by the \`onetime\` package`);return aK.get(a)};let aM=[];aM.push("SIGHUP","SIGINT","SIGTERM"),"win32"!==process.platform&&aM.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&aM.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");let aN=a=>!!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,aO=Symbol.for("signal-exit emitter"),aP=globalThis,aQ=Object.defineProperty.bind(Object);class aR{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(aP[aO])return aP[aO];aQ(aP,aO,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(a,b){this.listeners[a].push(b)}removeListener(a,b){let c=this.listeners[a],d=c.indexOf(b);-1!==d&&(0===d&&1===c.length?c.length=0:c.splice(d,1))}emit(a,b,c){if(this.emitted[a])return!1;this.emitted[a]=!0;let d=!1;for(let e of this.listeners[a])d=!0===e(b,c)||d;return"exit"===a&&(d=this.emit("afterExit",b,c)||d),d}}class aS{}class aT extends aS{onExit(){return()=>{}}load(){}unload(){}}class aU extends aS{#a="win32"===aV.platform?"SIGINT":"SIGHUP";#b=new aR;#c;#d;#e;#f={};#g=!1;constructor(a){for(const b of(super(),this.#c=a,this.#f={},aM))this.#f[b]=()=>{let c=this.#c.listeners(b),{count:d}=this.#b;if("object"==typeof a.__signal_exit_emitter__&&"number"==typeof a.__signal_exit_emitter__.count&&(d+=a.__signal_exit_emitter__.count),c.length===d){this.unload();let c=this.#b.emit("exit",null,b),d="SIGHUP"===b?this.#a:b;c||a.kill(a.pid,d)}};this.#e=a.reallyExit,this.#d=a.emit}onExit(a,b){if(!aN(this.#c))return()=>{};!1===this.#g&&this.load();let c=b?.alwaysLast?"afterExit":"exit";return this.#b.on(c,a),()=>{this.#b.removeListener(c,a),0===this.#b.listeners.exit.length&&0===this.#b.listeners.afterExit.length&&this.unload()}}load(){if(!this.#g){for(let a of(this.#g=!0,this.#b.count+=1,aM))try{let b=this.#f[a];b&&this.#c.on(a,b)}catch(a){}this.#c.emit=(a,...b)=>this.#h(a,...b),this.#c.reallyExit=a=>this.#i(a)}}unload(){this.#g&&(this.#g=!1,aM.forEach(a=>{let b=this.#f[a];if(!b)throw Error("Listener not defined for signal: "+a);try{this.#c.removeListener(a,b)}catch(a){}}),this.#c.emit=this.#d,this.#c.reallyExit=this.#e,this.#b.count-=1)}#i(a){return aN(this.#c)?(this.#c.exitCode=a||0,this.#b.emit("exit",this.#c.exitCode,null),this.#e.call(this.#c,this.#c.exitCode)):0}#h(a,...b){let c=this.#d;if(!("exit"===a&&aN(this.#c)))return c.call(this.#c,a,...b);{"number"==typeof b[0]&&(this.#c.exitCode=b[0]);let d=c.call(this.#c,a,...b);return this.#b.emit("exit",this.#c.exitCode,null),d}}}let aV=globalThis.process,{onExit:aW,load:aX,unload:aY}=(j=aN(aV)?new aU(aV):new aT,{onExit:(a,b)=>j.onExit(a,b),load:()=>j.load(),unload:()=>j.unload()}),aZ=k.stderr.isTTY?k.stderr:k.stdout.isTTY?k.stdout:void 0,a$=aZ?aL(()=>{aW(()=>{aZ.write("\x1b[?25h")},{alwaysLast:!0})}):()=>{},a_=!1,a0={};a0.show=(a=k.stderr)=>{a.isTTY&&(a_=!1,a.write("\x1b[?25h"))},a0.hide=(a=k.stderr)=>{a.isTTY&&(a$(),a_=!0,a.write("\x1b[?25l"))},a0.toggle=(a,b)=>{void 0!==a&&(a_=a),a_?a0.show(b):a0.hide(b)};let a1=JSON.parse('{"dots":{"interval":80,"frames":["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"]},"dots2":{"interval":80,"frames":["⣾","⣽","⣻","⢿","⡿","⣟","⣯","⣷"]},"dots3":{"interval":80,"frames":["⠋","⠙","⠚","⠞","⠖","⠦","⠴","⠲","⠳","⠓"]},"dots4":{"interval":80,"frames":["⠄","⠆","⠇","⠋","⠙","⠸","⠰","⠠","⠰","⠸","⠙","⠋","⠇","⠆"]},"dots5":{"interval":80,"frames":["⠋","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋"]},"dots6":{"interval":80,"frames":["⠁","⠉","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠤","⠄","⠄","⠤","⠴","⠲","⠒","⠂","⠂","⠒","⠚","⠙","⠉","⠁"]},"dots7":{"interval":80,"frames":["⠈","⠉","⠋","⠓","⠒","⠐","⠐","⠒","⠖","⠦","⠤","⠠","⠠","⠤","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋","⠉","⠈"]},"dots8":{"interval":80,"frames":["⠁","⠁","⠉","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠤","⠄","⠄","⠤","⠠","⠠","⠤","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋","⠉","⠈","⠈"]},"dots9":{"interval":80,"frames":["⢹","⢺","⢼","⣸","⣇","⡧","⡗","⡏"]},"dots10":{"interval":80,"frames":["⢄","⢂","⢁","⡁","⡈","⡐","⡠"]},"dots11":{"interval":100,"frames":["⠁","⠂","⠄","⡀","⢀","⠠","⠐","⠈"]},"dots12":{"interval":80,"frames":["⢀⠀","⡀⠀","⠄⠀","⢂⠀","⡂⠀","⠅⠀","⢃⠀","⡃⠀","⠍⠀","⢋⠀","⡋⠀","⠍⠁","⢋⠁","⡋⠁","⠍⠉","⠋⠉","⠋⠉","⠉⠙","⠉⠙","⠉⠩","⠈⢙","⠈⡙","⢈⠩","⡀⢙","⠄⡙","⢂⠩","⡂⢘","⠅⡘","⢃⠨","⡃⢐","⠍⡐","⢋⠠","⡋⢀","⠍⡁","⢋⠁","⡋⠁","⠍⠉","⠋⠉","⠋⠉","⠉⠙","⠉⠙","⠉⠩","⠈⢙","⠈⡙","⠈⠩","⠀⢙","⠀⡙","⠀⠩","⠀⢘","⠀⡘","⠀⠨","⠀⢐","⠀⡐","⠀⠠","⠀⢀","⠀⡀"]},"dots13":{"interval":80,"frames":["⣼","⣹","⢻","⠿","⡟","⣏","⣧","⣶"]},"dots14":{"interval":80,"frames":["⠉⠉","⠈⠙","⠀⠹","⠀⢸","⠀⣰","⢀⣠","⣀⣀","⣄⡀","⣆⠀","⡇⠀","⠏⠀","⠋⠁"]},"dots8Bit":{"interval":80,"frames":["⠀","⠁","⠂","⠃","⠄","⠅","⠆","⠇","⡀","⡁","⡂","⡃","⡄","⡅","⡆","⡇","⠈","⠉","⠊","⠋","⠌","⠍","⠎","⠏","⡈","⡉","⡊","⡋","⡌","⡍","⡎","⡏","⠐","⠑","⠒","⠓","⠔","⠕","⠖","⠗","⡐","⡑","⡒","⡓","⡔","⡕","⡖","⡗","⠘","⠙","⠚","⠛","⠜","⠝","⠞","⠟","⡘","⡙","⡚","⡛","⡜","⡝","⡞","⡟","⠠","⠡","⠢","⠣","⠤","⠥","⠦","⠧","⡠","⡡","⡢","⡣","⡤","⡥","⡦","⡧","⠨","⠩","⠪","⠫","⠬","⠭","⠮","⠯","⡨","⡩","⡪","⡫","⡬","⡭","⡮","⡯","⠰","⠱","⠲","⠳","⠴","⠵","⠶","⠷","⡰","⡱","⡲","⡳","⡴","⡵","⡶","⡷","⠸","⠹","⠺","⠻","⠼","⠽","⠾","⠿","⡸","⡹","⡺","⡻","⡼","⡽","⡾","⡿","⢀","⢁","⢂","⢃","⢄","⢅","⢆","⢇","⣀","⣁","⣂","⣃","⣄","⣅","⣆","⣇","⢈","⢉","⢊","⢋","⢌","⢍","⢎","⢏","⣈","⣉","⣊","⣋","⣌","⣍","⣎","⣏","⢐","⢑","⢒","⢓","⢔","⢕","⢖","⢗","⣐","⣑","⣒","⣓","⣔","⣕","⣖","⣗","⢘","⢙","⢚","⢛","⢜","⢝","⢞","⢟","⣘","⣙","⣚","⣛","⣜","⣝","⣞","⣟","⢠","⢡","⢢","⢣","⢤","⢥","⢦","⢧","⣠","⣡","⣢","⣣","⣤","⣥","⣦","⣧","⢨","⢩","⢪","⢫","⢬","⢭","⢮","⢯","⣨","⣩","⣪","⣫","⣬","⣭","⣮","⣯","⢰","⢱","⢲","⢳","⢴","⢵","⢶","⢷","⣰","⣱","⣲","⣳","⣴","⣵","⣶","⣷","⢸","⢹","⢺","⢻","⢼","⢽","⢾","⢿","⣸","⣹","⣺","⣻","⣼","⣽","⣾","⣿"]},"dotsCircle":{"interval":80,"frames":["⢎ ","⠎⠁","⠊⠑","⠈⠱"," ⡱","⢀⡰","⢄⡠","⢆⡀"]},"sand":{"interval":80,"frames":["⠁","⠂","⠄","⡀","⡈","⡐","⡠","⣀","⣁","⣂","⣄","⣌","⣔","⣤","⣥","⣦","⣮","⣶","⣷","⣿","⡿","⠿","⢟","⠟","⡛","⠛","⠫","⢋","⠋","⠍","⡉","⠉","⠑","⠡","⢁"]},"line":{"interval":130,"frames":["-","\\\\","|","/"]},"line2":{"interval":100,"frames":["⠂","-","–","—","–","-"]},"rollingLine":{"interval":80,"frames":["/ "," - "," \\\\ "," |"," |"," \\\\ "," - ","/ "]},"pipe":{"interval":100,"frames":["┤","┘","┴","└","├","┌","┬","┐"]},"simpleDots":{"interval":400,"frames":[". ",".. ","..."," "]},"simpleDotsScrolling":{"interval":200,"frames":[". ",".. ","..."," .."," ."," "]},"star":{"interval":70,"frames":["✶","✸","✹","✺","✹","✷"]},"star2":{"interval":80,"frames":["+","x","*"]},"flip":{"interval":70,"frames":["_","_","_","-","`","`","\'","\xb4","-","_","_","_"]},"hamburger":{"interval":100,"frames":["☱","☲","☴"]},"growVertical":{"interval":120,"frames":["▁","▃","▄","▅","▆","▇","▆","▅","▄","▃"]},"growHorizontal":{"interval":120,"frames":["▏","▎","▍","▌","▋","▊","▉","▊","▋","▌","▍","▎"]},"balloon":{"interval":140,"frames":[" ",".","o","O","@","*"," "]},"balloon2":{"interval":120,"frames":[".","o","O","\xb0","O","o","."]},"noise":{"interval":100,"frames":["▓","▒","░"]},"bounce":{"interval":120,"frames":["⠁","⠂","⠄","⠂"]},"boxBounce":{"interval":120,"frames":["▖","▘","▝","▗"]},"boxBounce2":{"interval":100,"frames":["▌","▀","▐","▄"]},"triangle":{"interval":50,"frames":["◢","◣","◤","◥"]},"binary":{"interval":80,"frames":["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},"arc":{"interval":100,"frames":["◜","◠","◝","◞","◡","◟"]},"circle":{"interval":120,"frames":["◡","⊙","◠"]},"squareCorners":{"interval":180,"frames":["◰","◳","◲","◱"]},"circleQuarters":{"interval":120,"frames":["◴","◷","◶","◵"]},"circleHalves":{"interval":50,"frames":["◐","◓","◑","◒"]},"squish":{"interval":100,"frames":["╫","╪"]},"toggle":{"interval":250,"frames":["⊶","⊷"]},"toggle2":{"interval":80,"frames":["▫","▪"]},"toggle3":{"interval":120,"frames":["□","■"]},"toggle4":{"interval":100,"frames":["■","□","▪","▫"]},"toggle5":{"interval":100,"frames":["▮","▯"]},"toggle6":{"interval":300,"frames":["ဝ","၀"]},"toggle7":{"interval":80,"frames":["⦾","⦿"]},"toggle8":{"interval":100,"frames":["◍","◌"]},"toggle9":{"interval":100,"frames":["◉","◎"]},"toggle10":{"interval":100,"frames":["㊂","㊀","㊁"]},"toggle11":{"interval":50,"frames":["⧇","⧆"]},"toggle12":{"interval":120,"frames":["☗","☖"]},"toggle13":{"interval":80,"frames":["=","*","-"]},"arrow":{"interval":100,"frames":["←","↖","↑","↗","→","↘","↓","↙"]},"arrow2":{"interval":80,"frames":["⬆️ ","↗️ ","➡️ ","↘️ ","⬇️ ","↙️ ","⬅️ ","↖️ "]},"arrow3":{"interval":120,"frames":["▹▹▹▹▹","▸▹▹▹▹","▹▸▹▹▹","▹▹▸▹▹","▹▹▹▸▹","▹▹▹▹▸"]},"bouncingBar":{"interval":80,"frames":["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},"bouncingBall":{"interval":80,"frames":["( ● )","( ● )","( ● )","( ● )","( ●)","( ● )","( ● )","( ● )","( ● )","(● )"]},"smiley":{"interval":200,"frames":["\uD83D\uDE04 ","\uD83D\uDE1D "]},"monkey":{"interval":300,"frames":["\uD83D\uDE48 ","\uD83D\uDE48 ","\uD83D\uDE49 ","\uD83D\uDE4A "]},"hearts":{"interval":100,"frames":["\uD83D\uDC9B ","\uD83D\uDC99 ","\uD83D\uDC9C ","\uD83D\uDC9A ","\uD83D\uDC97 "]},"clock":{"interval":100,"frames":["\uD83D\uDD5B ","\uD83D\uDD50 ","\uD83D\uDD51 ","\uD83D\uDD52 ","\uD83D\uDD53 ","\uD83D\uDD54 ","\uD83D\uDD55 ","\uD83D\uDD56 ","\uD83D\uDD57 ","\uD83D\uDD58 ","\uD83D\uDD59 ","\uD83D\uDD5A "]},"earth":{"interval":180,"frames":["\uD83C\uDF0D ","\uD83C\uDF0E ","\uD83C\uDF0F "]},"material":{"interval":17,"frames":["█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁","██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁","███████▁▁▁▁▁▁▁▁▁▁▁▁▁","████████▁▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","██████████▁▁▁▁▁▁▁▁▁▁","███████████▁▁▁▁▁▁▁▁▁","█████████████▁▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁▁██████████████▁▁▁▁","▁▁▁██████████████▁▁▁","▁▁▁▁█████████████▁▁▁","▁▁▁▁██████████████▁▁","▁▁▁▁██████████████▁▁","▁▁▁▁▁██████████████▁","▁▁▁▁▁██████████████▁","▁▁▁▁▁██████████████▁","▁▁▁▁▁▁██████████████","▁▁▁▁▁▁██████████████","▁▁▁▁▁▁▁█████████████","▁▁▁▁▁▁▁█████████████","▁▁▁▁▁▁▁▁████████████","▁▁▁▁▁▁▁▁████████████","▁▁▁▁▁▁▁▁▁███████████","▁▁▁▁▁▁▁▁▁███████████","▁▁▁▁▁▁▁▁▁▁██████████","▁▁▁▁▁▁▁▁▁▁██████████","▁▁▁▁▁▁▁▁▁▁▁▁████████","▁▁▁▁▁▁▁▁▁▁▁▁▁███████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████","█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","██████▁▁▁▁▁▁▁▁▁▁▁▁▁█","████████▁▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","███████████▁▁▁▁▁▁▁▁▁","████████████▁▁▁▁▁▁▁▁","████████████▁▁▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁▁▁█████████████▁▁▁▁","▁▁▁▁▁████████████▁▁▁","▁▁▁▁▁████████████▁▁▁","▁▁▁▁▁▁███████████▁▁▁","▁▁▁▁▁▁▁▁█████████▁▁▁","▁▁▁▁▁▁▁▁█████████▁▁▁","▁▁▁▁▁▁▁▁▁█████████▁▁","▁▁▁▁▁▁▁▁▁█████████▁▁","▁▁▁▁▁▁▁▁▁▁█████████▁","▁▁▁▁▁▁▁▁▁▁▁████████▁","▁▁▁▁▁▁▁▁▁▁▁████████▁","▁▁▁▁▁▁▁▁▁▁▁▁███████▁","▁▁▁▁▁▁▁▁▁▁▁▁███████▁","▁▁▁▁▁▁▁▁▁▁▁▁▁███████","▁▁▁▁▁▁▁▁▁▁▁▁▁███████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"]},"moon":{"interval":80,"frames":["\uD83C\uDF11 ","\uD83C\uDF12 ","\uD83C\uDF13 ","\uD83C\uDF14 ","\uD83C\uDF15 ","\uD83C\uDF16 ","\uD83C\uDF17 ","\uD83C\uDF18 "]},"runner":{"interval":140,"frames":["\uD83D\uDEB6 ","\uD83C\uDFC3 "]},"pong":{"interval":80,"frames":["▐⠂ ▌","▐⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂▌","▐ ⠠▌","▐ ⡀▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐⠠ ▌"]},"shark":{"interval":120,"frames":["▐|\\\\____________▌","▐_|\\\\___________▌","▐__|\\\\__________▌","▐___|\\\\_________▌","▐____|\\\\________▌","▐_____|\\\\_______▌","▐______|\\\\______▌","▐_______|\\\\_____▌","▐________|\\\\____▌","▐_________|\\\\___▌","▐__________|\\\\__▌","▐___________|\\\\_▌","▐____________|\\\\▌","▐____________/|▌","▐___________/|_▌","▐__________/|__▌","▐_________/|___▌","▐________/|____▌","▐_______/|_____▌","▐______/|______▌","▐_____/|_______▌","▐____/|________▌","▐___/|_________▌","▐__/|__________▌","▐_/|___________▌","▐/|____________▌"]},"dqpb":{"interval":100,"frames":["d","q","p","b"]},"weather":{"interval":100,"frames":["☀️ ","☀️ ","☀️ ","\uD83C\uDF24 ","⛅️ ","\uD83C\uDF25 ","☁️ ","\uD83C\uDF27 ","\uD83C\uDF28 ","\uD83C\uDF27 ","\uD83C\uDF28 ","\uD83C\uDF27 ","\uD83C\uDF28 ","⛈ ","\uD83C\uDF28 ","\uD83C\uDF27 ","\uD83C\uDF28 ","☁️ ","\uD83C\uDF25 ","⛅️ ","\uD83C\uDF24 ","☀️ ","☀️ "]},"christmas":{"interval":400,"frames":["\uD83C\uDF32","\uD83C\uDF84"]},"grenade":{"interval":80,"frames":["، ","′ "," \xb4 "," ‾ "," ⸌"," ⸊"," |"," ⁎"," ⁕"," ෴ "," ⁓"," "," "," "]},"point":{"interval":125,"frames":["∙∙∙","●∙∙","∙●∙","∙∙●","∙∙∙"]},"layer":{"interval":150,"frames":["-","=","≡"]},"betaWave":{"interval":80,"frames":["ρββββββ","βρβββββ","ββρββββ","βββρβββ","ββββρββ","βββββρβ","ββββββρ"]},"fingerDance":{"interval":160,"frames":["\uD83E\uDD18 ","\uD83E\uDD1F ","\uD83D\uDD96 ","✋ ","\uD83E\uDD1A ","\uD83D\uDC46 "]},"fistBump":{"interval":80,"frames":["\uD83E\uDD1C \uD83E\uDD1B ","\uD83E\uDD1C \uD83E\uDD1B ","\uD83E\uDD1C \uD83E\uDD1B "," \uD83E\uDD1C \uD83E\uDD1B "," \uD83E\uDD1C\uD83E\uDD1B "," \uD83E\uDD1C✨\uD83E\uDD1B ","\uD83E\uDD1C ✨ \uD83E\uDD1B "]},"soccerHeader":{"interval":80,"frames":[" \uD83E\uDDD1⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️\uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 "]},"mindblown":{"interval":160,"frames":["\uD83D\uDE10 ","\uD83D\uDE10 ","\uD83D\uDE2E ","\uD83D\uDE2E ","\uD83D\uDE26 ","\uD83D\uDE26 ","\uD83D\uDE27 ","\uD83D\uDE27 ","\uD83E\uDD2F ","\uD83D\uDCA5 ","✨ "," "," "," "]},"speaker":{"interval":160,"frames":["\uD83D\uDD08 ","\uD83D\uDD09 ","\uD83D\uDD0A ","\uD83D\uDD09 "]},"orangePulse":{"interval":100,"frames":["\uD83D\uDD38 ","\uD83D\uDD36 ","\uD83D\uDFE0 ","\uD83D\uDFE0 ","\uD83D\uDD36 "]},"bluePulse":{"interval":100,"frames":["\uD83D\uDD39 ","\uD83D\uDD37 ","\uD83D\uDD35 ","\uD83D\uDD35 ","\uD83D\uDD37 "]},"orangeBluePulse":{"interval":100,"frames":["\uD83D\uDD38 ","\uD83D\uDD36 ","\uD83D\uDFE0 ","\uD83D\uDFE0 ","\uD83D\uDD36 ","\uD83D\uDD39 ","\uD83D\uDD37 ","\uD83D\uDD35 ","\uD83D\uDD35 ","\uD83D\uDD37 "]},"timeTravel":{"interval":100,"frames":["\uD83D\uDD5B ","\uD83D\uDD5A ","\uD83D\uDD59 ","\uD83D\uDD58 ","\uD83D\uDD57 ","\uD83D\uDD56 ","\uD83D\uDD55 ","\uD83D\uDD54 ","\uD83D\uDD53 ","\uD83D\uDD52 ","\uD83D\uDD51 ","\uD83D\uDD50 "]},"aesthetic":{"interval":80,"frames":["▰▱▱▱▱▱▱","▰▰▱▱▱▱▱","▰▰▰▱▱▱▱","▰▰▰▰▱▱▱","▰▰▰▰▰▱▱","▰▰▰▰▰▰▱","▰▰▰▰▰▰▰","▰▱▱▱▱▱▱"]},"dwarfFortress":{"interval":80,"frames":[" ██████\xa3\xa3\xa3 ","☺██████\xa3\xa3\xa3 ","☺██████\xa3\xa3\xa3 ","☺▓█████\xa3\xa3\xa3 ","☺▓█████\xa3\xa3\xa3 ","☺▒█████\xa3\xa3\xa3 ","☺▒█████\xa3\xa3\xa3 ","☺░█████\xa3\xa3\xa3 ","☺░█████\xa3\xa3\xa3 ","☺ █████\xa3\xa3\xa3 "," ☺█████\xa3\xa3\xa3 "," ☺█████\xa3\xa3\xa3 "," ☺▓████\xa3\xa3\xa3 "," ☺▓████\xa3\xa3\xa3 "," ☺▒████\xa3\xa3\xa3 "," ☺▒████\xa3\xa3\xa3 "," ☺░████\xa3\xa3\xa3 "," ☺░████\xa3\xa3\xa3 "," ☺ ████\xa3\xa3\xa3 "," ☺████\xa3\xa3\xa3 "," ☺████\xa3\xa3\xa3 "," ☺▓███\xa3\xa3\xa3 "," ☺▓███\xa3\xa3\xa3 "," ☺▒███\xa3\xa3\xa3 "," ☺▒███\xa3\xa3\xa3 "," ☺░███\xa3\xa3\xa3 "," ☺░███\xa3\xa3\xa3 "," ☺ ███\xa3\xa3\xa3 "," ☺███\xa3\xa3\xa3 "," ☺███\xa3\xa3\xa3 "," ☺▓██\xa3\xa3\xa3 "," ☺▓██\xa3\xa3\xa3 "," ☺▒██\xa3\xa3\xa3 "," ☺▒██\xa3\xa3\xa3 "," ☺░██\xa3\xa3\xa3 "," ☺░██\xa3\xa3\xa3 "," ☺ ██\xa3\xa3\xa3 "," ☺██\xa3\xa3\xa3 "," ☺██\xa3\xa3\xa3 "," ☺▓█\xa3\xa3\xa3 "," ☺▓█\xa3\xa3\xa3 "," ☺▒█\xa3\xa3\xa3 "," ☺▒█\xa3\xa3\xa3 "," ☺░█\xa3\xa3\xa3 "," ☺░█\xa3\xa3\xa3 "," ☺ █\xa3\xa3\xa3 "," ☺█\xa3\xa3\xa3 "," ☺█\xa3\xa3\xa3 "," ☺▓\xa3\xa3\xa3 "," ☺▓\xa3\xa3\xa3 "," ☺▒\xa3\xa3\xa3 "," ☺▒\xa3\xa3\xa3 "," ☺░\xa3\xa3\xa3 "," ☺░\xa3\xa3\xa3 "," ☺ \xa3\xa3\xa3 "," ☺\xa3\xa3\xa3 "," ☺\xa3\xa3\xa3 "," ☺▓\xa3\xa3 "," ☺▓\xa3\xa3 "," ☺▒\xa3\xa3 "," ☺▒\xa3\xa3 "," ☺░\xa3\xa3 "," ☺░\xa3\xa3 "," ☺ \xa3\xa3 "," ☺\xa3\xa3 "," ☺\xa3\xa3 "," ☺▓\xa3 "," ☺▓\xa3 "," ☺▒\xa3 "," ☺▒\xa3 "," ☺░\xa3 "," ☺░\xa3 "," ☺ \xa3 "," ☺\xa3 "," ☺\xa3 "," ☺▓ "," ☺▓ "," ☺▒ "," ☺▒ "," ☺░ "," ☺░ "," ☺ "," ☺ &"," ☺ ☼&"," ☺ ☼ &"," ☺☼ &"," ☺☼ & "," ‼ & "," ☺ & "," ‼ & "," ☺ & "," ‼ & "," ☺ & ","‼ & "," & "," & "," & ░ "," & ▒ "," & ▓ "," & \xa3 "," & ░\xa3 "," & ▒\xa3 "," & ▓\xa3 "," & \xa3\xa3 "," & ░\xa3\xa3 "," & ▒\xa3\xa3 ","& ▓\xa3\xa3 ","& \xa3\xa3\xa3 "," ░\xa3\xa3\xa3 "," ▒\xa3\xa3\xa3 "," ▓\xa3\xa3\xa3 "," █\xa3\xa3\xa3 "," ░█\xa3\xa3\xa3 "," ▒█\xa3\xa3\xa3 "," ▓█\xa3\xa3\xa3 "," ██\xa3\xa3\xa3 "," ░██\xa3\xa3\xa3 "," ▒██\xa3\xa3\xa3 "," ▓██\xa3\xa3\xa3 "," ███\xa3\xa3\xa3 "," ░███\xa3\xa3\xa3 "," ▒███\xa3\xa3\xa3 "," ▓███\xa3\xa3\xa3 "," ████\xa3\xa3\xa3 "," ░████\xa3\xa3\xa3 "," ▒████\xa3\xa3\xa3 "," ▓████\xa3\xa3\xa3 "," █████\xa3\xa3\xa3 "," ░█████\xa3\xa3\xa3 "," ▒█████\xa3\xa3\xa3 "," ▓█████\xa3\xa3\xa3 "," ██████\xa3\xa3\xa3 "," ██████\xa3\xa3\xa3 "]},"fish":{"interval":80,"frames":["~~~~~~~~~~~~~~~~~~~~","> ~~~~~~~~~~~~~~~~~~","\xba> ~~~~~~~~~~~~~~~~~","(\xba> ~~~~~~~~~~~~~~~~","((\xba> ~~~~~~~~~~~~~~~","<((\xba> ~~~~~~~~~~~~~~","><((\xba> ~~~~~~~~~~~~~"," ><((\xba> ~~~~~~~~~~~~","~ ><((\xba> ~~~~~~~~~~~","~~ <>((\xba> ~~~~~~~~~~","~~~ ><((\xba> ~~~~~~~~~","~~~~ <>((\xba> ~~~~~~~~","~~~~~ ><((\xba> ~~~~~~~","~~~~~~ <>((\xba> ~~~~~~","~~~~~~~ ><((\xba> ~~~~~","~~~~~~~~ <>((\xba> ~~~~","~~~~~~~~~ ><((\xba> ~~~","~~~~~~~~~~ <>((\xba> ~~","~~~~~~~~~~~ ><((\xba> ~","~~~~~~~~~~~~ <>((\xba> ","~~~~~~~~~~~~~ ><((\xba>","~~~~~~~~~~~~~~ <>((\xba","~~~~~~~~~~~~~~~ ><((","~~~~~~~~~~~~~~~~ <>(","~~~~~~~~~~~~~~~~~ ><","~~~~~~~~~~~~~~~~~~ <","~~~~~~~~~~~~~~~~~~~~"]}}');Object.keys(a1);let a2=an?.WriteStream?.prototype?.hasColors?.()??!1,a3=(a,b)=>{if(!a2)return a=>a;let c=`\u001B[${a}m`,d=`\u001B[${b}m`;return a=>{let e=a+"",f=e.indexOf(d);if(-1===f)return c+e+d;let g=c,h=0,i=(22===b?d:"")+c;for(;-1!==f;)g+=e.slice(h,f)+i,h=f+d.length,f=e.indexOf(d,h);return g+(e.slice(h)+d)}};a3(0,0),a3(1,22),a3(2,22),a3(3,23),a3(4,24),a3(53,55),a3(7,27),a3(8,28),a3(9,29),a3(30,39);let a4=a3(31,39),a5=a3(32,39),a6=a3(33,39),a7=a3(34,39);function a8(){let{env:a}=k,{TERM:b,TERM_PROGRAM:c}=a;return"win32"!==k.platform?"linux"!==b:!!a.WT_SESSION||!!a.TERMINUS_SUBLIME||"{cmd::Cmder}"===a.ConEmuTask||"Terminus-Sublime"===c||"vscode"===c||"xterm-256color"===b||"alacritty"===b||"rxvt-unicode"===b||"rxvt-unicode-256color"===b||"JetBrains-JediTerm"===a.TERMINAL_EMULATOR}a3(35,39),a3(36,39),a3(37,39),a3(90,39),a3(40,49),a3(41,49),a3(42,49),a3(43,49),a3(44,49),a3(45,49),a3(46,49),a3(47,49),a3(100,49),a3(91,39),a3(92,39),a3(93,39),a3(94,39),a3(95,39),a3(96,39),a3(97,39),a3(101,49),a3(102,49),a3(103,49),a3(104,49),a3(105,49),a3(106,49),a3(107,49);let a9=a8(),ba=a7(a9?"ℹ":"i"),bb=a5(a9?"✔":"√"),bc=a6(a9?"⚠":"‼"),bd=a4(a9?"✖":"\xd7"),be=function({onlyFirst:a=!1}={}){return RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",a?void 0:"g")}(),bf=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],bg=[12288,12288,65281,65376,65504,65510],bh=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141],bi=(a,b)=>{let c=0,d=Math.floor(a.length/2)-1;for(;c<=d;){let e=Math.floor((c+d)/2),f=2*e;if(b<a[f])d=e-1;else{if(!(b>a[f+1]))return!0;c=e+1}}return!1},[bj,bk]=function(a){let b=a[0],c=a[1];for(let d=0;d<a.length;d+=2){let e=a[d],f=a[d+1];if(19968>=e&&19968<=f)return[e,f];f-e>c-b&&(b=e,c=f)}return[b,c]}(bh);function bl(a,{ambiguousAsWide:b=!1}={}){if(!Number.isSafeInteger(a))throw TypeError(`Expected a code point, got \`${typeof a}\`.`);return!(a<12288)&&!(a>65510)&&bi(bg,a)||a>=bj&&a<=bk||!(a<4352)&&!(a>262141)&&bi(bh,a)||b&&!(a<161)&&!(a>1114109)&&bi(bf,a)?2:1}let bm=new Intl.Segmenter,bn=/^(?:\p{Default_Ignorable_Code_Point}|\p{Control}|\p{Format}|\p{Mark}|\p{Surrogate})+$/v,bo=/^[\p{Default_Ignorable_Code_Point}\p{Control}\p{Format}\p{Mark}\p{Surrogate}]+/v,bp=/^\p{RGI_Emoji}$/v,bq=/^[\d#*]\u20E3$/,br=/\p{Extended_Pictographic}/gu;function bs(a){return a>=4352&&a<=4447||a>=43360&&a<=43388}function bt(a){return a>=4448&&a<=4519||a>=55216&&a<=55238}function bu(a){return a>=4520&&a<=4607||a>=55243&&a<=55291}class bv{#j=0;#k;#l=!1;#m=!1;#n=a=>{a?.length&&("string"==typeof a?a.codePointAt(0):a[0])===3&&k.kill(k.pid,"SIGINT")};start(){this.#j++,1===this.#j&&this.#o()}stop(){0!==this.#j&&0==--this.#j&&this.#p()}#o(){let{stdin:a}=k;if("win32"===k.platform||!a?.isTTY||"function"!=typeof a.setRawMode){this.#k=void 0;return}this.#k=a,this.#l=a.isPaused(),this.#m=!!a.isRaw,a.setRawMode(!0),a.prependListener("data",this.#n),this.#l&&a.resume()}#p(){if(!this.#k)return;let a=this.#k;a.off("data",this.#n),a.isTTY&&a.setRawMode?.(this.#m),this.#l&&a.pause(),this.#k=void 0,this.#l=!1,this.#m=!1}}let bw=Object.freeze(new bv),bx=new Map,by=new Set(["black","red","green","yellow","blue","magenta","cyan","white","gray"]);class bz{#q=0;#r=-1;#s=0;#t;#u;#v;#w;#x=new Map;#y=!1;#z;#A;#B=!1;#C;#D(a){this.#y=!0;try{return a()}finally{this.#y=!1}}#E(){this.isSpinning&&this.render()}#F(a,b){return null==a?"":"string"==typeof a?a:Buffer.isBuffer(a)||ArrayBuffer.isView(a)?Buffer.from(a).toString("string"==typeof b&&b&&"buffer"!==b?b:"utf8"):String(a)}#G(a){if(!a)return!1;let b=a.at(-1);return"\n"===b||"\r"===b}#H(){this.#A||(this.#A=setTimeout(()=>{this.#A=void 0,this.isSpinning&&this.#E()},200),"function"==typeof this.#A?.unref&&this.#A.unref())}#I(){this.#A&&(clearTimeout(this.#A),this.#A=void 0)}#J(a,b,c,d){return this.#K(c," ")+a+("string"==typeof b?(a?" ":"")+b:"")+this.#L(d," ")}constructor(a){if("string"==typeof a&&(a={text:a}),this.#t={color:"cyan",stream:k.stderr,discardStdin:!0,hideCursor:!0,...a},this.color=this.#t.color,this.#v=this.#t.stream,"boolean"!=typeof this.#t.isEnabled&&(this.#t.isEnabled=function({stream:a=process.stdout}={}){return!!(a&&a.isTTY&&"dumb"!==process.env.TERM&&!("CI"in process.env))}({stream:this.#v})),"boolean"!=typeof this.#t.isSilent&&(this.#t.isSilent=!1),void 0!==this.#t.interval&&!(Number.isInteger(this.#t.interval)&&this.#t.interval>0))throw Error("The `interval` option must be a positive integer");const b=this.#t.interval;this.spinner=this.#t.spinner,this.#t.interval=b,this.text=this.#t.text,this.prefixText=this.#t.prefixText,this.suffixText=this.#t.suffixText,this.indent=this.#t.indent}get indent(){return this.#t.indent}set indent(a=0){if(!(a>=0&&Number.isInteger(a)))throw Error("The `indent` option must be an integer from 0 and up");this.#t.indent=a}get interval(){return this.#t.interval??this.#u.interval??100}get spinner(){return this.#u}set spinner(a){if(this.#r=-1,this.#t.interval=void 0,"object"==typeof a){if(!Array.isArray(a.frames)||0===a.frames.length||a.frames.some(a=>"string"!=typeof a))throw Error("The given spinner must have a non-empty `frames` array of strings");if(void 0!==a.interval&&!(Number.isInteger(a.interval)&&a.interval>0))throw Error("`spinner.interval` must be a positive integer if provided");this.#u=a}else if(a8())if(void 0===a)this.#u=a1.dots;else if("default"!==a&&a1[a])this.#u=a1[a];else throw Error(`There is no built-in spinner named '${a}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);else this.#u=a1.line}get text(){return this.#t.text}set text(a=""){this.#t.text=a}get prefixText(){return this.#t.prefixText}set prefixText(a=""){this.#t.prefixText=a}get suffixText(){return this.#t.suffixText}set suffixText(a=""){this.#t.suffixText=a}get isSpinning(){return void 0!==this.#w}#M(a,b,c=!1){let d="function"==typeof a?a():a;return"string"==typeof d&&""!==d?c?b+d:d+b:""}#K(a=this.#t.prefixText,b=" "){return this.#M(a,b,!1)}#L(a=this.#t.suffixText,b=" "){return this.#M(a,b,!0)}#N(a,b){let c=0;for(let d of(0,u.stripVTControlCharacters)(a).split("\n"))c+=Math.max(1,Math.ceil(function(a,b={}){if("string"!=typeof a||0===a.length)return 0;let{ambiguousIsNarrow:c=!0,countAnsiEscapeCodes:d=!1}=b,e=a;if(!d&&(e.includes("\x1b")||e.includes("\x9b"))&&(e=function(a){if("string"!=typeof a)throw TypeError(`Expected a \`string\`, got \`${typeof a}\``);return a.includes("\x1b")||a.includes("\x9b")?a.replace(be,""):a}(e)),0===e.length)return 0;if(/^[\u0020-\u007E]*$/.test(e))return e.length;let f=0,g={ambiguousAsWide:!c};for(let{segment:a}of bm.segment(e)){if(bn.test(a))continue;if(bp.test(a)||function(a){if(a.length>50)return!1;if(bq.test(a))return!0;if(a.includes("")){let b=a.match(br);return null!==b&&b.length>=2}return!1}(a)){f+=2;continue}let b=a.replace(bo,""),c=function(a,b){let c=[];for(let b of a)bn.test(b)||c.push(b.codePointAt(0));if(0===c.length)return;let d=0;for(let a=0;a<c.length;a++){let e=c[a];if(!(bs(e)||bt(e)||bu(e))){if(0===d)return;for(let e=a;e<c.length;e++)d+=bl(c[e],b);break}if(bs(e)&&bt(c[a+1])){d+=2,a+=bu(c[a+2])?2:1;continue}d+=bl(e,b)}return d}(b,g);if(void 0!==c){f+=c;continue}f+=bl(b.codePointAt(0),g),f+=function(a,b){let c=0,d=!0;for(let e of a){if(d){d=!1;continue}e>=""&&e<=""&&(c+=bl(e.codePointAt(0),b))}return c}(b,g)}return f}(d)/b));return c}get color(){return this.#C}set color(a){if(void 0!==a&&!1!==a&&!by.has(a))throw Error("The `color` option must be a valid color or `false` to disable");this.#C=a}get isEnabled(){return this.#t.isEnabled&&!this.#t.isSilent}set isEnabled(a){if("boolean"!=typeof a)throw TypeError("The `isEnabled` option must be a boolean");this.#t.isEnabled=a}get isSilent(){return this.#t.isSilent}set isSilent(a){if("boolean"!=typeof a)throw TypeError("The `isSilent` option must be a boolean");this.#t.isSilent=a}frame(){let a=Date.now();(-1===this.#r||a-this.#s>=this.interval)&&(this.#r=(this.#r+1)%this.#u.frames.length,this.#s=a);let{frames:b}=this.#u,c=b[this.#r];return this.#C&&(c=aE[this.#C](c)),this.#K(this.#t.prefixText," ")+c+("string"==typeof this.text?" "+this.text:"")+this.#L(this.#t.suffixText," ")}clear(){return this.isEnabled&&this.#v.isTTY&&(this.#D(()=>{this.#v.cursorTo(0);for(let a=0;a<this.#q;a++)a>0&&this.#v.moveCursor(0,-1),this.#v.clearLine(1);this.#t.indent&&this.#v.cursorTo(this.#t.indent)}),this.#q=0),this}#O(a){if(!a||this.#x.has(a)||!a.isTTY||"function"!=typeof a.write)return;bx.has(a)&&console.warn("[ora] Multiple concurrent spinners detected. This may cause visual corruption. Use one spinner at a time.");let b=a.write;this.#x.set(a,b),bx.set(a,this),a.write=(c,d,e)=>this.#P(a,b,c,d,e)}#Q(){if(this.isEnabled&&!(this.#x.size>0))for(let a of new Set([this.#v,k.stdout,k.stderr]))this.#O(a)}#R(){for(let[a,b]of this.#x)a.write=b,bx.get(a)===this&&bx.delete(a);this.#x.clear()}#P(a,b,c,d,e){if("function"==typeof d&&(e=d,d=void 0),this.#y)return b.call(a,c,d,e);this.clear();let f=this.#F(c,d),g=this.#G(f),h=b.call(a,c,d,e);return g?this.#I():f.length>0&&this.#H(),this.isSpinning&&!this.#A&&this.render(),h}render(){if(!this.isEnabled||this.#z||this.#A)return this;let a=this.#v.isTTY,b=!1;try{a&&(this.#D(()=>this.#v.write("\x1b[?2026h")),b=!0),this.clear();let c=this.frame(),d=this.#v.columns??80,e=this.#N(c,d),f=this.#v.rows;f&&f>1&&e>f&&(c=[...c.split("\n").slice(0,f-1),"... (content truncated to fit terminal)"].join("\n"));let g=this.#D(()=>this.#v.write(c));!1===g&&this.#v.isTTY&&(this.#z=()=>{this.#z=void 0,this.#E()},this.#v.once("drain",this.#z)),this.#q=this.#N(c,d)}finally{b&&this.#D(()=>this.#v.write("\x1b[?2026l"))}return this}start(a){if(a&&(this.text=a),this.isSilent)return this;if(!this.isEnabled){let a=this.text?"-":"",b=" ".repeat(this.#t.indent)+this.#J(a,this.text,this.#t.prefixText,this.#t.suffixText);return""!==b.trim()&&this.#D(()=>this.#v.write(b+"\n")),this}return this.isSpinning||(this.#t.hideCursor&&a0.hide(this.#v),this.#t.discardStdin&&k.stdin.isTTY&&(bw.start(),this.#B=!0),this.#Q(),this.render(),this.#w=setInterval(this.render.bind(this),this.interval)),this}stop(){return clearInterval(this.#w),this.#w=void 0,this.#r=-1,this.#s=0,this.#I(),this.#R(),this.#z&&(this.#v.removeListener("drain",this.#z),this.#z=void 0),this.isEnabled&&(this.clear(),this.#t.hideCursor&&a0.show(this.#v)),this.#B&&(this.#B=!1,bw.stop()),this}succeed(a){return this.stopAndPersist({symbol:bb,text:a})}fail(a){return this.stopAndPersist({symbol:bd,text:a})}warn(a){return this.stopAndPersist({symbol:bc,text:a})}info(a){return this.stopAndPersist({symbol:ba,text:a})}stopAndPersist(a={}){if(this.isSilent)return this;let b=a.symbol??" ",c=a.text??this.text,d=a.prefixText??this.#t.prefixText,e=a.suffixText??this.#t.suffixText,f=this.#J(b,c,d,e)+"\n";return this.stop(),this.#D(()=>this.#v.write(f)),this}}var bA=c(13073);class bB{constructor(a){this.config=a}buildAuthUrl(a,b,c,d={}){let e=new URLSearchParams({client_id:this.config.clientId,response_type:"code",redirect_uri:a,state:b,code_challenge:c,code_challenge_method:this.config.codeChallengeMethod,...d});return`${this.config.authorizeUrl}?${e.toString()}`}async startAuthFlow(a,b){let c=new bz("Starting local server...").start(),d=null,{port:e,close:f}=await ag(a=>{d=a}),g=`http://localhost:${e}/callback`;return c.succeed(`Local server started on port ${e}`),{redirectUri:g,port:e,close:f,waitForCallback:async()=>{if(c.start(`Waiting for ${b} authorization...`),await new Promise((a,b)=>{let c=setTimeout(()=>{b(Error("Authentication timeout (5 minutes)"))},bA.Ww),e=setInterval(()=>{d&&(clearInterval(e),clearTimeout(c),a())},100)}),c.stop(),f(),d.error)throw Error(d.error_description||d.error);if(!d.code)throw Error("No authorization code received");return d}}}async exchangeCode(a,b,c,d="application/x-www-form-urlencoded"){let e="application/json"===d?JSON.stringify({grant_type:"authorization_code",client_id:this.config.clientId,code:a,redirect_uri:b,code_verifier:c}):new URLSearchParams({grant_type:"authorization_code",client_id:this.config.clientId,code:a,redirect_uri:b,code_verifier:c}),f=await fetch(this.config.tokenUrl,{method:"POST",headers:{"Content-Type":d,Accept:"application/json"},body:e});if(!f.ok){let a=await f.text();throw Error(`Token exchange failed: ${a}`)}return await f.json()}async authenticate(a,b){let{codeVerifier:c,codeChallenge:d,state:e}=(0,ah.lz)(),{redirectUri:f,waitForCallback:g}=await this.startAuthFlow(null,a),h=b(f,e,d);console.log(`
|
|
41
|
+
Opening browser for ${a} authentication...`),console.log(`If browser doesn't open, visit:
|
|
42
|
+
${h}
|
|
43
|
+
`),await ac(h);let i=await g();if(i.state!==e)throw Error("Invalid state parameter");return{code:i.code,state:i.state,codeVerifier:c,redirectUri:f}}}var bC=c(55511),bD=c.n(bC),bE=c(25482);let bF=null;function bG(a,b){let c,d=String(a||"").trim();if(!d)throw Error(`xai discovery ${b} is empty`);try{c=new URL(d)}catch(a){throw Error(`xai discovery ${b} is invalid: ${a.message}`)}if("https:"!==c.protocol)throw Error(`xai discovery ${b} must use https: ${d}`);let e=c.hostname.toLowerCase().trim();if("x.ai"!==e&&!e.endsWith(".x.ai"))throw Error(`xai discovery ${b} host ${e} is not on x.ai`);return d}async function bH(){if(bF)return bF;try{let a=await fetch(bE.oT.discoveryUrl,{headers:{Accept:"application/json"}});if(a.ok){let b=await a.json();return bF={authorizeUrl:bG(b.authorization_endpoint,"authorization_endpoint"),tokenUrl:bG(b.token_endpoint,"token_endpoint")}}}catch{}return bF={authorizeUrl:bE.oT.authorizeUrl,tokenUrl:bE.oT.tokenUrl}}function bI(a){if(!a||"string"!=typeof a)return;let b=a.split(".");if(3===b.length)try{let a=b[1].replace(/-/g,"+").replace(/_/g,"/"),c=(4-a.length%4)%4,d=Buffer.from(a+"=".repeat(c),"base64").toString("utf8"),e=JSON.parse(d);return e.email||e.preferred_username||e.sub||void 0}catch{return}}class bJ extends bB{constructor(){super(bE.oT)}buildXaiAuthUrl(a,b,c,d){let e=bD().randomBytes(16).toString("hex"),f=Object.entries({response_type:"code",client_id:bE.oT.clientId,redirect_uri:a,scope:bE.oT.scope,code_challenge:c,code_challenge_method:bE.oT.codeChallengeMethod,state:b,nonce:e,plan:"generic",referrer:"cli-proxy-api"}).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${d}?${f}`}async exchangeXaiCode({tokenUrl:a,code:b,redirectUri:c,codeVerifier:d}){let e=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:bE.oT.clientId,code:b,redirect_uri:c,code_verifier:d})});if(!e.ok){let a=await e.text();throw Error(`xAI token exchange failed: ${a}`)}return await e.json()}async refreshAccessToken(a){let{tokenUrl:b}=await bH(),c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",client_id:bE.oT.clientId,refresh_token:a})});if(!c.ok){let a=await c.text();throw Error(`xAI token refresh failed: ${a}`)}return await c.json()}async connect(){let a=new bz("Starting xAI OAuth...").start();try{a.text="Discovering xAI endpoints...";let{authorizeUrl:b,tokenUrl:c}=await bH();a.text=`Starting local server on port ${bE.oT.loopbackPort}...`;let d=null,{port:e,close:f}=await ag(a=>{d=a},bE.oT.loopbackPort),g=`http://127.0.0.1:${e}${bE.oT.callbackPath}`;a.succeed(`Local server started on port ${e}`);let h=(0,ah.$N)(bE.Ue),i=(0,ah.OK)(h),j=(0,ah.Zl)(),k=this.buildXaiAuthUrl(g,j,i,b);if(console.log("\nOpening browser for xAI authentication..."),console.log(`If browser doesn't open, visit:
|
|
44
|
+
${k}
|
|
45
|
+
`),await ac(k),a.start("Waiting for xAI authorization..."),await new Promise((a,b)=>{let c=setTimeout(()=>b(Error("Authentication timeout (5 minutes)")),3e5),e=setInterval(()=>{d&&(clearInterval(e),clearTimeout(c),a())},100)}),f(),d.error)throw Error(d.error_description||d.error);if(!d.code)throw Error("No authorization code received");if(d.state!==j)throw Error("Invalid state parameter");a.start("Exchanging code for tokens...");let l=await this.exchangeXaiCode({tokenUrl:c,code:d.code,redirectUri:g,codeVerifier:h}),m=bI(l.id_token);return a.succeed("xAI connected successfully!"),{tokens:l,email:m}}catch(b){throw a.fail(`Failed: ${b.message}`),b}}}},25433:(a,b,c)=>{"use strict";let d;a=c.nmd(a);let e=(a,b)=>(...c)=>{let d=a(...c);return`\u001B[${d+b}m`},f=(a,b)=>(...c)=>{let d=a(...c);return`\u001B[${38+b};5;${d}m`},g=(a,b)=>(...c)=>{let d=a(...c);return`\u001B[${38+b};2;${d[0]};${d[1]};${d[2]}m`},h=a=>a,i=(a,b,c)=>[a,b,c],j=(a,b,c)=>{Object.defineProperty(a,b,{get:()=>{let d=c();return Object.defineProperty(a,b,{value:d,enumerable:!0,configurable:!0}),d},enumerable:!0,configurable:!0})},k=(a,b,e,f)=>{void 0===d&&(d=c(58834));let g=10*!!f,h={};for(let[c,f]of Object.entries(d)){let d="ansi16"===c?"ansi":c;c===b?h[d]=a(e,g):"object"==typeof f&&(h[d]=a(f[b],g))}return h};Object.defineProperty(a,"exports",{enumerable:!0,get:function(){let a=new Map,b={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};for(let[c,d]of(b.color.gray=b.color.blackBright,b.bgColor.bgGray=b.bgColor.bgBlackBright,b.color.grey=b.color.blackBright,b.bgColor.bgGrey=b.bgColor.bgBlackBright,Object.entries(b))){for(let[c,e]of Object.entries(d))b[c]={open:`\u001B[${e[0]}m`,close:`\u001B[${e[1]}m`},d[c]=b[c],a.set(e[0],e[1]);Object.defineProperty(b,c,{value:d,enumerable:!1})}return Object.defineProperty(b,"codes",{value:a,enumerable:!1}),b.color.close="\x1b[39m",b.bgColor.close="\x1b[49m",j(b.color,"ansi",()=>k(e,"ansi16",h,!1)),j(b.color,"ansi256",()=>k(f,"ansi256",h,!1)),j(b.color,"ansi16m",()=>k(g,"rgb",i,!1)),j(b.bgColor,"ansi",()=>k(e,"ansi16",h,!0)),j(b.bgColor,"ansi256",()=>k(f,"ansi256",h,!0)),j(b.bgColor,"ansi16m",()=>k(g,"rgb",i,!0)),b}})},25467:(a,b,c)=>{"use strict";c.d(b,{$N:()=>f,OK:()=>g,Zl:()=>h,lz:()=>i});var d=c(55511),e=c.n(d);function f(a=32){return e().randomBytes(a).toString("base64url")}function g(a){return e().createHash("sha256").update(a).digest("base64url")}function h(){return e().randomBytes(32).toString("base64url")}function i(a=32){let b=f(a),c=g(b);return{codeVerifier:b,codeChallenge:c,state:h()}}},25482:(a,b,c)=>{"use strict";c.d(b,{Ue:()=>j,oT:()=>k,qF:()=>h});let d="https://auth.x.ai",e="/oauth2/authorize",f="/oauth2/token",g="/.well-known/openid-configuration",h="openid profile email offline_access grok-cli:access api:access",i="/callback",j=96,k={clientId:"b1a00492-073a-47ea-816f-4c329264a828",issuer:d,authEndpointPath:e,tokenEndpointPath:f,discoveryPath:g,authorizeUrl:`${d}${e}`,tokenUrl:`${d}${f}`,discoveryUrl:`${d}${g}`,scope:h,apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${i}`,loopbackPort:56121,callbackPath:i,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/zevairouter",codeChallengeMethod:"S256"}},51310:a=>{"use strict";a.exports={stringReplaceAll:(a,b,c)=>{let d=a.indexOf(b);if(-1===d)return a;let e=b.length,f=0,g="";do g+=a.substr(f,d-f)+b+c,f=d+e,d=a.indexOf(b,f);while(-1!==d);return g+a.substr(f)},stringEncaseCRLFWithFirstIndex:(a,b,c,d)=>{let e=0,f="";do{let g="\r"===a[d-1];f+=a.substr(e,(g?d-1:d)-e)+b+(g?"\r\n":"\n")+c,e=d+1,d=a.indexOf("\n",e)}while(-1!==d);return f+a.substr(e)}}},58834:(a,b,c)=>{let d=c(4457),e=c(90613),f={};Object.keys(d).forEach(a=>{f[a]={},Object.defineProperty(f[a],"channels",{value:d[a].channels}),Object.defineProperty(f[a],"labels",{value:d[a].labels});let b=e(a);Object.keys(b).forEach(c=>{let d,e,g=b[c];f[a][c]=(d=function(...a){let b=a[0];if(null==b)return b;b.length>1&&(a=b);let c=g(a);if("object"==typeof c)for(let a=c.length,b=0;b<a;b++)c[b]=Math.round(c[b]);return c},"conversion"in g&&(d.conversion=g.conversion),d),f[a][c].raw=(e=function(...a){let b=a[0];return null==b?b:(b.length>1&&(a=b),g(a))},"conversion"in g&&(e.conversion=g.conversion),e)})}),a.exports=f},78450:a=>{"use strict";a.exports=(a,b=process.argv)=>{let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}},85510:a=>{"use strict";a.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},86310:(a,b,c)=>{"use strict";let d,e=c(25433),{stdout:f,stderr:g}=c(12623),{stringReplaceAll:h,stringEncaseCRLFWithFirstIndex:i}=c(51310),{isArray:j}=Array,k=["ansi","ansi","ansi256","ansi16m"],l=Object.create(null);class m{constructor(a){return n(a)}}let n=a=>{let b={};return((a,b={})=>{if(b.level&&!(Number.isInteger(b.level)&&b.level>=0&&b.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let c=f?f.level:0;a.level=void 0===b.level?c:b.level})(b,a),b.template=(...a)=>u(b.template,...a),Object.setPrototypeOf(b,o.prototype),Object.setPrototypeOf(b.template,b),b.template.constructor=()=>{throw Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},b.template.Instance=m,b.template};function o(a){return n(a)}for(let[a,b]of Object.entries(e))l[a]={get(){let c=s(this,r(b.open,b.close,this._styler),this._isEmpty);return Object.defineProperty(this,a,{value:c}),c}};l.visible={get(){let a=s(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:a}),a}};let p=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let a of p)l[a]={get(){let{level:b}=this;return function(...c){return s(this,r(e.color[k[b]][a](...c),e.color.close,this._styler),this._isEmpty)}}};for(let a of p)l["bg"+a[0].toUpperCase()+a.slice(1)]={get(){let{level:b}=this;return function(...c){return s(this,r(e.bgColor[k[b]][a](...c),e.bgColor.close,this._styler),this._isEmpty)}}};let q=Object.defineProperties(()=>{},{...l,level:{enumerable:!0,get(){return this._generator.level},set(a){this._generator.level=a}}}),r=(a,b,c)=>{let d,e;return void 0===c?(d=a,e=b):(d=c.openAll+a,e=b+c.closeAll),{open:a,close:b,openAll:d,closeAll:e,parent:c}},s=(a,b,c)=>{let d=(...a)=>j(a[0])&&j(a[0].raw)?t(d,u(d,...a)):t(d,1===a.length?""+a[0]:a.join(" "));return Object.setPrototypeOf(d,q),d._generator=a,d._styler=b,d._isEmpty=c,d},t=(a,b)=>{if(a.level<=0||!b)return a._isEmpty?"":b;let c=a._styler;if(void 0===c)return b;let{openAll:d,closeAll:e}=c;if(-1!==b.indexOf("\x1b"))for(;void 0!==c;)b=h(b,c.close,c.open),c=c.parent;let f=b.indexOf("\n");return -1!==f&&(b=i(b,e,d,f)),d+b+e},u=(a,...b)=>{let[e]=b;if(!j(e)||!j(e.raw))return b.join(" ");let f=b.slice(1),g=[e.raw[0]];for(let a=1;a<e.length;a++)g.push(String(f[a-1]).replace(/[{}\\]/g,"\\$&"),String(e.raw[a]));return void 0===d&&(d=c(97415)),d(a,g.join(""))};Object.defineProperties(o.prototype,l);let v=n(void 0);v.supportsColor=f,v.stderr=n({level:g?g.level:0}),v.stderr.supportsColor=g,a.exports=v},90613:(a,b,c)=>{let d=c(4457);a.exports=function(a){let b=function(a){let b=function(){let a={},b=Object.keys(d);for(let c=b.length,d=0;d<c;d++)a[b[d]]={distance:-1,parent:null};return a}(),c=[a];for(b[a].distance=0;c.length;){let a=c.pop(),e=Object.keys(d[a]);for(let d=e.length,f=0;f<d;f++){let d=e[f],g=b[d];-1===g.distance&&(g.distance=b[a].distance+1,g.parent=a,c.unshift(d))}}return b}(a),c={},e=Object.keys(b);for(let a=e.length,f=0;f<a;f++){let a=e[f];null!==b[a].parent&&(c[a]=function(a,b){let c=[b[a].parent,a],e=d[b[a].parent][a],f=b[a].parent;for(;b[f].parent;)c.unshift(b[f].parent),e=function(a,b){return function(c){return b(a(c))}}(d[b[f].parent][f],e),f=b[f].parent;return e.conversion=c,e}(a,b))}return c}},97415:a=>{"use strict";let b=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,c=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,d=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,e=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,f=new Map([["n","\n"],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1b"],["a","\x07"]]);function g(a){let b="u"===a[0],c="{"===a[1];return b&&!c&&5===a.length||"x"===a[0]&&3===a.length?String.fromCharCode(parseInt(a.slice(1),16)):b&&c?String.fromCodePoint(parseInt(a.slice(2,-1),16)):f.get(a)||a}function h(a,b){let c={};for(let a of b)for(let b of a.styles)c[b[0]]=a.inverse?null:b.slice(1);let d=a;for(let[a,b]of Object.entries(c))if(Array.isArray(b)){if(!(a in d))throw Error(`Unknown Chalk style: ${a}`);d=b.length>0?d[a](...b):d[a]}return d}a.exports=(a,f)=>{let i=[],j=[],k=[];if(f.replace(b,(b,f,l,m,n,o)=>{if(f)k.push(g(f));else if(m){let b=k.join("");k=[],j.push(0===i.length?b:h(a,i)(b)),i.push({inverse:l,styles:function(a){let b;c.lastIndex=0;let f=[];for(;null!==(b=c.exec(a));){let a=b[1];if(b[2]){let c=function(a,b){let c,f=[];for(let h of b.trim().split(/\s*,\s*/g)){let b=Number(h);if(Number.isNaN(b))if(c=h.match(d))f.push(c[2].replace(e,(a,b,c)=>b?g(b):c));else throw Error(`Invalid Chalk template style argument: ${h} (in style '${a}')`);else f.push(b)}return f}(a,b[2]);f.push([a].concat(c))}else f.push([a])}return f}(m)})}else if(n){if(0===i.length)throw Error("Found extraneous } in Chalk template literal");j.push(h(a,i)(k.join(""))),k=[],i.pop()}else k.push(o)}),j.push(k.join("")),i.length>0)throw Error(`Chalk template literal is missing ${i.length} closing bracket${1===i.length?"":"s"} (\`}\`)`);return j.join("")}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=4720,exports.ids=[4720],exports.modules={47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,NR:()=>d.NR,Op:()=>d.Op,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,
|
|
1
|
+
"use strict";exports.id=4720,exports.ids=[4720],exports.modules={47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,Kg:()=>d.Kg,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,NR:()=>d.NR,Op:()=>d.Op,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,dK:()=>d.dK,deleteModelAlias:()=>d.fv,ek:()=>d.ek,fK:()=>d.fK,getModelAliases:()=>d.OM,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(93999)}};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
exports.id=8242,exports.ids=[8242],exports.modules={43173:(a,b,c)=>{"use strict";c.d(b,{default:()=>m});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(2116),i=c.n(h),j=c(50412),k=c(50377);let l=[{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"}];function m({machineId:a}){let[b,c]=(0,e.useState)([]),[f,g]=(0,e.useState)(!0),[h,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(null),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(()=>new Set),[E,F]=(0,e.useState)(()=>({})),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(!0),[K,L]=(0,e.useState)(!0),[M,N]=(0,e.useState)(!1),[O,P]=(0,e.useState)(!0),[Q,R]=(0,e.useState)(!1),[S,T]=(0,e.useState)(!1),[U,V]=(0,e.useState)(""),[W,X]=(0,e.useState)(""),[Y,Z]=(0,e.useState)(!1),[$,_]=(0,e.useState)(""),[aa,ab]=(0,e.useState)(null),[ac,ad]=(0,e.useState)(!1),[ae,af]=(0,e.useState)(!1),[ag,ah]=(0,e.useState)(!1),[ai,aj]=(0,e.useState)(!1),[ak,al]=(0,e.useState)(""),[am,an]=(0,e.useState)(!1),[ao,ap]=(0,e.useState)(""),[aq,ar]=(0,e.useState)(null),[as,at]=(0,e.useState)(""),[au,av]=(0,e.useState)(""),[aw,ax]=(0,e.useState)(null),[ay,az]=(0,e.useState)(!1),[aA,aB]=(0,e.useState)([]),[aC,aD]=(0,e.useState)(""),[aE,aF]=(0,e.useState)(!1),[aG,aH]=(0,e.useState)(!1),[aI,aJ]=(0,e.useState)(!1),aK=(0,e.useRef)(null),aL=(0,e.useRef)(0),aM=(0,e.useRef)(0);(0,e.useRef)(0),(0,e.useRef)(0),(0,e.useRef)(!1),(0,e.useRef)(!1),(0,e.useRef)(!1),(0,e.useRef)(!1);let[aN,aO]=(0,e.useState)(!1),[aP,aQ]=(0,e.useState)(!1),[aR,aS]=(0,e.useState)(!1),{copied:aT,copy:aU}=(0,k.C)(),aV=!I||!K,aW=I?"Change the default dashboard password before activating the tunnel.":'Enable "Require login" and set a custom password before activating the tunnel.';(0,e.useCallback)((a,b,c,d,e,f)=>{b.current?(c.current=0,d(!0),e.current||(e.current=!0,f(!0))):(c.current+=1,c.current>=5&&d(!1))},[]);let aX=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tunnelDashboardAccess:a})})).ok&&N(a)}catch(a){console.log("Error updating tunnelDashboardAccess:",a)}},aY=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApiKey:a})})).ok&&H(a)}catch(a){console.log("Error updating requireApiKey:",a)}},aZ=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)}},a$=async(a,...b)=>{let c=()=>aL.current===a;Z(!0),_("Waiting for tunnel ready...");let d=b.filter(Boolean).map(a=>`${a}/api/health`),e=Date.now();for(;Date.now()-e<3e5;){if(await new Promise(a=>setTimeout(a,2e3)),!c())return!1;let a=await Promise.any(d.map(async a=>{if((await fetch(a,{mode:"cors",cache:"no-store"})).ok)return!0;throw Error("not ready")})).catch(()=>!1);if(!c())return!1;if(a)return R(!0),Z(!1),_(""),!0;if((Date.now()-e)%1e4<2e3)try{let a=await fetch("/api/tunnel/status");if(a.ok){let b=await a.json();if(!b.tunnel?.enabled)return ab({type:"error",message:"Tunnel process stopped unexpectedly."}),Z(!1),_(""),!1}}catch{}}return ab({type:"error",message:"Tunnel created but not reachable. Please try again."}),Z(!1),_(""),!1},a_=async()=>{ad(!1);let a=aL.current+1;aL.current=a;let b=()=>aL.current===a;Z(!0),ab(null),_("Creating tunnel...");let c=!0;(async()=>{for(;c&&b();){try{let a=await fetch("/api/tunnel/status");if(a.ok){let d=await a.json();d.download?.downloading?_(`Downloading cloudflared... ${d.download.progress}%`):c&&b()&&_("Creating tunnel...")}}catch{}await new Promise(a=>setTimeout(a,1e3))}})();try{let d=await fetch("/api/tunnel/enable",{method:"POST"});c=!1;let e=await d.json();if(!b())return;if(!d.ok)return void ab({type:"error",message:e.error||"Failed to enable tunnel"});let f=e.tunnelUrl;if(!f)return void ab({type:"error",message:"No tunnel URL returned"});V(f),X(e.publicUrl||""),await a$(a,e.publicUrl,f)}catch(a){b()&&ab({type:"error",message:a.message})}finally{c=!1,b()&&(Z(!1),_(""))}},a0=async()=>{Z(!0),ab(null);try{let a=await fetch("/api/tunnel/disable",{method:"POST"}),b=await a.json();a.ok?(R(!1),V(""),af(!1),ab({type:"success",message:"Tunnel disabled"})):ab({type:"error",message:b.error||"Failed to disable tunnel"})}catch(a){ab({type:"error",message:a.message})}finally{Z(!1)}},a1=async()=>{ax(null);try{let a=await fetch("/api/tunnel/tailscale-check");if(a.ok){let b=await a.json();return ax(b.installed),b}}catch{}return ax(!1),{installed:!1}},a2=async()=>{az(!0),ar(null),aB([]);try{let a=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:aC})});if(aD(""),!a.ok){let b=await a.json().catch(()=>({}));throw Error(b.error||`Install failed (${a.status})`)}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)aB(a=>[...a.slice(-50),d.message]);else if("done"===c){ax(!0),az(!1),aH(!1),a6();return}else"error"===c&&ar({type:"error",message:d.error||"Install failed"})}}}catch(a){ar({type:"error",message:a.message})}finally{az(!1)}},a3=async(a,b)=>{let c=()=>aM.current===a;ap("Waiting for Tailscale ready...");let d=`${b}/api/health`,e=Date.now();for(;Date.now()-e<3e5&&(await new Promise(a=>setTimeout(a,2e3)),c());)try{let a=await fetch(d,{mode:"no-cors",cache:"no-store"});if(a.ok||"opaque"===a.type)return!0}catch{}return!1},a4=(a,b)=>{at(a),av(b)},a5=()=>{at(""),av("")},a6=async()=>{aH(!1);let a=aM.current+1;aM.current=a;let b=()=>aM.current===a;aF(!0),an(!0),ar(null),ap("Connecting..."),a5();try{let c=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),d=await c.json();if(!b())return;if(c.ok&&d.success){al(d.tunnelUrl||"");let c=await a3(a,d.tunnelUrl);if(!b())return;ah(!0),ar(c?null:{type:"warning",message:"Connected but not reachable yet."});return}if(d.needsLogin&&d.authUrl){a4(d.authUrl,"Open Login Page"),ap('Login required — click "Open Login Page" to continue');for(let c=0;c<40;c++){if(await new Promise(a=>setTimeout(a,3e3)),!b())return;try{let c=await fetch("/api/tunnel/tailscale-check");if(c.ok&&(await c.json()).loggedIn){a5(),ap("Starting funnel...");let c=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),d=await c.json();if(!b())return;if(c.ok&&d.success){al(d.tunnelUrl||"");let c=await a3(a,d.tunnelUrl);if(!b())return;ah(!0),ar(c?null:{type:"warning",message:"Connected but not reachable yet."})}else d.funnelNotEnabled&&d.enableUrl?await a7(a,d.enableUrl):ar({type:"error",message:d.error||"Failed to start funnel"});return}}catch{}}a5(),ar({type:"error",message:"Login timed out. Please try again."});return}if(d.funnelNotEnabled&&d.enableUrl)return void await a7(a,d.enableUrl);ar({type:"error",message:d.error||"Failed to connect"})}catch(a){b()&&ar({type:"error",message:a.message})}finally{b()&&(an(!1),aF(!1),ap(""),a5())}},a7=async(a,b)=>{let c=()=>aM.current===a;a4(b,"Open Funnel Settings"),ap('Click "Open Funnel Settings" to enable Funnel...');for(let b=0;b<40;b++){if(await new Promise(a=>setTimeout(a,3e3)),!c())return;try{let b=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),d=await b.json();if(!c())return;if(b.ok&&d.success){a5(),al(d.tunnelUrl||"");let b=await a3(a,d.tunnelUrl);if(!c())return;ah(!0),ar(b?null:{type:"warning",message:"Connected but not reachable yet."});return}if(d.funnelNotEnabled)continue;if(d.error){a5(),ar({type:"error",message:d.error});return}}catch{}}a5(),ar({type:"error",message:"Timed out waiting for Funnel to be enabled."})},a8=async()=>{an(!0),ar(null);try{let a=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),b=await a.json();a.ok?(ah(!1),al(""),aJ(!1),ar({type:"success",message:"Tailscale disabled"})):ar({type:"error",message:b.error||"Failed to disable Tailscale"})}catch(a){ar({type:"error",message:a.message})}finally{an(!1)}},a9=async()=>{ar(null),aB([]);let a=await a1();a?.installed&&a?.hasCachedPassword?a6():aH(!0)},ba=async a=>{if(a.preventDefault(),s.trim()&&!y){z("create"),B(null);try{let a=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:s})}),b=await a.json();if(!a.ok)throw Error(b.error||`Failed to create key (${a.status})`);v(b.key),b.id&&b.key&&F(a=>({...a,[b.id]:b.key})),await aZ(),t(""),r(!1),B({type:"success",message:"API key created"})}catch(a){B({type:"error",message:a.message})}finally{z(null)}}},bb=async(a,b)=>{if(!y){z(`toggle:${a}`),B(null);try{let d=await fetch(`/api/keys/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:b})});if(!d.ok)throw Error(`Failed to update key (${d.status})`);c(c=>c.map(c=>c.id===a?{...c,isActive:b}:c)),B({type:"success",message:"API key updated"})}catch(a){B({type:"error",message:a.message})}finally{z(null)}}},bc=async(a,b,d)=>{if(y)return;let e=""===d?0:Math.max(0,Number(d)||0);z(`budget:${a}`),B(null);try{let d=await fetch(`/api/keys/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({[b]:e})});if(!d.ok)throw Error(`Failed to update budget (${d.status})`);c(c=>c.map(c=>c.id===a?{...c,[b]:e}:c)),B({type:"success",message:"Budget updated"})}catch(a){B({type:"error",message:a.message})}finally{z(null)}},bd=async a=>{if(E[a])return E[a];let b=await fetch(`/api/keys/${a}?reveal=1`,{cache:"no-store"}),c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c.error||`Failed to reveal key (${b.status})`);let d=c.key?.key||c.key;if("string"!=typeof d||!d)throw Error("Key secret is not available");return F(b=>({...b,[a]:d})),d},be=async a=>{if(C.has(a))return void D(b=>{let c=new Set(b);return c.delete(a),c});try{await bd(a),D(b=>{let c=new Set(b);return c.add(a),c}),B(null)}catch(a){B({type:"error",message:a.message})}},bf=async a=>{try{let b=await bd(a);aU(b,a),B(null)}catch(a){B({type:"error",message:a.message})}},[bg,bh]=(0,e.useState)("/v1");return f?(0,d.jsxs)("div",{className:"flex flex-col gap-6 lg:gap-7",children:[(0,d.jsx)(j.Qv,{}),(0,d.jsx)(j.Qv,{})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-6 lg:gap-7",children:[(0,d.jsxs)(j.Zp,{padding:"none",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 rounded-t-[13px] border-b border-border-subtle bg-linear-to-r from-primary/[0.07] via-primary/[0.025] to-transparent px-4 py-4 sm:px-5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary/12 text-[22px] text-primary ring-1 ring-primary/15",children:"terminal"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold leading-tight",children:"API Endpoint"}),(0,d.jsx)("p",{className:"mt-0.5 text-xs text-text-muted",children:"Choose how local and remote clients connect to Zevai Router."})]})]}),(0,d.jsxs)("div",{className:"p-4 sm:p-5",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)(n,{label:"Local",url:bg,copyId:"local_url",copied:aT,onCopy:aU}),(0,d.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2.5 rounded-xl border border-border-subtle bg-bg/55 p-3 transition-colors hover:border-primary/20 sm:flex",children:[(0,d.jsx)("span",{className:`col-span-full inline-flex min-h-8 w-full shrink-0 items-center justify-center rounded-lg px-2.5 text-[11px] font-semibold uppercase tracking-[0.08em] sm:w-[96px] ${Q?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tunnel"}),Q&&!Y&&S?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(j.pd,{"aria-label":"Cloudflare Tunnel endpoint URL",value:`${W||U}/v1`,readOnly:!0,className:"w-full min-w-0 font-mono text-sm sm:flex-1"}),(0,d.jsx)("button",{onClick:()=>aU(`${W||U}/v1`,"tunnel_url"),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-9 sm:rounded-lg",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tunnel_url"===aT?"check":"content_copy"})}),(0,d.jsx)("button",{onClick:()=>af(!0),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Disable Tunnel",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!Q||Y||S?Y?(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"}),$||"Creating tunnel..."]}),(0,d.jsx)("button",{onClick:()=>{aL.current+=1,Z(!1),_("")},className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):aa?.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"}),aa.message]}),(0,d.jsx)(j.$n,{size:"sm",icon:"cloud_upload",className:"min-h-11 sm:min-h-8",onClick:()=>ad(!0),children:"Enable"})]}):O?(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:()=>P(!1),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):(0,d.jsx)(j.$n,{size:"sm",icon:"cloud_upload",className:"min-h-11 sm:min-h-8",onClick:()=>{aV?ab({type:"error",message:`Security required: ${aW}`}):G?ad(!0):ab({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},children:"Enable"}):(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-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),aN?"Tunnel reconnecting...":"Tunnel checking..."]}),(0,d.jsx)("button",{onClick:()=>af(!0),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Disable Tunnel",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]}),(0,d.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2.5 rounded-xl border border-border-subtle bg-bg/55 p-3 transition-colors hover:border-primary/20 sm:flex",children:[(0,d.jsx)("span",{className:`col-span-full inline-flex min-h-8 w-full shrink-0 items-center justify-center rounded-lg px-2.5 text-[11px] font-semibold uppercase tracking-[0.08em] sm:w-[96px] ${ag?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tailscale"}),ag&&!am&&ai?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(j.pd,{"aria-label":"Tailscale endpoint URL",value:`${ak}/v1`,readOnly:!0,className:"w-full min-w-0 font-mono text-sm sm:flex-1"}),(0,d.jsx)("button",{onClick:()=>aU(`${ak}/v1`,"ts_url"),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-9 sm:rounded-lg",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"ts_url"===aT?"check":"content_copy"})}),(0,d.jsx)("button",{onClick:()=>aJ(!0),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Disable Tailscale",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!ag||am||ai?am||aE?(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"}),ao||"Connecting..."]}),as&&(0,d.jsx)(j.$n,{size:"sm",icon:"open_in_new",onClick:()=>window.open(as,"tailscale_auth","width=600,height=700,noopener,noreferrer"),children:au||"Open"}),(0,d.jsx)("button",{onClick:()=>{aM.current+=1,an(!1),aF(!1),ap(""),a5()},className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):aq?.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"}),aq.message]}),(0,d.jsx)(j.$n,{size:"sm",icon:"vpn_lock",className:"min-h-11 sm:min-h-8",onClick:a9,children:"Enable"})]}):(0,d.jsx)(j.$n,{size:"sm",icon:"vpn_lock",onClick:()=>{aV?ar({type:"error",message:`Security required: ${aW}`}):a9()},className:"min-h-11 sm:min-h-8",children:"Enable"}):(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-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),aP?"Tailscale reconnecting...":"Tailscale checking..."]}),(0,d.jsx)("button",{onClick:()=>aJ(!0),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Disable Tailscale",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]})]}),aV&&!Q&&!ag&&(0,d.jsx)("div",{className:"mt-4",children:(0,d.jsx)(q,{message:aW,action:{label:"Open settings",href:"/dashboard/profile"}})}),(Q||ag)&&(0,d.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[!G&&(0,d.jsx)(q,{message:"Require API key is disabled — your endpoint is publicly accessible without authentication.",action:{label:"Enable",href:"#require-api-key"}}),(!I||!K)&&(0,d.jsx)(q,{message:I?"Dashboard uses the default password — change it in Profile settings.":"Require login is disabled — anyone can access your dashboard via tunnel.",action:{label:I?"Change password":"Enable",href:"/dashboard/profile"}})]}),(Q||ag)&&(0,d.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex items-center gap-3",children:[(0,d.jsx)(j.lM,{touchTarget:!0,label:"Allow dashboard access via tunnel",checked:M,onChange:()=>aX(!M)}),(0,d.jsx)(p,{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.jsx)(j.Zp,{id:"rtk",padding:"none",className:"relative overflow-hidden border-primary/20 bg-linear-to-br from-primary/[0.08] via-surface to-surface",children:(0,d.jsxs)("div",{className:"relative flex flex-col gap-4 p-5 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary text-[22px] text-white shadow-[0_10px_24px_-14px_rgba(229,106,74,0.9)]",children:"bolt"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold leading-tight",children:"Token Saver"}),(0,d.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tune RTK, Caveman, Ponytail, Headroom, and PXPIPE in one workspace."})]})]}),(0,d.jsxs)(i(),{href:"/dashboard/token-saver",className:"inline-flex min-h-11 w-full shrink-0 items-center justify-center gap-1.5 rounded-xl border border-primary/25 bg-surface/80 px-3.5 py-2 text-sm font-semibold text-text-main shadow-sm transition-[border-color,color,transform] hover:translate-x-0.5 hover:border-primary/50 hover:text-primary sm:min-h-0 sm:w-auto sm:rounded-lg",children:["Open workspace",(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_forward"})]})]})}),(0,d.jsxs)(j.Zp,{id:"require-api-key",children:[(0,d.jsxs)("div",{className:"mb-5 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary/10 text-[21px] text-primary ring-1 ring-primary/15",children:"vpn_key"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold leading-tight",children:"API Keys"}),(0,d.jsxs)("span",{className:"rounded-full bg-surface-2 px-2 py-0.5 text-[10px] font-semibold text-text-muted ring-1 ring-border-subtle",children:[b.length," ",1===b.length?"key":"keys"]})]}),(0,d.jsx)("p",{className:"mt-0.5 text-xs text-text-muted",children:"Control authentication and spending per client."})]})]}),(0,d.jsx)(j.$n,{icon:"add",onClick:()=>r(!0),className:"w-full sm:w-auto",children:"Create Key"})]}),A&&(0,d.jsx)("p",{role:"status",className:`mb-4 text-sm ${"error"===A.type?"text-red-500":"text-green-500"}`,children:A.message}),(0,d.jsxs)("div",{className:"mb-4 flex flex-col gap-3 rounded-xl border border-primary/15 bg-primary/[0.045] p-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-lg bg-surface text-[17px] text-primary ring-1 ring-border-subtle",children:"shield_lock"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium",children:"Require API key"}),(0,d.jsx)("p",{className:"mt-0.5 text-sm text-text-muted",children:"Reject requests that do not include a valid client key."})]})]}),(0,d.jsx)("div",{className:"shrink-0 self-end sm:self-auto",children:(0,d.jsx)(j.lM,{touchTarget:!0,label:"Require API key",checked:G,onChange:()=>aY(!G)})})]}),aR&&!G&&(0,d.jsx)("div",{className:"mb-4 -mt-2",children:(0,d.jsx)(q,{message:"Endpoint is exposed without an API key."})}),0===b.length?(0,d.jsxs)("div",{className:"rounded-xl border border-dashed border-border bg-surface-2/25 py-12 text-center",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)(j.$n,{icon:"add",onClick:()=>r(!0),children:"Create Key"})]}):(0,d.jsx)("div",{className:"grid grid-cols-1 gap-3 lg:grid-cols-2",children:b.map(a=>{var b,e;return(0,d.jsxs)("div",{className:`group flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-xl border border-border-subtle bg-surface-2/25 p-4 transition-[border-color,box-shadow,opacity] hover:border-primary/20 hover:shadow-[0_14px_28px_-26px_rgba(15,23,42,0.65)] ${!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 min-w-0",children:[(0,d.jsx)("code",{className:"text-xs text-text-muted font-mono truncate max-w-[min(100%,28rem)]",children:(b=a,C.has(b.id)&&E[b.id]?E[b.id]:b.maskedKey||((e=b.key)?e.length>8?e.slice(0,8)+"...":e:"")||"••••••••")}),(0,d.jsx)("button",{type:"button",onClick:()=>be(a.id),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted opacity-100 transition-all hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-7 sm:rounded-lg sm:opacity-0 sm:group-hover:opacity-100",title:C.has(a.id)?"Hide key":"Show key","aria-label":C.has(a.id)?"Hide API key":"Show API key",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:C.has(a.id)?"visibility_off":"visibility"})}),(0,d.jsx)("button",{type:"button",onClick:()=>bf(a.id),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted opacity-100 transition-all hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-7 sm:rounded-lg sm:opacity-0 sm:group-hover:opacity-100",title:"Copy key","aria-label":"Copy API key",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:aT===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:"mt-3 flex flex-wrap items-center gap-3",children:[(0,d.jsxs)("label",{className:"flex items-center gap-1 text-[11px] text-text-muted",children:["Daily $",(0,d.jsx)("input",{type:"number",min:"0",step:"0.01",disabled:y===`budget:${a.id}`,defaultValue:a.budgetDaily||0,onBlur:b=>bc(a.id,"budgetDaily",b.target.value),className:"w-16 rounded border border-border bg-surface px-1 py-0.5 text-[11px]",title:"Daily budget cap in USD (0 = unlimited)"},`daily-${a.budgetDaily||0}`)]}),(0,d.jsxs)("label",{className:"flex items-center gap-1 text-[11px] text-text-muted",children:["Monthly $",(0,d.jsx)("input",{type:"number",min:"0",step:"0.01",disabled:y===`budget:${a.id}`,defaultValue:a.budgetMonthly||0,onBlur:b=>bc(a.id,"budgetMonthly",b.target.value),className:"w-16 rounded border border-border bg-surface px-1 py-0.5 text-[11px]",title:"Monthly budget cap in USD (0 = unlimited)"},`monthly-${a.budgetMonthly||0}`)]})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"flex size-11 items-center justify-center sm:size-auto",children:(0,d.jsx)(j.lM,{size:"sm",touchTarget:!0,disabled:y===`toggle:${a.id}`,checked:a.isActive??!0,onChange:b=>{a.isActive&&!b?x({title:"Pause API Key",message:`Pause API key "${a.name}"?
|
|
1
|
+
exports.id=4721,exports.ids=[4721],exports.modules={43173:(a,b,c)=>{"use strict";c.d(b,{default:()=>m});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(2116),i=c.n(h),j=c(50412),k=c(50377);let l=[{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"}];function m({machineId:a}){let[b,c]=(0,e.useState)([]),[f,g]=(0,e.useState)(!0),[h,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(null),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(()=>new Set),[E,F]=(0,e.useState)(()=>({})),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(!0),[K,L]=(0,e.useState)(!0),[M,N]=(0,e.useState)(!1),[O,P]=(0,e.useState)(!0),[Q,R]=(0,e.useState)(!1),[S,T]=(0,e.useState)(!1),[U,V]=(0,e.useState)(""),[W,X]=(0,e.useState)(""),[Y,Z]=(0,e.useState)(!1),[$,_]=(0,e.useState)(""),[aa,ab]=(0,e.useState)(null),[ac,ad]=(0,e.useState)(!1),[ae,af]=(0,e.useState)(!1),[ag,ah]=(0,e.useState)(!1),[ai,aj]=(0,e.useState)(!1),[ak,al]=(0,e.useState)(""),[am,an]=(0,e.useState)(!1),[ao,ap]=(0,e.useState)(""),[aq,ar]=(0,e.useState)(null),[as,at]=(0,e.useState)(""),[au,av]=(0,e.useState)(""),[aw,ax]=(0,e.useState)(null),[ay,az]=(0,e.useState)(!1),[aA,aB]=(0,e.useState)([]),[aC,aD]=(0,e.useState)(""),[aE,aF]=(0,e.useState)(!1),[aG,aH]=(0,e.useState)(!1),[aI,aJ]=(0,e.useState)(!1),aK=(0,e.useRef)(null),aL=(0,e.useRef)(0),aM=(0,e.useRef)(0);(0,e.useRef)(0),(0,e.useRef)(0),(0,e.useRef)(!1),(0,e.useRef)(!1),(0,e.useRef)(!1),(0,e.useRef)(!1);let[aN,aO]=(0,e.useState)(!1),[aP,aQ]=(0,e.useState)(!1),[aR,aS]=(0,e.useState)(!1),{copied:aT,copy:aU}=(0,k.C)(),aV=!I||!K,aW=I?"Change the default dashboard password before activating the tunnel.":'Enable "Require login" and set a custom password before activating the tunnel.';(0,e.useCallback)((a,b,c,d,e,f)=>{b.current?(c.current=0,d(!0),e.current||(e.current=!0,f(!0))):(c.current+=1,c.current>=5&&d(!1))},[]);let aX=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tunnelDashboardAccess:a})})).ok&&N(a)}catch(a){console.log("Error updating tunnelDashboardAccess:",a)}},aY=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApiKey:a})})).ok&&H(a)}catch(a){console.log("Error updating requireApiKey:",a)}},aZ=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)}},a$=async(a,...b)=>{let c=()=>aL.current===a;Z(!0),_("Waiting for tunnel ready...");let d=b.filter(Boolean).map(a=>`${a}/api/health`),e=Date.now();for(;Date.now()-e<3e5;){if(await new Promise(a=>setTimeout(a,2e3)),!c())return!1;let a=await Promise.any(d.map(async a=>{if((await fetch(a,{mode:"cors",cache:"no-store"})).ok)return!0;throw Error("not ready")})).catch(()=>!1);if(!c())return!1;if(a)return R(!0),Z(!1),_(""),!0;if((Date.now()-e)%1e4<2e3)try{let a=await fetch("/api/tunnel/status");if(a.ok){let b=await a.json();if(!b.tunnel?.enabled)return ab({type:"error",message:"Tunnel process stopped unexpectedly."}),Z(!1),_(""),!1}}catch{}}return ab({type:"error",message:"Tunnel created but not reachable. Please try again."}),Z(!1),_(""),!1},a_=async()=>{ad(!1);let a=aL.current+1;aL.current=a;let b=()=>aL.current===a;Z(!0),ab(null),_("Creating tunnel...");let c=!0;(async()=>{for(;c&&b();){try{let a=await fetch("/api/tunnel/status");if(a.ok){let d=await a.json();d.download?.downloading?_(`Downloading cloudflared... ${d.download.progress}%`):c&&b()&&_("Creating tunnel...")}}catch{}await new Promise(a=>setTimeout(a,1e3))}})();try{let d=await fetch("/api/tunnel/enable",{method:"POST"});c=!1;let e=await d.json();if(!b())return;if(!d.ok)return void ab({type:"error",message:e.error||"Failed to enable tunnel"});let f=e.tunnelUrl;if(!f)return void ab({type:"error",message:"No tunnel URL returned"});V(f),X(e.publicUrl||""),await a$(a,e.publicUrl,f)}catch(a){b()&&ab({type:"error",message:a.message})}finally{c=!1,b()&&(Z(!1),_(""))}},a0=async()=>{Z(!0),ab(null);try{let a=await fetch("/api/tunnel/disable",{method:"POST"}),b=await a.json();a.ok?(R(!1),V(""),af(!1),ab({type:"success",message:"Tunnel disabled"})):ab({type:"error",message:b.error||"Failed to disable tunnel"})}catch(a){ab({type:"error",message:a.message})}finally{Z(!1)}},a1=async()=>{ax(null);try{let a=await fetch("/api/tunnel/tailscale-check");if(a.ok){let b=await a.json();return ax(b.installed),b}}catch{}return ax(!1),{installed:!1}},a2=async()=>{az(!0),ar(null),aB([]);try{let a=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:aC})});if(aD(""),!a.ok){let b=await a.json().catch(()=>({}));throw Error(b.error||`Install failed (${a.status})`)}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)aB(a=>[...a.slice(-50),d.message]);else if("done"===c){ax(!0),az(!1),aH(!1),a6();return}else"error"===c&&ar({type:"error",message:d.error||"Install failed"})}}}catch(a){ar({type:"error",message:a.message})}finally{az(!1)}},a3=async(a,b)=>{let c=()=>aM.current===a;ap("Waiting for Tailscale ready...");let d=`${b}/api/health`,e=Date.now();for(;Date.now()-e<3e5&&(await new Promise(a=>setTimeout(a,2e3)),c());)try{let a=await fetch(d,{mode:"no-cors",cache:"no-store"});if(a.ok||"opaque"===a.type)return!0}catch{}return!1},a4=(a,b)=>{at(a),av(b)},a5=()=>{at(""),av("")},a6=async()=>{aH(!1);let a=aM.current+1;aM.current=a;let b=()=>aM.current===a;aF(!0),an(!0),ar(null),ap("Connecting..."),a5();try{let c=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),d=await c.json();if(!b())return;if(c.ok&&d.success){al(d.tunnelUrl||"");let c=await a3(a,d.tunnelUrl);if(!b())return;ah(!0),ar(c?null:{type:"warning",message:"Connected but not reachable yet."});return}if(d.needsLogin&&d.authUrl){a4(d.authUrl,"Open Login Page"),ap('Login required — click "Open Login Page" to continue');for(let c=0;c<40;c++){if(await new Promise(a=>setTimeout(a,3e3)),!b())return;try{let c=await fetch("/api/tunnel/tailscale-check");if(c.ok&&(await c.json()).loggedIn){a5(),ap("Starting funnel...");let c=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),d=await c.json();if(!b())return;if(c.ok&&d.success){al(d.tunnelUrl||"");let c=await a3(a,d.tunnelUrl);if(!b())return;ah(!0),ar(c?null:{type:"warning",message:"Connected but not reachable yet."})}else d.funnelNotEnabled&&d.enableUrl?await a7(a,d.enableUrl):ar({type:"error",message:d.error||"Failed to start funnel"});return}}catch{}}a5(),ar({type:"error",message:"Login timed out. Please try again."});return}if(d.funnelNotEnabled&&d.enableUrl)return void await a7(a,d.enableUrl);ar({type:"error",message:d.error||"Failed to connect"})}catch(a){b()&&ar({type:"error",message:a.message})}finally{b()&&(an(!1),aF(!1),ap(""),a5())}},a7=async(a,b)=>{let c=()=>aM.current===a;a4(b,"Open Funnel Settings"),ap('Click "Open Funnel Settings" to enable Funnel...');for(let b=0;b<40;b++){if(await new Promise(a=>setTimeout(a,3e3)),!c())return;try{let b=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),d=await b.json();if(!c())return;if(b.ok&&d.success){a5(),al(d.tunnelUrl||"");let b=await a3(a,d.tunnelUrl);if(!c())return;ah(!0),ar(b?null:{type:"warning",message:"Connected but not reachable yet."});return}if(d.funnelNotEnabled)continue;if(d.error){a5(),ar({type:"error",message:d.error});return}}catch{}}a5(),ar({type:"error",message:"Timed out waiting for Funnel to be enabled."})},a8=async()=>{an(!0),ar(null);try{let a=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),b=await a.json();a.ok?(ah(!1),al(""),aJ(!1),ar({type:"success",message:"Tailscale disabled"})):ar({type:"error",message:b.error||"Failed to disable Tailscale"})}catch(a){ar({type:"error",message:a.message})}finally{an(!1)}},a9=async()=>{ar(null),aB([]);let a=await a1();a?.installed&&a?.hasCachedPassword?a6():aH(!0)},ba=async a=>{if(a.preventDefault(),s.trim()&&!y){z("create"),B(null);try{let a=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:s})}),b=await a.json();if(!a.ok)throw Error(b.error||`Failed to create key (${a.status})`);v(b.key),b.id&&b.key&&F(a=>({...a,[b.id]:b.key})),await aZ(),t(""),r(!1),B({type:"success",message:"API key created"})}catch(a){B({type:"error",message:a.message})}finally{z(null)}}},bb=async(a,b)=>{if(!y){z(`toggle:${a}`),B(null);try{let d=await fetch(`/api/keys/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:b})});if(!d.ok)throw Error(`Failed to update key (${d.status})`);c(c=>c.map(c=>c.id===a?{...c,isActive:b}:c)),B({type:"success",message:"API key updated"})}catch(a){B({type:"error",message:a.message})}finally{z(null)}}},bc=async(a,b,d)=>{if(y)return;let e=""===d?0:Math.max(0,Number(d)||0);z(`budget:${a}`),B(null);try{let d=await fetch(`/api/keys/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({[b]:e})});if(!d.ok)throw Error(`Failed to update budget (${d.status})`);c(c=>c.map(c=>c.id===a?{...c,[b]:e}:c)),B({type:"success",message:"Budget updated"})}catch(a){B({type:"error",message:a.message})}finally{z(null)}},bd=async a=>{if(E[a])return E[a];let b=await fetch(`/api/keys/${a}?reveal=1`,{cache:"no-store"}),c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c.error||`Failed to reveal key (${b.status})`);let d=c.key?.key||c.key;if("string"!=typeof d||!d)throw Error("Key secret is not available");return F(b=>({...b,[a]:d})),d},be=async a=>{if(C.has(a))return void D(b=>{let c=new Set(b);return c.delete(a),c});try{await bd(a),D(b=>{let c=new Set(b);return c.add(a),c}),B(null)}catch(a){B({type:"error",message:a.message})}},bf=async a=>{try{let b=await bd(a);aU(b,a),B(null)}catch(a){B({type:"error",message:a.message})}},[bg,bh]=(0,e.useState)("/v1");return f?(0,d.jsxs)("div",{className:"flex flex-col gap-6 lg:gap-7",children:[(0,d.jsx)(j.Qv,{}),(0,d.jsx)(j.Qv,{})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-6 lg:gap-7",children:[(0,d.jsxs)(j.Zp,{padding:"none",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 rounded-t-[13px] border-b border-border-subtle bg-linear-to-r from-primary/[0.07] via-primary/[0.025] to-transparent px-4 py-4 sm:px-5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary/12 text-[22px] text-primary ring-1 ring-primary/15",children:"terminal"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold leading-tight",children:"API Endpoint"}),(0,d.jsx)("p",{className:"mt-0.5 text-xs text-text-muted",children:"Choose how local and remote clients connect to Zevai Router."})]})]}),(0,d.jsxs)("div",{className:"p-4 sm:p-5",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)(n,{label:"Local",url:bg,copyId:"local_url",copied:aT,onCopy:aU}),(0,d.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2.5 rounded-xl border border-border-subtle bg-bg/55 p-3 transition-colors hover:border-primary/20 sm:flex",children:[(0,d.jsx)("span",{className:`col-span-full inline-flex min-h-8 w-full shrink-0 items-center justify-center rounded-lg px-2.5 text-[11px] font-semibold uppercase tracking-[0.08em] sm:w-[96px] ${Q?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tunnel"}),Q&&!Y&&S?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(j.pd,{"aria-label":"Cloudflare Tunnel endpoint URL",value:`${W||U}/v1`,readOnly:!0,className:"w-full min-w-0 font-mono text-sm sm:flex-1"}),(0,d.jsx)("button",{onClick:()=>aU(`${W||U}/v1`,"tunnel_url"),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-9 sm:rounded-lg",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tunnel_url"===aT?"check":"content_copy"})}),(0,d.jsx)("button",{onClick:()=>af(!0),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Disable Tunnel",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!Q||Y||S?Y?(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"}),$||"Creating tunnel..."]}),(0,d.jsx)("button",{onClick:()=>{aL.current+=1,Z(!1),_("")},className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):aa?.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"}),aa.message]}),(0,d.jsx)(j.$n,{size:"sm",icon:"cloud_upload",className:"min-h-11 sm:min-h-8",onClick:()=>ad(!0),children:"Enable"})]}):O?(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:()=>P(!1),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):(0,d.jsx)(j.$n,{size:"sm",icon:"cloud_upload",className:"min-h-11 sm:min-h-8",onClick:()=>{aV?ab({type:"error",message:`Security required: ${aW}`}):G?ad(!0):ab({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},children:"Enable"}):(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-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),aN?"Tunnel reconnecting...":"Tunnel checking..."]}),(0,d.jsx)("button",{onClick:()=>af(!0),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Disable Tunnel",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]}),(0,d.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2.5 rounded-xl border border-border-subtle bg-bg/55 p-3 transition-colors hover:border-primary/20 sm:flex",children:[(0,d.jsx)("span",{className:`col-span-full inline-flex min-h-8 w-full shrink-0 items-center justify-center rounded-lg px-2.5 text-[11px] font-semibold uppercase tracking-[0.08em] sm:w-[96px] ${ag?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tailscale"}),ag&&!am&&ai?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(j.pd,{"aria-label":"Tailscale endpoint URL",value:`${ak}/v1`,readOnly:!0,className:"w-full min-w-0 font-mono text-sm sm:flex-1"}),(0,d.jsx)("button",{onClick:()=>aU(`${ak}/v1`,"ts_url"),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-9 sm:rounded-lg",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"ts_url"===aT?"check":"content_copy"})}),(0,d.jsx)("button",{onClick:()=>aJ(!0),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Disable Tailscale",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!ag||am||ai?am||aE?(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"}),ao||"Connecting..."]}),as&&(0,d.jsx)(j.$n,{size:"sm",icon:"open_in_new",onClick:()=>window.open(as,"tailscale_auth","width=600,height=700,noopener,noreferrer"),children:au||"Open"}),(0,d.jsx)("button",{onClick:()=>{aM.current+=1,an(!1),aF(!1),ap(""),a5()},className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):aq?.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"}),aq.message]}),(0,d.jsx)(j.$n,{size:"sm",icon:"vpn_lock",className:"min-h-11 sm:min-h-8",onClick:a9,children:"Enable"})]}):(0,d.jsx)(j.$n,{size:"sm",icon:"vpn_lock",onClick:()=>{aV?ar({type:"error",message:`Security required: ${aW}`}):a9()},className:"min-h-11 sm:min-h-8",children:"Enable"}):(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-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),aP?"Tailscale reconnecting...":"Tailscale checking..."]}),(0,d.jsx)("button",{onClick:()=>aJ(!0),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Disable Tailscale",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]})]}),aV&&!Q&&!ag&&(0,d.jsx)("div",{className:"mt-4",children:(0,d.jsx)(q,{message:aW,action:{label:"Open settings",href:"/dashboard/profile"}})}),(Q||ag)&&(0,d.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[!G&&(0,d.jsx)(q,{message:"Require API key is disabled — your endpoint is publicly accessible without authentication.",action:{label:"Enable",href:"#require-api-key"}}),(!I||!K)&&(0,d.jsx)(q,{message:I?"Dashboard uses the default password — change it in Profile settings.":"Require login is disabled — anyone can access your dashboard via tunnel.",action:{label:I?"Change password":"Enable",href:"/dashboard/profile"}})]}),(Q||ag)&&(0,d.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex items-center gap-3",children:[(0,d.jsx)(j.lM,{touchTarget:!0,label:"Allow dashboard access via tunnel",checked:M,onChange:()=>aX(!M)}),(0,d.jsx)(p,{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.jsx)(j.Zp,{id:"rtk",padding:"none",className:"relative overflow-hidden border-primary/20 bg-linear-to-br from-primary/[0.08] via-surface to-surface",children:(0,d.jsxs)("div",{className:"relative flex flex-col gap-4 p-5 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary text-[22px] text-white shadow-[0_10px_24px_-14px_rgba(229,106,74,0.9)]",children:"bolt"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold leading-tight",children:"Token Saver"}),(0,d.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tune RTK, Caveman, Ponytail, Headroom, and PXPIPE in one workspace."})]})]}),(0,d.jsxs)(i(),{href:"/dashboard/token-saver",className:"inline-flex min-h-11 w-full shrink-0 items-center justify-center gap-1.5 rounded-xl border border-primary/25 bg-surface/80 px-3.5 py-2 text-sm font-semibold text-text-main shadow-sm transition-[border-color,color,transform] hover:translate-x-0.5 hover:border-primary/50 hover:text-primary sm:min-h-0 sm:w-auto sm:rounded-lg",children:["Open workspace",(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_forward"})]})]})}),(0,d.jsxs)(j.Zp,{id:"require-api-key",children:[(0,d.jsxs)("div",{className:"mb-5 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary/10 text-[21px] text-primary ring-1 ring-primary/15",children:"vpn_key"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold leading-tight",children:"API Keys"}),(0,d.jsxs)("span",{className:"rounded-full bg-surface-2 px-2 py-0.5 text-[10px] font-semibold text-text-muted ring-1 ring-border-subtle",children:[b.length," ",1===b.length?"key":"keys"]})]}),(0,d.jsx)("p",{className:"mt-0.5 text-xs text-text-muted",children:"Control authentication and spending per client."})]})]}),(0,d.jsx)(j.$n,{icon:"add",onClick:()=>r(!0),className:"w-full sm:w-auto",children:"Create Key"})]}),A&&(0,d.jsx)("p",{role:"status",className:`mb-4 text-sm ${"error"===A.type?"text-red-500":"text-green-500"}`,children:A.message}),(0,d.jsxs)("div",{className:"mb-4 flex flex-col gap-3 rounded-xl border border-primary/15 bg-primary/[0.045] p-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-lg bg-surface text-[17px] text-primary ring-1 ring-border-subtle",children:"shield_lock"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium",children:"Require API key"}),(0,d.jsx)("p",{className:"mt-0.5 text-sm text-text-muted",children:"Reject requests that do not include a valid client key."})]})]}),(0,d.jsx)("div",{className:"shrink-0 self-end sm:self-auto",children:(0,d.jsx)(j.lM,{touchTarget:!0,label:"Require API key",checked:G,onChange:()=>aY(!G)})})]}),aR&&!G&&(0,d.jsx)("div",{className:"mb-4 -mt-2",children:(0,d.jsx)(q,{message:"Endpoint is exposed without an API key."})}),0===b.length?(0,d.jsxs)("div",{className:"rounded-xl border border-dashed border-border bg-surface-2/25 py-12 text-center",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)(j.$n,{icon:"add",onClick:()=>r(!0),children:"Create Key"})]}):(0,d.jsx)("div",{className:"grid grid-cols-1 gap-3 lg:grid-cols-2",children:b.map(a=>{var b,e;return(0,d.jsxs)("div",{className:`group flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-xl border border-border-subtle bg-surface-2/25 p-4 transition-[border-color,box-shadow,opacity] hover:border-primary/20 hover:shadow-[0_14px_28px_-26px_rgba(15,23,42,0.65)] ${!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 min-w-0",children:[(0,d.jsx)("code",{className:"text-xs text-text-muted font-mono truncate max-w-[min(100%,28rem)]",children:(b=a,C.has(b.id)&&E[b.id]?E[b.id]:b.maskedKey||((e=b.key)?e.length>8?e.slice(0,8)+"...":e:"")||"••••••••")}),(0,d.jsx)("button",{type:"button",onClick:()=>be(a.id),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted opacity-100 transition-all hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-7 sm:rounded-lg sm:opacity-0 sm:group-hover:opacity-100",title:C.has(a.id)?"Hide key":"Show key","aria-label":C.has(a.id)?"Hide API key":"Show API key",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:C.has(a.id)?"visibility_off":"visibility"})}),(0,d.jsx)("button",{type:"button",onClick:()=>bf(a.id),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted opacity-100 transition-all hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-7 sm:rounded-lg sm:opacity-0 sm:group-hover:opacity-100",title:"Copy key","aria-label":"Copy API key",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:aT===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:"mt-3 flex flex-wrap items-center gap-3",children:[(0,d.jsxs)("label",{className:"flex items-center gap-1 text-[11px] text-text-muted",children:["Daily $",(0,d.jsx)("input",{type:"number",min:"0",step:"0.01",disabled:y===`budget:${a.id}`,defaultValue:a.budgetDaily||0,onBlur:b=>bc(a.id,"budgetDaily",b.target.value),className:"w-16 rounded border border-border bg-surface px-1 py-0.5 text-[11px]",title:"Daily budget cap in USD (0 = unlimited)"},`daily-${a.budgetDaily||0}`)]}),(0,d.jsxs)("label",{className:"flex items-center gap-1 text-[11px] text-text-muted",children:["Monthly $",(0,d.jsx)("input",{type:"number",min:"0",step:"0.01",disabled:y===`budget:${a.id}`,defaultValue:a.budgetMonthly||0,onBlur:b=>bc(a.id,"budgetMonthly",b.target.value),className:"w-16 rounded border border-border bg-surface px-1 py-0.5 text-[11px]",title:"Monthly budget cap in USD (0 = unlimited)"},`monthly-${a.budgetMonthly||0}`)]})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"flex size-11 items-center justify-center sm:size-auto",children:(0,d.jsx)(j.lM,{size:"sm",touchTarget:!0,disabled:y===`toggle:${a.id}`,checked:a.isActive??!0,onChange:b=>{a.isActive&&!b?x({title:"Pause API Key",message:`Pause API key "${a.name}"?
|
|
2
2
|
|
|
3
|
-
This key will stop working immediately but can be resumed later.`,onConfirm:async()=>{x(null),bb(a.id,b)}}):bb(a.id,b)},title:a.isActive?"Pause key":"Resume key"})}),(0,d.jsx)("button",{disabled:y===`delete:${a.id}`,onClick:()=>{var b;return b=a.id,void(!y&&x({title:"Delete API Key",message:"Delete this API key?",onConfirm:async()=>{x(null),z(`delete:${b}`),B(null);try{let a=await fetch(`/api/keys/${b}`,{method:"DELETE"});if(!a.ok)throw Error(`Failed to delete key (${a.status})`);c(a=>a.filter(a=>a.id!==b)),D(a=>{let c=new Set(a);return c.delete(b),c}),F(a=>{if(!(b in a))return a;let c={...a};return delete c[b],c}),B({type:"success",message:"API key deleted"})}catch(a){B({type:"error",message:a.message})}finally{z(null)}}}))},className:"flex size-11 items-center justify-center rounded-xl text-red-500 opacity-100 transition-all hover:bg-red-500/10 sm:size-9 sm:rounded-lg sm:opacity-0 sm:group-hover:opacity-100","aria-label":`Delete ${a.name}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},a.id)})})]}),(0,d.jsx)(j.aF,{isOpen:h,title:"Create API Key",onClose:()=>{r(!1),t("")},children:(0,d.jsxs)("form",{className:"flex flex-col gap-4",onSubmit:ba,children:[(0,d.jsx)(j.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)(j.$n,{type:"submit",fullWidth:!0,disabled:!s.trim()||"create"===y,children:"create"===y?"Creating...":"Create"}),(0,d.jsx)(j.$n,{type:"button",onClick:()=>{r(!1),t("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,d.jsx)(j.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)(j.pd,{value:u||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)(j.$n,{variant:"secondary",icon:"created_key"===aT?"check":"content_copy",onClick:()=>aU(u,"created_key"),children:"created_key"===aT?"Copied!":"Copy"})]}),(0,d.jsx)(j.$n,{onClick:()=>v(null),fullWidth:!0,children:"Done"})]})}),(0,d.jsx)(j.aF,{isOpen:ac,title:"Enable Tunnel",onClose:()=>ad(!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 ZevaiRouter 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:l.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)(j.$n,{onClick:a_,fullWidth:!0,children:"Start Tunnel"}),(0,d.jsx)(j.$n,{onClick:()=>ad(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,d.jsx)(j.aF,{isOpen:ae,title:"Disable Tunnel",onClose:()=>!Y&&af(!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)(j.$n,{onClick:a0,fullWidth:!0,disabled:Y,variant:"danger",children:Y?"Disabling...":"Disable"}),(0,d.jsx)(j.$n,{onClick:()=>af(!1),variant:"ghost",fullWidth:!0,disabled:Y,children:"Cancel"})]})]})}),(0,d.jsx)(j.aF,{isOpen:aG,title:"Tailscale Funnel",onClose:()=>{ay||(aH(!1),aD(""),ar(null))},children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[null===aw&&(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===aw&&!ay&&(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)(j.$n,{onClick:a2,fullWidth:!0,children:"Install Tailscale"}),(0,d.jsx)(j.$n,{onClick:()=>aH(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ay&&(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..."]}),aA.length>0&&(0,d.jsx)("div",{ref:aK,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:aA.map((a,b)=>(0,d.jsx)("div",{children:a},b))})]}),!0===aw&&!ay&&(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)(j.$n,{onClick:()=>a6(),fullWidth:!0,children:"Connect"}),(0,d.jsx)(j.$n,{onClick:()=>aH(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),aq&&(0,d.jsx)(o,{status:aq})]})}),(0,d.jsx)(j.aF,{isOpen:aI,title:"Disable Tailscale",onClose:()=>!am&&aJ(!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)(j.$n,{onClick:a8,fullWidth:!0,disabled:am,variant:"danger",children:am?"Disabling...":"Disable"}),(0,d.jsx)(j.$n,{onClick:()=>aJ(!1),variant:"ghost",fullWidth:!0,disabled:am,children:"Cancel"})]})]})}),(0,d.jsx)(j.uo,{isOpen:!!w,onClose:()=>x(null),onConfirm:w?.onConfirm,title:w?.title||"Confirm",message:w?.message,variant:"danger"})]})}function n({label:a,url:b,copyId:c,copied:e,onCopy:f,badge:g,actions:h}){return(0,d.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2.5 rounded-xl border border-border-subtle bg-bg/55 p-3 transition-colors hover:border-primary/20 sm:flex",children:[(0,d.jsx)("span",{className:`col-span-full inline-flex min-h-8 w-full shrink-0 items-center justify-center rounded-lg px-2.5 text-[11px] font-semibold uppercase tracking-[0.08em] sm:w-[96px] ${"CF"===g||"TS"===g?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:a}),(0,d.jsx)(j.pd,{"aria-label":`${a} endpoint URL`,value:b,readOnly:!0,className:"w-full min-w-0 font-mono text-sm sm:flex-1"}),(0,d.jsx)("button",{onClick:()=>f(b,c),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-9 sm:rounded-lg","aria-label":`Copy ${a} endpoint URL`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:e===c?"check":"content_copy"})}),h]})}function o({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 p({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 right-0 top-full z-50 mt-2 w-[min(16rem,calc(100vw-2rem))] rounded bg-gray-900 px-2.5 py-1.5 text-xs text-white opacity-0 shadow-lg transition-opacity group-hover:opacity-100 dark:bg-gray-800",children:a})]})}function q({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:"inline-flex min-h-11 shrink-0 items-center text-xs font-medium underline hover:opacity-80 sm:min-h-0",onClick:b.href.startsWith("#")?a=>{a.preventDefault(),document.getElementById(b.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:b.label})]})}m.propTypes={machineId:g().string.isRequired}},51747:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/zevairouter-build/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.")},"/zevairouter-build/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js","default")},71885:(a,b,c)=>{Promise.resolve().then(c.bind(c,51747))},87250:(a,b,c)=>{"use strict";c.d(b,{D:()=>e});var d=c(54603);async function e(){return await (0,d.Xj)()}},95853:(a,b,c)=>{Promise.resolve().then(c.bind(c,43173))}};
|
|
3
|
+
This key will stop working immediately but can be resumed later.`,onConfirm:async()=>{x(null),bb(a.id,b)}}):bb(a.id,b)},title:a.isActive?"Pause key":"Resume key"})}),(0,d.jsx)("button",{disabled:y===`delete:${a.id}`,onClick:()=>{var b;return b=a.id,void(!y&&x({title:"Delete API Key",message:"Delete this API key?",onConfirm:async()=>{x(null),z(`delete:${b}`),B(null);try{let a=await fetch(`/api/keys/${b}`,{method:"DELETE"});if(!a.ok)throw Error(`Failed to delete key (${a.status})`);c(a=>a.filter(a=>a.id!==b)),D(a=>{let c=new Set(a);return c.delete(b),c}),F(a=>{if(!(b in a))return a;let c={...a};return delete c[b],c}),B({type:"success",message:"API key deleted"})}catch(a){B({type:"error",message:a.message})}finally{z(null)}}}))},className:"flex size-11 items-center justify-center rounded-xl text-red-500 opacity-100 transition-all hover:bg-red-500/10 sm:size-9 sm:rounded-lg sm:opacity-0 sm:group-hover:opacity-100","aria-label":`Delete ${a.name}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},a.id)})})]}),(0,d.jsx)(j.aF,{isOpen:h,title:"Create API Key",onClose:()=>{r(!1),t("")},children:(0,d.jsxs)("form",{className:"flex flex-col gap-4",onSubmit:ba,children:[(0,d.jsx)(j.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)(j.$n,{type:"submit",fullWidth:!0,disabled:!s.trim()||"create"===y,children:"create"===y?"Creating...":"Create"}),(0,d.jsx)(j.$n,{type:"button",onClick:()=>{r(!1),t("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,d.jsx)(j.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)(j.pd,{value:u||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)(j.$n,{variant:"secondary",icon:"created_key"===aT?"check":"content_copy",onClick:()=>aU(u,"created_key"),children:"created_key"===aT?"Copied!":"Copy"})]}),(0,d.jsx)(j.$n,{onClick:()=>v(null),fullWidth:!0,children:"Done"})]})}),(0,d.jsx)(j.aF,{isOpen:ac,title:"Enable Tunnel",onClose:()=>ad(!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 ZevaiRouter 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:l.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)(j.$n,{onClick:a_,fullWidth:!0,children:"Start Tunnel"}),(0,d.jsx)(j.$n,{onClick:()=>ad(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,d.jsx)(j.aF,{isOpen:ae,title:"Disable Tunnel",onClose:()=>!Y&&af(!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)(j.$n,{onClick:a0,fullWidth:!0,disabled:Y,variant:"danger",children:Y?"Disabling...":"Disable"}),(0,d.jsx)(j.$n,{onClick:()=>af(!1),variant:"ghost",fullWidth:!0,disabled:Y,children:"Cancel"})]})]})}),(0,d.jsx)(j.aF,{isOpen:aG,title:"Tailscale Funnel",onClose:()=>{ay||(aH(!1),aD(""),ar(null))},children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[null===aw&&(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===aw&&!ay&&(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)(j.$n,{onClick:a2,fullWidth:!0,children:"Install Tailscale"}),(0,d.jsx)(j.$n,{onClick:()=>aH(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ay&&(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..."]}),aA.length>0&&(0,d.jsx)("div",{ref:aK,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:aA.map((a,b)=>(0,d.jsx)("div",{children:a},b))})]}),!0===aw&&!ay&&(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)(j.$n,{onClick:()=>a6(),fullWidth:!0,children:"Connect"}),(0,d.jsx)(j.$n,{onClick:()=>aH(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),aq&&(0,d.jsx)(o,{status:aq})]})}),(0,d.jsx)(j.aF,{isOpen:aI,title:"Disable Tailscale",onClose:()=>!am&&aJ(!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)(j.$n,{onClick:a8,fullWidth:!0,disabled:am,variant:"danger",children:am?"Disabling...":"Disable"}),(0,d.jsx)(j.$n,{onClick:()=>aJ(!1),variant:"ghost",fullWidth:!0,disabled:am,children:"Cancel"})]})]})}),(0,d.jsx)(j.uo,{isOpen:!!w,onClose:()=>x(null),onConfirm:w?.onConfirm,title:w?.title||"Confirm",message:w?.message,variant:"danger"})]})}function n({label:a,url:b,copyId:c,copied:e,onCopy:f,badge:g,actions:h}){return(0,d.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2.5 rounded-xl border border-border-subtle bg-bg/55 p-3 transition-colors hover:border-primary/20 sm:flex",children:[(0,d.jsx)("span",{className:`col-span-full inline-flex min-h-8 w-full shrink-0 items-center justify-center rounded-lg px-2.5 text-[11px] font-semibold uppercase tracking-[0.08em] sm:w-[96px] ${"CF"===g||"TS"===g?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:a}),(0,d.jsx)(j.pd,{"aria-label":`${a} endpoint URL`,value:b,readOnly:!0,className:"w-full min-w-0 font-mono text-sm sm:flex-1"}),(0,d.jsx)("button",{onClick:()=>f(b,c),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-9 sm:rounded-lg","aria-label":`Copy ${a} endpoint URL`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:e===c?"check":"content_copy"})}),h]})}function o({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 p({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 right-0 top-full z-50 mt-2 w-[min(16rem,calc(100vw-2rem))] rounded bg-gray-900 px-2.5 py-1.5 text-xs text-white opacity-0 shadow-lg transition-opacity group-hover:opacity-100 dark:bg-gray-800",children:a})]})}function q({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:"inline-flex min-h-11 shrink-0 items-center text-xs font-medium underline hover:opacity-80 sm:min-h-0",onClick:b.href.startsWith("#")?a=>{a.preventDefault(),document.getElementById(b.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:b.label})]})}m.propTypes={machineId:g().string.isRequired}},51747:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/zevairouter-build/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.")},"/zevairouter-build/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js","default")},71885:(a,b,c)=>{Promise.resolve().then(c.bind(c,51747))},95853:(a,b,c)=>{Promise.resolve().then(c.bind(c,43173))}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=4803,exports.ids=[4803],exports.modules={54803:(a,b,c)=>{c.d(b,{createNodeSqliteAdapter:()=>e});var d=c(34050);async function e(a){let b,e=process.emit;process.emit=function(a,b,...c){return!("warning"===a&&b?.name==="ExperimentalWarning"&&/SQLite/i.test(b.message||""))&&e.call(process,a,b,...c)};try{b=await Promise.resolve().then(c.t.bind(c,79868,23))}finally{process.emit=e}let f=new b.DatabaseSync(a);f.exec(d.oG);let g=new Map;function h(a){let b=g.get(a);return b||(b=f.prepare(a),g.set(a,b)),b}let i=setInterval(()=>{try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},6e4);"function"==typeof i.unref&&i.unref();let j=!1;function k(){if(!j){j=!0;try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}try{g.clear()}catch{}try{f.close()}catch{}}}let l=()=>k();return process.once("beforeExit",l),{driver:"node:sqlite",run(a,b=[]){let c=h(a).run(...b);return{changes:Number(c.changes??0),lastInsertRowid:Number(c.lastInsertRowid??0)}},get:(a,b=[])=>h(a).get(...b),all:(a,b=[])=>h(a).all(...b),exec:a=>f.exec(a),transaction(a){let b=`sp_${Math.random().toString(36).slice(2)}`;f.exec(`SAVEPOINT ${b}`);try{let c=a();return f.exec(`RELEASE ${b}`),c}catch(a){try{f.exec(`ROLLBACK TO ${b}`),f.exec(`RELEASE ${b}`)}catch{}throw a}},checkpoint(){f.exec("PRAGMA wal_checkpoint(TRUNCATE)")},close(){clearInterval(i),process.removeListener("beforeExit",l),k()},raw:f}}}};
|