9router 0.3.48 → 0.3.49
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/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +41 -41
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/locale/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/providers/route.js +1 -1
- package/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/stream/route.js +1 -1
- package/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/version/route.js +1 -1
- package/app/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +3 -3
- package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +5 -5
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.html +1 -1
- package/app/.next/server/app/dashboard/mitm.rsc +5 -5
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +5 -5
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +5 -5
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.rsc +5 -5
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.html +2 -2
- package/app/.next/server/app/dashboard/quota.rsc +4 -4
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.html +1 -1
- package/app/.next/server/app/dashboard/translator.rsc +5 -5
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +5 -5
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.html +1 -1
- package/app/.next/server/app/dashboard.rsc +5 -5
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +3 -3
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +3 -3
- package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +4 -4
- package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +41 -41
- package/app/.next/server/chunks/1114.js +1 -1
- package/app/.next/server/chunks/1424.js +1 -1
- package/app/.next/server/chunks/289.js +1 -1
- package/app/.next/server/chunks/318.js +5 -5
- package/app/.next/server/chunks/4989.js +2 -2
- package/app/.next/server/chunks/5297.js +1 -1
- package/app/.next/server/chunks/6182.js +4 -4
- package/app/.next/server/chunks/8590.js +1 -1
- package/app/.next/server/chunks/8895.js +3 -3
- package/app/.next/server/chunks/9201.js +1 -1
- package/app/.next/server/chunks/9609.js +1 -1
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/{5497-e51ea33e5c739a33.js → 5497-612d09a8bc2fb0ac.js} +1 -1
- package/app/.next/static/chunks/{619-4c970716a5102dc3.js → 619-c4c101a6a78feeb4.js} +1 -1
- package/app/.next/static/chunks/app/{layout-8f69df46423ca2cf.js → layout-facb48b90c716570.js} +1 -1
- package/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/app/node_modules/better-sqlite3/lib/database.js +90 -0
- package/app/node_modules/better-sqlite3/lib/index.js +3 -0
- package/app/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
- package/app/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
- package/app/node_modules/better-sqlite3/lib/methods/function.js +31 -0
- package/app/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
- package/app/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
- package/app/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
- package/app/node_modules/better-sqlite3/lib/methods/table.js +189 -0
- package/app/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
- package/app/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
- package/app/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
- package/app/node_modules/better-sqlite3/lib/util.js +12 -0
- package/app/node_modules/better-sqlite3/package.json +59 -0
- package/app/node_modules/bindings/bindings.js +221 -0
- package/app/node_modules/bindings/package.json +28 -0
- package/app/node_modules/file-uri-to-path/index.js +66 -0
- package/app/node_modules/file-uri-to-path/package.json +32 -0
- package/app/package.json +2 -1
- package/app/src/mitm/manager.js +59 -0
- package/app/src/mitm/server.js +1 -1
- package/app/src/mitm/{server copy.js → server2.js} +188 -35
- package/cli.js +97 -56
- package/package.json +1 -1
- /package/app/.next/static/{eVGIe8IcaLlfBhBZM9a5U → I7Z75b-mEq-yr9pvEanD-}/_buildManifest.js +0 -0
- /package/app/.next/static/{eVGIe8IcaLlfBhBZM9a5U → I7Z75b-mEq-yr9pvEanD-}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
exports.getBooleanOption = (options, key) => {
|
|
4
|
+
let value = false;
|
|
5
|
+
if (key in options && typeof (value = options[key]) !== 'boolean') {
|
|
6
|
+
throw new TypeError(`Expected the "${key}" option to be a boolean`);
|
|
7
|
+
}
|
|
8
|
+
return value;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
exports.cppdb = Symbol();
|
|
12
|
+
exports.inspect = Symbol.for('nodejs.util.inspect.custom');
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "better-sqlite3",
|
|
3
|
+
"version": "12.6.2",
|
|
4
|
+
"description": "The fastest and simplest library for SQLite in Node.js.",
|
|
5
|
+
"homepage": "http://github.com/WiseLibs/better-sqlite3",
|
|
6
|
+
"author": "Joshua Wise <joshuathomaswise@gmail.com>",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git://github.com/WiseLibs/better-sqlite3.git"
|
|
10
|
+
},
|
|
11
|
+
"main": "lib/index.js",
|
|
12
|
+
"files": [
|
|
13
|
+
"binding.gyp",
|
|
14
|
+
"src/**/*.[ch]pp",
|
|
15
|
+
"lib/**",
|
|
16
|
+
"deps/**"
|
|
17
|
+
],
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": "20.x || 22.x || 23.x || 24.x || 25.x"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"bindings": "^1.5.0",
|
|
23
|
+
"prebuild-install": "^7.1.1"
|
|
24
|
+
},
|
|
25
|
+
"overrides": {
|
|
26
|
+
"prebuild": {
|
|
27
|
+
"node-abi": "^4.25.0"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"chai": "^4.3.8",
|
|
32
|
+
"cli-color": "^2.0.3",
|
|
33
|
+
"fs-extra": "^11.1.1",
|
|
34
|
+
"mocha": "^10.2.0",
|
|
35
|
+
"nodemark": "^0.3.0",
|
|
36
|
+
"prebuild": "^13.0.1",
|
|
37
|
+
"sqlite": "^5.0.1",
|
|
38
|
+
"sqlite3": "^5.1.6"
|
|
39
|
+
},
|
|
40
|
+
"scripts": {
|
|
41
|
+
"install": "prebuild-install || node-gyp rebuild --release",
|
|
42
|
+
"build-release": "node-gyp rebuild --release",
|
|
43
|
+
"build-debug": "node-gyp rebuild --debug",
|
|
44
|
+
"test": "mocha --exit --slow=75 --timeout=5000",
|
|
45
|
+
"benchmark": "node benchmark",
|
|
46
|
+
"download": "bash ./deps/download.sh"
|
|
47
|
+
},
|
|
48
|
+
"license": "MIT",
|
|
49
|
+
"keywords": [
|
|
50
|
+
"sql",
|
|
51
|
+
"sqlite",
|
|
52
|
+
"sqlite3",
|
|
53
|
+
"transactions",
|
|
54
|
+
"user-defined functions",
|
|
55
|
+
"aggregate functions",
|
|
56
|
+
"window functions",
|
|
57
|
+
"database"
|
|
58
|
+
]
|
|
59
|
+
}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module dependencies.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
var fs = require('fs'),
|
|
6
|
+
path = require('path'),
|
|
7
|
+
fileURLToPath = require('file-uri-to-path'),
|
|
8
|
+
join = path.join,
|
|
9
|
+
dirname = path.dirname,
|
|
10
|
+
exists =
|
|
11
|
+
(fs.accessSync &&
|
|
12
|
+
function(path) {
|
|
13
|
+
try {
|
|
14
|
+
fs.accessSync(path);
|
|
15
|
+
} catch (e) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}) ||
|
|
20
|
+
fs.existsSync ||
|
|
21
|
+
path.existsSync,
|
|
22
|
+
defaults = {
|
|
23
|
+
arrow: process.env.NODE_BINDINGS_ARROW || ' → ',
|
|
24
|
+
compiled: process.env.NODE_BINDINGS_COMPILED_DIR || 'compiled',
|
|
25
|
+
platform: process.platform,
|
|
26
|
+
arch: process.arch,
|
|
27
|
+
nodePreGyp:
|
|
28
|
+
'node-v' +
|
|
29
|
+
process.versions.modules +
|
|
30
|
+
'-' +
|
|
31
|
+
process.platform +
|
|
32
|
+
'-' +
|
|
33
|
+
process.arch,
|
|
34
|
+
version: process.versions.node,
|
|
35
|
+
bindings: 'bindings.node',
|
|
36
|
+
try: [
|
|
37
|
+
// node-gyp's linked version in the "build" dir
|
|
38
|
+
['module_root', 'build', 'bindings'],
|
|
39
|
+
// node-waf and gyp_addon (a.k.a node-gyp)
|
|
40
|
+
['module_root', 'build', 'Debug', 'bindings'],
|
|
41
|
+
['module_root', 'build', 'Release', 'bindings'],
|
|
42
|
+
// Debug files, for development (legacy behavior, remove for node v0.9)
|
|
43
|
+
['module_root', 'out', 'Debug', 'bindings'],
|
|
44
|
+
['module_root', 'Debug', 'bindings'],
|
|
45
|
+
// Release files, but manually compiled (legacy behavior, remove for node v0.9)
|
|
46
|
+
['module_root', 'out', 'Release', 'bindings'],
|
|
47
|
+
['module_root', 'Release', 'bindings'],
|
|
48
|
+
// Legacy from node-waf, node <= 0.4.x
|
|
49
|
+
['module_root', 'build', 'default', 'bindings'],
|
|
50
|
+
// Production "Release" buildtype binary (meh...)
|
|
51
|
+
['module_root', 'compiled', 'version', 'platform', 'arch', 'bindings'],
|
|
52
|
+
// node-qbs builds
|
|
53
|
+
['module_root', 'addon-build', 'release', 'install-root', 'bindings'],
|
|
54
|
+
['module_root', 'addon-build', 'debug', 'install-root', 'bindings'],
|
|
55
|
+
['module_root', 'addon-build', 'default', 'install-root', 'bindings'],
|
|
56
|
+
// node-pre-gyp path ./lib/binding/{node_abi}-{platform}-{arch}
|
|
57
|
+
['module_root', 'lib', 'binding', 'nodePreGyp', 'bindings']
|
|
58
|
+
]
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The main `bindings()` function loads the compiled bindings for a given module.
|
|
63
|
+
* It uses V8's Error API to determine the parent filename that this function is
|
|
64
|
+
* being invoked from, which is then used to find the root directory.
|
|
65
|
+
*/
|
|
66
|
+
|
|
67
|
+
function bindings(opts) {
|
|
68
|
+
// Argument surgery
|
|
69
|
+
if (typeof opts == 'string') {
|
|
70
|
+
opts = { bindings: opts };
|
|
71
|
+
} else if (!opts) {
|
|
72
|
+
opts = {};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// maps `defaults` onto `opts` object
|
|
76
|
+
Object.keys(defaults).map(function(i) {
|
|
77
|
+
if (!(i in opts)) opts[i] = defaults[i];
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
// Get the module root
|
|
81
|
+
if (!opts.module_root) {
|
|
82
|
+
opts.module_root = exports.getRoot(exports.getFileName());
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Ensure the given bindings name ends with .node
|
|
86
|
+
if (path.extname(opts.bindings) != '.node') {
|
|
87
|
+
opts.bindings += '.node';
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// https://github.com/webpack/webpack/issues/4175#issuecomment-342931035
|
|
91
|
+
var requireFunc =
|
|
92
|
+
typeof __webpack_require__ === 'function'
|
|
93
|
+
? __non_webpack_require__
|
|
94
|
+
: require;
|
|
95
|
+
|
|
96
|
+
var tries = [],
|
|
97
|
+
i = 0,
|
|
98
|
+
l = opts.try.length,
|
|
99
|
+
n,
|
|
100
|
+
b,
|
|
101
|
+
err;
|
|
102
|
+
|
|
103
|
+
for (; i < l; i++) {
|
|
104
|
+
n = join.apply(
|
|
105
|
+
null,
|
|
106
|
+
opts.try[i].map(function(p) {
|
|
107
|
+
return opts[p] || p;
|
|
108
|
+
})
|
|
109
|
+
);
|
|
110
|
+
tries.push(n);
|
|
111
|
+
try {
|
|
112
|
+
b = opts.path ? requireFunc.resolve(n) : requireFunc(n);
|
|
113
|
+
if (!opts.path) {
|
|
114
|
+
b.path = n;
|
|
115
|
+
}
|
|
116
|
+
return b;
|
|
117
|
+
} catch (e) {
|
|
118
|
+
if (e.code !== 'MODULE_NOT_FOUND' &&
|
|
119
|
+
e.code !== 'QUALIFIED_PATH_RESOLUTION_FAILED' &&
|
|
120
|
+
!/not find/i.test(e.message)) {
|
|
121
|
+
throw e;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
err = new Error(
|
|
127
|
+
'Could not locate the bindings file. Tried:\n' +
|
|
128
|
+
tries
|
|
129
|
+
.map(function(a) {
|
|
130
|
+
return opts.arrow + a;
|
|
131
|
+
})
|
|
132
|
+
.join('\n')
|
|
133
|
+
);
|
|
134
|
+
err.tries = tries;
|
|
135
|
+
throw err;
|
|
136
|
+
}
|
|
137
|
+
module.exports = exports = bindings;
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Gets the filename of the JavaScript file that invokes this function.
|
|
141
|
+
* Used to help find the root directory of a module.
|
|
142
|
+
* Optionally accepts an filename argument to skip when searching for the invoking filename
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
exports.getFileName = function getFileName(calling_file) {
|
|
146
|
+
var origPST = Error.prepareStackTrace,
|
|
147
|
+
origSTL = Error.stackTraceLimit,
|
|
148
|
+
dummy = {},
|
|
149
|
+
fileName;
|
|
150
|
+
|
|
151
|
+
Error.stackTraceLimit = 10;
|
|
152
|
+
|
|
153
|
+
Error.prepareStackTrace = function(e, st) {
|
|
154
|
+
for (var i = 0, l = st.length; i < l; i++) {
|
|
155
|
+
fileName = st[i].getFileName();
|
|
156
|
+
if (fileName !== __filename) {
|
|
157
|
+
if (calling_file) {
|
|
158
|
+
if (fileName !== calling_file) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
} else {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
// run the 'prepareStackTrace' function above
|
|
169
|
+
Error.captureStackTrace(dummy);
|
|
170
|
+
dummy.stack;
|
|
171
|
+
|
|
172
|
+
// cleanup
|
|
173
|
+
Error.prepareStackTrace = origPST;
|
|
174
|
+
Error.stackTraceLimit = origSTL;
|
|
175
|
+
|
|
176
|
+
// handle filename that starts with "file://"
|
|
177
|
+
var fileSchema = 'file://';
|
|
178
|
+
if (fileName.indexOf(fileSchema) === 0) {
|
|
179
|
+
fileName = fileURLToPath(fileName);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return fileName;
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Gets the root directory of a module, given an arbitrary filename
|
|
187
|
+
* somewhere in the module tree. The "root directory" is the directory
|
|
188
|
+
* containing the `package.json` file.
|
|
189
|
+
*
|
|
190
|
+
* In: /home/nate/node-native-module/lib/index.js
|
|
191
|
+
* Out: /home/nate/node-native-module
|
|
192
|
+
*/
|
|
193
|
+
|
|
194
|
+
exports.getRoot = function getRoot(file) {
|
|
195
|
+
var dir = dirname(file),
|
|
196
|
+
prev;
|
|
197
|
+
while (true) {
|
|
198
|
+
if (dir === '.') {
|
|
199
|
+
// Avoids an infinite loop in rare cases, like the REPL
|
|
200
|
+
dir = process.cwd();
|
|
201
|
+
}
|
|
202
|
+
if (
|
|
203
|
+
exists(join(dir, 'package.json')) ||
|
|
204
|
+
exists(join(dir, 'node_modules'))
|
|
205
|
+
) {
|
|
206
|
+
// Found the 'package.json' file or 'node_modules' dir; we're done
|
|
207
|
+
return dir;
|
|
208
|
+
}
|
|
209
|
+
if (prev === dir) {
|
|
210
|
+
// Got to the top
|
|
211
|
+
throw new Error(
|
|
212
|
+
'Could not find module root given file: "' +
|
|
213
|
+
file +
|
|
214
|
+
'". Do you have a `package.json` file? '
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
// Try the parent dir next
|
|
218
|
+
prev = dir;
|
|
219
|
+
dir = join(dir, '..');
|
|
220
|
+
}
|
|
221
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "bindings",
|
|
3
|
+
"description": "Helper module for loading your native module's .node file",
|
|
4
|
+
"keywords": [
|
|
5
|
+
"native",
|
|
6
|
+
"addon",
|
|
7
|
+
"bindings",
|
|
8
|
+
"gyp",
|
|
9
|
+
"waf",
|
|
10
|
+
"c",
|
|
11
|
+
"c++"
|
|
12
|
+
],
|
|
13
|
+
"version": "1.5.0",
|
|
14
|
+
"author": "Nathan Rajlich <nathan@tootallnate.net> (http://tootallnate.net)",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git://github.com/TooTallNate/node-bindings.git"
|
|
18
|
+
},
|
|
19
|
+
"main": "./bindings.js",
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/TooTallNate/node-bindings/issues"
|
|
22
|
+
},
|
|
23
|
+
"homepage": "https://github.com/TooTallNate/node-bindings",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"file-uri-to-path": "1.0.0"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* Module dependencies.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
var sep = require('path').sep || '/';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Module exports.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
module.exports = fileUriToPath;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* File URI to Path function.
|
|
16
|
+
*
|
|
17
|
+
* @param {String} uri
|
|
18
|
+
* @return {String} path
|
|
19
|
+
* @api public
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
function fileUriToPath (uri) {
|
|
23
|
+
if ('string' != typeof uri ||
|
|
24
|
+
uri.length <= 7 ||
|
|
25
|
+
'file://' != uri.substring(0, 7)) {
|
|
26
|
+
throw new TypeError('must pass in a file:// URI to convert to a file path');
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
var rest = decodeURI(uri.substring(7));
|
|
30
|
+
var firstSlash = rest.indexOf('/');
|
|
31
|
+
var host = rest.substring(0, firstSlash);
|
|
32
|
+
var path = rest.substring(firstSlash + 1);
|
|
33
|
+
|
|
34
|
+
// 2. Scheme Definition
|
|
35
|
+
// As a special case, <host> can be the string "localhost" or the empty
|
|
36
|
+
// string; this is interpreted as "the machine from which the URL is
|
|
37
|
+
// being interpreted".
|
|
38
|
+
if ('localhost' == host) host = '';
|
|
39
|
+
|
|
40
|
+
if (host) {
|
|
41
|
+
host = sep + sep + host;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// 3.2 Drives, drive letters, mount points, file system root
|
|
45
|
+
// Drive letters are mapped into the top of a file URI in various ways,
|
|
46
|
+
// depending on the implementation; some applications substitute
|
|
47
|
+
// vertical bar ("|") for the colon after the drive letter, yielding
|
|
48
|
+
// "file:///c|/tmp/test.txt". In some cases, the colon is left
|
|
49
|
+
// unchanged, as in "file:///c:/tmp/test.txt". In other cases, the
|
|
50
|
+
// colon is simply omitted, as in "file:///c/tmp/test.txt".
|
|
51
|
+
path = path.replace(/^(.+)\|/, '$1:');
|
|
52
|
+
|
|
53
|
+
// for Windows, we need to invert the path separators from what a URI uses
|
|
54
|
+
if (sep == '\\') {
|
|
55
|
+
path = path.replace(/\//g, '\\');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (/^.+\:/.test(path)) {
|
|
59
|
+
// has Windows drive at beginning of path
|
|
60
|
+
} else {
|
|
61
|
+
// unix path…
|
|
62
|
+
path = sep + path;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return host + path;
|
|
66
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "file-uri-to-path",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Convert a file: URI to a file path",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"types": "index.d.ts",
|
|
7
|
+
"directories": {
|
|
8
|
+
"test": "test"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"test": "mocha --reporter spec"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git://github.com/TooTallNate/file-uri-to-path.git"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"file",
|
|
19
|
+
"uri",
|
|
20
|
+
"convert",
|
|
21
|
+
"path"
|
|
22
|
+
],
|
|
23
|
+
"author": "Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/)",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"bugs": {
|
|
26
|
+
"url": "https://github.com/TooTallNate/file-uri-to-path/issues"
|
|
27
|
+
},
|
|
28
|
+
"homepage": "https://github.com/TooTallNate/file-uri-to-path",
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"mocha": "3"
|
|
31
|
+
}
|
|
32
|
+
}
|
package/app/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "9router-app",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.49",
|
|
4
4
|
"description": "9Router web dashboard",
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"@monaco-editor/react": "^4.7.0",
|
|
16
16
|
"@xyflow/react": "^12.10.1",
|
|
17
17
|
"bcryptjs": "^3.0.3",
|
|
18
|
+
"better-sqlite3": "^12.6.2",
|
|
18
19
|
"confbox": "^0.2.4",
|
|
19
20
|
"express": "^5.2.1",
|
|
20
21
|
"fs": "^0.0.1-security",
|
package/app/src/mitm/manager.js
CHANGED
|
@@ -16,6 +16,14 @@ const MITM_PORT = 443;
|
|
|
16
16
|
const MITM_WIN_NODE_PORT = 8443;
|
|
17
17
|
const PID_FILE = path.join(MITM_DIR, ".mitm.pid");
|
|
18
18
|
|
|
19
|
+
const MITM_MAX_RESTARTS = 5;
|
|
20
|
+
const MITM_RESTART_DELAYS_MS = [5000, 10000, 20000, 30000, 60000];
|
|
21
|
+
const MITM_RESTART_RESET_MS = 60000;
|
|
22
|
+
|
|
23
|
+
let mitmRestartCount = 0;
|
|
24
|
+
let mitmLastStartTime = 0;
|
|
25
|
+
let mitmIsRestarting = false;
|
|
26
|
+
|
|
19
27
|
function resolveServerPath() {
|
|
20
28
|
if (process.env.MITM_SERVER_PATH) return process.env.MITM_SERVER_PATH;
|
|
21
29
|
const sibling = path.join(__dirname, "server.js");
|
|
@@ -273,6 +281,50 @@ async function getMitmStatus() {
|
|
|
273
281
|
return { running, pid, certExists, dnsStatus };
|
|
274
282
|
}
|
|
275
283
|
|
|
284
|
+
async function scheduleMitmRestart(apiKey) {
|
|
285
|
+
if (mitmIsRestarting) return;
|
|
286
|
+
|
|
287
|
+
const aliveMs = Date.now() - mitmLastStartTime;
|
|
288
|
+
if (aliveMs >= MITM_RESTART_RESET_MS) mitmRestartCount = 0;
|
|
289
|
+
|
|
290
|
+
if (mitmRestartCount >= MITM_MAX_RESTARTS) {
|
|
291
|
+
console.error("[MITM] Max restart attempts reached. Giving up.");
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
const attempt = mitmRestartCount;
|
|
296
|
+
const delay = MITM_RESTART_DELAYS_MS[Math.min(attempt, MITM_RESTART_DELAYS_MS.length - 1)];
|
|
297
|
+
mitmRestartCount++;
|
|
298
|
+
mitmIsRestarting = true;
|
|
299
|
+
|
|
300
|
+
console.log(`[MITM] Restarting in ${delay / 1000}s... (${mitmRestartCount}/${MITM_MAX_RESTARTS})`);
|
|
301
|
+
await new Promise((r) => setTimeout(r, delay));
|
|
302
|
+
|
|
303
|
+
try {
|
|
304
|
+
const settings = _getSettings ? await _getSettings() : null;
|
|
305
|
+
if (settings && !settings.mitmEnabled) {
|
|
306
|
+
console.log("[MITM] MITM disabled, skipping restart");
|
|
307
|
+
mitmIsRestarting = false;
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
const password = getCachedPassword() || await loadEncryptedPassword();
|
|
311
|
+
if (!password && !IS_WIN) {
|
|
312
|
+
console.error("[MITM] No cached password, cannot auto-restart");
|
|
313
|
+
mitmIsRestarting = false;
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
await startServer(apiKey, password);
|
|
317
|
+
console.log("[MITM] Restarted successfully");
|
|
318
|
+
mitmRestartCount = 0;
|
|
319
|
+
mitmIsRestarting = false;
|
|
320
|
+
} catch (err) {
|
|
321
|
+
console.error(`[MITM] Restart attempt ${mitmRestartCount}/${MITM_MAX_RESTARTS} failed:`, err.message);
|
|
322
|
+
mitmIsRestarting = false;
|
|
323
|
+
// Schedule next retry
|
|
324
|
+
scheduleMitmRestart(apiKey);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
276
328
|
/**
|
|
277
329
|
* Start MITM server only (cert + server, no DNS)
|
|
278
330
|
*/
|
|
@@ -378,6 +430,7 @@ async function startServer(apiKey, sudoPassword) {
|
|
|
378
430
|
if (!IS_WIN && serverProcess) {
|
|
379
431
|
serverPid = serverProcess.pid;
|
|
380
432
|
fs.writeFileSync(PID_FILE, String(serverPid));
|
|
433
|
+
mitmLastStartTime = Date.now();
|
|
381
434
|
}
|
|
382
435
|
|
|
383
436
|
let startError = null;
|
|
@@ -397,6 +450,8 @@ async function startServer(apiKey, sudoPassword) {
|
|
|
397
450
|
serverProcess = null;
|
|
398
451
|
serverPid = null;
|
|
399
452
|
try { fs.unlinkSync(PID_FILE); } catch { /* ignore */ }
|
|
453
|
+
// Auto-restart on unexpected exit
|
|
454
|
+
if (code !== 0 && !mitmIsRestarting) scheduleMitmRestart(apiKey);
|
|
400
455
|
});
|
|
401
456
|
}
|
|
402
457
|
|
|
@@ -425,6 +480,9 @@ async function startServer(apiKey, sudoPassword) {
|
|
|
425
480
|
* Stop MITM server — removes ALL tool DNS entries first, then kills server
|
|
426
481
|
*/
|
|
427
482
|
async function stopServer(sudoPassword) {
|
|
483
|
+
// Prevent auto-restart from triggering on intentional stop
|
|
484
|
+
mitmIsRestarting = true;
|
|
485
|
+
mitmRestartCount = 0;
|
|
428
486
|
console.log("[MITM] Stopping server...");
|
|
429
487
|
|
|
430
488
|
// Kill server process
|
|
@@ -476,6 +534,7 @@ async function stopServer(sudoPassword) {
|
|
|
476
534
|
|
|
477
535
|
try { fs.unlinkSync(PID_FILE); } catch { /* ignore */ }
|
|
478
536
|
await saveMitmSettings(false, null);
|
|
537
|
+
mitmIsRestarting = false;
|
|
479
538
|
|
|
480
539
|
return { running: false, pid: null };
|
|
481
540
|
}
|
package/app/src/mitm/server.js
CHANGED
|
@@ -85,7 +85,7 @@ const ANTIGRAVITY_URL_PATTERNS = [":generateContent", ":streamGenerateContent"];
|
|
|
85
85
|
// Copilot: OpenAI-compatible + Anthropic endpoints
|
|
86
86
|
const COPILOT_URL_PATTERNS = ["/chat/completions", "/v1/messages", "/responses"];
|
|
87
87
|
|
|
88
|
-
const LOG_DIR = path.join(
|
|
88
|
+
const LOG_DIR = path.join(DATA_DIR, "logs", "mitm");
|
|
89
89
|
if (ENABLE_FILE_LOG && !fs.existsSync(LOG_DIR)) fs.mkdirSync(LOG_DIR, { recursive: true });
|
|
90
90
|
|
|
91
91
|
function saveRequestLog(url, bodyBuffer) {
|