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 +10 -0
- package/README.md +93 -0
- package/android/src/main/assets/ConnectBasicConfig.properties +1 -1
- package/android/src/main/java/com/acousticconnectrn/HybridAcousticConnectRN.kt +144 -13
- package/ios/HybridAcousticConnectRN.swift +36 -2
- package/lib/commonjs/TLTRN.js +90 -0
- package/lib/commonjs/TLTRN.js.map +1 -1
- package/lib/commonjs/components/Connect.js +128 -23
- package/lib/commonjs/components/Connect.js.map +1 -1
- package/lib/module/TLTRN.js +90 -0
- package/lib/module/TLTRN.js.map +1 -1
- package/lib/module/components/Connect.js +128 -23
- package/lib/module/components/Connect.js.map +1 -1
- package/lib/typescript/src/TLTRN.d.ts +63 -0
- package/lib/typescript/src/TLTRN.d.ts.map +1 -1
- package/lib/typescript/src/components/Connect.d.ts.map +1 -1
- package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts +30 -3
- package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts.map +1 -1
- package/package.json +4 -1
- package/src/TLTRN.ts +93 -0
- package/src/components/Connect.tsx +133 -22
- package/src/specs/react-native-acoustic-connect.nitro.ts +30 -3
- package/Examples/SampleUI/__tests__/App.test.tsx +0 -17
- package/Examples/SampleUI/src/styles/__tests__/fonts.test.js +0 -290
- package/cli/__tests__/doctor.test.mjs +0 -88
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 |
|
|
@@ -579,7 +579,12 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
|
|
|
579
579
|
value: Double,
|
|
580
580
|
moduleName: String
|
|
581
581
|
): Boolean {
|
|
582
|
-
|
|
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
|
-
|
|
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"
|
|
1367
|
-
*
|
|
1368
|
-
*
|
|
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)
|
|
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,
|
|
1412
|
-
*
|
|
1413
|
-
*
|
|
1414
|
-
*
|
|
1415
|
-
*
|
|
1416
|
-
*
|
|
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
|
|
package/lib/commonjs/TLTRN.js
CHANGED
|
@@ -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":[]}
|