react-native-acoustic-connect-beta 19.0.19 → 19.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 19.0.21 (2026-09-09)
2
+
3
+ ### Reverts
4
+
5
+ * Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/aipoweredmarketer/react-native-acoustic-connect-beta/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
6
+ ## 19.0.20 (2026-09-09)
7
+
8
+ ### Reverts
9
+
10
+ * Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/aipoweredmarketer/react-native-acoustic-connect-beta/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
1
11
  ## 19.0.19 (2026-09-08)
2
12
 
3
13
  ### Reverts
package/README.md CHANGED
@@ -396,6 +396,26 @@ for details.
396
396
 
397
397
  ## API reference
398
398
 
399
+ > **What the logging methods' `boolean` means.** Every `log*` method returns
400
+ > whether the native SDK **accepted the event for delivery** — never whether
401
+ > the collector received it, and never whether the collector kept it. Events
402
+ > are queued on device and posted in batches later, so no return value from
403
+ > these calls can attest to delivery, and a server-side rejection (a signal
404
+ > that fails schema validation, say) happens long after you have already been
405
+ > told `true`. Treat the value as "the SDK took this", and use the collector or
406
+ > the platform log as the source of truth for what shipped.
407
+ >
408
+ > A `false` means the SDK rejected the call outright and nothing was queued.
409
+ > The bridge also writes that to `logcat` (tag `AcousticConnectRN`) and
410
+ > `os_log` (subsystem `com.acoustic.AcousticConnectRN`, category `bridge`), so
411
+ > a rejection is visible without inspecting return values you would otherwise
412
+ > never read.
413
+ >
414
+ > `logScreenLayout` is weaker still: with the configured delay — the normal
415
+ > case — a `true` means only that the capture was **scheduled**. What the
416
+ > capture found when it eventually ran, and whether it produced a layout
417
+ > message at all, is reported in the platform log only.
418
+
399
419
  ### `AcousticConnectRN.enable(): boolean`
400
420
 
401
421
  Re-enables the SDK after a prior `disable()`. Reads all configuration from
@@ -463,6 +483,13 @@ AcousticConnectRN.logSignal(pageView, 1)
463
483
  > AcousticConnectRN.logSignal({ cart: { items: 3 } }, 1) // both platforms
464
484
  > AcousticConnectRN.logSignal({ items: 3 }, 1) // iOS only
