@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
@@ -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
- /** Mark a campaign as completed (response submitted) — a hard `showOnce` stop. */
62
- markCompleted(campaignId: string, now?: number): void;
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":"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"}
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":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,wFAAwF;AACxF,eAAO,MAAM,qBAAqB,EAAG,CAAU,CAAC;AAIhD,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,IAAI,EACE,OAAO,GACP,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,OAAO,GACP,SAAS,GACT,YAAY,GACZ,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,iFAAiF;AACjF,MAAM,WAAW,YAAY;IACzB,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,SAAS;IACtB,SAAS,CAAC,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,kBAAkB,GACxB,KAAK,GACL,MAAM,GACN,QAAQ,GACR,UAAU,GACV,eAAe,GAGf,gBAAgB,CAAC;AAEvB,MAAM,WAAW,oBAAoB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,qFAAqF;AACrF,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACpB,MAAM,GACN,SAAS,GACT,QAAQ,GACR,OAAO,GACP,MAAM,CAAC;AAEb,mFAAmF;AACnF,MAAM,MAAM,gBAAgB,GACtB,OAAO,GACP,QAAQ,GACR,MAAM,GACN,MAAM,GACN,UAAU,GACV,QAAQ,CAAC;AAEf,8EAA8E;AAC9E,MAAM,MAAM,sBAAsB,GAC5B,WAAW,GACX,KAAK,GACL,QAAQ,GACR,SAAS,CAAC;AAEhB,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAe,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3D,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED,gFAAgF;AAChF,MAAM,WAAW,QAAQ;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IACtC,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnF,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,uFAAuF;IACvF,GAAG,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;IACpD,gEAAgE;IAChE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+DAA+D;IAC/D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;OAcG;IACH,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,uEAAuE;IACvE,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,QAAQ,EAAE,eAAe,CAAC;CAC7B;AAED,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,GAAG,GAAG,GAAG,CAAC;AAEvC,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,eAAe,GAAG,SAAS,GAAG,OAAO,CAAC;IACvG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,IAAI,EAAE,eAAe,CAAC;IACtB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAID,8EAA8E;AAC9E,MAAM,MAAM,mBAAmB,GACzB,YAAY,GACZ,cAAc,GACd,aAAa,GACb,aAAa,GACb,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,WAAW,CAAC;AAElB,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;AAE3E,UAAU,oBAAoB;IAC1B,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GACtB,CAAC,oBAAoB,GAAG;IACtB,UAAU,EAAE,YAAY,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;IAC1E,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC,GACA,CAAC,oBAAoB,GAAG;IACtB,UAAU,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC,GACA,CAAC,oBAAoB,GAAG;IACtB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,UAAU,CAAC;CACtB,CAAC,GACA,CAAC,oBAAoB,GAAG;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;CACzB,CAAC,CAAC;AAEP,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAC7B,0FAA0F;IAC1F,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAClC,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,sFAAsF;AACtF,MAAM,MAAM,eAAe,GACrB;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,gBAAgB,CAAC;CAC7B,GACC;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEN,MAAM,MAAM,uBAAuB,GAAG,CAClC,OAAO,EAAE,gBAAgB,KACxB,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,MAAM,WAAW,oBAAoB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,aAAa,EAAE,kBAAkB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,aAAa;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,GAAG,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC7B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAC/D,mFAAmF;IACnF,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;CACpB;AAMD,oFAAoF;AACpF,MAAM,MAAM,qBAAqB,GAC3B,wBAAwB,GACxB,qBAAqB,GACrB,yBAAyB,GACzB,iBAAiB,GACjB,wBAAwB,CAAC;AAE/B,kFAAkF;AAClF,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,6EAA6E;AAC7E,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAChC;AAED,gFAAgF;AAChF,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACd;AAID,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,OAAO,CAAC;AAE1D,qFAAqF;AACrF,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,mFAAmF;AACnF,MAAM,WAAW,oBAAoB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,6CAA6C;AAC7C,MAAM,WAAW,6BAA6B;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,qGAAqG;AACrG,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAClC,cAAc,EACd,YAAY,GAAG,eAAe,GAAG,UAAU,CAC9C,CAAC;AAEF,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACzB;AAID,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;;OAWG;IACH,IAAI,EACE,YAAY,GACZ,YAAY,GACZ,OAAO,GACP,SAAS,GACT,aAAa,GACb,UAAU,GACV,iBAAiB,GACjB,eAAe,GACf,iBAAiB,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,gGAAgG;AAChG,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAC/B,iBAAiB,EACjB,SAAS,GAAG,eAAe,GAAG,WAAW,CAC5C,CAAC;AAIF,MAAM,WAAW,uBAAuB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,GAAG,KAAK,CAAC;IAC5B,gFAAgF;IAChF,YAAY,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wFAAwF;AACxF,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,GAAG,KAAK,CAAC;IAC5B,YAAY,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,oBAAoB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC/B"}
@@ -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;IAEvE,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;IAoEhC,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
+ {"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
- init(config?: BootGuardConfig): void;
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":"AAIA,OAAO,KAAK,EAAmB,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGtF,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;IAE9C;;OAEG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI;IAepC;;;;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;KACtB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgC7B;;;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;IA8HvB;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAkC/B;;OAEG;IACH,OAAO,IAAI,IAAI;CAUhB;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
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;CAC5B;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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;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"}
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"}