appambit 0.1.0 → 0.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/Appambit.podspec CHANGED
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
16
16
  s.source_files = "ios/**/*.{h,m,mm,cpp,swift}"
17
17
  s.private_header_files = "ios/**/*.h"
18
18
 
19
- s.dependency 'AppAmbitSdk', '~> 0.1.0'
19
+ s.dependency 'AppAmbitSdk', '~> 0.1.2'
20
20
 
21
21
  install_modules_dependencies(s)
22
22
  end
package/README.md CHANGED
@@ -63,7 +63,7 @@ Add the package to your React Native project:
63
63
  ```bash
64
64
  npm install appambit
65
65
  # or specify version
66
- npm install appambit@0.1.0
66
+ npm install appambit@0.1.1
67
67
  ```
68
68
  ---
69
69
 
@@ -74,5 +74,5 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
74
74
  dependencies {
75
75
  implementation "com.facebook.react:react-android"
76
76
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
77
- implementation "com.appambit:appambit:0.1.0"
77
+ implementation "com.appambit:appambit:0.2.2"
78
78
  }
@@ -16,6 +16,10 @@ class AppambitModule(reactContext: ReactApplicationContext) :
16
16
  AppAmbit.start(reactApplicationContext, appkey)
17
17
  }
18
18
 
19
+ override fun addBreadcrumb(name: String) {
20
+ AppAmbit.addBreadcrumb(name)
21
+ }
22
+
19
23
  companion object {
20
24
  const val NAME = "AppAmbitCore"
21
25
  }
@@ -11,6 +11,12 @@ public class AppAmbitSDKWrapper: NSObject {
11
11
  public static func start(appKey: String) {
12
12
  AppAmbit.start(appKey: appKey)
13
13
  }
14
+
15
+ // MARK: Breadcrumbs
16
+ @objc
17
+ public static func addBreadcrumb(name: String) {
18
+ AppAmbit.addBreadcrumb(name: name)
19
+ }
14
20
 
15
21
  // MARK: - Analytics
16
22
  @objc
package/ios/Appambit.mm CHANGED
@@ -14,4 +14,8 @@ RCT_EXPORT_MODULE(AppAmbitCore);
14
14
  [AppAmbitSdkWrapper startWithAppKey:appkey];
15
15
  }
16
16
 
17
+ - (void)addBreadcrumb:(nonnull NSString *)name {
18
+ [AppAmbitSdkWrapper addBreadcrumbWithName:name];
19
+ }
20
+
17
21
  @end
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAppambitCore.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAMpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAppambitCore.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAOpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
@@ -3,12 +3,39 @@
3
3
  import Appambit from "./NativeAppambitCore.js";
4
4
  import AppambitAnalytics from "./NativeAppambitAnalytics.js";
5
5
  import AppambitCrashes from "./NativeAppambitCrashes.js";
6
+ import { Platform } from 'react-native';
7
+ export function registerNavigationTracking(navigationRef) {
8
+ if (Platform.OS !== 'android') {
9
+ return () => {};
10
+ }
11
+ let lastTrackedKey = null;
12
+ let lastTrackedName = null;
13
+ const onStateChange = () => {
14
+ if (!navigationRef.isReady()) return;
15
+ const route = navigationRef.getCurrentRoute();
16
+ if (!route || route.key === lastTrackedKey) return;
17
+ if (lastTrackedName) {
18
+ addBreadcrumb(`On disappear: ${lastTrackedName}`);
19
+ }
20
+ addBreadcrumb(`On appear: ${route.name}`);
21
+ lastTrackedKey = route.key;
22
+ lastTrackedName = route.name;
23
+ };
24
+ return navigationRef.addListener("state", onStateChange);
25
+ }
26
+
6
27
  // Start the Appambit SDK with the provided app key
7
28
 
8
29
  export function start(appkey) {
9
30
  Appambit.start(appkey);
10
31
  }
11
32
 
33
+ // Breadcrumbs
34
+
35
+ export function addBreadcrumb(name) {
36
+ Appambit.addBreadcrumb(name);
37
+ }
38
+
12
39
  // Analytics methods
13
40
 
