react-native-acoustic-connect 19.0.28 → 19.0.34
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 +30 -0
- package/ConnectConfig.example.json +1 -1
- package/README.md +36 -2
- package/android/build.gradle +33 -0
- package/android/src/main/assets/ConnectAdvancedConfig.json +1 -1
- package/android/src/main/assets/EOCoreAdvancedConfig.json +1 -1
- package/android/src/main/assets/TealeafAdvancedConfig.json +1 -1
- package/android/src/main/java/com/acousticconnectrn/HybridAcousticConnectRN.kt +62 -15
- package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts +12 -0
- package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/specs/react-native-acoustic-connect.nitro.ts +12 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,33 @@
|
|
|
1
|
+
## 19.0.34 (2026-09-22)
|
|
2
|
+
|
|
3
|
+
### Reverts
|
|
4
|
+
|
|
5
|
+
* Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/go-acoustic/react-native-acoustic-connect/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
|
|
6
|
+
## 19.0.33 (2026-09-22)
|
|
7
|
+
|
|
8
|
+
### Reverts
|
|
9
|
+
|
|
10
|
+
* Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/go-acoustic/react-native-acoustic-connect/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
|
|
11
|
+
## 19.0.32 (2026-09-22)
|
|
12
|
+
|
|
13
|
+
### Reverts
|
|
14
|
+
|
|
15
|
+
* Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/go-acoustic/react-native-acoustic-connect/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
|
|
16
|
+
## 19.0.31 (2026-09-22)
|
|
17
|
+
|
|
18
|
+
### Reverts
|
|
19
|
+
|
|
20
|
+
* Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/go-acoustic/react-native-acoustic-connect/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
|
|
21
|
+
## 19.0.30 (2026-09-21)
|
|
22
|
+
|
|
23
|
+
### Reverts
|
|
24
|
+
|
|
25
|
+
* Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/go-acoustic/react-native-acoustic-connect/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
|
|
26
|
+
## 19.0.29 (2026-09-17)
|
|
27
|
+
|
|
28
|
+
### Reverts
|
|
29
|
+
|
|
30
|
+
* Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/go-acoustic/react-native-acoustic-connect/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
|
|
1
31
|
## 19.0.28 (2026-09-14)
|
|
2
32
|
|
|
3
33
|
### Reverts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"Connect": {
|
|
3
3
|
"AndroidNotificationIconResName": "ic_notification",
|
|
4
|
-
"AndroidVersion": "11.0.
|
|
4
|
+
"AndroidVersion": "11.0.36",
|
|
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
|
@@ -106,6 +106,29 @@ directories, and re-running either command is safe. After install, run
|
|
|
106
106
|
`npx acoustic-connect doctor` to validate the result — see
|
|
107
107
|
[Setup CLI](#setup-cli-acoustic-connect) below.
|
|
108
108
|
|
|
109
|
+
### Where the Android Connect SDK is resolved from
|
|
110
|
+
|
|
111
|
+
You don't need to add any repositories. This package's `android/build.gradle`
|
|
112
|
+
declares both of the ones it needs, and your app inherits them:
|
|
113
|
+
|
|
114
|
+
| Repository | Carries |
|
|
115
|
+
| --- | --- |
|
|
116
|
+
| [`go-acoustic/Android_Maven`](https://github.com/go-acoustic/Android_Maven) | Beta builds (`-beta` versions) |
|
|
117
|
+
| Maven Central | Release builds and the older version history |
|
|
118
|
+
|
|
119
|
+
Beta artifacts are published only to the GitHub-hosted repository, so a build
|
|
120
|
+
that does not declare it never sees them. When `AndroidVersion` is empty the
|
|
121
|
+
version is resolved dynamically, and Gradle takes the newest match across
|
|
122
|
+
*both* repositories — the beta repository does not need to be consulted first
|
|
123
|
+
for a new beta to win. It is scoped to the `io.github.go-acoustic` group, so
|
|
124
|
+
nothing else in your build is routed through it, and Maven Central still
|
|
125
|
+
answers for any version the beta repository does not carry.
|
|
126
|
+
|
|
127
|
+
This matters when you pin. Leaving `AndroidVersion` empty resolves the newest
|
|
128
|
+
version in the supported range across **both** repositories — which, for as
|
|
129
|
+
long as betas are the newest builds, means a `-beta`. Pin `AndroidVersion` to
|
|
130
|
+
a specific release if you would rather track Maven Central's release line.
|
|
131
|
+
|
|
109
132
|
## Setup CLI (`acoustic-connect`)
|
|
110
133
|
|
|
111
134
|
The package ships a small CLI, installed as `acoustic-connect` (invoke it with
|
|
@@ -363,7 +386,7 @@ screen / touch / keyboard tracking) can skip it entirely.
|
|
|
363
386
|
### 3. Log events (imperative, anywhere)
|
|
364
387
|
|
|
365
388
|
```ts
|
|
366
|
-
import AcousticConnectRN from 'react-native-acoustic-connect'
|
|
389
|
+
import AcousticConnectRN, { TLTRN } from 'react-native-acoustic-connect'
|
|
367
390
|
|
|
368
391
|
// Custom application event (flat key/value pairs)
|
|
369
392
|
AcousticConnectRN.logCustomEvent('checkout_started', { cartId: 'abc' }, 1)
|
|
@@ -377,8 +400,12 @@ AcousticConnectRN.logSignal(
|
|
|
377
400
|
1
|
|
378
401
|
)
|
|
379
402
|
|
|
380
|
-
// Force a logical screen name (e.g. for non-NavigationContainer screens)
|
|
403
|
+
// Force a logical screen name (e.g. for non-NavigationContainer screens).
|
|
404
|
+
// Sets the name that later events are attributed to — it does not itself emit
|
|
405
|
+
// a screen view or capture a layout. For a screen <Connect> cannot see, follow
|
|
406
|
+
// it with logScreenLayout, which does both.
|
|
381
407
|
AcousticConnectRN.setCurrentScreenName('CheckoutScreen')
|
|
408
|
+
TLTRN.logScreenLayout('CheckoutScreen')
|
|
382
409
|
|
|
383
410
|
// Manual exception capture
|
|
384
411
|
AcousticConnectRN.logExceptionEvent(
|
|
@@ -953,6 +980,13 @@ leave it empty for the newest 11.x available). 12.x is intentionally outside
|
|
|
953
980
|
the supported range pending compatibility validation — track that work
|
|
954
981
|
separately if you need it.
|
|
955
982
|
|
|
983
|
+
If the version you pinned is a `-beta`, check that your build can reach
|
|
984
|
+
[`go-acoustic/Android_Maven`](https://github.com/go-acoustic/Android_Maven) —
|
|
985
|
+
beta artifacts live there rather than on Maven Central. This package declares
|
|
986
|
+
that repository for you, so a failure here usually means the build is offline
|
|
987
|
+
or behind a proxy that blocks `raw.githubusercontent.com`. See
|
|
988
|
+
[Where the Android Connect SDK is resolved from](#where-the-android-connect-sdk-is-resolved-from).
|
|
989
|
+
|
|
956
990
|
### Gradle can't find `node`
|
|
957
991
|
|
|
958
992
|
Common when Gradle is launched outside an NVM-loaded shell. Either:
|
package/android/build.gradle
CHANGED
|
@@ -173,6 +173,39 @@ repositories {
|
|
|
173
173
|
allprojects {
|
|
174
174
|
repositories {
|
|
175
175
|
google()
|
|
176
|
+
|
|
177
|
+
// Beta Connect artifacts publish HERE, not to Maven Central. Central is
|
|
178
|
+
// still consulted below — it carries every version up to 11.0.31-beta —
|
|
179
|
+
// but newer betas land only in this GitHub-hosted Maven tree, so a build
|
|
180
|
+
// that does not know about it silently freezes `connect:+` at whatever
|
|
181
|
+
// Central happens to hold. That failure is invisible: resolution
|
|
182
|
+
// succeeds, just against a stale SDK, and the gap widens with each beta.
|
|
183
|
+
//
|
|
184
|
+
// Declaring it is what fixes that; the position is close to cosmetic.
|
|
185
|
+
// `connect` is resolved through a dynamic version, and for those Gradle
|
|
186
|
+
// queries every declared repository and takes the newest match across
|
|
187
|
+
// all of them rather than stopping at the first repository that answers.
|
|
188
|
+
// Verified: with this entry declared LAST, after mavenCentral(),
|
|
189
|
+
// `connect:+` still resolves to the newest beta here rather than to
|
|
190
|
+
// Central's older newest. Order only decides which repository serves a
|
|
191
|
+
// PINNED version that both carry, where the artifact is identical
|
|
192
|
+
// anyway — it is kept first so a pin on a beta is served by the tree
|
|
193
|
+
// that is authoritative for betas.
|
|
194
|
+
//
|
|
195
|
+
// The content filter is not cosmetic. Without it every dependency in
|
|
196
|
+
// the build (React Native, Kotlin, AndroidX, …) would hit
|
|
197
|
+
// raw.githubusercontent and 404 before falling through to a repository
|
|
198
|
+
// that has it. Inclusive `content`, not `exclusiveContent`, so Central
|
|
199
|
+
// still answers for versions this tree does not carry.
|
|
200
|
+
//
|
|
201
|
+
// Declared only here, not also in the top-level `repositories` block:
|
|
202
|
+
// `allprojects` covers this project too, so both would feed the same
|
|
203
|
+
// resolution and the pair could drift.
|
|
204
|
+
maven {
|
|
205
|
+
url = "https://raw.githubusercontent.com/go-acoustic/Android_Maven/master"
|
|
206
|
+
content { includeGroup "io.github.go-acoustic" }
|
|
207
|
+
}
|
|
208
|
+
|
|
176
209
|
mavenCentral()
|
|
177
210
|
maven { url="https://s01.oss.sonatype.org/content/groups/staging" }
|
|
178
211
|
|
|
@@ -912,12 +912,6 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
|
|
|
912
912
|
}
|
|
913
913
|
}
|
|
914
914
|
|
|
915
|
-
/**
|
|
916
|
-
* Requests that the framework save the current application page name.
|
|
917
|
-
*
|
|
918
|
-
* @param logicalPageName The logical page name to be set.
|
|
919
|
-
* @return True if the operation was successful, false otherwise.
|
|
920
|
-
*/
|
|
921
915
|
/**
|
|
922
916
|
* Whether the bridge may touch capture at all.
|
|
923
917
|
*
|
|
@@ -926,7 +920,7 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
|
|
|
926
920
|
* `<Connect>` only advances the current screen name. On Android the same
|
|
927
921
|
* component also drives capture explicitly on every navigation
|
|
928
922
|
* (`logScreenViewPageName` + `logScreenLayout`), and those paths used to run
|
|
929
|
-
* regardless of the flag: `setCurrentScreenName`
|
|
923
|
+
* regardless of the flag: `setCurrentScreenName` called through to
|
|
930
924
|
* `Tealeaf.resumeTealeaf`, which resumes logging, and `logScreenLayout`
|
|
931
925
|
* captured a full layout. The net effect was that `disable()` silenced
|
|
932
926
|
* capture on iOS but not on Android, for an app doing nothing unusual.
|
|
@@ -936,11 +930,60 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
|
|
|
936
930
|
*/
|
|
937
931
|
private fun isCaptureAllowed(): Boolean = Connect.isEnabled()
|
|
938
932
|
|
|
933
|
+
/**
|
|
934
|
+
* Requests that the framework save the current application page name.
|
|
935
|
+
*
|
|
936
|
+
* Sets the name and nothing else, which is what the name promises and what
|
|
937
|
+
* iOS has always done — `TLFApplicationHelper.setCurrentScreenName:` just
|
|
938
|
+
* assigns `TLFScreenViewManager`'s current screen view name.
|
|
939
|
+
*
|
|
940
|
+
* `<Connect>` calls this on every touch: `onStartShouldSetResponderCapture`
|
|
941
|
+
* needs the name current so the click that follows is attributed to the
|
|
942
|
+
* right screen. It therefore has to be cheap, and on Android it was not. It
|
|
943
|
+
* used to be `Connect.resumeConnect` → `Tealeaf.resumeTealeaf`, which does
|
|
944
|
+
* four things at once: sets the name, emits a screenview LOAD, re-arms
|
|
945
|
+
* capture, and **captures a full screen layout**. Only the first is wanted
|
|
946
|
+
* here. The layout put a message of tens to hundreds of KB on the wire per
|
|
947
|
+
* tap on Android, where the same call on iOS sends nothing.
|
|
948
|
+
*
|
|
949
|
+
* That volume is not merely wasteful. EOCore's disk cache holds at most
|
|
950
|
+
* `MaxNumberOfFilesToCache` (5) chunks between post cycles and silently
|
|
951
|
+
* discards the rest while posting is healthy, so a tap-heavy screen loses
|
|
952
|
+
* whole batches: in a customer session, a `DeliveryOptionsScreen` LOAD and
|
|
953
|
+
* the first 8 s of capture on it went missing that way.
|
|
954
|
+
*
|
|
955
|
+
* Dropping the re-arm with it is safe, and was verified on-device rather
|
|
956
|
+
* than assumed: `logScreenLayout` below still calls `resumeConnect` on
|
|
957
|
+
* every navigation and on first paint, which arms capture before any touch
|
|
958
|
+
* can reach this method. Measured on the bare-workflow sample, twelve taps
|
|
959
|
+
* on one screen went from 21 layout messages (586 KB) to 4 (67 KB) with all
|
|
960
|
+
* twelve clicks still captured.
|
|
961
|
+
*
|
|
962
|
+
* Screenview and layout belong to the navigation path, which goes through
|
|
963
|
+
* `logScreenLayout` below and is unchanged.
|
|
964
|
+
*
|
|
965
|
+
* @param logicalPageName The logical page name to be set.
|
|
966
|
+
* @return True if the operation was successful, false otherwise.
|
|
967
|
+
*/
|
|
939
968
|
override fun setCurrentScreenName(logicalPageName: String): Boolean {
|
|
940
|
-
//
|
|
969
|
+
// Nothing should advance capture state while disabled. Cheaper than it
|
|
970
|
+
// was — this no longer captures a layout — but still the wrong thing to
|
|
971
|
+
// do behind a `disable()`.
|
|
941
972
|
if (!isCaptureAllowed()) return false
|
|
942
|
-
|
|
943
|
-
|
|
973
|
+
// Guarded because of where this runs, not because the call is expected to
|
|
974
|
+
// fail: `<Connect>` invokes it from `onStartShouldSetResponderCapture`, so
|
|
975
|
+
// this is the one bridge method on the per-touch path. An exception out of
|
|
976
|
+
// the SDK here would surface inside React's responder negotiation on every
|
|
977
|
+
// tap, taking touch handling down with it. Report the failure instead — the
|
|
978
|
+
// click that follows is then attributed to the previous screen, which is
|
|
979
|
+
// wrong but survivable.
|
|
980
|
+
return try {
|
|
981
|
+
Connect.setCurrentLogicalPageName(logicalPageName)
|
|
982
|
+
true
|
|
983
|
+
} catch (e: Exception) {
|
|
984
|
+
Log.v(TAG, "setCurrentScreenName error: ${e.message}")
|
|
985
|
+
false
|
|
986
|
+
}
|
|
944
987
|
}
|
|
945
988
|
|
|
946
989
|
/**
|
|
@@ -992,13 +1035,17 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
|
|
|
992
1035
|
override fun logScreenLayout(name: String, delay: Double): Boolean {
|
|
993
1036
|
// The wrapper calls this on every Android navigation.
|
|
994
1037
|
if (!isCaptureAllowed()) return false
|
|
995
|
-
//
|
|
1038
|
+
// Resume explicitly rather than via `setCurrentScreenName`, which now only
|
|
1039
|
+
// sets the name. Navigation is where resuming belongs: `resumeTealeaf`
|
|
1040
|
+
// re-enables capture for the screen being entered (`_isCaptureScreenContentsEnabled`)
|
|
1041
|
+
// after a `pauseTealeaf`, honouring the screen's layout config. Calling it
|
|
1042
|
+
// here keeps this path byte-identical to what it did before that split.
|
|
1043
|
+
//
|
|
1044
|
+
// The result is advisory on purpose: a false means the resume did not take,
|
|
996
1045
|
// which is not a reason to skip the screenview and layout that follow — they
|
|
997
1046
|
// are what the caller asked for. Treating it as fatal would suppress capture
|
|
998
|
-
// in cases that capture fine today.
|
|
999
|
-
|
|
1000
|
-
// stays safe for callers that reach it directly.
|
|
1001
|
-
setCurrentScreenName(name)
|
|
1047
|
+
// in cases that capture fine today.
|
|
1048
|
+
resumeConnect(getCurrentActivity(), name, false)
|
|
1002
1049
|
// The 3-arg overload takes a nullable Activity, so this one is safe to pass
|
|
1003
1050
|
// through — unlike the 4-arg overload the context methods use.
|
|
1004
1051
|
logScreenview(getCurrentActivity(), name, ScreenviewType.LOAD)
|
|
@@ -217,6 +217,18 @@ export interface AcousticConnectRN extends HybridObject<{
|
|
|
217
217
|
logLocationWithLatitudeLongitude(latitude: number, longitude: number, level: number): boolean;
|
|
218
218
|
logClickEvent(target: number, controlId: string): boolean;
|
|
219
219
|
logTextChangeEvent(target: number, controlId: string, text: string | null | undefined): boolean;
|
|
220
|
+
/**
|
|
221
|
+
* Sets the logical screen name subsequent events are attributed to.
|
|
222
|
+
*
|
|
223
|
+
* Sets the name and nothing else — no screenview, no layout capture — on
|
|
224
|
+
* both platforms. `<Connect>` calls this on every touch so the click that
|
|
225
|
+
* follows lands on the right screen, so it has to stay cheap.
|
|
226
|
+
*
|
|
227
|
+
* Android used to route it through `Connect.resumeConnect`, which also
|
|
228
|
+
* emitted a screenview and captured a full layout, putting tens to hundreds
|
|
229
|
+
* of KB on the wire per tap where iOS sent none. Use `logScreenLayout` when
|
|
230
|
+
* a layout capture is what you want.
|
|
231
|
+
*/
|
|
220
232
|
setCurrentScreenName(logicalPageName: string): boolean;
|
|
221
233
|
logScreenViewContextLoad(logicalPageName: string | null | undefined, referrer: string | null | undefined): boolean;
|
|
222
234
|
logScreenViewContextUnload(logicalPageName: string | null | undefined, referrer: string | null | undefined): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-native-acoustic-connect.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/react-native-acoustic-connect.nitro.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-native-acoustic-connect.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/react-native-acoustic-connect.nitro.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -215,9 +215,10 @@
|
|
|
215
215
|
"rebuild": "npm run codegen && npm run rebuildExample --prefix ./example",
|
|
216
216
|
"release": "release-it",
|
|
217
217
|
"test": "jest",
|
|
218
|
-
"test:all": "npm test && npm run test:plugin && npm run test:cli",
|
|
218
|
+
"test:all": "npm test && npm run test:plugin && npm run test:cli && npm run test:skills",
|
|
219
219
|
"test:cli": "node --test cli/__tests__/",
|
|
220
220
|
"test:plugin": "npm run build:plugin && node --test plugin/__tests__/",
|
|
221
|
+
"test:skills": "node .claude/skills/release-verification/scripts/assert-messages.mjs selftest",
|
|
221
222
|
"test:watch": "jest --watch",
|
|
222
223
|
"typecheck": "tsc --noEmit",
|
|
223
224
|
"verifyConnectSetup": "node cli/index.mjs doctor $INIT_CWD",
|
|
@@ -226,7 +227,7 @@
|
|
|
226
227
|
"source": "src/index",
|
|
227
228
|
"summary": "react-native ios android tealeaf connect cxa wxca er enhanced-replay",
|
|
228
229
|
"types": "./lib/typescript/src/index.d.ts",
|
|
229
|
-
"version": "19.0.
|
|
230
|
+
"version": "19.0.34",
|
|
230
231
|
"workspaces": [
|
|
231
232
|
"example",
|
|
232
233
|
"Examples/bare-workflow"
|
|
@@ -235,6 +235,18 @@ export interface AcousticConnectRN extends HybridObject<{ ios: 'swift', android:
|
|
|
235
235
|
logLocationWithLatitudeLongitude(latitude: number, longitude: number, level: number): boolean
|
|
236
236
|
logClickEvent(target: number, controlId: string): boolean
|
|
237
237
|
logTextChangeEvent(target: number, controlId: string, text: string | null | undefined): boolean
|
|
238
|
+
/**
|
|
239
|
+
* Sets the logical screen name subsequent events are attributed to.
|
|
240
|
+
*
|
|
241
|
+
* Sets the name and nothing else — no screenview, no layout capture — on
|
|
242
|
+
* both platforms. `<Connect>` calls this on every touch so the click that
|
|
243
|
+
* follows lands on the right screen, so it has to stay cheap.
|
|
244
|
+
*
|
|
245
|
+
* Android used to route it through `Connect.resumeConnect`, which also
|
|
246
|
+
* emitted a screenview and captured a full layout, putting tens to hundreds
|
|
247
|
+
* of KB on the wire per tap where iOS sent none. Use `logScreenLayout` when
|
|
248
|
+
* a layout capture is what you want.
|
|
249
|
+
*/
|
|
238
250
|
setCurrentScreenName(logicalPageName: string): boolean
|
|
239
251
|
logScreenViewContextLoad(logicalPageName: string | null | undefined, referrer:string | null | undefined): boolean
|
|
240
252
|
logScreenViewContextUnload(logicalPageName: string | null | undefined, referrer:string | null | undefined): boolean
|