{"version":3,"sources":["jsdelivr-header.js","/npm/react-native-ota-hot-update@2.4.71/lib/commonjs/index.js"],"names":[],"mappings":"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","file":"/npm/react-native-ota-hot-update@2.4.71/lib/commonjs/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/react-native-ota-hot-update@2.4.71/lib/commonjs/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _reactNative = require(\"react-native\");\nvar _index = _interopRequireDefault(require(\"./gits/index.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nconst LINKING_ERROR = `The package 'react-native-ota-hot-update' doesn't seem to be linked. Make sure: \\n\\n` + _reactNative.Platform.select({\n  ios: \"- You have run 'pod install'\\n\",\n  default: ''\n}) + '- You rebuilt the app after installing the package\\n' + '- You are not using Expo Go\\n';\n\n// @ts-expect-error\nconst isTurboModuleEnabled = global.__turboModuleProxy != null;\nconst OtaHotUpdateModule = isTurboModuleEnabled ? require('./NativeOtaHotUpdate').default : _reactNative.NativeModules.OtaHotUpdate;\nconst RNhotupdate = OtaHotUpdateModule ? OtaHotUpdateModule : new Proxy({}, {\n  get() {\n    throw new Error(LINKING_ERROR);\n  }\n});\nconst downloadBundleFile = async (downloadManager, uri, headers, callback) => {\n  const res = await downloadManager.config({\n    fileCache: _reactNative.Platform.OS === 'android',\n    path: !!downloadManager?.fs?.dirs?.LibraryDir && _reactNative.Platform.OS === 'ios' ? `${downloadManager.fs.dirs.LibraryDir}/${new Date().valueOf()}_hotupdate.zip` : undefined\n  }).fetch('GET', uri, {\n    ...headers\n  }).progress((received, total) => {\n    if (callback) {\n      callback(received, total);\n    }\n  });\n  return res.path();\n};\nfunction setupBundlePath(path, extension, version, maxVersions, metadata) {\n  const metadataString = metadata ? JSON.stringify(metadata) : undefined;\n  return RNhotupdate.setupBundlePath(path, extension, version, maxVersions || 2, metadataString);\n}\nfunction setupExactBundlePath(path) {\n  return RNhotupdate.setExactBundlePath(path);\n}\nfunction deleteBundlePath() {\n  return RNhotupdate.deleteBundle(1);\n}\nfunction getCurrentVersion() {\n  return RNhotupdate.getCurrentVersion(0);\n}\nfunction getUpdateMetadata() {\n  return RNhotupdate.getUpdateMetadata(0).then(metadataString => {\n    try {\n      return metadataString ? JSON.parse(metadataString) : null;\n    } catch (error) {\n      return Promise.reject(new Error('Error parsing metadata'));\n    }\n  });\n}\nfunction rollbackToPreviousBundle() {\n  return RNhotupdate.rollbackToPreviousBundle(0);\n}\nasync function getVersionAsNumber() {\n  const rawVersion = await getCurrentVersion();\n  return +rawVersion;\n}\nfunction setCurrentVersion(version) {\n  return RNhotupdate.setCurrentVersion(version + '');\n}\nfunction setUpdateMetadata(metadata) {\n  try {\n    const metadataString = JSON.stringify(metadata);\n    return RNhotupdate.setUpdateMetadata(metadataString);\n  } catch (error) {\n    return Promise.reject(new Error('Failed to stringify metadata'));\n  }\n}\nasync function resetApp() {\n  RNhotupdate.restart();\n}\nfunction removeBundle(restartAfterRemoved) {\n  deleteBundlePath().then(data => {\n    if (data && restartAfterRemoved) {\n      setTimeout(() => {\n        resetApp();\n      }, 300);\n      if (data) {\n        setCurrentVersion(0);\n      }\n    }\n  });\n}\n/**\n * Turn anything thrown into a readable message.\n * JSON.stringify(new Error(...)) returns \"{}\" because message/stack are not\n * enumerable, which used to hide the real reason of every failure.\n */\nconst serializeError = e => {\n  if (e == null) {\n    return 'Unknown error';\n  }\n  if (typeof e === 'string') {\n    return e;\n  }\n  if (e instanceof Error) {\n    const message = e.message || e.name || 'Unknown error';\n    return typeof __DEV__ !== 'undefined' && __DEV__ && e.stack ? `${message}\\n${e.stack}` : message;\n  }\n  if (typeof e === 'object') {\n    if (typeof e.message === 'string' && e.message) {\n      return e.message;\n    }\n    try {\n      const json = JSON.stringify(e);\n      if (json && json !== '{}') {\n        return json;\n      }\n    } catch (_) {\n      // circular or non-serializable, fall through\n    }\n    return String(e);\n  }\n  return String(e);\n};\nconst installFail = (option, e) => {\n  const message = serializeError(e);\n  option?.updateFail?.(message);\n  console.error('Download bundle fail', message);\n};\nasync function downloadBundleUri(downloadManager, uri, version, option) {\n  if (!uri) {\n    return installFail(option, 'Please give a valid URL!');\n  }\n  if (version) {\n    if (typeof version !== 'number' || !Number.isFinite(version)) {\n      return installFail(option, `Version must be a number, received: ${JSON.stringify(version)} (${typeof version}). ` + 'Use a numeric build number instead of a semver string, e.g. 1, 2, 3.');\n    }\n    const currentVersion = await getVersionAsNumber();\n    if (version <= currentVersion) {\n      return installFail(option, 'Please give a bigger version than the current version, the current version now has setted by: ' + currentVersion);\n    }\n  }\n  try {\n    const path = await downloadBundleFile(downloadManager, uri, option?.headers, option?.progress);\n    if (!path) {\n      return installFail(option, `Cannot download bundle file: ${path}`);\n    }\n    const success = await setupBundlePath(path, option?.extensionBundle, version, option?.maxBundleVersions, option?.metadata);\n    if (!success) {\n      return installFail(option, `Cannot setup bundle path: ${path}. The downloaded file may be corrupted or is not a valid bundle.`);\n    }\n    if (version) {\n      setCurrentVersion(version);\n    }\n    if (option?.metadata) {\n      setUpdateMetadata(option.metadata);\n    }\n    option?.updateSuccess?.();\n    if (option?.restartAfterInstall) {\n      setTimeout(() => {\n        resetApp();\n      }, option?.restartDelay || 300);\n    }\n  } catch (e) {\n    installFail(option, e);\n  }\n}\nconst checkForGitUpdate = async options => {\n  try {\n    if (!options.url || !options.bundlePath) {\n      throw new Error(`url or bundlePath should not be null`);\n    }\n    const [config, branch] = await Promise.all([_index.default.getConfig(), _index.default.getBranchName()]);\n    if (branch && config) {\n      const pull = await _index.default.pullUpdate({\n        branch,\n        onProgress: options?.onProgress,\n        folderName: options?.folderName\n      });\n      if (pull.success) {\n        options?.onPullSuccess?.();\n        if (options?.restartAfterInstall) {\n          setTimeout(() => {\n            resetApp();\n          }, 300);\n        }\n      } else {\n        options?.onPullFailed?.(pull.msg);\n      }\n    } else {\n      const clone = await _index.default.cloneRepo({\n        onProgress: options?.onProgress,\n        folderName: options?.folderName,\n        url: options.url,\n        branch: options?.branch,\n        bundlePath: options.bundlePath\n      });\n      if (clone.success && clone.bundle) {\n        await setupExactBundlePath(clone.bundle);\n        options?.onCloneSuccess?.();\n        if (options?.restartAfterInstall) {\n          setTimeout(() => {\n            resetApp();\n          }, 300);\n        }\n      } else {\n        options?.onCloneFailed?.(clone.msg);\n      }\n    }\n  } catch (e) {\n    options?.onCloneFailed?.(e.toString());\n  } finally {\n    options?.onFinishProgress?.();\n  }\n};\n/**\n * Metadata is stored as a JSON string, and each platform decodes it differently:\n * Android (JSONObject) only restores plain objects, iOS (NSJSONSerialization)\n * restores objects and arrays. Anything else comes back as the raw JSON string,\n * so decode it here to keep the value identical to what was passed in.\n */\nconst parseBundleMetadata = metadata => {\n  if (typeof metadata !== 'string') {\n    return metadata;\n  }\n  try {\n    return JSON.parse(metadata);\n  } catch (e) {\n    // Not JSON (e.g. written by an older version) - keep the raw value.\n    return metadata;\n  }\n};\nfunction getBundleList() {\n  return RNhotupdate.getBundleList(0).then(jsonString => {\n    try {\n      const data = JSON.parse(jsonString);\n      return data.map(item => ({\n        ...item,\n        date: new Date(item.date),\n        metadata: parseBundleMetadata(item.metadata)\n      }));\n    } catch (error) {\n      return Promise.reject(new Error('Error parsing bundle list'));\n    }\n  });\n}\nfunction deleteBundleById(id) {\n  return RNhotupdate.deleteBundleById(id);\n}\nfunction clearAllBundles() {\n  return RNhotupdate.clearAllBundles(0);\n}\nvar _default = exports.default = {\n  setupBundlePath,\n  setupExactBundlePath,\n  removeUpdate: removeBundle,\n  downloadBundleUri,\n  resetApp,\n  getCurrentVersion: getVersionAsNumber,\n  setCurrentVersion,\n  getUpdateMetadata,\n  setUpdateMetadata,\n  rollbackToPreviousBundle,\n  getBundleList,\n  deleteBundleById,\n  clearAllBundles,\n  git: {\n    checkForGitUpdate,\n    ..._index.default,\n    removeGitUpdate: folder => {\n      RNhotupdate.setExactBundlePath('');\n      _index.default.removeGitUpdate(folder);\n    }\n  }\n};\n"]}