zevairouter 1.0.28 → 1.0.30
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 +7 -0
- package/cli/app/.next-cli-build/BUILD_ID +1 -1
- package/cli/app/.next-cli-build/app-path-routes-manifest.json +3 -3
- 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/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/quota/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/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/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/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/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 +3 -3
- package/cli/app/.next-cli-build/server/chunks/3110.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 +33 -1
- package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/7153.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/9326.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/{1321-5a9e391befc0c444.js → 1321-f0bfa39f5088c2fe.js} +1 -1
- package/cli/app/cli/hooks/sqliteRuntime.js +8 -7
- package/cli/app/package.json +1 -1
- package/cli/app/src/lib/oauth/services/bulkImportBrowserEngine.js +74 -8
- package/cli/hooks/sqliteRuntime.js +8 -7
- package/cli/package.json +1 -1
- package/package.json +1 -1
- package/src/lib/oauth/services/bulkImportBrowserEngine.js +74 -8
- package/src/lib/oauth/services/kiroGoogleAutomation.js +21 -4
- /package/cli/app/.next-cli-build/static/{dQVBTkxMneD9bo4_sm1od → 0_H2408FyK5h1iiMUVln9}/_buildManifest.js +0 -0
- /package/cli/app/.next-cli-build/static/{dQVBTkxMneD9bo4_sm1od → 0_H2408FyK5h1iiMUVln9}/_ssgManifest.js +0 -0
|
@@ -80,13 +80,14 @@ function summarizeNpmError(stderr = "") {
|
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
function runNpmInstall({ cwd, pkgs, extraArgs = [], timeout = 180000 }) {
|
|
83
|
-
// --no-save
|
|
84
|
-
// optional packages (better-sqlite3, camoufox-js, playwright).
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
// restart. --
|
|
88
|
-
|
|
89
|
-
const
|
|
83
|
+
// Use --save (NOT --no-save): the runtime dir hosts several lazily-installed
|
|
84
|
+
// optional packages (better-sqlite3, camoufox-js, playwright, systray2). npm
|
|
85
|
+
// v11 prunes anything NOT declared in package.json on every `npm install`, so
|
|
86
|
+
// --no-save made each install wipe the previously-installed optional packages
|
|
87
|
+
// (camoufox-js kept vanishing on restart). --save records each package as a
|
|
88
|
+
// real dependency so npm treats it as legitimate and never prunes it.
|
|
89
|
+
const filtered = extraArgs.filter((a) => a !== "--no-save");
|
|
90
|
+
const args = ["install", ...pkgs, "--save", "--no-audit", "--no-fund", "--prefer-online", ...filtered];
|
|
90
91
|
|
|
91
92
|
// Prefer running npm-cli.js with the SAME Node that's executing us. On hosts
|
|
92
93
|
// where the default `npm`/`/usr/bin/node` is an old Node (e.g. v12), spawning
|
package/cli/app/package.json
CHANGED
|
@@ -24,11 +24,56 @@ async function importPlaywright() {
|
|
|
24
24
|
return playwright.chromium ?? playwright.default?.chromium ?? null;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
const STEALTH_INIT_SCRIPT = `
|
|
28
|
+
Object.defineProperty(navigator, 'webdriver', { get: () => undefined });
|
|
29
|
+
Object.defineProperty(navigator, 'languages', { get: () => ['en-US', 'en'] });
|
|
30
|
+
Object.defineProperty(navigator, 'plugins', {
|
|
31
|
+
get: () => {
|
|
32
|
+
const plugins = [
|
|
33
|
+
{ name: 'Chrome PDF Plugin', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },
|
|
34
|
+
{ name: 'Chrome PDF Viewer', filename: 'mhjfbmdgcfjbbpaeojofohoefgiehjai', description: '' },
|
|
35
|
+
{ name: 'Native Client', filename: 'internal-nacl-plugin', description: '' },
|
|
36
|
+
];
|
|
37
|
+
plugins.length = 3;
|
|
38
|
+
return plugins;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const _origQuery = window.navigator.permissions.query;
|
|
42
|
+
window.navigator.permissions.query = (parameters) =>
|
|
43
|
+
parameters.name === 'notifications'
|
|
44
|
+
? Promise.resolve({ state: Notification.permission })
|
|
45
|
+
: _origQuery.call(window.navigator.permissions, parameters);
|
|
46
|
+
if (window.chrome) {
|
|
47
|
+
if (!window.chrome.runtime) window.chrome.runtime = {};
|
|
48
|
+
window.chrome.runtime.connect = window.chrome.runtime.connect || function() {};
|
|
49
|
+
window.chrome.runtime.sendMessage = window.chrome.runtime.sendMessage || function() {};
|
|
50
|
+
} else {
|
|
51
|
+
window.chrome = { runtime: { connect: function() {}, sendMessage: function() {} } };
|
|
52
|
+
}
|
|
53
|
+
const _origGetParameter = WebGLRenderingContext.prototype.getParameter;
|
|
54
|
+
WebGLRenderingContext.prototype.getParameter = function(parameter) {
|
|
55
|
+
if (parameter === 37445) return 'Intel Inc.';
|
|
56
|
+
if (parameter === 37446) return 'Intel Iris OpenGL Engine';
|
|
57
|
+
return _origGetParameter.call(this, parameter);
|
|
58
|
+
};
|
|
59
|
+
`;
|
|
60
|
+
|
|
61
|
+
function wrapBrowserWithStealth(browser) {
|
|
62
|
+
const origNewContext = browser.newContext.bind(browser);
|
|
63
|
+
browser.newContext = async function (options = {}) {
|
|
64
|
+
// Fix HeadlessChrome in User-Agent — Google detects this server-side
|
|
65
|
+
if (!options.userAgent) {
|
|
66
|
+
const ver = browser.version ? browser.version() : "131.0.0.0";
|
|
67
|
+
options.userAgent = `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${ver} Safari/537.36`;
|
|
68
|
+
}
|
|
69
|
+
const ctx = await origNewContext(options);
|
|
70
|
+
await ctx.addInitScript(STEALTH_INIT_SCRIPT);
|
|
71
|
+
return ctx;
|
|
72
|
+
};
|
|
73
|
+
return browser;
|
|
74
|
+
}
|
|
75
|
+
|
|
27
76
|
async function launchChromium({ proxyUrl } = {}) {
|
|
28
|
-
// Try the real import FIRST. In the bundled standalone server this resolves
|
|
29
|
-
// playwright correctly (Next externalizes it), whereas the runtime helper's
|
|
30
|
-
// internal require() can return a false negative. We only consult the helper
|
|
31
|
-
// if the direct import genuinely fails.
|
|
32
77
|
let chromium = null;
|
|
33
78
|
let importErr = null;
|
|
34
79
|
try {
|
|
@@ -42,7 +87,6 @@ async function launchChromium({ proxyUrl } = {}) {
|
|
|
42
87
|
if (runtime?.ensurePlaywrightRuntime) {
|
|
43
88
|
const ready = runtime.ensurePlaywrightRuntime({ silent: false });
|
|
44
89
|
if (ready.ok) {
|
|
45
|
-
// Helper may have lazily installed playwright / downloaded chromium.
|
|
46
90
|
try {
|
|
47
91
|
chromium = await importPlaywright();
|
|
48
92
|
} catch (err) {
|
|
@@ -68,16 +112,38 @@ async function launchChromium({ proxyUrl } = {}) {
|
|
|
68
112
|
throw friendly;
|
|
69
113
|
}
|
|
70
114
|
|
|
71
|
-
const options = {
|
|
115
|
+
const options = {
|
|
116
|
+
channel: "chrome",
|
|
117
|
+
headless: true,
|
|
118
|
+
args: [
|
|
119
|
+
"--disable-blink-features=AutomationControlled",
|
|
120
|
+
"--disable-features=IsolateOrigins,site-per-process,AutomationControlled",
|
|
121
|
+
"--disable-infobars",
|
|
122
|
+
"--no-first-run",
|
|
123
|
+
"--no-default-browser-check",
|
|
124
|
+
"--disable-extensions",
|
|
125
|
+
"--disable-popup-blocking",
|
|
126
|
+
"--disable-backgrounding-occluded-windows",
|
|
127
|
+
"--disable-renderer-backgrounding",
|
|
128
|
+
"--disable-background-timer-throttling",
|
|
129
|
+
"--disable-ipc-flooding-protection",
|
|
130
|
+
"--password-store=basic",
|
|
131
|
+
"--use-mock-keychain",
|
|
132
|
+
"--window-size=1920,1080",
|
|
133
|
+
],
|
|
134
|
+
ignoreDefaultArgs: ["--enable-automation"],
|
|
135
|
+
};
|
|
72
136
|
if (proxyUrl) options.proxy = { server: proxyUrl };
|
|
73
|
-
|
|
137
|
+
|
|
138
|
+
const browser = await chromium.launch(options);
|
|
139
|
+
return wrapBrowserWithStealth(browser);
|
|
74
140
|
}
|
|
75
141
|
|
|
76
142
|
async function launchCamoufox({ proxyUrl } = {}) {
|
|
77
143
|
const runtime = loadRuntimeHelper("camoufoxRuntime");
|
|
78
144
|
if (!runtime?.ensureCamoufoxRuntime) {
|
|
79
145
|
const err = new Error(
|
|
80
|
-
`Camoufox runtime helper missing. Reinstall
|
|
146
|
+
`Camoufox runtime helper missing. Reinstall zevairouter or pick the Chromium engine.`
|
|
81
147
|
);
|
|
82
148
|
err.code = "CAMOUFOX_RUNTIME_HELPER_MISSING";
|
|
83
149
|
throw err;
|
|
@@ -80,13 +80,14 @@ function summarizeNpmError(stderr = "") {
|
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
function runNpmInstall({ cwd, pkgs, extraArgs = [], timeout = 180000 }) {
|
|
83
|
-
// --no-save
|
|
84
|
-
// optional packages (better-sqlite3, camoufox-js, playwright).
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
// restart. --
|
|
88
|
-
|
|
89
|
-
const
|
|
83
|
+
// Use --save (NOT --no-save): the runtime dir hosts several lazily-installed
|
|
84
|
+
// optional packages (better-sqlite3, camoufox-js, playwright, systray2). npm
|
|
85
|
+
// v11 prunes anything NOT declared in package.json on every `npm install`, so
|
|
86
|
+
// --no-save made each install wipe the previously-installed optional packages
|
|
87
|
+
// (camoufox-js kept vanishing on restart). --save records each package as a
|
|
88
|
+
// real dependency so npm treats it as legitimate and never prunes it.
|
|
89
|
+
const filtered = extraArgs.filter((a) => a !== "--no-save");
|
|
90
|
+
const args = ["install", ...pkgs, "--save", "--no-audit", "--no-fund", "--prefer-online", ...filtered];
|
|
90
91
|
|
|
91
92
|
// Prefer running npm-cli.js with the SAME Node that's executing us. On hosts
|
|
92
93
|
// where the default `npm`/`/usr/bin/node` is an old Node (e.g. v12), spawning
|
package/cli/package.json
CHANGED
package/package.json
CHANGED
|
@@ -24,11 +24,56 @@ async function importPlaywright() {
|
|
|
24
24
|
return playwright.chromium ?? playwright.default?.chromium ?? null;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
const STEALTH_INIT_SCRIPT = `
|
|
28
|
+
Object.defineProperty(navigator, 'webdriver', { get: () => undefined });
|
|
29
|
+
Object.defineProperty(navigator, 'languages', { get: () => ['en-US', 'en'] });
|
|
30
|
+
Object.defineProperty(navigator, 'plugins', {
|
|
31
|
+
get: () => {
|
|
32
|
+
const plugins = [
|
|
33
|
+
{ name: 'Chrome PDF Plugin', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },
|
|
34
|
+
{ name: 'Chrome PDF Viewer', filename: 'mhjfbmdgcfjbbpaeojofohoefgiehjai', description: '' },
|
|
35
|
+
{ name: 'Native Client', filename: 'internal-nacl-plugin', description: '' },
|
|
36
|
+
];
|
|
37
|
+
plugins.length = 3;
|
|
38
|
+
return plugins;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const _origQuery = window.navigator.permissions.query;
|
|
42
|
+
window.navigator.permissions.query = (parameters) =>
|
|
43
|
+
parameters.name === 'notifications'
|
|
44
|
+
? Promise.resolve({ state: Notification.permission })
|
|
45
|
+
: _origQuery.call(window.navigator.permissions, parameters);
|
|
46
|
+
if (window.chrome) {
|
|
47
|
+
if (!window.chrome.runtime) window.chrome.runtime = {};
|
|
48
|
+
window.chrome.runtime.connect = window.chrome.runtime.connect || function() {};
|
|
49
|
+
window.chrome.runtime.sendMessage = window.chrome.runtime.sendMessage || function() {};
|
|
50
|
+
} else {
|
|
51
|
+
window.chrome = { runtime: { connect: function() {}, sendMessage: function() {} } };
|
|
52
|
+
}
|
|
53
|
+
const _origGetParameter = WebGLRenderingContext.prototype.getParameter;
|
|
54
|
+
WebGLRenderingContext.prototype.getParameter = function(parameter) {
|
|
55
|
+
if (parameter === 37445) return 'Intel Inc.';
|
|
56
|
+
if (parameter === 37446) return 'Intel Iris OpenGL Engine';
|
|
57
|
+
return _origGetParameter.call(this, parameter);
|
|
58
|
+
};
|
|
59
|
+
`;
|
|
60
|
+
|
|
61
|
+
function wrapBrowserWithStealth(browser) {
|
|
62
|
+
const origNewContext = browser.newContext.bind(browser);
|
|
63
|
+
browser.newContext = async function (options = {}) {
|
|
64
|
+
// Fix HeadlessChrome in User-Agent — Google detects this server-side
|
|
65
|
+
if (!options.userAgent) {
|
|
66
|
+
const ver = browser.version ? browser.version() : "131.0.0.0";
|
|
67
|
+
options.userAgent = `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${ver} Safari/537.36`;
|
|
68
|
+
}
|
|
69
|
+
const ctx = await origNewContext(options);
|
|
70
|
+
await ctx.addInitScript(STEALTH_INIT_SCRIPT);
|
|
71
|
+
return ctx;
|
|
72
|
+
};
|
|
73
|
+
return browser;
|
|
74
|
+
}
|
|
75
|
+
|
|
27
76
|
async function launchChromium({ proxyUrl } = {}) {
|
|
28
|
-
// Try the real import FIRST. In the bundled standalone server this resolves
|
|
29
|
-
// playwright correctly (Next externalizes it), whereas the runtime helper's
|
|
30
|
-
// internal require() can return a false negative. We only consult the helper
|
|
31
|
-
// if the direct import genuinely fails.
|
|
32
77
|
let chromium = null;
|
|
33
78
|
let importErr = null;
|
|
34
79
|
try {
|
|
@@ -42,7 +87,6 @@ async function launchChromium({ proxyUrl } = {}) {
|
|
|
42
87
|
if (runtime?.ensurePlaywrightRuntime) {
|
|
43
88
|
const ready = runtime.ensurePlaywrightRuntime({ silent: false });
|
|
44
89
|
if (ready.ok) {
|
|
45
|
-
// Helper may have lazily installed playwright / downloaded chromium.
|
|
46
90
|
try {
|
|
47
91
|
chromium = await importPlaywright();
|
|
48
92
|
} catch (err) {
|
|
@@ -68,16 +112,38 @@ async function launchChromium({ proxyUrl } = {}) {
|
|
|
68
112
|
throw friendly;
|
|
69
113
|
}
|
|
70
114
|
|
|
71
|
-
const options = {
|
|
115
|
+
const options = {
|
|
116
|
+
channel: "chrome",
|
|
117
|
+
headless: true,
|
|
118
|
+
args: [
|
|
119
|
+
"--disable-blink-features=AutomationControlled",
|
|
120
|
+
"--disable-features=IsolateOrigins,site-per-process,AutomationControlled",
|
|
121
|
+
"--disable-infobars",
|
|
122
|
+
"--no-first-run",
|
|
123
|
+
"--no-default-browser-check",
|
|
124
|
+
"--disable-extensions",
|
|
125
|
+
"--disable-popup-blocking",
|
|
126
|
+
"--disable-backgrounding-occluded-windows",
|
|
127
|
+
"--disable-renderer-backgrounding",
|
|
128
|
+
"--disable-background-timer-throttling",
|
|
129
|
+
"--disable-ipc-flooding-protection",
|
|
130
|
+
"--password-store=basic",
|
|
131
|
+
"--use-mock-keychain",
|
|
132
|
+
"--window-size=1920,1080",
|
|
133
|
+
],
|
|
134
|
+
ignoreDefaultArgs: ["--enable-automation"],
|
|
135
|
+
};
|
|
72
136
|
if (proxyUrl) options.proxy = { server: proxyUrl };
|
|
73
|
-
|
|
137
|
+
|
|
138
|
+
const browser = await chromium.launch(options);
|
|
139
|
+
return wrapBrowserWithStealth(browser);
|
|
74
140
|
}
|
|
75
141
|
|
|
76
142
|
async function launchCamoufox({ proxyUrl } = {}) {
|
|
77
143
|
const runtime = loadRuntimeHelper("camoufoxRuntime");
|
|
78
144
|
if (!runtime?.ensureCamoufoxRuntime) {
|
|
79
145
|
const err = new Error(
|
|
80
|
-
`Camoufox runtime helper missing. Reinstall
|
|
146
|
+
`Camoufox runtime helper missing. Reinstall zevairouter or pick the Chromium engine.`
|
|
81
147
|
);
|
|
82
148
|
err.code = "CAMOUFOX_RUNTIME_HELPER_MISSING";
|
|
83
149
|
throw err;
|
|
@@ -402,10 +402,28 @@ async function waitForFirstVisibleLocator(page, selector, { timeout = 15_000, po
|
|
|
402
402
|
async function fillInputResilient(locator, value, { timeout = 15_000 } = {}) {
|
|
403
403
|
if (!locator || value == null) return false;
|
|
404
404
|
|
|
405
|
+
// Primary: click + type with human-like random delay to avoid CAPTCHA triggers.
|
|
406
|
+
// Avoid fill() as primary — it sets the value instantly which Google detects.
|
|
405
407
|
try {
|
|
406
|
-
await locator.
|
|
408
|
+
await locator.click({ timeout: 5_000 });
|
|
409
|
+
} catch {
|
|
410
|
+
/* noop */
|
|
411
|
+
}
|
|
412
|
+
try {
|
|
413
|
+
await locator.fill("", { timeout: 3_000 });
|
|
414
|
+
} catch {
|
|
415
|
+
/* noop */
|
|
416
|
+
}
|
|
417
|
+
try {
|
|
418
|
+
const delay = Math.floor(40 + Math.random() * 80); // 40-120ms per keystroke
|
|
419
|
+
await locator.type(value, { delay, timeout });
|
|
407
420
|
} catch {
|
|
408
|
-
//
|
|
421
|
+
// If type() fails, fall back to fill()
|
|
422
|
+
try {
|
|
423
|
+
await locator.fill(value, { timeout });
|
|
424
|
+
} catch {
|
|
425
|
+
return false;
|
|
426
|
+
}
|
|
409
427
|
}
|
|
410
428
|
|
|
411
429
|
let observed = "";
|
|
@@ -416,8 +434,7 @@ async function fillInputResilient(locator, value, { timeout = 15_000 } = {}) {
|
|
|
416
434
|
}
|
|
417
435
|
if (observed === value) return true;
|
|
418
436
|
|
|
419
|
-
//
|
|
420
|
-
// framework's onChange wiring and the value snaps back to empty.
|
|
437
|
+
// Final fallback for React/Vue-controlled inputs
|
|
421
438
|
try {
|
|
422
439
|
await locator.click({ timeout: 5_000 });
|
|
423
440
|
} catch {
|
|
File without changes
|
|
File without changes
|