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 +1 -1
- package/README.md +1 -1
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/appambit/AppambitModule.kt +4 -0
- package/ios/AppAmbitSDKWrapper.swift +6 -0
- package/ios/Appambit.mm +4 -0
- package/lib/module/NativeAppambitCore.js.map +1 -1
- package/lib/module/index.js +28 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/appambit_test_app/src/App.d.ts.map +1 -1
- package/lib/typescript/appambit_test_app/src/screens/AnalyticsScreen.d.ts.map +1 -1
- package/lib/typescript/appambit_test_app/src/screens/SecondScreen.d.ts +9 -0
- package/lib/typescript/appambit_test_app/src/screens/SecondScreen.d.ts.map +1 -0
- package/lib/typescript/src/NativeAppambitCore.d.ts +1 -0
- package/lib/typescript/src/NativeAppambitCore.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeAppambitCore.ts +1 -0
- package/src/index.tsx +38 -1
package/Appambit.podspec
CHANGED
package/README.md
CHANGED
package/android/build.gradle
CHANGED
|
@@ -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.
|
|
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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAppambitCore.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;
|
|
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":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -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('
|
|
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";
|
package/lib/module/index.js.map
CHANGED
|
@@ -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"
|
|
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":"
|
|
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":"
|
|
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 +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;
|
|
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":"
|
|
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.
|
|
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",
|
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('
|
|
116
|
+
console.warn('AppAmbitCrashes not registered');
|
|
80
117
|
return;
|
|
81
118
|
}
|
|
82
119
|
|