zevairouter 1.0.61 → 1.0.62
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 +5 -0
- package/cli/app/.next-cli-build/BUILD_ID +1 -1
- package/cli/app/.next-cli-build/app-path-routes-manifest.json +16 -16
- package/cli/app/.next-cli-build/build-manifest.json +2 -2
- 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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_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 +3 -3
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- 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 +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/test/route.js +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/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +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/stream/route.js +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/shutdown/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/update/route.js +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 +3 -3
- package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
- 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 +6 -6
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/index.html +1 -1
- package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
- 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 +3 -3
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +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 +3 -3
- package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- 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_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 +4 -4
- package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
- 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 +3 -3
- package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- 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/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app-paths-manifest.json +16 -16
- package/cli/app/.next-cli-build/server/chunks/3407.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/5949.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/7276.js +1 -1
- 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/static/chunks/{3702-18f5f207de6e9eeb.js → 3702-3049f543449956ae.js} +1 -1
- package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
- package/cli/app/cli/hooks/cloakbrowserRuntime.js +84 -27
- package/cli/app/cli/hooks/postinstall.js +3 -3
- package/cli/app/package.json +1 -1
- package/cli/app/src/lib/oauth/services/bulkImportBrowserEngine.js +1 -0
- package/cli/hooks/cloakbrowserRuntime.js +84 -27
- package/cli/hooks/postinstall.js +3 -3
- package/cli/package.json +1 -1
- package/package.json +1 -1
- package/src/lib/oauth/services/bulkImportBrowserEngine.js +1 -0
- /package/cli/app/.next-cli-build/static/{Fip2gTBHjVyX1dEyiiJZM → 4qzgXNlTatuSwREqjg1Tx}/_buildManifest.js +0 -0
- /package/cli/app/.next-cli-build/static/{Fip2gTBHjVyX1dEyiiJZM → 4qzgXNlTatuSwREqjg1Tx}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Minimal PTY bridge for ZevaiRouter web terminal.
|
|
4
|
+
|
|
5
|
+
stdin -> PTY master (keystrokes)
|
|
6
|
+
stdout <- PTY master (shell output), raw binary
|
|
7
|
+
stderr = control / errors (utf-8 text lines)
|
|
8
|
+
|
|
9
|
+
Optional control on a side channel is not needed: resize arrives as
|
|
10
|
+
OSC-like escape on stdin: \\x1b]9999;<cols>;<rows>\\x07
|
|
11
|
+
"""
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
import errno
|
|
15
|
+
import fcntl
|
|
16
|
+
import os
|
|
17
|
+
import select
|
|
18
|
+
import signal
|
|
19
|
+
import struct
|
|
20
|
+
import sys
|
|
21
|
+
import termios
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def set_winsize(fd: int, rows: int, cols: int) -> None:
|
|
25
|
+
try:
|
|
26
|
+
packed = struct.pack("HHHH", max(5, rows), max(20, cols), 0, 0)
|
|
27
|
+
fcntl.ioctl(fd, termios.TIOCSWINSZ, packed)
|
|
28
|
+
except Exception:
|
|
29
|
+
pass
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def main() -> int:
|
|
33
|
+
cols = int(sys.argv[1]) if len(sys.argv) > 1 else 120
|
|
34
|
+
rows = int(sys.argv[2]) if len(sys.argv) > 2 else 40
|
|
35
|
+
shell = os.environ.get("SHELL") or ("/bin/bash" if os.path.exists("/bin/bash") else "/bin/sh")
|
|
36
|
+
cwd = os.path.expanduser("~")
|
|
37
|
+
|
|
38
|
+
pid, master = pty_fork = _fork_pty()
|
|
39
|
+
if pid == 0:
|
|
40
|
+
# child
|
|
41
|
+
try:
|
|
42
|
+
os.chdir(cwd)
|
|
43
|
+
except Exception:
|
|
44
|
+
pass
|
|
45
|
+
os.environ.setdefault("TERM", "xterm-256color")
|
|
46
|
+
os.environ.setdefault("COLORTERM", "truecolor")
|
|
47
|
+
os.environ.setdefault("FORCE_COLOR", "1")
|
|
48
|
+
try:
|
|
49
|
+
os.execv(shell, [shell, "-il"])
|
|
50
|
+
except Exception:
|
|
51
|
+
os.execv("/bin/sh", ["/bin/sh", "-i"])
|
|
52
|
+
return 1
|
|
53
|
+
|
|
54
|
+
set_winsize(master, rows, cols)
|
|
55
|
+
|
|
56
|
+
# Non-blocking master + stdin
|
|
57
|
+
for fd in (master, sys.stdin.fileno()):
|
|
58
|
+
fl = fcntl.fcntl(fd, fcntl.F_GETFL)
|
|
59
|
+
fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)
|
|
60
|
+
|
|
61
|
+
# Binary stdout
|
|
62
|
+
stdout = sys.stdout.buffer
|
|
63
|
+
stdin = sys.stdin.buffer
|
|
64
|
+
|
|
65
|
+
resize_buf = b""
|
|
66
|
+
|
|
67
|
+
def handle_resize_escape(chunk: bytes) -> bytes:
|
|
68
|
+
"""Strip and apply embedded resize escapes, return remaining bytes."""
|
|
69
|
+
nonlocal resize_buf
|
|
70
|
+
data = resize_buf + chunk
|
|
71
|
+
out = bytearray()
|
|
72
|
+
i = 0
|
|
73
|
+
while i < len(data):
|
|
74
|
+
# ESC ] 9999 ; cols ; rows BEL
|
|
75
|
+
if data[i] == 0x1B and data[i : i + 6] == b"\x1b]9999;":
|
|
76
|
+
end = data.find(b"\x07", i + 6)
|
|
77
|
+
if end < 0:
|
|
78
|
+
resize_buf = data[i:]
|
|
79
|
+
return bytes(out)
|
|
80
|
+
payload = data[i + 6 : end].decode("ascii", "ignore")
|
|
81
|
+
try:
|
|
82
|
+
c_s, r_s = payload.split(";", 1)
|
|
83
|
+
set_winsize(master, int(r_s), int(c_s))
|
|
84
|
+
except Exception:
|
|
85
|
+
pass
|
|
86
|
+
i = end + 1
|
|
87
|
+
resize_buf = b""
|
|
88
|
+
continue
|
|
89
|
+
out.append(data[i])
|
|
90
|
+
i += 1
|
|
91
|
+
resize_buf = b""
|
|
92
|
+
return bytes(out)
|
|
93
|
+
|
|
94
|
+
alive = True
|
|
95
|
+
|
|
96
|
+
def on_chld(signum, frame): # noqa: ARG001
|
|
97
|
+
nonlocal alive
|
|
98
|
+
alive = False
|
|
99
|
+
|
|
100
|
+
signal.signal(signal.SIGCHLD, on_chld)
|
|
101
|
+
|
|
102
|
+
try:
|
|
103
|
+
while alive:
|
|
104
|
+
try:
|
|
105
|
+
r, _, _ = select.select([master, sys.stdin.fileno()], [], [], 0.25)
|
|
106
|
+
except InterruptedError:
|
|
107
|
+
continue
|
|
108
|
+
|
|
109
|
+
if master in r:
|
|
110
|
+
try:
|
|
111
|
+
data = os.read(master, 8192)
|
|
112
|
+
except OSError as e:
|
|
113
|
+
if e.errno in (errno.EIO, errno.EAGAIN, errno.EWOULDBLOCK):
|
|
114
|
+
data = b""
|
|
115
|
+
else:
|
|
116
|
+
break
|
|
117
|
+
if not data:
|
|
118
|
+
# EIO often means child exited
|
|
119
|
+
if not alive:
|
|
120
|
+
break
|
|
121
|
+
else:
|
|
122
|
+
stdout.write(data)
|
|
123
|
+
stdout.flush()
|
|
124
|
+
|
|
125
|
+
if sys.stdin.fileno() in r:
|
|
126
|
+
try:
|
|
127
|
+
data = stdin.read(8192)
|
|
128
|
+
except Exception:
|
|
129
|
+
data = b""
|
|
130
|
+
if data is None:
|
|
131
|
+
data = b""
|
|
132
|
+
if data == b"" and not alive:
|
|
133
|
+
break
|
|
134
|
+
if data:
|
|
135
|
+
cleaned = handle_resize_escape(data)
|
|
136
|
+
if cleaned:
|
|
137
|
+
try:
|
|
138
|
+
os.write(master, cleaned)
|
|
139
|
+
except OSError:
|
|
140
|
+
break
|
|
141
|
+
finally:
|
|
142
|
+
try:
|
|
143
|
+
os.close(master)
|
|
144
|
+
except Exception:
|
|
145
|
+
pass
|
|
146
|
+
try:
|
|
147
|
+
os.waitpid(pid, 0)
|
|
148
|
+
except Exception:
|
|
149
|
+
pass
|
|
150
|
+
return 0
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
def _fork_pty():
|
|
154
|
+
import pty
|
|
155
|
+
|
|
156
|
+
return pty.fork()
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
if __name__ == "__main__":
|
|
160
|
+
try:
|
|
161
|
+
raise SystemExit(main())
|
|
162
|
+
except KeyboardInterrupt:
|
|
163
|
+
raise SystemExit(0)
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
// Lazy-install helper for cloakbrowser (stealth Chromium that can pass Turnstile).
|
|
2
2
|
// Same shape as camoufoxRuntime / playwrightRuntime — optional package, install on demand.
|
|
3
|
+
// Also installs mmdb-lib (required by cloakbrowser when geoip: true for proxy timezone match).
|
|
3
4
|
const { createRequire } = require("module");
|
|
4
5
|
const fs = require("fs");
|
|
5
6
|
const path = require("path");
|
|
6
7
|
|
|
7
|
-
const {
|
|
8
|
+
const {
|
|
9
|
+
runNpmInstall,
|
|
10
|
+
getRuntimeDir,
|
|
11
|
+
getRuntimeNodeModules,
|
|
12
|
+
summarizeNpmError,
|
|
13
|
+
buildEnvWithRuntime,
|
|
14
|
+
} = require("./sqliteRuntime");
|
|
8
15
|
|
|
9
16
|
const CLOAKBROWSER_PACKAGE = "cloakbrowser";
|
|
10
|
-
// Keep in sync with package.json optionalDependencies
|
|
11
17
|
const CLOAKBROWSER_VERSION = "^0.3.32";
|
|
18
|
+
const MMDB_PACKAGE = "mmdb-lib";
|
|
19
|
+
const MMDB_VERSION = "^3.0.2";
|
|
12
20
|
|
|
13
21
|
const nodeRequire =
|
|
14
22
|
typeof __non_webpack_require__ === "function" ? __non_webpack_require__ : require;
|
|
@@ -24,6 +32,10 @@ function getRuntimeRequire() {
|
|
|
24
32
|
|
|
25
33
|
let cachedReady = null;
|
|
26
34
|
|
|
35
|
+
function hasPackage(name) {
|
|
36
|
+
return fs.existsSync(path.join(getRuntimeNodeModules(), name, "package.json"));
|
|
37
|
+
}
|
|
38
|
+
|
|
27
39
|
function tryRequireCloakbrowser() {
|
|
28
40
|
try {
|
|
29
41
|
const rreq = getRuntimeRequire();
|
|
@@ -41,7 +53,6 @@ function tryRequireCloakbrowser() {
|
|
|
41
53
|
return nodeRequire(candidate);
|
|
42
54
|
}
|
|
43
55
|
} catch {}
|
|
44
|
-
// Dev / user global installs
|
|
45
56
|
try {
|
|
46
57
|
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
47
58
|
const aurix = path.join(home, ".aurix/agent/node_modules", CLOAKBROWSER_PACKAGE);
|
|
@@ -52,49 +63,93 @@ function tryRequireCloakbrowser() {
|
|
|
52
63
|
return null;
|
|
53
64
|
}
|
|
54
65
|
|
|
66
|
+
function tryRequireMmdb() {
|
|
67
|
+
try {
|
|
68
|
+
const rreq = getRuntimeRequire();
|
|
69
|
+
const candidate = path.join(getRuntimeNodeModules(), MMDB_PACKAGE);
|
|
70
|
+
if (rreq && fs.existsSync(path.join(candidate, "package.json"))) {
|
|
71
|
+
return rreq(candidate);
|
|
72
|
+
}
|
|
73
|
+
} catch {}
|
|
74
|
+
try {
|
|
75
|
+
return nodeRequire(MMDB_PACKAGE);
|
|
76
|
+
} catch {}
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
|
|
55
80
|
function loadCloakbrowserModule() {
|
|
56
81
|
return tryRequireCloakbrowser();
|
|
57
82
|
}
|
|
58
83
|
|
|
84
|
+
/**
|
|
85
|
+
* Ensure cloakbrowser + mmdb-lib are available under ~/.zevai/runtime.
|
|
86
|
+
* mmdb-lib is required when launching with geoip: true (proxy timezone/locale).
|
|
87
|
+
*/
|
|
59
88
|
function ensureCloakbrowserRuntime({ silent = false } = {}) {
|
|
60
|
-
if (cachedReady?.ok && cachedReady.module) {
|
|
89
|
+
if (cachedReady?.ok && cachedReady.module && tryRequireMmdb()) {
|
|
61
90
|
return cachedReady;
|
|
62
91
|
}
|
|
63
92
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
93
|
+
// Inject runtime node_modules into resolution for cloakbrowser's require("mmdb-lib")
|
|
94
|
+
try {
|
|
95
|
+
const env = buildEnvWithRuntime(process.env);
|
|
96
|
+
if (env.NODE_PATH && !process.env.NODE_PATH?.includes(getRuntimeNodeModules())) {
|
|
97
|
+
process.env.NODE_PATH = env.NODE_PATH;
|
|
98
|
+
// Re-init module paths for already-running process
|
|
99
|
+
try {
|
|
100
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
101
|
+
require("module").Module._initPaths();
|
|
102
|
+
} catch {
|
|
103
|
+
/* ignore */
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
} catch {
|
|
107
|
+
/* ignore */
|
|
68
108
|
}
|
|
69
109
|
|
|
70
|
-
|
|
71
|
-
|
|
110
|
+
let mod = tryRequireCloakbrowser();
|
|
111
|
+
const needCloak = !mod?.launch;
|
|
112
|
+
const needMmdb = !tryRequireMmdb() && !hasPackage(MMDB_PACKAGE);
|
|
113
|
+
|
|
114
|
+
if (needCloak || needMmdb) {
|
|
115
|
+
const pkgs = [];
|
|
116
|
+
if (needCloak) pkgs.push(`${CLOAKBROWSER_PACKAGE}@${CLOAKBROWSER_VERSION}`);
|
|
117
|
+
if (needMmdb) pkgs.push(`${MMDB_PACKAGE}@${MMDB_VERSION}`);
|
|
118
|
+
|
|
119
|
+
if (!silent) {
|
|
120
|
+
console.log(`[cloakbrowser] Installing ${pkgs.join(", ")} into runtime…`);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const installRes = runNpmInstall({
|
|
124
|
+
cwd: getRuntimeDir(),
|
|
125
|
+
pkgs,
|
|
126
|
+
timeout: 300_000,
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
if (!installRes.ok) {
|
|
130
|
+
const reason = summarizeNpmError(installRes.stderr || installRes.stdout || "");
|
|
131
|
+
const err = new Error(
|
|
132
|
+
`Failed to install ${pkgs.join(", ")}. On the host run: cd "${getRuntimeDir()}" && npm install ${pkgs.join(" ")} — ${reason}`
|
|
133
|
+
);
|
|
134
|
+
err.code = "CLOAKBROWSER_INSTALL_FAILED";
|
|
135
|
+
return { ok: false, error: err };
|
|
136
|
+
}
|
|
72
137
|
}
|
|
73
138
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
// "Failed to install cloakbrowser … b is not iterable" on first Grok bulk use.
|
|
77
|
-
const installRes = runNpmInstall({
|
|
78
|
-
cwd: getRuntimeDir(),
|
|
79
|
-
pkgs: [`${CLOAKBROWSER_PACKAGE}@${CLOAKBROWSER_VERSION}`],
|
|
80
|
-
timeout: 300_000,
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
if (!installRes.ok) {
|
|
84
|
-
const reason = summarizeNpmError(installRes.stderr || installRes.stdout || "");
|
|
139
|
+
mod = tryRequireCloakbrowser();
|
|
140
|
+
if (!mod?.launch) {
|
|
85
141
|
const err = new Error(
|
|
86
|
-
`
|
|
142
|
+
`cloakbrowser installed but launch() is missing. Reinstall: cd "${getRuntimeDir()}" && npm install ${CLOAKBROWSER_PACKAGE}@${CLOAKBROWSER_VERSION} ${MMDB_PACKAGE}@${MMDB_VERSION}`
|
|
87
143
|
);
|
|
88
|
-
err.code = "
|
|
144
|
+
err.code = "CLOAKBROWSER_API_MISMATCH";
|
|
89
145
|
return { ok: false, error: err };
|
|
90
146
|
}
|
|
91
147
|
|
|
92
|
-
|
|
93
|
-
if (!mod?.launch) {
|
|
148
|
+
if (!tryRequireMmdb() && !hasPackage(MMDB_PACKAGE)) {
|
|
94
149
|
const err = new Error(
|
|
95
|
-
`
|
|
150
|
+
`mmdb-lib is required for geoip: true. Install: cd "${getRuntimeDir()}" && npm install ${MMDB_PACKAGE}@${MMDB_VERSION}`
|
|
96
151
|
);
|
|
97
|
-
err.code = "
|
|
152
|
+
err.code = "MMDB_MISSING";
|
|
98
153
|
return { ok: false, error: err };
|
|
99
154
|
}
|
|
100
155
|
|
|
@@ -107,4 +162,6 @@ module.exports = {
|
|
|
107
162
|
loadCloakbrowserModule,
|
|
108
163
|
CLOAKBROWSER_PACKAGE,
|
|
109
164
|
CLOAKBROWSER_VERSION,
|
|
165
|
+
MMDB_PACKAGE,
|
|
166
|
+
MMDB_VERSION,
|
|
110
167
|
};
|
|
@@ -148,12 +148,12 @@ try {
|
|
|
148
148
|
warn(`Camoufox skipped: ${e.message}`);
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
// 5) CloakBrowser (Grok Turnstile /
|
|
151
|
+
// 5) CloakBrowser + mmdb-lib (Grok Turnstile / proxy geoip)
|
|
152
152
|
try {
|
|
153
|
-
log("… CloakBrowser (Grok bulk /
|
|
153
|
+
log("… CloakBrowser + mmdb-lib (Grok bulk / geoip)");
|
|
154
154
|
const cloak = warmCloakbrowser();
|
|
155
155
|
if (cloak.ok) {
|
|
156
|
-
log("✓ CloakBrowser ready");
|
|
156
|
+
log("✓ CloakBrowser + mmdb-lib ready");
|
|
157
157
|
} else {
|
|
158
158
|
warn(`CloakBrowser skipped: ${cloak.error?.message || "unknown"} — install on first Grok bulk if needed`);
|
|
159
159
|
}
|
package/cli/app/package.json
CHANGED
|
@@ -235,6 +235,7 @@ async function launchCloakbrowser({ proxyUrl, headless = false, windowSize = nul
|
|
|
235
235
|
const runtime = loadRuntimeHelper("cloakbrowserRuntime");
|
|
236
236
|
let cloak = null;
|
|
237
237
|
if (runtime?.ensureCloakbrowserRuntime) {
|
|
238
|
+
// Also installs mmdb-lib (required when geoip: true for proxy timezone match)
|
|
238
239
|
const ready = runtime.ensureCloakbrowserRuntime({ silent: false });
|
|
239
240
|
if (!ready.ok && ready.error) throw ready.error;
|
|
240
241
|
cloak = ready.module || runtime.loadCloakbrowserModule?.();
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
// Lazy-install helper for cloakbrowser (stealth Chromium that can pass Turnstile).
|
|
2
2
|
// Same shape as camoufoxRuntime / playwrightRuntime — optional package, install on demand.
|
|
3
|
+
// Also installs mmdb-lib (required by cloakbrowser when geoip: true for proxy timezone match).
|
|
3
4
|
const { createRequire } = require("module");
|
|
4
5
|
const fs = require("fs");
|
|
5
6
|
const path = require("path");
|
|
6
7
|
|
|
7
|
-
const {
|
|
8
|
+
const {
|
|
9
|
+
runNpmInstall,
|
|
10
|
+
getRuntimeDir,
|
|
11
|
+
getRuntimeNodeModules,
|
|
12
|
+
summarizeNpmError,
|
|
13
|
+
buildEnvWithRuntime,
|
|
14
|
+
} = require("./sqliteRuntime");
|
|
8
15
|
|
|
9
16
|
const CLOAKBROWSER_PACKAGE = "cloakbrowser";
|
|
10
|
-
// Keep in sync with package.json optionalDependencies
|
|
11
17
|
const CLOAKBROWSER_VERSION = "^0.3.32";
|
|
18
|
+
const MMDB_PACKAGE = "mmdb-lib";
|
|
19
|
+
const MMDB_VERSION = "^3.0.2";
|
|
12
20
|
|
|
13
21
|
const nodeRequire =
|
|
14
22
|
typeof __non_webpack_require__ === "function" ? __non_webpack_require__ : require;
|
|
@@ -24,6 +32,10 @@ function getRuntimeRequire() {
|
|
|
24
32
|
|
|
25
33
|
let cachedReady = null;
|
|
26
34
|
|
|
35
|
+
function hasPackage(name) {
|
|
36
|
+
return fs.existsSync(path.join(getRuntimeNodeModules(), name, "package.json"));
|
|
37
|
+
}
|
|
38
|
+
|
|
27
39
|
function tryRequireCloakbrowser() {
|
|
28
40
|
try {
|
|
29
41
|
const rreq = getRuntimeRequire();
|
|
@@ -41,7 +53,6 @@ function tryRequireCloakbrowser() {
|
|
|
41
53
|
return nodeRequire(candidate);
|
|
42
54
|
}
|
|
43
55
|
} catch {}
|
|
44
|
-
// Dev / user global installs
|
|
45
56
|
try {
|
|
46
57
|
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
47
58
|
const aurix = path.join(home, ".aurix/agent/node_modules", CLOAKBROWSER_PACKAGE);
|
|
@@ -52,49 +63,93 @@ function tryRequireCloakbrowser() {
|
|
|
52
63
|
return null;
|
|
53
64
|
}
|
|
54
65
|
|
|
66
|
+
function tryRequireMmdb() {
|
|
67
|
+
try {
|
|
68
|
+
const rreq = getRuntimeRequire();
|
|
69
|
+
const candidate = path.join(getRuntimeNodeModules(), MMDB_PACKAGE);
|
|
70
|
+
if (rreq && fs.existsSync(path.join(candidate, "package.json"))) {
|
|
71
|
+
return rreq(candidate);
|
|
72
|
+
}
|
|
73
|
+
} catch {}
|
|
74
|
+
try {
|
|
75
|
+
return nodeRequire(MMDB_PACKAGE);
|
|
76
|
+
} catch {}
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
|
|
55
80
|
function loadCloakbrowserModule() {
|
|
56
81
|
return tryRequireCloakbrowser();
|
|
57
82
|
}
|
|
58
83
|
|
|
84
|
+
/**
|
|
85
|
+
* Ensure cloakbrowser + mmdb-lib are available under ~/.zevai/runtime.
|
|
86
|
+
* mmdb-lib is required when launching with geoip: true (proxy timezone/locale).
|
|
87
|
+
*/
|
|
59
88
|
function ensureCloakbrowserRuntime({ silent = false } = {}) {
|
|
60
|
-
if (cachedReady?.ok && cachedReady.module) {
|
|
89
|
+
if (cachedReady?.ok && cachedReady.module && tryRequireMmdb()) {
|
|
61
90
|
return cachedReady;
|
|
62
91
|
}
|
|
63
92
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
93
|
+
// Inject runtime node_modules into resolution for cloakbrowser's require("mmdb-lib")
|
|
94
|
+
try {
|
|
95
|
+
const env = buildEnvWithRuntime(process.env);
|
|
96
|
+
if (env.NODE_PATH && !process.env.NODE_PATH?.includes(getRuntimeNodeModules())) {
|
|
97
|
+
process.env.NODE_PATH = env.NODE_PATH;
|
|
98
|
+
// Re-init module paths for already-running process
|
|
99
|
+
try {
|
|
100
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
101
|
+
require("module").Module._initPaths();
|
|
102
|
+
} catch {
|
|
103
|
+
/* ignore */
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
} catch {
|
|
107
|
+
/* ignore */
|
|
68
108
|
}
|
|
69
109
|
|
|
70
|
-
|
|
71
|
-
|
|
110
|
+
let mod = tryRequireCloakbrowser();
|
|
111
|
+
const needCloak = !mod?.launch;
|
|
112
|
+
const needMmdb = !tryRequireMmdb() && !hasPackage(MMDB_PACKAGE);
|
|
113
|
+
|
|
114
|
+
if (needCloak || needMmdb) {
|
|
115
|
+
const pkgs = [];
|
|
116
|
+
if (needCloak) pkgs.push(`${CLOAKBROWSER_PACKAGE}@${CLOAKBROWSER_VERSION}`);
|
|
117
|
+
if (needMmdb) pkgs.push(`${MMDB_PACKAGE}@${MMDB_VERSION}`);
|
|
118
|
+
|
|
119
|
+
if (!silent) {
|
|
120
|
+
console.log(`[cloakbrowser] Installing ${pkgs.join(", ")} into runtime…`);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const installRes = runNpmInstall({
|
|
124
|
+
cwd: getRuntimeDir(),
|
|
125
|
+
pkgs,
|
|
126
|
+
timeout: 300_000,
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
if (!installRes.ok) {
|
|
130
|
+
const reason = summarizeNpmError(installRes.stderr || installRes.stdout || "");
|
|
131
|
+
const err = new Error(
|
|
132
|
+
`Failed to install ${pkgs.join(", ")}. On the host run: cd "${getRuntimeDir()}" && npm install ${pkgs.join(" ")} — ${reason}`
|
|
133
|
+
);
|
|
134
|
+
err.code = "CLOAKBROWSER_INSTALL_FAILED";
|
|
135
|
+
return { ok: false, error: err };
|
|
136
|
+
}
|
|
72
137
|
}
|
|
73
138
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
// "Failed to install cloakbrowser … b is not iterable" on first Grok bulk use.
|
|
77
|
-
const installRes = runNpmInstall({
|
|
78
|
-
cwd: getRuntimeDir(),
|
|
79
|
-
pkgs: [`${CLOAKBROWSER_PACKAGE}@${CLOAKBROWSER_VERSION}`],
|
|
80
|
-
timeout: 300_000,
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
if (!installRes.ok) {
|
|
84
|
-
const reason = summarizeNpmError(installRes.stderr || installRes.stdout || "");
|
|
139
|
+
mod = tryRequireCloakbrowser();
|
|
140
|
+
if (!mod?.launch) {
|
|
85
141
|
const err = new Error(
|
|
86
|
-
`
|
|
142
|
+
`cloakbrowser installed but launch() is missing. Reinstall: cd "${getRuntimeDir()}" && npm install ${CLOAKBROWSER_PACKAGE}@${CLOAKBROWSER_VERSION} ${MMDB_PACKAGE}@${MMDB_VERSION}`
|
|
87
143
|
);
|
|
88
|
-
err.code = "
|
|
144
|
+
err.code = "CLOAKBROWSER_API_MISMATCH";
|
|
89
145
|
return { ok: false, error: err };
|
|
90
146
|
}
|
|
91
147
|
|
|
92
|
-
|
|
93
|
-
if (!mod?.launch) {
|
|
148
|
+
if (!tryRequireMmdb() && !hasPackage(MMDB_PACKAGE)) {
|
|
94
149
|
const err = new Error(
|
|
95
|
-
`
|
|
150
|
+
`mmdb-lib is required for geoip: true. Install: cd "${getRuntimeDir()}" && npm install ${MMDB_PACKAGE}@${MMDB_VERSION}`
|
|
96
151
|
);
|
|
97
|
-
err.code = "
|
|
152
|
+
err.code = "MMDB_MISSING";
|
|
98
153
|
return { ok: false, error: err };
|
|
99
154
|
}
|
|
100
155
|
|
|
@@ -107,4 +162,6 @@ module.exports = {
|
|
|
107
162
|
loadCloakbrowserModule,
|
|
108
163
|
CLOAKBROWSER_PACKAGE,
|
|
109
164
|
CLOAKBROWSER_VERSION,
|
|
165
|
+
MMDB_PACKAGE,
|
|
166
|
+
MMDB_VERSION,
|
|
110
167
|
};
|
package/cli/hooks/postinstall.js
CHANGED
|
@@ -148,12 +148,12 @@ try {
|
|
|
148
148
|
warn(`Camoufox skipped: ${e.message}`);
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
// 5) CloakBrowser (Grok Turnstile /
|
|
151
|
+
// 5) CloakBrowser + mmdb-lib (Grok Turnstile / proxy geoip)
|
|
152
152
|
try {
|
|
153
|
-
log("… CloakBrowser (Grok bulk /
|
|
153
|
+
log("… CloakBrowser + mmdb-lib (Grok bulk / geoip)");
|
|
154
154
|
const cloak = warmCloakbrowser();
|
|
155
155
|
if (cloak.ok) {
|
|
156
|
-
log("✓ CloakBrowser ready");
|
|
156
|
+
log("✓ CloakBrowser + mmdb-lib ready");
|
|
157
157
|
} else {
|
|
158
158
|
warn(`CloakBrowser skipped: ${cloak.error?.message || "unknown"} — install on first Grok bulk if needed`);
|
|
159
159
|
}
|
package/cli/package.json
CHANGED
package/package.json
CHANGED
|
@@ -235,6 +235,7 @@ async function launchCloakbrowser({ proxyUrl, headless = false, windowSize = nul
|
|
|
235
235
|
const runtime = loadRuntimeHelper("cloakbrowserRuntime");
|
|
236
236
|
let cloak = null;
|
|
237
237
|
if (runtime?.ensureCloakbrowserRuntime) {
|
|
238
|
+
// Also installs mmdb-lib (required when geoip: true for proxy timezone match)
|
|
238
239
|
const ready = runtime.ensureCloakbrowserRuntime({ silent: false });
|
|
239
240
|
if (!ready.ok && ready.error) throw ready.error;
|
|
240
241
|
cloak = ready.module || runtime.loadCloakbrowserModule?.();
|
|
File without changes
|
|
File without changes
|