14
41
  export function setUserId(userId) {
@@ -57,7 +84,7 @@ export async function logError({
57
84
  properties
58
85
  }) {
59
86
  if (!AppambitCrashes) {
60
- console.warn('AppambitCrashes not registered');
87
+ console.warn('AppAmbitCrashes not registered');
61
88
  return;
62
89
  }
63
90
  const messageStr = message && message.length > 0 ? message : exception ? exception.message || JSON.stringify(exception) : "UnknownError";
@@ -1 +1 @@
1
- {"version":3,"names":["Appambit","AppambitAnalytics","AppambitCrashes","start","appkey","setUserId","userId","setUserEmail","userEmail","clearToken","startSession","endSession","enableManualSession","trackEvent","eventTitle","properties","generateTestEvent","didCrashInLastSession","generateTestCrash","logErrorMessage","message","logError","exception","stack","classFqn","fileName","lineNumber","console","warn","messageStr","length","JSON","stringify","stackStr","toString","Error","payload","Object","keys","isNaN","isFinite","userProvidedMessage","ErrorUtils","setGlobalHandler","error","hasMessage","trim","constructor","name"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Appambit","AppambitAnalytics","AppambitCrashes","Platform","registerNavigationTracking","navigationRef","OS","lastTrackedKey","lastTrackedName","onStateChange","isReady","route","getCurrentRoute","key","addBreadcrumb","name","addListener","start","appkey","setUserId","userId","setUserEmail","userEmail","clearToken","startSession","endSession","enableManualSession","trackEvent","eventTitle","properties","generateTestEvent","didCrashInLastSession","generateTestCrash","logErrorMessage","message","logError","exception","stack","classFqn","fileName","lineNumber","console","warn","messageStr","length","JSON","stringify","stackStr","toString","Error","payload","Object","keys","isNaN","isFinite","userProvidedMessage","ErrorUtils","setGlobalHandler","error","hasMessage","trim","constructor"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../appambit_test_app/src/App.tsx"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,UAAU,GAAG,4CA6B1B"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../appambit_test_app/src/App.tsx"],"names":[],"mappings":"AA4CA,MAAM,CAAC,OAAO,UAAU,GAAG,4CAmB1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsScreen.d.ts","sourceRoot":"","sources":["../../../../../appambit_test_app/src/screens/AnalyticsScreen.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,eAAe,4CAuHtC"}
1
+ {"version":3,"file":"AnalyticsScreen.d.ts","sourceRoot":"","sources":["../../../../../appambit_test_app/src/screens/AnalyticsScreen.tsx"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,eAAe,4CAgItC"}
@@ -0,0 +1,9 @@
1
+ import { type NativeStackScreenProps } from "@react-navigation/native-stack";
2
+ type RootStackParamList = {
3
+ HomeScreen: undefined;
4
+ SecondScreen: undefined;
5
+ };
6
+ type Props = NativeStackScreenProps<RootStackParamList, "SecondScreen">;
7
+ export default function SecondScreen({ navigation }: Props): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=SecondScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecondScreen.d.ts","sourceRoot":"","sources":["../../../../../appambit_test_app/src/screens/SecondScreen.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,SAAS,CAAC;IACtB,YAAY,EAAE,SAAS,CAAC;CACzB,CAAC;AAEF,KAAK,KAAK,GAAG,sBAAsB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;AAExE,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE,KAAK,2CAazD"}
@@ -1,6 +1,7 @@
1
1
  import { type TurboModule } from 'react-native';
2
2
  export interface Spec extends TurboModule {
3
3
  start(appkey: string): void;
4
+ addBreadcrumb(name: string): void;
4
5
  }
5
6
  declare const _default: Spec;
6
7
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeAppambitCore.d.ts","sourceRoot":"","sources":["../../../src/NativeAppambitCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;;AAED,wBAAsE"}
1
+ {"version":3,"file":"NativeAppambitCore.d.ts","sourceRoot":"","sources":["../../../src/NativeAppambitCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;;AAED,wBAAsE"}
@@ -1,3 +1,4 @@
1
+ import type { NavigationContainerRefWithCurrent } from '@react-navigation/native';
1
2
  type LogErrorParams = {
2
3
  exception?: any;
3
4
  message?: string;
@@ -7,7 +8,9 @@ type LogErrorParams = {
7
8
  lineNumber?: number;
8
9
  properties?: Record<string, string>;
9
10
  };
11
+ export declare function registerNavigationTracking(navigationRef: NavigationContainerRefWithCurrent<any>): () => void;
10
12
  export declare function start(appkey: string): void;
13
+ export declare function addBreadcrumb(name: string): void;
11
14
  export declare function setUserId(userId: string): void;
12
15
  export declare function setUserEmail(userEmail: string): void;
13
16
  export declare function clearToken(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAIA,KAAK,cAAc,GAAG;IACpB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,CAAC;AAIF,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE1C;AAID,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAExF;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAID,wBAAgB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAExD;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAE1F;AAED,wBAAsB,QAAQ,CAAC,EAC7B,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ChC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAGlF,KAAK,cAAc,GAAG;IACpB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,iCAAiC,CAAC,GAAG,CAAC,cA0BtD;AAID,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE1C;AAID,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEhD;AAID,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAExF;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAID,wBAAgB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAExD;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAE1F;AAED,wBAAsB,QAAQ,CAAC,EAC7B,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ChC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appambit",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Lightweight SDK for analytics, events, logging, crashes, and offline support. Simple setup, minimal overhead.",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -2,6 +2,7 @@ import { TurboModuleRegistry, type TurboModule } from 'react-native';
2
2
 
3
3
  export interface Spec extends TurboModule {
4
4
  start(appkey: string): void;
5
+ addBreadcrumb(name: string): void;
5
6
  }
6
7
 
7
8
  export default TurboModuleRegistry.getEnforcing<Spec>('AppAmbitCore');
package/src/index.tsx CHANGED
@@ -1,6 +1,8 @@
1
1
  import Appambit from './NativeAppambitCore';
2
2
  import AppambitAnalytics from './NativeAppambitAnalytics';
3
3
  import AppambitCrashes from './NativeAppambitCrashes';
4
+ import type { NavigationContainerRefWithCurrent } from '@react-navigation/native';
5
+ import { Platform } from 'react-native';
4
6
 
5
7
  type LogErrorParams = {
6
8
  exception?: any;
@@ -12,12 +14,47 @@ type LogErrorParams = {
12
14
  properties?: Record<string, string>;
13
15
  };
14
16
 
17
+ export function registerNavigationTracking(
18
+ navigationRef: NavigationContainerRefWithCurrent<any>
19
+ ) {
20
+ if (Platform.OS !== 'android') {
21
+ return () => {};
22
+ }
23
+
24
+ let lastTrackedKey: string | null = null;
25
+ let lastTrackedName: string | null = null;
26
+
27
+ const onStateChange = () => {
28
+ if (!navigationRef.isReady()) return;
29
+
30
+ const route = navigationRef.getCurrentRoute();
31
+ if (!route || route.key === lastTrackedKey) return;
32
+
33
+ if (lastTrackedName) {
34
+ addBreadcrumb(`On disappear: ${lastTrackedName}`);
35
+ }
36
+
37
+ addBreadcrumb(`On appear: ${route.name}`);
38
+
39
+ lastTrackedKey = route.key;
40
+ lastTrackedName = route.name;
41
+ };
42
+
43
+ return navigationRef.addListener("state", onStateChange);
44
+ }
45
+
15
46
  // Start the Appambit SDK with the provided app key
16
47
 
17
48
  export function start(appkey: string): void {
18
49
  Appambit.start(appkey);
19
50
  }
20
51
 
52
+ // Breadcrumbs
53
+
54
+ export function addBreadcrumb(name: string): void {
55
+ Appambit.addBreadcrumb(name);
56
+ }
57
+
21
58
  // Analytics methods
22
59
 
23
60
  export function setUserId(userId: string): void {
@@ -76,7 +113,7 @@ export async function logError({
76
113
  properties,
77
114
  }: LogErrorParams): Promise<void> {
78
115
  if (!AppambitCrashes) {
79
- console.warn('AppambitCrashes not registered');
116
+ console.warn('AppAmbitCrashes not registered');
80
117
  return;
81
118
  }
82
119