import type { HostBridgeCapability, NativeHostPlatform, } from '../../../packages/shared/src/contracts/hostBridge'; export type MobileShellUrlOptions = { platform: Extract; hostVersion: string; capabilities: HostBridgeCapability[]; }; export function buildMobileShellUrl( rawUrl: string, options: MobileShellUrlOptions, ) { const url = new URL(rawUrl); url.searchParams.set('clientRuntime', 'native_app'); url.searchParams.set('clientType', 'native_app'); url.searchParams.set('hostShell', 'expo_mobile'); url.searchParams.set('hostPlatform', options.platform); url.searchParams.set('hostVersion', options.hostVersion); url.searchParams.set('bridgeVersion', '1'); url.searchParams.set('hostCapabilities', options.capabilities.join(',')); return url.toString(); }