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.
Files changed (178) hide show
  1. package/LICENSE +5 -0
  2. package/README.md +128 -0
  3. package/dist/cdn/constants/constants.d.ts +20 -0
  4. package/dist/cdn/constants/endpoints.d.ts +11 -0
  5. package/dist/cdn/constants/environments.d.ts +25 -0
  6. package/dist/cdn/core/caching/queue-data.d.ts +25 -0
  7. package/dist/cdn/core/caching/request-queue-manager.d.ts +54 -0
  8. package/dist/cdn/core/fields/event-fields-builder.d.ts +8 -0
  9. package/dist/cdn/core/fields/fields-builder.d.ts +9 -0
  10. package/dist/cdn/core/network/api-client.d.ts +9 -0
  11. package/dist/cdn/core/network/network-error.d.ts +17 -0
  12. package/dist/cdn/core/network/network-manager.d.ts +22 -0
  13. package/dist/cdn/core/network/retry-policy.d.ts +8 -0
  14. package/dist/cdn/core/storage/storage-manager.d.ts +52 -0
  15. package/dist/cdn/core/wisetrack.d.ts +125 -0
  16. package/dist/cdn/core/wt-tracker.d.ts +25 -0
  17. package/dist/cdn/index.d.ts +4 -0
  18. package/dist/cdn/sdk.bundle.js +3604 -0
  19. package/dist/cdn/sdk.bundle.js.map +1 -0
  20. package/dist/cdn/sdk.bundle.min.js +1 -0
  21. package/dist/cdn/types/config/initial-config.d.ts +43 -0
  22. package/dist/cdn/types/config/wt-app-settings.d.ts +15 -0
  23. package/dist/cdn/types/config/wt-config.d.ts +18 -0
  24. package/dist/cdn/types/event/revenue-currency.d.ts +39 -0
  25. package/dist/cdn/types/event/wt-event.d.ts +94 -0
  26. package/dist/cdn/utils/activity-ticker.d.ts +12 -0
  27. package/dist/cdn/utils/country-finder.d.ts +9 -0
  28. package/dist/cdn/utils/crypto-helper.d.ts +4 -0
  29. package/dist/cdn/utils/device-detector.d.ts +41 -0
  30. package/dist/cdn/utils/logger.d.ts +36 -0
  31. package/dist/cdn/utils/storage-support.d.ts +16 -0
  32. package/dist/cdn/utils/utils.d.ts +5 -0
  33. package/dist/cdn/utils/webgl-fingerprint.d.ts +7 -0
  34. package/dist/cjs/constants/constants.d.ts +20 -0
  35. package/dist/cjs/constants/endpoints.d.ts +11 -0
  36. package/dist/cjs/constants/environments.d.ts +25 -0
  37. package/dist/cjs/core/caching/queue-data.d.ts +25 -0
  38. package/dist/cjs/core/caching/request-queue-manager.d.ts +54 -0
  39. package/dist/cjs/core/fields/event-fields-builder.d.ts +8 -0
  40. package/dist/cjs/core/fields/fields-builder.d.ts +9 -0
  41. package/dist/cjs/core/network/api-client.d.ts +9 -0
  42. package/dist/cjs/core/network/network-error.d.ts +17 -0
  43. package/dist/cjs/core/network/network-manager.d.ts +22 -0
  44. package/dist/cjs/core/network/retry-policy.d.ts +8 -0
  45. package/dist/cjs/core/storage/storage-manager.d.ts +52 -0
  46. package/dist/cjs/core/wisetrack.d.ts +125 -0
  47. package/dist/cjs/core/wt-tracker.d.ts +25 -0
  48. package/dist/cjs/index.d.ts +4 -0
  49. package/dist/cjs/index.js +3599 -0
  50. package/dist/cjs/index.js.map +1 -0
  51. package/dist/cjs/types/config/initial-config.d.ts +43 -0
  52. package/dist/cjs/types/config/wt-app-settings.d.ts +15 -0
  53. package/dist/cjs/types/config/wt-config.d.ts +18 -0
  54. package/dist/cjs/types/event/revenue-currency.d.ts +39 -0
  55. package/dist/cjs/types/event/wt-event.d.ts +94 -0
  56. package/dist/cjs/utils/activity-ticker.d.ts +12 -0
  57. package/dist/cjs/utils/country-finder.d.ts +9 -0
  58. package/dist/cjs/utils/crypto-helper.d.ts +4 -0
  59. package/dist/cjs/utils/device-detector.d.ts +41 -0
  60. package/dist/cjs/utils/logger.d.ts +36 -0
  61. package/dist/cjs/utils/storage-support.d.ts +16 -0
  62. package/dist/cjs/utils/utils.d.ts +5 -0
  63. package/dist/cjs/utils/webgl-fingerprint.d.ts +7 -0
  64. package/dist/constants/constants.d.ts +20 -0
  65. package/dist/constants/constants.js +19 -0
  66. package/dist/constants/constants.js.map +1 -0
  67. package/dist/constants/endpoints.d.ts +11 -0
  68. package/dist/constants/endpoints.js +10 -0
  69. package/dist/constants/endpoints.js.map +1 -0
  70. package/dist/constants/environments.d.ts +25 -0
  71. package/dist/constants/environments.js +37 -0
  72. package/dist/constants/environments.js.map +1 -0
  73. package/dist/core/caching/queue-data.d.ts +25 -0
  74. package/dist/core/caching/queue-data.js +50 -0
  75. package/dist/core/caching/queue-data.js.map +1 -0
  76. package/dist/core/caching/request-queue-manager.d.ts +54 -0
  77. package/dist/core/caching/request-queue-manager.js +333 -0
  78. package/dist/core/caching/request-queue-manager.js.map +1 -0
  79. package/dist/core/fields/event-fields-builder.d.ts +8 -0
  80. package/dist/core/fields/event-fields-builder.js +29 -0
  81. package/dist/core/fields/event-fields-builder.js.map +1 -0
  82. package/dist/core/fields/fields-builder.d.ts +9 -0
  83. package/dist/core/fields/fields-builder.js +120 -0
  84. package/dist/core/fields/fields-builder.js.map +1 -0
  85. package/dist/core/network/api-client.d.ts +9 -0
  86. package/dist/core/network/api-client.js +88 -0
  87. package/dist/core/network/api-client.js.map +1 -0
  88. package/dist/core/network/network-error.d.ts +17 -0
  89. package/dist/core/network/network-error.js +35 -0
  90. package/dist/core/network/network-error.js.map +1 -0
  91. package/dist/core/network/network-manager.d.ts +22 -0
  92. package/dist/core/network/network-manager.js +72 -0
  93. package/dist/core/network/network-manager.js.map +1 -0
  94. package/dist/core/network/retry-policy.d.ts +8 -0
  95. package/dist/core/network/retry-policy.js +26 -0
  96. package/dist/core/network/retry-policy.js.map +1 -0
  97. package/dist/core/storage/storage-manager.d.ts +52 -0
  98. package/dist/core/storage/storage-manager.js +221 -0
  99. package/dist/core/storage/storage-manager.js.map +1 -0
  100. package/dist/core/wisetrack.d.ts +125 -0
  101. package/dist/core/wisetrack.js +277 -0
  102. package/dist/core/wisetrack.js.map +1 -0
  103. package/dist/core/wt-tracker.d.ts +25 -0
  104. package/dist/core/wt-tracker.js +239 -0
  105. package/dist/core/wt-tracker.js.map +1 -0
  106. package/dist/esm/constants/constants.d.ts +20 -0
  107. package/dist/esm/constants/endpoints.d.ts +11 -0
  108. package/dist/esm/constants/environments.d.ts +25 -0
  109. package/dist/esm/core/caching/queue-data.d.ts +25 -0
  110. package/dist/esm/core/caching/request-queue-manager.d.ts +54 -0
  111. package/dist/esm/core/fields/event-fields-builder.d.ts +8 -0
  112. package/dist/esm/core/fields/fields-builder.d.ts +9 -0
  113. package/dist/esm/core/network/api-client.d.ts +9 -0
  114. package/dist/esm/core/network/network-error.d.ts +17 -0
  115. package/dist/esm/core/network/network-manager.d.ts +22 -0
  116. package/dist/esm/core/network/retry-policy.d.ts +8 -0
  117. package/dist/esm/core/storage/storage-manager.d.ts +52 -0
  118. package/dist/esm/core/wisetrack.d.ts +125 -0
  119. package/dist/esm/core/wt-tracker.d.ts +25 -0
  120. package/dist/esm/index.d.ts +4 -0
  121. package/dist/esm/index.js +3594 -0
  122. package/dist/esm/index.js.map +1 -0
  123. package/dist/esm/types/config/initial-config.d.ts +43 -0
  124. package/dist/esm/types/config/wt-app-settings.d.ts +15 -0
  125. package/dist/esm/types/config/wt-config.d.ts +18 -0
  126. package/dist/esm/types/event/revenue-currency.d.ts +39 -0
  127. package/dist/esm/types/event/wt-event.d.ts +94 -0
  128. package/dist/esm/utils/activity-ticker.d.ts +12 -0
  129. package/dist/esm/utils/country-finder.d.ts +9 -0
  130. package/dist/esm/utils/crypto-helper.d.ts +4 -0
  131. package/dist/esm/utils/device-detector.d.ts +41 -0
  132. package/dist/esm/utils/logger.d.ts +36 -0
  133. package/dist/esm/utils/storage-support.d.ts +16 -0
  134. package/dist/esm/utils/utils.d.ts +5 -0
  135. package/dist/esm/utils/webgl-fingerprint.d.ts +7 -0
  136. package/dist/index.d.ts +4 -0
  137. package/dist/index.js +4 -0
  138. package/dist/index.js.map +1 -0
  139. package/dist/types/config/initial-config.d.ts +43 -0
  140. package/dist/types/config/initial-config.js +2 -0
  141. package/dist/types/config/initial-config.js.map +1 -0
  142. package/dist/types/config/wt-app-settings.d.ts +15 -0
  143. package/dist/types/config/wt-app-settings.js +25 -0
  144. package/dist/types/config/wt-app-settings.js.map +1 -0
  145. package/dist/types/config/wt-config.d.ts +18 -0
  146. package/dist/types/config/wt-config.js +28 -0
  147. package/dist/types/config/wt-config.js.map +1 -0
  148. package/dist/types/event/revenue-currency.d.ts +39 -0
  149. package/dist/types/event/revenue-currency.js +39 -0
  150. package/dist/types/event/revenue-currency.js.map +1 -0
  151. package/dist/types/event/wt-event.d.ts +94 -0
  152. package/dist/types/event/wt-event.js +93 -0
  153. package/dist/types/event/wt-event.js.map +1 -0
  154. package/dist/utils/activity-ticker.d.ts +12 -0
  155. package/dist/utils/activity-ticker.js +37 -0
  156. package/dist/utils/activity-ticker.js.map +1 -0
  157. package/dist/utils/country-finder.d.ts +9 -0
  158. package/dist/utils/country-finder.js +71 -0
  159. package/dist/utils/country-finder.js.map +1 -0
  160. package/dist/utils/crypto-helper.d.ts +4 -0
  161. package/dist/utils/crypto-helper.js +7 -0
  162. package/dist/utils/crypto-helper.js.map +1 -0
  163. package/dist/utils/device-detector.d.ts +41 -0
  164. package/dist/utils/device-detector.js +101 -0
  165. package/dist/utils/device-detector.js.map +1 -0
  166. package/dist/utils/logger.d.ts +36 -0
  167. package/dist/utils/logger.js +84 -0
  168. package/dist/utils/logger.js.map +1 -0
  169. package/dist/utils/storage-support.d.ts +16 -0
  170. package/dist/utils/storage-support.js +86 -0
  171. package/dist/utils/storage-support.js.map +1 -0
  172. package/dist/utils/utils.d.ts +5 -0
  173. package/dist/utils/utils.js +95 -0
  174. package/dist/utils/utils.js.map +1 -0
  175. package/dist/utils/webgl-fingerprint.d.ts +7 -0
  176. package/dist/utils/webgl-fingerprint.js +100 -0
  177. package/dist/utils/webgl-fingerprint.js.map +1 -0
  178. package/package.json +71 -0
