@scalebun/react-native 1.0.1 → 1.0.3

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 (111) hide show
  1. package/android/src/main/java/com/scalebun/rn/ota/BundleDownloader.kt +170 -0
  2. package/android/src/main/java/com/scalebun/rn/ota/ScaleBunOtaModule.kt +160 -12
  3. package/android/src/main/java/com/scalebun/rn/ota/SlotManager.kt +32 -6
  4. package/android/src/oldarch/java/com/scalebun/rn/ota/ScaleBunOtaSpec.kt +7 -1
  5. package/ios/Ota/BundleDownloader.swift +182 -0
  6. package/ios/Ota/OtaSlotManager.swift +35 -9
  7. package/ios/Ota/ScaleBunOtaBridge.mm +9 -0
  8. package/ios/Ota/ScaleBunOtaEventsModule.swift +61 -0
  9. package/ios/Ota/ScaleBunOtaModule.swift +58 -5
  10. package/lib/commonjs/bootstrap/SDKBootstrapper.js +22 -0
  11. package/lib/commonjs/bootstrap/SDKBootstrapper.js.map +1 -1
  12. package/lib/commonjs/features/crash/CrashFeature.js +18 -0
  13. package/lib/commonjs/features/crash/CrashFeature.js.map +1 -1
  14. package/lib/commonjs/features/crash/rejectionHandler.js +123 -0
  15. package/lib/commonjs/features/crash/rejectionHandler.js.map +1 -0
  16. package/lib/commonjs/features/engage/EngagePromptProvider.js +4 -2
  17. package/lib/commonjs/features/engage/EngagePromptProvider.js.map +1 -1
  18. package/lib/commonjs/features/engage/engageThrottle.js +41 -10
  19. package/lib/commonjs/features/engage/engageThrottle.js.map +1 -1
  20. package/lib/commonjs/features/engage/engageTypes.js.map +1 -1
  21. package/lib/commonjs/features/navigation/AutoScreenDetector.js +53 -10
  22. package/lib/commonjs/features/navigation/AutoScreenDetector.js.map +1 -1
  23. package/lib/commonjs/features/ota/OtaOrchestrator.js +515 -20
  24. package/lib/commonjs/features/ota/OtaOrchestrator.js.map +1 -1
  25. package/lib/commonjs/features/ota/environment.js +172 -0
  26. package/lib/commonjs/features/ota/environment.js.map +1 -0
  27. package/lib/commonjs/features/ota/retry.js +96 -0
  28. package/lib/commonjs/features/ota/retry.js.map +1 -0
  29. package/lib/commonjs/features/ota/signature.js +115 -0
  30. package/lib/commonjs/features/ota/signature.js.map +1 -0
  31. package/lib/commonjs/features/session/BackendSessionAdapter.js +231 -26
  32. package/lib/commonjs/features/session/BackendSessionAdapter.js.map +1 -1
  33. package/lib/commonjs/index.js +7 -0
  34. package/lib/commonjs/index.js.map +1 -1
  35. package/lib/commonjs/public/ScaleBunErrorBoundary.js +79 -0
  36. package/lib/commonjs/public/ScaleBunErrorBoundary.js.map +1 -0
  37. package/lib/commonjs/specs/NativeScaleBunOta.js.map +1 -1
  38. package/lib/module/bootstrap/SDKBootstrapper.js +22 -0
  39. package/lib/module/bootstrap/SDKBootstrapper.js.map +1 -1
  40. package/lib/module/features/crash/CrashFeature.js +18 -0
  41. package/lib/module/features/crash/CrashFeature.js.map +1 -1
  42. package/lib/module/features/crash/rejectionHandler.js +116 -0
  43. package/lib/module/features/crash/rejectionHandler.js.map +1 -0
  44. package/lib/module/features/engage/EngagePromptProvider.js +4 -2
  45. package/lib/module/features/engage/EngagePromptProvider.js.map +1 -1
  46. package/lib/module/features/engage/engageThrottle.js +41 -10
  47. package/lib/module/features/engage/engageThrottle.js.map +1 -1
  48. package/lib/module/features/engage/engageTypes.js.map +1 -1
  49. package/lib/module/features/navigation/AutoScreenDetector.js +53 -10
  50. package/lib/module/features/navigation/AutoScreenDetector.js.map +1 -1
  51. package/lib/module/features/ota/OtaOrchestrator.js +516 -21
  52. package/lib/module/features/ota/OtaOrchestrator.js.map +1 -1
  53. package/lib/module/features/ota/environment.js +165 -0
  54. package/lib/module/features/ota/environment.js.map +1 -0
  55. package/lib/module/features/ota/retry.js +87 -0
  56. package/lib/module/features/ota/retry.js.map +1 -0
  57. package/lib/module/features/ota/signature.js +109 -0
  58. package/lib/module/features/ota/signature.js.map +1 -0
  59. package/lib/module/features/session/BackendSessionAdapter.js +230 -26
  60. package/lib/module/features/session/BackendSessionAdapter.js.map +1 -1
  61. package/lib/module/index.js +6 -0
  62. package/lib/module/index.js.map +1 -1
  63. package/lib/module/public/ScaleBunErrorBoundary.js +70 -0
  64. package/lib/module/public/ScaleBunErrorBoundary.js.map +1 -0
  65. package/lib/module/specs/NativeScaleBunOta.js.map +1 -1
  66. package/lib/typescript/bootstrap/SDKBootstrapper.d.ts.map +1 -1
  67. package/lib/typescript/features/crash/CrashFeature.d.ts.map +1 -1
  68. package/lib/typescript/features/crash/rejectionHandler.d.ts +46 -0
  69. package/lib/typescript/features/crash/rejectionHandler.d.ts.map +1 -0
  70. package/lib/typescript/features/engage/EngagePromptProvider.d.ts.map +1 -1
  71. package/lib/typescript/features/engage/engageThrottle.d.ts +24 -4
  72. package/lib/typescript/features/engage/engageThrottle.d.ts.map +1 -1
  73. package/lib/typescript/features/engage/engageTypes.d.ts +6 -0
  74. package/lib/typescript/features/engage/engageTypes.d.ts.map +1 -1
  75. package/lib/typescript/features/navigation/AutoScreenDetector.d.ts +9 -0
  76. package/lib/typescript/features/navigation/AutoScreenDetector.d.ts.map +1 -1
  77. package/lib/typescript/features/ota/OtaOrchestrator.d.ts +67 -1
  78. package/lib/typescript/features/ota/OtaOrchestrator.d.ts.map +1 -1
  79. package/lib/typescript/features/ota/OtaTypes.d.ts +42 -0
  80. package/lib/typescript/features/ota/OtaTypes.d.ts.map +1 -1
  81. package/lib/typescript/features/ota/environment.d.ts +99 -0
  82. package/lib/typescript/features/ota/environment.d.ts.map +1 -0
  83. package/lib/typescript/features/ota/retry.d.ts +53 -0
  84. package/lib/typescript/features/ota/retry.d.ts.map +1 -0
  85. package/lib/typescript/features/ota/signature.d.ts +66 -0
  86. package/lib/typescript/features/ota/signature.d.ts.map +1 -0
  87. package/lib/typescript/features/session/BackendSessionAdapter.d.ts +93 -2
  88. package/lib/typescript/features/session/BackendSessionAdapter.d.ts.map +1 -1
  89. package/lib/typescript/index.d.ts +6 -0
  90. package/lib/typescript/index.d.ts.map +1 -1
  91. package/lib/typescript/public/ScaleBunErrorBoundary.d.ts +44 -0
  92. package/lib/typescript/public/ScaleBunErrorBoundary.d.ts.map +1 -0
  93. package/lib/typescript/specs/NativeScaleBunOta.d.ts +11 -0
  94. package/lib/typescript/specs/NativeScaleBunOta.d.ts.map +1 -1
  95. package/package.json +3 -3
  96. package/src/bootstrap/SDKBootstrapper.ts +24 -0
  97. package/src/features/crash/CrashFeature.ts +19 -0
  98. package/src/features/crash/rejectionHandler.ts +134 -0
  99. package/src/features/engage/EngagePromptProvider.tsx +4 -2
  100. package/src/features/engage/engageThrottle.ts +44 -6
  101. package/src/features/engage/engageTypes.ts +6 -0
  102. package/src/features/navigation/AutoScreenDetector.ts +59 -4
  103. package/src/features/ota/OtaOrchestrator.ts +594 -23
  104. package/src/features/ota/OtaTypes.ts +56 -0
  105. package/src/features/ota/environment.ts +199 -0
  106. package/src/features/ota/retry.ts +123 -0
  107. package/src/features/ota/signature.ts +123 -0
  108. package/src/features/session/BackendSessionAdapter.ts +233 -25
  109. package/src/index.ts +6 -0
  110. package/src/public/ScaleBunErrorBoundary.tsx +79 -0
  111. package/src/specs/NativeScaleBunOta.ts +12 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_internalLogger","_crashSafe","_NativeScaleBunOta","_interopRequireDefault","_OtaEventEmitter","e","__esModule","default","DEFAULT_HEALTHY_AFTER_MS","DEFAULT_MAX_REVERT_ATTEMPTS","OtaOrchestrator","enabled","currentBundle","isRestartRequiredState","healthyTimer","bootGuardConfig","init","config","noThrow","NativeScaleBunOta","logger","warn","debug","checkBootGuardRecovery","stateJson","getSlotState","state","JSON","parse","bootGuardReverted","otaEventEmitter","emitSimple","previous","bundleId","reason","isEnabled","isRestartRequired","checkForUpdate","requestParams","payload","appVersion","platform","Platform","OS","installationId","currentBundleId","id","currentBundleHash","sha256","url","apiUrl","replace","res","fetch","method","headers","clientKey","body","stringify","ok","Error","status","data","json","err","error","message","action","sync","params","checkRes","startBootGuardHeartbeat","reverted","revertToPrevious","autoRestart","restart","bundle","patchUsed","version","downloadStart","Date","now","staged","patch","stagePatch","size","toFixed","patchErr","stageBundle","downloadDuration","durationMs","applied","applyUpdate","flush","isMandatory","clearTimeout","bootMarkerPresent","healthyMs","healthyAfterMs","setTimeout","markHealthy","info","DevSettings","reload","NativeModules","RNReload","exports","otaOrchestrator"],"sourceRoot":"../../../../src","sources":["features/ota/OtaOrchestrator.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_internalLogger","_crashSafe","_NativeScaleBunOta","_interopRequireDefault","_OtaEventEmitter","_signature","_environment","_retry","_StorageBackend","e","__esModule","default","readRunningBundleMarker","id","globalThis","__SCALEBUN_OTA_ID__","length","subscribeNativeProgress","onTick","Platform","OS","eventsModule","NativeModules","ScaleBunOtaEvents","emitter","NativeEventEmitter","sub","addListener","remove","DeviceEventEmitter","PROGRESS_POST_INTERVAL_MS","deliverOtaEvents","params","events","otaEventEmitter","flush","items","map","kind","type","bundleId","installationId","platform","appVersion","durationMs","errorCode","error","reason","patchUsed","timestamp","base","apiUrl","replace","res","fetch","method","headers","clientKey","body","JSON","stringify","ok","Error","status","logger","debug","err","emit","message","DEFAULT_HEALTHY_AFTER_MS","DEFAULT_MAX_REVERT_ATTEMPTS","OtaOrchestrator","enabled","currentBundle","isRestartRequiredState","healthyTimer","bootGuardConfig","environment","initialized","storageBackend","init","config","noThrow","signatureConfig","signature","NativeScaleBunOta","warn","detectOtaEnvironment","supported","blockReason","bridgeless","rnVersion","requiresReactHostIntegration","rnVersionString","hermes","hermesBytecodeVersion","hydrateCurrentBundleFromSlots","verifyRunningBundleIdentity","checkBootGuardRecovery","state","parse","getSlotState","current","sha256","record","readInstallRecord","version","String","slice","running","expected","readInstallExpectation","clearInstallExpectation","identityToken","emitSimple","INSTALL_EXPECTATION_KEY","recordInstallExpectation","bundle","storage","set","raw","get","parsed","createStorageBackend","stateJson","bootGuardReverted","previous","isEnabled","isRestartRequired","checkForUpdate","requestParams","env","payload","currentBundleId","currentBundleHash","channelName","country","attributes","segmentIds","lifecycleStage","undefined","url","data","retryWithBackoff","HttpStatusError","json","label","isRetryable","isRetryableNetworkError","action","sync","checkRes","startBootGuardHeartbeat","reverted","revertToPrevious","autoRestart","restart","signatureOutcome","verifyBundleSignature","downloadStart","Date","now","lastPostAt","postProgress","bytesRead","total","size","Math","max","percent","min","round","elapsedS","totalBytes","progressPercent","speedKbps","catch","unsubscribeProgress","progress","staged","patch","stagePatch","toFixed","patchErr","stageBundle","attempts","downloadDuration","applied","applyUpdate","installMode","armResumeRestart","isMandatory","clearTimeout","bootMarkerPresent","healthyMs","healthyAfterMs","setTimeout","markHealthy","info","resumeRestartArmed","wasBackground","AppState","addEventListener","restartApp","DevSettings","reload","RNReload","exports","otaOrchestrator"],"sourceRoot":"../../../../src","sources":["features/ota/OtaOrchestrator.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.REACT_HOST_ONLY_RN = exports.MIN_BRIDGELESS_RN = void 0;
