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,43 @@
|
|
|
1
|
+
import { WTUserEnvironment } from "../../constants/environments";
|
|
2
|
+
import { WTLogLevel } from "../../utils/logger";
|
|
3
|
+
/**
|
|
4
|
+
* The initial configuration required to initialize the WiseTrack SDK.
|
|
5
|
+
*/
|
|
6
|
+
export interface WTInitialConfig {
|
|
7
|
+
/**
|
|
8
|
+
* The unique application token provided by WiseTrack Panel.
|
|
9
|
+
*/
|
|
10
|
+
appToken: string;
|
|
11
|
+
/**
|
|
12
|
+
* The version of your application.
|
|
13
|
+
*/
|
|
14
|
+
appVersion: String;
|
|
15
|
+
/**
|
|
16
|
+
* The framework or platform name (e.g., `native`, `react`, `next.js`).
|
|
17
|
+
*/
|
|
18
|
+
appFrameWork: String;
|
|
19
|
+
/**
|
|
20
|
+
* The user environment (sandbox or production). Defaults to `PRODUCTION`.
|
|
21
|
+
*/
|
|
22
|
+
userEnvironment?: WTUserEnvironment;
|
|
23
|
+
/**
|
|
24
|
+
* The waiting time in seconds before the tracker starts automatically.
|
|
25
|
+
*/
|
|
26
|
+
trackingWaitingTime?: number;
|
|
27
|
+
/**
|
|
28
|
+
* If `true` (default), the tracker will start automatically after initialization.
|
|
29
|
+
*/
|
|
30
|
+
startTrackerAutomatically?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* A custom device identifier.
|
|
33
|
+
*/
|
|
34
|
+
customDeviceId?: string;
|
|
35
|
+
/**
|
|
36
|
+
* An optional default tracker name.
|
|
37
|
+
*/
|
|
38
|
+
defaultTracker?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Sets the log level for SDK logging.
|
|
41
|
+
*/
|
|
42
|
+
logLevel?: WTLogLevel;
|
|
43
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { WTConfig } from "./wt-config";
|
|
2
|
+
/** @internal */
|
|
3
|
+
export declare class WTAppSettings {
|
|
4
|
+
events: string;
|
|
5
|
+
sessions: string;
|
|
6
|
+
sdkClicks: string;
|
|
7
|
+
sdkInfos: string;
|
|
8
|
+
attributions: string;
|
|
9
|
+
sessionInterval: string;
|
|
10
|
+
subsessionInterval: string;
|
|
11
|
+
constructor(events: string, sessions: string, sdkClicks: string, sdkInfos: string, attributions: string, sessionInterval?: string, subsessionInterval?: string);
|
|
12
|
+
static fromConfig(config: WTConfig): WTAppSettings;
|
|
13
|
+
static fromJson(json: any): WTAppSettings;
|
|
14
|
+
static get defaultValue(): WTAppSettings;
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** @internal */
|
|
2
|
+
export declare class WTConfig {
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
events?: string;
|
|
5
|
+
sessions?: string;
|
|
6
|
+
sdkClicks?: string;
|
|
7
|
+
sdkInfos?: string;
|
|
8
|
+
attributions?: string;
|
|
9
|
+
appSettings?: string;
|
|
10
|
+
sdkEnabled: boolean;
|
|
11
|
+
forceUpdate: boolean;
|
|
12
|
+
sdkUpdate: boolean;
|
|
13
|
+
sessionInterval: string;
|
|
14
|
+
subsessionInterval: string;
|
|
15
|
+
constructor(baseUrl: string, events?: string, sessions?: string, sdkClicks?: string, sdkInfos?: string, attributions?: string, appSettings?: string, sdkEnabled?: boolean, forceUpdate?: boolean, sdkUpdate?: boolean, sessionInterval?: string, subsessionInterval?: string);
|
|
16
|
+
static fromJson(json: any): WTConfig;
|
|
17
|
+
static get defaultValue(): WTConfig;
|
|
18
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supported currencies for revenue events.
|
|
3
|
+
*
|
|
4
|
+
* Use one of these standard ISO currency codes when tracking revenue.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* RevenueCurrency.USD // "USD"
|
|
8
|
+
*/
|
|
9
|
+
export declare const RevenueCurrency: {
|
|
10
|
+
readonly USD: "USD";
|
|
11
|
+
readonly EUR: "EUR";
|
|
12
|
+
readonly JPY: "JPY";
|
|
13
|
+
readonly GBP: "GBP";
|
|
14
|
+
readonly AUD: "AUD";
|
|
15
|
+
readonly CAD: "CAD";
|
|
16
|
+
readonly CHF: "CHF";
|
|
17
|
+
readonly CNY: "CNY";
|
|
18
|
+
readonly SEK: "SEK";
|
|
19
|
+
readonly NZD: "NZD";
|
|
20
|
+
readonly MXN: "MXN";
|
|
21
|
+
readonly SGD: "SGD";
|
|
22
|
+
readonly HKD: "HKD";
|
|
23
|
+
readonly NOK: "NOK";
|
|
24
|
+
readonly KRW: "KRW";
|
|
25
|
+
readonly TRY: "TRY";
|
|
26
|
+
readonly RUB: "RUB";
|
|
27
|
+
readonly INR: "INR";
|
|
28
|
+
readonly BRL: "BRL";
|
|
29
|
+
readonly ZAR: "ZAR";
|
|
30
|
+
readonly IRR: "IRR";
|
|
31
|
+
readonly AED: "AED";
|
|
32
|
+
readonly IQD: "IQD";
|
|
33
|
+
readonly SAR: "SAR";
|
|
34
|
+
readonly OMR: "OMR";
|
|
35
|
+
readonly BTC: "BTC";
|
|
36
|
+
readonly EHT: "EHT";
|
|
37
|
+
readonly LTC: "LTC";
|
|
38
|
+
};
|
|
39
|
+
export type RevenueCurrency = (typeof RevenueCurrency)[keyof typeof RevenueCurrency];
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { RevenueCurrency } from "./revenue-currency";
|
|
2
|
+
type WTEventType = "default" | "revenue";
|
|
3
|
+
type EventParam = string | number | boolean;
|
|
4
|
+
export declare namespace WTEvent {
|
|
5
|
+
/**
|
|
6
|
+
* Represents a generic custom event.
|
|
7
|
+
*
|
|
8
|
+
* Use this class to log custom actions performed by the user.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const event = new WTEvent.Default("signup");
|
|
13
|
+
* event.addParam("method", "Google");
|
|
14
|
+
* WiseTrack.instance.trackEvent(event);
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
class Default {
|
|
18
|
+
/**
|
|
19
|
+
* The type of event.
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
readonly type: WTEventType;
|
|
23
|
+
/**
|
|
24
|
+
* Optional custom key-value parameters for the event.
|
|
25
|
+
*/
|
|
26
|
+
params?: Record<string, EventParam>;
|
|
27
|
+
/**
|
|
28
|
+
* The name of the event.
|
|
29
|
+
*/
|
|
30
|
+
name: string;
|
|
31
|
+
/**
|
|
32
|
+
* Creates a new custom event.
|
|
33
|
+
* @param name - The name of the event.
|
|
34
|
+
*/
|
|
35
|
+
constructor(name: string);
|
|
36
|
+
/**
|
|
37
|
+
* Adds a parameter to the event.
|
|
38
|
+
*
|
|
39
|
+
* @param key - The parameter key.
|
|
40
|
+
* @param value - The parameter value.
|
|
41
|
+
*/
|
|
42
|
+
addParam(key: string, value: EventParam): void;
|
|
43
|
+
/** @internal */
|
|
44
|
+
toJSON(): {
|
|
45
|
+
event_type: WTEventType;
|
|
46
|
+
event_name: string;
|
|
47
|
+
partner_params: Record<string, EventParam> | undefined;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Represents a revenue event with an amount and currency.
|
|
52
|
+
*
|
|
53
|
+
* Use this class to log purchases or monetary transactions.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* const purchase = new WTEvent.Revenue("order_complete", 49.99, RevenueCurrency.USD);
|
|
58
|
+
* purchase.addParam("item_count", "3");
|
|
59
|
+
* WiseTrack.instance.trackEvent(purchase);
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
class Revenue extends Default {
|
|
63
|
+
/**
|
|
64
|
+
* The type of event.
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
readonly type: WTEventType;
|
|
68
|
+
/**
|
|
69
|
+
* The revenue amount.
|
|
70
|
+
*/
|
|
71
|
+
amount: number;
|
|
72
|
+
/**
|
|
73
|
+
* The currency of the revenue.
|
|
74
|
+
*/
|
|
75
|
+
currency: RevenueCurrency;
|
|
76
|
+
/**
|
|
77
|
+
* Creates a new revenue event.
|
|
78
|
+
*
|
|
79
|
+
* @param name - The name of the revenue event.
|
|
80
|
+
* @param amount - The amount of revenue.
|
|
81
|
+
* @param currency - The currency of the revenue.
|
|
82
|
+
*/
|
|
83
|
+
constructor(name: string, amount: number, currency: RevenueCurrency);
|
|
84
|
+
/** @internal */
|
|
85
|
+
toJSON(): {
|
|
86
|
+
event_type: WTEventType;
|
|
87
|
+
event_name: string;
|
|
88
|
+
revenue: number;
|
|
89
|
+
currency: RevenueCurrency;
|
|
90
|
+
partner_params: Record<string, EventParam> | undefined;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare class ActivityTicker {
|
|
2
|
+
private tickerDelay;
|
|
3
|
+
private isPaused;
|
|
4
|
+
private tickerJob?;
|
|
5
|
+
start(): void;
|
|
6
|
+
stop(): void;
|
|
7
|
+
pause(): void;
|
|
8
|
+
resume(): void;
|
|
9
|
+
}
|
|
10
|
+
/** @internal */
|
|
11
|
+
export declare const activityTicker: ActivityTicker;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/** @internal */
|
|
2
|
+
export interface DeviceInfo {
|
|
3
|
+
browser: {
|
|
4
|
+
name?: string;
|
|
5
|
+
version?: string;
|
|
6
|
+
};
|
|
7
|
+
os: {
|
|
8
|
+
name?: string;
|
|
9
|
+
version?: string;
|
|
10
|
+
};
|
|
11
|
+
device: {
|
|
12
|
+
type?: string;
|
|
13
|
+
model?: string;
|
|
14
|
+
vendor?: string;
|
|
15
|
+
};
|
|
16
|
+
cpu: {
|
|
17
|
+
architecture?: string;
|
|
18
|
+
};
|
|
19
|
+
engine: {
|
|
20
|
+
name?: string;
|
|
21
|
+
version?: string;
|
|
22
|
+
};
|
|
23
|
+
ua: string;
|
|
24
|
+
}
|
|
25
|
+
type ScreenType = "touch" | "pointer";
|
|
26
|
+
type ScreenDensity = "high" | "low" | "medium";
|
|
27
|
+
type ScreenFormat = "long" | "normal" | "undefined";
|
|
28
|
+
type ScreenSize = "small" | "normal" | "large" | "xlarge";
|
|
29
|
+
declare class DeviceDetector {
|
|
30
|
+
getDeviceInfo(): DeviceInfo;
|
|
31
|
+
get screenDensity(): ScreenDensity;
|
|
32
|
+
get screenFormat(): ScreenFormat;
|
|
33
|
+
get screenSize(): ScreenSize;
|
|
34
|
+
get uiMode(): number;
|
|
35
|
+
get uiStyle(): string;
|
|
36
|
+
get displaySize(): string;
|
|
37
|
+
get screenType(): ScreenType;
|
|
38
|
+
}
|
|
39
|
+
/** @internal */
|
|
40
|
+
export declare const deviceDetector: DeviceDetector;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** @internal */
|
|
2
|
+
export declare abstract class WTLogEngine {
|
|
3
|
+
abstract log(level: string, prefix: string, ...args: any[]): void;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Defines the available log levels for the SDK.
|
|
7
|
+
*
|
|
8
|
+
* - `DEBUG`: Logs everything, including debug info.
|
|
9
|
+
* - `INFO`: Logs general information.
|
|
10
|
+
* - `WARN`: Logs warnings.
|
|
11
|
+
* - `ERROR`: Logs errors only.
|
|
12
|
+
* - `NONE`: Disables logging.
|
|
13
|
+
*/
|
|
14
|
+
export declare const WTLogLevel: {
|
|
15
|
+
readonly DEBUG: "debug";
|
|
16
|
+
readonly INFO: "info";
|
|
17
|
+
readonly WARN: "warn";
|
|
18
|
+
readonly ERROR: "error";
|
|
19
|
+
readonly NONE: "none";
|
|
20
|
+
};
|
|
21
|
+
export type WTLogLevel = (typeof WTLogLevel)[keyof typeof WTLogLevel];
|
|
22
|
+
/** @internal */
|
|
23
|
+
export declare class WTLogger {
|
|
24
|
+
private static level;
|
|
25
|
+
private static prefix;
|
|
26
|
+
private static outputEngines;
|
|
27
|
+
static setLevel(level: WTLogLevel): void;
|
|
28
|
+
static setPrefix(prefix: string): void;
|
|
29
|
+
static addOutputEngine(engine: WTLogEngine): void;
|
|
30
|
+
private static shouldLog;
|
|
31
|
+
private static log;
|
|
32
|
+
static debug(...args: any[]): void;
|
|
33
|
+
static info(...args: any[]): void;
|
|
34
|
+
static warn(...args: any[]): void;
|
|
35
|
+
static error(...args: any[]): void;
|
|
36
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type StorageSupportResult = {
|
|
2
|
+
localStorage: boolean;
|
|
3
|
+
sessionStorage: boolean;
|
|
4
|
+
indexedDB: boolean;
|
|
5
|
+
};
|
|
6
|
+
declare class StorageSupport {
|
|
7
|
+
private supportResults;
|
|
8
|
+
getSupportResult(): Promise<StorageSupportResult>;
|
|
9
|
+
getStorageSizeBytes(storage: Storage): number;
|
|
10
|
+
private isLocalStorageSupported;
|
|
11
|
+
private isSessionStorageSupported;
|
|
12
|
+
private isIndexedDBSupported;
|
|
13
|
+
}
|
|
14
|
+
/** @internal */
|
|
15
|
+
export declare const storageSupport: StorageSupport;
|
|
16
|
+
export {};
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { WTUserEnvironment } from "../../constants/environments";
|
|
2
|
+
import { WTLogLevel } from "../../utils/logger";
|
|
3
|
+
/**
|
|
4
|
+
* The initial configuration required to initialize the WiseTrack SDK.
|
|
5
|
+
*/
|
|
6
|
+
export interface WTInitialConfig {
|
|
7
|
+
/**
|
|
8
|
+
* The unique application token provided by WiseTrack Panel.
|
|
9
|
+
*/
|
|
10
|
+
appToken: string;
|
|
11
|
+
/**
|
|
12
|
+
* The version of your application.
|
|
13
|
+
*/
|
|
14
|
+
appVersion: String;
|
|
15
|
+
/**
|
|
16
|
+
* The framework or platform name (e.g., `native`, `react`, `next.js`).
|
|
17
|
+
*/
|
|
18
|
+
appFrameWork: String;
|
|
19
|
+
/**
|
|
20
|
+
* The user environment (sandbox or production). Defaults to `PRODUCTION`.
|
|
21
|
+
*/
|
|
22
|
+
userEnvironment?: WTUserEnvironment;
|
|
23
|
+
/**
|
|
24
|
+
* The waiting time in seconds before the tracker starts automatically.
|
|
25
|
+
*/
|
|
26
|
+
trackingWaitingTime?: number;
|
|
27
|
+
/**
|
|
28
|
+
* If `true` (default), the tracker will start automatically after initialization.
|
|
29
|
+
*/
|
|
30
|
+
startTrackerAutomatically?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* A custom device identifier.
|
|
33
|
+
*/
|
|
34
|
+
customDeviceId?: string;
|
|
35
|
+
/**
|
|
36
|
+
* An optional default tracker name.
|
|
37
|
+
*/
|
|
38
|
+
defaultTracker?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Sets the log level for SDK logging.
|
|
41
|
+
*/
|
|
42
|
+
logLevel?: WTLogLevel;
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initial-config.js","sourceRoot":"","sources":["../../../src/types/config/initial-config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { WTConfig } from "./wt-config";
|
|
2
|
+
/** @internal */
|
|
3
|
+
export declare class WTAppSettings {
|
|
4
|
+
events: string;
|
|
5
|
+
sessions: string;
|
|
6
|
+
sdkClicks: string;
|
|
7
|
+
sdkInfos: string;
|
|
8
|
+
attributions: string;
|
|
9
|
+
sessionInterval: string;
|
|
10
|
+
subsessionInterval: string;
|
|
11
|
+
constructor(events: string, sessions: string, sdkClicks: string, sdkInfos: string, attributions: string, sessionInterval?: string, subsessionInterval?: string);
|
|
12
|
+
static fromConfig(config: WTConfig): WTAppSettings;
|
|
13
|
+
static fromJson(json: any): WTAppSettings;
|
|
14
|
+
static get defaultValue(): WTAppSettings;
|
|
15
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { WTConstants } from "../../constants/constants";
|
|
2
|
+
import { WTEndpoints } from "../../constants/endpoints";
|
|
3
|
+
/** @internal */
|
|
4
|
+
export class WTAppSettings {
|
|
5
|
+
constructor(events, sessions, sdkClicks, sdkInfos, attributions, sessionInterval = WTConstants.DEFAULTS.SESSION_INTERVAL, subsessionInterval = WTConstants.DEFAULTS.SUBSESSION_INTERVAL) {
|
|
6
|
+
this.events = events;
|
|
7
|
+
this.sessions = sessions;
|
|
8
|
+
this.sdkClicks = sdkClicks;
|
|
9
|
+
this.sdkInfos = sdkInfos;
|
|
10
|
+
this.attributions = attributions;
|
|
11
|
+
this.sessionInterval = sessionInterval;
|
|
12
|
+
this.subsessionInterval = subsessionInterval;
|
|
13
|
+
}
|
|
14
|
+
static fromConfig(config) {
|
|
15
|
+
return new WTAppSettings(config.events, config.sessions, config.sdkClicks, config.sdkInfos, config.attributions, config.sessionInterval, config.subsessionInterval);
|
|
16
|
+
}
|
|
17
|
+
static fromJson(json) {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
return new WTAppSettings(json.events, json.sessions, json.sdk_clicks, json.sdk_infos, json.attributions, (_a = json.session_interval) !== null && _a !== void 0 ? _a : WTConstants.DEFAULTS.SESSION_INTERVAL, (_b = json.subsession_interval) !== null && _b !== void 0 ? _b : WTConstants.DEFAULTS.SUBSESSION_INTERVAL);
|
|
20
|
+
}
|
|
21
|
+
static get defaultValue() {
|
|
22
|
+
return new WTAppSettings(WTEndpoints.EVENTS, WTEndpoints.SESSIONS, WTEndpoints.SDK_CLICKS, WTEndpoints.SDK_INFOS, WTEndpoints.ATTRIBUTIONS, WTConstants.DEFAULTS.SESSION_INTERVAL, WTConstants.DEFAULTS.SUBSESSION_INTERVAL);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=wt-app-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wt-app-settings.js","sourceRoot":"","sources":["../../../src/types/config/wt-app-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,gBAAgB;AAChB,MAAM,OAAO,aAAa;IAUxB,YACE,MAAc,EACd,QAAgB,EAChB,SAAiB,EACjB,QAAgB,EAChB,YAAoB,EACpB,kBAA0B,WAAW,CAAC,QAAQ,CAAC,gBAAgB,EAC/D,qBAA6B,WAAW,CAAC,QAAQ,CAAC,mBAAmB;QAErE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAgB;QAChC,OAAO,IAAI,aAAa,CACtB,MAAM,CAAC,MAAO,EACd,MAAM,CAAC,QAAS,EAChB,MAAM,CAAC,SAAU,EACjB,MAAM,CAAC,QAAS,EAChB,MAAM,CAAC,YAAa,EACpB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,kBAAkB,CAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAS;;QACvB,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,EACjB,MAAA,IAAI,CAAC,gBAAgB,mCAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,EAC9D,MAAA,IAAI,CAAC,mBAAmB,mCAAI,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CACrE,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,IAAI,aAAa,CACtB,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,SAAS,EACrB,WAAW,CAAC,YAAY,EACxB,WAAW,CAAC,QAAQ,CAAC,gBAAgB,EACrC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CACzC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** @internal */
|
|
2
|
+
export declare class WTConfig {
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
events?: string;
|
|
5
|
+
sessions?: string;
|
|
6
|
+
sdkClicks?: string;
|
|
7
|
+
sdkInfos?: string;
|
|
8
|
+
attributions?: string;
|
|
9
|
+
appSettings?: string;
|
|
10
|
+
sdkEnabled: boolean;
|
|
11
|
+
forceUpdate: boolean;
|
|
12
|
+
sdkUpdate: boolean;
|
|
13
|
+
sessionInterval: string;
|
|
14
|
+
subsessionInterval: string;
|
|
15
|
+
constructor(baseUrl: string, events?: string, sessions?: string, sdkClicks?: string, sdkInfos?: string, attributions?: string, appSettings?: string, sdkEnabled?: boolean, forceUpdate?: boolean, sdkUpdate?: boolean, sessionInterval?: string, subsessionInterval?: string);
|
|
16
|
+
static fromJson(json: any): WTConfig;
|
|
17
|
+
static get defaultValue(): WTConfig;
|
|
18
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { WTConstants } from "../../constants/constants";
|
|
2
|
+
import { WTEndpoints } from "../../constants/endpoints";
|
|
3
|
+
import { EnvironmentUtils } from "../../constants/environments";
|
|
4
|
+
/** @internal */
|
|
5
|
+
export class WTConfig {
|
|
6
|
+
constructor(baseUrl, events, sessions, sdkClicks, sdkInfos, attributions, appSettings, sdkEnabled = true, forceUpdate = false, sdkUpdate = false, sessionInterval = WTConstants.DEFAULTS.SESSION_INTERVAL, subsessionInterval = WTConstants.DEFAULTS.SUBSESSION_INTERVAL) {
|
|
7
|
+
this.baseUrl = baseUrl;
|
|
8
|
+
this.events = events;
|
|
9
|
+
this.sessions = sessions;
|
|
10
|
+
this.sdkClicks = sdkClicks;
|
|
11
|
+
this.sdkInfos = sdkInfos;
|
|
12
|
+
this.attributions = attributions;
|
|
13
|
+
this.appSettings = appSettings;
|
|
14
|
+
this.sdkEnabled = sdkEnabled;
|
|
15
|
+
this.forceUpdate = forceUpdate;
|
|
16
|
+
this.sdkUpdate = sdkUpdate;
|
|
17
|
+
this.sessionInterval = sessionInterval;
|
|
18
|
+
this.subsessionInterval = subsessionInterval;
|
|
19
|
+
}
|
|
20
|
+
static fromJson(json) {
|
|
21
|
+
var _a, _b, _c, _d, _e;
|
|
22
|
+
return new WTConfig(json.base_url, json.events, json.sessions, json.sdk_clicks, json.sdk_infos, json.attributions, json.app_settings, (_a = json.sdk_enabled) !== null && _a !== void 0 ? _a : true, (_b = json.force_update) !== null && _b !== void 0 ? _b : false, (_c = json.sdk_update) !== null && _c !== void 0 ? _c : false, (_d = json.session_interval) !== null && _d !== void 0 ? _d : WTConstants.DEFAULTS.SESSION_INTERVAL, (_e = json.subsession_interval) !== null && _e !== void 0 ? _e : WTConstants.DEFAULTS.SUBSESSION_INTERVAL);
|
|
23
|
+
}
|
|
24
|
+
static get defaultValue() {
|
|
25
|
+
return new WTConfig(EnvironmentUtils.baseUrl(), WTEndpoints.EVENTS, WTEndpoints.SESSIONS, WTEndpoints.SDK_CLICKS, WTEndpoints.SDK_INFOS, WTEndpoints.ATTRIBUTIONS, WTEndpoints.APP_SETTINGS);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=wt-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wt-config.js","sourceRoot":"","sources":["../../../src/types/config/wt-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,gBAAgB;AAChB,MAAM,OAAO,QAAQ;IAgBnB,YACE,OAAe,EACf,MAAe,EACf,QAAiB,EACjB,SAAkB,EAClB,QAAiB,EACjB,YAAqB,EACrB,WAAoB,EACpB,aAAsB,IAAI,EAC1B,cAAuB,KAAK,EAC5B,YAAqB,KAAK,EAC1B,kBAA0B,WAAW,CAAC,QAAQ,CAAC,gBAAgB,EAC/D,qBAA6B,WAAW,CAAC,QAAQ,CAAC,mBAAmB;QAErE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAS;;QACvB,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,EACjB,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,EACxB,MAAA,IAAI,CAAC,YAAY,mCAAI,KAAK,EAC1B,MAAA,IAAI,CAAC,UAAU,mCAAI,KAAK,EACxB,MAAA,IAAI,CAAC,gBAAgB,mCAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,EAC9D,MAAA,IAAI,CAAC,mBAAmB,mCAAI,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CACrE,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,IAAI,QAAQ,CACjB,gBAAgB,CAAC,OAAO,EAAE,EAC1B,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,SAAS,EACrB,WAAW,CAAC,YAAY,EACxB,WAAW,CAAC,YAAY,CACzB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supported currencies for revenue events.
|
|
3
|
+
*
|
|
4
|
+
* Use one of these standard ISO currency codes when tracking revenue.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* RevenueCurrency.USD // "USD"
|
|
8
|
+
*/
|
|
9
|
+
export declare const RevenueCurrency: {
|
|
10
|
+
readonly USD: "USD";
|
|
11
|
+
readonly EUR: "EUR";
|
|
12
|
+
readonly JPY: "JPY";
|
|
13
|
+
readonly GBP: "GBP";
|
|
14
|
+
readonly AUD: "AUD";
|
|
15
|
+
readonly CAD: "CAD";
|
|
16
|
+
readonly CHF: "CHF";
|
|
17
|
+
readonly CNY: "CNY";
|
|
18
|
+
readonly SEK: "SEK";
|
|
19
|
+
readonly NZD: "NZD";
|
|
20
|
+
readonly MXN: "MXN";
|
|
21
|
+
readonly SGD: "SGD";
|
|
22
|
+
readonly HKD: "HKD";
|
|
23
|
+
readonly NOK: "NOK";
|
|
24
|
+
readonly KRW: "KRW";
|
|
25
|
+
readonly TRY: "TRY";
|
|
26
|
+
readonly RUB: "RUB";
|
|
27
|
+
readonly INR: "INR";
|
|
28
|
+
readonly BRL: "BRL";
|
|
29
|
+
readonly ZAR: "ZAR";
|
|
30
|
+
readonly IRR: "IRR";
|
|
31
|
+
readonly AED: "AED";
|
|
32
|
+
readonly IQD: "IQD";
|
|
33
|
+
readonly SAR: "SAR";
|
|
34
|
+
readonly OMR: "OMR";
|
|
35
|
+
readonly BTC: "BTC";
|
|
36
|
+
readonly EHT: "EHT";
|
|
37
|
+
readonly LTC: "LTC";
|
|
38
|
+
};
|
|
39
|
+
export type RevenueCurrency = (typeof RevenueCurrency)[keyof typeof RevenueCurrency];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supported currencies for revenue events.
|
|
3
|
+
*
|
|
4
|
+
* Use one of these standard ISO currency codes when tracking revenue.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* RevenueCurrency.USD // "USD"
|
|
8
|
+
*/
|
|
9
|
+
export const RevenueCurrency = {
|
|
10
|
+
USD: "USD",
|
|
11
|
+
EUR: "EUR",
|
|
12
|
+
JPY: "JPY",
|
|
13
|
+
GBP: "GBP",
|
|
14
|
+
AUD: "AUD",
|
|
15
|
+
CAD: "CAD",
|
|
16
|
+
CHF: "CHF",
|
|
17
|
+
CNY: "CNY",
|
|
18
|
+
SEK: "SEK",
|
|
19
|
+
NZD: "NZD",
|
|
20
|
+
MXN: "MXN",
|
|
21
|
+
SGD: "SGD",
|
|
22
|
+
HKD: "HKD",
|
|
23
|
+
NOK: "NOK",
|
|
24
|
+
KRW: "KRW",
|
|
25
|
+
TRY: "TRY",
|
|
26
|
+
RUB: "RUB",
|
|
27
|
+
INR: "INR",
|
|
28
|
+
BRL: "BRL",
|
|
29
|
+
ZAR: "ZAR",
|
|
30
|
+
IRR: "IRR",
|
|
31
|
+
AED: "AED",
|
|
32
|
+
IQD: "IQD",
|
|
33
|
+
SAR: "SAR",
|
|
34
|
+
OMR: "OMR",
|
|
35
|
+
BTC: "BTC",
|
|
36
|
+
EHT: "EHT",
|
|
37
|
+
LTC: "LTC",
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=revenue-currency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revenue-currency.js","sourceRoot":"","sources":["../../../src/types/event/revenue-currency.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;CACF,CAAC"}
|