@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.
- package/android/src/main/java/com/scalebun/rn/ota/BundleDownloader.kt +170 -0
- package/android/src/main/java/com/scalebun/rn/ota/ScaleBunOtaModule.kt +160 -12
- package/android/src/main/java/com/scalebun/rn/ota/SlotManager.kt +32 -6
- package/android/src/oldarch/java/com/scalebun/rn/ota/ScaleBunOtaSpec.kt +7 -1
- package/ios/Ota/BundleDownloader.swift +182 -0
- package/ios/Ota/OtaSlotManager.swift +35 -9
- package/ios/Ota/ScaleBunOtaBridge.mm +9 -0
- package/ios/Ota/ScaleBunOtaEventsModule.swift +61 -0
- package/ios/Ota/ScaleBunOtaModule.swift +58 -5
- package/lib/commonjs/bootstrap/SDKBootstrapper.js +22 -0
- package/lib/commonjs/bootstrap/SDKBootstrapper.js.map +1 -1
- package/lib/commonjs/features/crash/CrashFeature.js +18 -0
- package/lib/commonjs/features/crash/CrashFeature.js.map +1 -1
- package/lib/commonjs/features/crash/rejectionHandler.js +123 -0
- package/lib/commonjs/features/crash/rejectionHandler.js.map +1 -0
- package/lib/commonjs/features/engage/EngagePromptProvider.js +4 -2
- package/lib/commonjs/features/engage/EngagePromptProvider.js.map +1 -1
- package/lib/commonjs/features/engage/engageThrottle.js +41 -10
- package/lib/commonjs/features/engage/engageThrottle.js.map +1 -1
- package/lib/commonjs/features/engage/engageTypes.js.map +1 -1
- package/lib/commonjs/features/navigation/AutoScreenDetector.js +53 -10
- package/lib/commonjs/features/navigation/AutoScreenDetector.js.map +1 -1
- package/lib/commonjs/features/ota/OtaOrchestrator.js +515 -20
- package/lib/commonjs/features/ota/OtaOrchestrator.js.map +1 -1
- package/lib/commonjs/features/ota/environment.js +172 -0
- package/lib/commonjs/features/ota/environment.js.map +1 -0
- package/lib/commonjs/features/ota/retry.js +96 -0
- package/lib/commonjs/features/ota/retry.js.map +1 -0
- package/lib/commonjs/features/ota/signature.js +115 -0
- package/lib/commonjs/features/ota/signature.js.map +1 -0
- package/lib/commonjs/features/session/BackendSessionAdapter.js +231 -26
- package/lib/commonjs/features/session/BackendSessionAdapter.js.map +1 -1
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/public/ScaleBunErrorBoundary.js +79 -0
- package/lib/commonjs/public/ScaleBunErrorBoundary.js.map +1 -0
- package/lib/commonjs/specs/NativeScaleBunOta.js.map +1 -1
- package/lib/module/bootstrap/SDKBootstrapper.js +22 -0
- package/lib/module/bootstrap/SDKBootstrapper.js.map +1 -1
- package/lib/module/features/crash/CrashFeature.js +18 -0
- package/lib/module/features/crash/CrashFeature.js.map +1 -1
- package/lib/module/features/crash/rejectionHandler.js +116 -0
- package/lib/module/features/crash/rejectionHandler.js.map +1 -0
- package/lib/module/features/engage/EngagePromptProvider.js +4 -2
- package/lib/module/features/engage/EngagePromptProvider.js.map +1 -1
- package/lib/module/features/engage/engageThrottle.js +41 -10
- package/lib/module/features/engage/engageThrottle.js.map +1 -1
- package/lib/module/features/engage/engageTypes.js.map +1 -1
- package/lib/module/features/navigation/AutoScreenDetector.js +53 -10
- package/lib/module/features/navigation/AutoScreenDetector.js.map +1 -1
- package/lib/module/features/ota/OtaOrchestrator.js +516 -21
- package/lib/module/features/ota/OtaOrchestrator.js.map +1 -1
- package/lib/module/features/ota/environment.js +165 -0
- package/lib/module/features/ota/environment.js.map +1 -0
- package/lib/module/features/ota/retry.js +87 -0
- package/lib/module/features/ota/retry.js.map +1 -0
- package/lib/module/features/ota/signature.js +109 -0
- package/lib/module/features/ota/signature.js.map +1 -0
- package/lib/module/features/session/BackendSessionAdapter.js +230 -26
- package/lib/module/features/session/BackendSessionAdapter.js.map +1 -1
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/public/ScaleBunErrorBoundary.js +70 -0
- package/lib/module/public/ScaleBunErrorBoundary.js.map +1 -0
- package/lib/module/specs/NativeScaleBunOta.js.map +1 -1
- package/lib/typescript/bootstrap/SDKBootstrapper.d.ts.map +1 -1
- package/lib/typescript/features/crash/CrashFeature.d.ts.map +1 -1
- package/lib/typescript/features/crash/rejectionHandler.d.ts +46 -0
- package/lib/typescript/features/crash/rejectionHandler.d.ts.map +1 -0
- package/lib/typescript/features/engage/EngagePromptProvider.d.ts.map +1 -1
- package/lib/typescript/features/engage/engageThrottle.d.ts +24 -4
- package/lib/typescript/features/engage/engageThrottle.d.ts.map +1 -1
- package/lib/typescript/features/engage/engageTypes.d.ts +6 -0
- package/lib/typescript/features/engage/engageTypes.d.ts.map +1 -1
- package/lib/typescript/features/navigation/AutoScreenDetector.d.ts +9 -0
- package/lib/typescript/features/navigation/AutoScreenDetector.d.ts.map +1 -1
- package/lib/typescript/features/ota/OtaOrchestrator.d.ts +67 -1
- package/lib/typescript/features/ota/OtaOrchestrator.d.ts.map +1 -1
- package/lib/typescript/features/ota/OtaTypes.d.ts +42 -0
- package/lib/typescript/features/ota/OtaTypes.d.ts.map +1 -1
- package/lib/typescript/features/ota/environment.d.ts +99 -0
- package/lib/typescript/features/ota/environment.d.ts.map +1 -0
- package/lib/typescript/features/ota/retry.d.ts +53 -0
- package/lib/typescript/features/ota/retry.d.ts.map +1 -0
- package/lib/typescript/features/ota/signature.d.ts +66 -0
- package/lib/typescript/features/ota/signature.d.ts.map +1 -0
- package/lib/typescript/features/session/BackendSessionAdapter.d.ts +93 -2
- package/lib/typescript/features/session/BackendSessionAdapter.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +6 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/public/ScaleBunErrorBoundary.d.ts +44 -0
- package/lib/typescript/public/ScaleBunErrorBoundary.d.ts.map +1 -0
- package/lib/typescript/specs/NativeScaleBunOta.d.ts +11 -0
- package/lib/typescript/specs/NativeScaleBunOta.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/bootstrap/SDKBootstrapper.ts +24 -0
- package/src/features/crash/CrashFeature.ts +19 -0
- package/src/features/crash/rejectionHandler.ts +134 -0
- package/src/features/engage/EngagePromptProvider.tsx +4 -2
- package/src/features/engage/engageThrottle.ts +44 -6
- package/src/features/engage/engageTypes.ts +6 -0
- package/src/features/navigation/AutoScreenDetector.ts +59 -4
- package/src/features/ota/OtaOrchestrator.ts +594 -23
- package/src/features/ota/OtaTypes.ts +56 -0
- package/src/features/ota/environment.ts +199 -0
- package/src/features/ota/retry.ts +123 -0
- package/src/features/ota/signature.ts +123 -0
- package/src/features/session/BackendSessionAdapter.ts +233 -25
- package/src/index.ts +6 -0
- package/src/public/ScaleBunErrorBoundary.tsx +79 -0
- package/src/specs/NativeScaleBunOta.ts +12 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capture UNHANDLED PROMISE REJECTIONS.
|
|
3
|
+
*
|
|
4
|
+
* THE GAP THIS CLOSES
|
|
5
|
+
* `ErrorUtils.setGlobalHandler` (see ./globalHandler) catches uncaught *throws* and nothing else. A
|
|
6
|
+
* rejected promise with no `.catch()` does not pass through it — React Native routes those to its own
|
|
7
|
+
* rejection tracker, which prints a LogBox warning in development and does nothing whatsoever in
|
|
8
|
+
* production. So `await doThing()` with no catch was reported by the WEB SDK (which listens for
|
|
9
|
+
* `unhandledrejection`) and silently lost on mobile. Same product, same mistake in the host's code,
|
|
10
|
+
* one platform reporting it — the cross-SDK asymmetry CLAUDE.md §2 exists to catch.
|
|
11
|
+
*
|
|
12
|
+
* WHY `require`, GUARDED, AND NOT AN IMPORT
|
|
13
|
+
* `promise/setimmediate/rejection-tracking` is React Native's own tracker: it arrives with
|
|
14
|
+
* react-native in any real app, and adding it to this package's dependencies would put a third-party
|
|
15
|
+
* runtime dep into the SDK for something the platform already ships. It is therefore resolved at
|
|
16
|
+
* runtime and treated as optional — the same shape as `globalHandler`'s `ErrorUtils` feature-detect,
|
|
17
|
+
* for the same reason. When it cannot be resolved this logs once and no-ops; nothing throws.
|
|
18
|
+
*
|
|
19
|
+
* ⚠️ `enable()` REPLACES the current handlers — it does not chain, and the module exposes no way to
|
|
20
|
+
* read the previous ones. Calling it therefore takes over from React Native's own dev-mode warning,
|
|
21
|
+
* so this re-emits that warning itself under `__DEV__`. Without it, installing the SDK would make
|
|
22
|
+
* unhandled rejections *quieter* in development than they were before, which is a poor trade for
|
|
23
|
+
* catching them in production.
|
|
24
|
+
*/
|
|
25
|
+
/** The slice of `promise/setimmediate/rejection-tracking` this uses. */
|
|
26
|
+
export interface RejectionTracker {
|
|
27
|
+
enable(options: {
|
|
28
|
+
allRejections: boolean;
|
|
29
|
+
onUnhandled: (id: number, error: unknown) => void;
|
|
30
|
+
onHandled: (id: number) => void;
|
|
31
|
+
}): void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Install the unhandled-rejection handler.
|
|
35
|
+
*
|
|
36
|
+
* @returns true when the tracker was available and handlers were installed.
|
|
37
|
+
*/
|
|
38
|
+
export declare function installRejectionHandler(onRejection: (error: Error) => void, deps?: {
|
|
39
|
+
resolveTracker?: () => RejectionTracker | null;
|
|
40
|
+
isDev?: boolean;
|
|
41
|
+
}): boolean;
|
|
42
|
+
/** Test seam — number of reported-and-not-yet-handled rejections. */
|
|
43
|
+
export declare function __pendingRejectionCount(): number;
|
|
44
|
+
/** Test seam — clear state between cases. */
|
|
45
|
+
export declare function __resetRejectionsForTests(): void;
|
|
46
|
+
//# sourceMappingURL=rejectionHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rejectionHandler.d.ts","sourceRoot":"","sources":["../../../../src/features/crash/rejectionHandler.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,OAAO,EAAE;QACZ,aAAa,EAAE,OAAO,CAAC;QACvB,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAClD,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;KACnC,GAAG,IAAI,CAAC;CACZ;AAuBD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACnC,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EACnC,IAAI,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3E,OAAO,CA+CT;AAYD,qEAAqE;AACrE,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,6CAA6C;AAC7C,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngagePromptProvider.d.ts","sourceRoot":"","sources":["../../../../src/features/engage/EngagePromptProvider.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EngagePromptProvider.d.ts","sourceRoot":"","sources":["../../../../src/features/engage/EngagePromptProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,17 @@ export interface CampaignThrottleState {
|
|
|
37
37
|
*/
|
|
38
38
|
export declare class EngageThrottleStore {
|
|
39
39
|
private readonly backend;
|
|
40
|
+
/**
|
|
41
|
+
* Shows in THIS session, backing `maxImpressionsPerSession`.
|
|
42
|
+
*
|
|
43
|
+
* Deliberately in-memory rather than persisted: on mobile a session is an app run, and this
|
|
44
|
+
* store is constructed once per provider mount, so the map's lifetime already is the session's.
|
|
45
|
+
* Persisting it would outlive the session it is meant to bound.
|
|
46
|
+
*/
|
|
47
|
+
private readonly sessionShows;
|
|
40
48
|
constructor(backend?: StorageBackend);
|
|
49
|
+
/** How many times this surface has been shown in the current session. */
|
|
50
|
+
sessionShowCount(campaignId: string): number;
|
|
41
51
|
private keyFor;
|
|
42
52
|
/** Read the persisted state for a campaign (zeroed default when absent). */
|
|
43
53
|
get(campaignId: string): CampaignThrottleState;
|
|
@@ -58,21 +68,31 @@ export declare class EngageThrottleStore {
|
|
|
58
68
|
* campaign's content never inherits the old cap.
|
|
59
69
|
*/
|
|
60
70
|
recordImpression(campaignId: string, now?: number, revision?: string): void;
|
|
61
|
-
/**
|
|
62
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Mark a campaign as completed (response submitted, or an in-app message closed) — a hard stop.
|
|
73
|
+
*
|
|
74
|
+
* The `revision` MUST be carried through. This wrote the record without one, which silently
|
|
75
|
+
* disabled the revision check in `passesThrottle` for the rest of that campaign's life on the
|
|
76
|
+
* device: that check only fires when BOTH the live config and the stored state carry a revision,
|
|
77
|
+
* so a state stamped `undefined` can never be invalidated. The result was the exact opposite of
|
|
78
|
+
* the web bug — once a user closed an in-app message, editing the campaign could never bring the
|
|
79
|
+
* new version back to them. Callers that know the served revision pass it; legacy callers that
|
|
80
|
+
* don't keep whatever was already stored rather than erasing it.
|
|
81
|
+
*/
|
|
82
|
+
markCompleted(campaignId: string, now?: number, revision?: string): void;
|
|
63
83
|
}
|
|
64
84
|
/**
|
|
65
85
|
* Decide whether a single campaign is eligible to show right now, given its
|
|
66
86
|
* `throttle` rules and the persisted impression state. Pure: no side effects.
|
|
67
87
|
*/
|
|
68
|
-
export declare function isCampaignEligible(campaign: EngageCampaignConfig, state: CampaignThrottleState, now?: number): boolean;
|
|
88
|
+
export declare function isCampaignEligible(campaign: EngageCampaignConfig, state: CampaignThrottleState, now?: number, sessionShows?: number): boolean;
|
|
69
89
|
/**
|
|
70
90
|
* Decide whether a single in-app message is eligible to show right now. In-app
|
|
71
91
|
* messages have no `enabled` flag (the config-serve lane only returns active ones,
|
|
72
92
|
* §2.4) — eligibility is purely the SHARED throttle/frequency-cap rules. So an
|
|
73
93
|
* impression-capped message is never re-shown, exactly like a campaign.
|
|
74
94
|
*/
|
|
75
|
-
export declare function isInAppEligible(message: InAppMessageConfig, state: CampaignThrottleState, now?: number): boolean;
|
|
95
|
+
export declare function isInAppEligible(message: InAppMessageConfig, state: CampaignThrottleState, now?: number, sessionShows?: number): boolean;
|
|
76
96
|
/**
|
|
77
97
|
* Pick the FIRST eligible campaign from a config payload, optionally filtered by
|
|
78
98
|
* a campaign type whitelist (e.g. `['NPS']` for the NPS-first slice) and/or a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engageThrottle.d.ts","sourceRoot":"","sources":["../../../../src/features/engage/engageThrottle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,KAAK,EACR,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,cAAc,EAEjB,MAAM,eAAe,CAAC;AAEvB,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IAClC,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;
|
|
1
|
+
{"version":3,"file":"engageThrottle.d.ts","sourceRoot":"","sources":["../../../../src/features/engage/engageThrottle.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,12 @@ export interface Throttle {
|
|
|
53
53
|
showOnce?: boolean;
|
|
54
54
|
cooldownHours?: number;
|
|
55
55
|
maxImpressions?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Cap WITHIN one session (one app run), independent of the lifetime caps above. The in-app
|
|
58
|
+
* builder writes this on every campaign and `deriveInAppMirror` now carries it to the wire, so
|
|
59
|
+
* ignoring it here would be offering an authoring control that does nothing on this platform.
|
|
60
|
+
*/
|
|
61
|
+
maxImpressionsPerSession?: number;
|
|
56
62
|
samplePct?: number;
|
|
57
63
|
}
|
|
58
64
|
export type EngageCampaignType = 'NPS' | 'CSAT' | 'CUSTOM' | 'FEEDBACK' | 'RATING_PROMPT' | 'RATINGS_PROMPT';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engageTypes.d.ts","sourceRoot":"","sources":["../../../../src/features/engage/engageTypes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engageTypes.d.ts","sourceRoot":"","sources":["../../../../src/features/engage/engageTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,8 @@ export declare class AutoScreenDetector {
|
|
|
37
37
|
private _started;
|
|
38
38
|
private _lastEmittedScreen;
|
|
39
39
|
private _navDebounceTimer;
|
|
40
|
+
/** Whether the React Navigation exports were actually replaced — see _autoHookReactNavigation. */
|
|
41
|
+
private _autoHookInstalled;
|
|
40
42
|
/** Cooldown: after manual screen is set, suppress auto-detection for this duration */
|
|
41
43
|
private static MANUAL_COOLDOWN_MS;
|
|
42
44
|
/** Heuristic polling interval */
|
|
@@ -104,6 +106,13 @@ export declare class AutoScreenDetector {
|
|
|
104
106
|
* changes (→ SessionManager SCREEN_VIEW + navigation-triggered frames).
|
|
105
107
|
*/
|
|
106
108
|
private _autoHookReactNavigation;
|
|
109
|
+
/**
|
|
110
|
+
* Did the zero-config hook actually take effect?
|
|
111
|
+
*
|
|
112
|
+
* Exposed because "we tried" and "it worked" were previously the same observable state, and the
|
|
113
|
+
* difference between them is every screen name in the product.
|
|
114
|
+
*/
|
|
115
|
+
isAutoHookInstalled(): boolean;
|
|
107
116
|
/** Stop auto-detection and clean up */
|
|
108
117
|
stop(): void;
|
|
109
118
|
/** Teardown completely (reset singleton) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoScreenDetector.d.ts","sourceRoot":"","sources":["../../../../src/features/navigation/AutoScreenDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,UAAU,oBAAoB;IAC1B,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,IAAI,CAAC;CACzE;AAeD;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,iBAAiB,CAA8C;
|
|
1
|
+
{"version":3,"file":"AutoScreenDetector.d.ts","sourceRoot":"","sources":["../../../../src/features/navigation/AutoScreenDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,UAAU,oBAAoB;IAC1B,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,IAAI,CAAC;CACzE;AAeD;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,iBAAiB,CAA8C;IACvE,kGAAkG;IAClG,OAAO,CAAC,kBAAkB,CAAS;IAEnC,sFAAsF;IACtF,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAQ;IACzC,iCAAiC;IACjC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAQ;IAExC,MAAM,CAAC,WAAW,IAAI,kBAAkB;IASxC,6CAA6C;IAC7C,cAAc,CAAC,EAAE,EAAE,oBAAoB,GAAG,MAAM,IAAI;IAUpD;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQnC;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWnC;;;OAGG;IACH,oBAAoB,IAAI,OAAO;IAQ/B;;;;;OAKG;IACH,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAWhC,OAAO,CAAC,uBAAuB;IA+D/B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAmC9B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAwBhC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAqB3B,wCAAwC;IACxC,KAAK,IAAI,IAAI;IAQb;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,wBAAwB;IA+GhC;;;;;OAKG;IACH,mBAAmB,IAAI,OAAO;IAI9B,uCAAuC;IACvC,IAAI,IAAI,IAAI;IAmBZ,4CAA4C;IAC5C,QAAQ,IAAI,IAAI;IAShB,6CAA6C;IAC7C,gBAAgB,IAAI,MAAM,GAAG,IAAI;IASjC,OAAO,CAAC,iBAAiB;CAa5B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { OtaCheckResponse, OtaBundlePayload } from './OtaTypes';
|
|
2
|
+
import { type SignatureConfig } from './signature';
|
|
2
3
|
export interface SyncResult {
|
|
3
4
|
status: 'UP_TO_DATE' | 'UPDATE_INSTALLED' | 'ROLLED_BACK' | 'ERROR';
|
|
4
5
|
bundle?: OtaBundlePayload;
|
|
@@ -25,10 +26,48 @@ export declare class OtaOrchestrator {
|
|
|
25
26
|
private isRestartRequiredState;
|
|
26
27
|
private healthyTimer;
|
|
27
28
|
private bootGuardConfig;
|
|
29
|
+
private signatureConfig;
|
|
30
|
+
private environment;
|
|
31
|
+
/** One-time boot checks have run in this process (init is idempotent). */
|
|
32
|
+
private initialized;
|
|
33
|
+
private storageBackend;
|
|
28
34
|
/**
|
|
29
35
|
* Initialize the orchestrator. Checks for boot-guard recovery state.
|
|
36
|
+
*
|
|
37
|
+
* `signature` is optional: an app that has not adopted signing keeps working
|
|
38
|
+
* on SHA-256 integrity alone. Once a public key IS configured, a bundle that
|
|
39
|
+
* cannot be verified is refused rather than installed (OTA-03).
|
|
40
|
+
*/
|
|
41
|
+
init(config?: BootGuardConfig & {
|
|
42
|
+
signature?: SignatureConfig;
|
|
43
|
+
}): void;
|
|
44
|
+
/**
|
|
45
|
+
* Read the active slot back into `currentBundle` so the next check reports
|
|
46
|
+
* what this device is genuinely running.
|
|
47
|
+
*/
|
|
48
|
+
private hydrateCurrentBundleFromSlots;
|
|
49
|
+
/**
|
|
50
|
+
* Compare the bundle the slot manager believes is active against the identity
|
|
51
|
+
* marker compiled into the bundle that actually loaded.
|
|
52
|
+
*
|
|
53
|
+
* A mismatch means the install path reported success while the runtime kept
|
|
54
|
+
* executing different code — the silent no-op this whole guard exists for.
|
|
55
|
+
* It is reported as APPLY_FAILED, because that is what happened, regardless
|
|
56
|
+
* of what the previous session's telemetry claimed.
|
|
57
|
+
*
|
|
58
|
+
* The expectation recorded at install time is what makes this conclusive.
|
|
59
|
+
* Without it, a missing marker is ambiguous — it could be a bundle published
|
|
60
|
+
* before markers existed, or an install that never took effect. Having
|
|
61
|
+
* written down "this bundle definitely carries marker X" before restarting,
|
|
62
|
+
* a missing marker afterwards can only mean the second.
|
|
30
63
|
*/
|
|
31
|
-
|
|
64
|
+
private verifyRunningBundleIdentity;
|
|
65
|
+
private static readonly INSTALL_EXPECTATION_KEY;
|
|
66
|
+
private recordInstallExpectation;
|
|
67
|
+
private readInstallRecord;
|
|
68
|
+
private readInstallExpectation;
|
|
69
|
+
private clearInstallExpectation;
|
|
70
|
+
private storage;
|
|
32
71
|
/**
|
|
33
72
|
* Sprint 5 (S5-NAT-1): Check if the native boot guard reverted us on this cold start.
|
|
34
73
|
* If getSlotState() shows bootMarkerPresent=false but we have a 'previous' slot
|
|
@@ -46,6 +85,10 @@ export declare class OtaOrchestrator {
|
|
|
46
85
|
appVersion: string;
|
|
47
86
|
installationId: string;
|
|
48
87
|
channelName?: string;
|
|
88
|
+
country?: string;
|
|
89
|
+
attributes?: Record<string, string | number>;
|
|
90
|
+
segmentIds?: string[];
|
|
91
|
+
lifecycleStage?: string;
|
|
49
92
|
}): Promise<OtaCheckResponse>;
|
|
50
93
|
/**
|
|
51
94
|
* Downloads, stage, and apply an update in one step.
|
|
@@ -67,8 +110,31 @@ export declare class OtaOrchestrator {
|
|
|
67
110
|
* marker stays set and native code reverts on next cold start.
|
|
68
111
|
*/
|
|
69
112
|
private startBootGuardHeartbeat;
|
|
113
|
+
/** One-shot guard so repeated syncs cannot stack resume listeners. */
|
|
114
|
+
private resumeRestartArmed;
|
|
115
|
+
/**
|
|
116
|
+
* ON_NEXT_RESUME: restart the JS runtime the next time the app returns to
|
|
117
|
+
* the foreground after genuinely being in the background.
|
|
118
|
+
*
|
|
119
|
+
* The staged bundle is already applied at this point — the restart is purely
|
|
120
|
+
* about WHEN the user experiences the reload. Two deliberate choices:
|
|
121
|
+
*
|
|
122
|
+
* - Armed only after a real background→active transition, never on the
|
|
123
|
+
* initial 'active' state, so installing while the user is mid-session
|
|
124
|
+
* does not instantly yank the screen out from under them.
|
|
125
|
+
* - One-shot. The listener removes itself after firing (or after the
|
|
126
|
+
* restart makes the whole question moot).
|
|
127
|
+
*/
|
|
128
|
+
private armResumeRestart;
|
|
70
129
|
/**
|
|
71
130
|
* Reload the JS app bundle to apply the new update immediately.
|
|
131
|
+
*
|
|
132
|
+
* Order matters: the native `restartApp()` is the only path that works in
|
|
133
|
+
* RELEASE builds. `DevSettings.reload()` looks callable there too — it
|
|
134
|
+
* logged, returned, and reloaded nothing when tested live on a release APK,
|
|
135
|
+
* which made every "restart" this SDK ever promised a silent no-op in
|
|
136
|
+
* production. DevSettings remains as the dev-build fallback for hosts that
|
|
137
|
+
* have not rebuilt native yet.
|
|
72
138
|
*/
|
|
73
139
|
restart(): void;
|
|
74
140
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtaOrchestrator.d.ts","sourceRoot":"","sources":["../../../../src/features/ota/OtaOrchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OtaOrchestrator.d.ts","sourceRoot":"","sources":["../../../../src/features/ota/OtaOrchestrator.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAmB,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEtF,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAyH1E,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,OAAO,CAAC;IACpE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,WAAW,CAA+B;IAClD,0EAA0E;IAC1E,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAA+B;IAErD;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG;QAAE,SAAS,CAAC,EAAE,eAAe,CAAA;KAAE,GAAG,IAAI;IA4EtE;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAoCrC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,2BAA2B;IAsDnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAiC;IAEhF,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,OAAO;IAKf;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAkB9B,SAAS,IAAI,OAAO;IAIpB,iBAAiB,IAAI,OAAO;IAI5B;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE;QAClC,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QAC7C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8D7B;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,GAAG,OAAO,CAAC,UAAU,CAAC;IAoPvB;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAkC/B,sEAAsE;IACtE,OAAO,CAAC,kBAAkB,CAAS;IAEnC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;;;;;;;;OASG;IACH,OAAO,IAAI,IAAI;CAYhB;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -12,6 +12,29 @@ export interface OtaCheckRequest {
|
|
|
12
12
|
installationId: string;
|
|
13
13
|
currentBundleId?: string;
|
|
14
14
|
currentBundleHash?: string;
|
|
15
|
+
/** Channel to pull from. Omitted means `default`. */
|
|
16
|
+
channelName?: string;
|
|
17
|
+
/** ISO 3166-1 alpha-2. The server fills this from the edge when absent. */
|
|
18
|
+
country?: string;
|
|
19
|
+
/** Free-form device attributes evaluated by ATTRIBUTE rules. */
|
|
20
|
+
attributes?: Record<string, string | number>;
|
|
21
|
+
/** CDP segment ids this installation belongs to. */
|
|
22
|
+
segmentIds?: string[];
|
|
23
|
+
/** Lifecycle stage (e.g. 'onboarding', 'activated', 'churned'). */
|
|
24
|
+
lifecycleStage?: string;
|
|
25
|
+
/** React Native version of the host binary, e.g. `"0.81.5"`. */
|
|
26
|
+
rnVersion?: string;
|
|
27
|
+
/** True when the JS engine is Hermes. */
|
|
28
|
+
hermes?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Hermes bytecode (HBC) format version of the running engine. Independent of
|
|
31
|
+
* the RN release number. A mismatch either fails to load outright ("Wrong
|
|
32
|
+
* bytecode version. Expected 96 but got 98") or — worse — loads and crashes
|
|
33
|
+
* later on a path the older runtime does not expose.
|
|
34
|
+
*/
|
|
35
|
+
hermesBytecodeVersion?: number;
|
|
36
|
+
/** True when running the New Architecture's bridgeless runtime. */
|
|
37
|
+
bridgeless?: boolean;
|
|
15
38
|
}
|
|
16
39
|
export interface OtaCheckResponse {
|
|
17
40
|
action: 'NONE' | 'DOWNLOAD' | 'ROLLBACK';
|
|
@@ -25,8 +48,27 @@ export interface OtaBundlePayload {
|
|
|
25
48
|
sha256: string;
|
|
26
49
|
signature?: string;
|
|
27
50
|
isMandatory: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* How to activate the bundle after install:
|
|
53
|
+
* ON_NEXT_RESTART — nothing to do now; next cold start loads it (default)
|
|
54
|
+
* ON_NEXT_RESUME — restart the JS runtime when the app next returns to
|
|
55
|
+
* the foreground after a background stay
|
|
56
|
+
* IMMEDIATE — restart the JS runtime right after install
|
|
57
|
+
* Absent means ON_NEXT_RESTART, which is what every pre-installMode release
|
|
58
|
+
* actually did.
|
|
59
|
+
*/
|
|
60
|
+
installMode?: 'ON_NEXT_RESTART' | 'ON_NEXT_RESUME' | 'IMMEDIATE';
|
|
28
61
|
releaseNote?: string;
|
|
29
62
|
patch?: OtaPatchPayload;
|
|
63
|
+
/**
|
|
64
|
+
* Identity marker compiled into this bundle at publish time.
|
|
65
|
+
*
|
|
66
|
+
* Recorded at install; compared after restart against the marker the RUNNING
|
|
67
|
+
* bundle carries. Its PRESENCE is the important part — knowing a bundle
|
|
68
|
+
* definitely has a marker is what turns "no marker after restart" from
|
|
69
|
+
* ambiguous into proof that the install never took effect.
|
|
70
|
+
*/
|
|
71
|
+
identityToken?: string;
|
|
30
72
|
}
|
|
31
73
|
export interface OtaPatchPayload {
|
|
32
74
|
url: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtaTypes.d.ts","sourceRoot":"","sources":["../../../../src/features/ota/OtaTypes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"OtaTypes.d.ts","sourceRoot":"","sources":["../../../../src/features/ota/OtaTypes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAS3B,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC7C,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IAOxB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mEAAmE;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;IACzC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,WAAW,CAAC;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,kBAAkB,GAClB,mBAAmB,GACnB,WAAW,GACX,cAAc,GACd,eAAe,GACf,iBAAiB,CAAC;AAEtB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OTA runtime environment detection.
|
|
3
|
+
*
|
|
4
|
+
* ── Why this file exists ────────────────────────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* Our Android OTA resolves the active bundle through
|
|
7
|
+
* `MainApplication.getJSBundleFile()`. That is a *bridge-mode* API.
|
|
8
|
+
*
|
|
9
|
+
* Under the New Architecture (bridgeless), the app is built by
|
|
10
|
+
* `DefaultReactHost` instead — and until React Native 0.76.1,
|
|
11
|
+
* `DefaultReactNativeHost.toReactHost()` never forwarded `jsBundleFile`:
|
|
12
|
+
*
|
|
13
|
+
* // RN 0.74.1 — DefaultReactNativeHost.kt
|
|
14
|
+
* public fun toReactHost(context: Context): ReactHost =
|
|
15
|
+
* DefaultReactHost.getDefaultReactHost(
|
|
16
|
+
* context, packages, jsMainModuleName,
|
|
17
|
+
* bundleAssetName ?: "index", // <- jsBundleFile is NEVER passed
|
|
18
|
+
* isHermesEnabled ?: true)
|
|
19
|
+
*
|
|
20
|
+
* // RN 0.74.1 — DefaultReactHost.kt
|
|
21
|
+
* val jsBundleLoader =
|
|
22
|
+
* JSBundleLoader.createAssetLoader(context, "assets://$jsBundleAssetPath", true)
|
|
23
|
+
*
|
|
24
|
+
* The loader is hardcoded to the APK asset. `getJSBundleFile()` is never
|
|
25
|
+
* consulted, so an update stages, applies, reports INSTALLED, restarts — and
|
|
26
|
+
* the app loads the bundle baked into the APK. Every signal says success and
|
|
27
|
+
* nothing happened. This is the same failure that killed CodePush on modern RN.
|
|
28
|
+
*
|
|
29
|
+
* Fixed upstream in 0.76.1 (`jsBundleFile` is threaded through). Verified
|
|
30
|
+
* present in 0.81.5.
|
|
31
|
+
*
|
|
32
|
+
* We refuse to run rather than pretend to work. A loud failure at startup is
|
|
33
|
+
* recoverable; a silent no-op that reports success is not — it corrupts the
|
|
34
|
+
* adoption metrics, the guard thresholds, and every rollout decision made
|
|
35
|
+
* from them.
|
|
36
|
+
*/
|
|
37
|
+
/** First React Native version where bridgeless honours `getJSBundleFile()`. */
|
|
38
|
+
export declare const MIN_BRIDGELESS_RN: {
|
|
39
|
+
readonly major: 0;
|
|
40
|
+
readonly minor: 76;
|
|
41
|
+
readonly patch: 1;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* React Native 0.82 REMOVED `ReactNativeHost`. The New Architecture became
|
|
45
|
+
* mandatory and `newArchEnabled=false` was withdrawn, so the legacy
|
|
46
|
+
* `override fun getJSBundleFile()` integration does not merely stop working —
|
|
47
|
+
* it does not compile. From 0.82 the only correct integration is passing
|
|
48
|
+
* `jsBundleFilePath` straight to `getDefaultReactHost(...)`.
|
|
49
|
+
*
|
|
50
|
+
* We cannot see which integration a host app used, so this is not a block. It
|
|
51
|
+
* drives a startup hint, and the post-restart identity check is what actually
|
|
52
|
+
* catches a host that got it wrong.
|
|
53
|
+
*/
|
|
54
|
+
export declare const REACT_HOST_ONLY_RN: {
|
|
55
|
+
readonly major: 0;
|
|
56
|
+
readonly minor: 82;
|
|
57
|
+
readonly patch: 0;
|
|
58
|
+
};
|
|
59
|
+
export interface RnVersion {
|
|
60
|
+
major: number;
|
|
61
|
+
minor: number;
|
|
62
|
+
patch: number;
|
|
63
|
+
}
|
|
64
|
+
export interface OtaEnvironment {
|
|
65
|
+
/** Parsed React Native version, or null when it could not be determined. */
|
|
66
|
+
rnVersion: RnVersion | null;
|
|
67
|
+
/** `"0.76.1"`, or null. Sent to the backend for compatibility gating. */
|
|
68
|
+
rnVersionString: string | null;
|
|
69
|
+
/** True when running on the New Architecture's bridgeless runtime. */
|
|
70
|
+
bridgeless: boolean;
|
|
71
|
+
/** True when the JS engine is Hermes. */
|
|
72
|
+
hermes: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Hermes bytecode (HBC) format version of the *running* engine. This is the
|
|
75
|
+
* file-format compatibility number, NOT a React Native release number — the
|
|
76
|
+
* two move independently. A bundle compiled by a different hermesc can be
|
|
77
|
+
* rejected outright ("Wrong bytecode version. Expected 96 but got 98") or,
|
|
78
|
+
* worse, load fine and crash later on a path the older runtime lacks.
|
|
79
|
+
*/
|
|
80
|
+
hermesBytecodeVersion: number | null;
|
|
81
|
+
/** False when OTA cannot work on this runtime and must not be enabled. */
|
|
82
|
+
supported: boolean;
|
|
83
|
+
/** Human-readable explanation when `supported` is false. */
|
|
84
|
+
blockReason: string | null;
|
|
85
|
+
/**
|
|
86
|
+
* True on RN >= 0.82, where `ReactNativeHost` no longer exists and the only
|
|
87
|
+
* valid integration is `getDefaultReactHost(..., jsBundleFilePath = …)`.
|
|
88
|
+
* Used to make the startup diagnostic name the right fix.
|
|
89
|
+
*/
|
|
90
|
+
requiresReactHostIntegration: boolean;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Detect the runtime environment and decide whether OTA can function at all.
|
|
94
|
+
* Result is cached — none of these values change during a process lifetime.
|
|
95
|
+
*/
|
|
96
|
+
export declare function detectOtaEnvironment(): OtaEnvironment;
|
|
97
|
+
/** Test seam — the detection result is process-lifetime cached. */
|
|
98
|
+
export declare function _resetOtaEnvironmentCache(): void;
|
|
99
|
+
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../src/features/ota/environment.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB;;;;CAA6C,CAAC;AAE5E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB;;;;CAA6C,CAAC;AAE7E,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,yEAAyE;IACzE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,sEAAsE;IACtE,UAAU,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,0EAA0E;IAC1E,SAAS,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;OAIG;IACH,4BAA4B,EAAE,OAAO,CAAC;CACvC;AA4DD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAyCrD;AAED,mEAAmE;AACnE,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retry with exponential backoff and full jitter.
|
|
3
|
+
*
|
|
4
|
+
* ── Why ─────────────────────────────────────────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* The OTA path had no retry at all. A download that failed on a flaky mobile
|
|
7
|
+
* connection returned an error and the device then waited for the next cold
|
|
8
|
+
* start to try again — which on a phone is often hours, and on a device that
|
|
9
|
+
* is never fully restarted, effectively never. On mobile networks a single
|
|
10
|
+
* transient failure is the common case, not the exception.
|
|
11
|
+
*
|
|
12
|
+
* Full jitter (`random(0, backoff)` rather than `backoff`) matters more here
|
|
13
|
+
* than in most clients: every device on a release checks in against the same
|
|
14
|
+
* schedule, so a fixed backoff would retry the whole fleet in lockstep and
|
|
15
|
+
* turn one origin blip into a synchronised thundering herd.
|
|
16
|
+
*/
|
|
17
|
+
export interface RetryOptions {
|
|
18
|
+
/** Total attempts including the first. Default 3. */
|
|
19
|
+
attempts?: number;
|
|
20
|
+
/** Base delay in ms for the first backoff. Default 1000. */
|
|
21
|
+
baseDelayMs?: number;
|
|
22
|
+
/** Upper bound on any single delay. Default 30_000. */
|
|
23
|
+
maxDelayMs?: number;
|
|
24
|
+
/** Label used in log lines. */
|
|
25
|
+
label?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Decides whether a given failure is worth retrying. Default: retry
|
|
28
|
+
* everything. Callers should pass a predicate that returns false for
|
|
29
|
+
* failures that will never succeed on a retry (4xx, hash mismatch), so a
|
|
30
|
+
* device does not burn battery re-requesting something already rejected.
|
|
31
|
+
*/
|
|
32
|
+
isRetryable?: (err: unknown) => boolean;
|
|
33
|
+
}
|
|
34
|
+
/** Exposed for tests; `Math.random` is the only nondeterminism in the schedule. */
|
|
35
|
+
export declare function backoffDelay(attemptIndex: number, baseDelayMs: number, maxDelayMs: number, random?: () => number): number;
|
|
36
|
+
/**
|
|
37
|
+
* Run `fn`, retrying on failure with exponential backoff.
|
|
38
|
+
* Rethrows the last error once attempts are exhausted.
|
|
39
|
+
*/
|
|
40
|
+
export declare function retryWithBackoff<T>(fn: (attempt: number) => Promise<T>, options?: RetryOptions): Promise<T>;
|
|
41
|
+
/**
|
|
42
|
+
* True for failures that a later attempt could plausibly survive.
|
|
43
|
+
*
|
|
44
|
+
* Network errors and 5xx/429 are retryable. A 4xx other than 429 is the server
|
|
45
|
+
* telling us the request itself is wrong — retrying it just wastes battery.
|
|
46
|
+
*/
|
|
47
|
+
export declare function isRetryableNetworkError(err: unknown): boolean;
|
|
48
|
+
/** Error carrying an HTTP status so `isRetryableNetworkError` can classify it. */
|
|
49
|
+
export declare class HttpStatusError extends Error {
|
|
50
|
+
readonly status: number;
|
|
51
|
+
constructor(message: string, status: number);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../../src/features/ota/retry.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;CACzC;AAQD,mFAAmF;AACnF,wBAAgB,YAAY,CAC1B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAM,MAAoB,GACjC,MAAM,CAGR;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EACnC,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,CAAC,CAAC,CAgCZ;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAU7D;AAED,kFAAkF;AAClF,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,MAAM,EAAE,MAAM;gBAD9B,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM;CAKjC"}
|