zixflow-reactnative 1.1.2 → 1.1.4

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 (249) hide show
  1. package/README.md +2224 -322
  2. package/android/build.gradle +18 -1
  3. package/android/consumer-rules.pro +3 -2
  4. package/android/gradle.properties +1 -1
  5. package/android/src/main/java/com/zixflow/reactnative/sdk/NativeZixflowModule.kt +69 -24
  6. package/android/src/main/java/com/zixflow/reactnative/sdk/ZixflowReactNativePackage.kt +25 -1
  7. package/android/src/main/java/com/zixflow/reactnative/sdk/constant/Keys.kt +19 -3
  8. package/android/src/main/java/com/zixflow/reactnative/sdk/geofence/NativeGeofenceModule.kt +65 -0
  9. package/android/src/main/java/com/zixflow/reactnative/sdk/liveactivities/NativeLiveActivitiesModule.kt +310 -0
  10. package/android/src/main/java/com/zixflow/reactnative/sdk/logging/NativeZixflowLoggingModule.kt +2 -2
  11. package/android/src/main/java/com/zixflow/reactnative/sdk/messaginginapp/NativeMessagingInAppModule.kt +149 -10
  12. package/android/src/main/java/com/zixflow/reactnative/sdk/messaginginapp/ReactInboxEventListener.kt +99 -0
  13. package/android/src/main/java/com/zixflow/reactnative/sdk/messaginginbox/NotificationInboxBellViewManager.kt +38 -0
  14. package/android/src/main/java/com/zixflow/reactnative/sdk/messaginginbox/NotificationInboxViewManager.kt +30 -0
  15. package/android/src/main/java/com/zixflow/reactnative/sdk/messaginginbox/ReactComposeHostView.kt +96 -0
  16. package/android/src/main/java/com/zixflow/reactnative/sdk/messaginginbox/ReactNotificationInboxBellView.kt +48 -0
  17. package/android/src/main/java/com/zixflow/reactnative/sdk/messaginginbox/ReactNotificationInboxView.kt +17 -0
  18. package/android/src/main/java/com/zixflow/reactnative/sdk/messagingpush/NativeMessagingPushModule.kt +11 -1
  19. package/android/src/main/res/values/zixflow_config.xml +1 -1
  20. package/android/zixflow-core.gradle +17 -7
  21. package/docs/cocoapods-deployment-target-normalization.md +139 -0
  22. package/ios/cocoapods_deployment_target.rb +432 -0
  23. package/ios/wrappers/NativeZixflow.mm +37 -0
  24. package/ios/wrappers/NativeZixflow.swift +135 -1
  25. package/ios/wrappers/ZixflowReactNativeDeepLinkRequestStore.swift +123 -0
  26. package/ios/wrappers/ZixflowReactNativeDeepLinkRouter.swift +312 -0
  27. package/ios/wrappers/geofence/NativeGeofence.mm +46 -0
  28. package/ios/wrappers/geofence/NativeGeofence.swift +27 -0
  29. package/ios/wrappers/inapp/NativeMessagingInApp.mm +22 -0
  30. package/ios/wrappers/inapp/NativeMessagingInApp.swift +90 -0
  31. package/ios/wrappers/inbox/InboxHostContainment.swift +40 -0
  32. package/ios/wrappers/inbox/RCTNotificationInboxBellNative.h +12 -0
  33. package/ios/wrappers/inbox/RCTNotificationInboxBellNative.mm +98 -0
  34. package/ios/wrappers/inbox/RCTNotificationInboxViewNative.h +12 -0
  35. package/ios/wrappers/inbox/RCTNotificationInboxViewNative.mm +78 -0
  36. package/ios/wrappers/inbox/ReactInboxEventListener.swift +76 -0
  37. package/ios/wrappers/inbox/ReactNotificationInboxBellView.h +22 -0
  38. package/ios/wrappers/inbox/ReactNotificationInboxBellView.swift +109 -0
  39. package/ios/wrappers/inbox/ReactNotificationInboxView.h +22 -0
  40. package/ios/wrappers/inbox/ReactNotificationInboxView.swift +69 -0
  41. package/ios/wrappers/liveactivities/NativeLiveActivities.mm +83 -0
  42. package/ios/wrappers/liveactivities/NativeLiveActivities.swift +390 -0
  43. package/ios/wrappers/location/NativeLocation.swift +7 -5
  44. package/ios/wrappers/utils/ZixflowConfigUtils.swift +5 -9
  45. package/ios/wrappers/utils/ZixflowConstants.swift +4 -0
  46. package/ios/wrappers/zixflow_reactnative.h +6 -0
  47. package/lib/commonjs/components/NotificationInboxBellView.js +49 -0
  48. package/lib/commonjs/components/NotificationInboxBellView.js.map +1 -0
  49. package/lib/commonjs/components/NotificationInboxView.js +36 -0
  50. package/lib/commonjs/components/NotificationInboxView.js.map +1 -0
  51. package/lib/commonjs/components/index.js +14 -0
  52. package/lib/commonjs/components/index.js.map +1 -1
  53. package/lib/commonjs/index.js +81 -4
  54. package/lib/commonjs/index.js.map +1 -1
  55. package/lib/commonjs/notification-inbox.js +1 -0
  56. package/lib/commonjs/notification-inbox.js.map +1 -1
  57. package/lib/commonjs/specs/components/NotificationInboxBellNativeComponent.ts +24 -0
  58. package/lib/commonjs/specs/components/NotificationInboxViewNativeComponent.ts +22 -0
  59. package/lib/commonjs/specs/modules/NativeZixflow.js.map +1 -1
  60. package/lib/commonjs/specs/modules/NativeZixflowGeofence.js +15 -0
  61. package/lib/commonjs/specs/modules/NativeZixflowGeofence.js.map +1 -0
  62. package/lib/commonjs/specs/modules/NativeZixflowLiveActivities.js +23 -0
  63. package/lib/commonjs/specs/modules/NativeZixflowLiveActivities.js.map +1 -0
  64. package/lib/commonjs/specs/modules/NativeZixflowMessagingInApp.js +3 -1
  65. package/lib/commonjs/specs/modules/NativeZixflowMessagingInApp.js.map +1 -1
  66. package/lib/commonjs/specs/modules/NativeZixflowMessagingPush.js +3 -1
  67. package/lib/commonjs/specs/modules/NativeZixflowMessagingPush.js.map +1 -1
  68. package/lib/commonjs/types/data-pipelines.js +15 -15
  69. package/lib/commonjs/types/data-pipelines.js.map +1 -1
  70. package/lib/commonjs/types/in-app.js +24 -1
  71. package/lib/commonjs/types/in-app.js.map +1 -1
  72. package/lib/commonjs/types/inbox.js +79 -0
  73. package/lib/commonjs/types/inbox.js.map +1 -0
  74. package/lib/commonjs/types/index.js +22 -0
  75. package/lib/commonjs/types/index.js.map +1 -1
  76. package/lib/commonjs/types/live-activities.js +85 -0
  77. package/lib/commonjs/types/live-activities.js.map +1 -0
  78. package/lib/commonjs/utils/param-validation.js +77 -2
  79. package/lib/commonjs/utils/param-validation.js.map +1 -1
  80. package/lib/commonjs/zixflow-cdp.js +101 -11
  81. package/lib/commonjs/zixflow-cdp.js.map +1 -1
  82. package/lib/commonjs/zixflow-geofence.js +55 -0
  83. package/lib/commonjs/zixflow-geofence.js.map +1 -0
  84. package/lib/commonjs/zixflow-inapp.js +120 -0
  85. package/lib/commonjs/zixflow-inapp.js.map +1 -1
  86. package/lib/commonjs/zixflow-liveactivities.js +85 -0
  87. package/lib/commonjs/zixflow-liveactivities.js.map +1 -0
  88. package/lib/commonjs/zixflow.js.map +1 -1
  89. package/lib/module/components/NotificationInboxBellView.js +44 -0
  90. package/lib/module/components/NotificationInboxBellView.js.map +1 -0
  91. package/lib/module/components/NotificationInboxView.js +31 -0
  92. package/lib/module/components/NotificationInboxView.js.map +1 -0
  93. package/lib/module/components/index.js +5 -0
  94. package/lib/module/components/index.js.map +1 -1
  95. package/lib/module/index.js +8 -3
  96. package/lib/module/index.js.map +1 -1
  97. package/lib/module/notification-inbox.js +1 -1
  98. package/lib/module/notification-inbox.js.map +1 -1
  99. package/lib/module/specs/components/NotificationInboxBellNativeComponent.ts +24 -0
  100. package/lib/module/specs/components/NotificationInboxViewNativeComponent.ts +22 -0
  101. package/lib/module/specs/modules/NativeZixflow.js.map +1 -1
  102. package/lib/module/specs/modules/NativeZixflowGeofence.js +13 -0
  103. package/lib/module/specs/modules/NativeZixflowGeofence.js.map +1 -0
  104. package/lib/module/specs/modules/NativeZixflowLiveActivities.js +21 -0
  105. package/lib/module/specs/modules/NativeZixflowLiveActivities.js.map +1 -0
  106. package/lib/module/specs/modules/NativeZixflowMessagingInApp.js +3 -1
  107. package/lib/module/specs/modules/NativeZixflowMessagingInApp.js.map +1 -1
  108. package/lib/module/specs/modules/NativeZixflowMessagingPush.js +3 -1
  109. package/lib/module/specs/modules/NativeZixflowMessagingPush.js.map +1 -1
  110. package/lib/module/types/data-pipelines.js +15 -15
  111. package/lib/module/types/data-pipelines.js.map +1 -1
  112. package/lib/module/types/in-app.js +24 -0
  113. package/lib/module/types/in-app.js.map +1 -1
  114. package/lib/module/types/inbox.js +75 -0
  115. package/lib/module/types/inbox.js.map +1 -0
  116. package/lib/module/types/index.js +2 -0
  117. package/lib/module/types/index.js.map +1 -1
  118. package/lib/module/types/live-activities.js +88 -0
  119. package/lib/module/types/live-activities.js.map +1 -0
  120. package/lib/module/utils/param-validation.js +77 -2
  121. package/lib/module/utils/param-validation.js.map +1 -1
  122. package/lib/module/zixflow-cdp.js +101 -11
  123. package/lib/module/zixflow-cdp.js.map +1 -1
  124. package/lib/module/zixflow-geofence.js +50 -0
  125. package/lib/module/zixflow-geofence.js.map +1 -0
  126. package/lib/module/zixflow-inapp.js +99 -1
  127. package/lib/module/zixflow-inapp.js.map +1 -1
  128. package/lib/module/zixflow-liveactivities.js +80 -0
  129. package/lib/module/zixflow-liveactivities.js.map +1 -0
  130. package/lib/module/zixflow.js +0 -6
  131. package/lib/module/zixflow.js.map +1 -1
  132. package/lib/typescript/commonjs/components/NotificationInboxBellView.d.ts +39 -0
  133. package/lib/typescript/commonjs/components/NotificationInboxBellView.d.ts.map +1 -0
  134. package/lib/typescript/commonjs/components/NotificationInboxView.d.ts +25 -0
  135. package/lib/typescript/commonjs/components/NotificationInboxView.d.ts.map +1 -0
  136. package/lib/typescript/commonjs/components/index.d.ts +4 -0
  137. package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/index.d.ts +8 -1
  139. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/notification-inbox.d.ts +5 -0
  141. package/lib/typescript/commonjs/notification-inbox.d.ts.map +1 -1
  142. package/lib/typescript/commonjs/specs/components/NotificationInboxBellNativeComponent.d.ts +13 -0
  143. package/lib/typescript/commonjs/specs/components/NotificationInboxBellNativeComponent.d.ts.map +1 -0
  144. package/lib/typescript/commonjs/specs/components/NotificationInboxViewNativeComponent.d.ts +12 -0
  145. package/lib/typescript/commonjs/specs/components/NotificationInboxViewNativeComponent.d.ts.map +1 -0
  146. package/lib/typescript/commonjs/specs/modules/NativeZixflow.d.ts +6 -1
  147. package/lib/typescript/commonjs/specs/modules/NativeZixflow.d.ts.map +1 -1
  148. package/lib/typescript/commonjs/specs/modules/NativeZixflowGeofence.d.ts +13 -0
  149. package/lib/typescript/commonjs/specs/modules/NativeZixflowGeofence.d.ts.map +1 -0
  150. package/lib/typescript/commonjs/specs/modules/NativeZixflowLiveActivities.d.ts +31 -0
  151. package/lib/typescript/commonjs/specs/modules/NativeZixflowLiveActivities.d.ts.map +1 -0
  152. package/lib/typescript/commonjs/specs/modules/NativeZixflowMessagingInApp.d.ts +5 -1
  153. package/lib/typescript/commonjs/specs/modules/NativeZixflowMessagingInApp.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/specs/modules/NativeZixflowMessagingPush.d.ts +1 -1
  155. package/lib/typescript/commonjs/specs/modules/NativeZixflowMessagingPush.d.ts.map +1 -1
  156. package/lib/typescript/commonjs/types/data-pipelines.d.ts +54 -18
  157. package/lib/typescript/commonjs/types/data-pipelines.d.ts.map +1 -1
  158. package/lib/typescript/commonjs/types/in-app.d.ts +22 -0
  159. package/lib/typescript/commonjs/types/in-app.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/types/inbox.d.ts +97 -0
  161. package/lib/typescript/commonjs/types/inbox.d.ts.map +1 -0
  162. package/lib/typescript/commonjs/types/index.d.ts +2 -0
  163. package/lib/typescript/commonjs/types/index.d.ts.map +1 -1
  164. package/lib/typescript/commonjs/types/live-activities.d.ts +161 -0
  165. package/lib/typescript/commonjs/types/live-activities.d.ts.map +1 -0
  166. package/lib/typescript/commonjs/utils/param-validation.d.ts +7 -0
  167. package/lib/typescript/commonjs/utils/param-validation.d.ts.map +1 -1
  168. package/lib/typescript/commonjs/zixflow-cdp.d.ts +38 -0
  169. package/lib/typescript/commonjs/zixflow-cdp.d.ts.map +1 -1
  170. package/lib/typescript/commonjs/zixflow-geofence.d.ts +36 -0
  171. package/lib/typescript/commonjs/zixflow-geofence.d.ts.map +1 -0
  172. package/lib/typescript/commonjs/zixflow-inapp.d.ts +36 -2
  173. package/lib/typescript/commonjs/zixflow-inapp.d.ts.map +1 -1
  174. package/lib/typescript/commonjs/zixflow-liveactivities.d.ts +66 -0
  175. package/lib/typescript/commonjs/zixflow-liveactivities.d.ts.map +1 -0
  176. package/lib/typescript/commonjs/zixflow.d.ts +0 -5
  177. package/lib/typescript/commonjs/zixflow.d.ts.map +1 -1
  178. package/lib/typescript/module/components/NotificationInboxBellView.d.ts +39 -0
  179. package/lib/typescript/module/components/NotificationInboxBellView.d.ts.map +1 -0
  180. package/lib/typescript/module/components/NotificationInboxView.d.ts +25 -0
  181. package/lib/typescript/module/components/NotificationInboxView.d.ts.map +1 -0
  182. package/lib/typescript/module/components/index.d.ts +4 -0
  183. package/lib/typescript/module/components/index.d.ts.map +1 -1
  184. package/lib/typescript/module/index.d.ts +8 -1
  185. package/lib/typescript/module/index.d.ts.map +1 -1
  186. package/lib/typescript/module/notification-inbox.d.ts +5 -0
  187. package/lib/typescript/module/notification-inbox.d.ts.map +1 -1
  188. package/lib/typescript/module/specs/components/NotificationInboxBellNativeComponent.d.ts +13 -0
  189. package/lib/typescript/module/specs/components/NotificationInboxBellNativeComponent.d.ts.map +1 -0
  190. package/lib/typescript/module/specs/components/NotificationInboxViewNativeComponent.d.ts +12 -0
  191. package/lib/typescript/module/specs/components/NotificationInboxViewNativeComponent.d.ts.map +1 -0
  192. package/lib/typescript/module/specs/modules/NativeZixflow.d.ts +6 -1
  193. package/lib/typescript/module/specs/modules/NativeZixflow.d.ts.map +1 -1
  194. package/lib/typescript/module/specs/modules/NativeZixflowGeofence.d.ts +13 -0
  195. package/lib/typescript/module/specs/modules/NativeZixflowGeofence.d.ts.map +1 -0
  196. package/lib/typescript/module/specs/modules/NativeZixflowLiveActivities.d.ts +31 -0
  197. package/lib/typescript/module/specs/modules/NativeZixflowLiveActivities.d.ts.map +1 -0
  198. package/lib/typescript/module/specs/modules/NativeZixflowMessagingInApp.d.ts +5 -1
  199. package/lib/typescript/module/specs/modules/NativeZixflowMessagingInApp.d.ts.map +1 -1
  200. package/lib/typescript/module/specs/modules/NativeZixflowMessagingPush.d.ts +1 -1
  201. package/lib/typescript/module/specs/modules/NativeZixflowMessagingPush.d.ts.map +1 -1
  202. package/lib/typescript/module/types/data-pipelines.d.ts +54 -18
  203. package/lib/typescript/module/types/data-pipelines.d.ts.map +1 -1
  204. package/lib/typescript/module/types/in-app.d.ts +22 -0
  205. package/lib/typescript/module/types/in-app.d.ts.map +1 -1
  206. package/lib/typescript/module/types/inbox.d.ts +97 -0
  207. package/lib/typescript/module/types/inbox.d.ts.map +1 -0
  208. package/lib/typescript/module/types/index.d.ts +2 -0
  209. package/lib/typescript/module/types/index.d.ts.map +1 -1
  210. package/lib/typescript/module/types/live-activities.d.ts +161 -0
  211. package/lib/typescript/module/types/live-activities.d.ts.map +1 -0
  212. package/lib/typescript/module/utils/param-validation.d.ts +7 -0
  213. package/lib/typescript/module/utils/param-validation.d.ts.map +1 -1
  214. package/lib/typescript/module/zixflow-cdp.d.ts +38 -0
  215. package/lib/typescript/module/zixflow-cdp.d.ts.map +1 -1
  216. package/lib/typescript/module/zixflow-geofence.d.ts +36 -0
  217. package/lib/typescript/module/zixflow-geofence.d.ts.map +1 -0
  218. package/lib/typescript/module/zixflow-inapp.d.ts +36 -2
  219. package/lib/typescript/module/zixflow-inapp.d.ts.map +1 -1
  220. package/lib/typescript/module/zixflow-liveactivities.d.ts +66 -0
  221. package/lib/typescript/module/zixflow-liveactivities.d.ts.map +1 -0
  222. package/lib/typescript/module/zixflow.d.ts +0 -5
  223. package/lib/typescript/module/zixflow.d.ts.map +1 -1
  224. package/package.json +14 -5
  225. package/src/components/NotificationInboxBellView.tsx +55 -0
  226. package/src/components/NotificationInboxView.tsx +30 -0
  227. package/src/components/index.ts +6 -0
  228. package/src/index.ts +8 -3
  229. package/src/notification-inbox.ts +1 -1
  230. package/src/specs/components/NotificationInboxBellNativeComponent.ts +24 -0
  231. package/src/specs/components/NotificationInboxViewNativeComponent.ts +22 -0
  232. package/src/specs/modules/NativeZixflow.ts +9 -1
  233. package/src/specs/modules/NativeZixflowGeofence.ts +14 -0
  234. package/src/specs/modules/NativeZixflowLiveActivities.ts +39 -0
  235. package/src/specs/modules/NativeZixflowMessagingInApp.ts +12 -1
  236. package/src/specs/modules/NativeZixflowMessagingPush.ts +3 -1
  237. package/src/types/data-pipelines.ts +55 -19
  238. package/src/types/in-app.ts +23 -0
  239. package/src/types/inbox.ts +110 -0
  240. package/src/types/index.ts +2 -0
  241. package/src/types/live-activities.ts +170 -0
  242. package/src/utils/param-validation.ts +104 -1
  243. package/src/zixflow-cdp.ts +119 -13
  244. package/src/zixflow-geofence.ts +56 -0
  245. package/src/zixflow-inapp.ts +125 -2
  246. package/src/zixflow-liveactivities.ts +86 -0
  247. package/src/zixflow.ts +0 -6
  248. package/zixflow-reactnative-richpush.podspec +6 -3
  249. package/zixflow-reactnative.podspec +28 -2
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Public types for the Live Activities module.
5
+ *
6
+ * Live Activities (iOS) / Live Notifications (Android) render live, updating
7
+ * notifications from built-in templates. Two templates ship today: Segments and
8
+ * Countdown Timer. Field names and identifiers are identical across platforms.
9
+ */
10
+
11
+ /**
12
+ * Built-in activity type identifiers usable from the wrapper.
13
+ *
14
+ * The values are the reverse-DNS identifiers Zixflow uses everywhere — the
15
+ * `notificationType` on the wire, Android's `LiveNotificationType`, and iOS's
16
+ * `CIOSegmentsAttributes.identifier` — so JS, both native SDKs, and the backend
17
+ * share one vocabulary.
18
+ *
19
+ * Use these enum members (not raw strings) for `LiveActivitiesConfig.types` and a
20
+ * payload's `type` to avoid typos.
21
+ *
22
+ * @public
23
+ */
24
+ export let LiveActivityTemplate = /*#__PURE__*/function (LiveActivityTemplate) {
25
+ LiveActivityTemplate["Segments"] = "com.zixflow.livenotifications.segments";
26
+ LiveActivityTemplate["CountdownTimer"] = "com.zixflow.livenotifications.countdowntimer";
27
+ /**
28
+ * Your own activity type, rendered by SwiftUI you write.
29
+ *
30
+ * Unlike the members above, this value is a marker rather than an identifier — your activity is
31
+ * named by {@link LiveActivitiesConfig.customType}, and the SDK reports it under that name. It
32
+ * belongs in a payload's `type`, never in {@link LiveActivitiesConfig.types}.
33
+ */
34
+ LiveActivityTemplate["Custom"] = "custom";
35
+ return LiveActivityTemplate;
36
+ }({});
37
+
38
+ /**
39
+ * Segments template — a progress activity split into N segments.
40
+ * `header` is a static attribute (fixed at start); the rest are content-state.
41
+ *
42
+ * @public
43
+ */
44
+
45
+ /**
46
+ * Custom template — your own activity type, rendered by SwiftUI you write.
47
+ *
48
+ * Unlike the built-in templates there is no schema: `data` is an untyped map, because a bridge
49
+ * payload carries nothing for the SDK to validate against. Every value is a string, so your widget
50
+ * parses whichever ones it needs.
51
+ *
52
+ * Requires {@link LiveActivitiesConfig.customType} to be set. On iOS you must also render
53
+ * `CIOCustomAttributes` in your Widget Extension; on Android your `createLiveNotification`
54
+ * callback receives the same map.
55
+ *
56
+ * @public
57
+ */
58
+
59
+ /**
60
+ * Countdown Timer template — a live countdown to a target time.
61
+ * `header` is a static attribute (fixed at start); the rest are content-state.
62
+ *
63
+ * @public
64
+ */
65
+
66
+ /**
67
+ * Payload for {@link ZixflowLiveActivities.start} and
68
+ * {@link ZixflowLiveActivities.update}.
69
+ *
70
+ * Because ActivityKit replaces content-state wholesale on update, `update` takes the
71
+ * same full payload as `start` — pass the complete desired state each time.
72
+ *
73
+ * @public
74
+ */
75
+
76
+ /**
77
+ * Live Activities branding (Android only). On iOS, branding is compiled into the
78
+ * widget extension's SwiftUI, so these values are ignored there.
79
+ *
80
+ * @public
81
+ */
82
+
83
+ /**
84
+ * Live Activities configuration, passed under the `liveNotifications` key of the SDK config.
85
+ *
86
+ * @public
87
+ */
88
+ //# sourceMappingURL=live-activities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["LiveActivityTemplate"],"sourceRoot":"../../../src","sources":["types/live-activities.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAG9B;AACF;AACA;AACA;AACA;AACA;AACA;EATYA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;;AAahC;AACA;AACA;AACA;AACA;AACA;;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA;AACA;AACA;AACA;AACA;AACA;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;;AAkBA;AACA;AACA;AACA;AACA","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  // Argument validation utilities for SDK internal use
4
4
  // Ensures input safety and throws clear errors when validation fails
