@athena-tracker/tracker 1.0.1 → 1.2.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 +389 -163
- package/dist/events/capture-react-native.d.ts +77 -0
- package/dist/events/capture-react-native.d.ts.map +1 -0
- package/dist/index.d.ts +13 -106
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +1207 -146
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1223 -154
- package/dist/index.js.map +1 -1
- package/dist/inference/auto-detect.d.ts +21 -0
- package/dist/inference/auto-detect.d.ts.map +1 -0
- package/dist/inference/on-device.d.ts +36 -0
- package/dist/inference/on-device.d.ts.map +1 -0
- package/dist/inference/server.d.ts +30 -0
- package/dist/inference/server.d.ts.map +1 -0
- package/dist/react-native/ForcedReloadWrapper.d.ts +26 -0
- package/dist/react-native/ForcedReloadWrapper.d.ts.map +1 -0
- package/dist/tracker.d.ts +82 -0
- package/dist/tracker.d.ts.map +1 -0
- package/dist/types/index.d.ts +105 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/webhook.d.ts +80 -0
- package/dist/utils/webhook.d.ts.map +1 -0
- package/package.json +58 -14
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Native Event Capture
|
|
3
|
+
*
|
|
4
|
+
* Captures behavioral events from React Native apps
|
|
5
|
+
* - Touch events (Tap, Swipe, LongPress)
|
|
6
|
+
* - Navigation events (Screen changes)
|
|
7
|
+
* - App lifecycle events (Open, Background, Foreground, Close)
|
|
8
|
+
* - Form interactions
|
|
9
|
+
* - Network errors
|
|
10
|
+
*/
|
|
11
|
+
import { Event } from '../types';
|
|
12
|
+
export interface CaptureConfig {
|
|
13
|
+
captureTouch?: boolean;
|
|
14
|
+
captureNavigation?: boolean;
|
|
15
|
+
captureLifecycle?: boolean;
|
|
16
|
+
captureNetworkErrors?: boolean;
|
|
17
|
+
batchSize?: number;
|
|
18
|
+
batchIntervalMs?: number;
|
|
19
|
+
}
|
|
20
|
+
export declare class ReactNativeEventCapture {
|
|
21
|
+
private events;
|
|
22
|
+
private config;
|
|
23
|
+
private appStateSubscription;
|
|
24
|
+
private panResponder;
|
|
25
|
+
private batchTimer;
|
|
26
|
+
private currentScreen;
|
|
27
|
+
private sessionStartTime;
|
|
28
|
+
constructor(config?: CaptureConfig);
|
|
29
|
+
/**
|
|
30
|
+
* Start capturing events
|
|
31
|
+
*/
|
|
32
|
+
start(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Stop capturing events
|
|
35
|
+
*/
|
|
36
|
+
stop(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Setup app lifecycle tracking (Open, Background, Foreground, Close)
|
|
39
|
+
*/
|
|
40
|
+
private setupLifecycleTracking;
|
|
41
|
+
/**
|
|
42
|
+
* Setup touch event tracking
|
|
43
|
+
*/
|
|
44
|
+
private setupTouchTracking;
|
|
45
|
+
/**
|
|
46
|
+
* Setup network error tracking
|
|
47
|
+
*/
|
|
48
|
+
private setupNetworkErrorTracking;
|
|
49
|
+
/**
|
|
50
|
+
* Manually track screen navigation
|
|
51
|
+
* Should be called by navigation library (React Navigation, etc.)
|
|
52
|
+
*/
|
|
53
|
+
trackScreenView(screenName: string, params?: Record<string, any>): void;
|
|
54
|
+
/**
|
|
55
|
+
* Manually track custom event
|
|
56
|
+
*/
|
|
57
|
+
track(eventType: string, properties?: Record<string, any>): void;
|
|
58
|
+
/**
|
|
59
|
+
* Capture an event and add to batch
|
|
60
|
+
*/
|
|
61
|
+
private captureEvent;
|
|
62
|
+
/**
|
|
63
|
+
* Flush accumulated events (to be sent to server)
|
|
64
|
+
*/
|
|
65
|
+
private flushEvents;
|
|
66
|
+
/**
|
|
67
|
+
* Callback for batch events (set by tracker)
|
|
68
|
+
*/
|
|
69
|
+
onEventBatch?: (events: Event[]) => void;
|
|
70
|
+
/**
|
|
71
|
+
* Get PanResponder for manual integration
|
|
72
|
+
* Usage: <View {...capture.getPanResponderProps()}>
|
|
73
|
+
*/
|
|
74
|
+
getPanResponderProps(): any;
|
|
75
|
+
}
|
|
76
|
+
export default ReactNativeEventCapture;
|
|
77
|
+
//# sourceMappingURL=capture-react-native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-react-native.d.ts","sourceRoot":"","sources":["../../src/events/capture-react-native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,oBAAoB,CAAa;IACzC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,gBAAgB,CAAsB;gBAElC,MAAM,GAAE,aAAkB;IAWtC;;OAEG;IACH,KAAK,IAAI,IAAI;IA+Bb;;OAEG;IACH,IAAI,IAAI,IAAI;IAeZ;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA+B9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6D1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA2CjC;;;OAGG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAcvE;;OAEG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAWhE;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IAEzC;;;OAGG;IACH,oBAAoB,IAAI,GAAG;CAG5B;AAED,eAAe,uBAAuB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,108 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @athena
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
password?: boolean;
|
|
16
|
-
email?: boolean;
|
|
17
|
-
};
|
|
18
|
-
compressionLevel?: number;
|
|
19
|
-
maxChunkSize?: number;
|
|
20
|
-
};
|
|
21
|
-
edgeAI?: {
|
|
22
|
-
enabled?: boolean;
|
|
23
|
-
modelPath?: string;
|
|
24
|
-
webhook?: {
|
|
25
|
-
url?: string;
|
|
26
|
-
enabled?: boolean;
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
export interface UserProperties {
|
|
31
|
-
email?: string;
|
|
32
|
-
name?: string;
|
|
33
|
-
[key: string]: any;
|
|
34
|
-
}
|
|
35
|
-
export interface EventProperties {
|
|
36
|
-
[key: string]: any;
|
|
37
|
-
}
|
|
38
|
-
declare class AthenaTrackerSDK {
|
|
39
|
-
private config;
|
|
40
|
-
private scriptLoaded;
|
|
41
|
-
private loadPromise;
|
|
42
|
-
constructor(config: AthenaTrackerConfig);
|
|
43
|
-
/**
|
|
44
|
-
* Load the ATHENA tracker script dynamically
|
|
45
|
-
*/
|
|
46
|
-
load(): Promise<void>;
|
|
47
|
-
/**
|
|
48
|
-
* Initialize the tracker with configuration
|
|
49
|
-
*/
|
|
50
|
-
private initialize;
|
|
51
|
-
/**
|
|
52
|
-
* Get the underlying tracker instance
|
|
53
|
-
*/
|
|
54
|
-
private getTracker;
|
|
55
|
-
/**
|
|
56
|
-
* Identify a user
|
|
57
|
-
*/
|
|
58
|
-
identify(userId: string, properties?: UserProperties): void;
|
|
59
|
-
/**
|
|
60
|
-
* Track a custom event
|
|
61
|
-
*/
|
|
62
|
-
track(eventName: string, properties?: EventProperties): void;
|
|
63
|
-
/**
|
|
64
|
-
* Track a page view
|
|
65
|
-
*/
|
|
66
|
-
page(pageName?: string, properties?: EventProperties): void;
|
|
67
|
-
/**
|
|
68
|
-
* Reset user identity (logout)
|
|
69
|
-
*/
|
|
70
|
-
reset(): void;
|
|
71
|
-
/**
|
|
72
|
-
* Get current session ID
|
|
73
|
-
*/
|
|
74
|
-
getSessionId(): string | null;
|
|
75
|
-
/**
|
|
76
|
-
* Get current user ID
|
|
77
|
-
*/
|
|
78
|
-
getUserId(): string | null;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Initialize ATHENA tracker
|
|
82
|
-
*/
|
|
83
|
-
export declare function initTracker(config: AthenaTrackerConfig): AthenaTrackerSDK;
|
|
84
|
-
/**
|
|
85
|
-
* Get the tracker instance
|
|
86
|
-
*/
|
|
87
|
-
export declare function getTracker(): AthenaTrackerSDK | null;
|
|
88
|
-
/**
|
|
89
|
-
* Convenience methods (use singleton instance)
|
|
90
|
-
*/
|
|
91
|
-
export declare function identify(userId: string, properties?: UserProperties): void;
|
|
92
|
-
export declare function track(eventName: string, properties?: EventProperties): void;
|
|
93
|
-
export declare function page(pageName?: string, properties?: EventProperties): void;
|
|
94
|
-
export declare function reset(): void;
|
|
95
|
-
export declare function getSessionId(): string | null;
|
|
96
|
-
export declare function getUserId(): string | null;
|
|
97
|
-
declare const _default: {
|
|
98
|
-
initTracker: typeof initTracker;
|
|
99
|
-
getTracker: typeof getTracker;
|
|
100
|
-
identify: typeof identify;
|
|
101
|
-
track: typeof track;
|
|
102
|
-
page: typeof page;
|
|
103
|
-
reset: typeof reset;
|
|
104
|
-
getSessionId: typeof getSessionId;
|
|
105
|
-
getUserId: typeof getUserId;
|
|
106
|
-
};
|
|
107
|
-
export default _default;
|
|
2
|
+
* @athena/tracker
|
|
3
|
+
*
|
|
4
|
+
* Behavioral analytics tracker with edge AI
|
|
5
|
+
*/
|
|
6
|
+
export { AthenaTracker as default } from './tracker';
|
|
7
|
+
export { AthenaTracker } from './tracker';
|
|
8
|
+
export * from './types';
|
|
9
|
+
export { detectInferenceMode, getPlatform, isReactNative, isBrowser } from './inference/auto-detect';
|
|
10
|
+
export { generateWebhookSignature, verifyWebhookSignature, deliverWebhook, createPredictionPayload, createSegmentUpdatePayload, createFrictionPayload, createConversionPayload, isValidWebhookPayload } from './utils/webhook';
|
|
11
|
+
export type { WebhookPayload, WebhookDeliveryResult } from './utils/webhook';
|
|
12
|
+
export { AthenaOTAWrapper } from './react-native/ForcedReloadWrapper';
|
|
13
|
+
export { ReactNativeEventCapture } from './events/capture-react-native';
|
|
14
|
+
export declare const VERSION = "1.0.0";
|
|
108
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGrG,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACd,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,eAAO,MAAM,OAAO,UAAU,CAAC"}
|