@@ -0,0 +1,35 @@
1
+ /** @internal */
2
+ export var ApiError;
3
+ (function (ApiError) {
4
+ class InvalidUrl extends Error {
5
+ constructor(url) {
6
+ super(`Invalid URL: ${url}`);
7
+ this.name = "InvalidUrl";
8
+ }
9
+ }
10
+ ApiError.InvalidUrl = InvalidUrl;
11
+ class ServerError extends Error {
12
+ constructor(statusCode, message) {
13
+ super(`ServerError ${statusCode}: ${message}`);
14
+ this.statusCode = statusCode;
15
+ this.message = message;
16
+ this.name = "ServerError";
17
+ }
18
+ }
19
+ ApiError.ServerError = ServerError;
20
+ class NetworkError extends Error {
21
+ constructor(message) {
22
+ super(`NetworkError: ${message}`);
23
+ this.name = "NetworkFailure";
24
+ }
25
+ }
26
+ ApiError.NetworkError = NetworkError;
27
+ class DecodingError extends Error {
28
+ constructor(message) {
29
+ super(`DecodingError: ${message}`);
30
+ this.name = "DecodingError";
31
+ }
32
+ }
33
+ ApiError.DecodingError = DecodingError;
34
+ })(ApiError || (ApiError = {}));
35
+ //# sourceMappingURL=network-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-error.js","sourceRoot":"","sources":["../../../src/core/network/network-error.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,MAAM,KAAW,QAAQ,CA4BxB;AA5BD,WAAiB,QAAQ;IACvB,MAAa,UAAW,SAAQ,KAAK;QACnC,YAAY,GAAW;YACrB,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QAC3B,CAAC;KACF;IALY,mBAAU,aAKtB,CAAA;IAED,MAAa,WAAY,SAAQ,KAAK;QACpC,YAAmB,UAAkB,EAAS,OAAe;YAC3D,KAAK,CAAC,eAAe,UAAU,KAAK,OAAO,EAAE,CAAC,CAAC;YAD9B,eAAU,GAAV,UAAU,CAAQ;YAAS,YAAO,GAAP,OAAO,CAAQ;YAE3D,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC5B,CAAC;KACF;IALY,oBAAW,cAKvB,CAAA;IAED,MAAa,YAAa,SAAQ,KAAK;QACrC,YAAY,OAAe;YACzB,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC/B,CAAC;KACF;IALY,qBAAY,eAKxB,CAAA;IAED,MAAa,aAAc,SAAQ,KAAK;QACtC,YAAY,OAAe;YACzB,KAAK,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC9B,CAAC;KACF;IALY,sBAAa,gBAKzB,CAAA;AACH,CAAC,EA5BgB,QAAQ,KAAR,QAAQ,QA4BxB"}
@@ -0,0 +1,22 @@
1
+ import { RetryPolicy } from "./retry-policy";
2
+ type HttpMethod = "GET" | "POST" | "PUT";
3
+ /** @internal */
4
+ export interface RequestOptions {
5
+ method?: HttpMethod;
6
+ headers?: Record<string, string>;
7
+ params?: Record<string, any>;
8
+ formData?: Record<string, any>;
9
+ retryAttempt?: number;
10
+ }
11
+ /** @internal */
12
+ export interface ApiResponseWrapper {
13
+ success: boolean;
14
+ message?: string;
15
+ result?: any;
16
+ }
17
+ /** @internal */
18
+ export declare const networkManager: {
19
+ readonly retryPolicy: () => RetryPolicy;
20
+ readonly sendRequest: (endpoint: string, options?: RequestOptions) => Promise<ApiResponseWrapper>;
21
+ };
22
+ export {};
@@ -0,0 +1,72 @@
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 { WTLogger } from "../../utils/logger";
11
+ import { ApiError } from "./network-error";
12
+ import { RetryPolicy } from "./retry-policy";
13
+ /** @internal */
14
+ export const networkManager = {
15
+ retryPolicy() {
16
+ return new RetryPolicy();
17
+ },
18
+ sendRequest(endpoint_1) {
19
+ return __awaiter(this, arguments, void 0, function* (endpoint, options = {}) {
20
+ const retryAttempt = options.retryAttempt || 1;
21
+ WTLogger.debug(`🚀 REQUEST (${retryAttempt}) => ${options.method} ${endpoint}`);
22
+ WTLogger.debug("-- PARAMETERS =>", options.params || options.formData || {});
23
+ let body;
24
+ const requestHeaders = Object.assign({ Accept: "application/json" }, options.headers);
25
+ if (options.formData) {
26
+ const form = new FormData();
27
+ for (const key in options.formData) {
28
+ form.append(key, options.formData[key]);
29
+ }
30
+ body = form;
31
+ }
32
+ else if (options.params) {
33
+ requestHeaders["Content-Type"] = "application/json";
34
+ body = JSON.stringify(options.params);
35
+ }
36
+ try {
37
+ const response = yield fetch(endpoint, {
38
+ method: options.method,
39
+ headers: requestHeaders,
40
+ body,
41
+ });
42
+ if (!response.ok) {
43
+ let json = yield response.json();
44
+ let errorText = json.message || (yield response.text());
45
+ WTLogger.warn(`❌ API ERROR (${response.status}) =>`, errorText);
46
+ throw new ApiError.ServerError(response.status, json.message || "Server error");
47
+ }
48
+ try {
49
+ const result = yield response.json();
50
+ WTLogger.debug(`✅ API SUCCESS (${response.status}) =>`, result.message || "Request successful");
51
+ return result;
52
+ }
53
+ catch (error) {
54
+ throw new ApiError.DecodingError(error.message || String(error));
55
+ }
56
+ }
57
+ catch (err) {
58
+ if (err instanceof ApiError.ServerError ||
59
+ err instanceof ApiError.DecodingError) {
60
+ throw err;
61
+ }
62
+ WTLogger.error("Error executing request", err);
63
+ if (this.retryPolicy().canRetry(retryAttempt)) {
64
+ yield this.retryPolicy().waitBeforeRetry();
65
+ return this.sendRequest(endpoint, Object.assign(Object.assign({}, options), { retryAttempt: retryAttempt + 1 }));
66
+ }
67
+ throw new ApiError.NetworkError(err.message || "Unknown error");
68
+ }
69
+ });
70
+ },
71
+ };
72
+ //# sourceMappingURL=network-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-manager.js","sourceRoot":"","sources":["../../../src/core/network/network-manager.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAoB7C,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW;QACT,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;IAEK,WAAW;6DACf,QAAgB,EAChB,UAA0B,EAAE;YAE5B,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;YAE/C,QAAQ,CAAC,KAAK,CACZ,eAAe,YAAY,QAAQ,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,CAChE,CAAC;YACF,QAAQ,CAAC,KAAK,CACZ,kBAAkB,EAClB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,CACzC,CAAC;YAEF,IAAI,IAA0B,CAAC;YAC/B,MAAM,cAAc,mBAClB,MAAM,EAAE,kBAAkB,IACvB,OAAO,CAAC,OAAO,CACnB,CAAC;YAEF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC5B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC;YACd,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC1B,cAAc,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;gBACpD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;oBACrC,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,cAAc;oBACvB,IAAI;iBACL,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,IAAI,IAAI,GAAuB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACrD,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;oBACxD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,MAAM,MAAM,EAAE,SAAS,CAAC,CAAC;oBAEhE,MAAM,IAAI,QAAQ,CAAC,WAAW,CAC5B,QAAQ,CAAC,MAAM,EACf,IAAI,CAAC,OAAO,IAAI,cAAc,CAC/B,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,MAAM,GAAuB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACzD,QAAQ,CAAC,KAAK,CACZ,kBAAkB,QAAQ,CAAC,MAAM,MAAM,EACvC,MAAM,CAAC,OAAO,IAAI,oBAAoB,CACvC,CAAC;oBACF,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,MAAM,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IACE,GAAG,YAAY,QAAQ,CAAC,WAAW;oBACnC,GAAG,YAAY,QAAQ,CAAC,aAAa,EACrC,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;gBACD,QAAQ,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;gBAE/C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC9C,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,CAAC;oBAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,kCAC3B,OAAO,KACV,YAAY,EAAE,YAAY,GAAG,CAAC,IAC9B,CAAC;gBACL,CAAC;gBAED,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;KAAA;CACO,CAAC"}
@@ -0,0 +1,8 @@
1
+ /** @internal */
2
+ export declare class RetryPolicy {
3
+ private maxRetries;
4
+ private retryInterval;
5
+ constructor(maxRetries?: number, retryInterval?: number);
6
+ canRetry(attempt: number): boolean;
7
+ waitBeforeRetry(): Promise<void>;
8
+ }
@@ -0,0 +1,26 @@
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
+ /** @internal */
11
+ export class RetryPolicy {
12
+ constructor(maxRetries = 3, retryInterval = 2000 // milliseconds
13
+ ) {
14
+ this.maxRetries = maxRetries;
15
+ this.retryInterval = retryInterval;
16
+ }
17
+ canRetry(attempt) {
18
+ return attempt < this.maxRetries;
19
+ }
20
+ waitBeforeRetry() {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ return new Promise((res) => setTimeout(res, this.retryInterval));
23
+ });
24
+ }
25
+ }
26
+ //# sourceMappingURL=retry-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-policy.js","sourceRoot":"","sources":["../../../src/core/network/retry-policy.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gBAAgB;AAChB,MAAM,OAAO,WAAW;IACtB,YACU,aAAqB,CAAC,EACtB,gBAAwB,IAAI,CAAC,eAAe;;QAD5C,eAAU,GAAV,UAAU,CAAY;QACtB,kBAAa,GAAb,aAAa,CAAe;IACnC,CAAC;IAEJ,QAAQ,CAAC,OAAe;QACtB,OAAO,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,CAAC;IAEK,eAAe;;YACnB,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACnE,CAAC;KAAA;CACF"}
@@ -0,0 +1,52 @@
1
+ import { WTInitialConfig } from "../../types/config/initial-config";
2
+ import { WTAppSettings } from "../../types/config/wt-app-settings";
3
+ import { WTConfig } from "../../types/config/wt-config";
4
+ import { RequestRecord } from "../caching/queue-data";
5
+ declare class StorageManager {
6
+ clear(): void;
7
+ private setJson;
8
+ private getJson;
9
+ private optionalNumber;
10
+ private optionalBool;
11
+ get deviceId(): string | null;
12
+ set deviceId(value: string | null);
13
+ get initialDate(): string | null;
14
+ set initialDate(value: string | null);
15
+ get initialConfig(): WTInitialConfig | null;
16
+ set initialConfig(value: WTInitialConfig | null);
17
+ get config(): WTConfig | null;
18
+ set config(value: WTConfig | null);
19
+ get appSettings(): WTAppSettings | null;
20
+ set appSettings(value: WTAppSettings | null);
21
+ get sdkEnabled(): boolean;
22
+ set sdkEnabled(value: boolean);
23
+ get sdkClickSubmit(): boolean;
24
+ set sdkClickSubmit(value: boolean);
25
+ get firstSessionSubmit(): boolean;
26
+ set firstSessionSubmit(value: boolean);
27
+ get fcmToken(): string | null;
28
+ set fcmToken(value: string | null);
29
+ get pushToken(): string | null;
30
+ set pushToken(value: string | null);
31
+ get sessionCount(): number;
32
+ set sessionCount(value: number);
33
+ get subSessionCount(): number;
34
+ set subSessionCount(value: number);
35
+ get activeDuration(): number;
36
+ set activeDuration(value: number);
37
+ get inactiveDuration(): number;
38
+ set inactiveDuration(value: number);
39
+ get inactiveTime(): number | null;
40
+ set inactiveTime(value: number | null);
41
+ get activeTime(): number | null;
42
+ set activeTime(value: number | null);
43
+ get requestRecords(): RequestRecord[];
44
+ set requestRecords(value: RequestRecord[]);
45
+ get pendingRequestRecords(): RequestRecord[];
46
+ set pendingRequestRecords(value: RequestRecord[]);
47
+ get eventCount(): number;
48
+ set eventCount(value: number);
49
+ }
50
+ /** @internal */
51
+ export declare const storageManager: StorageManager;
52
+ export {};
@@ -0,0 +1,221 @@
1
+ import { WTLogger } from "../../utils/logger";
2
+ const WTStorageKeys = {
3
+ DEVICE_ID: "WT.DeviceId",
4
+ INITIAL_DATE: "WT.InitialDate",
5
+ INITIAL_CONFIG: "WT.InitialConfigs",
6
+ CONFIG: "WT.Configs",
7
+ APP_SETTINGS: "WT.AppSettings",
8
+ SDK_CLICK_SUBMIT: "WT.SdkClickSubmit",
9
+ FIRST_SESSION_SUBMIT: "WT.FirstSessionSubmit",
10
+ SDK_ENABLED: "WT.SdkEnabled",
11
+ FCM_TOKEN: "WT.FcmToken", // used for calling push token request
12
+ PUSH_TOKEN: "WT.PushToken", // used in request param fields as "push_token"
13
+ EVENT_COUNT: "WT.EventCount",
14
+ SESSION_COUNT: "WT.SessionCount",
15
+ SESSION_LENGTH: "WT.SessionLenght", // ACTIVE_DURATION
16
+ SUBSESSION_COUNT: "WT.SubSessionCount",
17
+ ACTIVE_TIME: "WT.ActiveTime",
18
+ INACTIVE_TIME: "WT.InactiveTime",
19
+ INACTIVE_DURATION: "WT.InactiveDuration",
20
+ REQUEST_QUEUE: "WT.RequestQueue",
21
+ PENDING_REQUEST_QUEUE: "WT.PendingRequestQueue",
22
+ };
23
+ class StorageManager {
24
+ clear() {
25
+ localStorage.clear();
26
+ }
27
+ setJson(key, obj) {
28
+ if (!obj) {
29
+ localStorage.removeItem(key);
30
+ return;
31
+ }
32
+ try {
33
+ const encoded = JSON.stringify(obj);
34
+ localStorage.setItem(key, encoded);
35
+ }
36
+ catch (error) {
37
+ WTLogger.error(`Error in encoding object for key '${key}'`, error);
38
+ }
39
+ }
40
+ getJson(key) {
41
+ const data = localStorage.getItem(key);
42
+ if (!data) {
43
+ return null;
44
+ }
45
+ try {
46
+ const decoded = JSON.parse(data);
47
+ return decoded;
48
+ }
49
+ catch (error) {
50
+ WTLogger.error(`Error in JSON decoding for key '${key}': ${error}`, error);
51
+ return null;
52
+ }
53
+ }
54
+ optionalNumber(key) {
55
+ const value = localStorage.getItem(key);
56
+ if (value === null) {
57
+ return null;
58
+ }
59
+ const num = Number(value);
60
+ return isNaN(num) ? null : num;
61
+ }
62
+ optionalBool(key) {
63
+ const value = localStorage.getItem(key);
64
+ if (value === null) {
65
+ return null;
66
+ }
67
+ return value === "true" ? true : value === "false" ? false : null;
68
+ }
69
+ get deviceId() {
70
+ return localStorage.getItem(WTStorageKeys.DEVICE_ID);
71
+ }
72
+ set deviceId(value) {
73
+ if (value) {
74
+ localStorage.setItem(WTStorageKeys.DEVICE_ID, value);
75
+ }
76
+ else {
77
+ localStorage.removeItem(WTStorageKeys.DEVICE_ID);
78
+ }
79
+ }
80
+ get initialDate() {
81
+ return this.getJson(WTStorageKeys.INITIAL_DATE);
82
+ }
83
+ set initialDate(value) {
84
+ this.setJson(WTStorageKeys.INITIAL_DATE, value);
85
+ }
86
+ get initialConfig() {
87
+ return this.getJson(WTStorageKeys.INITIAL_CONFIG);
88
+ }
89
+ set initialConfig(value) {
90
+ this.setJson(WTStorageKeys.INITIAL_CONFIG, value);
91
+ }
92
+ get config() {
93
+ return this.getJson(WTStorageKeys.CONFIG);
94
+ }
95
+ set config(value) {
96
+ this.setJson(WTStorageKeys.CONFIG, value);
97
+ }
98
+ get appSettings() {
99
+ return this.getJson(WTStorageKeys.APP_SETTINGS);
100
+ }
101
+ set appSettings(value) {
102
+ this.setJson(WTStorageKeys.APP_SETTINGS, value);
103
+ }
104
+ get sdkEnabled() {
105
+ var _a;
106
+ return (_a = this.optionalBool(WTStorageKeys.SDK_ENABLED)) !== null && _a !== void 0 ? _a : false;
107
+ }
108
+ set sdkEnabled(value) {
109
+ localStorage.setItem(WTStorageKeys.SDK_ENABLED, value.toString());
110
+ }
111
+ get sdkClickSubmit() {
112
+ var _a;
113
+ return (_a = this.optionalBool(WTStorageKeys.SDK_CLICK_SUBMIT)) !== null && _a !== void 0 ? _a : false;
114
+ }
115
+ set sdkClickSubmit(value) {
116
+ localStorage.setItem(WTStorageKeys.SDK_CLICK_SUBMIT, value.toString());
117
+ }
118
+ get firstSessionSubmit() {
119
+ var _a;
120
+ return (_a = this.optionalBool(WTStorageKeys.FIRST_SESSION_SUBMIT)) !== null && _a !== void 0 ? _a : false;
121
+ }
122
+ set firstSessionSubmit(value) {
123
+ localStorage.setItem(WTStorageKeys.FIRST_SESSION_SUBMIT, value.toString());
124
+ }
125
+ get fcmToken() {
126
+ return localStorage.getItem(WTStorageKeys.FCM_TOKEN);
127
+ }
128
+ set fcmToken(value) {
129
+ if (value) {
130
+ localStorage.setItem(WTStorageKeys.FCM_TOKEN, value);
131
+ }
132
+ else {
133
+ localStorage.removeItem(WTStorageKeys.FCM_TOKEN);
134
+ }
135
+ }
136
+ get pushToken() {
137
+ return localStorage.getItem(WTStorageKeys.PUSH_TOKEN);
138
+ }
139
+ set pushToken(value) {
140
+ if (value) {
141
+ localStorage.setItem(WTStorageKeys.PUSH_TOKEN, value);
142
+ }
143
+ else {
144
+ localStorage.removeItem(WTStorageKeys.PUSH_TOKEN);
145
+ }
146
+ }
147
+ get sessionCount() {
148
+ var _a;
149
+ return (_a = this.optionalNumber(WTStorageKeys.SESSION_COUNT)) !== null && _a !== void 0 ? _a : 1;
150
+ }
151
+ set sessionCount(value) {
152
+ localStorage.setItem(WTStorageKeys.SESSION_COUNT, value.toString());
153
+ }
154
+ get subSessionCount() {
155
+ var _a;
156
+ return (_a = this.optionalNumber(WTStorageKeys.SUBSESSION_COUNT)) !== null && _a !== void 0 ? _a : 1;
157
+ }
158
+ set subSessionCount(value) {
159
+ localStorage.setItem(WTStorageKeys.SUBSESSION_COUNT, value.toString());
160
+ }
161
+ get activeDuration() {
162
+ var _a;
163
+ return (_a = this.optionalNumber(WTStorageKeys.SESSION_LENGTH)) !== null && _a !== void 0 ? _a : 0;
164
+ }
165
+ set activeDuration(value) {
166
+ localStorage.setItem(WTStorageKeys.SESSION_LENGTH, value.toString());
167
+ }
168
+ get inactiveDuration() {
169
+ var _a;
170
+ return (_a = this.optionalNumber(WTStorageKeys.INACTIVE_DURATION)) !== null && _a !== void 0 ? _a : 0;
171
+ }
172
+ set inactiveDuration(value) {
173
+ localStorage.setItem(WTStorageKeys.INACTIVE_DURATION, value.toString());
174
+ }
175
+ get inactiveTime() {
176
+ return this.optionalNumber(WTStorageKeys.ACTIVE_TIME);
177
+ }
178
+ set inactiveTime(value) {
179
+ if (value !== null) {
180
+ localStorage.setItem(WTStorageKeys.ACTIVE_TIME, value.toString());
181
+ }
182
+ else {
183
+ localStorage.removeItem(WTStorageKeys.ACTIVE_TIME);
184
+ }
185
+ }
186
+ get activeTime() {
187
+ return this.optionalNumber(WTStorageKeys.INACTIVE_TIME);
188
+ }
189
+ set activeTime(value) {
190
+ if (value !== null) {
191
+ localStorage.setItem(WTStorageKeys.INACTIVE_TIME, value.toString());
192
+ }
193
+ else {
194
+ localStorage.removeItem(WTStorageKeys.INACTIVE_TIME);
195
+ }
196
+ }
197
+ get requestRecords() {
198
+ var _a;
199
+ return (_a = this.getJson(WTStorageKeys.REQUEST_QUEUE)) !== null && _a !== void 0 ? _a : [];
200
+ }
201
+ set requestRecords(value) {
202
+ this.setJson(WTStorageKeys.REQUEST_QUEUE, value);
203
+ }
204
+ get pendingRequestRecords() {
205
+ var _a;
206
+ return (_a = this.getJson(WTStorageKeys.PENDING_REQUEST_QUEUE)) !== null && _a !== void 0 ? _a : [];
207
+ }
208
+ set pendingRequestRecords(value) {
209
+ this.setJson(WTStorageKeys.PENDING_REQUEST_QUEUE, value);
210
+ }
211
+ get eventCount() {
212
+ var _a;
213
+ return (_a = this.optionalNumber(WTStorageKeys.EVENT_COUNT)) !== null && _a !== void 0 ? _a : 0;
214
+ }
215
+ set eventCount(value) {
216
+ localStorage.setItem(WTStorageKeys.EVENT_COUNT, value.toString());
217
+ }
218
+ }
219
+ /** @internal */
220
+ export const storageManager = new StorageManager();
221
+ //# sourceMappingURL=storage-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-manager.js","sourceRoot":"","sources":["../../../src/core/storage/storage-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import { WTInitialConfig } from "../types/config/initial-config";
2
+ import { WTEvent } from "../types/event/wt-event";
3
+ import { WTLogLevel } from "../utils/logger";
4
+ /**
5
+ * The main entry point for the WiseTrack Web SDK.
6
+ *
7
+ * Use this singleton to initialize the SDK, configure its behavior, and track events.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * const initialConfig: WTInitialConfig = {
12
+ * appToken: appToken ?? "rMN5ZCwpOzY7",
13
+ * appFrameWork: "native",
14
+ * appVersion: "1.0.0",
15
+ * };
16
+ * await WiseTrack.instance.init(initialConfig);
17
+ * ```
18
+ */
19
+ export declare class WiseTrack {
20
+ private static _instance?;
21
+ /**
22
+ * Returns the singleton instance of the WiseTrack SDK.
23
+ */
24
+ static get instance(): WiseTrack;
25
+ private constructor();
26
+ private sdkInitialized;
27
+ /**
28
+ * Initializes the WiseTrack SDK with the given configuration.
29
+ *
30
+ * This method must be called before using any tracking features.
31
+ *
32
+ * @param initConfig - The initial configuration object.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * const initialConfig: WTInitialConfig = {
37
+ * appToken: appToken ?? "rMN5ZCwpOzY7",
38
+ * appFrameWork: "native", // your current web app framework (native, reactjs, nextjs, ...)
39
+ * appVersion: "1.0.0", // your current web app version
40
+ * };
41
+ *
42
+ * ```
43
+ */
44
+ init(initConfig: WTInitialConfig): Promise<void>;
45
+ /**
46
+ * Sets the log level for internal SDK logging.
47
+ *
48
+ * @param level - The desired log level.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * WiseTrack.instance.setLogLevel(WTLogLevel.WARN)
53
+ * // or
54
+ * WiseTrack.instance.setLogLevel("warn")
55
+ *
56
+ * ```
57
+ */
58
+ setLogLevel(level: WTLogLevel): void;
59
+ /**
60
+ * Clears all stored data and stops the tracker.
61
+ */
62
+ flush(): void;
63
+ /**
64
+ * Returns whether the SDK is currently enabled.
65
+ */
66
+ isEnabled(): boolean;
67
+ /**
68
+ * Enables or disables the SDK.
69
+ *
70
+ * Throws an error if the SDK is disabled by the server or needs an update.
71
+ *
72
+ * @param enabled - Whether to enable the SDK.
73
+ * @throws If the server has disabled the SDK or a forced update is required.
74
+ */
75
+ setEnabled(enabled: boolean): void;
76
+ /**
77
+ * Starts the tracking process.
78
+ *
79
+ * @remarks
80
+ * The SDK must be initialized and enabled before calling this method.
81
+ *
82
+ * NOTE: call this method just if you set startTrackerAutomatically=false in WTInitialConfig
83
+ */
84
+ startTracking(): Promise<void>;
85
+ /**
86
+ * Stops the tracking process.
87
+ */
88
+ stopTracking(): Promise<void>;
89
+ /**
90
+ * Sets the Firebase Cloud Messaging (FCM) push token for server.
91
+ *
92
+ * @param token - The FCM token.
93
+ */
94
+ setFCMToken(token: string): Promise<void>;
95
+ /**
96
+ * Tracks a custom event or revenue event.
97
+ *
98
+ * @param event - The event object to be tracked.
99
+ *
100
+ * @example
101
+ * ```ts
102
+ * // Create a Default Event
103
+ * const defaultEvent = new WTEvent.Default("default-event");
104
+ * defaultEvent.addParam("key1", "value1");
105
+ * defaultEvent.addParam("key2", 123);
106
+ * defaultEvent.addParam("key3", true);
107
+ * await WiseTrack.instance.trackEvent(defaultEvent);
108
+ *
109
+ * // Create a Revenue Event
110
+ * const revenueEvent = new WTEvent.Revenue("revenue-event", 100, "USD");
111
+ * revenueEvent.addParam("item_id", "item123");
112
+ * revenueEvent.addParam("quantity", 2);
113
+ * await WiseTrack.instance.trackEvent(revenueEvent);
114
+ * ```
115
+ */
116
+ trackEvent(event: WTEvent.Default | WTEvent.Revenue): Promise<void>;
117
+ /** @internal */
118
+ private getConfig;
119
+ /** @internal */
120
+ private updateAppSettings;
121
+ /** @internal */
122
+ private checkSdkEnabled;
123
+ /** @internal */
124
+ private checkSdkUpdate;
125
+ }