@posthog/react-native-plugin 2.0.1 → 2.1.1
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/README.md +5 -27
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/posthogreactnativeplugin/PosthogReactNativePluginModule.kt +26 -0
- package/ios/PosthogReactNativePlugin.mm +5 -0
- package/ios/PosthogReactNativePlugin.swift +21 -0
- package/lib/commonjs/index.js +6 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +5 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +7 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +7 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/posthog-react-native-plugin.podspec +1 -1
- package/src/index.tsx +13 -0
package/README.md
CHANGED
|
@@ -1,31 +1,9 @@
|
|
|
1
|
-
#
|
|
1
|
+
# PostHog React Native example
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Please see the main [PostHog docs](https://posthog.com/docs).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
SDK usage examples and code snippets live in the official documentation so they stay up to date.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Documentation
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
npm install posthog-react-native @posthog/react-native-plugin
|
|
11
|
-
# or
|
|
12
|
-
yarn add posthog-react-native @posthog/react-native-plugin
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
iOS requires a pod install:
|
|
16
|
-
|
|
17
|
-
```sh
|
|
18
|
-
cd ios && pod install
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Native error tracking
|
|
22
|
-
|
|
23
|
-
Native error tracking is controlled by the React Native SDK option:
|
|
24
|
-
|
|
25
|
-
```ts
|
|
26
|
-
new PostHog('<ph_project_api_key>', {
|
|
27
|
-
errorTracking: {
|
|
28
|
-
nativeAutocapture: true,
|
|
29
|
-
},
|
|
30
|
-
})
|
|
31
|
-
```
|
|
9
|
+
- [React Native library docs](https://posthog.com/docs/libraries/react-native)
|
package/android/build.gradle
CHANGED
|
@@ -85,6 +85,6 @@ dependencies {
|
|
|
85
85
|
//noinspection GradleDynamicVersion
|
|
86
86
|
implementation "com.facebook.react:react-native:+"
|
|
87
87
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
88
|
-
implementation "com.posthog:posthog-android:3.
|
|
88
|
+
implementation "com.posthog:posthog-android:3.51.1"
|
|
89
89
|
}
|
|
90
90
|
|
package/android/src/main/java/com/posthogreactnativeplugin/PosthogReactNativePluginModule.kt
CHANGED
|
@@ -41,6 +41,7 @@ class PosthogReactNativePluginModule(
|
|
|
41
41
|
sdkReplayConfig = getMap(sessionReplayConfig, "sdkReplayConfig"),
|
|
42
42
|
decideReplayConfig = getMap(sessionReplayConfig, "decideReplayConfig"),
|
|
43
43
|
nativeErrorTrackingAutocapture = getBoolean(errorTrackingConfig, "nativeAutocapture", false),
|
|
44
|
+
exceptionStepsConfig = getMap(errorTrackingConfig, "exceptionSteps"),
|
|
44
45
|
promise = promise,
|
|
45
46
|
)
|
|
46
47
|
}
|
|
@@ -61,6 +62,7 @@ class PosthogReactNativePluginModule(
|
|
|
61
62
|
sdkReplayConfig = sdkReplayConfig,
|
|
62
63
|
decideReplayConfig = decideReplayConfig,
|
|
63
64
|
nativeErrorTrackingAutocapture = false,
|
|
65
|
+
exceptionStepsConfig = null,
|
|
64
66
|
promise = promise,
|
|
65
67
|
)
|
|
66
68
|
}
|
|
@@ -73,6 +75,7 @@ class PosthogReactNativePluginModule(
|
|
|
73
75
|
sdkReplayConfig: ReadableMap?,
|
|
74
76
|
decideReplayConfig: ReadableMap?,
|
|
75
77
|
nativeErrorTrackingAutocapture: Boolean,
|
|
78
|
+
exceptionStepsConfig: ReadableMap?,
|
|
76
79
|
promise: Promise,
|
|
77
80
|
) {
|
|
78
81
|
val initRunnable =
|
|
@@ -99,6 +102,11 @@ class PosthogReactNativePluginModule(
|
|
|
99
102
|
flushAt = theFlushAt
|
|
100
103
|
errorTrackingConfig.autoCapture = nativeErrorTrackingAutocapture
|
|
101
104
|
|
|
105
|
+
// Keep the native exception-steps buffer aligned with the JS layer (one logical buffer).
|
|
106
|
+
// Absent keys fall back to the native defaults the helpers receive.
|
|
107
|
+
errorTrackingConfig.exceptionSteps.enabled = getBoolean(exceptionStepsConfig, "enabled", errorTrackingConfig.exceptionSteps.enabled)
|
|
108
|
+
errorTrackingConfig.exceptionSteps.maxBytes = getInt(exceptionStepsConfig, "maxBytes", errorTrackingConfig.exceptionSteps.maxBytes)
|
|
109
|
+
|
|
102
110
|
// React Native rethrows fatal JS errors natively as JavascriptException.
|
|
103
111
|
// The JS layer already captured them, so drop the native duplicate.
|
|
104
112
|
addBeforeSend { event -> if (isReactNativeFatalJsError(event)) null else event }
|
|
@@ -246,6 +254,24 @@ class PosthogReactNativePluginModule(
|
|
|
246
254
|
}
|
|
247
255
|
}
|
|
248
256
|
|
|
257
|
+
@ReactMethod
|
|
258
|
+
fun addExceptionStep(
|
|
259
|
+
message: String,
|
|
260
|
+
properties: ReadableMap?,
|
|
261
|
+
promise: Promise,
|
|
262
|
+
) {
|
|
263
|
+
try {
|
|
264
|
+
// ReadableMap.toHashMap() is HashMap<String, Any?>; the native API takes Map<String, Any>?.
|
|
265
|
+
@Suppress("UNCHECKED_CAST")
|
|
266
|
+
val nativeProperties = properties?.toHashMap() as Map<String, Any>?
|
|
267
|
+
PostHog.addExceptionStep(message, nativeProperties)
|
|
268
|
+
} catch (e: Throwable) {
|
|
269
|
+
logError("addExceptionStep", e)
|
|
270
|
+
} finally {
|
|
271
|
+
promise.resolve(null)
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
249
275
|
private fun getMap(
|
|
250
276
|
map: ReadableMap?,
|
|
251
277
|
key: String,
|
|
@@ -37,6 +37,11 @@ RCT_EXTERN_METHOD(startRecording:(BOOL)resumeCurrent
|
|
|
37
37
|
RCT_EXTERN_METHOD(stopRecording:(RCTPromiseResolveBlock)resolve
|
|
38
38
|
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
39
39
|
|
|
40
|
+
RCT_EXTERN_METHOD(addExceptionStep:(NSString)message
|
|
41
|
+
withProperties:(NSDictionary)properties
|
|
42
|
+
withResolver:(RCTPromiseResolveBlock)resolve
|
|
43
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
44
|
+
|
|
40
45
|
+ (BOOL)requiresMainQueueSetup
|
|
41
46
|
{
|
|
42
47
|
return NO;
|
|
@@ -46,6 +46,7 @@ class PosthogReactNativePlugin: NSObject {
|
|
|
46
46
|
) {
|
|
47
47
|
let sessionReplayConfig = pluginConfig["sessionReplay"] as? [String: Any] ?? [:]
|
|
48
48
|
let errorTrackingConfig = pluginConfig["errorTracking"] as? [String: Any] ?? [:]
|
|
49
|
+
let exceptionStepsConfig = errorTrackingConfig["exceptionSteps"] as? [String: Any] ?? [:]
|
|
49
50
|
|
|
50
51
|
setupNativeSdk(
|
|
51
52
|
method: "setup",
|
|
@@ -55,6 +56,7 @@ class PosthogReactNativePlugin: NSObject {
|
|
|
55
56
|
sdkReplayConfig: sessionReplayConfig["sdkReplayConfig"] as? [String: Any] ?? [:],
|
|
56
57
|
decideReplayConfig: sessionReplayConfig["decideReplayConfig"] as? [String: Any] ?? [:],
|
|
57
58
|
nativeErrorTrackingAutocapture: errorTrackingConfig["nativeAutocapture"] as? Bool ?? false,
|
|
59
|
+
exceptionStepsConfig: exceptionStepsConfig,
|
|
58
60
|
resolve: resolve
|
|
59
61
|
)
|
|
60
62
|
}
|
|
@@ -73,6 +75,7 @@ class PosthogReactNativePlugin: NSObject {
|
|
|
73
75
|
sdkReplayConfig: sdkReplayConfig,
|
|
74
76
|
decideReplayConfig: decideReplayConfig,
|
|
75
77
|
nativeErrorTrackingAutocapture: false,
|
|
78
|
+
exceptionStepsConfig: [:],
|
|
76
79
|
resolve: resolve
|
|
77
80
|
)
|
|
78
81
|
}
|
|
@@ -85,6 +88,7 @@ class PosthogReactNativePlugin: NSObject {
|
|
|
85
88
|
sdkReplayConfig: [String: Any],
|
|
86
89
|
decideReplayConfig: [String: Any],
|
|
87
90
|
nativeErrorTrackingAutocapture: Bool,
|
|
91
|
+
exceptionStepsConfig: [String: Any],
|
|
88
92
|
resolve: RCTPromiseResolveBlock
|
|
89
93
|
) {
|
|
90
94
|
if sessionId.isEmpty {
|
|
@@ -108,6 +112,14 @@ class PosthogReactNativePlugin: NSObject {
|
|
|
108
112
|
config.debug = debug
|
|
109
113
|
config.errorTrackingConfig.autoCapture = nativeErrorTrackingAutocapture
|
|
110
114
|
|
|
115
|
+
// Keep the native exception-steps buffer aligned with the JS layer (one logical buffer).
|
|
116
|
+
if let enabled = exceptionStepsConfig["enabled"] as? Bool {
|
|
117
|
+
config.errorTrackingConfig.exceptionSteps.enabled = enabled
|
|
118
|
+
}
|
|
119
|
+
if let maxBytes = exceptionStepsConfig["maxBytes"] as? Int {
|
|
120
|
+
config.errorTrackingConfig.exceptionSteps.maxBytes = maxBytes
|
|
121
|
+
}
|
|
122
|
+
|
|
111
123
|
// React Native rethrows fatal JS errors natively (RCTFatalException / ExceptionsManager).
|
|
112
124
|
// The JS layer already captured them, so drop the native duplicate.
|
|
113
125
|
config.setBeforeSend { event in
|
|
@@ -251,4 +263,13 @@ class PosthogReactNativePlugin: NSObject {
|
|
|
251
263
|
PostHogSDK.shared.stopSessionRecording()
|
|
252
264
|
resolve(nil)
|
|
253
265
|
}
|
|
266
|
+
|
|
267
|
+
@objc(addExceptionStep:withProperties:withResolver:withRejecter:)
|
|
268
|
+
func addExceptionStep(
|
|
269
|
+
message: String, properties: [String: Any]?, resolve: RCTPromiseResolveBlock,
|
|
270
|
+
reject _: RCTPromiseRejectBlock
|
|
271
|
+
) {
|
|
272
|
+
PostHogSDK.shared.addExceptionStep(message, properties: properties)
|
|
273
|
+
resolve(nil)
|
|
274
|
+
}
|
|
254
275
|
}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.addExceptionStep = addExceptionStep;
|
|
6
7
|
exports.default = void 0;
|
|
7
8
|
exports.endSession = endSession;
|
|
8
9
|
exports.identify = identify;
|
|
@@ -46,6 +47,9 @@ function startRecording(resumeCurrent) {
|
|
|
46
47
|
function stopRecording() {
|
|
47
48
|
return PosthogReactNativePlugin.stopRecording();
|
|
48
49
|
}
|
|
50
|
+
function addExceptionStep(message, properties) {
|
|
51
|
+
return PosthogReactNativePlugin.addExceptionStep(message, properties ?? {});
|
|
52
|
+
}
|
|
49
53
|
const PostHogReactNativePlugin = {
|
|
50
54
|
setup,
|
|
51
55
|
start,
|
|
@@ -54,7 +58,8 @@ const PostHogReactNativePlugin = {
|
|
|
54
58
|
isEnabled,
|
|
55
59
|
identify,
|
|
56
60
|
startRecording,
|
|
57
|
-
stopRecording
|
|
61
|
+
stopRecording,
|
|
62
|
+
addExceptionStep
|
|
58
63
|
};
|
|
59
64
|
var _default = exports.default = PostHogReactNativePlugin;
|
|
60
65
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","PosthogReactNativePlugin","NativeModules","Proxy","get","Error","setup","sessionId","sdkOptions","pluginConfig","start","sdkReplayConfig","decideReplayConfig","startSession","endSession","isEnabled","identify","distinctId","anonymousId","startRecording","resumeCurrent","stopRecording","PostHogReactNativePlugin","_default","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","PosthogReactNativePlugin","NativeModules","Proxy","get","Error","setup","sessionId","sdkOptions","pluginConfig","start","sdkReplayConfig","decideReplayConfig","startSession","endSession","isEnabled","identify","distinctId","anonymousId","startRecording","resumeCurrent","stopRecording","addExceptionStep","message","properties","PostHogReactNativePlugin","_default","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GACjB,uFAAuF,GACvFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,wBAAwB,GAAGC,0BAAa,CAACD,wBAAwB,GACnEC,0BAAa,CAACD,wBAAwB,GACtC,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACT,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAyBE,SAASU,KAAKA,CACnBC,SAAiB,EACjBC,UAAuC,EACvCC,YAA4C,GAAG,CAAC,CAAC,EAClC;EACf,OAAOR,wBAAwB,CAACK,KAAK,CAACC,SAAS,EAAEC,UAAU,EAAEC,YAAY,CAAC;AAC5E;AAEO,SAASC,KAAKA,CACnBH,SAAiB,EACjBC,UAAuC,EACvCG,eAA4C,EAC5CC,kBAA+C,EAChC;EACf,OAAOX,wBAAwB,CAACS,KAAK,CAACH,SAAS,EAAEC,UAAU,EAAEG,eAAe,EAAEC,kBAAkB,CAAC;AACnG;AAEO,SAASC,YAAYA,CAACN,SAAiB,EAAiB;EAC7D,OAAON,wBAAwB,CAACY,YAAY,CAACN,SAAS,CAAC;AACzD;AAEO,SAASO,UAAUA,CAAA,EAAkB;EAC1C,OAAOb,wBAAwB,CAACa,UAAU,CAAC,CAAC;AAC9C;AAEO,SAASC,SAASA,CAAA,EAAqB;EAC5C,OAAOd,wBAAwB,CAACc,SAAS,CAAC,CAAC;AAC7C;AAEO,SAASC,QAAQA,CAACC,UAAkB,EAAEC,WAAmB,EAAiB;EAC/E,OAAOjB,wBAAwB,CAACe,QAAQ,CAACC,UAAU,EAAEC,WAAW,CAAC;AACnE;AAEO,SAASC,cAAcA,CAACC,aAAsB,EAAiB;EACpE,OAAOnB,wBAAwB,CAACkB,cAAc,CAACC,aAAa,CAAC;AAC/D;AAEO,SAASC,aAAaA,CAAA,EAAkB;EAC7C,OAAOpB,wBAAwB,CAACoB,aAAa,CAAC,CAAC;AACjD;AAEO,SAASC,gBAAgBA,CAACC,OAAe,EAAEC,UAAwC,EAAiB;EACzG,OAAOvB,wBAAwB,CAACqB,gBAAgB,CAACC,OAAO,EAAEC,UAAU,IAAI,CAAC,CAAC,CAAC;AAC7E;AAkCA,MAAMC,wBAAwD,GAAG;EAC/DnB,KAAK;EACLI,KAAK;EACLG,YAAY;EACZC,UAAU;EACVC,SAAS;EACTC,QAAQ;EACRG,cAAc;EACdE,aAAa;EACbC;AACF,CAAC;AAAA,IAAAI,QAAA,GAAAC,OAAA,CAAA3B,OAAA,GAEcyB,wBAAwB","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -34,6 +34,9 @@ export function startRecording(resumeCurrent) {
|
|
|
34
34
|
export function stopRecording() {
|
|
35
35
|
return PosthogReactNativePlugin.stopRecording();
|
|
36
36
|
}
|
|
37
|
+
export function addExceptionStep(message, properties) {
|
|
38
|
+
return PosthogReactNativePlugin.addExceptionStep(message, properties ?? {});
|
|
39
|
+
}
|
|
37
40
|
const PostHogReactNativePlugin = {
|
|
38
41
|
setup,
|
|
39
42
|
start,
|
|
@@ -42,7 +45,8 @@ const PostHogReactNativePlugin = {
|
|
|
42
45
|
isEnabled,
|
|
43
46
|
identify,
|
|
44
47
|
startRecording,
|
|
45
|
-
stopRecording
|
|
48
|
+
stopRecording,
|
|
49
|
+
addExceptionStep
|
|
46
50
|
};
|
|
47
51
|
export default PostHogReactNativePlugin;
|
|
48
52
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","PosthogReactNativePlugin","Proxy","get","Error","setup","sessionId","sdkOptions","pluginConfig","start","sdkReplayConfig","decideReplayConfig","startSession","endSession","isEnabled","identify","distinctId","anonymousId","startRecording","resumeCurrent","stopRecording","PostHogReactNativePlugin"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GACjB,uFAAuF,GACvFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,wBAAwB,GAAGN,aAAa,CAACM,wBAAwB,GACnEN,aAAa,CAACM,wBAAwB,GACtC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","PosthogReactNativePlugin","Proxy","get","Error","setup","sessionId","sdkOptions","pluginConfig","start","sdkReplayConfig","decideReplayConfig","startSession","endSession","isEnabled","identify","distinctId","anonymousId","startRecording","resumeCurrent","stopRecording","addExceptionStep","message","properties","PostHogReactNativePlugin"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GACjB,uFAAuF,GACvFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,wBAAwB,GAAGN,aAAa,CAACM,wBAAwB,GACnEN,aAAa,CAACM,wBAAwB,GACtC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAyBL,OAAO,SAASQ,KAAKA,CACnBC,SAAiB,EACjBC,UAAuC,EACvCC,YAA4C,GAAG,CAAC,CAAC,EAClC;EACf,OAAOP,wBAAwB,CAACI,KAAK,CAACC,SAAS,EAAEC,UAAU,EAAEC,YAAY,CAAC;AAC5E;AAEA,OAAO,SAASC,KAAKA,CACnBH,SAAiB,EACjBC,UAAuC,EACvCG,eAA4C,EAC5CC,kBAA+C,EAChC;EACf,OAAOV,wBAAwB,CAACQ,KAAK,CAACH,SAAS,EAAEC,UAAU,EAAEG,eAAe,EAAEC,kBAAkB,CAAC;AACnG;AAEA,OAAO,SAASC,YAAYA,CAACN,SAAiB,EAAiB;EAC7D,OAAOL,wBAAwB,CAACW,YAAY,CAACN,SAAS,CAAC;AACzD;AAEA,OAAO,SAASO,UAAUA,CAAA,EAAkB;EAC1C,OAAOZ,wBAAwB,CAACY,UAAU,CAAC,CAAC;AAC9C;AAEA,OAAO,SAASC,SAASA,CAAA,EAAqB;EAC5C,OAAOb,wBAAwB,CAACa,SAAS,CAAC,CAAC;AAC7C;AAEA,OAAO,SAASC,QAAQA,CAACC,UAAkB,EAAEC,WAAmB,EAAiB;EAC/E,OAAOhB,wBAAwB,CAACc,QAAQ,CAACC,UAAU,EAAEC,WAAW,CAAC;AACnE;AAEA,OAAO,SAASC,cAAcA,CAACC,aAAsB,EAAiB;EACpE,OAAOlB,wBAAwB,CAACiB,cAAc,CAACC,aAAa,CAAC;AAC/D;AAEA,OAAO,SAASC,aAAaA,CAAA,EAAkB;EAC7C,OAAOnB,wBAAwB,CAACmB,aAAa,CAAC,CAAC;AACjD;AAEA,OAAO,SAASC,gBAAgBA,CAACC,OAAe,EAAEC,UAAwC,EAAiB;EACzG,OAAOtB,wBAAwB,CAACoB,gBAAgB,CAACC,OAAO,EAAEC,UAAU,IAAI,CAAC,CAAC,CAAC;AAC7E;AAkCA,MAAMC,wBAAwD,GAAG;EAC/DnB,KAAK;EACLI,KAAK;EACLG,YAAY;EACZC,UAAU;EACVC,SAAS;EACTC,QAAQ;EACRG,cAAc;EACdE,aAAa;EACbC;AACF,CAAC;AAED,eAAeG,wBAAwB","ignoreList":[]}
|
|
@@ -6,8 +6,13 @@ export interface PostHogReactNativePluginSessionReplayConfig {
|
|
|
6
6
|
sdkReplayConfig?: PostHogReactNativePluginMap;
|
|
7
7
|
decideReplayConfig?: PostHogReactNativePluginMap;
|
|
8
8
|
}
|
|
9
|
+
export interface PostHogReactNativePluginExceptionStepsConfig {
|
|
10
|
+
enabled?: boolean;
|
|
11
|
+
maxBytes?: number;
|
|
12
|
+
}
|
|
9
13
|
export interface PostHogReactNativePluginErrorTrackingConfig {
|
|
10
14
|
nativeAutocapture?: boolean;
|
|
15
|
+
exceptionSteps?: PostHogReactNativePluginExceptionStepsConfig;
|
|
11
16
|
}
|
|
12
17
|
export interface PostHogReactNativePluginConfig {
|
|
13
18
|
sessionReplay?: PostHogReactNativePluginSessionReplayConfig;
|
|
@@ -21,6 +26,7 @@ export declare function isEnabled(): Promise<boolean>;
|
|
|
21
26
|
export declare function identify(distinctId: string, anonymousId: string): Promise<void>;
|
|
22
27
|
export declare function startRecording(resumeCurrent: boolean): Promise<void>;
|
|
23
28
|
export declare function stopRecording(): Promise<void>;
|
|
29
|
+
export declare function addExceptionStep(message: string, properties?: PostHogReactNativePluginMap): Promise<void>;
|
|
24
30
|
export interface PostHogReactNativePluginModule {
|
|
25
31
|
setup: (sessionId: string, sdkOptions: PostHogReactNativePluginMap, pluginConfig?: PostHogReactNativePluginConfig) => Promise<void>;
|
|
26
32
|
/**
|
|
@@ -33,6 +39,7 @@ export interface PostHogReactNativePluginModule {
|
|
|
33
39
|
identify: (distinctId: string, anonymousId: string) => Promise<void>;
|
|
34
40
|
startRecording: (resumeCurrent: boolean) => Promise<void>;
|
|
35
41
|
stopRecording: () => Promise<void>;
|
|
42
|
+
addExceptionStep: (message: string, properties?: PostHogReactNativePluginMap) => Promise<void>;
|
|
36
43
|
}
|
|
37
44
|
declare const PostHogReactNativePlugin: PostHogReactNativePluginModule;
|
|
38
45
|
export default PostHogReactNativePlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAmBA,MAAM,MAAM,2BAA2B,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAA;AAEhE,MAAM,WAAW,2CAA2C;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,eAAe,CAAC,EAAE,2BAA2B,CAAA;IAC7C,kBAAkB,CAAC,EAAE,2BAA2B,CAAA;CACjD;AAED,MAAM,WAAW,2CAA2C;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,13 @@ export interface PostHogReactNativePluginSessionReplayConfig {
|
|
|
6
6
|
sdkReplayConfig?: PostHogReactNativePluginMap;
|
|
7
7
|
decideReplayConfig?: PostHogReactNativePluginMap;
|
|
8
8
|
}
|
|
9
|
+
export interface PostHogReactNativePluginExceptionStepsConfig {
|
|
10
|
+
enabled?: boolean;
|
|
11
|
+
maxBytes?: number;
|
|
12
|
+
}
|
|
9
13
|
export interface PostHogReactNativePluginErrorTrackingConfig {
|
|
10
14
|
nativeAutocapture?: boolean;
|
|
15
|
+
exceptionSteps?: PostHogReactNativePluginExceptionStepsConfig;
|
|
11
16
|
}
|
|
12
17
|
export interface PostHogReactNativePluginConfig {
|
|
13
18
|
sessionReplay?: PostHogReactNativePluginSessionReplayConfig;
|
|
@@ -21,6 +26,7 @@ export declare function isEnabled(): Promise<boolean>;
|
|
|
21
26
|
export declare function identify(distinctId: string, anonymousId: string): Promise<void>;
|
|
22
27
|
export declare function startRecording(resumeCurrent: boolean): Promise<void>;
|
|
23
28
|
export declare function stopRecording(): Promise<void>;
|
|
29
|
+
export declare function addExceptionStep(message: string, properties?: PostHogReactNativePluginMap): Promise<void>;
|
|
24
30
|
export interface PostHogReactNativePluginModule {
|
|
25
31
|
setup: (sessionId: string, sdkOptions: PostHogReactNativePluginMap, pluginConfig?: PostHogReactNativePluginConfig) => Promise<void>;
|
|
26
32
|
/**
|
|
@@ -33,6 +39,7 @@ export interface PostHogReactNativePluginModule {
|
|
|
33
39
|
identify: (distinctId: string, anonymousId: string) => Promise<void>;
|
|
34
40
|
startRecording: (resumeCurrent: boolean) => Promise<void>;
|
|
35
41
|
stopRecording: () => Promise<void>;
|
|
42
|
+
addExceptionStep: (message: string, properties?: PostHogReactNativePluginMap) => Promise<void>;
|
|
36
43
|
}
|
|
37
44
|
declare const PostHogReactNativePlugin: PostHogReactNativePluginModule;
|
|
38
45
|
export default PostHogReactNativePlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAmBA,MAAM,MAAM,2BAA2B,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAA;AAEhE,MAAM,WAAW,2CAA2C;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,eAAe,CAAC,EAAE,2BAA2B,CAAA;IAC7C,kBAAkB,CAAC,EAAE,2BAA2B,CAAA;CACjD;AAED,MAAM,WAAW,2CAA2C;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@ folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1
|
|
|
6
6
|
# Single source of truth for the posthog-ios native dependency version.
|
|
7
7
|
# Used by both the SPM and CocoaPods resolution paths below; bump this
|
|
8
8
|
# line when picking up a new posthog-ios release.
|
|
9
|
-
posthog_ios_version = '3.
|
|
9
|
+
posthog_ios_version = '3.61.1'
|
|
10
10
|
|
|
11
11
|
Pod::Spec.new do |s|
|
|
12
12
|
s.name = "posthog-react-native-plugin"
|
package/src/index.tsx
CHANGED
|
@@ -25,8 +25,14 @@ export interface PostHogReactNativePluginSessionReplayConfig {
|
|
|
25
25
|
decideReplayConfig?: PostHogReactNativePluginMap
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
export interface PostHogReactNativePluginExceptionStepsConfig {
|
|
29
|
+
enabled?: boolean
|
|
30
|
+
maxBytes?: number
|
|
31
|
+
}
|
|
32
|
+
|
|
28
33
|
export interface PostHogReactNativePluginErrorTrackingConfig {
|
|
29
34
|
nativeAutocapture?: boolean
|
|
35
|
+
exceptionSteps?: PostHogReactNativePluginExceptionStepsConfig
|
|
30
36
|
}
|
|
31
37
|
|
|
32
38
|
export interface PostHogReactNativePluginConfig {
|
|
@@ -75,6 +81,10 @@ export function stopRecording(): Promise<void> {
|
|
|
75
81
|
return PosthogReactNativePlugin.stopRecording()
|
|
76
82
|
}
|
|
77
83
|
|
|
84
|
+
export function addExceptionStep(message: string, properties?: PostHogReactNativePluginMap): Promise<void> {
|
|
85
|
+
return PosthogReactNativePlugin.addExceptionStep(message, properties ?? {})
|
|
86
|
+
}
|
|
87
|
+
|
|
78
88
|
export interface PostHogReactNativePluginModule {
|
|
79
89
|
setup: (
|
|
80
90
|
sessionId: string,
|
|
@@ -103,6 +113,8 @@ export interface PostHogReactNativePluginModule {
|
|
|
103
113
|
startRecording: (resumeCurrent: boolean) => Promise<void>
|
|
104
114
|
|
|
105
115
|
stopRecording: () => Promise<void>
|
|
116
|
+
|
|
117
|
+
addExceptionStep: (message: string, properties?: PostHogReactNativePluginMap) => Promise<void>
|
|
106
118
|
}
|
|
107
119
|
|
|
108
120
|
const PostHogReactNativePlugin: PostHogReactNativePluginModule = {
|
|
@@ -114,6 +126,7 @@ const PostHogReactNativePlugin: PostHogReactNativePluginModule = {
|
|
|
114
126
|
identify,
|
|
115
127
|
startRecording,
|
|
116
128
|
stopRecording,
|
|
129
|
+
addExceptionStep,
|
|
117
130
|
}
|
|
118
131
|
|
|
119
132
|
export default PostHogReactNativePlugin
|