@posthog/react-native-plugin 2.0.1 → 2.1.0

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 CHANGED
@@ -1,31 +1,9 @@
1
- # @posthog/react-native-plugin
1
+ # PostHog React Native example
2
2
 
3
- PostHog React Native plugin for iOS and Android integrations.
3
+ Please see the main [PostHog docs](https://posthog.com/docs).
4
4
 
5
- This package bridges React Native to the native PostHog SDKs, enabling session replay and native error tracking. It is consumed automatically by [`posthog-react-native`](https://github.com/PostHog/posthog-js/tree/main/packages/react-native) when installed you do not call it directly.
5
+ SDK usage examples and code snippets live in the official documentation so they stay up to date.
6
6
 
7
- ## Installation
7
+ ## Documentation
8
8
 
9
- ```sh
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)
@@ -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.40.2"
88
+ implementation "com.posthog:posthog-android:3.51.0"
89
89
  }
90
90
 
@@ -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
  }
@@ -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":";;;;;;;;;;;;;;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;AAmBE,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;AAgCA,MAAMC,wBAAwD,GAAG;EAC/DhB,KAAK;EACLI,KAAK;EACLG,YAAY;EACZC,UAAU;EACVC,SAAS;EACTC,QAAQ;EACRG,cAAc;EACdE;AACF,CAAC;AAAA,IAAAE,QAAA,GAAAC,OAAA,CAAAxB,OAAA,GAEcsB,wBAAwB","ignoreList":[]}
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":[]}
@@ -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
@@ -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;AAmBL,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;AAgCA,MAAMC,wBAAwD,GAAG;EAC/DhB,KAAK;EACLI,KAAK;EACLG,YAAY;EACZC,UAAU;EACVC,SAAS;EACTC,QAAQ;EACRG,cAAc;EACdE;AACF,CAAC;AAED,eAAeC,wBAAwB","ignoreList":[]}
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;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,aAAa,CAAC,EAAE,2CAA2C,CAAA;IAC3D,aAAa,CAAC,EAAE,2CAA2C,CAAA;CAC5D;AAED,wBAAgB,KAAK,CACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,2BAA2B,EACvC,YAAY,GAAE,8BAAmC,GAChD,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,KAAK,CACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,2BAA2B,EACvC,eAAe,EAAE,2BAA2B,EAC5C,kBAAkB,EAAE,2BAA2B,GAC9C,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;AAED,wBAAgB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1C;AAED,wBAAgB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5C;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED,wBAAgB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,CACL,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,2BAA2B,EACvC,YAAY,CAAC,EAAE,8BAA8B,KAC1C,OAAO,CAAC,IAAI,CAAC,CAAA;IAElB;;OAEG;IACH,KAAK,EAAE,CACL,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,2BAA2B,EACvC,eAAe,EAAE,2BAA2B,EAC5C,kBAAkB,EAAE,2BAA2B,KAC5C,OAAO,CAAC,IAAI,CAAC,CAAA;IAElB,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/B,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAEjC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpE,cAAc,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzD,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC;AAED,QAAA,MAAM,wBAAwB,EAAE,8BAS/B,CAAA;AAED,eAAe,wBAAwB,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;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,aAAa,CAAC,EAAE,2CAA2C,CAAA;IAC3D,aAAa,CAAC,EAAE,2CAA2C,CAAA;CAC5D;AAED,wBAAgB,KAAK,CACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,2BAA2B,EACvC,YAAY,GAAE,8BAAmC,GAChD,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,KAAK,CACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,2BAA2B,EACvC,eAAe,EAAE,2BAA2B,EAC5C,kBAAkB,EAAE,2BAA2B,GAC9C,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;AAED,wBAAgB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1C;AAED,wBAAgB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5C;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED,wBAAgB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,CACL,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,2BAA2B,EACvC,YAAY,CAAC,EAAE,8BAA8B,KAC1C,OAAO,CAAC,IAAI,CAAC,CAAA;IAElB;;OAEG;IACH,KAAK,EAAE,CACL,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,2BAA2B,EACvC,eAAe,EAAE,2BAA2B,EAC5C,kBAAkB,EAAE,2BAA2B,KAC5C,OAAO,CAAC,IAAI,CAAC,CAAA;IAElB,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/B,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAEjC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpE,cAAc,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzD,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC;AAED,QAAA,MAAM,wBAAwB,EAAE,8BAS/B,CAAA;AAED,eAAe,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@posthog/react-native-plugin",
3
- "version": "2.0.1",
3
+ "version": "2.1.0",
4
4
  "description": "PostHog React Native plugin for iOS and Android integrations",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
@@ -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.58.1'
9
+ posthog_ios_version = '3.61.0'
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