5
5
 
6
+ import { ZixflowColorScheme } from "../types/index.js";
6
7
  /**
7
8
  * Builds a standardized error message for validation failures.
8
9
  */
@@ -28,6 +29,16 @@ function failIf(condition, message) {
28
29
  }
29
30
  }
30
31
 
32
+ /**
33
+ * Logs a warning if the condition is true.
34
+ * Use this for misconfigurations that degrade behavior but must not fail initialization.
35
+ */
36
+ function warnIf(condition, message) {
37
+ if (__DEV__ && condition) {
38
+ console.warn(`[Zixflow] ${message()}`);
39
+ }
40
+ }
41
+
31
42
  /**
32
43
  * Validates that a value is defined (not undefined or null).
33
44
  * Useful for checking required fields.
@@ -99,6 +110,67 @@ function validateAttributes(value, fieldName, options = {}) {
99
110
  return attributes;
100
111
  }
101
112
 
113
+ /**
114
+ * The placeholder the SDK substitutes with the unread count when rendering
115
+ * `bellWithUnreadCount`.
116
+ */
117
+ const COUNT_PLACEHOLDER = '{count}';
118
+
119
+ /**
120
+ * Warns when `bellWithUnreadCount` is missing its `{count}` placeholder.
121
+ *
122
+ * The label is a template, not a finished string. A misspelled placeholder (`{COUNT}`,
123
+ * `{{count}}`, `%d`) matches nothing, so the template is announced verbatim — braces and all —
124
+ * and the count is never spoken. The check lives here rather than in either native layer
125
+ * because neither can report it usefully: Android logs at `debug`, which the default `ERROR`
126
+ * level discards, and iOS does not check at all. Warning from JavaScript reaches the
127
+ * developer's console on both platforms, whatever the SDK log level.
128
+ */
129
+ function validateInboxAccessibilityLabels(value) {
130
+ if (isUndefined(value) || typeof value !== 'object') {
131
+ return;
132
+ }
133
+ const template = value.bellWithUnreadCount;
134
+ warnIf(typeof template === 'string' && !template.includes(COUNT_PLACEHOLDER), () => `"inApp.notificationInboxAccessibilityLabels.bellWithUnreadCount" has no ` + `"${COUNT_PLACEHOLDER}" placeholder, so the unread count will not be announced.`);
135
+ }
136
+
137
+ /**
138
+ * Warns when a value is not one of the `ZixflowColorScheme` values.
139
+ *
140
+ * TypeScript rejects a bad value already, but JavaScript callers reach both entry points
141
+ * untyped, and neither native layer reports the mistake at the default log level. The
142
+ * failure mode is a message rendered in the wrong theme with no error attached, so
143
+ * JavaScript is the only place the developer reliably sees it.
144
+ *
145
+ * `consequence` differs per entry point because the native fallback does: an unrecognized
146
+ * value at initialization resolves to `auto`, while the runtime setter leaves whatever
147
+ * scheme the app already chose in place.
148
+ */
149
+ function warnIfNotColorScheme(value, fieldName, consequence) {
150
+ const allowed = Object.values(ZixflowColorScheme);
151
+ warnIf(!(typeof value === 'string' && allowed.includes(value)), () => `"${fieldName}" is not a valid ZixflowColorScheme (expected one of ` + `${allowed.join(', ')}), so ${consequence}.`);
152
+ }
153
+
154
+ /**
155
+ * Validates `inApp.colorScheme`. An absent value is legitimate here — the native SDKs
156
+ * already default to `auto` — so only a value the host actually set is checked.
157
+ */
158
+ function validateConfigColorScheme(value) {
159
+ if (isUndefined(value)) {
160
+ return;
161
+ }
162
+ warnIfNotColorScheme(value, 'inApp.colorScheme', 'in-app messages will follow the device appearance');
163
+ }
164
+
165
+ /**
166
+ * Validates the argument to `setColorScheme`. Unlike the config field, an absent value is
167
+ * itself the mistake: the caller asked for a scheme change and named none, and there is no
168
+ * default to fall back to, so null and undefined are reported rather than skipped.
169
+ */
170
+ function validateColorSchemeArgument(value) {
171
+ warnIfNotColorScheme(value, 'colorScheme', 'the color scheme will be left unchanged');
172
+ }
173
+
102
174
  /**
103
175
  * Validates that the given value is a valid ZixflowConfig object.
104
176
  * Throws if required fields are missing or incorrectly typed.
@@ -111,10 +183,12 @@ function validateConfig(value) {
111
183
  usage: usage
112
184
  });
113
185
  const obj = value;
114
- validateString(obj.cdpApiKey, `${fieldName}.cdpApiKey`, {
186
+ validateString(obj.apiKey, `${fieldName}.apiKey`, {
115
187
  allowEmpty: false,
116
188
  usage: usage
117
189
  });
190
+ validateConfigColorScheme(obj.inApp?.colorScheme);
191
+ validateInboxAccessibilityLabels(obj.inApp?.notificationInboxAccessibilityLabels);
118
192
  }
119
193
 
120
194
  // For type safety, we define a ConfigValidator type that asserts the value is a ZixflowConfig
@@ -124,7 +198,8 @@ export const assert = {
124
198
  string: validateString,
125
199
  record: validateRecord,
126
200
  attributes: validateAttributes,
127
- config: validateConfig
201
+ config: validateConfig,
202
+ colorScheme: validateColorSchemeArgument
128
203
  };
129
204
  export const validate = {
130
205
  isUndefined: isUndefined
@@ -1 +1 @@
1
- {"version":3,"names":["buildErrorMessage","usage","fieldName","error","prefix","isUndefined","value","undefined","failIf","condition","message","__DEV__","Error","failIfUndefined","validateString","options","allowEmpty","optional","typedValue","trim","validateRecord","expectedType","typeName","Array","isArray","validateAttributes","exists","attributes","Map","Object","fromEntries","validateConfig","obj","cdpApiKey","assert","string","record","config","validate"],"sourceRoot":"../../../src","sources":["utils/param-validation.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ZixflowColorScheme","buildErrorMessage","usage","fieldName","error","prefix","isUndefined","value","undefined","failIf","condition","message","__DEV__","Error","warnIf","console","warn","failIfUndefined","validateString","options","allowEmpty","optional","typedValue","trim","validateRecord","expectedType","typeName","Array","isArray","validateAttributes","exists","attributes","Map","Object","fromEntries","COUNT_PLACEHOLDER","validateInboxAccessibilityLabels","template","bellWithUnreadCount","includes","warnIfNotColorScheme","consequence","allowed","values","join","validateConfigColorScheme","validateColorSchemeArgument","validateConfig","obj","apiKey","inApp","colorScheme","notificationInboxAccessibilityLabels","assert","string","record","config","validate"],"sourceRoot":"../../../src","sources":["utils/param-validation.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
 
3
+ import { ZixflowGeofence } from "./zixflow-geofence.js";
3
4
  import { ZixflowInAppMessaging } from "./zixflow-inapp.js";
5
+ import { ZixflowLiveActivities } from "./zixflow-liveactivities.js";
4
6
  import { ZixflowLocation } from "./zixflow-location.js";
5
7
  import { ZixflowPushMessaging } from "./zixflow-push.js";
6
8
  import { NativeLoggerListener } from "./native-logger-listener.js";
@@ -8,10 +10,21 @@ import { default as NativeModule } from "./specs/modules/NativeZixflow.js";
8
10
  import { ZixflowLogLevel } from "./types/index.js";
9
11
  import { callNativeModule, ensureNativeModule } from "./utils/native-bridge.js";
10
12
  import { assert, validate } from "./utils/param-validation.js";
11
- const packageJson = require('../../package.json');
13
+ const packageJson = require('../package.json');
12
14
 
13
15
  // Track whether Zixflow SDK has been initialized to prevent usage before setup
14
16
  let _initialized = false;
17
+ let deepLinkHandlerSubscription;
18
+
19
+ /**
20
+ * Handles a Zixflow deep-link destination delivered from iOS.
21
+ * @public
22
+ */
23
+
24
+ /**
25
+ * Removes a Zixflow deep-link handler.
26
+ * @public
27
+ */
15
28
 
