appambit 0.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/Appambit.podspec +22 -0
- package/LICENSE +20 -0
- package/README.md +191 -0
- package/android/build.gradle +78 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/appambit/AppambitAnalyticsModule.kt +56 -0
- package/android/src/main/java/com/appambit/AppambitCrashesModule.kt +90 -0
- package/android/src/main/java/com/appambit/AppambitModule.kt +22 -0
- package/android/src/main/java/com/appambit/AppambitPackage.kt +42 -0
- package/ios/AppAmbitAnalytics.h +5 -0
- package/ios/AppAmbitAnalytics.mm +45 -0
- package/ios/AppAmbitCrashes.h +5 -0
- package/ios/AppAmbitCrashes.mm +80 -0
- package/ios/AppAmbitSDKWrapper.swift +79 -0
- package/ios/Appambit.h +13 -0
- package/ios/Appambit.mm +17 -0
- package/lib/module/NativeAppambitAnalytics.js +5 -0
- package/lib/module/NativeAppambitAnalytics.js.map +1 -0
- package/lib/module/NativeAppambitCore.js +5 -0
- package/lib/module/NativeAppambitCore.js.map +1 -0
- package/lib/module/NativeAppambitCrashes.js +5 -0
- package/lib/module/NativeAppambitCrashes.js.map +1 -0
- package/lib/module/index.js +99 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/appambit_test_app/src/App.d.ts +2 -0
- package/lib/typescript/appambit_test_app/src/App.d.ts.map +1 -0
- package/lib/typescript/appambit_test_app/src/components/CustomButton.d.ts +8 -0
- package/lib/typescript/appambit_test_app/src/components/CustomButton.d.ts.map +1 -0
- package/lib/typescript/appambit_test_app/src/components/CustomInput.d.ts +10 -0
- package/lib/typescript/appambit_test_app/src/components/CustomInput.d.ts.map +1 -0
- package/lib/typescript/appambit_test_app/src/screens/AnalyticsScreen.d.ts +2 -0
- package/lib/typescript/appambit_test_app/src/screens/AnalyticsScreen.d.ts.map +1 -0
- package/lib/typescript/appambit_test_app/src/screens/CrashesScreen.d.ts +2 -0
- package/lib/typescript/appambit_test_app/src/screens/CrashesScreen.d.ts.map +1 -0
- package/lib/typescript/appambit_test_app/src/utils/uuid.d.ts +2 -0
- package/lib/typescript/appambit_test_app/src/utils/uuid.d.ts.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/NativeAppambitAnalytics.d.ts +14 -0
- package/lib/typescript/src/NativeAppambitAnalytics.d.ts.map +1 -0
- package/lib/typescript/src/NativeAppambitCore.d.ts +7 -0
- package/lib/typescript/src/NativeAppambitCore.d.ts.map +1 -0
- package/lib/typescript/src/NativeAppambitCrashes.d.ts +23 -0
- package/lib/typescript/src/NativeAppambitCrashes.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +24 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +164 -0
- package/src/NativeAppambitAnalytics.ts +14 -0
- package/src/NativeAppambitCore.ts +7 -0
- package/src/NativeAppambitCrashes.ts +23 -0
- package/src/index.tsx +138 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import Foundation
|
|
2
|
+
import AppAmbitSdk
|
|
3
|
+
|
|
4
|
+
@objc(AppAmbitSdkWrapper)
|
|
5
|
+
public class AppAmbitSDKWrapper: NSObject {
|
|
6
|
+
|
|
7
|
+
@objc public static let shared = AppAmbitSDKWrapper()
|
|
8
|
+
|
|
9
|
+
// MARK: - Core
|
|
10
|
+
@objc
|
|
11
|
+
public static func start(appKey: String) {
|
|
12
|
+
AppAmbit.start(appKey: appKey)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// MARK: - Analytics
|
|
16
|
+
@objc
|
|
17
|
+
public static func setUserId(userId: String) {
|
|
18
|
+
Analytics.setUserId(userId)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@objc
|
|
22
|
+
public static func setUserEmail(userEmail: String) {
|
|
23
|
+
Analytics.setEmail(userEmail)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@objc
|
|
27
|
+
public static func clearToken() {
|
|
28
|
+
Analytics.clearToken()
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@objc
|
|
32
|
+
public static func startSession() {
|
|
33
|
+
Analytics.startSession()
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@objc
|
|
37
|
+
public static func endSession() {
|
|
38
|
+
Analytics.endSession()
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@objc
|
|
42
|
+
public static func enableManualSession() {
|
|
43
|
+
Analytics.enableManualSession()
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@objc
|
|
47
|
+
public static func trackEvent(eventTitle: String, properties: [String: String]? = nil) {
|
|
48
|
+
Analytics.trackEvent(eventTitle: eventTitle, data: properties ?? [:])
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@objc
|
|
52
|
+
public static func generateTestEvent() {
|
|
53
|
+
Analytics.generateTestEvent()
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// MARK: - Crashes
|
|
57
|
+
@objc
|
|
58
|
+
public static func didCrashInLastSession(completion: @escaping (Bool) -> Void) {
|
|
59
|
+
Crashes.didCrashInLastSession { crashed in
|
|
60
|
+
completion(crashed)
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@objc
|
|
65
|
+
public static func generateTestCrash() {
|
|
66
|
+
Crashes.generateTestCrash()
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@objc
|
|
70
|
+
public static func logError(message: String, properties: [String: String]? = nil) {
|
|
71
|
+
Crashes.logError(message: message, properties: properties)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@objc
|
|
75
|
+
public static func logError(exception: Error, properties: [String: String]? = nil) {
|
|
76
|
+
Crashes.logError(exception: exception, properties: properties)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
}
|
package/ios/Appambit.h
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#import <AppambitSpec/AppambitSpec.h>
|
|
2
|
+
|
|
3
|
+
@interface AppAmbit : NSObject <NativeAppambitCoreSpec>
|
|
4
|
+
|
|
5
|
+
@end
|
|
6
|
+
|
|
7
|
+
@interface AppAmbitCrashes : NSObject <NativeAppambitCrashesSpec>
|
|
8
|
+
|
|
9
|
+
@end
|
|
10
|
+
|
|
11
|
+
@interface AppAmbitAnalytics : NSObject <NativeAppambitAnalyticsSpec>
|
|
12
|
+
|
|
13
|
+
@end
|
package/ios/Appambit.mm
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#import "Appambit.h"
|
|
2
|
+
#import <Appambit-Swift.h>
|
|
3
|
+
|
|
4
|
+
@implementation AppAmbit
|
|
5
|
+
RCT_EXPORT_MODULE(AppAmbitCore);
|
|
6
|
+
|
|
7
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
8
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
9
|
+
{
|
|
10
|
+
return std::make_shared<facebook::react::NativeAppambitCoreSpecJSI>(params);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
- (void)start:(nonnull NSString *)appkey {
|
|
14
|
+
[AppAmbitSdkWrapper startWithAppKey:appkey];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAppambitAnalytics.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAapE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,mBAAmB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAppambitCrashes.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAsBpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,iBAAiB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Appambit from "./NativeAppambitCore.js";
|
|
4
|
+
import AppambitAnalytics from "./NativeAppambitAnalytics.js";
|
|
5
|
+
import AppambitCrashes from "./NativeAppambitCrashes.js";
|
|
6
|
+
// Start the Appambit SDK with the provided app key
|
|
7
|
+
|
|
8
|
+
export function start(appkey) {
|
|
9
|
+
Appambit.start(appkey);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// Analytics methods
|
|
13
|
+
|
|
14
|
+
export function setUserId(userId) {
|
|
15
|
+
AppambitAnalytics.setUserId(userId);
|
|
16
|
+
}
|
|
17
|
+
export function setUserEmail(userEmail) {
|
|
18
|
+
AppambitAnalytics.setUserEmail(userEmail);
|
|
19
|
+
}
|
|
20
|
+
export function clearToken() {
|
|
21
|
+
AppambitAnalytics.clearToken();
|
|
22
|
+
}
|
|
23
|
+
export function startSession() {
|
|
24
|
+
AppambitAnalytics.startSession();
|
|
25
|
+
}
|
|
26
|
+
export function endSession() {
|
|
27
|
+
AppambitAnalytics.endSession();
|
|
28
|
+
}
|
|
29
|
+
export function enableManualSession() {
|
|
30
|
+
AppambitAnalytics.enableManualSession();
|
|
31
|
+
}
|
|
32
|
+
export function trackEvent(eventTitle, properties) {
|
|
33
|
+
AppambitAnalytics.trackEvent(eventTitle, properties);
|
|
34
|
+
}
|
|
35
|
+
export function generateTestEvent() {
|
|
36
|
+
AppambitAnalytics.generateTestEvent();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Crashes methods
|
|
40
|
+
|
|
41
|
+
export function didCrashInLastSession() {
|
|
42
|
+
return AppambitCrashes.didCrashInLastSession();
|
|
43
|
+
}
|
|
44
|
+
export function generateTestCrash() {
|
|
45
|
+
AppambitCrashes.generateTestCrash();
|
|
46
|
+
}
|
|
47
|
+
export function logErrorMessage(message, properties) {
|
|
48
|
+
AppambitCrashes.logErrorMessage(message, properties);
|
|
49
|
+
}
|
|
50
|
+
export async function logError({
|
|
51
|
+
message,
|
|
52
|
+
exception,
|
|
53
|
+
stack,
|
|
54
|
+
classFqn,
|
|
55
|
+
fileName,
|
|
56
|
+
lineNumber,
|
|
57
|
+
properties
|
|
58
|
+
}) {
|
|
59
|
+
if (!AppambitCrashes) {
|
|
60
|
+
console.warn('AppambitCrashes not registered');
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const messageStr = message && message.length > 0 ? message : exception ? exception.message || JSON.stringify(exception) : "UnknownError";
|
|
64
|
+
const stackStr = stack && stack.length > 0 ? stack : exception?.stack ? exception.stack.toString() : new Error().stack?.toString();
|
|
65
|
+
const payload = {};
|
|
66
|
+
if (messageStr) payload.message = messageStr;
|
|
67
|
+
if (stackStr) payload.stack = stackStr;
|
|
68
|
+
if (properties && Object.keys(properties).length > 0) payload.properties = properties;
|
|
69
|
+
if (classFqn) payload.classFqn = classFqn;
|
|
70
|
+
if (fileName) payload.fileName = fileName;
|
|
71
|
+
if (typeof lineNumber === 'number' && !isNaN(lineNumber) && isFinite(lineNumber)) {
|
|
72
|
+
payload.lineNumber = lineNumber;
|
|
73
|
+
}
|
|
74
|
+
if (Object.keys(payload).length === 0) return;
|
|
75
|
+
const userProvidedMessage = !!message && message.length > 0;
|
|
76
|
+
if (userProvidedMessage) {
|
|
77
|
+
AppambitCrashes.logErrorMessage(message, properties);
|
|
78
|
+
} else if (exception || stackStr && stackStr.length > 0) {
|
|
79
|
+
AppambitCrashes.logError(payload);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
ErrorUtils.setGlobalHandler(error => {
|
|
83
|
+
const hasMessage = typeof error?.message === "string" && error.message.trim().length > 0;
|
|
84
|
+
if (hasMessage) {
|
|
85
|
+
logError({
|
|
86
|
+
exception: error,
|
|
87
|
+
message: error.message,
|
|
88
|
+
stack: error.stack,
|
|
89
|
+
classFqn: error.constructor?.name
|
|
90
|
+
});
|
|
91
|
+
} else {
|
|
92
|
+
logError({
|
|
93
|
+
exception: error,
|
|
94
|
+
stack: error.stack,
|
|
95
|
+
classFqn: error.constructor?.name
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type GestureResponderEvent } from "react-native";
|
|
2
|
+
interface Props {
|
|
3
|
+
title: string;
|
|
4
|
+
onPress: (event: GestureResponderEvent) => void;
|
|
5
|
+
}
|
|
6
|
+
export default function CustomButton({ title, onPress }: Props): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=CustomButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomButton.d.ts","sourceRoot":"","sources":["../../../../../appambit_test_app/src/components/CustomButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEvF,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,2CAM7D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface CustomInputProps {
|
|
3
|
+
placeholder: string;
|
|
4
|
+
buttonLabel: string;
|
|
5
|
+
defaultValue: string;
|
|
6
|
+
onSubmit: (value: string) => void;
|
|
7
|
+
}
|
|
8
|
+
declare const CustomInput: React.FC<CustomInputProps>;
|
|
9
|
+
export default CustomInput;
|
|
10
|
+
//# sourceMappingURL=CustomInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomInput.d.ts","sourceRoot":"","sources":["../../../../../appambit_test_app/src/components/CustomInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAc3C,CAAC;AAmBF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrashesScreen.d.ts","sourceRoot":"","sources":["../../../../../appambit_test_app/src/screens/CrashesScreen.tsx"],"names":[],"mappings":"AAeA,MAAM,CAAC,OAAO,UAAU,aAAa,4CAwEpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../../../../appambit_test_app/src/utils/uuid.tsx"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,IAAI,MAAM,CAM/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type TurboModule } from 'react-native';
|
|
2
|
+
export interface Spec extends TurboModule {
|
|
3
|
+
setUserId(userId: string): void;
|
|
4
|
+
setUserEmail(email: string): void;
|
|
5
|
+
clearToken(): void;
|
|
6
|
+
startSession(): void;
|
|
7
|
+
endSession(): void;
|
|
8
|
+
enableManualSession(): void;
|
|
9
|
+
trackEvent(eventTitle: string, properties?: Object): void;
|
|
10
|
+
generateTestEvent(): void;
|
|
11
|
+
}
|
|
12
|
+
declare const _default: Spec;
|
|
13
|
+
export default _default;
|
|
14
|
+
//# sourceMappingURL=NativeAppambitAnalytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeAppambitAnalytics.d.ts","sourceRoot":"","sources":["../../../src/NativeAppambitAnalytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACrC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,IAAI,IAAI,CAAC;IACnB,YAAY,IAAI,IAAI,CAAC;IACrB,UAAU,IAAI,IAAI,CAAC;IACnB,mBAAmB,IAAI,IAAI,CAAC;IAC5B,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1D,iBAAiB,IAAI,IAAI,CAAC;CAC7B;;AAED,wBAA2E"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type TurboModule } from 'react-native';
|
|
2
|
+
export interface Spec extends TurboModule {
|
|
3
|
+
generateTestCrash(): void;
|
|
4
|
+
didCrashInLastSession(): Promise<boolean>;
|
|
5
|
+
logErrorMessage(message: string, properties?: {
|
|
6
|
+
[key: string]: string;
|
|
7
|
+
}): void;
|
|
8
|
+
logError(payload: ErrorPayload): void;
|
|
9
|
+
}
|
|
10
|
+
interface ErrorPayload {
|
|
11
|
+
exception?: Object;
|
|
12
|
+
message?: string;
|
|
13
|
+
stack?: string;
|
|
14
|
+
classFqn?: string;
|
|
15
|
+
fileName?: string;
|
|
16
|
+
lineNumber?: number;
|
|
17
|
+
properties?: {
|
|
18
|
+
[key: string]: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
declare const _default: Spec;
|
|
22
|
+
export default _default;
|
|
23
|
+
//# sourceMappingURL=NativeAppambitCrashes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeAppambitCrashes.d.ts","sourceRoot":"","sources":["../../../src/NativeAppambitCrashes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACrC,iBAAiB,IAAI,IAAI,CAAC;IAC1B,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,eAAe,CACX,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GACvC,IAAI,CAAC;IACR,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CACzC;AAED,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,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;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACxC;;AAED,wBAAyE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
type LogErrorParams = {
|
|
2
|
+
exception?: any;
|
|
3
|
+
message?: string;
|
|
4
|
+
stack?: string;
|
|
5
|
+
classFqn?: string;
|
|
6
|
+
fileName?: string;
|
|
7
|
+
lineNumber?: number;
|
|
8
|
+
properties?: Record<string, string>;
|
|
9
|
+
};
|
|
10
|
+
export declare function start(appkey: string): void;
|
|
11
|
+
export declare function setUserId(userId: string): void;
|
|
12
|
+
export declare function setUserEmail(userEmail: string): void;
|
|
13
|
+
export declare function clearToken(): void;
|
|
14
|
+
export declare function startSession(): void;
|
|
15
|
+
export declare function endSession(): void;
|
|
16
|
+
export declare function enableManualSession(): void;
|
|
17
|
+
export declare function trackEvent(eventTitle: string, properties?: Record<string, string>): void;
|
|
18
|
+
export declare function generateTestEvent(): void;
|
|
19
|
+
export declare function didCrashInLastSession(): Promise<boolean>;
|
|
20
|
+
export declare function generateTestCrash(): void;
|
|
21
|
+
export declare function logErrorMessage(message: string, properties?: Record<string, string>): void;
|
|
22
|
+
export declare function logError({ message, exception, stack, classFqn, fileName, lineNumber, properties, }: LogErrorParams): Promise<void>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "appambit",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Lightweight SDK for analytics, events, logging, crashes, and offline support. Simple setup, minimal overhead.",
|
|
5
|
+
"main": "./lib/module/index.js",
|
|
6
|
+
"types": "./lib/typescript/src/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"source": "./src/index.tsx",
|
|
10
|
+
"types": "./lib/typescript/src/index.d.ts",
|
|
11
|
+
"default": "./lib/module/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./package.json": "./package.json"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"src",
|
|
17
|
+
"lib",
|
|
18
|
+
"android",
|
|
19
|
+
"ios",
|
|
20
|
+
"cpp",
|
|
21
|
+
"*.podspec",
|
|
22
|
+
"react-native.config.js",
|
|
23
|
+
"!ios/build",
|
|
24
|
+
"!android/build",
|
|
25
|
+
"!android/gradle",
|
|
26
|
+
"!android/gradlew",
|
|
27
|
+
"!android/gradlew.bat",
|
|
28
|
+
"!android/local.properties",
|
|
29
|
+
"!**/__tests__",
|
|
30
|
+
"!**/__fixtures__",
|
|
31
|
+
"!**/__mocks__",
|
|
32
|
+
"!**/.*"
|
|
33
|
+
],
|
|
34
|
+
"scripts": {
|
|
35
|
+
"example": "yarn workspace appambit-example",
|
|
36
|
+
"test": "jest",
|
|
37
|
+
"typecheck": "tsc",
|
|
38
|
+
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
39
|
+
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
|
|
40
|
+
"prepare": "bob build",
|
|
41
|
+
"release": "release-it --only-version"
|
|
42
|
+
},
|
|
43
|
+
"keywords": [
|
|
44
|
+
"react-native",
|
|
45
|
+
"ios",
|
|
46
|
+
"android"
|
|
47
|
+
],
|
|
48
|
+
"repository": {
|
|
49
|
+
"type": "git",
|
|
50
|
+
"url": "git+https://github.com/AppAmbit/appambit-sdk-react-native.git"
|
|
51
|
+
},
|
|
52
|
+
"author": "AppAmbit <hello@appambit.com> (https://appambit.com)",
|
|
53
|
+
"license": "MIT",
|
|
54
|
+
"bugs": {
|
|
55
|
+
"url": "https://github.com/AppAmbit/appambit-sdk-react-native/issues"
|
|
56
|
+
},
|
|
57
|
+
"homepage": "https://github.com/AppAmbit/appambit-sdk-react-native#readme",
|
|
58
|
+
"publishConfig": {
|
|
59
|
+
"registry": "https://registry.npmjs.org/"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@commitlint/config-conventional": "^19.8.1",
|
|
63
|
+
"@eslint/compat": "^1.3.2",
|
|
64
|
+
"@eslint/eslintrc": "^3.3.1",
|
|
65
|
+
"@eslint/js": "^9.35.0",
|
|
66
|
+
"@evilmartians/lefthook": "^1.12.3",
|
|
67
|
+
"@react-native-community/cli": "20.0.1",
|
|
68
|
+
"@react-native/babel-preset": "0.81.1",
|
|
69
|
+
"@react-native/eslint-config": "^0.81.1",
|
|
70
|
+
"@release-it/conventional-changelog": "^10.0.1",
|
|
71
|
+
"@types/jest": "^29.5.14",
|
|
72
|
+
"@types/react": "^19.1.0",
|
|
73
|
+
"commitlint": "^19.8.1",
|
|
74
|
+
"del-cli": "^6.0.0",
|
|
75
|
+
"eslint": "^9.35.0",
|
|
76
|
+
"eslint-config-prettier": "^10.1.8",
|
|
77
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
78
|
+
"jest": "^29.7.0",
|
|
79
|
+
"prettier": "^3.6.2",
|
|
80
|
+
"react": "19.1.0",
|
|
81
|
+
"react-native": "0.81.1",
|
|
82
|
+
"react-native-builder-bob": "^0.40.13",
|
|
83
|
+
"release-it": "^19.0.4",
|
|
84
|
+
"turbo": "^2.5.6",
|
|
85
|
+
"typescript": "^5.9.2"
|
|
86
|
+
},
|
|
87
|
+
"peerDependencies": {
|
|
88
|
+
"react": "*",
|
|
89
|
+
"react-native": "*"
|
|
90
|
+
},
|
|
91
|
+
"workspaces": [
|
|
92
|
+
"appambit_test_app"
|
|
93
|
+
],
|
|
94
|
+
"packageManager": "yarn@3.6.1",
|
|
95
|
+
"jest": {
|
|
96
|
+
"preset": "react-native",
|
|
97
|
+
"modulePathIgnorePatterns": [
|
|
98
|
+
"<rootDir>/example/node_modules",
|
|
99
|
+
"<rootDir>/lib/"
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"commitlint": {
|
|
103
|
+
"extends": [
|
|
104
|
+
"@commitlint/config-conventional"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
"release-it": {
|
|
108
|
+
"git": {
|
|
109
|
+
"commitMessage": "chore: release ${version}",
|
|
110
|
+
"tagName": "v${version}"
|
|
111
|
+
},
|
|
112
|
+
"npm": {
|
|
113
|
+
"publish": true
|
|
114
|
+
},
|
|
115
|
+
"github": {
|
|
116
|
+
"release": true
|
|
117
|
+
},
|
|
118
|
+
"plugins": {
|
|
119
|
+
"@release-it/conventional-changelog": {
|
|
120
|
+
"preset": {
|
|
121
|
+
"name": "angular"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"prettier": {
|
|
127
|
+
"quoteProps": "consistent",
|
|
128
|
+
"singleQuote": true,
|
|
129
|
+
"tabWidth": 2,
|
|
130
|
+
"trailingComma": "es5",
|
|
131
|
+
"useTabs": false
|
|
132
|
+
},
|
|
133
|
+
"react-native-builder-bob": {
|
|
134
|
+
"source": "src",
|
|
135
|
+
"output": "lib",
|
|
136
|
+
"targets": [
|
|
137
|
+
[
|
|
138
|
+
"module",
|
|
139
|
+
{
|
|
140
|
+
"esm": true
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
[
|
|
144
|
+
"typescript",
|
|
145
|
+
{
|
|
146
|
+
"project": "tsconfig.build.json"
|
|
147
|
+
}
|
|
148
|
+
]
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
"codegenConfig": {
|
|
152
|
+
"name": "AppambitSpec",
|
|
153
|
+
"type": "modules",
|
|
154
|
+
"jsSrcsDir": "src",
|
|
155
|
+
"android": {
|
|
156
|
+
"javaPackageName": "com.appambit"
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"create-react-native-library": {
|
|
160
|
+
"languages": "kotlin-objc",
|
|
161
|
+
"type": "turbo-module",
|
|
162
|
+
"version": "0.54.3"
|
|
163
|
+
}
|
|
164
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TurboModuleRegistry, type TurboModule } from 'react-native';
|
|
2
|
+
|
|
3
|
+
export interface Spec extends TurboModule {
|
|
4
|
+
setUserId(userId: string): void;
|
|
5
|
+
setUserEmail(email: string): void;
|
|
6
|
+
clearToken(): void;
|
|
7
|
+
startSession(): void;
|
|
8
|
+
endSession(): void;
|
|
9
|
+
enableManualSession(): void;
|
|
10
|
+
trackEvent(eventTitle: string, properties?: Object): void;
|
|
11
|
+
generateTestEvent(): void;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default TurboModuleRegistry.getEnforcing<Spec>('AppAmbitAnalytics');
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TurboModuleRegistry, type TurboModule } from 'react-native';
|
|
2
|
+
|
|
3
|
+
export interface Spec extends TurboModule {
|
|
4
|
+
generateTestCrash(): void;
|
|
5
|
+
didCrashInLastSession(): Promise<boolean>;
|
|
6
|
+
logErrorMessage(
|
|
7
|
+
message: string,
|
|
8
|
+
properties?: { [key: string]: string }
|
|
9
|
+
): void;
|
|
10
|
+
logError(payload: ErrorPayload): void;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
interface ErrorPayload {
|
|
14
|
+
exception?: Object;
|
|
15
|
+
message?: string;
|
|
16
|
+
stack?: string;
|
|
17
|
+
classFqn?: string;
|
|
18
|
+
fileName?: string;
|
|
19
|
+
lineNumber?: number;
|
|
20
|
+
properties?: { [key: string]: string };
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export default TurboModuleRegistry.getEnforcing<Spec>('AppAmbitCrashes');
|