react-native-acoustic-connect-beta 19.0.21 → 19.0.23
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.23 (2026-09-10)
|
|
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.22 (2026-09-10)
|
|
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.21 (2026-09-09)
|
|
2
12
|
|
|
3
13
|
### Reverts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"Connect": {
|
|
3
3
|
"AndroidNotificationIconResName": "ic_notification",
|
|
4
|
-
"AndroidVersion": "11.0.
|
|
4
|
+
"AndroidVersion": "11.0.26-beta",
|
|
5
5
|
"AppKey": "YOUR_CONNECT_APP_KEY_HERE",
|
|
6
6
|
"KillSwitchUrl": "YOUR_KILL_SWITCH_URL_HERE",
|
|
7
7
|
"PostMessageUrl": "YOUR_POST_MESSAGE_URL_HERE",
|
package/README.md
CHANGED
|
@@ -569,13 +569,22 @@ one. To turn screenshot capture off on both platforms:
|
|
|
569
569
|
"Connect": {
|
|
570
570
|
"layoutConfig": {
|
|
571
571
|
"AutoLayout": {
|
|
572
|
-
"GlobalScreenSettings": { "ScreenShot": false
|
|
572
|
+
"GlobalScreenSettings": { "ScreenShot": false }
|
|
573
573
|
}
|
|
574
574
|
}
|
|
575
575
|
}
|
|
576
576
|
}
|
|
577
577
|
```
|
|
578
578
|
|
|
579
|
+
`ScreenShot` is the cross-platform switch — set it in `layoutConfig` (or per
|
|
580
|
+
platform) and both native SDKs honour it. `CaptureScreenshotOn` is a related
|
|
581
|
+
but **iOS-only** key: iOS's native auto-instrumentation reads it, but on
|
|
582
|
+
Android the equivalent reader has no callers, so `CaptureScreenshotOn` is
|
|
583
|
+
accepted wherever you put it and does nothing there. Set it only under
|
|
584
|
+
`layoutConfigIos` if you want it; leaving it out of `layoutConfigAndroid` (or
|
|
585
|
+
the shared `layoutConfig`) costs nothing on Android and avoids implying it
|
|
586
|
+
does something it doesn't.
|
|
587
|
+
|
|
579
588
|
Put anything common in `layoutConfig` and use `layoutConfigIos` /
|
|
580
589
|
`layoutConfigAndroid` only for what differs. The platform block is **deep-merged**
|
|
581
590
|
over the shared one, so it refines the baseline rather than replacing it: an
|
|
@@ -584,6 +593,32 @@ rules, and every other shared value. Arrays are replaced outright rather than
|
|
|
584
593
|
concatenated, so a platform block can shorten or clear a shared list such as
|
|
585
594
|
`MaskIdList`.
|
|
586
595
|
|
|
596
|
+
#### Masking is selection, then redaction — an unmatched pattern leaves data unmasked
|
|
597
|
+
|
|
598
|
+
A screen rule's `Masking` block works in two independent steps: a control is
|
|
599
|
+
first **selected** by a matching `MaskIdList` (control id), `MaskValueList`
|
|
600
|
+
(control value), `MaskAccessibilityIdList` (accessibility id), or
|
|
601
|
+
`MaskAccessibilityLabelList` (accessibility label) pattern, and only a
|
|
602
|
+
*selected* control is redacted — its value, and (Connect iOS 2.1.22+ / Android
|
|
603
|
+
11.0.23-beta+ only — older SDKs serialised the accessibility object verbatim
|
|
604
|
+
regardless of masking) its accessibility label and hint. A control whose value
|
|
605
|
+
never matches any pattern in any of the four lists is not masked in any field.
|
|
606
|
+
That's by design, not a bug — but it means a client whose patterns don't
|
|
607
|
+
happen to match a given value can believe that value is masked when it never
|
|
608
|
+
was.
|
|
609
|
+
|
|
610
|
+
Email addresses are an easy miss: they rarely match a card-number or
|
|
611
|
+
`SECRET-`-style pattern, and free-text fields (bios, support messages,
|
|
612
|
+
usernames) routinely contain one. For any screen that collects email
|
|
613
|
+
addresses, add a pattern to `MaskValueList`:
|
|
614
|
+
|
|
615
|
+
```json
|
|
616
|
+
{ "MaskValueList": ["[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"] }
|
|
617
|
+
```
|
|
618
|
+
|
|
619
|
+
(The `bare-workflow` and `expo` sample `ConnectConfig.example.json` already
|
|
620
|
+
ship this pattern on `GlobalScreenSettings`.)
|
|
621
|
+
|
|
587
622
|
When no block applies, each native SDK keeps the defaults from its own bundled
|
|
588
623
|
layout config:
|
|
589
624
|
|
|
@@ -636,6 +671,54 @@ every shipped template uses. To stand layout capture down deliberately, set
|
|
|
636
671
|
`CaptureLayoutOn: 0` on the rule instead — it is the key that means that, and it
|
|
637
672
|
leaves `NumberOfWebViews` free to describe the screen.
|
|
638
673
|
|
|
674
|
+
#### WebView capture on Android: prerequisites and two open limitations
|
|
675
|
+
|
|
676
|
+
A screen that hosts a `react-native-webview` `WebView` has capture behaviour
|
|
677
|
+
beyond the config above:
|
|
678
|
+
|
|
679
|
+
- **The WebView must be scrolled on screen.** A capture only records what is
|
|
680
|
+
currently visible — the native tree-walk skips subtrees outside the
|
|
681
|
+
viewport by design. A `WebView` sitting below the fold at the default
|
|
682
|
+
scroll position yields a layout with no WebView nodes at all, which looks
|
|
683
|
+
exactly like WebView capture never engaged. Scroll it fully into view
|
|
684
|
+
before triggering (or waiting on) a capture.
|
|
685
|
+
- **`GoogleWebViewEnabled`** is a top-level `Connect` key (Android only,
|
|
686
|
+
default `true`) that gates whether the SDK instruments WebViews at all:
|
|
687
|
+
|
|
688
|
+
```json
|
|
689
|
+
{ "Connect": { "GoogleWebViewEnabled": false } }
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
Set to `false`, the SDK does not discover or walk into any `WebView` on the
|
|
693
|
+
screen — the rest of that screen still captures normally. It does not gate
|
|
694
|
+
anything else on this list: screen views, clicks, and non-WebView layout
|
|
695
|
+
content are unaffected either way.
|
|
696
|
+
- **A discovered WebView currently drops that screen's whole layout
|
|
697
|
+
message.** Once the SDK finds a `WebView`, it waits for a DOM-capture
|
|
698
|
+
correlation id from the page before it can finish and post the layout — and
|
|
699
|
+
a React Native-hosted `WebView` never supplies one, so the wait never
|
|
700
|
+
resolves and the *entire* screen's layout message is dropped, not just the
|
|
701
|
+
WebView's portion. Confirmed present in Android Connect **11.0.23-beta**, the
|
|
702
|
+
newest published artifact at the time of writing, and in every earlier version
|
|
703
|
+
in the supported range — measured on an emulator, where a capture on a screen
|
|
704
|
+
with a visible `WebView` posted **no messages at all** for that session, since
|
|
705
|
+
the layout's queue placeholder blocks the batch it sits in. There is no
|
|
706
|
+
client-side fix; `GoogleWebViewEnabled: false` (below) avoids it by not
|
|
707
|
+
instrumenting the `WebView` in the first place. A fix exists in the native SDK
|
|
708
|
+
but is not in any published artifact yet — check the Android Connect release
|
|
709
|
+
notes for a version above 11.0.23-beta before assuming this still applies.
|
|
710
|
+
- **Enabling WebView capture replaces the app's `WebViewClient`.** The native
|
|
711
|
+
SDK installs its own `WebViewClient` on that `WebView` to instrument it, in
|
|
712
|
+
place of the one `react-native-webview` had set — so callbacks such as
|
|
713
|
+
`onHttpError` and `onNavigationStateChange` on that `WebView` stop firing
|
|
714
|
+
while capture is active. Same status as the item above: present through Android
|
|
715
|
+
Connect **11.0.23-beta**, fixed in the native SDK but not yet published, and
|
|
716
|
+
the rest of the screen is unaffected either way.
|
|
717
|
+
|
|
718
|
+
Both of the limitations above only occur once the SDK is instrumenting a
|
|
719
|
+
`WebView`, so `GoogleWebViewEnabled: false` avoids both — at the cost of
|
|
720
|
+
getting no WebView capture on that screen at all.
|
|
721
|
+
|
|
639
722
|
#### Capture timing (`CaptureLayoutDelay`)
|
|
640
723
|
|
|
641
724
|
`AutoLayout.GlobalScreenSettings.CaptureLayoutDelay` is how long, in
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"IpPlaceholder": "N/A",
|
|
25
25
|
"KillSwitchAsync": true,
|
|
26
26
|
"KillSwitchDelay": 300,
|
|
27
|
-
"LibraryVersion": "11.0.
|
|
27
|
+
"LibraryVersion": "11.0.26-beta",
|
|
28
28
|
"LogFullRequestResponsePayloads": true,
|
|
29
29
|
"MessageTypeHeader": "WorklightHit",
|
|
30
30
|
"MessageTypes": "4,5",
|
package/package.json
CHANGED
|
@@ -233,7 +233,7 @@
|
|
|
233
233
|
"source": "src/index",
|
|
234
234
|
"summary": "react-native ios android tealeaf connect cxa wxca er enhanced-replay",
|
|
235
235
|
"types": "./lib/typescript/src/index.d.ts",
|
|
236
|
-
"version": "19.0.
|
|
236
|
+
"version": "19.0.23",
|
|
237
237
|
"workspaces": [
|
|
238
238
|
"example",
|
|
239
239
|
"Examples/bare-workflow"
|