react-native-bspatch 4.1.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +83 -27
  2. package/android/build.gradle +25 -0
  3. package/android/src/main/AndroidManifest.xml +2 -0
  4. package/android/src/main/java/vn/reactnativebspatch/BsPatchModule.kt +86 -6
  5. package/android/src/main/res/values/bspatch_public_key.xml +5 -0
  6. package/cpp/bsdiff/bspatch_wrapper.c +34 -0
  7. package/cpp/bsdiff/bspatch_wrapper.h +2 -0
  8. package/cpp/bspatch_jni.cpp +18 -0
  9. package/ios/RNBsPatch.mm +142 -1
  10. package/lib/commonjs/NativeBsPatch.js.map +1 -1
  11. package/lib/commonjs/index.js +9 -2
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/ota/OtaProvider.js +116 -20
  14. package/lib/commonjs/ota/OtaProvider.js.map +1 -1
  15. package/lib/commonjs/ota/eligibility.js +40 -0
  16. package/lib/commonjs/ota/eligibility.js.map +1 -0
  17. package/lib/commonjs/ota/entrySignature.js +23 -0
  18. package/lib/commonjs/ota/entrySignature.js.map +1 -0
  19. package/lib/commonjs/ota/installId.js +27 -0
  20. package/lib/commonjs/ota/installId.js.map +1 -0
  21. package/lib/commonjs/ota/otaCore.js +96 -21
  22. package/lib/commonjs/ota/otaCore.js.map +1 -1
  23. package/lib/commonjs/ota/storage/{GitHubRawStorage.js → R2Storage.js} +20 -15
  24. package/lib/commonjs/ota/storage/R2Storage.js.map +1 -0
  25. package/lib/commonjs/ota/types.js.map +1 -1
  26. package/lib/module/NativeBsPatch.js.map +1 -1
  27. package/lib/module/index.js +2 -1
  28. package/lib/module/index.js.map +1 -1
  29. package/lib/module/ota/OtaProvider.js +116 -20
  30. package/lib/module/ota/OtaProvider.js.map +1 -1
  31. package/lib/module/ota/eligibility.js +34 -0
  32. package/lib/module/ota/eligibility.js.map +1 -0
  33. package/lib/module/ota/entrySignature.js +17 -0
  34. package/lib/module/ota/entrySignature.js.map +1 -0
  35. package/lib/module/ota/installId.js +22 -0
  36. package/lib/module/ota/installId.js.map +1 -0
  37. package/lib/module/ota/otaCore.js +96 -21
  38. package/lib/module/ota/otaCore.js.map +1 -1
  39. package/lib/module/ota/storage/{GitHubRawStorage.js → R2Storage.js} +18 -14
  40. package/lib/module/ota/storage/R2Storage.js.map +1 -0
  41. package/lib/module/ota/types.js.map +1 -1
  42. package/lib/typescript/NativeBsPatch.d.ts +28 -2
  43. package/lib/typescript/NativeBsPatch.d.ts.map +1 -1
  44. package/lib/typescript/index.d.ts +3 -1
  45. package/lib/typescript/index.d.ts.map +1 -1
  46. package/lib/typescript/ota/OtaProvider.d.ts.map +1 -1
  47. package/lib/typescript/ota/eligibility.d.ts +19 -0
  48. package/lib/typescript/ota/eligibility.d.ts.map +1 -0
  49. package/lib/typescript/ota/entrySignature.d.ts +9 -0
  50. package/lib/typescript/ota/entrySignature.d.ts.map +1 -0
  51. package/lib/typescript/ota/installId.d.ts +3 -0
  52. package/lib/typescript/ota/installId.d.ts.map +1 -0
  53. package/lib/typescript/ota/otaCore.d.ts.map +1 -1
  54. package/lib/typescript/ota/storage/{GitHubRawStorage.d.ts → R2Storage.d.ts} +4 -3
  55. package/lib/typescript/ota/storage/R2Storage.d.ts.map +1 -0
  56. package/lib/typescript/ota/types.d.ts +52 -5
  57. package/lib/typescript/ota/types.d.ts.map +1 -1
  58. package/package.json +3 -2
  59. package/react-native-bspatch.podspec +3 -1
  60. package/src/NativeBsPatch.ts +34 -2
  61. package/src/index.ts +5 -1
  62. package/src/ota/OtaProvider.tsx +115 -24
  63. package/src/ota/eligibility.ts +48 -0
  64. package/src/ota/entrySignature.ts +31 -0
  65. package/src/ota/installId.ts +18 -0
  66. package/src/ota/otaCore.ts +102 -21
  67. package/src/ota/storage/{GitHubRawStorage.ts → R2Storage.ts} +17 -13
  68. package/src/ota/types.ts +49 -5
  69. package/tools/build_ota.sh +343 -116
  70. package/tools/doctor.js +130 -0
  71. package/tools/ensure_signing_key.js +216 -0
  72. package/tools/fingerprint.js +111 -0
  73. package/tools/ios_fingerprint.sh +9 -0
  74. package/tools/ota_admin.js +131 -0
  75. package/tools/setup_project.js +41 -15
  76. package/tools/update_registry.js +111 -11
  77. package/tools/upload_ota.sh +85 -184
  78. package/tools/verify_publish.js +81 -0
  79. package/lib/commonjs/ota/storage/GitHubRawStorage.js.map +0 -1
  80. package/lib/module/ota/storage/GitHubRawStorage.js.map +0 -1
  81. package/lib/typescript/ota/storage/GitHubRawStorage.d.ts.map +0 -1
