{"version":3,"file":"Updates.js","sourceRoot":"","sources":["../src/Updates.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n RCTDeviceEventEmitter,\n CodedError,\n NativeModulesProxy,\n UnavailabilityError,\n} from '@unimodules/core';\nimport { EventEmitter, EventSubscription } from 'fbemitter';\n\nimport ExpoUpdates from './ExpoUpdates';\nimport {\n Listener,\n LocalAssets,\n Manifest,\n UpdateCheckResult,\n UpdateEvent,\n UpdateFetchResult,\n} from './Updates.types';\n\nexport * from './Updates.types';\n\nexport const updateId: string | null =\n ExpoUpdates.updateId && typeof ExpoUpdates.updateId === 'string'\n ? ExpoUpdates.updateId.toLowerCase()\n : null;\nexport const releaseChannel: string = ExpoUpdates.releaseChannel ?? 'default';\nexport const localAssets: LocalAssets = ExpoUpdates.localAssets ?? {};\nexport const isEmergencyLaunch: boolean = ExpoUpdates.isEmergencyLaunch || false;\nexport const isUsingEmbeddedAssets: boolean = ExpoUpdates.isUsingEmbeddedAssets || false;\n\nlet _manifest = ExpoUpdates.manifest;\nif (ExpoUpdates.manifestString) {\n _manifest = JSON.parse(ExpoUpdates.manifestString);\n}\nexport const manifest: Manifest | object = _manifest ?? {};\n\nconst isUsingDeveloperTool = !!(manifest as any).developer?.tool;\nconst isUsingExpoDevelopmentClient = NativeModulesProxy.ExponentConstants?.appOwnership === 'expo';\nconst manualUpdatesInstructions = isUsingExpoDevelopmentClient\n ? 'To test manual updates, publish your project using `expo publish` and open the published ' +\n 'version in this development client.'\n : 'To test manual updates, make a release build with `npm run ios --configuration Release` or ' +\n '`npm run android --variant Release`.';\n\nexport async function reloadAsync(): Promise {\n if (!ExpoUpdates.reload) {\n throw new UnavailabilityError('Updates', 'reloadAsync');\n }\n if (__DEV__ && !isUsingExpoDevelopmentClient) {\n throw new CodedError(\n 'ERR_UPDATES_DISABLED',\n `You cannot use the Updates module in development mode in a production app. ${manualUpdatesInstructions}`\n );\n }\n await ExpoUpdates.reload();\n}\n\nexport async function checkForUpdateAsync(): Promise {\n if (!ExpoUpdates.checkForUpdateAsync) {\n throw new UnavailabilityError('Updates', 'checkForUpdateAsync');\n }\n if (__DEV__ || isUsingDeveloperTool) {\n throw new CodedError(\n 'ERR_UPDATES_DISABLED',\n `You cannot check for updates in development mode. ${manualUpdatesInstructions}`\n );\n }\n\n const result = await ExpoUpdates.checkForUpdateAsync();\n if (result.manifestString) {\n result.manifest = JSON.parse(result.manifestString);\n delete result.manifestString;\n }\n\n return result;\n}\n\nexport async function fetchUpdateAsync(): Promise {\n if (!ExpoUpdates.fetchUpdateAsync) {\n throw new UnavailabilityError('Updates', 'fetchUpdateAsync');\n }\n if (__DEV__ || isUsingDeveloperTool) {\n throw new CodedError(\n 'ERR_UPDATES_DISABLED',\n `You cannot fetch updates in development mode. ${manualUpdatesInstructions}`\n );\n }\n\n const result = await ExpoUpdates.fetchUpdateAsync();\n if (result.manifestString) {\n result.manifest = JSON.parse(result.manifestString);\n delete result.manifestString;\n }\n\n return result;\n}\n\nexport function clearUpdateCacheExperimentalAsync(_sdkVersion?: string) {\n console.warn(\n \"This method is no longer necessary. `expo-updates` now automatically deletes your app's old bundle files!\"\n );\n}\n\nlet _emitter: EventEmitter | null;\n\nfunction _getEmitter(): EventEmitter {\n if (!_emitter) {\n _emitter = new EventEmitter();\n RCTDeviceEventEmitter.addListener('Expo.nativeUpdatesEvent', _emitEvent);\n }\n return _emitter;\n}\n\nfunction _emitEvent(params): void {\n let newParams = params;\n if (typeof params === 'string') {\n newParams = JSON.parse(params);\n }\n if (newParams.manifestString) {\n newParams.manifest = JSON.parse(newParams.manifestString);\n delete newParams.manifestString;\n }\n\n if (!_emitter) {\n throw new Error(`EventEmitter must be initialized to use from its listener`);\n }\n _emitter.emit('Expo.updatesEvent', newParams);\n}\n\nexport function addListener(listener: Listener): EventSubscription {\n const emitter = _getEmitter();\n return emitter.addListener('Expo.updatesEvent', listener);\n}\n"]}