7
+ exports._resetOtaEnvironmentCache = _resetOtaEnvironmentCache;
8
+ exports.detectOtaEnvironment = detectOtaEnvironment;
9
+ var _reactNative = require("react-native");
10
+ /**
11
+ * OTA runtime environment detection.
12
+ *
13
+ * ── Why this file exists ────────────────────────────────────────────────────
14
+ *
15
+ * Our Android OTA resolves the active bundle through
16
+ * `MainApplication.getJSBundleFile()`. That is a *bridge-mode* API.
17
+ *
18
+ * Under the New Architecture (bridgeless), the app is built by
19
+ * `DefaultReactHost` instead — and until React Native 0.76.1,
20
+ * `DefaultReactNativeHost.toReactHost()` never forwarded `jsBundleFile`:
21
+ *
22
+ * // RN 0.74.1 — DefaultReactNativeHost.kt
23
+ * public fun toReactHost(context: Context): ReactHost =
24
+ * DefaultReactHost.getDefaultReactHost(
25
+ * context, packages, jsMainModuleName,
26
+ * bundleAssetName ?: "index", // <- jsBundleFile is NEVER passed
27
+ * isHermesEnabled ?: true)
28
+ *
29
+ * // RN 0.74.1 — DefaultReactHost.kt
30
+ * val jsBundleLoader =
31
+ * JSBundleLoader.createAssetLoader(context, "assets://$jsBundleAssetPath", true)
32
+ *
33
+ * The loader is hardcoded to the APK asset. `getJSBundleFile()` is never
34
+ * consulted, so an update stages, applies, reports INSTALLED, restarts — and
35
+ * the app loads the bundle baked into the APK. Every signal says success and
36
+ * nothing happened. This is the same failure that killed CodePush on modern RN.
37
+ *
38
+ * Fixed upstream in 0.76.1 (`jsBundleFile` is threaded through). Verified
39
+ * present in 0.81.5.
40
+ *
41
+ * We refuse to run rather than pretend to work. A loud failure at startup is
42
+ * recoverable; a silent no-op that reports success is not — it corrupts the
43
+ * adoption metrics, the guard thresholds, and every rollout decision made
44
+ * from them.
45
+ */
46
+
47
+ /** First React Native version where bridgeless honours `getJSBundleFile()`. */
48
+ const MIN_BRIDGELESS_RN = exports.MIN_BRIDGELESS_RN = {
49
+ major: 0,
50
+ minor: 76,
51
+ patch: 1
52
+ };
53
+
54
+ /**
55
+ * React Native 0.82 REMOVED `ReactNativeHost`. The New Architecture became
56
+ * mandatory and `newArchEnabled=false` was withdrawn, so the legacy
57
+ * `override fun getJSBundleFile()` integration does not merely stop working —
58
+ * it does not compile. From 0.82 the only correct integration is passing
59
+ * `jsBundleFilePath` straight to `getDefaultReactHost(...)`.
60
+ *
61
+ * We cannot see which integration a host app used, so this is not a block. It
62
+ * drives a startup hint, and the post-restart identity check is what actually
63
+ * catches a host that got it wrong.
64
+ */
65
+ const REACT_HOST_ONLY_RN = exports.REACT_HOST_ONLY_RN = {
66
+ major: 0,
67
+ minor: 82,
68
+ patch: 0
69
+ };
70
+ function compare(a, b) {
71
+ if (a.major !== b.major) return a.major - b.major;
72
+ if (a.minor !== b.minor) return a.minor - b.minor;
73
+ return a.patch - b.patch;
74
+ }
75
+ function readRnVersion() {
76
+ // `Platform.constants.reactNativeVersion` is public API and present on both
77
+ // platforms since 0.62. Preferred over the deep `Libraries/Core/...` import,
78
+ // which is private and has moved between releases.
79
+ try {
80
+ const v = _reactNative.Platform.constants?.reactNativeVersion;
81
+ if (v && typeof v.major === 'number' && typeof v.minor === 'number') {
82
+ return {
83
+ major: v.major,
84
+ minor: v.minor,
85
+ patch: v.patch ?? 0
86
+ };
87
+ }
88
+ } catch {
89
+ // fall through
90
+ }
91
+ return null;
92
+ }
93
+ function readBridgeless() {
94
+ // Set by the runtime itself when the bridgeless host is in use. Absent on
95
+ // the old architecture, so `=== true` is the correct test.
96
+ try {
97
+ return globalThis.RN$Bridgeless === true;
98
+ } catch {
99
+ return false;
100
+ }
101
+ }
102
+ function readHermes() {
103
+ try {
104
+ const h = globalThis.HermesInternal;
105
+ if (!h) return {
106
+ hermes: false,
107
+ bytecodeVersion: null
108
+ };
109
+ let bytecodeVersion = null;
110
+ const props = h.getRuntimeProperties?.();
111
+ if (props) {
112
+ // Hermes reports this as "Bytecode Version"; the value has been both a
113
+ // number and a numeric string across releases, so coerce and validate.
114
+ const raw = props['Bytecode Version'];
115
+ const n = typeof raw === 'string' ? Number(raw) : raw;
116
+ if (typeof n === 'number' && Number.isFinite(n)) bytecodeVersion = n;
117
+ }
118
+ return {
119
+ hermes: true,
120
+ bytecodeVersion
121
+ };
122
+ } catch {
123
+ return {
124
+ hermes: false,
125
+ bytecodeVersion: null
126
+ };
127
+ }
128
+ }
129
+ let cached = null;
130
+
131
+ /**
132
+ * Detect the runtime environment and decide whether OTA can function at all.
133
+ * Result is cached — none of these values change during a process lifetime.
134
+ */
135
+ function detectOtaEnvironment() {
136
+ if (cached) return cached;
137
+ const rnVersion = readRnVersion();
138
+ const bridgeless = readBridgeless();
139
+ const {
140
+ hermes,
141
+ bytecodeVersion
142
+ } = readHermes();
143
+ let supported = true;
144
+ let blockReason = null;
145
+ if (bridgeless && rnVersion) {
146
+ if (compare(rnVersion, MIN_BRIDGELESS_RN) < 0) {
147
+ supported = false;
148
+ blockReason = `React Native ${rnVersion.major}.${rnVersion.minor}.${rnVersion.patch} is running ` + `bridgeless (New Architecture), but jsBundleFile was not threaded through ` + `DefaultReactHost until RN 0.76.1. getJSBundleFile() is ignored on this runtime, ` + `so an OTA bundle would install successfully and never actually load. ` + `Upgrade to React Native >= 0.76.1, or disable the New Architecture.`;
149
+ }
150
+ } else if (bridgeless && !rnVersion) {
151
+ // Can't prove it's broken, and blocking every app whose version we failed
152
+ // to read would be worse than the bug. Warn instead of blocking.
153
+ blockReason = null;
154
+ }
155
+ cached = {
156
+ rnVersion,
157
+ rnVersionString: rnVersion ? `${rnVersion.major}.${rnVersion.minor}.${rnVersion.patch}` : null,
158
+ bridgeless,
159
+ hermes,
160
+ hermesBytecodeVersion: bytecodeVersion,
161
+ supported,
162
+ blockReason,
163
+ requiresReactHostIntegration: rnVersion ? compare(rnVersion, REACT_HOST_ONLY_RN) >= 0 : false
164
+ };
165
+ return cached;
166
+ }
167
+
168
+ /** Test seam — the detection result is process-lifetime cached. */
169
+ function _resetOtaEnvironmentCache() {
170
+ cached = null;
171
+ }
172
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","MIN_BRIDGELESS_RN","exports","major","minor","patch","REACT_HOST_ONLY_RN","compare","a","b","readRnVersion","v","Platform","constants","reactNativeVersion","readBridgeless","globalThis","RN$Bridgeless","readHermes","h","HermesInternal","hermes","bytecodeVersion","props","getRuntimeProperties","raw","n","Number","isFinite","cached","detectOtaEnvironment","rnVersion","bridgeless","supported","blockReason","rnVersionString","hermesBytecodeVersion","requiresReactHostIntegration","_resetOtaEnvironmentCache"],"sourceRoot":"../../../../src","sources":["features/ota/environment.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HttpStatusError = void 0;
7
+ exports.backoffDelay = backoffDelay;
8
+ exports.isRetryableNetworkError = isRetryableNetworkError;
9
+ exports.retryWithBackoff = retryWithBackoff;
10
+ var _internalLogger = require("../../core/logger/internalLogger");
11
+ /**
12
+ * Retry with exponential backoff and full jitter.
13
+ *
14
+ * ── Why ─────────────────────────────────────────────────────────────────────
15
+ *
16
+ * The OTA path had no retry at all. A download that failed on a flaky mobile
17
+ * connection returned an error and the device then waited for the next cold
18
+ * start to try again — which on a phone is often hours, and on a device that
19
+ * is never fully restarted, effectively never. On mobile networks a single
20
+ * transient failure is the common case, not the exception.
21
+ *
22
+ * Full jitter (`random(0, backoff)` rather than `backoff`) matters more here
23
+ * than in most clients: every device on a release checks in against the same
24
+ * schedule, so a fixed backoff would retry the whole fleet in lockstep and
25
+ * turn one origin blip into a synchronised thundering herd.
26
+ */
27
+
28
+ const DEFAULT_ATTEMPTS = 3;
29
+ const DEFAULT_BASE_DELAY_MS = 1_000;
30
+ const DEFAULT_MAX_DELAY_MS = 30_000;
31
+ const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
32
+
33
+ /** Exposed for tests; `Math.random` is the only nondeterminism in the schedule. */
34
+ function backoffDelay(attemptIndex, baseDelayMs, maxDelayMs, random = Math.random) {
35
+ const exponential = Math.min(maxDelayMs, baseDelayMs * Math.pow(2, attemptIndex));
36
+ return Math.floor(random() * exponential);
37
+ }
38
+
39
+ /**
40
+ * Run `fn`, retrying on failure with exponential backoff.
41
+ * Rethrows the last error once attempts are exhausted.
42
+ */
43
+ async function retryWithBackoff(fn, options = {}) {
44
+ const attempts = options.attempts ?? DEFAULT_ATTEMPTS;
45
+ const baseDelayMs = options.baseDelayMs ?? DEFAULT_BASE_DELAY_MS;
46
+ const maxDelayMs = options.maxDelayMs ?? DEFAULT_MAX_DELAY_MS;
47
+ const label = options.label ?? 'operation';
48
+ const isRetryable = options.isRetryable ?? (() => true);
49
+ let lastError;
50
+ for (let attempt = 0; attempt < attempts; attempt++) {
51
+ try {
52
+ return await fn(attempt);
53
+ } catch (err) {
54
+ lastError = err;
55
+ if (!isRetryable(err)) {
56
+ _internalLogger.logger.debug(`[OTA] ${label} failed with a non-retryable error — not retrying`);
57
+ throw err;
58
+ }
59
+ const isLast = attempt === attempts - 1;
60
+ if (isLast) break;
61
+ const delay = backoffDelay(attempt, baseDelayMs, maxDelayMs);
62
+ _internalLogger.logger.debug(`[OTA] ${label} failed (attempt ${attempt + 1}/${attempts}) — retrying in ${delay}ms`);
63
+ await sleep(delay);
64
+ }
65
+ }
66
+ throw lastError;
67
+ }
68
+
69
+ /**
70
+ * True for failures that a later attempt could plausibly survive.
71
+ *
72
+ * Network errors and 5xx/429 are retryable. A 4xx other than 429 is the server
73
+ * telling us the request itself is wrong — retrying it just wastes battery.
74
+ */
75
+ function isRetryableNetworkError(err) {
76
+ const status = err?.status;
77
+ if (typeof status === 'number') {
78
+ if (status === 429) return true;
79
+ if (status >= 500) return true;
80
+ if (status >= 400) return false;
81
+ }
82
+ // fetch() rejects with a TypeError on DNS failure, connection refused, and
83
+ // airplane mode — all of which are exactly what we want to retry.
84
+ return true;
85
+ }
86
+
87
+ /** Error carrying an HTTP status so `isRetryableNetworkError` can classify it. */
88
+ class HttpStatusError extends Error {
89
+ constructor(message, status) {
90
+ super(message);
91
+ this.status = status;
92
+ this.name = 'HttpStatusError';
93
+ }
94
+ }
95
+ exports.HttpStatusError = HttpStatusError;
96
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_internalLogger","require","DEFAULT_ATTEMPTS","DEFAULT_BASE_DELAY_MS","DEFAULT_MAX_DELAY_MS","sleep","ms","Promise","resolve","setTimeout","backoffDelay","attemptIndex","baseDelayMs","maxDelayMs","random","Math","exponential","min","pow","floor","retryWithBackoff","fn","options","attempts","label","isRetryable","lastError","attempt","err","logger","debug","isLast","delay","isRetryableNetworkError","status","HttpStatusError","Error","constructor","message","name","exports"],"sourceRoot":"../../../../src","sources":["features/ota/retry.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports._resetSignatureWarnings = _resetSignatureWarnings;
7
+ exports.verifyBundleSignature = verifyBundleSignature;
8
+ var _internalLogger = require("../../core/logger/internalLogger");
9
+ /**
10
+ * Bundle signature verification (OTA-03).
11
+ *
12
+ * WHAT WAS WRONG. `ota-signing-key.service.ts` documents the intended model
13
+ * exactly: the CLI generates an ed25519 keypair locally, uploads only the public
14
+ * half, and "the device verifies every bundle's signature before install and
15
+ * rejects forgeries." Two of those three steps did not exist. The CLI had no
16
+ * signing code, and this SDK received `bundle.signature` in the check response
17
+ * and never read it. The only client-side check was SHA-256 against a hash
18
+ * delivered in the same response as the URL — which defends against a corrupted
19
+ * download and nothing else. On a platform whose entire purpose is remote code
20
+ * delivery, that is the control that matters most.
21
+ *
22
+ * WHY IT IS SHAPED LIKE THIS. The SDK ships zero third-party runtime
23
+ * dependencies, and React Native has no built-in ed25519. So verification is
24
+ * delegated to a host-provided verifier when one is installed, and the SDK's job
25
+ * is to decide — unambiguously — what happens when there is not one.
26
+ *
27
+ * THE POLICY, which is the important part:
28
+ *
29
+ * - A bundle carrying a signature, with a configured public key and a
30
+ * verifier: verified. Failure REJECTS the install. This is the goal state.
31
+ * - A bundle carrying a signature, with a public key configured, but no
32
+ * verifier available: REJECT. The app asked for signature enforcement by
33
+ * configuring a key; silently installing unverified code because a helper is
34
+ * missing would turn a security feature into a placebo.
35
+ * - No public key configured: skip, and say so once. Signing is opt-in per app,
36
+ * and an app that has not adopted it must keep working.
37
+ *
38
+ * The failure mode is the whole design: an app that opts in cannot be
39
+ * accidentally downgraded to unverified installs.
40
+ */
41
+
42
+ /** Verifies a detached ed25519 signature. Supplied by the host app. */
43
+
44
+ let warnedNotConfigured = false;
45
+
46
+ /**
47
+ * Decide whether a bundle may be staged.
48
+ *
49
+ * Returns a structured outcome rather than a boolean so the caller can emit a
50
+ * precise telemetry reason — "we shipped unverified code because no key was
51
+ * configured" and "we refused because the signature was forged" are very
52
+ * different operational events and must not collapse into one.
53
+ */
54
+ async function verifyBundleSignature(bundleSha256, signature, config) {
55
+ const publicKey = config?.publicKey;
56
+
57
+ // Signing not adopted by this app — nothing to enforce.
58
+ if (!publicKey) {
59
+ if (!warnedNotConfigured) {
60
+ warnedNotConfigured = true;
61
+ _internalLogger.logger.warn('[OTA] No signing public key configured — bundles are accepted on SHA-256 ' + 'integrity alone. Configure `ota.publicSigningKey` to enforce authenticity.');
62
+ }
63
+ return {
64
+ ok: true,
65
+ reason: 'not_configured'
66
+ };
67
+ }
68
+
69
+ // The app opted in, so a bundle without a signature is a refusal, not a pass.
70
+ if (!signature) {
71
+ _internalLogger.logger.error('[OTA] Bundle has no signature but a signing key is configured — refusing to stage.');
72
+ return {
73
+ ok: false,
74
+ reason: 'missing_signature'
75
+ };
76
+ }
77
+ if (typeof config?.verifier !== 'function') {
78
+ _internalLogger.logger.error('[OTA] A signing key is configured but no signature verifier is available — ' + 'refusing to stage. Provide `ota.verifySignature` so signatures can be checked.');
79
+ return {
80
+ ok: false,
81
+ reason: 'no_verifier'
82
+ };
83
+ }
84
+ try {
85
+ const valid = await config.verifier({
86
+ messageHex: bundleSha256,
87
+ signature,
88
+ publicKey
89
+ });
90
+ if (!valid) {
91
+ _internalLogger.logger.error('[OTA] Bundle signature is INVALID — refusing to stage.');
92
+ return {
93
+ ok: false,
94
+ reason: 'invalid_signature'
95
+ };
96
+ }
97
+ return {
98
+ ok: true,
99
+ reason: 'verified'
100
+ };
101
+ } catch (err) {
102
+ // A throwing verifier is treated as a failed verification, never as a pass.
103
+ _internalLogger.logger.error(`[OTA] Signature verifier threw: ${err?.message ?? err}`);
104
+ return {
105
+ ok: false,
106
+ reason: 'verifier_threw'
107
+ };
108
+ }
109
+ }
110
+
111
+ /** Test seam — resets the once-per-process "not configured" warning. */
112
+ function _resetSignatureWarnings() {
113
+ warnedNotConfigured = false;
114
+ }
115
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_internalLogger","require","warnedNotConfigured","verifyBundleSignature","bundleSha256","signature","config","publicKey","logger","warn","ok","reason","error","verifier","valid","messageHex","err","message","_resetSignatureWarnings"],"sourceRoot":"../../../../src","sources":["features/ota/signature.ts"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAqBA,IAAIC,mBAAmB,GAAG,KAAK;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeC,qBAAqBA,CACzCC,YAAoB,EACpBC,SAA6B,EAC7BC,MAAmC,EACR;EAC3B,MAAMC,SAAS,GAAGD,MAAM,EAAEC,SAAS;;EAEnC;EACA,IAAI,CAACA,SAAS,EAAE;IACd,IAAI,CAACL,mBAAmB,EAAE;MACxBA,mBAAmB,GAAG,IAAI;MAC1BM,sBAAM,CAACC,IAAI,CACT,2EAA2E,GACzE,4EACJ,CAAC;IACH;IACA,OAAO;MAAEC,EAAE,EAAE,IAAI;MAAEC,MAAM,EAAE;IAAiB,CAAC;EAC/C;;EAEA;EACA,IAAI,CAACN,SAAS,EAAE;IACdG,sBAAM,CAACI,KAAK,CACV,oFACF,CAAC;IACD,OAAO;MAAEF,EAAE,EAAE,KAAK;MAAEC,MAAM,EAAE;IAAoB,CAAC;EACnD;EAEA,IAAI,OAAOL,MAAM,EAAEO,QAAQ,KAAK,UAAU,EAAE;IAC1CL,sBAAM,CAACI,KAAK,CACV,6EAA6E,GAC3E,gFACJ,CAAC;IACD,OAAO;MAAEF,EAAE,EAAE,KAAK;MAAEC,MAAM,EAAE;IAAc,CAAC;EAC7C;EAEA,IAAI;IACF,MAAMG,KAAK,GAAG,MAAMR,MAAM,CAACO,QAAQ,CAAC;MAClCE,UAAU,EAAEX,YAAY;MACxBC,SAAS;MACTE;IACF,CAAC,CAAC;IACF,IAAI,CAACO,KAAK,EAAE;MACVN,sBAAM,CAACI,KAAK,CAAC,wDAAwD,CAAC;MACtE,OAAO;QAAEF,EAAE,EAAE,KAAK;QAAEC,MAAM,EAAE;MAAoB,CAAC;IACnD;IACA,OAAO;MAAED,EAAE,EAAE,IAAI;MAAEC,MAAM,EAAE;IAAW,CAAC;EACzC,CAAC,CAAC,OAAOK,GAAQ,EAAE;IACjB;IACAR,sBAAM,CAACI,KAAK,CAAC,mCAAmCI,GAAG,EAAEC,OAAO,IAAID,GAAG,EAAE,CAAC;IACtE,OAAO;MAAEN,EAAE,EAAE,KAAK;MAAEC,MAAM,EAAE;IAAiB,CAAC;EAChD;AACF;;AAEA;AACO,SAASO,uBAAuBA,CAAA,EAAS;EAC9ChB,mBAAmB,GAAG,KAAK;AAC7B","ignoreList":[]}