@@ -3,12 +3,30 @@
3
3
  import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
4
4
  import { ActivityIndicator, AppState, Platform, StyleSheet, Text, View } from 'react-native';
5
5
  import NativeBsPatch from '../NativeBsPatch';
6
+ import { ineligibleReason } from './eligibility';
7
+ import { getInstallId } from './installId';
6
8
  import { applyOtaPatchInternal, fetchOtaManifest, selectUpdate, validateOtaConfig } from './otaCore';
7
9
  import { createOtaLogger, OtaEvent } from './otaLogger';
8
10
  import { DOCUMENT_DIR, loadMetadata, markHealthy, OTA_DIR } from './otaMetadata';
9
11
  import { OtaStatus, OtaUpdateMode } from './types';
10
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
13
  const OtaContext = /*#__PURE__*/createContext(undefined);
14
+ const DEFAULT_MIN_CHECK_INTERVAL_MS = 10 * 60 * 1000;
15
+
16
+ /** Sync native getter, '' if it throws */
17
+ const nativeString = get => {
18
+ try {
19
+ return get() ?? '';
20
+ } catch {
21
+ return '';
22
+ }
23
+ };
24
+
25
+ /** Bytecode version the running Hermes reads (undefined off Hermes) */
26
+ const hermesBytecodeVersion = () => {
27
+ const v = globalThis.HermesInternal?.getRuntimeProperties?.()?.['Bytecode Version'];
28
+ return v ? Number(v) : undefined;
29
+ };
12
30
  export function OtaProvider({
13
31
  children,
14
32
  config,
@@ -26,12 +44,17 @@ export function OtaProvider({
26
44
  const [patches, setPatches] = useState([]);
27
45
  const [isInitialized, setIsInitialized] = useState(false);
28
46
  const [isUpdateReady, setIsUpdateReady] = useState(false);
47
+ const [isMandatory, setIsMandatory] = useState(false);
48
+ const [installId, setInstallId] = useState('');
29
49
  const appState = useRef(AppState.currentState);
30
50
  const isCheckingRef = useRef(false);
31
51
  const bootstrapDone = useRef(false);
32
52
  /** Version the native resolver loaded for this JS session */
33
53
  const runningVersionRef = useRef(config.baseAppVersion);
34
54
  const progressRef = useRef(0);
55
+ const lastCheckRef = useRef(0);
56
+ const appVersionRef = useRef(config.appVersion ?? '');
57
+ const installIdRef = useRef('');
35
58
  const isDebugUpdateEnabled = !__DEV__ || config.allowDebugUpdates === true;
36
59
 
37
60
  // No fallbacks: a missing env value disables OTA instead of silently pointing elsewhere.
@@ -50,21 +73,53 @@ export function OtaProvider({
50
73
  progressRef.current = nextProgress;
51
74
  setProgress(nextProgress);
52
75
  }, []);
76
+
77
+ /** config.onEvent, plus a fire-and-forget POST to config.telemetry.url */
78
+ const onEvent = useCallback(entry => {
79
+ config.onEvent?.(entry);
80
+ const telemetry = config.telemetry;
81
+ if (!telemetry) return;
82
+ fetch(telemetry.url, {
83
+ method: 'POST',
84
+ headers: {
85
+ 'Content-Type': 'application/json',
86
+ ...telemetry.headers
87
+ },
88
+ body: JSON.stringify({
89
+ ...entry,
90
+ installId: installIdRef.current,
91
+ platform: Platform.OS,
92
+ appVersion: appVersionRef.current,
93
+ appBuild: nativeString(() => NativeBsPatch.getAppBuild()),
94
+ runtimeFingerprint: nativeString(() => NativeBsPatch.getRuntimeFingerprint()),
95
+ flavor: config.customServer?.channel,
96
+ otaVersion: runningVersionRef.current
97
+ })
98
+ }).catch(() => {});
99
+ }, [config]);
53
100
  const getEffectiveConfig = useCallback(async () => {
54
- if (config.appVersion) return config;
101
+ // The keys `patch` embedded in the app (primary + backup), unless the app passes its own
102
+ const publicKey = config.publicKey || nativeString(() => NativeBsPatch.getEmbeddedPublicKeys()) || undefined;
103
+ const base = {
104
+ ...config,
105
+ publicKey,
106
+ onEvent
107
+ };
108
+ if (config.appVersion) return base;
55
109
  try {
56
110
  const nativeVer = await NativeBsPatch.getAppVersion();
57
111
  if (!nativeVer) {
58
112
  throw new Error('Native appVersion is empty');
59
113
  }
114
+ appVersionRef.current = nativeVer;
60
115
  return {
61
- ...config,
116
+ ...base,
62
117
  appVersion: nativeVer
63
118
  };
64
119
  } catch (e) {
65
120
  throw new Error(`[OtaProvider] Failed to auto-detect appVersion from native: ${e.message}. ` + `Please set versionName (Android) / CFBundleShortVersionString (iOS), or provide config.appVersion explicitly.`);
66
121
  }
67
- }, [config]);
122
+ }, [config, onEvent]);
68
123
 
69
124
  /**
70
125
  * Core apply update logic — separated so it can be mapped to button clicks
@@ -125,6 +180,12 @@ export function OtaProvider({
125
180
  setStatus(OtaStatus.UP_TO_DATE);
126
181
  setMessage(`Update V${targetV} ready for next launch`);
127
182
  if (m) setMetrics(m);
183
+ if (directPatch.mandatory) {
184
+ setIsMandatory(true);
185
+ // Only in the foreground: a reload in the background is rolled back (see the
186
+ // AppState effect); the effect reloads once the app comes back
187
+ if (AppState.currentState === 'active') NativeBsPatch.reloadBundle();
188
+ }
128
189
  }
129
190
  }, () => {},
130
191
  // silent: background doesn't spam progress
@@ -142,8 +203,9 @@ export function OtaProvider({
142
203
  /**
143
204
  * Check for updates from the manifest.
144
205
  * Uses a ref to guard against concurrent calls (avoids stale closure).
206
+ * Automatic calls are throttled by minCheckIntervalMs; { force: true } always checks.
145
207
  */
146
- const checkUpdates = useCallback(async () => {
208
+ const checkUpdates = useCallback(async options => {
147
209
  if (isCheckingRef.current || configError) return;
148
210
  if (!isDebugUpdateEnabled) {
149
211
  setPendingCount(0);
@@ -152,6 +214,9 @@ export function OtaProvider({
152
214
  setMessage('OTA updates are disabled while running a debug build.');
153
215
  return;
154
216
  }
217
+ const minInterval = config.minCheckIntervalMs ?? DEFAULT_MIN_CHECK_INTERVAL_MS;
218
+ if (!options?.force && Date.now() - lastCheckRef.current < minInterval) return;
219
+ lastCheckRef.current = Date.now();
155
220
  isCheckingRef.current = true;
156
221
  setIsChecking(true);
157
222
  setStatus(OtaStatus.CHECKING);
@@ -163,10 +228,22 @@ export function OtaProvider({
163
228
  const metadata = await loadMetadata(config.baseAppVersion);
164
229
  const localV = metadata.currentVersion;
165
230
 
166
- // The one platform filter (storage providers return every platform).
167
- // Also skips versions that crashed on boot and were rolled back natively.
168
- const failed = metadata.failedVersions ?? [];
169
- const platformPatches = remotePatches.filter(p => (!p.platform || p.platform.toLowerCase() === Platform.OS) && !failed.includes(p.toVersion));
231
+ // Storage providers return every platform: keep what this install may take (platform,
232
+ // native fingerprint, Hermes, rollout/QA lists, kill switch, versions that crashed here)
233
+ const context = {
234
+ platform: Platform.OS,
235
+ failedVersions: metadata.failedVersions ?? [],
236
+ runtimeFingerprint: nativeString(() => NativeBsPatch.getRuntimeFingerprint()),
237
+ hermesBytecodeVersion: hermesBytecodeVersion(),
238
+ installId: await getInstallId()
239
+ };
240
+ const platformPatches = remotePatches.filter(p => {
241
+ const reason = ineligibleReason(p, context);
242
+ if (reason && __DEV__ && p.toVersion > localV) {
243
+ console.log(`[OtaProvider] Skipping V${p.toVersion} (${p.id}): ${reason}`);
244
+ }
245
+ return !reason;
246
+ });
170
247
  const maxV = platformPatches.length > 0 ? Math.max(...platformPatches.map(p => p.toVersion)) : localV;
171
248
  setPatches(platformPatches);
172
249
  setCurrentVersion(localV);
@@ -177,7 +254,10 @@ export function OtaProvider({
177
254
  setStatus(OtaStatus.UPDATE_AVAILABLE);
178
255
 
179
256
  // Trigger behaviors based on mode
180
- if (config.updateMode === OtaUpdateMode.BACKGROUND_DOWNLOAD) {
257
+ const network = config.network?.wifiOnly ? await NativeBsPatch.getNetworkType().catch(() => 'unknown') : 'wifi';
258
+ if (network !== 'wifi' && network !== 'ethernet') {
259
+ setMessage(`Update available: V${localV} → V${maxV} (waiting for Wi-Fi)`);
260
+ } else if (config.updateMode === OtaUpdateMode.BACKGROUND_DOWNLOAD) {
181
261
  downloadBackgroundUpdate(platformPatches, localV, maxV);
182
262
  } else if (config.updateMode === OtaUpdateMode.ON_APP_START || config.updateMode === OtaUpdateMode.ON_APP_FOREGROUND) {
183
263
  // Auto-apply immediately!
@@ -210,6 +290,11 @@ export function OtaProvider({
210
290
  */
211
291
  useEffect(() => {
212
292
  const bootstrap = async () => {
293
+ getInstallId().then(id => {
294
+ installIdRef.current = id;
295
+ setInstallId(id);
296
+ }).catch(() => {});
297
+
213
298
  // Clean up any pending trash directories from previous resets (non-blocking)
214
299
  NativeBsPatch.readDir(DOCUMENT_DIR).then(dirs => {
215
300
  for (const dir of dirs) {
@@ -242,23 +327,32 @@ export function OtaProvider({
242
327
  setStatus(OtaStatus.UP_TO_DATE);
243
328
  }
244
329
  };
245
- bootstrap().then(() => setIsInitialized(true)).catch(() => {
246
- // Bootstrap failed: keep UI blocked so user sees the error state.
247
- // setIsInitialized stays false → isBlocking remains true → the error
248
- // message is shown via loadingView instead of a silent blank screen.
249
- });
330
+
331
+ // OTA must never take the app down: if bootstrap fails, render the app with OTA idle
332
+ bootstrap().catch(error => {
333
+ console.warn('[OtaProvider] Bootstrap failed, OTA disabled for this session:', error);
334
+ setMessage(`OTA disabled: ${error.message}`);
335
+ setStatus(OtaStatus.ERROR);
336
+ }).finally(() => setIsInitialized(true));
250
337
  // eslint-disable-next-line react-hooks/exhaustive-deps
251
338
  }, []);
252
339
 
253
340
  /**
254
- * AppState listener for ON_APP_FOREGROUND mode.
341
+ * AppState listener for ON_APP_FOREGROUND mode, and for a mandatory update that got
342
+ * ready while in the background.
255
343
  * A downloaded update is not reloaded on background: iOS suspends JS before the
256
344
  * first render, so the native resolver counts the launch as failed and rolls it back.
257
345
  * metadata already points at the new version, so the next cold start applies it
258
346
  */
347
+ const isMandatoryRef = useRef(false);
348
+ isMandatoryRef.current = isMandatory && isUpdateReady;
259
349
  useEffect(() => {
260
350
  const subscription = AppState.addEventListener('change', nextAppState => {
261
351
  if (appState.current.match(/inactive|background/) && nextAppState === 'active' && bootstrapDone.current) {
352
+ if (isMandatoryRef.current) {
353
+ NativeBsPatch.reloadBundle();
354
+ return;
355
+ }
262
356
  const mode = config.updateMode ?? OtaUpdateMode.MANUAL;
263
357
  if (mode === OtaUpdateMode.ON_APP_FOREGROUND) {
264
358
  checkUpdates();
@@ -271,13 +365,13 @@ export function OtaProvider({
271
365
  };
272
366
  }, [config.updateMode, checkUpdates]);
273
367
  const markAsHealthy = useCallback(async () => {
274
- const log = createOtaLogger(config.onEvent);
368
+ const log = createOtaLogger(onEvent);
275
369
  log.emit(OtaEvent.MARK_HEALTHY);
276
370
  const appVersion = await NativeBsPatch.getAppVersion().catch(() => config.appVersion);
277
371
  await markHealthy(config.baseAppVersion, runningVersionRef.current, appVersion);
278
- }, [config]);
372
+ }, [config, onEvent]);
279
373
  const resetToFactory = useCallback(async () => {
280
- const log = createOtaLogger(config.onEvent);
374
+ const log = createOtaLogger(onEvent);
281
375
  try {
282
376
  setStatus(OtaStatus.APPLYING);
283
377
  setMessage('Executing system wipe...');
@@ -293,7 +387,7 @@ export function OtaProvider({
293
387
  setStatus(OtaStatus.ERROR);
294
388
  setMessage(`Reset failed: ${error.message}`);
295
389
  }
296
- }, [config]);
390
+ }, [onEvent]);
297
391
 
298
392
  // Memoized: consumers re-render only when something they can see changes
299
393
  const value = useMemo(() => ({
@@ -306,13 +400,15 @@ export function OtaProvider({
306
400
  isChecking,
307
401
  metrics,
308
402
  isUpdateReady,
403
+ isMandatory,
404
+ installId,
309
405
  applyUpdate,
310
406
  applyVersion,
311
407
  resetToFactory,
312
408
  markAsHealthy,
313
409
  checkUpdate: checkUpdates,
314
410
  reloadBundle: () => NativeBsPatch.reloadBundle()
315
- }), [status, message, progress, currentVersion, latestVersion, pendingCount, isChecking, metrics, isUpdateReady, applyUpdate, applyVersion, resetToFactory, markAsHealthy, checkUpdates]);
411
+ }), [status, message, progress, currentVersion, latestVersion, pendingCount, isChecking, metrics, isUpdateReady, isMandatory, installId, applyUpdate, applyVersion, resetToFactory, markAsHealthy, checkUpdates]);
316
412
 
317
413
  // Logic to determine if we should block the UI
318
414
  const isBlocking = useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","ActivityIndicator","AppState","Platform","StyleSheet","Text","View","NativeBsPatch","applyOtaPatchInternal","fetchOtaManifest","selectUpdate","validateOtaConfig","createOtaLogger","OtaEvent","DOCUMENT_DIR","loadMetadata","markHealthy","OTA_DIR","OtaStatus","OtaUpdateMode","jsx","_jsx","jsxs","_jsxs","OtaContext","undefined","OtaProvider","children","config","loadingView","useLoadingView","status","setStatus","IDLE","message","setMessage","progress","setProgress","currentVersion","setCurrentVersion","baseAppVersion","latestVersion","setLatestVersion","pendingCount","setPendingCount","isChecking","setIsChecking","metrics","setMetrics","patches","setPatches","isInitialized","setIsInitialized","isUpdateReady","setIsUpdateReady","appState","currentState","isCheckingRef","bootstrapDone","runningVersionRef","progressRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","configError","e","Error","setProgressIfChanged","nextProgress","current","getEffectiveConfig","appVersion","nativeVer","getAppVersion","executeApplyUpdate","patchList","currentVer","targetVer","directPatch","console","warn","ERROR","effectiveConfig","DOWNLOADING","s","msg","m","percent","error","applyVersion","targetVersion","UP_TO_DATE","applyUpdate","downloadBackgroundUpdate","localV","targetV","SUCCESS","autoReload","checkUpdates","CHECKING","onEvent","emit","CHECK_UPDATE","remotePatches","metadata","failed","failedVersions","platformPatches","filter","p","platform","toLowerCase","OS","includes","toVersion","maxV","length","Math","max","map","UPDATE_AVAILABLE","updateMode","BACKGROUND_DOWNLOAD","ON_APP_START","ON_APP_FOREGROUND","bootstrap","readDir","then","dirs","dir","startsWith","removePath","catch","mode","MANUAL","subscription","addEventListener","nextAppState","match","remove","markAsHealthy","log","MARK_HEALTHY","resetToFactory","APPLYING","RESET_FACTORY","exists","moveFile","Date","now","reloadBundle","value","checkUpdate","isBlocking","healthyMarkedRef","Provider","style","styles","loadingContainer","loadingCard","size","color","loadingTitle","loadingText","progressText","toFixed","useOta","context","create","flex","justifyContent","alignItems","backgroundColor","paddingHorizontal","width","maxWidth","borderRadius","paddingVertical","borderWidth","borderColor","marginTop","fontSize","fontWeight","lineHeight","textAlign"],"sourceRoot":"../../../src","sources":["ota/OtaProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","ActivityIndicator","AppState","Platform","StyleSheet","Text","View","NativeBsPatch","ineligibleReason","getInstallId","applyOtaPatchInternal","fetchOtaManifest","selectUpdate","validateOtaConfig","createOtaLogger","OtaEvent","DOCUMENT_DIR","loadMetadata","markHealthy","OTA_DIR","OtaStatus","OtaUpdateMode","jsx","_jsx","jsxs","_jsxs","OtaContext","undefined","DEFAULT_MIN_CHECK_INTERVAL_MS","nativeString","get","hermesBytecodeVersion","v","globalThis","HermesInternal","getRuntimeProperties","Number","OtaProvider","children","config","loadingView","useLoadingView","status","setStatus","IDLE","message","setMessage","progress","setProgress","currentVersion","setCurrentVersion","baseAppVersion","latestVersion","setLatestVersion","pendingCount","setPendingCount","isChecking","setIsChecking","metrics","setMetrics","patches","setPatches","isInitialized","setIsInitialized","isUpdateReady","setIsUpdateReady","isMandatory","setIsMandatory","installId","setInstallId","appState","currentState","isCheckingRef","bootstrapDone","runningVersionRef","progressRef","lastCheckRef","appVersionRef","appVersion","installIdRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","configError","e","Error","setProgressIfChanged","nextProgress","current","onEvent","entry","telemetry","fetch","url","method","headers","body","JSON","stringify","platform","OS","appBuild","getAppBuild","runtimeFingerprint","getRuntimeFingerprint","flavor","customServer","channel","otaVersion","catch","getEffectiveConfig","publicKey","getEmbeddedPublicKeys","base","nativeVer","getAppVersion","executeApplyUpdate","patchList","currentVer","targetVer","directPatch","console","warn","ERROR","effectiveConfig","DOWNLOADING","s","msg","m","percent","error","applyVersion","targetVersion","UP_TO_DATE","applyUpdate","downloadBackgroundUpdate","localV","targetV","SUCCESS","mandatory","reloadBundle","autoReload","checkUpdates","options","minInterval","minCheckIntervalMs","force","Date","now","CHECKING","emit","CHECK_UPDATE","remotePatches","metadata","context","failedVersions","platformPatches","filter","p","reason","toVersion","log","id","maxV","length","Math","max","map","UPDATE_AVAILABLE","network","wifiOnly","getNetworkType","updateMode","BACKGROUND_DOWNLOAD","ON_APP_START","ON_APP_FOREGROUND","bootstrap","then","readDir","dirs","dir","startsWith","removePath","mode","MANUAL","finally","isMandatoryRef","subscription","addEventListener","nextAppState","match","remove","markAsHealthy","MARK_HEALTHY","resetToFactory","APPLYING","RESET_FACTORY","exists","moveFile","value","checkUpdate","isBlocking","healthyMarkedRef","Provider","style","styles","loadingContainer","loadingCard","size","color","loadingTitle","loadingText","progressText","toFixed","useOta","create","flex","justifyContent","alignItems","backgroundColor","paddingHorizontal","width","maxWidth","borderRadius","paddingVertical","borderWidth","borderColor","marginTop","fontSize","fontWeight","lineHeight","textAlign"],"sourceRoot":"../../../src","sources":["ota/OtaProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ /** Entry `requires` values this client understands */
4
+ export const SUPPORTED_FEATURES = ['gzip', 'bz2'];
5
+ /** FNV-1a: stable 0-99 bucket for an install and version (a different slice of installs per version) */
6
+ export const rolloutBucket = (installId, version) => {
7
+ let h = 0x811c9dc5;
8
+ for (const c of `${installId}:${version}`) {
9
+ h ^= c.charCodeAt(0);
10
+ h = Math.imul(h, 0x01000193) >>> 0;
11
+ }
12
+ return h % 100;
13
+ };
14
+
15
+ /** Why this client must not install the entry, or null when it may */
16
+ export const ineligibleReason = (e, ctx) => {
17
+ if (e.platform && e.platform.toLowerCase() !== ctx.platform) return 'other platform';
18
+ if (ctx.failedVersions.includes(e.toVersion)) return 'crashed on boot here before';
19
+ if (e.disabled) return 'disabled';
20
+ const missing = (e.requires ?? []).filter(f => !SUPPORTED_FEATURES.includes(f));
21
+ if (missing.length) return `needs a newer client (${missing.join(', ')})`;
22
+ if (e.runtimeFingerprint && e.runtimeFingerprint !== ctx.runtimeFingerprint) {
23
+ return ctx.runtimeFingerprint ? 'built for different native code (needs a store build)' : 'this binary has no runtime fingerprint (run `react-native-bspatch setup` and rebuild)';
24
+ }
25
+ if (e.hermesBytecodeVersion && ctx.hermesBytecodeVersion && e.hermesBytecodeVersion !== ctx.hermesBytecodeVersion) {
26
+ return `Hermes bytecode ${e.hermesBytecodeVersion}, runtime reads ${ctx.hermesBytecodeVersion}`;
27
+ }
28
+ if (e.allowInstallIds?.length && !e.allowInstallIds.includes(ctx.installId)) return 'not in the QA list';
29
+ if (e.rolloutPercent !== undefined && rolloutBucket(ctx.installId, e.toVersion) >= e.rolloutPercent) {
30
+ return `outside the ${e.rolloutPercent}% rollout`;
31
+ }
32
+ return null;
33
+ };
34
+ //# sourceMappingURL=eligibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SUPPORTED_FEATURES","rolloutBucket","installId","version","h","c","charCodeAt","Math","imul","ineligibleReason","e","ctx","platform","toLowerCase","failedVersions","includes","toVersion","disabled","missing","requires","filter","f","length","join","runtimeFingerprint","hermesBytecodeVersion","allowInstallIds","rolloutPercent","undefined"],"sourceRoot":"../../../src","sources":["ota/eligibility.ts"],"mappings":";;AAEA;AACA,OAAO,MAAMA,kBAAkB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;AAcjD;AACA,OAAO,MAAMC,aAAa,GAAGA,CAACC,SAAiB,EAAEC,OAAe,KAAa;EACzE,IAAIC,CAAC,GAAG,UAAU;EAClB,KAAK,MAAMC,CAAC,IAAI,GAAGH,SAAS,IAAIC,OAAO,EAAE,EAAE;IACvCC,CAAC,IAAIC,CAAC,CAACC,UAAU,CAAC,CAAC,CAAC;IACpBF,CAAC,GAAGG,IAAI,CAACC,IAAI,CAACJ,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC;EACtC;EACA,OAAOA,CAAC,GAAG,GAAG;AAClB,CAAC;;AAED;AACA,OAAO,MAAMK,gBAAgB,GAAGA,CAACC,CAAW,EAAEC,GAAuB,KAAoB;EACrF,IAAID,CAAC,CAACE,QAAQ,IAAIF,CAAC,CAACE,QAAQ,CAACC,WAAW,CAAC,CAAC,KAAKF,GAAG,CAACC,QAAQ,EAAE,OAAO,gBAAgB;EACpF,IAAID,GAAG,CAACG,cAAc,CAACC,QAAQ,CAACL,CAAC,CAACM,SAAS,CAAC,EAAE,OAAO,6BAA6B;EAClF,IAAIN,CAAC,CAACO,QAAQ,EAAE,OAAO,UAAU;EACjC,MAAMC,OAAO,GAAG,CAACR,CAAC,CAACS,QAAQ,IAAI,EAAE,EAAEC,MAAM,CAACC,CAAC,IAAI,CAACrB,kBAAkB,CAACe,QAAQ,CAACM,CAAC,CAAC,CAAC;EAC/E,IAAIH,OAAO,CAACI,MAAM,EAAE,OAAO,yBAAyBJ,OAAO,CAACK,IAAI,CAAC,IAAI,CAAC,GAAG;EACzE,IAAIb,CAAC,CAACc,kBAAkB,IAAId,CAAC,CAACc,kBAAkB,KAAKb,GAAG,CAACa,kBAAkB,EAAE;IACzE,OAAOb,GAAG,CAACa,kBAAkB,GACvB,uDAAuD,GACvD,uFAAuF;EACjG;EACA,IAAId,CAAC,CAACe,qBAAqB,IAAId,GAAG,CAACc,qBAAqB,IAAIf,CAAC,CAACe,qBAAqB,KAAKd,GAAG,CAACc,qBAAqB,EAAE;IAC/G,OAAO,mBAAmBf,CAAC,CAACe,qBAAqB,mBAAmBd,GAAG,CAACc,qBAAqB,EAAE;EACnG;EACA,IAAIf,CAAC,CAACgB,eAAe,EAAEJ,MAAM,IAAI,CAACZ,CAAC,CAACgB,eAAe,CAACX,QAAQ,CAACJ,GAAG,CAACT,SAAS,CAAC,EAAE,OAAO,oBAAoB;EACxG,IAAIQ,CAAC,CAACiB,cAAc,KAAKC,SAAS,IAAI3B,aAAa,CAACU,GAAG,CAACT,SAAS,EAAEQ,CAAC,CAACM,SAAS,CAAC,IAAIN,CAAC,CAACiB,cAAc,EAAE;IACjG,OAAO,eAAejB,CAAC,CAACiB,cAAc,WAAW;EACrD;EACA,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * What `entrySignature` signs: the fields that decide which bundle a client installs.
5
+ * Must stay byte-for-byte equal to entryPayload in tools/update_registry.js.
6
+ */
7
+ export const entryPayload = p => ['bspatch-entry-v2', p.appVersion, p.flavor ?? '', p.platform ?? '', p.fromVersion, p.toVersion, p.bundleHash ?? '', p.assetManifestHash ?? '', p.minAppVersion ?? '', p.runtimeFingerprint ?? '', p.hermesBytecodeVersion ?? ''].join('\n');
8
+
9
+ /** Public keys from config or the embedded list: PEM blocks, or base64 SPKI separated by commas/whitespace */
10
+ export const parsePublicKeys = keys => {
11
+ if (!keys) return [];
12
+ if (keys.includes('-----BEGIN')) {
13
+ return (keys.match(/-----BEGIN PUBLIC KEY-----[\s\S]*?-----END PUBLIC KEY-----/g) ?? []).map(block => block.replace(/-----[A-Z ]+-----|\s+/g, ''));
14
+ }
15
+ return keys.split(/[\s,]+/).filter(Boolean);
16
+ };
17
+ //# sourceMappingURL=entrySignature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["entryPayload","p","appVersion","flavor","platform","fromVersion","toVersion","bundleHash","assetManifestHash","minAppVersion","runtimeFingerprint","hermesBytecodeVersion","join","parsePublicKeys","keys","includes","match","map","block","replace","split","filter","Boolean"],"sourceRoot":"../../../src","sources":["ota/entrySignature.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMA,YAAY,GAAIC,CAAW,IACpC,CACI,kBAAkB,EAClBA,CAAC,CAACC,UAAU,EACZD,CAAC,CAACE,MAAM,IAAI,EAAE,EACdF,CAAC,CAACG,QAAQ,IAAI,EAAE,EAChBH,CAAC,CAACI,WAAW,EACbJ,CAAC,CAACK,SAAS,EACXL,CAAC,CAACM,UAAU,IAAI,EAAE,EAClBN,CAAC,CAACO,iBAAiB,IAAI,EAAE,EACzBP,CAAC,CAACQ,aAAa,IAAI,EAAE,EACrBR,CAAC,CAACS,kBAAkB,IAAI,EAAE,EAC1BT,CAAC,CAACU,qBAAqB,IAAI,EAAE,CAChC,CAACC,IAAI,CAAC,IAAI,CAAC;;AAEhB;AACA,OAAO,MAAMC,eAAe,GAAIC,IAAwB,IAAe;EACnE,IAAI,CAACA,IAAI,EAAE,OAAO,EAAE;EACpB,IAAIA,IAAI,CAACC,QAAQ,CAAC,YAAY,CAAC,EAAE;IAC7B,OAAO,CAACD,IAAI,CAACE,KAAK,CAAC,6DAA6D,CAAC,IAAI,EAAE,EAAEC,GAAG,CAACC,KAAK,IAC9FA,KAAK,CAACC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAC9C,CAAC;EACL;EACA,OAAOL,IAAI,CAACM,KAAK,CAAC,QAAQ,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC;AAC/C,CAAC","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import NativeBsPatch from '../NativeBsPatch';
4
+ import { DOCUMENT_DIR } from './otaMetadata';
5
+
6
+ // Outside ota/: resetToFactory and native rollbacks keep it
7
+ const INSTALL_ID_PATH = `${DOCUMENT_DIR}/bspatch-install-id`;
8
+ let installId;
9
+
10
+ /** Random ID made on first use and kept for the life of the install (rollout bucket, QA lists, telemetry) */
11
+ export const getInstallId = () => installId ??= (async () => {
12
+ try {
13
+ const saved = (await NativeBsPatch.readFile(INSTALL_ID_PATH)).trim();
14
+ if (/^[0-9a-f]{32}$/.test(saved)) return saved;
15
+ } catch {}
16
+ const id = Array.from({
17
+ length: 32
18
+ }, () => Math.floor(Math.random() * 16).toString(16)).join('');
19
+ await NativeBsPatch.writeFile(INSTALL_ID_PATH, id).catch(() => {});
20
+ return id;
21
+ })();
22
+ //# sourceMappingURL=installId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeBsPatch","DOCUMENT_DIR","INSTALL_ID_PATH","installId","getInstallId","saved","readFile","trim","test","id","Array","from","length","Math","floor","random","toString","join","writeFile","catch"],"sourceRoot":"../../../src","sources":["ota/installId.ts"],"mappings":";;AAAA,OAAOA,aAAa,MAAM,kBAAkB;AAC5C,SAASC,YAAY,QAAQ,eAAe;;AAE5C;AACA,MAAMC,eAAe,GAAG,GAAGD,YAAY,qBAAqB;AAC5D,IAAIE,SAAsC;;AAE1C;AACA,OAAO,MAAMC,YAAY,GAAGA,CAAA,KACvBD,SAAS,KAAK,CAAC,YAAY;EACxB,IAAI;IACA,MAAME,KAAK,GAAG,CAAC,MAAML,aAAa,CAACM,QAAQ,CAACJ,eAAe,CAAC,EAAEK,IAAI,CAAC,CAAC;IACpE,IAAI,gBAAgB,CAACC,IAAI,CAACH,KAAK,CAAC,EAAE,OAAOA,KAAK;EAClD,CAAC,CAAC,MAAM,CAAC;EACT,MAAMI,EAAE,GAAGC,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAE;EAAG,CAAC,EAAE,MAAMC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC;EACjG,MAAMjB,aAAa,CAACkB,SAAS,CAAChB,eAAe,EAAEO,EAAE,CAAC,CAACU,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;EAClE,OAAOV,EAAE;AACb,CAAC,EAAE,CAAE","ignoreList":[]}