16
29
  // Reference to the native Zixflow Data Pipelines module for SDK operations
17
30
  const nativeModule = ensureNativeModule(NativeModule);
@@ -26,16 +39,8 @@ export class Zixflow {
26
39
  /** Initialize the Zixflow SDK with given configuration. */
27
40
  static initialize = async config => {
28
41
  assert.config(config);
29
-
30
- // Auto-derive inApp.siteId from cdpApiKey if not explicitly set
31
- if (config.inApp && !config.inApp.siteId) {
32
- config.inApp.siteId = config.cdpApiKey;
33
- console.log('[Zixflow] Auto-derived inApp.siteId from cdpApiKey');
34
- }
35
-
36
- // Warn if siteId doesn't match cdpApiKey (Customer.io legacy issue)
37
- if (config.inApp && config.inApp.siteId && config.inApp.siteId !== config.cdpApiKey) {
38
- console.warn('[Zixflow] Warning: inApp.siteId should equal cdpApiKey for Zixflow. ' + 'Using different values may cause in-app messaging to fail.');
42
+ if (config.inApp) {
43
+ config.inApp.siteId = config.apiKey;
39
44
  }
40
45
  if (config.logLevel && config.logLevel !== ZixflowLogLevel.None) {
41
46
  NativeLoggerListener.initialize();
@@ -51,6 +56,89 @@ export class Zixflow {
51
56
  });
52
57
  };
53
58
 
59
+ /**
60
+ * Signal that the app's React Native Linking listener is ready to receive Zixflow URLs.
61
+ *
62
+ * This is only needed by UIScene hosts that initialize Zixflow natively, such as Expo
63
+ * config-plugin auto-initialization. Call it after registering the Linking listener.
64
+ */
65
+ static setDeepLinkRoutingReady = () => {
66
+ return withNativeModule(native => native.setDeepLinkRoutingReady());
67
+ };
68
+
69
+ /**
70
+ * Register an acknowledged deep-link handler for an iOS UIScene host.
71
+ *
72
+ * This API only handles Zixflow destinations delivered through an iOS UIScene lifecycle.
73
+ * In a native React Native scene host, pair this with
74
+ * `NativeZixflow.configureAcknowledgedSceneDeepLinkRouting()` in the SceneDelegate. Register
75
+ * this before `initialize` when possible. Return `true` after routing a URL. Returning `false`,
76
+ * throwing, or rejecting lets the native SDK try the host AppDelegate, then React Native Linking
77
+ * for a host-owned custom scheme or the system for other URLs. Cold URLs are buffered until this
78
+ * handler is registered, subject to the native timeout. After delivery, the handler has ten
79
+ * seconds to settle. Once that timeout runs the native fallback, a late handler cannot cancel it
80
+ * and may cause a second navigation if it also routes the URL.
81
+ */
82
+ static setDeepLinkHandler = handler => {
83
+ if (typeof handler !== 'function') {
84
+ throw new Error('[Zixflow] "handler" must be a function.');
85
+ }
86
+
87
+ // Native unregister is tokenless and removes the current native handler. Remove the old
88
+ // subscription first so its cleanup cannot unregister the replacement.
89
+ deepLinkHandlerSubscription?.remove();
90
+ return withNativeModule(native => {
91
+ const nativeSubscription = native.onDeepLinkReceived(async data => {
92
+ const event = data;
93
+ if (typeof event.id !== 'string' || typeof event.url !== 'string') {
94
+ NativeLoggerListener.warn('Received an invalid native deep-link event.');
95
+ return;
96
+ }
97
+ let handled = false;
98
+ try {
99
+ handled = (await handler(event.url)) === true;
100
+ } catch (error) {
101
+ NativeLoggerListener.warn('Deep-link handler failed:', error);
102
+ }
103
+ try {
104
+ native.acknowledgeDeepLink(event.id, handled);
105
+ } catch (error) {
106
+ NativeLoggerListener.warn('Failed to acknowledge a deep-link result:', error);
107
+ }
108
+ });
109
+ let removed = false;
110
+ const subscription = {
111
+ remove: () => {
112
+ if (removed) {
113
+ return;
114
+ }
115
+ removed = true;
116
+ try {
117
+ native.unregisterDeepLinkHandler();
118
+ } finally {
119
+ nativeSubscription.remove();
120
+ if (deepLinkHandlerSubscription === subscription) {
121
+ deepLinkHandlerSubscription = undefined;
122
+ }
123
+ }
124
+ }
125
+ };
126
+ try {
127
+ native.registerDeepLinkHandler();
128
+ } catch (error) {
129
+ try {
130
+ native.unregisterDeepLinkHandler();
131
+ } catch {
132
+ // Preserve the registration error; the native timeout still owns pending URLs.
133
+ }
134
+ nativeSubscription.remove();
135
+ throw error;
136
+ }
137
+ deepLinkHandlerSubscription = subscription;
138
+ return subscription;
139
+ });
140
+ };
141
+
54
142
  /** Identify a user to start tracking their activity. Requires userId, traits, or both. */
55
143
  static identify = async ({
56
144
  userId,
@@ -155,7 +243,9 @@ export class Zixflow {
155
243
  * @deprecated This method will be removed in a future version. If you need this functionality, please contact us.
156
244
  */
157
245
  static isInitialized = () => _initialized;
246
+ static geofence = new ZixflowGeofence();
158
247
  static inAppMessaging = new ZixflowInAppMessaging();
248
+ static liveActivities = new ZixflowLiveActivities();
159
249
  static location = new ZixflowLocation();
160
250
  static pushMessaging = new ZixflowPushMessaging();
161
251
  }
@@ -1 +1 @@
1
- {"version":3,"names":["ZixflowInAppMessaging","ZixflowLocation","ZixflowPushMessaging","NativeLoggerListener","default","NativeModule","ZixflowLogLevel","callNativeModule","ensureNativeModule","assert","validate","packageJson","require","_initialized","nativeModule","withNativeModule","fn","Zixflow","initialize","config","inApp","siteId","cdpApiKey","console","log","warn","logLevel","None","expoVersion","args","packageSource","packageVersion","version","promise","native","then","identify","userId","traits","isUndefined","Error","string","allowEmpty","usage","optional","normalizedTraits","attributes","clearIdentify","track","name","properties","normalizedProps","screen","title","setProfileAttributes","normalizedAttrs","setDeviceAttributes","registerDeviceToken","token","deleteDeviceToken","trackMetric","deliveryID","deviceToken","event","isInitialized","inAppMessaging","location","pushMessaging","initNativeLogger"],"sourceRoot":"../../src","sources":["zixflow-cdp.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ZixflowGeofence","ZixflowInAppMessaging","ZixflowLiveActivities","ZixflowLocation","ZixflowPushMessaging","NativeLoggerListener","default","NativeModule","ZixflowLogLevel","callNativeModule","ensureNativeModule","assert","validate","packageJson","require","_initialized","deepLinkHandlerSubscription","nativeModule","withNativeModule","fn","Zixflow","initialize","config","inApp","siteId","apiKey","logLevel","None","expoVersion","args","packageSource","packageVersion","version","promise","native","then","setDeepLinkRoutingReady","setDeepLinkHandler","handler","Error","remove","nativeSubscription","onDeepLinkReceived","data","event","id","url","warn","handled","error","acknowledgeDeepLink","removed","subscription","unregisterDeepLinkHandler","undefined","registerDeepLinkHandler","identify","userId","traits","isUndefined","string","allowEmpty","usage","optional","normalizedTraits","attributes","clearIdentify","track","name","properties","normalizedProps","screen","title","setProfileAttributes","normalizedAttrs","setDeviceAttributes","registerDeviceToken","token","deleteDeviceToken","trackMetric","deliveryID","deviceToken","isInitialized","geofence","inAppMessaging","liveActivities","location","pushMessaging","initNativeLogger"],"sourceRoot":"../../src","sources":["zixflow-cdp.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ import { default as NativeModule } from "./specs/modules/NativeZixflowGeofence.js";
4
+
5
+ /**
6
+ * Ensures all methods defined in codegen spec are implemented by the public module
7
+ *
8
+ * @internal
9
+ */
10
+
11
+ // Geofence is an optional module — NativeModule may be null when geofence is not enabled.
12
+ // Methods silently no-op when the native module is unavailable, with a one-time dev warning.
13
+ let hasWarnedNotEnabled = false;
14
+ const withNativeModule = fn => {
15
+ if (NativeModule) {
16
+ fn(NativeModule);
17
+ } else if (__DEV__ && !hasWarnedNotEnabled) {
18
+ hasWarnedNotEnabled = true;
19
+ console.warn('Zixflow: Geofence module is not enabled. ' + 'To use geofence features, set zixflow_geofence_enabled=true in ' + 'gradle.properties (Android) or add the geofence subspec to your Podfile (iOS).');
20
+ }
21
+ };
22
+
23
+ /**
24
+ * Public entry point for the optional Geofence module.
25
+ *
26
+ * Geofence runs automatically once enabled. Apps opt in by passing a `geofence` config to
27
+ * `initialize` and enabling the module at build time: set `zixflow_geofence_enabled=true`
28
+ * in `gradle.properties` (Android) or add the `geofence` subspec to your Podfile (iOS).
29
+ * Enabling geofence also enables the Location module, which geofence depends on.
30
+ *
31
+ * @public
32
+ */
33
+ export class ZixflowGeofence {
34
+ /**
35
+ * Requests a one-shot location fix and refreshes the nearby geofence set from it,
36
+ * without sending a location analytics event (unlike
37
+ * `Zixflow.location.requestLocationUpdate()`) and without caching the fix.
38
+ *
39
+ * Call this after the host app has been granted location permission — the SDK never
40
+ * requests permission itself. It is the primary way to drive geofencing when the module
41
+ * is configured with `MANUAL` location mode; with the default `AUTOMATIC` the SDK acquires
42
+ * location on its own and this only forces an immediate refresh.
43
+ *
44
+ * No-ops if the geofence module is not enabled or a user has not been identified.
45
+ */
46
+ refreshFromCurrentLocation() {
47
+ return withNativeModule(native => native.refreshFromCurrentLocation());
48
+ }
49
+ }
50
+ //# sourceMappingURL=zixflow-geofence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["default","NativeModule","hasWarnedNotEnabled","withNativeModule","fn","__DEV__","console","warn","ZixflowGeofence","refreshFromCurrentLocation","native"],"sourceRoot":"../../src","sources":["zixflow-geofence.ts"],"mappings":";;AACA,SACEA,OAAO,IAAIC,YAAY,QAElB,0CAAuC;;AAE9C;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA,IAAIC,mBAAmB,GAAG,KAAK;AAC/B,MAAMC,gBAAgB,GAAIC,EAAiC,IAAW;EACpE,IAAIH,YAAY,EAAE;IAChBG,EAAE,CAACH,YAAY,CAAC;EAClB,CAAC,MAAM,IAAII,OAAO,IAAI,CAACH,mBAAmB,EAAE;IAC1CA,mBAAmB,GAAG,IAAI;IAC1BI,OAAO,CAACC,IAAI,CACV,2CAA2C,GACzC,iEAAiE,GACjE,gFACJ,CAAC;EACH;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,CAA+B;EACzD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,0BAA0BA,CAAA,EAAS;IACjC,OAAON,gBAAgB,CAAEO,MAAM,IAAKA,MAAM,CAACD,0BAA0B,CAAC,CAAC,CAAC;EAC1E;AACF","ignoreList":[]}
@@ -2,9 +2,11 @@
2
2
 
3
3
  import { InlineInAppMessageView } from "./components/index.js";
4
4
  import { NativeLoggerListener } from "./native-logger-listener.js";
5
- import { NotificationInbox } from "./notification-inbox.js";
5
+ import { NotificationInbox, parseInboxMessage } from "./notification-inbox.js";
6
6
  import NativeZixflowMessagingInApp from "./specs/modules/NativeZixflowMessagingInApp.js";
7
+ import { InboxMessageEvent } from "./types/index.js";
7
8
  import { callNativeModule, ensureNativeModule } from "./utils/native-bridge.js";
9
+ import { assert } from "./utils/param-validation.js";
8
10
 
9
11
  /**
10
12
  * Ensures all methods defined in codegen spec are implemented by the public module
@@ -26,6 +28,12 @@ const withNativeModule = fn => {
26
28
  * @public
27
29
  */
28
30
  class ZixflowInAppMessaging {
31
+ /**
32
+ * Live inbox subscriptions. The SDK's inbox forwarder is a SINGLE global listener, so it is
33
+ * registered when the first subscription is created and unregistered when the last one goes away —
34
+ * never per subscription, or one `remove()` would tear it out from under the others.
35
+ */
36
+ _inboxListenerCount = 0;
29
37
  registerEventsListener(listener) {
30
38
  const emitter = data => {
31
39
  // Convert raw native payload to InAppMessageEvent
@@ -51,6 +59,77 @@ class ZixflowInAppMessaging {
51
59
  });
52
60
  }
53
61
 
62
+ /**
63
+ * Registers a listener for Visual Notification Inbox events (action taken,
64
+ * shown, opened, dismissed).
65
+ *
66
+ * While a listener is registered the host owns action navigation: the native
67
+ * SDK suppresses its default action handling and forwards the event here.
68
+ * Call `.remove()` on the returned subscription to unregister and restore the
69
+ * SDK's default behavior.
70
+ *
71
+ * @param listener - callback invoked with an {@link InboxMessageEvent}
72
+ * @returns an EventSubscription; call `.remove()` to stop listening
73
+ */
74
+ registerInboxEventListener(listener) {
75
+ const emitter = data => {
76
+ // Convert raw native payload to InboxMessageEvent with a parsed message
77
+ const event = new InboxMessageEvent(data.eventType, parseInboxMessage(data.message), data.actionName, data.actionValue);
78
+ listener(event);
79
+ };
80
+ return withNativeModule(native => {
81
+ let registeredNativeForwarder = false;
82
+ try {
83
+ // Register the native forwarder with the SDK, then subscribe to the
84
+ // codegen-generated event emitter.
85
+ // Wrapped in try-catch due to previous reports of crashes on certain Android architectures.
86
+ if (this._inboxListenerCount === 0) {
87
+ native.registerInboxEventListener();
88
+ registeredNativeForwarder = true;
89
+ }
90
+ const subscription = native.onInboxEventReceived(emitter);
91
+ this._inboxListenerCount += 1;
92
+
93
+ // Wrap remove() so unregistering the LAST JS listener also unregisters the native forwarder
94
+ // (restoring the SDK's default action handling). Guarded so a double remove() cannot
95
+ // unbalance the count and drop the forwarder while other subscriptions are still live.
96
+ const originalRemove = subscription.remove.bind(subscription);
97
+ let removed = false;
98
+ subscription.remove = () => {
99
+ if (removed) {
100
+ return;
101
+ }
102
+ removed = true;
103
+ originalRemove();
104
+ this._inboxListenerCount -= 1;
105
+ if (this._inboxListenerCount === 0) {
106
+ withNativeModule(n => n.unregisterInboxEventListener());
107
+ }
108
+ };
109
+ return subscription;
110
+ } catch (error) {
111
+ // If the forwarder was registered and subscribing then failed, roll it back. Otherwise the
112
+ // SDK keeps suppressing its own action handling while nothing in JS is listening, so inbox
113
+ // actions are reported as handled and silently go nowhere.
114
+ if (registeredNativeForwarder) {
115
+ try {
116
+ native.unregisterInboxEventListener();
117
+ } catch (rollbackError) {
118
+ NativeLoggerListener.warn('Failed to roll back inbox listener registration:', rollbackError);
119
+ }
120
+ }
121
+ NativeLoggerListener.warn('Failed to attach inbox event listener:', error);
122
+ // Return a no-op subscription to maintain backwards compatibility
123
+ return {
124
+ remove: () => {},
125
+ eventType: '',
126
+ key: 0,
127
+ subscriber: null
128
+ };
129
+ }
130
+ });
131
+ }
132
+
54
133
  /**
55
134
  * Dismisses any currently displayed in-app message
56
135
  */
@@ -58,6 +137,23 @@ class ZixflowInAppMessaging {
58
137
  withNativeModule(native => native.dismissMessage());
59
138
  }
60
139
 
140
+ /**
141
+ * Overrides the color scheme used to render in-app messages.
142
+ *
143
+ * Takes effect immediately: messages already on screen — inline views included — are
144
+ * re-themed in place, so this can be called whenever the app's appearance setting
145
+ * changes rather than only before a message is shown.
146
+ *
147
+ * @param colorScheme - scheme to render with; `ZixflowColorScheme.Auto` returns to following
148
+ * the device appearance
149
+ */
150
+ setColorScheme(colorScheme) {
151
+ // Validated here as well as in `initialize`: this is a public method reachable from
152
+ // untyped JavaScript, and without it a bad value reaches the native fallback silently.
153
+ assert.colorScheme(colorScheme);
154
+ withNativeModule(native => native.setColorScheme(colorScheme));
155
+ }
156
+
61
157
  /**
62
158
  * Gets the message inbox instance for managing inbox messages
63
159
  *
@@ -87,6 +183,8 @@ class InAppMessageEvent {
87
183
 
88
184
  // Export in-app messaging types and components for simplified imports
89
185
 
186
+ export { NotificationInboxBellView, NotificationInboxView } from "./components/index.js";
90
187
  export { NotificationInbox } from "./notification-inbox.js";
188
+ export { InboxEventType, InboxMessageEvent } from "./types/index.js";
91
189
  export { ZixflowInAppMessaging, InAppMessageEvent, InlineInAppMessageView };
92
190
  //# sourceMappingURL=zixflow-inapp.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["InlineInAppMessageView","NativeLoggerListener","NotificationInbox","NativeZixflowMessagingInApp","callNativeModule","ensureNativeModule","nativeModule","withNativeModule","fn","ZixflowInAppMessaging","registerEventsListener","listener","emitter","data","event","InAppMessageEvent","eventType","messageId","deliveryId","actionValue","actionName","native","onInAppEventReceived","error","warn","remove","key","subscriber","dismissMessage","inbox","_notificationInbox","constructor"],"sourceRoot":"../../src","sources":["zixflow-inapp.ts"],"mappings":";;AACA,SAASA,sBAAsB,QAAQ,uBAAc;AACrD,SAASC,oBAAoB,QAAQ,6BAA0B;AAC/D,SACEC,iBAAiB,QAEZ,yBAAsB;AAC7B,OAAOC,2BAA2B,MAE3B,gDAA6C;AAEpD,SAASC,gBAAgB,EAAEC,kBAAkB,QAAQ,0BAAuB;;AAE5E;AACA;AACA;AACA;AACA;;AAMA;AACA,MAAMC,YAAY,GAAGD,kBAAkB,CAACF,2BAA2B,CAAC;;AAEpE;AACA,MAAMI,gBAAgB,GAAOC,EAA8B,IAAQ;EACjE,OAAOJ,gBAAgB,CAACE,YAAY,EAAEE,EAAE,CAAC;AAC3C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMC,qBAAqB,CAA4B;EAGrDC,sBAAsBA,CACpBC,QAA4C,EACzB;IACnB,MAAMC,OAAO,GAAIC,IAAS,IAAK;MAC7B;MACA,MAAMC,KAAK,GAAG,IAAIC,iBAAiB,CACjCF,IAAI,CAACG,SAAS,EACdH,IAAI,CAACI,SAAS,EACdJ,IAAI,CAACK,UAAU,EACfL,IAAI,CAACM,WAAW,EAChBN,IAAI,CAACO,UACP,CAAC;MACDT,QAAQ,CAACG,KAAK,CAAC;IACjB,CAAC;IAED,OAAOP,gBAAgB,CAAEc,MAAM,IAAK;MAClC,IAAI;QACF;QACA;QACA;QACA,OAAOA,MAAM,CAACC,oBAAoB,CAACV,OAAO,CAAC;MAC7C,CAAC,CAAC,OAAOW,KAAK,EAAE;QACdtB,oBAAoB,CAACuB,IAAI,CACvB,yCAAyC,EACzCD,KACF,CAAC;QACD;QACA,OAAO;UACLE,MAAM,EAAEA,CAAA,KAAM,CAAC,CAAC;UAChBT,SAAS,EAAE,EAAE;UACbU,GAAG,EAAE,CAAC;UACNC,UAAU,EAAE;QACd,CAAC;MACH;IACF,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACEC,cAAcA,CAAA,EAAG;IACfrB,gBAAgB,CAAEc,MAAM,IAAKA,MAAM,CAACO,cAAc,CAAC,CAAC,CAAC;EACvD;;EAEA;AACF;AACA;AACA;AACA;EACEC,KAAKA,CAAA,EAAsB;IACzB,IAAI,CAAC,IAAI,CAACC,kBAAkB,EAAE;MAC5B,IAAI,CAACA,kBAAkB,GAAG,IAAI5B,iBAAiB,CAAC,CAAC;IACnD;IACA,OAAO,IAAI,CAAC4B,kBAAkB;EAChC;AACF;;AAEA;AACA;AACA;AACA;AACA,MAAMf,iBAAiB,CAAC;EAOtBgB,WAAWA,CACTf,SAAgC,EAChCC,SAAiB,EACjBC,UAAmB,EACnBC,WAAoB,EACpBC,UAAmB,EACnB;IACA,IAAI,CAACJ,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACE,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACD,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACE,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,UAAU,GAAGA,UAAU;EAC9B;AACF;;AAEA;;AAEA,SAASlB,iBAAiB,QAAQ,yBAAsB;AAExD,SAASO,qBAAqB,EAAEM,iBAAiB,EAAEf,sBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["InlineInAppMessageView","NativeLoggerListener","NotificationInbox","parseInboxMessage","NativeZixflowMessagingInApp","InboxMessageEvent","callNativeModule","ensureNativeModule","assert","nativeModule","withNativeModule","fn","ZixflowInAppMessaging","_inboxListenerCount","registerEventsListener","listener","emitter","data","event","InAppMessageEvent","eventType","messageId","deliveryId","actionValue","actionName","native","onInAppEventReceived","error","warn","remove","key","subscriber","registerInboxEventListener","message","registeredNativeForwarder","subscription","onInboxEventReceived","originalRemove","bind","removed","n","unregisterInboxEventListener","rollbackError","dismissMessage","setColorScheme","colorScheme","inbox","_notificationInbox","constructor","NotificationInboxBellView","NotificationInboxView","InboxEventType"],"sourceRoot":"../../src","sources":["zixflow-inapp.ts"],"mappings":"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","ignoreList":[]}