respectlytics-react-native 2.0.1 → 2.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/LICENSE +17 -20
- package/README.md +77 -29
- package/lib/commonjs/EventQueue.js +1 -1
- package/lib/commonjs/NetworkClient.js +13 -14
- package/lib/commonjs/NetworkClient.js.map +1 -1
- package/lib/commonjs/Respectlytics.js +28 -85
- package/lib/commonjs/Respectlytics.js.map +1 -1
- package/lib/commonjs/SessionManager.js +4 -4
- package/lib/commonjs/Storage.js +1 -1
- package/lib/commonjs/index.js +3 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js +12 -11
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/EventQueue.js +1 -1
- package/lib/module/NetworkClient.js +13 -14
- package/lib/module/NetworkClient.js.map +1 -1
- package/lib/module/Respectlytics.js +29 -86
- package/lib/module/Respectlytics.js.map +1 -1
- package/lib/module/SessionManager.js +4 -4
- package/lib/module/Storage.js +1 -1
- package/lib/module/index.js +3 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +12 -11
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/EventQueue.d.ts +1 -1
- package/lib/typescript/NetworkClient.d.ts +6 -5
- package/lib/typescript/NetworkClient.d.ts.map +1 -1
- package/lib/typescript/Respectlytics.d.ts +15 -12
- package/lib/typescript/Respectlytics.d.ts.map +1 -1
- package/lib/typescript/SessionManager.d.ts +4 -4
- package/lib/typescript/Storage.d.ts +1 -1
- package/lib/typescript/index.d.ts +2 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +10 -14
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +5 -2
- package/src/EventQueue.ts +4 -4
- package/src/NetworkClient.ts +12 -13
- package/src/Respectlytics.ts +31 -92
- package/src/SessionManager.ts +6 -6
- package/src/Storage.ts +1 -1
- package/src/index.ts +5 -6
- package/src/types.ts +12 -16
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* NetworkClient.ts
|
|
3
3
|
* Respectlytics React Native SDK
|
|
4
|
-
*
|
|
4
|
+
*
|
|
5
5
|
* Handles HTTP communication with the Respectlytics API.
|
|
6
|
-
* Copyright (c) 2025 Respectlytics.
|
|
6
|
+
* Copyright (c) 2025 Respectlytics. Licensed under MIT.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
const
|
|
9
|
+
const DEFAULT_API_ENDPOINT = 'https://respectlytics.com/api/v1/events/';
|
|
10
10
|
const MAX_RETRIES = 3;
|
|
11
11
|
const TIMEOUT_MS = 30000;
|
|
12
12
|
export let NetworkError = /*#__PURE__*/function (NetworkError) {
|
|
@@ -22,12 +22,16 @@ export let NetworkError = /*#__PURE__*/function (NetworkError) {
|
|
|
22
22
|
}({});
|
|
23
23
|
export class NetworkClient {
|
|
24
24
|
apiKey = null;
|
|
25
|
+
apiEndpoint = DEFAULT_API_ENDPOINT;
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
|
-
* Configure the network client with an API key
|
|
28
|
+
* Configure the network client with an API key and optional custom endpoint
|
|
28
29
|
*/
|
|
29
|
-
configure(apiKey) {
|
|
30
|
+
configure(apiKey, apiEndpoint) {
|
|
30
31
|
this.apiKey = apiKey;
|
|
32
|
+
if (apiEndpoint) {
|
|
33
|
+
this.apiEndpoint = apiEndpoint;
|
|
34
|
+
}
|
|
31
35
|
}
|
|
32
36
|
|
|
33
37
|
/**
|
|
@@ -59,7 +63,7 @@ export class NetworkClient {
|
|
|
59
63
|
const controller = new AbortController();
|
|
60
64
|
const timeoutId = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
61
65
|
try {
|
|
62
|
-
const response = await fetch(
|
|
66
|
+
const response = await fetch(this.apiEndpoint, {
|
|
63
67
|
method: 'POST',
|
|
64
68
|
headers: {
|
|
65
69
|
'Content-Type': 'application/json',
|
|
@@ -123,20 +127,15 @@ export class NetworkClient {
|
|
|
123
127
|
}
|
|
124
128
|
|
|
125
129
|
/**
|
|
126
|
-
* Convert Event object to API payload format
|
|
127
|
-
*
|
|
130
|
+
* Convert Event object to API payload format.
|
|
131
|
+
* The SDK sends 4 fields; the API stores 5 (adding country derived from IP).
|
|
128
132
|
*/
|
|
129
133
|
eventToPayload(event) {
|
|
130
134
|
return {
|
|
131
135
|
event_name: event.eventName,
|
|
132
136
|
timestamp: event.timestamp,
|
|
133
137
|
session_id: event.sessionId,
|
|
134
|
-
|
|
135
|
-
platform: event.platform,
|
|
136
|
-
os_version: event.osVersion,
|
|
137
|
-
app_version: event.appVersion,
|
|
138
|
-
locale: event.locale,
|
|
139
|
-
device_type: event.deviceType
|
|
138
|
+
platform: event.platform
|
|
140
139
|
};
|
|
141
140
|
}
|
|
142
141
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["DEFAULT_API_ENDPOINT","MAX_RETRIES","TIMEOUT_MS","NetworkError","NetworkClient","apiKey","apiEndpoint","configure","isConfigured","send","events","Error","NotConfigured","event","sendEvent","attempt","controller","AbortController","timeoutId","setTimeout","abort","response","fetch","method","headers","body","JSON","stringify","eventToPayload","signal","clearTimeout","ok","status","Unauthorized","BadRequest","delay","Math","pow","RateLimited","ServerError","InvalidResponse","error","message","name","Timeout","event_name","eventName","timestamp","session_id","sessionId","platform","ms","Promise","resolve","networkClient"],"sourceRoot":"../../src","sources":["NetworkClient.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Respectlytics.ts
|
|
3
3
|
* Respectlytics React Native SDK
|
|
4
|
-
*
|
|
4
|
+
*
|
|
5
5
|
* Main entry point for the SDK.
|
|
6
|
-
* Copyright (c) 2025 Respectlytics.
|
|
6
|
+
* Copyright (c) 2025 Respectlytics. Licensed under MIT.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { Platform
|
|
9
|
+
import { Platform } from 'react-native';
|
|
10
10
|
import { SessionManager } from './SessionManager';
|
|
11
11
|
import { NetworkClient } from './NetworkClient';
|
|
12
12
|
import { EventQueue } from './EventQueue';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Main entry point for the Respectlytics SDK.
|
|
16
|
-
*
|
|
17
|
-
* v2.
|
|
16
|
+
*
|
|
17
|
+
* v2.1.0 uses session-based analytics only:
|
|
18
18
|
* - Session IDs are generated automatically in RAM
|
|
19
19
|
* - Sessions rotate every 2 hours
|
|
20
20
|
* - New session on every app restart
|
|
21
|
-
* -
|
|
22
|
-
*
|
|
21
|
+
* - Only 4 fields sent by SDK; 5 stored (country derived server-side)
|
|
22
|
+
*
|
|
23
23
|
* Usage:
|
|
24
24
|
* ```typescript
|
|
25
25
|
* // 1. Configure at app launch
|
|
26
26
|
* Respectlytics.configure('your-api-key');
|
|
27
|
-
*
|
|
27
|
+
*
|
|
28
|
+
* // For self-hosted instances:
|
|
29
|
+
* Respectlytics.configure('your-api-key', { apiEndpoint: 'https://your-server.com/api/v1/events/' });
|
|
30
|
+
*
|
|
28
31
|
* // 2. Track events
|
|
29
32
|
* Respectlytics.track('purchase');
|
|
30
|
-
* Respectlytics.track('view_product', 'ProductScreen');
|
|
31
33
|
* ```
|
|
32
34
|
*/
|
|
33
35
|
class RespectlyticsSDK {
|
|
@@ -36,35 +38,36 @@ class RespectlyticsSDK {
|
|
|
36
38
|
this.networkClient = new NetworkClient();
|
|
37
39
|
this.eventQueue = new EventQueue(this.networkClient);
|
|
38
40
|
this.sessionManager = new SessionManager();
|
|
41
|
+
this.platform = Platform.OS === 'ios' ? 'iOS' : 'Android';
|
|
39
42
|
}
|
|
40
43
|
|
|
41
44
|
/**
|
|
42
45
|
* Initialize the SDK with your API key.
|
|
43
46
|
* Call once at app startup.
|
|
44
|
-
*
|
|
47
|
+
*
|
|
45
48
|
* @param apiKey Your Respectlytics API key from the dashboard
|
|
49
|
+
* @param options Optional configuration (e.g., apiEndpoint for self-hosted instances)
|
|
46
50
|
*/
|
|
47
|
-
configure(apiKey) {
|
|
51
|
+
configure(apiKey, options) {
|
|
48
52
|
if (!apiKey || apiKey.trim() === '') {
|
|
49
53
|
console.log('[Respectlytics] ⚠️ API key cannot be empty');
|
|
50
54
|
return;
|
|
51
55
|
}
|
|
52
|
-
this.networkClient.configure(apiKey);
|
|
56
|
+
this.networkClient.configure(apiKey, options?.apiEndpoint);
|
|
53
57
|
this.eventQueue.start();
|
|
54
58
|
this.isConfigured = true;
|
|
55
|
-
console.log('[Respectlytics] ✓ SDK configured');
|
|
59
|
+
console.log('[Respectlytics] ✓ SDK configured (v2.2.0)');
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
/**
|
|
59
|
-
* Track an event
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
63
|
+
* Track an event.
|
|
64
|
+
*
|
|
65
|
+
* Custom properties are NOT supported - this is by design for privacy.
|
|
66
|
+
* The API stores 5 fields (these 4 plus country derived server-side).
|
|
67
|
+
*
|
|
64
68
|
* @param eventName Name of the event (e.g., "purchase", "button_clicked")
|
|
65
|
-
* @param screen Optional screen name where the event occurred
|
|
66
69
|
*/
|
|
67
|
-
track(eventName
|
|
70
|
+
track(eventName) {
|
|
68
71
|
if (!this.isConfigured) {
|
|
69
72
|
console.log('[Respectlytics] ⚠️ SDK not configured. Call configure(apiKey) first.');
|
|
70
73
|
return;
|
|
@@ -77,7 +80,12 @@ class RespectlyticsSDK {
|
|
|
77
80
|
console.log('[Respectlytics] ⚠️ Event name too long (max 100 characters)');
|
|
78
81
|
return;
|
|
79
82
|
}
|
|
80
|
-
const event =
|
|
83
|
+
const event = {
|
|
84
|
+
eventName,
|
|
85
|
+
timestamp: new Date().toISOString(),
|
|
86
|
+
sessionId: this.sessionManager.getSessionId(),
|
|
87
|
+
platform: this.platform
|
|
88
|
+
};
|
|
81
89
|
this.eventQueue.add(event);
|
|
82
90
|
}
|
|
83
91
|
|
|
@@ -88,71 +96,6 @@ class RespectlyticsSDK {
|
|
|
88
96
|
async flush() {
|
|
89
97
|
await this.eventQueue.flush();
|
|
90
98
|
}
|
|
91
|
-
|
|
92
|
-
// MARK: - Private Helpers
|
|
93
|
-
|
|
94
|
-
createEvent(eventName, screen) {
|
|
95
|
-
const metadata = this.collectMetadata();
|
|
96
|
-
return {
|
|
97
|
-
eventName,
|
|
98
|
-
timestamp: new Date().toISOString(),
|
|
99
|
-
sessionId: this.sessionManager.getSessionId(),
|
|
100
|
-
screen: screen || null,
|
|
101
|
-
...metadata
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
collectMetadata() {
|
|
105
|
-
// Determine platform
|
|
106
|
-
const platform = Platform.OS === 'ios' ? 'iOS' : 'Android';
|
|
107
|
-
|
|
108
|
-
// Get OS version
|
|
109
|
-
const osVersion = String(Platform.Version);
|
|
110
|
-
|
|
111
|
-
// Get app version - try to get from native modules
|
|
112
|
-
let appVersion = 'unknown';
|
|
113
|
-
try {
|
|
114
|
-
// React Native provides app info through different native modules
|
|
115
|
-
const {
|
|
116
|
-
PlatformConstants
|
|
117
|
-
} = NativeModules;
|
|
118
|
-
if (PlatformConstants?.reactNativeVersion) {
|
|
119
|
-
// This is React Native version, not app version
|
|
120
|
-
// App version should come from the host app
|
|
121
|
-
}
|
|
122
|
-
// For now, use 'unknown' as we can't reliably get app version without additional dependencies
|
|
123
|
-
// In a real app, the developer would configure this
|
|
124
|
-
} catch {
|
|
125
|
-
appVersion = 'unknown';
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// Get locale
|
|
129
|
-
let locale = 'en_US';
|
|
130
|
-
try {
|
|
131
|
-
// React Native doesn't expose locale directly, but we can get it from platform
|
|
132
|
-
if (Platform.OS === 'ios') {
|
|
133
|
-
locale = NativeModules.SettingsManager?.settings?.AppleLocale || NativeModules.SettingsManager?.settings?.AppleLanguages?.[0] || 'en_US';
|
|
134
|
-
} else {
|
|
135
|
-
locale = NativeModules.I18nManager?.localeIdentifier || 'en_US';
|
|
136
|
-
}
|
|
137
|
-
} catch {
|
|
138
|
-
locale = 'en_US';
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// Determine device type based on screen size
|
|
142
|
-
const {
|
|
143
|
-
width,
|
|
144
|
-
height
|
|
145
|
-
} = Dimensions.get('window');
|
|
146
|
-
const minDimension = Math.min(width, height);
|
|
147
|
-
const deviceType = minDimension >= 600 ? 'tablet' : 'phone';
|
|
148
|
-
return {
|
|
149
|
-
platform,
|
|
150
|
-
osVersion,
|
|
151
|
-
appVersion,
|
|
152
|
-
locale,
|
|
153
|
-
deviceType
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
99
|
}
|
|
157
100
|
|
|
158
101
|
// Export singleton instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","
|
|
1
|
+
{"version":3,"names":["Platform","SessionManager","NetworkClient","EventQueue","RespectlyticsSDK","isConfigured","constructor","networkClient","eventQueue","sessionManager","platform","OS","configure","apiKey","options","trim","console","log","apiEndpoint","start","track","eventName","length","event","timestamp","Date","toISOString","sessionId","getSessionId","add","flush","Respectlytics"],"sourceRoot":"../../src","sources":["Respectlytics.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,UAAU,QAAQ,cAAc;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,CAAC;EACbC,YAAY,GAAG,KAAK;EAM5BC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,aAAa,GAAG,IAAIL,aAAa,CAAC,CAAC;IACxC,IAAI,CAACM,UAAU,GAAG,IAAIL,UAAU,CAAC,IAAI,CAACI,aAAa,CAAC;IACpD,IAAI,CAACE,cAAc,GAAG,IAAIR,cAAc,CAAC,CAAC;IAC1C,IAAI,CAACS,QAAQ,GAAGV,QAAQ,CAACW,EAAE,KAAK,KAAK,GAAG,KAAK,GAAG,SAAS;EAC3D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,SAASA,CAACC,MAAc,EAAEC,OAAkC,EAAQ;IAClE,IAAI,CAACD,MAAM,IAAIA,MAAM,CAACE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;MACnCC,OAAO,CAACC,GAAG,CAAC,4CAA4C,CAAC;MACzD;IACF;IAEA,IAAI,CAACV,aAAa,CAACK,SAAS,CAACC,MAAM,EAAEC,OAAO,EAAEI,WAAW,CAAC;IAC1D,IAAI,CAACV,UAAU,CAACW,KAAK,CAAC,CAAC;IACvB,IAAI,CAACd,YAAY,GAAG,IAAI;IAExBW,OAAO,CAACC,GAAG,CAAC,2CAA2C,CAAC;EAC1D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEG,KAAKA,CAACC,SAAiB,EAAQ;IAC7B,IAAI,CAAC,IAAI,CAAChB,YAAY,EAAE;MACtBW,OAAO,CAACC,GAAG,CAAC,sEAAsE,CAAC;MACnF;IACF;IAEA,IAAI,CAACI,SAAS,IAAIA,SAAS,CAACN,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;MACzCC,OAAO,CAACC,GAAG,CAAC,+CAA+C,CAAC;MAC5D;IACF;IAEA,IAAII,SAAS,CAACC,MAAM,GAAG,GAAG,EAAE;MAC1BN,OAAO,CAACC,GAAG,CAAC,6DAA6D,CAAC;MAC1E;IACF;IAEA,MAAMM,KAAY,GAAG;MACnBF,SAAS;MACTG,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACnCC,SAAS,EAAE,IAAI,CAAClB,cAAc,CAACmB,YAAY,CAAC,CAAC;MAC7ClB,QAAQ,EAAE,IAAI,CAACA;IACjB,CAAC;IAED,IAAI,CAACF,UAAU,CAACqB,GAAG,CAACN,KAAK,CAAC;EAC5B;;EAEA;AACF;AACA;AACA;EACE,MAAMO,KAAKA,CAAA,EAAkB;IAC3B,MAAM,IAAI,CAACtB,UAAU,CAACsB,KAAK,CAAC,CAAC;EAC/B;AACF;;AAEA;AACA,MAAMC,aAAa,GAAG,IAAI3B,gBAAgB,CAAC,CAAC;AAC5C,eAAe2B,aAAa;AAC5B,SAAS3B,gBAAgB","ignoreList":[]}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Respectlytics React Native SDK
|
|
4
4
|
*
|
|
5
5
|
* Manages session ID generation and rotation.
|
|
6
|
-
* Sessions are stored in RAM only (never persisted
|
|
6
|
+
* Sessions are stored in RAM only (never persisted to disk).
|
|
7
7
|
* Sessions automatically rotate every 2 hours.
|
|
8
8
|
*
|
|
9
|
-
* Copyright (c) 2025 Respectlytics.
|
|
9
|
+
* Copyright (c) 2025 Respectlytics. Licensed under MIT.
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -29,8 +29,8 @@ function generateUUID() {
|
|
|
29
29
|
* - Rotated automatically every 2 hours
|
|
30
30
|
* - Regenerated on every app restart (new instance = new session)
|
|
31
31
|
*
|
|
32
|
-
* This RAM-only approach
|
|
33
|
-
* -
|
|
32
|
+
* This RAM-only approach means session data never touches device storage:
|
|
33
|
+
* - Sessions exist only in memory and are lost on app restart
|
|
34
34
|
* - Each app launch creates a fresh, unlinked session
|
|
35
35
|
*/
|
|
36
36
|
export class SessionManager {
|
package/lib/module/Storage.js
CHANGED
package/lib/module/index.js
CHANGED
|
@@ -5,13 +5,12 @@
|
|
|
5
5
|
*
|
|
6
6
|
* v2.0.0 Features:
|
|
7
7
|
* - Session-based analytics (no persistent user tracking)
|
|
8
|
-
* - RAM-only session storage (
|
|
8
|
+
* - RAM-only session storage (never persisted to disk)
|
|
9
9
|
* - Automatic 2-hour session rotation
|
|
10
10
|
* - New session on every app restart
|
|
11
|
-
*
|
|
12
|
-
* Copyright (c) 2025 Respectlytics.
|
|
11
|
+
*
|
|
12
|
+
* Copyright (c) 2025 Respectlytics. Licensed under MIT.
|
|
13
13
|
*/
|
|
14
|
-
|
|
15
14
|
import Respectlytics from './Respectlytics';
|
|
16
15
|
|
|
17
16
|
// Default export - the main SDK instance
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Respectlytics","RespectlyticsSDK","Event"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA
|
|
1
|
+
{"version":3,"names":["Respectlytics","RespectlyticsSDK","Event"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,aAAa,MAAM,iBAAiB;;AAE3C;AACA,eAAeA,aAAa;;AAE5B;AACA,SAASC,gBAAgB,QAAQ,iBAAiB;AAClD,SAASC,KAAK,QAAQ,SAAS","ignoreList":[]}
|
package/lib/module/types.js
CHANGED
|
@@ -2,26 +2,27 @@
|
|
|
2
2
|
* types.ts
|
|
3
3
|
* Respectlytics React Native SDK
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2025 Respectlytics.
|
|
6
|
-
* This SDK is provided under a proprietary license.
|
|
7
|
-
* See LICENSE file for details.
|
|
5
|
+
* Copyright (c) 2025 Respectlytics. Licensed under MIT.
|
|
8
6
|
*/
|
|
9
7
|
|
|
10
8
|
/**
|
|
11
9
|
* Represents an analytics event - flat structure matching API payload
|
|
12
10
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
11
|
+
* The SDK sends these 4 fields. The API stores 5 total
|
|
12
|
+
* (adding country, derived server-side from IP which is immediately discarded):
|
|
13
|
+
* - event_name (required)
|
|
14
|
+
* - timestamp
|
|
15
|
+
* - session_id
|
|
16
|
+
* - platform
|
|
17
|
+
*
|
|
18
|
+
* Country is derived server-side from IP (which is immediately discarded).
|
|
18
19
|
*/
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* Storage keys used by the SDK
|
|
22
|
-
*
|
|
23
|
-
* Note:
|
|
24
|
-
* Session IDs are RAM-only for
|
|
23
|
+
*
|
|
24
|
+
* Note: Only the event queue is persisted.
|
|
25
|
+
* Session IDs are RAM-only for privacy.
|
|
25
26
|
*/
|
|
26
27
|
export const STORAGE_KEYS = {
|
|
27
28
|
EVENT_QUEUE: 'com.respectlytics.eventQueue'
|
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["STORAGE_KEYS","EVENT_QUEUE"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA
|
|
1
|
+
{"version":3,"names":["STORAGE_KEYS","EVENT_QUEUE"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,YAAY,GAAG;EAC1BC,WAAW,EAAE;AACf,CAAU","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Manages event batching, persistence, and automatic flushing.
|
|
6
6
|
* Events are NEVER lost - they are persisted immediately and retried on failure.
|
|
7
|
-
* Copyright (c) 2025 Respectlytics.
|
|
7
|
+
* Copyright (c) 2025 Respectlytics. Licensed under MIT.
|
|
8
8
|
*/
|
|
9
9
|
import { Event } from './types';
|
|
10
10
|
import { NetworkClient } from './NetworkClient';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Respectlytics React Native SDK
|
|
4
4
|
*
|
|
5
5
|
* Handles HTTP communication with the Respectlytics API.
|
|
6
|
-
* Copyright (c) 2025 Respectlytics.
|
|
6
|
+
* Copyright (c) 2025 Respectlytics. Licensed under MIT.
|
|
7
7
|
*/
|
|
8
8
|
import { Event } from './types';
|
|
9
9
|
export declare enum NetworkError {
|
|
@@ -18,10 +18,11 @@ export declare enum NetworkError {
|
|
|
18
18
|
}
|
|
19
19
|
export declare class NetworkClient {
|
|
20
20
|
private apiKey;
|
|
21
|
+
private apiEndpoint;
|
|
21
22
|
/**
|
|
22
|
-
* Configure the network client with an API key
|
|
23
|
+
* Configure the network client with an API key and optional custom endpoint
|
|
23
24
|
*/
|
|
24
|
-
configure(apiKey: string): void;
|
|
25
|
+
configure(apiKey: string, apiEndpoint?: string): void;
|
|
25
26
|
/**
|
|
26
27
|
* Check if the client is configured
|
|
27
28
|
*/
|
|
@@ -35,8 +36,8 @@ export declare class NetworkClient {
|
|
|
35
36
|
*/
|
|
36
37
|
private sendEvent;
|
|
37
38
|
/**
|
|
38
|
-
* Convert Event object to API payload format
|
|
39
|
-
*
|
|
39
|
+
* Convert Event object to API payload format.
|
|
40
|
+
* The SDK sends 4 fields; the API stores 5 (adding country derived from IP).
|
|
40
41
|
*/
|
|
41
42
|
private eventToPayload;
|
|
42
43
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkClient.d.ts","sourceRoot":"","sources":["../../src/NetworkClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAMhC,oBAAY,YAAY;IACtB,aAAa,mBAAmB;IAChC,eAAe,qBAAqB;IACpC,YAAY,iBAAiB;IAC7B,UAAU,gBAAgB;IAC1B,WAAW,iBAAiB;IAC5B,WAAW,iBAAiB;IAC5B,YAAY,kBAAkB;IAC9B,OAAO,YAAY;CACpB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAuB;
|
|
1
|
+
{"version":3,"file":"NetworkClient.d.ts","sourceRoot":"","sources":["../../src/NetworkClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAMhC,oBAAY,YAAY;IACtB,aAAa,mBAAmB;IAChC,eAAe,qBAAqB;IACpC,YAAY,iBAAiB;IAC7B,UAAU,gBAAgB;IAC1B,WAAW,iBAAiB;IAC5B,WAAW,iBAAiB;IAC5B,YAAY,kBAAkB;IAC9B,OAAO,YAAY;CACpB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAgC;IAEnD;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAOrD;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C;;OAEG;YACW,SAAS;IAgFvB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
|
@@ -3,25 +3,27 @@
|
|
|
3
3
|
* Respectlytics React Native SDK
|
|
4
4
|
*
|
|
5
5
|
* Main entry point for the SDK.
|
|
6
|
-
* Copyright (c) 2025 Respectlytics.
|
|
6
|
+
* Copyright (c) 2025 Respectlytics. Licensed under MIT.
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* Main entry point for the Respectlytics SDK.
|
|
10
10
|
*
|
|
11
|
-
* v2.
|
|
11
|
+
* v2.1.0 uses session-based analytics only:
|
|
12
12
|
* - Session IDs are generated automatically in RAM
|
|
13
13
|
* - Sessions rotate every 2 hours
|
|
14
14
|
* - New session on every app restart
|
|
15
|
-
* -
|
|
15
|
+
* - Only 4 fields sent by SDK; 5 stored (country derived server-side)
|
|
16
16
|
*
|
|
17
17
|
* Usage:
|
|
18
18
|
* ```typescript
|
|
19
19
|
* // 1. Configure at app launch
|
|
20
20
|
* Respectlytics.configure('your-api-key');
|
|
21
21
|
*
|
|
22
|
+
* // For self-hosted instances:
|
|
23
|
+
* Respectlytics.configure('your-api-key', { apiEndpoint: 'https://your-server.com/api/v1/events/' });
|
|
24
|
+
*
|
|
22
25
|
* // 2. Track events
|
|
23
26
|
* Respectlytics.track('purchase');
|
|
24
|
-
* Respectlytics.track('view_product', 'ProductScreen');
|
|
25
27
|
* ```
|
|
26
28
|
*/
|
|
27
29
|
declare class RespectlyticsSDK {
|
|
@@ -29,31 +31,32 @@ declare class RespectlyticsSDK {
|
|
|
29
31
|
private networkClient;
|
|
30
32
|
private eventQueue;
|
|
31
33
|
private sessionManager;
|
|
34
|
+
private platform;
|
|
32
35
|
constructor();
|
|
33
36
|
/**
|
|
34
37
|
* Initialize the SDK with your API key.
|
|
35
38
|
* Call once at app startup.
|
|
36
39
|
*
|
|
37
40
|
* @param apiKey Your Respectlytics API key from the dashboard
|
|
41
|
+
* @param options Optional configuration (e.g., apiEndpoint for self-hosted instances)
|
|
38
42
|
*/
|
|
39
|
-
configure(apiKey: string
|
|
43
|
+
configure(apiKey: string, options?: {
|
|
44
|
+
apiEndpoint?: string;
|
|
45
|
+
}): void;
|
|
40
46
|
/**
|
|
41
|
-
* Track an event
|
|
47
|
+
* Track an event.
|
|
42
48
|
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
49
|
+
* Custom properties are NOT supported - this is by design for privacy.
|
|
50
|
+
* The API stores 5 fields (these 4 plus country derived server-side).
|
|
45
51
|
*
|
|
46
52
|
* @param eventName Name of the event (e.g., "purchase", "button_clicked")
|
|
47
|
-
* @param screen Optional screen name where the event occurred
|
|
48
53
|
*/
|
|
49
|
-
track(eventName: string
|
|
54
|
+
track(eventName: string): void;
|
|
50
55
|
/**
|
|
51
56
|
* Force send all queued events immediately.
|
|
52
57
|
* Rarely needed - the SDK auto-flushes every 30 seconds or when the queue reaches 10 events.
|
|
53
58
|
*/
|
|
54
59
|
flush(): Promise<void>;
|
|
55
|
-
private createEvent;
|
|
56
|
-
private collectMetadata;
|
|
57
60
|
}
|
|
58
61
|
declare const Respectlytics: RespectlyticsSDK;
|
|
59
62
|
export default Respectlytics;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Respectlytics.d.ts","sourceRoot":"","sources":["../../src/Respectlytics.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH
|
|
1
|
+
{"version":3,"file":"Respectlytics.d.ts","sourceRoot":"","sources":["../../src/Respectlytics.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,cAAM,gBAAgB;IACpB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAS;;IASzB;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAanE;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IA0B9B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAGD,QAAA,MAAM,aAAa,kBAAyB,CAAC;AAC7C,eAAe,aAAa,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Respectlytics React Native SDK
|
|
4
4
|
*
|
|
5
5
|
* Manages session ID generation and rotation.
|
|
6
|
-
* Sessions are stored in RAM only (never persisted
|
|
6
|
+
* Sessions are stored in RAM only (never persisted to disk).
|
|
7
7
|
* Sessions automatically rotate every 2 hours.
|
|
8
8
|
*
|
|
9
|
-
* Copyright (c) 2025 Respectlytics.
|
|
9
|
+
* Copyright (c) 2025 Respectlytics. Licensed under MIT.
|
|
10
10
|
*/
|
|
11
11
|
/**
|
|
12
12
|
* Manages session ID generation and rotation.
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
* - Rotated automatically every 2 hours
|
|
18
18
|
* - Regenerated on every app restart (new instance = new session)
|
|
19
19
|
*
|
|
20
|
-
* This RAM-only approach
|
|
21
|
-
* -
|
|
20
|
+
* This RAM-only approach means session data never touches device storage:
|
|
21
|
+
* - Sessions exist only in memory and are lost on app restart
|
|
22
22
|
* - Each app launch creates a fresh, unlinked session
|
|
23
23
|
*/
|
|
24
24
|
export declare class SessionManager {
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
*
|
|
6
6
|
* v2.0.0 Features:
|
|
7
7
|
* - Session-based analytics (no persistent user tracking)
|
|
8
|
-
* - RAM-only session storage (
|
|
8
|
+
* - RAM-only session storage (never persisted to disk)
|
|
9
9
|
* - Automatic 2-hour session rotation
|
|
10
10
|
* - New session on every app restart
|
|
11
11
|
*
|
|
12
|
-
* Copyright (c) 2025 Respectlytics.
|
|
12
|
+
* Copyright (c) 2025 Respectlytics. Licensed under MIT.
|
|
13
13
|
*/
|
|
14
14
|
import Respectlytics from './Respectlytics';
|
|
15
15
|
export default Respectlytics;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAG5C,eAAe,aAAa,CAAC;AAG7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -2,35 +2,31 @@
|
|
|
2
2
|
* types.ts
|
|
3
3
|
* Respectlytics React Native SDK
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2025 Respectlytics.
|
|
6
|
-
* This SDK is provided under a proprietary license.
|
|
7
|
-
* See LICENSE file for details.
|
|
5
|
+
* Copyright (c) 2025 Respectlytics. Licensed under MIT.
|
|
8
6
|
*/
|
|
9
7
|
/**
|
|
10
8
|
* Represents an analytics event - flat structure matching API payload
|
|
11
9
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
10
|
+
* The SDK sends these 4 fields. The API stores 5 total
|
|
11
|
+
* (adding country, derived server-side from IP which is immediately discarded):
|
|
12
|
+
* - event_name (required)
|
|
13
|
+
* - timestamp
|
|
14
|
+
* - session_id
|
|
15
|
+
* - platform
|
|
15
16
|
*
|
|
16
|
-
*
|
|
17
|
+
* Country is derived server-side from IP (which is immediately discarded).
|
|
17
18
|
*/
|
|
18
19
|
export interface Event {
|
|
19
20
|
eventName: string;
|
|
20
21
|
timestamp: string;
|
|
21
22
|
sessionId: string;
|
|
22
|
-
screen: string | null;
|
|
23
23
|
platform: string;
|
|
24
|
-
osVersion: string;
|
|
25
|
-
appVersion: string;
|
|
26
|
-
locale: string;
|
|
27
|
-
deviceType: string;
|
|
28
24
|
}
|
|
29
25
|
/**
|
|
30
26
|
* Storage keys used by the SDK
|
|
31
27
|
*
|
|
32
|
-
* Note:
|
|
33
|
-
* Session IDs are RAM-only for
|
|
28
|
+
* Note: Only the event queue is persisted.
|
|
29
|
+
* Session IDs are RAM-only for privacy.
|
|
34
30
|
*/
|
|
35
31
|
export declare const STORAGE_KEYS: {
|
|
36
32
|
readonly EVENT_QUEUE: "com.respectlytics.eventQueue";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,KAAK;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;CAEf,CAAC"}
|