1082815dcSEvan Bacon"use strict";
2082815dcSEvan Bacon
3082815dcSEvan BaconObject.defineProperty(exports, "__esModule", {
4082815dcSEvan Bacon  value: true
5082815dcSEvan Bacon});
6053187fcSWojciech Kozyraexports.getAppVersion = getAppVersion;
7082815dcSEvan Baconexports.getExpoUpdatesPackageVersion = getExpoUpdatesPackageVersion;
8082815dcSEvan Baconexports.getNativeVersion = getNativeVersion;
9*f0d67e12SMateus Craveiroexports.getRuntimeVersionAsync = getRuntimeVersionAsync;
10*f0d67e12SMateus Craveiroexports.getRuntimeVersionNullableAsync = getRuntimeVersionNullableAsync;
11082815dcSEvan Baconexports.getSDKVersion = getSDKVersion;
12082815dcSEvan Baconexports.getUpdateUrl = getUpdateUrl;
13082815dcSEvan Baconexports.getUpdatesCheckOnLaunch = getUpdatesCheckOnLaunch;
14082815dcSEvan Baconexports.getUpdatesCodeSigningCertificate = getUpdatesCodeSigningCertificate;
15082815dcSEvan Baconexports.getUpdatesCodeSigningMetadata = getUpdatesCodeSigningMetadata;
16082815dcSEvan Baconexports.getUpdatesCodeSigningMetadataStringified = getUpdatesCodeSigningMetadataStringified;
17082815dcSEvan Baconexports.getUpdatesEnabled = getUpdatesEnabled;
1809bd1012SUmberto Ghioexports.getUpdatesRequestHeaders = getUpdatesRequestHeaders;
1909bd1012SUmberto Ghioexports.getUpdatesRequestHeadersStringified = getUpdatesRequestHeadersStringified;
20082815dcSEvan Baconexports.getUpdatesTimeout = getUpdatesTimeout;
21*f0d67e12SMateus Craveirofunction Fingerprint() {
22*f0d67e12SMateus Craveiro  const data = _interopRequireWildcard(require("@expo/fingerprint"));
23*f0d67e12SMateus Craveiro  Fingerprint = function () {
24*f0d67e12SMateus Craveiro    return data;
25*f0d67e12SMateus Craveiro  };
26*f0d67e12SMateus Craveiro  return data;
27*f0d67e12SMateus Craveiro}
28082815dcSEvan Baconfunction _sdkRuntimeVersions() {
29082815dcSEvan Bacon  const data = require("@expo/sdk-runtime-versions");
30082815dcSEvan Bacon  _sdkRuntimeVersions = function () {
31082815dcSEvan Bacon    return data;
32082815dcSEvan Bacon  };
33082815dcSEvan Bacon  return data;
34082815dcSEvan Bacon}
35082815dcSEvan Baconfunction _fs() {
36082815dcSEvan Bacon  const data = _interopRequireDefault(require("fs"));
37082815dcSEvan Bacon  _fs = function () {
38082815dcSEvan Bacon    return data;
39082815dcSEvan Bacon  };
40082815dcSEvan Bacon  return data;
41082815dcSEvan Bacon}
42082815dcSEvan Baconfunction _getenv() {
43082815dcSEvan Bacon  const data = require("getenv");
44082815dcSEvan Bacon  _getenv = function () {
45082815dcSEvan Bacon    return data;
46082815dcSEvan Bacon  };
47082815dcSEvan Bacon  return data;
48082815dcSEvan Bacon}
49082815dcSEvan Baconfunction _path() {
50082815dcSEvan Bacon  const data = _interopRequireDefault(require("path"));
51082815dcSEvan Bacon  _path = function () {
52082815dcSEvan Bacon    return data;
53082815dcSEvan Bacon  };
54082815dcSEvan Bacon  return data;
55082815dcSEvan Bacon}
56082815dcSEvan Baconfunction _resolveFrom() {
57082815dcSEvan Bacon  const data = _interopRequireDefault(require("resolve-from"));
58082815dcSEvan Bacon  _resolveFrom = function () {
59082815dcSEvan Bacon    return data;
60082815dcSEvan Bacon  };
61082815dcSEvan Bacon  return data;
62082815dcSEvan Bacon}
63082815dcSEvan Baconfunction _semver() {
64082815dcSEvan Bacon  const data = _interopRequireDefault(require("semver"));
65082815dcSEvan Bacon  _semver = function () {
66082815dcSEvan Bacon    return data;
67082815dcSEvan Bacon  };
68082815dcSEvan Bacon  return data;
69082815dcSEvan Bacon}
70082815dcSEvan Baconfunction _() {
71082815dcSEvan Bacon  const data = require("..");
72082815dcSEvan Bacon  _ = function () {
73082815dcSEvan Bacon    return data;
74082815dcSEvan Bacon  };
75082815dcSEvan Bacon  return data;
76082815dcSEvan Bacon}
77082815dcSEvan Baconfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
78*f0d67e12SMateus Craveirofunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
79*f0d67e12SMateus Craveirofunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
80082815dcSEvan Baconfunction getExpoUpdatesPackageVersion(projectRoot) {
81082815dcSEvan Bacon  const expoUpdatesPackageJsonPath = _resolveFrom().default.silent(projectRoot, 'expo-updates/package.json');
82082815dcSEvan Bacon  if (!expoUpdatesPackageJsonPath || !_fs().default.existsSync(expoUpdatesPackageJsonPath)) {
83082815dcSEvan Bacon    return null;
84082815dcSEvan Bacon  }
85082815dcSEvan Bacon  const packageJson = JSON.parse(_fs().default.readFileSync(expoUpdatesPackageJsonPath, 'utf8'));
86082815dcSEvan Bacon  return packageJson.version;
87082815dcSEvan Bacon}
8882ade864SWill Schurmanfunction getUpdateUrl(config) {
8982ade864SWill Schurman  var _config$updates$url, _config$updates;
9082ade864SWill Schurman  return (_config$updates$url = (_config$updates = config.updates) === null || _config$updates === void 0 ? void 0 : _config$updates.url) !== null && _config$updates$url !== void 0 ? _config$updates$url : null;
91082815dcSEvan Bacon}
92053187fcSWojciech Kozyrafunction getAppVersion(config) {
93053187fcSWojciech Kozyra  var _config$version;
94053187fcSWojciech Kozyra  return (_config$version = config.version) !== null && _config$version !== void 0 ? _config$version : '1.0.0';
95053187fcSWojciech Kozyra}
96082815dcSEvan Baconfunction getNativeVersion(config, platform) {
97082815dcSEvan Bacon  const version = _().IOSConfig.Version.getVersion(config);
98082815dcSEvan Bacon  switch (platform) {
99082815dcSEvan Bacon    case 'ios':
100082815dcSEvan Bacon      {
101082815dcSEvan Bacon        const buildNumber = _().IOSConfig.Version.getBuildNumber(config);
102082815dcSEvan Bacon        return `${version}(${buildNumber})`;
103082815dcSEvan Bacon      }
104082815dcSEvan Bacon    case 'android':
105082815dcSEvan Bacon      {
106082815dcSEvan Bacon        const versionCode = _().AndroidConfig.Version.getVersionCode(config);
107082815dcSEvan Bacon        return `${version}(${versionCode})`;
108082815dcSEvan Bacon      }
109082815dcSEvan Bacon    default:
110082815dcSEvan Bacon      {
111082815dcSEvan Bacon        throw new Error(`"${platform}" is not a supported platform. Choose either "ios" or "android".`);
112082815dcSEvan Bacon      }
113082815dcSEvan Bacon  }
114082815dcSEvan Bacon}
115*f0d67e12SMateus Craveiroasync function getRuntimeVersionNullableAsync(...[projectRoot, config, platform]) {
116082815dcSEvan Bacon  try {
117*f0d67e12SMateus Craveiro    return await getRuntimeVersionAsync(projectRoot, config, platform);
118082815dcSEvan Bacon  } catch (e) {
119082815dcSEvan Bacon    if ((0, _getenv().boolish)('EXPO_DEBUG', false)) {
120082815dcSEvan Bacon      console.log(e);
121082815dcSEvan Bacon    }
122082815dcSEvan Bacon    return null;
123082815dcSEvan Bacon  }
124082815dcSEvan Bacon}
125*f0d67e12SMateus Craveiroasync function getRuntimeVersionAsync(projectRoot, config, platform) {
126082815dcSEvan Bacon  var _config$platform$runt, _config$platform;
127082815dcSEvan Bacon  const runtimeVersion = (_config$platform$runt = (_config$platform = config[platform]) === null || _config$platform === void 0 ? void 0 : _config$platform.runtimeVersion) !== null && _config$platform$runt !== void 0 ? _config$platform$runt : config.runtimeVersion;
128082815dcSEvan Bacon  if (!runtimeVersion) {
129082815dcSEvan Bacon    return null;
130082815dcSEvan Bacon  }
131082815dcSEvan Bacon  if (typeof runtimeVersion === 'string') {
132082815dcSEvan Bacon    return runtimeVersion;
133053187fcSWojciech Kozyra  } else if (runtimeVersion.policy === 'appVersion') {
134053187fcSWojciech Kozyra    return getAppVersion(config);
135082815dcSEvan Bacon  } else if (runtimeVersion.policy === 'nativeVersion') {
136082815dcSEvan Bacon    return getNativeVersion(config, platform);
137082815dcSEvan Bacon  } else if (runtimeVersion.policy === 'sdkVersion') {
138082815dcSEvan Bacon    if (!config.sdkVersion) {
139082815dcSEvan Bacon      throw new Error("An SDK version must be defined when using the 'sdkVersion' runtime policy.");
140082815dcSEvan Bacon    }
141082815dcSEvan Bacon    return (0, _sdkRuntimeVersions().getRuntimeVersionForSDKVersion)(config.sdkVersion);
142*f0d67e12SMateus Craveiro  } else if (runtimeVersion.policy === 'fingerprintExperimental') {
143*f0d67e12SMateus Craveiro    console.warn("Use of the experimental 'fingerprintExperimental' runtime policy may result in unexpected system behavior.");
144*f0d67e12SMateus Craveiro    return await Fingerprint().createProjectHashAsync(projectRoot);
145082815dcSEvan Bacon  }
146*f0d67e12SMateus Craveiro  throw new Error(`"${typeof runtimeVersion === 'object' ? JSON.stringify(runtimeVersion) : runtimeVersion}" is not a valid runtime version. getRuntimeVersionAsync only supports a string, "sdkVersion", "appVersion", "nativeVersion" or "fingerprintExperimental" policy.`);
147082815dcSEvan Bacon}
148082815dcSEvan Baconfunction getSDKVersion(config) {
149082815dcSEvan Bacon  return typeof config.sdkVersion === 'string' ? config.sdkVersion : null;
150082815dcSEvan Bacon}
15182ade864SWill Schurmanfunction getUpdatesEnabled(config) {
15282ade864SWill Schurman  var _config$updates2;
1532fae8288SWill Schurman  // allow override of enabled property
15482ade864SWill Schurman  if (((_config$updates2 = config.updates) === null || _config$updates2 === void 0 ? void 0 : _config$updates2.enabled) !== undefined) {
1552fae8288SWill Schurman    return config.updates.enabled;
1562fae8288SWill Schurman  }
15782ade864SWill Schurman  return getUpdateUrl(config) !== null;
158082815dcSEvan Bacon}
159082815dcSEvan Baconfunction getUpdatesTimeout(config) {
16082ade864SWill Schurman  var _config$updates$fallb, _config$updates3;
16182ade864SWill Schurman  return (_config$updates$fallb = (_config$updates3 = config.updates) === null || _config$updates3 === void 0 ? void 0 : _config$updates3.fallbackToCacheTimeout) !== null && _config$updates$fallb !== void 0 ? _config$updates$fallb : 0;
162082815dcSEvan Bacon}
163082815dcSEvan Baconfunction getUpdatesCheckOnLaunch(config, expoUpdatesPackageVersion) {
16482ade864SWill Schurman  var _config$updates4, _config$updates5, _config$updates6, _config$updates7;
16582ade864SWill Schurman  if (((_config$updates4 = config.updates) === null || _config$updates4 === void 0 ? void 0 : _config$updates4.checkAutomatically) === 'ON_ERROR_RECOVERY') {
166082815dcSEvan Bacon    // native 'ERROR_RECOVERY_ONLY' option was only introduced in 0.11.x
167082815dcSEvan Bacon    if (expoUpdatesPackageVersion && _semver().default.gte(expoUpdatesPackageVersion, '0.11.0')) {
168082815dcSEvan Bacon      return 'ERROR_RECOVERY_ONLY';
169082815dcSEvan Bacon    }
170082815dcSEvan Bacon    return 'NEVER';
17182ade864SWill Schurman  } else if (((_config$updates5 = config.updates) === null || _config$updates5 === void 0 ? void 0 : _config$updates5.checkAutomatically) === 'ON_LOAD') {
172082815dcSEvan Bacon    return 'ALWAYS';
17382ade864SWill Schurman  } else if (((_config$updates6 = config.updates) === null || _config$updates6 === void 0 ? void 0 : _config$updates6.checkAutomatically) === 'WIFI_ONLY') {
174b8b0e64dSDouglas Lowder    return 'WIFI_ONLY';
17582ade864SWill Schurman  } else if (((_config$updates7 = config.updates) === null || _config$updates7 === void 0 ? void 0 : _config$updates7.checkAutomatically) === 'NEVER') {
176b8b0e64dSDouglas Lowder    return 'NEVER';
177082815dcSEvan Bacon  }
178082815dcSEvan Bacon  return 'ALWAYS';
179082815dcSEvan Bacon}
180082815dcSEvan Baconfunction getUpdatesCodeSigningCertificate(projectRoot, config) {
18182ade864SWill Schurman  var _config$updates8;
18282ade864SWill Schurman  const codeSigningCertificatePath = (_config$updates8 = config.updates) === null || _config$updates8 === void 0 ? void 0 : _config$updates8.codeSigningCertificate;
183082815dcSEvan Bacon  if (!codeSigningCertificatePath) {
184082815dcSEvan Bacon    return undefined;
185082815dcSEvan Bacon  }
186082815dcSEvan Bacon  const finalPath = _path().default.join(projectRoot, codeSigningCertificatePath);
187082815dcSEvan Bacon  if (!_fs().default.existsSync(finalPath)) {
188082815dcSEvan Bacon    throw new Error(`File not found at \`updates.codeSigningCertificate\` path: ${finalPath}`);
189082815dcSEvan Bacon  }
190082815dcSEvan Bacon  return _fs().default.readFileSync(finalPath, 'utf8');
191082815dcSEvan Bacon}
192082815dcSEvan Baconfunction getUpdatesCodeSigningMetadata(config) {
19382ade864SWill Schurman  var _config$updates9;
19482ade864SWill Schurman  return (_config$updates9 = config.updates) === null || _config$updates9 === void 0 ? void 0 : _config$updates9.codeSigningMetadata;
195082815dcSEvan Bacon}
196082815dcSEvan Baconfunction getUpdatesCodeSigningMetadataStringified(config) {
197082815dcSEvan Bacon  const metadata = getUpdatesCodeSigningMetadata(config);
198082815dcSEvan Bacon  if (!metadata) {
199082815dcSEvan Bacon    return undefined;
200082815dcSEvan Bacon  }
201082815dcSEvan Bacon  return JSON.stringify(metadata);
202082815dcSEvan Bacon}
20309bd1012SUmberto Ghiofunction getUpdatesRequestHeaders(config) {
20482ade864SWill Schurman  var _config$updates10;
20582ade864SWill Schurman  return (_config$updates10 = config.updates) === null || _config$updates10 === void 0 ? void 0 : _config$updates10.requestHeaders;
20609bd1012SUmberto Ghio}
20709bd1012SUmberto Ghiofunction getUpdatesRequestHeadersStringified(config) {
20809bd1012SUmberto Ghio  const metadata = getUpdatesRequestHeaders(config);
20909bd1012SUmberto Ghio  if (!metadata) {
21009bd1012SUmberto Ghio    return undefined;
21109bd1012SUmberto Ghio  }
21209bd1012SUmberto Ghio  return JSON.stringify(metadata);
21309bd1012SUmberto Ghio}
214082815dcSEvan Bacon//# sourceMappingURL=Updates.js.map