465
485
  > ```
486
+ >
487
+ > The Android bridge logs a warning naming the keys the SDK is about to
488
+ > discard, so the loss shows up in `logcat` instead of only in a dashboard
489
+ > that never fills in. It does not coerce the value: making the number survive
490
+ > as a JSON string would replace a missing field with a differently-typed one
491
+ > and diverge from iOS in a new way. The fix belongs in the Android SDK's
492
+ > serializer.
466
493
 
467
494
  ### `AcousticConnectRN.logCustomEvent(eventName, values, level): boolean`
468
495
 
@@ -472,6 +499,20 @@ string values end to end, so there is no native route for nested JSON; widening
472
499
  it would preserve the nesting on iOS and silently drop it on Android. Use
473
500
  `logSignal` when the payload needs structure.
474
501
 
502
+ TypeScript will reject a nested value, but types are erased at runtime — a
503
+ payload built from an API response or widened through `any` still reaches the
504
+ bridge nested, gets reshaped by the native SDK, and returns `true`. The wrapper
505
+ logs a `console.warn` naming the offending keys when that happens (once per
506
+ call site, in dev and in production; the payload itself is passed through
507
+ unchanged). If you see it, move the payload to `logSignal`.
508
+
509
+ Numbers are rendered the same way on both platforms — a JS `2` arrives as `2`,
510
+ not `2.0`. Note the remaining difference in *type*: because the Android path is
511
+ string-typed, an Android custom-event number lands on the wire as a JSON string
512
+ (`"2"`) where iOS sends a JSON number (`2`). `logSignal` carries native types on
513
+ both platforms; reach for it when a dashboard or Composer rule compares the
514
+ value numerically.
515
+
475
516
  ### Push configuration (`ConnectConfig.json`)
476
517
 
477
518
  | Field | Type | Default | Semantics |
@@ -636,6 +677,58 @@ default, chosen so both platforms behave the same; the native SDKs' own bundled
636
677
  defaults differ from each other and are tuned for the lifecycle trigger rather
637
678
  than the React Navigation one.
638
679
 
680
+ #### Where screen-view and layout messages come from, and how to reduce duplicates
681
+
682
+ The two message kinds have different sources, and they differ per platform:
683
+
684
+ **Screen views (one source per platform).** On Android, the `<Connect>` wrapper
685
+ is the *only* source — it emits on React Navigation's `state` event. On iOS,
686
+ the native SDK's auto-instrumentation is the *only* source — it emits when a
687
+ screen's view controller reports its appearance. The wrapper never emits a
688
+ screen view on iOS; its role there is to hand the current *route name* to the
689
+ native SDK (which is what makes messages read `Checkout` rather than a native
690
+ container class) and to drive referrer chaining across transitions.
691
+
692
+ Duplicate screen views observed on iOS are therefore not two sources
693
+ overlapping — they are the single native source firing more than once when the
694
+ same screen's view controller reports several appearances for one transition.
695
+ They inflate event volumes and skew per-screen counts; they do not lose data.
696
+ There is no configuration key that collapses them today; a native-side dedupe
697
+ is under investigation. Do not try to solve it by removing the wrapper: on iOS
698
+ that costs route-based names and referrer chaining, and on Android it removes
699
+ screen views entirely. A same-name filter in the wrapper would not help either
700
+ — the wrapper is not the emitter on iOS, and such a filter would swallow
701
+ legitimate repeats like a stack pushing the same screen name twice.
702
+
703
+ **Layouts (two sources on iOS).** With automatic layout capture enabled in
704
+ config, an iOS transition can produce two layout messages: one from the
705
+ wrapper's `logScreenLayout` call and one from the native auto-instrumentation.
706
+ Control it from config, on the native side that has the duplicate:
707
+
708
+ ```json
709
+ {
710
+ "Connect": {
711
+ "layoutConfigIos": {
712
+ "AutoLayout": {
713
+ "GlobalScreenSettings": { "CaptureLayoutOn": 0 }
714
+ }
715
+ }
716
+ }
717
+ }
718
+ ```
719
+
720
+ `CaptureLayoutOn: 0` stands the **native** automatic layout capture down and
721
+ leaves the wrapper's route-named captures as the single source. Set it per
722
+ screen rather than globally if only some screens are noisy. Screen views,
723
+ clicks, and custom events are unaffected by this key.
724
+
725
+ If you would rather keep the native captures and have the wrapper stay out of
726
+ the way, omit `navigationRef` and do not rely on `<Connect>` for screen naming
727
+ — but expect native container class names in place of your route names.
728
+
729
+ Measure before changing either default: the volume depends on your navigator
730
+ structure, and both defaults are what every shipped sample uses.
731
+
639
732
  ### `<Connect>` props
640
733
 
641
734
  | Prop | Type | Required | Description |
@@ -1,4 +1,4 @@
1
- #Tue Sep 08 11:25:15 GMT 2026
1
+ #Wed Sep 09 15:11:03 GMT 2026
2
2
  UseWhiteList=true
3
3
  PrintScreen=3
4
4
  UseRandomSample=false
@@ -579,7 +579,12 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
579
579
  value: Double,
580
580
  moduleName: String
581
581
  ): Boolean {
582
- val result = EOCore.updateConfig(key, value.toString(), EOCore.getLifecycleObject(moduleName))
582
+ // Rendered through formatJsNumber, not Double.toString: EOCore stores
583
+ // config items as strings, and a JS 0 spelled "0.0" is not the same
584
+ // token as the "0" the JSON config files carry, so a consumer setting
585
+ // a whole-number item at runtime wrote a value that no longer matched
586
+ // what the same key looks like on iOS (a native number) or on disk.
587
+ val result = EOCore.updateConfig(key, formatJsNumber(value), EOCore.getLifecycleObject(moduleName))
583
588
  return result
584
589
  }
585
590
 
@@ -667,7 +672,7 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
667
672
  level: Double
668
673
  ): Boolean {
669
674
  val result = Connect.logCustomEvent(eventName, convertToMap(values), level.toInt())
670
- return result
675
+ return warnIfRejected(result, "logCustomEvent", eventName)
671
676
  }
672
677
 
673
678
  /**
@@ -688,6 +693,38 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
688
693
  level: Double
689
694
  ): Boolean {
690
695
  val result = Connect.logSignal(toSignalPayload(values.toHashMap()), level.toInt())
696
+ return warnIfRejected(result, "logSignal")
697
+ }
698
+
699
+ /**
700
+ * Surfaces a `false` returned by a native logging call, and passes it
701
+ * through unchanged.
702
+ *
703
+ * The bridge's boolean means "the SDK accepted this for delivery", never
704
+ * "the collector received it" — nothing on the device knows the latter. But
705
+ * the *accepted* half was itself invisible: a `false` propagated to JS as a
706
+ * bare return value that the wrapper's callers almost never inspect, with
707
+ * nothing in logcat. Callers reporting "the event never arrived" had no way
708
+ * to tell a rejected call from a delivery problem. One line at warn level
709
+ * distinguishes them.
710
+ *
711
+ * Deliberately does not change the return value or throw: an analytics
712
+ * bridge must not turn a rejected event into an app-visible failure.
713
+ *
714
+ * @param result The value the native call returned.
715
+ * @param api Name of the bridge method, for the log line.
716
+ * @param detail Optional extra identifier, e.g. an event name.
717
+ * @return [result], unchanged.
718
+ */
719
+ private fun warnIfRejected(result: Boolean, api: String, detail: String? = null): Boolean {
720
+ if (!result) {
721
+ val suffix = if (detail != null) " ($detail)" else ""
722
+ Log.w(
723
+ TAG,
724
+ "[bridge] $api$suffix: the Connect SDK did not accept the event; nothing was queued " +
725
+ "for delivery. Check that the SDK is enabled and the payload is valid."
726
+ )
727
+ }
691
728
  return result
692
729
  }
693
730
 
@@ -737,7 +774,11 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
737
774
  signalType = resolvedSignalType,
738
775
  additionalParameters = params
739
776
  )
740
- return Promise.resolved(result)
777
+ // An identity signal that the SDK accepts can still be rejected
778
+ // downstream by schema validation — a mismatched method attribute has
779
+ // cost a customer 22 signals while every call reported success. The
780
+ // bridge cannot see that; it can at least report the half it does see.
781
+ return Promise.resolved(warnIfRejected(result, "logIdentity", resolvedSignalType))
741
782
  }
742
783
 
743
784
  /**
@@ -1363,15 +1404,56 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
1363
1404
  * Unwraps a Nitro variant (see [unwrapVariant]) and renders it as a string,
1364
1405
  * for the SDK entry points that take `HashMap<String, String>` payloads.
1365
1406
  *
1366
- * Booleans render as `"true"`/`"false"` and numbers via Kotlin's [Double]
1367
- * formatting (a JS `2` arrives as `2.0` and renders `"2.0"`); strings pass
1368
- * through unchanged.
1407
+ * Booleans render as `"true"`/`"false"`, strings pass through unchanged,
1408
+ * and numbers go through [formatJsNumber] so they read the way the same
1409
+ * JS value reads on iOS.
1369
1410
  *
1370
1411
  * @param value The variant to stringify.
1371
1412
  * @return The wrapped value's string form.
1372
1413
  */
1373
1414
  private fun variantToString(value: Variant_Boolean_String_Double): String =
1374
- unwrapVariant(value).toString()
1415
+ when (val unwrapped = unwrapVariant(value)) {
1416
+ is Double -> formatJsNumber(unwrapped)
1417
+ else -> unwrapped.toString()
1418
+ }
1419
+
1420
+ /**
1421
+ * Renders a JS number the way JS itself — and therefore the iOS bridge —
1422
+ * renders it: `2` stays `"2"`, `2.5` stays `"2.5"`.
1423
+ *
1424
+ * Every JS number crosses Nitro as a [Double], so a JS `2` arrives as
1425
+ * `2.0`, and Kotlin's [Double.toString] spells that `"2.0"`. iOS hands the
1426
+ * same value to the SDK as a native number, which `NSJSONSerialization`
1427
+ * writes as `2`. The result was a cross-platform payload split on any
1428
+ * whole number — `"seats": "2.0"` on Android against `"seats": 2` on iOS —
1429
+ * which breaks dashboards and Composer rules that compare the two.
1430
+ * Dropping the trailing `.0` closes the *textual* half of that gap.
1431
+ *
1432
+ * It does not close the *type* half on the custom-event path: the SDK's
1433
+ * `logCustomEvent` chain is typed `HashMap<String, String>` end to end, so
1434
+ * an Android custom-event number is a JSON string (`"2"`) where iOS sends a
1435
+ * JSON number (`2`). Only `logSignal` carries native types on Android, and
1436
+ * that path deliberately does not come through here — see [toSignalPayload].
1437
+ *
1438
+ * Integral values are rendered through [Long] only below 2^53, which spans
1439
+ * every integer JS itself represents exactly; beyond that the [Double] form
1440
+ * is kept rather than inventing digits a `Long` round-trip would imply.
1441
+ * Non-finite values keep Kotlin's spelling (`"NaN"`, `"Infinity"`) — there
1442
+ * is no JSON representation to match, and stringifying is strictly safer
1443
+ * than throwing out of an analytics call.
1444
+ *
1445
+ * @param value The number to render.
1446
+ * @return Its string form, without a trailing `.0` for whole numbers.
1447
+ */
1448
+ internal fun formatJsNumber(value: Double): String {
1449
+ if (!value.isFinite()) {
1450
+ return value.toString()
1451
+ }
1452
+ if (value == Math.floor(value) && Math.abs(value) < 9007199254740992.0) {
1453
+ return value.toLong().toString()
1454
+ }
1455
+ return value.toString()
1456
+ }
1375
1457
 
1376
1458
  /**
1377
1459
  * Converts a map of Variant_Boolean_String_Double to a HashMap<String?, String?>.
@@ -1408,12 +1490,26 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
1408
1490
  * `null` becomes [JSONObject.NULL] rather than a Kotlin `null`, which
1409
1491
  * `org.json` requires for an explicit JSON `null`.
1410
1492
  *
1411
- * Known limitation: a **top-level** numeric value is still dropped, because
1412
- * `getHashValues` has no `Number` branch and the bridge cannot influence
1413
- * that walk. Numbers nested inside an object or array are unaffected — the
1414
- * enclosing [JSONObject]/[JSONArray] is built here, so `org.json`
1415
- * serializes them normally. iOS carries top-level numbers fine; this is an
1416
- * SDK-side asymmetry, pre-dating this conversion.
1493
+ * Known limitation: a **top-level** numeric value is still dropped, and
1494
+ * cannot be rescued from here. `Signal.getJSON()` serializes the payload
1495
+ * through EOCore's `JsonUtil.getHashValues`, whose `instanceof` ladder has
1496
+ * no `Number` branch, so the entry is skipped with no error. Numbers nested
1497
+ * inside an object or array are unaffected the enclosing
1498
+ * [JSONObject]/[JSONArray] is built here, so `org.json` serializes them
1499
+ * normally. iOS carries top-level numbers fine; this is an SDK-side
1500
+ * asymmetry, pre-dating this conversion.
1501
+ *
1502
+ * Two non-fixes, so they are not attempted again: coercing the number to a
1503
+ * [String] would make it survive as a JSON string, diverging from iOS's
1504
+ * JSON number in a *new* way and silently changing the shape of data
1505
+ * already-shipping clients receive; and there is no `org.json` wrapper that
1506
+ * `getHashValues` accepts and that serializes as a bare number, so the
1507
+ * shape cannot be preserved either. The real fix is a `Number` branch in
1508
+ * `getHashValues` (Android SDK).
1509
+ *
1510
+ * What this method does do is [warnAboutDroppedTopLevelNumbers] — name the
1511
+ * keys the SDK is about to discard, so the loss is visible in logcat
1512
+ * instead of silent.
1417
1513
  *
1418
1514
  * A [JSONException] aborts the whole payload rather than escaping to the
1419
1515
  * caller. Non-finite numbers are the case that raises it: `org.json`
@@ -1440,9 +1536,44 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
1440
1536
  Log.w(TAG, "[bridge] logSignal payload is not representable as JSON — dropping it: ${e.message}")
1441
1537
  return HashMap()
1442
1538
  }
1539
+ warnAboutDroppedTopLevelNumbers(map)
1443
1540
  return map
1444
1541
  }
1445
1542
 
1543
+ /**
1544
+ * Logs a warning naming the top-level numeric keys that the SDK's signal
1545
+ * serializer will discard (see [toSignalPayload] for why it does).
1546
+ *
1547
+ * The point is purely to stop the loss being silent. Before this, a JS
1548
+ * `logSignal({ orderTotal: 24.99 })` returned `true`, emitted a type-21
1549
+ * message, and simply had no `orderTotal` in it — indistinguishable, from
1550
+ * the caller's side, from a signal that arrived intact. The same call on
1551
+ * iOS carries the value, so a cross-platform dashboard shows the metric
1552
+ * populated on one platform and empty on the other with nothing anywhere
1553
+ * to explain it.
1554
+ *
1555
+ * Iterates the already-converted map so it reflects exactly what is handed
1556
+ * to the SDK. Booleans and strings are not mentioned: `getHashValues`
1557
+ * accumulates both.
1558
+ *
1559
+ * @param payload The converted payload, as returned to `logSignal`.
1560
+ */
1561
+ private fun warnAboutDroppedTopLevelNumbers(payload: Map<String?, Any?>) {
1562
+ val dropped = payload.entries
1563
+ .filter { it.value is Number }
1564
+ .mapNotNull { it.key }
1565
+ if (dropped.isEmpty()) {
1566
+ return
1567
+ }
1568
+ Log.w(
1569
+ TAG,
1570
+ "[bridge] logSignal: top-level numeric value(s) ${dropped.sorted()} will be dropped by the " +
1571
+ "Android SDK's signal serializer, which accumulates only strings, booleans and nested " +
1572
+ "JSON. iOS sends them. Nest the value under an object to carry it on both platforms, " +
1573
+ "e.g. { cart: { total: 24.99 } } instead of { total: 24.99 }."
1574
+ )
1575
+ }
1576
+
1446
1577
  /**
1447
1578
  * Recursive helper for [toSignalPayload]. Maps Kotlin containers onto their
1448
1579
  * `org.json` equivalents and leaves scalars alone.
@@ -574,6 +574,34 @@ class HybridAcousticConnectRN: HybridAcousticConnectRNSpec {
574
574
  func logCustomEvent(eventName: String, values: Dictionary<String, Variant_Bool_String_Double>, level: Double) throws -> Bool {
575
575
  let logLevel = try getLogLevel(level: level)
576
576
  let result = ConnectCustomEvent().logEvent(eventName, values: convertToAnyDictionary(input: values), level: logLevel)
577
+ return Self.warnIfRejected(result, api: "logCustomEvent", detail: eventName)
578
+ }
579
+
580
+ /// Surfaces a `false` returned by a native logging call, and passes it
581
+ /// through unchanged.
582
+ ///
583
+ /// The bridge's boolean means "the SDK accepted this for delivery", never
584
+ /// "the collector received it" — nothing on the device knows the latter.
585
+ /// But the *accepted* half was itself invisible: a `false` reached JS as a
586
+ /// bare return value that the wrapper's callers almost never inspect, with
587
+ /// nothing in `os_log`. Callers reporting "the event never arrived" had no
588
+ /// way to tell a rejected call from a delivery problem. One line at
589
+ /// `.warning` distinguishes them.
590
+ ///
591
+ /// Deliberately does not change the return value or throw: an analytics
592
+ /// bridge must not turn a rejected event into an app-visible failure.
593
+ ///
594
+ /// - Parameters:
595
+ /// - result: The value the native call returned.
596
+ /// - api: Name of the bridge method, for the log line.
597
+ /// - detail: Optional extra identifier, e.g. an event name.
598
+ /// - Returns: `result`, unchanged.
599
+ @discardableResult
600
+ private static func warnIfRejected(_ result: Bool, api: String, detail: String? = nil) -> Bool {
601
+ if !result {
602
+ let suffix = detail.map { " (\($0))" } ?? ""
603
+ bridgeLog.warning("\(api, privacy: .public)\(suffix, privacy: .public): the Connect SDK did not accept the event; nothing was queued for delivery. Check that the SDK is enabled and the payload is valid.")
604
+ }
577
605
  return result
578
606
  }
579
607
 
@@ -596,7 +624,7 @@ class HybridAcousticConnectRN: HybridAcousticConnectRNSpec {
596
624
  let logLevel = try getLogLevel(level: level)
597
625
  let payload = ConnectRNParsing.jsonSafeDictionary(values.toDictionary())
598
626
  let result = ConnectCustomEvent().logSignal(payload, level: logLevel)
599
- return result
627
+ return Self.warnIfRejected(result, api: "logSignal")
600
628
  }
601
629
 
602
630
  /// Logs a user identity so device activity can be associated with a known
@@ -626,12 +654,18 @@ class HybridAcousticConnectRN: HybridAcousticConnectRNSpec {
626
654
  let resolvedParameters = additionalParameters
627
655
  ?? ConnectRNParsing.defaultIdentityParameters(for: resolvedSignalType)
628
656
  return Promise.async { @MainActor in
629
- ConnectSDK.shared.identity.log(
657
+ let result = ConnectSDK.shared.identity.log(
630
658
  identifierName: identifierName,
631
659
  identifierValue: identifierValue,
632
660
  signalType: resolvedSignalType,
633
661
  additionalParameters: resolvedParameters
634
662
  )
663
+ // An identity signal the SDK accepts can still be rejected
664
+ // downstream by schema validation — a mismatched method attribute
665
+ // has cost a customer 22 signals while every call reported
666
+ // success. The bridge cannot see that; it can at least report the
667
+ // half it does see.
668
+ return HybridAcousticConnectRN.warnIfRejected(result, api: "logIdentity", detail: resolvedSignalType)
635
669
  }
636
670
  }
637
671
 
@@ -124,6 +124,14 @@ class TLTRN {
124
124
  * Passing no delay used to send a hardcoded `0`, which made
125
125
  * `CaptureLayoutDelay` inert for React Native apps and fired the capture at
126
126
  * the *start* of the transition rather than after it.
127
+ *
128
+ * @returns With no `delayMs` — the normal case — only that the capture was
129
+ * **scheduled**, not that it produced a layout message. The native
130
+ * deferred overload dispatches and returns immediately, so anything that
131
+ * goes wrong once it runs (no view controller resolved, layout capture
132
+ * gated off by config) cannot be reflected here; those surface in logcat
133
+ * / os_log instead. Pass `0` and the value describes the capture itself,
134
+ * at the cost of capturing mid-transition.
127
135
  */
128
136
  static logScreenLayout = (name, delayMs) => {
129
137
  TLTRN.currentScreen = name || '';
@@ -177,8 +185,82 @@ class TLTRN {
177
185
  }
178
186
  return result;
179
187
  };
188
+
189
+ /**
190
+ * Keys already warned about, so a call site inside a render or a list loop
191
+ * warns once rather than on every pass.
192
+ */
193
+ static warnedNestedValueSites = new Set();
194
+
195
+ /**
196
+ * Cap on {@link warnedNestedValueSites}.
197
+ *
198
+ * The site key includes the nested keys' names, so a payload built from an
199
+ * API response — per-record ids, timestamps — makes every call a distinct
200
+ * site, and the set would then grow for the life of the session. By the
201
+ * hundredth distinct shape the warning has made its point, so it stops
202
+ * instead of accumulating: bounded memory matters more than warning about
203
+ * shape 101.
204
+ */
205
+ static WARNED_NESTED_VALUE_SITES_MAX = 100;
206
+
207
+ /**
208
+ * Warns when a flat-values payload carries a nested object or array.
209
+ *
210
+ * `logCustomEvent`/`logDialogCustomEvent` are typed for flat scalars, but
211
+ * TypeScript types are erased at runtime: a payload built from an API
212
+ * response, widened through `any`, or passed from untyped JS reaches the
213
+ * bridge with its nesting intact. Both platforms then reshape it silently —
214
+ * Android's SDK chain is typed `HashMap<String, String>` end to end, so a
215
+ * nested value is stringified into whatever its `toString()` yields — and
216
+ * the call still returns `true`. `logSignal` is the API that carries nested
217
+ * JSON on both platforms.
218
+ *
219
+ * Warning only: the payload is passed through untouched, so this changes no
220
+ * behaviour and cannot break a caller who is relying on today's reshaping.
221
+ *
222
+ * @param api Name of the calling API, for the message.
223
+ * @param values The payload about to cross the bridge.
224
+ */
225
+ static warnOnNestedValues = (api, values) => {
226
+ if (values == null || typeof values !== 'object') {
227
+ return;
228
+ }
229
+ const nested = Object.keys(values).filter(key => {
230
+ const value = values[key];
231
+ return typeof value === 'object' && value !== null;
232
+ });
233
+ if (nested.length === 0) {
234
+ return;
235
+ }
236
+ const site = `${api}:${nested.sort().join(',')}`;
237
+ if (TLTRN.warnedNestedValueSites.has(site)) {
238
+ return;
239
+ }
240
+ if (TLTRN.warnedNestedValueSites.size >= TLTRN.WARNED_NESTED_VALUE_SITES_MAX) {
241
+ return;
242
+ }
243
+ TLTRN.warnedNestedValueSites.add(site);
244
+ console.warn(`TLTRN.${api}: nested value(s) [${nested.sort().join(', ')}] will be flattened — ` + `${api} carries flat scalars only, and the native SDKs reshape anything else ` + `without reporting it. Use logSignal for nested JSON; it is carried intact on ` + `both platforms.`);
245
+ };
246
+
247
+ /**
248
+ * Logs a custom event.
249
+ *
250
+ * @param eventName Event name, as it appears in the posted JSON.
251
+ * @param values Flat key/value pairs. Nested objects and arrays are NOT
252
+ * supported here and are reshaped by the native SDKs — use `logSignal`
253
+ * for nested JSON.
254
+ * @param level Monitoring level for this event.
255
+ * @returns Whether the native SDK **accepted the event for delivery** —
256
+ * not whether the collector received it. The event is queued locally and
257
+ * posted later, so no return value from this call can attest to delivery;
258
+ * a `true` here means only that the SDK took the event. A `false` is also
259
+ * logged natively (logcat / os_log) so the rejection is visible.
260
+ */
180
261
  static logCustomEvent = async (eventName, values, level) => {
181
262
  let result = false;
263
+ TLTRN.warnOnNestedValues('logCustomEvent', values);
182
264
  try {
183
265
  result = _index.default.logCustomEvent(eventName, values, level);
184
266
  } catch (error) {
@@ -215,8 +297,16 @@ class TLTRN {
215
297
  }
216
298
  return result;
217
299
  };
300
+
301
+ /**
302
+ * Logs a custom event tied to a dialog.
303
+ *
304
+ * Same flat-values contract and same return-value meaning as
305
+ * {@link logCustomEvent} — it routes to the same native API.
306
+ */
218
307
  static logDialogCustomEvent = async (dialogId, eventName, values) => {
219
308
  let result = false;
309
+ TLTRN.warnOnNestedValues('logDialogCustomEvent', values);
220
310
  try {
221
311
  result = _index.default.logDialogCustomEvent(dialogId, eventName, values);
222
312
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"names":["_MessageQueue","_interopRequireDefault","require","_reactNative","_KeyboardListener","_DialogListener","_index","e","__esModule","default","previousGlobalErrorHandler","global","ErrorUtils","getGlobalHandler","setGlobalHandler","isFatal","AcousticConnectRN","logExceptionEvent","JSON","stringify","loggingError","console","warn","message","TLTRN","currentScreen","lastJSBridgeMessageTime","totalRenderTime","messageRenderTime","countMsgs","messageConsole","lastMessageConsole","isLoggingData","displayDebug","myTimer","handle","started","time","startTimer","setInterval","checkTime","stopTimer","clearInterval","init","initialCurrentScreen","showDebugConsoleMessages","undefined","currentScreenMsg","MessageQueue","spy","listenToBridge","interceptKeyboardEvents","enable","keyListener","logScreenViewPageName","name","result","setCurrentScreenName","error","log","logScreenViewContextLoad","prevName","USE_CONFIGURED_CAPTURE_DELAY","logScreenLayout","delayMs","logClickEvent","event","target","__nativeTag","_nativeTag","controlId","fiberId","_targetInst","memoizedProps","id","length","Array","isArray","_dispatchInstances","found","find","node","logTextChangeEvent","text","_ariaLabel","Platform","OS","logCustomEvent","eventName","values","level","logDialogShowEvent","dialogId","dialogTitle","dialogType","logDialogDismissEvent","dismissReason","logDialogButtonClickEvent","buttonText","buttonIndex","logDialogCustomEvent","eventListenerRegistered","eventListenerUnsubscribe","interceptDialogEvents","dialogListener","DialogListener","getInstance","startIntercepting","addEventListener","stopIntercepting","now","Date","getTime","from","type","data","module","method","args","logTeal","res","dict","ReactLayoutTime","KeyboardListener","_instance","_default","exports"],"sourceRoot":"../../src","sources":["TLTRN.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_MessageQueue","_interopRequireDefault","require","_reactNative","_KeyboardListener","_DialogListener","_index","e","__esModule","default","previousGlobalErrorHandler","global","ErrorUtils","getGlobalHandler","setGlobalHandler","isFatal","AcousticConnectRN","logExceptionEvent","JSON","stringify","loggingError","console","warn","message","TLTRN","currentScreen","lastJSBridgeMessageTime","totalRenderTime","messageRenderTime","countMsgs","messageConsole","lastMessageConsole","isLoggingData","displayDebug","myTimer","handle","started","time","startTimer","setInterval","checkTime","stopTimer","clearInterval","init","initialCurrentScreen","showDebugConsoleMessages","undefined","currentScreenMsg","MessageQueue","spy","listenToBridge","interceptKeyboardEvents","enable","keyListener","logScreenViewPageName","name","result","setCurrentScreenName","error","log","logScreenViewContextLoad","prevName","USE_CONFIGURED_CAPTURE_DELAY","logScreenLayout","delayMs","logClickEvent","event","target","__nativeTag","_nativeTag","controlId","fiberId","_targetInst","memoizedProps","id","length","Array","isArray","_dispatchInstances","found","find","node","logTextChangeEvent","text","_ariaLabel","Platform","OS","warnedNestedValueSites","Set","WARNED_NESTED_VALUE_SITES_MAX","warnOnNestedValues","api","values","nested","Object","keys","filter","key","value","site","sort","join","has","size","add","logCustomEvent","eventName","level","logDialogShowEvent","dialogId","dialogTitle","dialogType","logDialogDismissEvent","dismissReason","logDialogButtonClickEvent","buttonText","buttonIndex","logDialogCustomEvent","eventListenerRegistered","eventListenerUnsubscribe","interceptDialogEvents","dialogListener","DialogListener","getInstance","startIntercepting","addEventListener","stopIntercepting","now","Date","getTime","from","type","data","module","method","args","logTeal","res","dict","ReactLayoutTime","KeyboardListener","_instance","_default","exports"],"sourceRoot":"../../src","sources":["TLTRN.ts"],"mappings":"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","ignoreList":[]}