{"ast":null,"code":"import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { Platform, uuidv4 } from 'expo-modules-core';\nimport { ExecutionEnvironment } from \"./Constants.types\";\nvar ID_KEY = 'EXPO_CONSTANTS_INSTALLATION_ID';\nvar _sessionId = uuidv4();\nfunction getBrowserName() {\n  if (Platform.isDOMAvailable) {\n    var agent = navigator.userAgent.toLowerCase();\n    if (agent.includes('edge')) {\n      return 'Edge';\n    } else if (agent.includes('edg')) {\n      return 'Chromium Edge';\n    } else if (agent.includes('opr') && !!window['opr']) {\n      return 'Opera';\n    } else if (agent.includes('chrome') && !!window['chrome']) {\n      return 'Chrome';\n    } else if (agent.includes('trident')) {\n      return 'IE';\n    } else if (agent.includes('firefox')) {\n      return 'Firefox';\n    } else if (agent.includes('safari')) {\n      return 'Safari';\n    }\n  }\n  return undefined;\n}\nexport default {\n  get name() {\n    return 'ExponentConstants';\n  },\n  get appOwnership() {\n    return null;\n  },\n  get executionEnvironment() {\n    return ExecutionEnvironment.Bare;\n  },\n  get installationId() {\n    var installationId;\n    try {\n      installationId = localStorage.getItem(ID_KEY);\n      if (installationId == null || typeof installationId !== 'string') {\n        installationId = uuidv4();\n        localStorage.setItem(ID_KEY, installationId);\n      }\n    } catch (_unused) {\n      installationId = _sessionId;\n    } finally {\n      return installationId;\n    }\n  },\n  get sessionId() {\n    return _sessionId;\n  },\n  get platform() {\n    return {\n      web: Platform.isDOMAvailable ? {\n        ua: navigator.userAgent\n      } : undefined\n    };\n  },\n  get isHeadless() {\n    if (!Platform.isDOMAvailable) return true;\n    return /\\bHeadlessChrome\\//.test(navigator.userAgent);\n  },\n  get isDevice() {\n    return true;\n  },\n  get expoVersion() {\n    return this.manifest.sdkVersion || null;\n  },\n  get linkingUri() {\n    if (Platform.isDOMAvailable) {\n      return location.origin;\n    } else {\n      return '';\n    }\n  },\n  get expoRuntimeVersion() {\n    return this.expoVersion;\n  },\n  get deviceName() {\n    return getBrowserName();\n  },\n  get nativeAppVersion() {\n    return null;\n  },\n  get nativeBuildVersion() {\n    return null;\n  },\n  get systemFonts() {\n    return [];\n  },\n  get statusBarHeight() {\n    return 0;\n  },\n  get deviceYearClass() {\n    return null;\n  },\n  get manifest() {\n    return \"{\\\"name\\\":\\\"myapp\\\",\\\"slug\\\":\\\"myapp\\\",\\\"version\\\":\\\"1.0.0\\\",\\\"orientation\\\":\\\"portrait\\\",\\\"icon\\\":\\\"./assets/icon.png\\\",\\\"splash\\\":{\\\"image\\\":\\\"./assets/splash.png\\\",\\\"resizeMode\\\":\\\"contain\\\",\\\"backgroundColor\\\":\\\"#ffffff\\\"},\\\"updates\\\":{\\\"fallbackToCacheTimeout\\\":0},\\\"web\\\":{\\\"favicon\\\":\\\"./assets/favicon.png\\\",\\\"preferRelatedApplications\\\":true,\\\"relatedApplications\\\":[],\\\"shortName\\\":\\\"myapp\\\",\\\"display\\\":\\\"standalone\\\",\\\"orientation\\\":\\\"portrait\\\",\\\"barStyle\\\":\\\"black-translucent\\\",\\\"backgroundColor\\\":\\\"#ffffff\\\",\\\"lang\\\":\\\"en\\\",\\\"name\\\":\\\"myapp\\\"},\\\"sdkVersion\\\":\\\"49.0.0\\\",\\\"platforms\\\":[\\\"ios\\\",\\\"android\\\",\\\"web\\\"]}\" || {};\n  },\n  get manifest2() {\n    return null;\n  },\n  get experienceUrl() {\n    if (Platform.isDOMAvailable) {\n      return location.origin;\n    } else {\n      return '';\n    }\n  },\n  get debugMode() {\n    return __DEV__;\n  },\n  getWebViewUserAgentAsync: function () {\n    var _getWebViewUserAgentAsync = _asyncToGenerator(function* () {\n      if (Platform.isDOMAvailable) {\n        return navigator.userAgent;\n      } else {\n        return null;\n      }\n    });\n    function getWebViewUserAgentAsync() {\n      return _getWebViewUserAgentAsync.apply(this, arguments);\n    }\n    return getWebViewUserAgentAsync;\n  }()\n};","map":{"version":3,"sources":["../src/ExponentConstants.web.ts"],"names":[],"mappings":"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","sourcesContent":["import { Platform, uuidv4 } from 'expo-modules-core';\n\nimport {\n  ExecutionEnvironment,\n  NativeConstants,\n  PlatformManifest,\n  WebManifest,\n} from './Constants.types';\n\nconst ID_KEY = 'EXPO_CONSTANTS_INSTALLATION_ID';\n\ndeclare let __DEV__: boolean;\ndeclare let process: { env: any };\ndeclare let navigator: Navigator;\ndeclare let location: Location;\ndeclare let localStorage: Storage;\n\nconst _sessionId = uuidv4();\n\nfunction getBrowserName(): string | undefined {\n  if (Platform.isDOMAvailable) {\n    const agent = navigator.userAgent.toLowerCase();\n    if (agent.includes('edge')) {\n      return 'Edge';\n    } else if (agent.includes('edg')) {\n      return 'Chromium Edge';\n    } else if (agent.includes('opr') && !!window['opr']) {\n      return 'Opera';\n    } else if (agent.includes('chrome') && !!window['chrome']) {\n      return 'Chrome';\n    } else if (agent.includes('trident')) {\n      return 'IE';\n    } else if (agent.includes('firefox')) {\n      return 'Firefox';\n    } else if (agent.includes('safari')) {\n      return 'Safari';\n    }\n  }\n\n  return undefined;\n}\n\nexport default {\n  get name(): string {\n    return 'ExponentConstants';\n  },\n  get appOwnership() {\n    return null;\n  },\n  get executionEnvironment() {\n    return ExecutionEnvironment.Bare;\n  },\n  get installationId(): string {\n    let installationId;\n    try {\n      installationId = localStorage.getItem(ID_KEY);\n      if (installationId == null || typeof installationId !== 'string') {\n        installationId = uuidv4();\n        localStorage.setItem(ID_KEY, installationId as string);\n      }\n    } catch {\n      installationId = _sessionId;\n    } finally {\n      return installationId;\n    }\n  },\n  get sessionId(): string {\n    return _sessionId;\n  },\n  get platform(): PlatformManifest {\n    return { web: Platform.isDOMAvailable ? { ua: navigator.userAgent } : undefined };\n  },\n  get isHeadless(): boolean {\n    if (!Platform.isDOMAvailable) return true;\n\n    return /\\bHeadlessChrome\\//.test(navigator.userAgent);\n  },\n  get isDevice(): true {\n    // TODO: Bacon: Possibly want to add information regarding simulators\n    return true;\n  },\n  get expoVersion(): string | null {\n    return this.manifest!.sdkVersion || null;\n  },\n  get linkingUri(): string {\n    if (Platform.isDOMAvailable) {\n      // On native this is `exp://`\n      // On web we should use the protocol and hostname (location.origin)\n      return location.origin;\n    } else {\n      return '';\n    }\n  },\n  get expoRuntimeVersion(): string | null {\n    return this.expoVersion;\n  },\n  get deviceName(): string | undefined {\n    return getBrowserName();\n  },\n  get nativeAppVersion(): null {\n    return null;\n  },\n  get nativeBuildVersion(): null {\n    return null;\n  },\n  get systemFonts(): string[] {\n    // TODO: Bacon: Maybe possible.\n    return [];\n  },\n  get statusBarHeight(): number {\n    return 0;\n  },\n  get deviceYearClass(): number | null {\n    // TODO: Bacon: The android version isn't very accurate either, maybe we could try and guess this value.\n    return null;\n  },\n  get manifest(): WebManifest {\n    // This is defined by @expo/webpack-config.\n    // If your site is bundled with a different config then you may not have access to the app.json automatically.\n    return process.env.APP_MANIFEST || {};\n  },\n  get manifest2(): null {\n    return null;\n  },\n  get experienceUrl(): string {\n    if (Platform.isDOMAvailable) {\n      return location.origin;\n    } else {\n      return '';\n    }\n  },\n  get debugMode(): boolean {\n    return __DEV__;\n  },\n  async getWebViewUserAgentAsync(): Promise<string | null> {\n    if (Platform.isDOMAvailable) {\n      return navigator.userAgent;\n    } else {\n      return null;\n    }\n  },\n} as NativeConstants;\n"],"sourceRoot":""},"metadata":{},"sourceType":"module"}