wisetrack 2.0.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 +5 -0
- package/README.md +128 -0
- package/dist/cdn/constants/constants.d.ts +20 -0
- package/dist/cdn/constants/endpoints.d.ts +11 -0
- package/dist/cdn/constants/environments.d.ts +25 -0
- package/dist/cdn/core/caching/queue-data.d.ts +25 -0
- package/dist/cdn/core/caching/request-queue-manager.d.ts +54 -0
- package/dist/cdn/core/fields/event-fields-builder.d.ts +8 -0
- package/dist/cdn/core/fields/fields-builder.d.ts +9 -0
- package/dist/cdn/core/network/api-client.d.ts +9 -0
- package/dist/cdn/core/network/network-error.d.ts +17 -0
- package/dist/cdn/core/network/network-manager.d.ts +22 -0
- package/dist/cdn/core/network/retry-policy.d.ts +8 -0
- package/dist/cdn/core/storage/storage-manager.d.ts +52 -0
- package/dist/cdn/core/wisetrack.d.ts +125 -0
- package/dist/cdn/core/wt-tracker.d.ts +25 -0
- package/dist/cdn/index.d.ts +4 -0
- package/dist/cdn/sdk.bundle.js +3604 -0
- package/dist/cdn/sdk.bundle.js.map +1 -0
- package/dist/cdn/sdk.bundle.min.js +1 -0
- package/dist/cdn/types/config/initial-config.d.ts +43 -0
- package/dist/cdn/types/config/wt-app-settings.d.ts +15 -0
- package/dist/cdn/types/config/wt-config.d.ts +18 -0
- package/dist/cdn/types/event/revenue-currency.d.ts +39 -0
- package/dist/cdn/types/event/wt-event.d.ts +94 -0
- package/dist/cdn/utils/activity-ticker.d.ts +12 -0
- package/dist/cdn/utils/country-finder.d.ts +9 -0
- package/dist/cdn/utils/crypto-helper.d.ts +4 -0
- package/dist/cdn/utils/device-detector.d.ts +41 -0
- package/dist/cdn/utils/logger.d.ts +36 -0
- package/dist/cdn/utils/storage-support.d.ts +16 -0
- package/dist/cdn/utils/utils.d.ts +5 -0
- package/dist/cdn/utils/webgl-fingerprint.d.ts +7 -0
- package/dist/cjs/constants/constants.d.ts +20 -0
- package/dist/cjs/constants/endpoints.d.ts +11 -0
- package/dist/cjs/constants/environments.d.ts +25 -0
- package/dist/cjs/core/caching/queue-data.d.ts +25 -0
- package/dist/cjs/core/caching/request-queue-manager.d.ts +54 -0
- package/dist/cjs/core/fields/event-fields-builder.d.ts +8 -0
- package/dist/cjs/core/fields/fields-builder.d.ts +9 -0
- package/dist/cjs/core/network/api-client.d.ts +9 -0
- package/dist/cjs/core/network/network-error.d.ts +17 -0
- package/dist/cjs/core/network/network-manager.d.ts +22 -0
- package/dist/cjs/core/network/retry-policy.d.ts +8 -0
- package/dist/cjs/core/storage/storage-manager.d.ts +52 -0
- package/dist/cjs/core/wisetrack.d.ts +125 -0
- package/dist/cjs/core/wt-tracker.d.ts +25 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +3599 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/types/config/initial-config.d.ts +43 -0
- package/dist/cjs/types/config/wt-app-settings.d.ts +15 -0
- package/dist/cjs/types/config/wt-config.d.ts +18 -0
- package/dist/cjs/types/event/revenue-currency.d.ts +39 -0
- package/dist/cjs/types/event/wt-event.d.ts +94 -0
- package/dist/cjs/utils/activity-ticker.d.ts +12 -0
- package/dist/cjs/utils/country-finder.d.ts +9 -0
- package/dist/cjs/utils/crypto-helper.d.ts +4 -0
- package/dist/cjs/utils/device-detector.d.ts +41 -0
- package/dist/cjs/utils/logger.d.ts +36 -0
- package/dist/cjs/utils/storage-support.d.ts +16 -0
- package/dist/cjs/utils/utils.d.ts +5 -0
- package/dist/cjs/utils/webgl-fingerprint.d.ts +7 -0
- package/dist/constants/constants.d.ts +20 -0
- package/dist/constants/constants.js +19 -0
- package/dist/constants/constants.js.map +1 -0
- package/dist/constants/endpoints.d.ts +11 -0
- package/dist/constants/endpoints.js +10 -0
- package/dist/constants/endpoints.js.map +1 -0
- package/dist/constants/environments.d.ts +25 -0
- package/dist/constants/environments.js +37 -0
- package/dist/constants/environments.js.map +1 -0
- package/dist/core/caching/queue-data.d.ts +25 -0
- package/dist/core/caching/queue-data.js +50 -0
- package/dist/core/caching/queue-data.js.map +1 -0
- package/dist/core/caching/request-queue-manager.d.ts +54 -0
- package/dist/core/caching/request-queue-manager.js +333 -0
- package/dist/core/caching/request-queue-manager.js.map +1 -0
- package/dist/core/fields/event-fields-builder.d.ts +8 -0
- package/dist/core/fields/event-fields-builder.js +29 -0
- package/dist/core/fields/event-fields-builder.js.map +1 -0
- package/dist/core/fields/fields-builder.d.ts +9 -0
- package/dist/core/fields/fields-builder.js +120 -0
- package/dist/core/fields/fields-builder.js.map +1 -0
- package/dist/core/network/api-client.d.ts +9 -0
- package/dist/core/network/api-client.js +88 -0
- package/dist/core/network/api-client.js.map +1 -0
- package/dist/core/network/network-error.d.ts +17 -0
- package/dist/core/network/network-error.js +35 -0
- package/dist/core/network/network-error.js.map +1 -0
- package/dist/core/network/network-manager.d.ts +22 -0
- package/dist/core/network/network-manager.js +72 -0
- package/dist/core/network/network-manager.js.map +1 -0
- package/dist/core/network/retry-policy.d.ts +8 -0
- package/dist/core/network/retry-policy.js +26 -0
- package/dist/core/network/retry-policy.js.map +1 -0
- package/dist/core/storage/storage-manager.d.ts +52 -0
- package/dist/core/storage/storage-manager.js +221 -0
- package/dist/core/storage/storage-manager.js.map +1 -0
- package/dist/core/wisetrack.d.ts +125 -0
- package/dist/core/wisetrack.js +277 -0
- package/dist/core/wisetrack.js.map +1 -0
- package/dist/core/wt-tracker.d.ts +25 -0
- package/dist/core/wt-tracker.js +239 -0
- package/dist/core/wt-tracker.js.map +1 -0
- package/dist/esm/constants/constants.d.ts +20 -0
- package/dist/esm/constants/endpoints.d.ts +11 -0
- package/dist/esm/constants/environments.d.ts +25 -0
- package/dist/esm/core/caching/queue-data.d.ts +25 -0
- package/dist/esm/core/caching/request-queue-manager.d.ts +54 -0
- package/dist/esm/core/fields/event-fields-builder.d.ts +8 -0
- package/dist/esm/core/fields/fields-builder.d.ts +9 -0
- package/dist/esm/core/network/api-client.d.ts +9 -0
- package/dist/esm/core/network/network-error.d.ts +17 -0
- package/dist/esm/core/network/network-manager.d.ts +22 -0
- package/dist/esm/core/network/retry-policy.d.ts +8 -0
- package/dist/esm/core/storage/storage-manager.d.ts +52 -0
- package/dist/esm/core/wisetrack.d.ts +125 -0
- package/dist/esm/core/wt-tracker.d.ts +25 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +3594 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types/config/initial-config.d.ts +43 -0
- package/dist/esm/types/config/wt-app-settings.d.ts +15 -0
- package/dist/esm/types/config/wt-config.d.ts +18 -0
- package/dist/esm/types/event/revenue-currency.d.ts +39 -0
- package/dist/esm/types/event/wt-event.d.ts +94 -0
- package/dist/esm/utils/activity-ticker.d.ts +12 -0
- package/dist/esm/utils/country-finder.d.ts +9 -0
- package/dist/esm/utils/crypto-helper.d.ts +4 -0
- package/dist/esm/utils/device-detector.d.ts +41 -0
- package/dist/esm/utils/logger.d.ts +36 -0
- package/dist/esm/utils/storage-support.d.ts +16 -0
- package/dist/esm/utils/utils.d.ts +5 -0
- package/dist/esm/utils/webgl-fingerprint.d.ts +7 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/types/config/initial-config.d.ts +43 -0
- package/dist/types/config/initial-config.js +2 -0
- package/dist/types/config/initial-config.js.map +1 -0
- package/dist/types/config/wt-app-settings.d.ts +15 -0
- package/dist/types/config/wt-app-settings.js +25 -0
- package/dist/types/config/wt-app-settings.js.map +1 -0
- package/dist/types/config/wt-config.d.ts +18 -0
- package/dist/types/config/wt-config.js +28 -0
- package/dist/types/config/wt-config.js.map +1 -0
- package/dist/types/event/revenue-currency.d.ts +39 -0
- package/dist/types/event/revenue-currency.js +39 -0
- package/dist/types/event/revenue-currency.js.map +1 -0
- package/dist/types/event/wt-event.d.ts +94 -0
- package/dist/types/event/wt-event.js +93 -0
- package/dist/types/event/wt-event.js.map +1 -0
- package/dist/utils/activity-ticker.d.ts +12 -0
- package/dist/utils/activity-ticker.js +37 -0
- package/dist/utils/activity-ticker.js.map +1 -0
- package/dist/utils/country-finder.d.ts +9 -0
- package/dist/utils/country-finder.js +71 -0
- package/dist/utils/country-finder.js.map +1 -0
- package/dist/utils/crypto-helper.d.ts +4 -0
- package/dist/utils/crypto-helper.js +7 -0
- package/dist/utils/crypto-helper.js.map +1 -0
- package/dist/utils/device-detector.d.ts +41 -0
- package/dist/utils/device-detector.js +101 -0
- package/dist/utils/device-detector.js.map +1 -0
- package/dist/utils/logger.d.ts +36 -0
- package/dist/utils/logger.js +84 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/storage-support.d.ts +16 -0
- package/dist/utils/storage-support.js +86 -0
- package/dist/utils/storage-support.js.map +1 -0
- package/dist/utils/utils.d.ts +5 -0
- package/dist/utils/utils.js +95 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/utils/webgl-fingerprint.d.ts +7 -0
- package/dist/utils/webgl-fingerprint.js +100 -0
- package/dist/utils/webgl-fingerprint.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { EnvironmentUtils } from "../constants/environments";
|
|
11
|
+
import { WTAppSettings } from "../types/config/wt-app-settings";
|
|
12
|
+
import { WTConfig } from "../types/config/wt-config";
|
|
13
|
+
import { WTLogger } from "../utils/logger";
|
|
14
|
+
import { apiClient } from "./network/api-client";
|
|
15
|
+
import { ApiError } from "./network/network-error";
|
|
16
|
+
import { storageManager } from "./storage/storage-manager";
|
|
17
|
+
import { tracker } from "./wt-tracker";
|
|
18
|
+
/**
|
|
19
|
+
* The main entry point for the WiseTrack Web SDK.
|
|
20
|
+
*
|
|
21
|
+
* Use this singleton to initialize the SDK, configure its behavior, and track events.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* const initialConfig: WTInitialConfig = {
|
|
26
|
+
* appToken: appToken ?? "rMN5ZCwpOzY7",
|
|
27
|
+
* appFrameWork: "native",
|
|
28
|
+
* appVersion: "1.0.0",
|
|
29
|
+
* };
|
|
30
|
+
* await WiseTrack.instance.init(initialConfig);
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export class WiseTrack {
|
|
34
|
+
/**
|
|
35
|
+
* Returns the singleton instance of the WiseTrack SDK.
|
|
36
|
+
*/
|
|
37
|
+
static get instance() {
|
|
38
|
+
if (!WiseTrack._instance) {
|
|
39
|
+
WiseTrack._instance = new WiseTrack();
|
|
40
|
+
}
|
|
41
|
+
return WiseTrack._instance;
|
|
42
|
+
}
|
|
43
|
+
constructor() {
|
|
44
|
+
this.sdkInitialized = false;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Initializes the WiseTrack SDK with the given configuration.
|
|
48
|
+
*
|
|
49
|
+
* This method must be called before using any tracking features.
|
|
50
|
+
*
|
|
51
|
+
* @param initConfig - The initial configuration object.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* const initialConfig: WTInitialConfig = {
|
|
56
|
+
* appToken: appToken ?? "rMN5ZCwpOzY7",
|
|
57
|
+
* appFrameWork: "native", // your current web app framework (native, reactjs, nextjs, ...)
|
|
58
|
+
* appVersion: "1.0.0", // your current web app version
|
|
59
|
+
* };
|
|
60
|
+
*
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
init(initConfig) {
|
|
64
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
var _a, _b;
|
|
66
|
+
const config = yield this.getConfig(initConfig);
|
|
67
|
+
this.checkSdkEnabled(config);
|
|
68
|
+
this.checkSdkUpdate(config);
|
|
69
|
+
this.setEnabled(true);
|
|
70
|
+
yield this.updateAppSettings(config);
|
|
71
|
+
this.sdkInitialized = true;
|
|
72
|
+
yield tracker.initialize();
|
|
73
|
+
const autoStart = (_a = initConfig.startTrackerAutomatically) !== null && _a !== void 0 ? _a : true;
|
|
74
|
+
if (autoStart) {
|
|
75
|
+
setTimeout(() => this.startTracking(), ((_b = initConfig.trackingWaitingTime) !== null && _b !== void 0 ? _b : 0) * 1000);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Sets the log level for internal SDK logging.
|
|
81
|
+
*
|
|
82
|
+
* @param level - The desired log level.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* WiseTrack.instance.setLogLevel(WTLogLevel.WARN)
|
|
87
|
+
* // or
|
|
88
|
+
* WiseTrack.instance.setLogLevel("warn")
|
|
89
|
+
*
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
setLogLevel(level) {
|
|
93
|
+
WTLogger.setLevel(level);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Clears all stored data and stops the tracker.
|
|
97
|
+
*/
|
|
98
|
+
flush() {
|
|
99
|
+
WTLogger.info("Clearing Data and stop tracker!");
|
|
100
|
+
storageManager.clear();
|
|
101
|
+
this.stopTracking();
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Returns whether the SDK is currently enabled.
|
|
105
|
+
*/
|
|
106
|
+
isEnabled() {
|
|
107
|
+
return storageManager.sdkEnabled;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Enables or disables the SDK.
|
|
111
|
+
*
|
|
112
|
+
* Throws an error if the SDK is disabled by the server or needs an update.
|
|
113
|
+
*
|
|
114
|
+
* @param enabled - Whether to enable the SDK.
|
|
115
|
+
* @throws If the server has disabled the SDK or a forced update is required.
|
|
116
|
+
*/
|
|
117
|
+
setEnabled(enabled) {
|
|
118
|
+
const config = storageManager.config;
|
|
119
|
+
if (!config) {
|
|
120
|
+
throw new Error("Config is not set!");
|
|
121
|
+
}
|
|
122
|
+
if (!config.sdkEnabled) {
|
|
123
|
+
throw new Error("SDK is disabled form server, contact your adminstrator!");
|
|
124
|
+
}
|
|
125
|
+
if (config.forceUpdate) {
|
|
126
|
+
throw new Error("The version you are currently using has expired and is no longer supported. Please update to the latest version to continue using the SDK");
|
|
127
|
+
}
|
|
128
|
+
storageManager.sdkEnabled = enabled;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Starts the tracking process.
|
|
132
|
+
*
|
|
133
|
+
* @remarks
|
|
134
|
+
* The SDK must be initialized and enabled before calling this method.
|
|
135
|
+
*
|
|
136
|
+
* NOTE: call this method just if you set startTrackerAutomatically=false in WTInitialConfig
|
|
137
|
+
*/
|
|
138
|
+
startTracking() {
|
|
139
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
if (!this.sdkInitialized) {
|
|
141
|
+
WTLogger.warn("‼️ Start Tracking: SDK is not initialized yet");
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (!this.isEnabled()) {
|
|
145
|
+
WTLogger.warn("Start Tracking: SDK is not enabled!");
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
yield tracker.startTracking();
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Stops the tracking process.
|
|
153
|
+
*/
|
|
154
|
+
stopTracking() {
|
|
155
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
156
|
+
yield tracker.stopTracking();
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Sets the Firebase Cloud Messaging (FCM) push token for server.
|
|
161
|
+
*
|
|
162
|
+
* @param token - The FCM token.
|
|
163
|
+
*/
|
|
164
|
+
setFCMToken(token) {
|
|
165
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
166
|
+
if (!this.sdkInitialized) {
|
|
167
|
+
WTLogger.warn("‼️ Set Fcm Token: SDK is not initialized yet");
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (!this.isEnabled()) {
|
|
171
|
+
WTLogger.warn("Set Fcm Token: SDK is not enabled!");
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
yield tracker.checkPushToken(token);
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Tracks a custom event or revenue event.
|
|
179
|
+
*
|
|
180
|
+
* @param event - The event object to be tracked.
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```ts
|
|
184
|
+
* // Create a Default Event
|
|
185
|
+
* const defaultEvent = new WTEvent.Default("default-event");
|
|
186
|
+
* defaultEvent.addParam("key1", "value1");
|
|
187
|
+
* defaultEvent.addParam("key2", 123);
|
|
188
|
+
* defaultEvent.addParam("key3", true);
|
|
189
|
+
* await WiseTrack.instance.trackEvent(defaultEvent);
|
|
190
|
+
*
|
|
191
|
+
* // Create a Revenue Event
|
|
192
|
+
* const revenueEvent = new WTEvent.Revenue("revenue-event", 100, "USD");
|
|
193
|
+
* revenueEvent.addParam("item_id", "item123");
|
|
194
|
+
* revenueEvent.addParam("quantity", 2);
|
|
195
|
+
* await WiseTrack.instance.trackEvent(revenueEvent);
|
|
196
|
+
* ```
|
|
197
|
+
*/
|
|
198
|
+
trackEvent(event) {
|
|
199
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
200
|
+
if (!this.sdkInitialized) {
|
|
201
|
+
WTLogger.warn("‼️ Track Event: SDK is not initialized yet");
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
if (!this.isEnabled()) {
|
|
205
|
+
WTLogger.warn("Track Event: SDK is not enabled!");
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
yield tracker.trackEvent(event);
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
// ===========================================================================
|
|
212
|
+
/** @internal */
|
|
213
|
+
getConfig(initConfig) {
|
|
214
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
215
|
+
storageManager.initialConfig = initConfig;
|
|
216
|
+
let config;
|
|
217
|
+
try {
|
|
218
|
+
config = yield apiClient.doGetConfig();
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
if (!(error instanceof ApiError.NetworkError)) {
|
|
222
|
+
WTLogger.info("‼️ SDK Config NOT set!, check errors.");
|
|
223
|
+
throw error;
|
|
224
|
+
}
|
|
225
|
+
config = storageManager.config || WTConfig.defaultValue;
|
|
226
|
+
}
|
|
227
|
+
storageManager.config = config;
|
|
228
|
+
WTLogger.info("SDK Config set");
|
|
229
|
+
return config;
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
/** @internal */
|
|
233
|
+
updateAppSettings(config) {
|
|
234
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
235
|
+
let appSettings;
|
|
236
|
+
if (!EnvironmentUtils.needAppSettings()) {
|
|
237
|
+
appSettings = WTAppSettings.fromConfig(config);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
WTLogger.debug(`Need to get app-settings for ${EnvironmentUtils.sdkEnvironment} environment`);
|
|
241
|
+
try {
|
|
242
|
+
appSettings = yield apiClient.doGetAppSettings();
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
if (!(error instanceof ApiError.NetworkError)) {
|
|
246
|
+
WTLogger.info("‼️ App Settings NOT set!, check errors.");
|
|
247
|
+
throw error;
|
|
248
|
+
}
|
|
249
|
+
appSettings = WTAppSettings.defaultValue;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
storageManager.appSettings = appSettings;
|
|
253
|
+
WTLogger.info("App Settings set");
|
|
254
|
+
return appSettings;
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
/** @internal */
|
|
258
|
+
checkSdkEnabled(config) {
|
|
259
|
+
if (!config.sdkEnabled) {
|
|
260
|
+
const message = "SDK is disabled form server, contact your adminstrator!";
|
|
261
|
+
WTLogger.error(message);
|
|
262
|
+
throw new Error(message);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
/** @internal */
|
|
266
|
+
checkSdkUpdate(config) {
|
|
267
|
+
if (config.forceUpdate) {
|
|
268
|
+
const message = "The version you are currently using has expired and is no longer supported. Please update to the latest version to continue using the SDK";
|
|
269
|
+
WTLogger.error(message);
|
|
270
|
+
throw new Error(message);
|
|
271
|
+
}
|
|
272
|
+
if (config.sdkUpdate) {
|
|
273
|
+
WTLogger.warn("A new version of the SDK is available. It is recommended to update to the latest version to enjoy improved features and better performance.");
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=wisetrack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wisetrack.js","sourceRoot":"","sources":["../../src/core/wisetrack.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAc,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,SAAS;IAGpB;;OAEG;IACH,MAAM,KAAK,QAAQ;QACjB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACzB,SAAS,CAAC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,SAAS,CAAC,SAAU,CAAC;IAC9B,CAAC;IAED;QAEQ,mBAAc,GAAY,KAAK,CAAC;IAFjB,CAAC;IAIxB;;;;;;;;;;;;;;;;OAgBG;IACG,IAAI,CAAC,UAA2B;;;YACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEtB,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAErC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAE3B,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YAE3B,MAAM,SAAS,GAAY,MAAA,UAAU,CAAC,yBAAyB,mCAAI,IAAI,CAAC;YACxE,IAAI,SAAS,EAAE,CAAC;gBACd,UAAU,CACR,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EAC1B,CAAC,MAAA,UAAU,CAAC,mBAAmB,mCAAI,CAAC,CAAC,GAAG,IAAI,CAC7C,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,KAAiB;QAC3B,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACjD,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,cAAc,CAAC,UAAU,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,OAAgB;QACzB,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,2IAA2I,CAC5I,CAAC;QACJ,CAAC;QAED,cAAc,CAAC,UAAU,GAAG,OAAO,CAAC;IACtC,CAAC;IAED;;;;;;;OAOG;IACG,aAAa;;YACjB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBACrD,OAAO;YACT,CAAC;YAED,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC;KAAA;IAED;;OAEG;IACG,YAAY;;YAChB,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;QAC/B,CAAC;KAAA;IAED;;;;OAIG;IACG,WAAW,CAAC,KAAa;;YAC7B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;gBAC9D,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YACD,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;KAAA;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,UAAU,CAAC,KAAwC;;YACvD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YACD,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;KAAA;IAED,8EAA8E;IAE9E,gBAAgB;IACF,SAAS,CAAC,UAA2B;;YACjD,cAAc,CAAC,aAAa,GAAG,UAAU,CAAC;YAE1C,IAAI,MAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC9C,QAAQ,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;oBACvD,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,MAAM,GAAG,cAAc,CAAC,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC;YAC1D,CAAC;YACD,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAED,gBAAgB;IACF,iBAAiB,CAAC,MAAgB;;YAC9C,IAAI,WAA0B,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,EAAE,CAAC;gBACxC,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,KAAK,CACZ,gCAAgC,gBAAgB,CAAC,cAAc,cAAc,CAC9E,CAAC;gBACF,IAAI,CAAC;oBACH,WAAW,GAAG,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBACnD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC9C,QAAQ,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;wBACzD,MAAM,KAAK,CAAC;oBACd,CAAC;oBACD,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC;gBAC3C,CAAC;YACH,CAAC;YACD,cAAc,CAAC,WAAW,GAAG,WAAW,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClC,OAAO,WAAW,CAAC;QACrB,CAAC;KAAA;IAED,gBAAgB;IACR,eAAe,CAAC,MAAgB;QACtC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,yDAAyD,CAAC;YAC1E,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,gBAAgB;IACR,cAAc,CAAC,MAAgB;QACrC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,OAAO,GACX,2IAA2I,CAAC;YAC9I,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,CACX,6IAA6I,CAC9I,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { WTEvent } from "../types/event/wt-event";
|
|
2
|
+
/** @internal */
|
|
3
|
+
declare class WTTracker {
|
|
4
|
+
private isRunning;
|
|
5
|
+
private initialized;
|
|
6
|
+
private get isEnabled();
|
|
7
|
+
initialize(): Promise<void>;
|
|
8
|
+
startTracking(): Promise<void>;
|
|
9
|
+
stopTracking(): Promise<void>;
|
|
10
|
+
checkPushToken(token: string): Promise<void>;
|
|
11
|
+
trackEvent(event: WTEvent.Default | WTEvent.Revenue): Promise<void>;
|
|
12
|
+
private getCountryCode;
|
|
13
|
+
private createAttribution;
|
|
14
|
+
private checkFirstSession;
|
|
15
|
+
private checkSdkClicks;
|
|
16
|
+
private createRequest;
|
|
17
|
+
private createDeviceID;
|
|
18
|
+
private setActivityTimes;
|
|
19
|
+
private checkSessionIntervals;
|
|
20
|
+
private isVisibleFocused;
|
|
21
|
+
private addObservers;
|
|
22
|
+
}
|
|
23
|
+
/** @internal */
|
|
24
|
+
export declare const tracker: WTTracker;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { WTEndpoints } from "../constants/endpoints";
|
|
11
|
+
import { activityTicker } from "../utils/activity-ticker";
|
|
12
|
+
import { countryFinder } from "../utils/country-finder";
|
|
13
|
+
import { cryptoHelper } from "../utils/crypto-helper";
|
|
14
|
+
import { WTLogger } from "../utils/logger";
|
|
15
|
+
import { RequestRecord } from "./caching/queue-data";
|
|
16
|
+
import { queueManager } from "./caching/request-queue-manager";
|
|
17
|
+
import { EventFieldsBuilder } from "./fields/event-fields-builder";
|
|
18
|
+
import { fieldsBuilder } from "./fields/fields-builder";
|
|
19
|
+
import { storageManager } from "./storage/storage-manager";
|
|
20
|
+
/** @internal */
|
|
21
|
+
class WTTracker {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.isRunning = false;
|
|
24
|
+
this.initialized = false;
|
|
25
|
+
}
|
|
26
|
+
get isEnabled() {
|
|
27
|
+
return storageManager.sdkEnabled;
|
|
28
|
+
}
|
|
29
|
+
initialize() {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
this.getCountryCode();
|
|
32
|
+
yield this.setActivityTimes();
|
|
33
|
+
this.createDeviceID();
|
|
34
|
+
this.addObservers();
|
|
35
|
+
this.initialized = true;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
startTracking() {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
if (!this.isEnabled) {
|
|
41
|
+
WTLogger.warn("SDK is not enabled to start tracking!");
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
WTLogger.debug("WT Tracker started");
|
|
45
|
+
yield queueManager.initialize();
|
|
46
|
+
yield this.checkSdkClicks();
|
|
47
|
+
yield this.checkFirstSession();
|
|
48
|
+
yield this.createAttribution();
|
|
49
|
+
this.isRunning = true;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
stopTracking() {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
this.isRunning = false;
|
|
55
|
+
activityTicker.stop();
|
|
56
|
+
yield queueManager.shutdown();
|
|
57
|
+
WTLogger.debug("WT Tracker stopped");
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
checkPushToken(token) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
storageManager.pushToken = token;
|
|
63
|
+
if (!this.isEnabled) {
|
|
64
|
+
WTLogger.warn("CheckPushToken: SDK is not enabled");
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (storageManager.fcmToken === token) {
|
|
68
|
+
WTLogger.info("This Notification token has sent to server previously");
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
yield this.createRequest({
|
|
72
|
+
endpoint: WTEndpoints.SDK_INFOS,
|
|
73
|
+
queueType: "pending",
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
trackEvent(event) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
if (!this.isEnabled) {
|
|
80
|
+
WTLogger.warn("trackEvent: SDK is not enabled");
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (!this.initialized) {
|
|
84
|
+
WTLogger.warn("trackEvent: SDK is not initialized yet");
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
storageManager.eventCount += 1;
|
|
88
|
+
yield this.createRequest({
|
|
89
|
+
endpoint: WTEndpoints.EVENTS,
|
|
90
|
+
fBuilder: new EventFieldsBuilder(event),
|
|
91
|
+
queueType: "pending",
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
// =======================================================================
|
|
96
|
+
getCountryCode() {
|
|
97
|
+
countryFinder.getCountryCode();
|
|
98
|
+
}
|
|
99
|
+
createAttribution() {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
if (!this.isEnabled) {
|
|
102
|
+
WTLogger.warn("Creating Attribution: SDK is not enabled!");
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
yield this.createRequest({
|
|
106
|
+
endpoint: WTEndpoints.ATTRIBUTIONS,
|
|
107
|
+
queueType: "pending",
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
checkFirstSession() {
|
|
112
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
113
|
+
if (!this.isEnabled) {
|
|
114
|
+
WTLogger.warn("Creating First Session: SDK is not enabled!");
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (storageManager.firstSessionSubmit) {
|
|
118
|
+
WTLogger.debug("Creating Session: First-Session has already submitted");
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
yield this.createRequest({
|
|
122
|
+
endpoint: WTEndpoints.SESSIONS,
|
|
123
|
+
queueType: storageManager.sdkClickSubmit ? "main" : "pending",
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
checkSdkClicks() {
|
|
128
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
if (!this.isEnabled) {
|
|
130
|
+
WTLogger.warn("Creating Install: SDK is not enabled!");
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (storageManager.sdkClickSubmit) {
|
|
134
|
+
WTLogger.debug("Creating Install: SDK-Clicks has already submitted");
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
yield this.createRequest({
|
|
138
|
+
endpoint: WTEndpoints.SDK_CLICKS,
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
createRequest(_a) {
|
|
143
|
+
return __awaiter(this, arguments, void 0, function* ({ endpoint, fBuilder = fieldsBuilder, queueType = "main", }) {
|
|
144
|
+
const fields = yield fBuilder.build();
|
|
145
|
+
const request = new RequestRecord(endpoint, fields);
|
|
146
|
+
if (queueType === "pending") {
|
|
147
|
+
WTLogger.info(`Add ${endpoint} request to pending queue`);
|
|
148
|
+
yield queueManager.addPendingRequest(request);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
WTLogger.info(`Add ${endpoint} request to main queue`);
|
|
152
|
+
yield queueManager.addRequest(request);
|
|
153
|
+
}
|
|
154
|
+
const queueStatus = queueManager.getQueueStatus();
|
|
155
|
+
console.log(JSON.stringify(queueStatus));
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
createDeviceID() {
|
|
159
|
+
if (!storageManager.deviceId) {
|
|
160
|
+
storageManager.deviceId = cryptoHelper.generateDeviceUUID();
|
|
161
|
+
}
|
|
162
|
+
if (!storageManager.initialDate) {
|
|
163
|
+
storageManager.initialDate = new Date().toISOString();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
setActivityTimes() {
|
|
167
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
168
|
+
// Update inactive time to last stored active time
|
|
169
|
+
if (storageManager.activeTime) {
|
|
170
|
+
storageManager.inactiveTime = storageManager.activeTime;
|
|
171
|
+
const inteval = Date.now() - storageManager.inactiveTime;
|
|
172
|
+
storageManager.inactiveDuration += inteval;
|
|
173
|
+
console.log(`User was inactived for ${inteval / 1000}s | (${storageManager.inactiveDuration / 1000}s Totaly)`);
|
|
174
|
+
yield this.checkSessionIntervals();
|
|
175
|
+
}
|
|
176
|
+
// update active time to now and start ticker for update active time/duration per 1s
|
|
177
|
+
storageManager.activeTime = Date.now();
|
|
178
|
+
activityTicker.start();
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
checkSessionIntervals() {
|
|
182
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
183
|
+
var _a, _b;
|
|
184
|
+
const inactiveTime = storageManager.inactiveTime;
|
|
185
|
+
const sessionInterval = (_a = storageManager.appSettings) === null || _a === void 0 ? void 0 : _a.sessionInterval;
|
|
186
|
+
const subsessionInterval = (_b = storageManager.appSettings) === null || _b === void 0 ? void 0 : _b.subsessionInterval;
|
|
187
|
+
if (!this.isEnabled) {
|
|
188
|
+
WTLogger.warn("Creating Session: SDK is not enabled!");
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
if (!inactiveTime || !sessionInterval || !subsessionInterval) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
const interval = Date.now() - inactiveTime;
|
|
195
|
+
if (interval > parseInt(sessionInterval)) {
|
|
196
|
+
storageManager.sessionCount += 1;
|
|
197
|
+
yield this.createRequest({
|
|
198
|
+
endpoint: WTEndpoints.SESSIONS,
|
|
199
|
+
queueType: storageManager.sdkClickSubmit ? "main" : "pending",
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
else if (interval > parseInt(subsessionInterval)) {
|
|
203
|
+
storageManager.subSessionCount += 1;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
isVisibleFocused() {
|
|
208
|
+
return document.visibilityState === "visible" && document.hasFocus();
|
|
209
|
+
}
|
|
210
|
+
addObservers() {
|
|
211
|
+
// document.addEventListener("load", () => {
|
|
212
|
+
// this.setActivityTimes();
|
|
213
|
+
// });
|
|
214
|
+
window.addEventListener("beforeunload", () => {
|
|
215
|
+
activityTicker.stop();
|
|
216
|
+
});
|
|
217
|
+
document.addEventListener("visibilitychange", () => {
|
|
218
|
+
if (this.isVisibleFocused()) {
|
|
219
|
+
this.createAttribution();
|
|
220
|
+
this.setActivityTimes();
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
activityTicker.stop();
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
window.addEventListener("focus", () => {
|
|
227
|
+
if (this.isVisibleFocused()) {
|
|
228
|
+
this.createAttribution();
|
|
229
|
+
this.setActivityTimes();
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
window.addEventListener("blur", () => {
|
|
233
|
+
activityTicker.stop();
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/** @internal */
|
|
238
|
+
export const tracker = new WTTracker();
|
|
239
|
+
//# sourceMappingURL=wt-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wt-tracker.js","sourceRoot":"","sources":["../../src/core/wt-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { WTLogLevel } from "../utils/logger";
|
|
2
|
+
import { WTSDKEnvironment } from "./environments";
|
|
3
|
+
/** @internal */
|
|
4
|
+
export declare const WTConstants: {
|
|
5
|
+
readonly SDK: {
|
|
6
|
+
readonly HASH: "997bfbb583c1245a426a53dc1899ec779ff354f9";
|
|
7
|
+
readonly PLATFORM: "web";
|
|
8
|
+
readonly VERSION: "2.0.0";
|
|
9
|
+
};
|
|
10
|
+
readonly CONFIG: {
|
|
11
|
+
readonly BASE_URL: "https://config.wisetrack.io";
|
|
12
|
+
readonly DEFAULT_ENVIRONMENT: WTSDKEnvironment;
|
|
13
|
+
};
|
|
14
|
+
readonly DEFAULTS: {
|
|
15
|
+
readonly LOG_LEVEL: WTLogLevel;
|
|
16
|
+
readonly SESSION_INTERVAL: "1800000";
|
|
17
|
+
readonly SUBSESSION_INTERVAL: "300000";
|
|
18
|
+
readonly PARAMETERS_VALUE: string | undefined;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** @internal */
|
|
2
|
+
export declare const WTEndpoints: {
|
|
3
|
+
readonly EVENTS: "/api/v1/events";
|
|
4
|
+
readonly SESSIONS: "/api/v1/sessions";
|
|
5
|
+
readonly SDK_CLICKS: "/api/v1/sdk_clicks";
|
|
6
|
+
readonly SDK_INFOS: "/api/v1/sdk_infos";
|
|
7
|
+
readonly ATTRIBUTIONS: "/api/v1/attributions";
|
|
8
|
+
readonly APP_SETTINGS: "/api/v1/app_settings";
|
|
9
|
+
};
|
|
10
|
+
/** @internal */
|
|
11
|
+
export type WTEndpoints = (typeof WTEndpoints)[keyof typeof WTEndpoints];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines the user environment in which the SDK is running.
|
|
3
|
+
*
|
|
4
|
+
* - `SANDBOX`: Use this for testing and development.
|
|
5
|
+
* - `PRODUCTION`: Use this for production deployment.
|
|
6
|
+
*/
|
|
7
|
+
export declare const WTUserEnvironment: {
|
|
8
|
+
readonly SANDBOX: "sandbox";
|
|
9
|
+
readonly PRODUCTION: "production";
|
|
10
|
+
};
|
|
11
|
+
export type WTUserEnvironment = (typeof WTUserEnvironment)[keyof typeof WTUserEnvironment];
|
|
12
|
+
/** @internal */
|
|
13
|
+
export declare const WTSDKEnvironment: {
|
|
14
|
+
readonly DEBUG: "debug";
|
|
15
|
+
readonly STAGE: "stage";
|
|
16
|
+
readonly PRODUCTION: "production";
|
|
17
|
+
};
|
|
18
|
+
/** @internal */
|
|
19
|
+
export type WTSDKEnvironment = (typeof WTSDKEnvironment)[keyof typeof WTSDKEnvironment];
|
|
20
|
+
/** @internal */
|
|
21
|
+
export declare const EnvironmentUtils: {
|
|
22
|
+
sdkEnvironment: WTSDKEnvironment;
|
|
23
|
+
needAppSettings(): boolean;
|
|
24
|
+
baseUrl(): string;
|
|
25
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { WTEndpoints } from "../../constants/endpoints";
|
|
2
|
+
import { FieldsBuilder } from "../fields/fields-builder";
|
|
3
|
+
/** @internal */
|
|
4
|
+
export interface RequestRecordCreator {
|
|
5
|
+
endpoint: WTEndpoints;
|
|
6
|
+
fBuilder?: FieldsBuilder;
|
|
7
|
+
queueType?: "main" | "pending";
|
|
8
|
+
}
|
|
9
|
+
/** @internal */
|
|
10
|
+
export declare class RequestRecord {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly endpoint: WTEndpoints;
|
|
13
|
+
readonly parameters: Record<string, any>;
|
|
14
|
+
readonly createdAt: number;
|
|
15
|
+
retryCount: number;
|
|
16
|
+
maxRetries: number;
|
|
17
|
+
constructor(endpoint: WTEndpoints, parameters: Record<string, any>);
|
|
18
|
+
}
|
|
19
|
+
/** @internal */
|
|
20
|
+
export declare class Mutex {
|
|
21
|
+
private locked;
|
|
22
|
+
private waitingQueue;
|
|
23
|
+
acquire(): Promise<void>;
|
|
24
|
+
release(): void;
|
|
25
|
+
}
|