@xylabs/pixel 1.3.2 → 1.3.6

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 (181) hide show
  1. package/dist/Api/Api.d.ts +2 -3
  2. package/dist/Api/Api.js +10 -18
  3. package/dist/Api/Api.js.map +1 -1
  4. package/dist/Api/UserEvent.d.ts +2 -3
  5. package/dist/Api/UserEventSystem.d.ts +1 -2
  6. package/dist/Api/index.d.ts +3 -5
  7. package/dist/Api/index.js +3 -2
  8. package/dist/Api/index.js.map +1 -1
  9. package/dist/CommonFields.d.ts +1 -2
  10. package/dist/ExIds.d.ts +1 -2
  11. package/dist/FunnelStartedFields.d.ts +2 -3
  12. package/dist/Pixel.d.ts +1 -1
  13. package/dist/Pixel.js +74 -103
  14. package/dist/Pixel.js.map +1 -1
  15. package/dist/Referrer.d.ts +1 -2
  16. package/dist/Referrer.js +12 -14
  17. package/dist/Referrer.js.map +1 -1
  18. package/dist/TestStartedFields.d.ts +2 -3
  19. package/dist/UniqueUserId.d.ts +1 -2
  20. package/dist/UniqueUserId.js +8 -10
  21. package/dist/UniqueUserId.js.map +1 -1
  22. package/dist/UserClickFields.d.ts +2 -3
  23. package/dist/UserEventHandler.d.ts +5 -6
  24. package/dist/UserEventHandler.js +2 -6
  25. package/dist/UserEventHandler.js.map +1 -1
  26. package/dist/UtmFields.d.ts +1 -2
  27. package/dist/UtmFields.js +16 -19
  28. package/dist/UtmFields.js.map +1 -1
  29. package/dist/ViewContentFields.d.ts +2 -3
  30. package/dist/XyUserEventHandler.d.ts +6 -7
  31. package/dist/XyUserEventHandler.js +22 -45
  32. package/dist/XyUserEventHandler.js.map +1 -1
  33. package/dist/cjs5/Api/Api.d.ts +6 -0
  34. package/dist/cjs5/Api/UserEvent.d.ts +17 -0
  35. package/dist/cjs5/Api/UserEventSystem.d.ts +2 -0
  36. package/dist/cjs5/Api/index.d.ts +3 -0
  37. package/dist/cjs5/CommonFields.d.ts +4 -0
  38. package/dist/cjs5/ExIds.d.ts +9 -0
  39. package/dist/cjs5/FunnelStartedFields.d.ts +4 -0
  40. package/dist/cjs5/Pixel.d.ts +23 -0
  41. package/dist/cjs5/Referrer.d.ts +12 -0
  42. package/dist/cjs5/TestStartedFields.d.ts +4 -0
  43. package/dist/cjs5/UniqueUserId.d.ts +7 -0
  44. package/dist/cjs5/UserClickFields.d.ts +5 -0
  45. package/dist/cjs5/UserEventHandler.d.ts +10 -0
  46. package/dist/cjs5/UtmFields.d.ts +8 -0
  47. package/dist/cjs5/ViewContentFields.d.ts +5 -0
  48. package/dist/cjs5/XyLabsTrackingEventJson.d.ts +19 -0
  49. package/dist/cjs5/XyUserEventHandler.d.ts +12 -0
  50. package/dist/cjs5/getSystemInfo.d.ts +1 -0
  51. package/dist/cjs5/index.d.ts +12 -0
  52. package/dist/cjs5/index.js +298 -0
  53. package/dist/cjs5/index.js.map +1 -0
  54. package/dist/esm2015/Api/Api.d.ts +6 -0
  55. package/dist/esm2015/Api/UserEvent.d.ts +17 -0
  56. package/dist/esm2015/Api/UserEventSystem.d.ts +2 -0
  57. package/dist/esm2015/Api/index.d.ts +3 -0
  58. package/dist/esm2015/CommonFields.d.ts +4 -0
  59. package/dist/esm2015/ExIds.d.ts +9 -0
  60. package/dist/esm2015/FunnelStartedFields.d.ts +4 -0
  61. package/dist/esm2015/Pixel.d.ts +23 -0
  62. package/dist/esm2015/Referrer.d.ts +12 -0
  63. package/dist/esm2015/TestStartedFields.d.ts +4 -0
  64. package/dist/esm2015/UniqueUserId.d.ts +7 -0
  65. package/dist/esm2015/UserClickFields.d.ts +5 -0
  66. package/dist/esm2015/UserEventHandler.d.ts +10 -0
  67. package/dist/esm2015/UtmFields.d.ts +8 -0
  68. package/dist/esm2015/ViewContentFields.d.ts +5 -0
  69. package/dist/esm2015/XyLabsTrackingEventJson.d.ts +19 -0
  70. package/dist/esm2015/XyUserEventHandler.d.ts +12 -0
  71. package/dist/esm2015/getSystemInfo.d.ts +1 -0
  72. package/dist/esm2015/index.d.ts +12 -0
  73. package/dist/esm2015/index.js +280 -0
  74. package/dist/esm2015/index.js.map +1 -0
  75. package/dist/esm2017/Api/Api.d.ts +2 -3
  76. package/dist/esm2017/Api/UserEvent.d.ts +2 -3
  77. package/dist/esm2017/Api/UserEventSystem.d.ts +1 -2
  78. package/dist/esm2017/Api/index.d.ts +3 -5
  79. package/dist/esm2017/CommonFields.d.ts +1 -2
  80. package/dist/esm2017/ExIds.d.ts +1 -2
  81. package/dist/esm2017/FunnelStartedFields.d.ts +2 -3
  82. package/dist/esm2017/Pixel.d.ts +1 -1
  83. package/dist/esm2017/Referrer.d.ts +1 -2
  84. package/dist/esm2017/TestStartedFields.d.ts +2 -3
  85. package/dist/esm2017/UniqueUserId.d.ts +1 -2
  86. package/dist/esm2017/UserClickFields.d.ts +2 -3
  87. package/dist/esm2017/UserEventHandler.d.ts +5 -6
  88. package/dist/esm2017/UtmFields.d.ts +1 -2
  89. package/dist/esm2017/ViewContentFields.d.ts +2 -3
  90. package/dist/esm2017/XyUserEventHandler.d.ts +6 -7
  91. package/dist/esm2017/getSystemInfo.d.ts +1 -2
  92. package/dist/esm2017/index.d.ts +9 -11
  93. package/dist/esm2017/index.js +181 -316
  94. package/dist/esm2017/index.js.map +1 -1
  95. package/dist/esm5/Api/Api.d.ts +2 -3
  96. package/dist/esm5/Api/UserEvent.d.ts +2 -3
  97. package/dist/esm5/Api/UserEventSystem.d.ts +1 -2
  98. package/dist/esm5/Api/index.d.ts +3 -5
  99. package/dist/esm5/CommonFields.d.ts +1 -2
  100. package/dist/esm5/ExIds.d.ts +1 -2
  101. package/dist/esm5/FunnelStartedFields.d.ts +2 -3
  102. package/dist/esm5/Pixel.d.ts +1 -1
  103. package/dist/esm5/Referrer.d.ts +1 -2
  104. package/dist/esm5/TestStartedFields.d.ts +2 -3
  105. package/dist/esm5/UniqueUserId.d.ts +1 -2
  106. package/dist/esm5/UserClickFields.d.ts +2 -3
  107. package/dist/esm5/UserEventHandler.d.ts +5 -6
  108. package/dist/esm5/UtmFields.d.ts +1 -2
  109. package/dist/esm5/ViewContentFields.d.ts +2 -3
  110. package/dist/esm5/XyUserEventHandler.d.ts +6 -7
  111. package/dist/esm5/getSystemInfo.d.ts +1 -2
  112. package/dist/esm5/index.d.ts +9 -11
  113. package/dist/esm5/index.js +181 -316
  114. package/dist/esm5/index.js.map +1 -1
  115. package/dist/getSystemInfo.d.ts +1 -2
  116. package/dist/getSystemInfo.js +3 -4
  117. package/dist/getSystemInfo.js.map +1 -1
  118. package/dist/index.d.ts +9 -11
  119. package/dist/index.js +9 -6
  120. package/dist/index.js.map +1 -1
  121. package/dist/node/Api/Api.d.ts +2 -3
  122. package/dist/node/Api/UserEvent.d.ts +2 -3
  123. package/dist/node/Api/UserEventSystem.d.ts +1 -2
  124. package/dist/node/Api/index.d.ts +3 -5
  125. package/dist/node/CommonFields.d.ts +1 -2
  126. package/dist/node/ExIds.d.ts +1 -2
  127. package/dist/node/FunnelStartedFields.d.ts +2 -3
  128. package/dist/node/Pixel.d.ts +1 -1
  129. package/dist/node/Referrer.d.ts +1 -2
  130. package/dist/node/TestStartedFields.d.ts +2 -3
  131. package/dist/node/UniqueUserId.d.ts +1 -2
  132. package/dist/node/UserClickFields.d.ts +2 -3
  133. package/dist/node/UserEventHandler.d.ts +5 -6
  134. package/dist/node/UtmFields.d.ts +1 -2
  135. package/dist/node/ViewContentFields.d.ts +2 -3
  136. package/dist/node/XyUserEventHandler.d.ts +6 -7
  137. package/dist/node/getSystemInfo.d.ts +1 -2
  138. package/dist/node/index.d.ts +9 -11
  139. package/dist/node/index.js +184 -319
  140. package/dist/node/index.js.map +1 -1
  141. package/dist/node-esm/Api/Api.d.ts +2 -3
  142. package/dist/node-esm/Api/UserEvent.d.ts +2 -3
  143. package/dist/node-esm/Api/UserEventSystem.d.ts +1 -2
  144. package/dist/node-esm/Api/index.d.ts +3 -5
  145. package/dist/node-esm/CommonFields.d.ts +1 -2
  146. package/dist/node-esm/ExIds.d.ts +1 -2
  147. package/dist/node-esm/FunnelStartedFields.d.ts +2 -3
  148. package/dist/node-esm/Pixel.d.ts +1 -1
  149. package/dist/node-esm/Referrer.d.ts +1 -2
  150. package/dist/node-esm/TestStartedFields.d.ts +2 -3
  151. package/dist/node-esm/UniqueUserId.d.ts +1 -2
  152. package/dist/node-esm/UserClickFields.d.ts +2 -3
  153. package/dist/node-esm/UserEventHandler.d.ts +5 -6
  154. package/dist/node-esm/UtmFields.d.ts +1 -2
  155. package/dist/node-esm/ViewContentFields.d.ts +2 -3
  156. package/dist/node-esm/XyUserEventHandler.d.ts +6 -7
  157. package/dist/node-esm/getSystemInfo.d.ts +1 -2
  158. package/dist/node-esm/index.d.ts +9 -11
  159. package/dist/node-esm/index.js +181 -316
  160. package/dist/node-esm/index.js.map +1 -1
  161. package/jest.config.cjs +22 -3
  162. package/package.json +5 -8
  163. package/src/Api/Api.ts +2 -4
  164. package/src/Api/UserEvent.ts +2 -4
  165. package/src/Api/UserEventSystem.ts +1 -3
  166. package/src/Api/index.ts +3 -6
  167. package/src/CommonFields.ts +1 -3
  168. package/src/ExIds.ts +1 -3
  169. package/src/FunnelStartedFields.ts +2 -4
  170. package/src/Pixel.spec.ts +2 -1
  171. package/src/Pixel.ts +11 -5
  172. package/src/Referrer.ts +1 -3
  173. package/src/TestStartedFields.ts +2 -4
  174. package/src/UniqueUserId.ts +1 -3
  175. package/src/UserClickFields.ts +2 -4
  176. package/src/UserEventHandler.ts +5 -7
  177. package/src/UtmFields.ts +1 -3
  178. package/src/ViewContentFields.ts +2 -4
  179. package/src/XyUserEventHandler.ts +6 -8
  180. package/src/getSystemInfo.ts +1 -3
  181. package/src/index.ts +9 -13
@@ -2,192 +2,140 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var randomBytes = require('randombytes');
6
- var isEqual = require('lodash/isEqual');
5
+ var axios = require('axios');
7
6
  var sdkJs = require('@xylabs/sdk-js');
8
7
  var asyncMutex = require('async-mutex');
9
8
  var Cookies = require('js-cookie');
10
9
  var md5 = require('md5');
11
- var axios = require('axios');
12
10
  var bowser = require('bowser');
11
+ var randomBytes = require('randombytes');
12
+ var isEqual = require('lodash/isEqual');
13
13
 
14
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
15
 
16
- var randomBytes__default = /*#__PURE__*/_interopDefaultLegacy(randomBytes);
17
- var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
16
+ var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
18
17
  var Cookies__default = /*#__PURE__*/_interopDefaultLegacy(Cookies);
19
18
  var md5__default = /*#__PURE__*/_interopDefaultLegacy(md5);
20
- var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
19
+ var randomBytes__default = /*#__PURE__*/_interopDefaultLegacy(randomBytes);
20
+ var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
21
+
22
+ /*! *****************************************************************************
23
+ Copyright (c) Microsoft Corporation.
24
+
25
+ Permission to use, copy, modify, and/or distribute this software for any
26
+ purpose with or without fee is hereby granted.
27
+
28
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
29
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
30
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
31
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
32
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
33
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
34
+ PERFORMANCE OF THIS SOFTWARE.
35
+ ***************************************************************************** */
36
+
37
+ function __awaiter(thisArg, _arguments, P, generator) {
38
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
39
+ return new (P || (P = Promise))(function (resolve, reject) {
40
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
41
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
42
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
43
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
44
+ });
45
+ }
46
+
47
+ const apiBaseUri = {
48
+ beta: 'https://pixel.xylabs.com',
49
+ local: 'http://localhost:3030',
50
+ prod: 'https://pixel.xylabs.com',
51
+ };
52
+ class PixelApi {
53
+ /* baseUri can either be a preset (prod, beta, local), or a specific uri */
54
+ constructor(baseUri = 'prod') {
55
+ this.endPoint = apiBaseUri[baseUri] ? `${apiBaseUri[baseUri]}/t/event/queue` : baseUri;
56
+ }
57
+ trackEvents(events) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ return (yield axios__default["default"].post(this.endPoint, events)).data;
60
+ });
61
+ }
62
+ }
21
63
 
22
- var Referrer = /** @class */ (function () {
23
- function Referrer() {
64
+ let systemInfo = undefined;
65
+ const getSystemInfo = () => {
66
+ try {
67
+ systemInfo = systemInfo || bowser.parse(window.navigator.userAgent);
68
+ }
69
+ catch (ex) {
70
+ console.log(`getSystemInfo Error: ${ex}`);
71
+ }
72
+ return systemInfo;
73
+ };
74
+
75
+ class Referrer {
76
+ constructor() {
24
77
  var _a, _b;
25
78
  this.session = (_a = this.getFromSession()) !== null && _a !== void 0 ? _a : document.referrer;
26
79
  sessionStorage.setItem(Referrer.storageId, this.session);
27
80
  this.local = (_b = this.getFromLocal()) !== null && _b !== void 0 ? _b : document.referrer;
28
81
  window.localStorage.setItem(Referrer.storageId, this.local);
29
82
  }
30
- Referrer.prototype.getFromLocal = function () {
31
- var value = window.localStorage.getItem(Referrer.storageId);
83
+ getFromLocal() {
84
+ const value = window.localStorage.getItem(Referrer.storageId);
32
85
  if (value && value.length > 0) {
33
86
  return value;
34
87
  }
35
- };
36
- Referrer.prototype.getFromSession = function () {
37
- var value = sessionStorage.getItem(Referrer.storageId);
88
+ }
89
+ getFromSession() {
90
+ const value = sessionStorage.getItem(Referrer.storageId);
38
91
  if (value && value.length > 0) {
39
92
  return value;
40
93
  }
41
- };
42
- Referrer.prototype.toJson = function () {
94
+ }
95
+ toJson() {
43
96
  if ((this.local && this.local.length > 0) || (this.session && this.session.length > 0)) {
44
97
  return {
45
98
  local: this.local,
46
99
  session: this.session,
47
100
  };
48
101
  }
49
- };
50
- Referrer.storageId = '_coin_referrer';
51
- return Referrer;
52
- }());
102
+ }
103
+ }
104
+ Referrer.storageId = '_coin_referrer';
53
105
 
54
- var UniqueUserId = /** @class */ (function () {
55
- function UniqueUserId() {
106
+ class UniqueUserId {
107
+ constructor() {
56
108
  var _a;
57
109
  this.id = (_a = window.localStorage.getItem(UniqueUserId.localStorageId)) !== null && _a !== void 0 ? _a : this.generateId();
58
110
  window.localStorage.setItem(UniqueUserId.localStorageId, this.id);
59
111
  }
60
- UniqueUserId.prototype.generateId = function () {
112
+ generateId() {
61
113
  return randomBytes__default["default"](16).toString('base64');
62
- };
63
- UniqueUserId.prototype.toString = function () {
114
+ }
115
+ toString() {
64
116
  return this.id;
65
- };
66
- UniqueUserId.localStorageId = '_coin_cid';
67
- return UniqueUserId;
68
- }());
69
-
70
- var UserEventHandler = /** @class */ (function () {
71
- function UserEventHandler() {
72
117
  }
73
- return UserEventHandler;
74
- }());
75
-
76
- /*! *****************************************************************************
77
- Copyright (c) Microsoft Corporation.
78
-
79
- Permission to use, copy, modify, and/or distribute this software for any
80
- purpose with or without fee is hereby granted.
81
-
82
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
83
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
84
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
85
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
86
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
87
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
88
- PERFORMANCE OF THIS SOFTWARE.
89
- ***************************************************************************** */
90
- /* global Reflect, Promise */
91
-
92
- var extendStatics = function(d, b) {
93
- extendStatics = Object.setPrototypeOf ||
94
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
95
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
96
- return extendStatics(d, b);
97
- };
98
-
99
- function __extends(d, b) {
100
- if (typeof b !== "function" && b !== null)
101
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
102
- extendStatics(d, b);
103
- function __() { this.constructor = d; }
104
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
105
- }
106
-
107
- var __assign = function() {
108
- __assign = Object.assign || function __assign(t) {
109
- for (var s, i = 1, n = arguments.length; i < n; i++) {
110
- s = arguments[i];
111
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
112
- }
113
- return t;
114
- };
115
- return __assign.apply(this, arguments);
116
- };
117
-
118
- function __awaiter(thisArg, _arguments, P, generator) {
119
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
120
- return new (P || (P = Promise))(function (resolve, reject) {
121
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
122
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
123
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
124
- step((generator = generator.apply(thisArg, _arguments || [])).next());
125
- });
126
- }
127
-
128
- function __generator(thisArg, body) {
129
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
130
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
131
- function verb(n) { return function (v) { return step([n, v]); }; }
132
- function step(op) {
133
- if (f) throw new TypeError("Generator is already executing.");
134
- while (_) try {
135
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
136
- if (y = 0, t) op = [op[0] & 2, t.value];
137
- switch (op[0]) {
138
- case 0: case 1: t = op; break;
139
- case 4: _.label++; return { value: op[1], done: false };
140
- case 5: _.label++; y = op[1]; op = [0]; continue;
141
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
142
- default:
143
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
144
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
145
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
146
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
147
- if (t[2]) _.ops.pop();
148
- _.trys.pop(); continue;
149
- }
150
- op = body.call(thisArg, _);
151
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
152
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
153
- }
154
- }
155
-
156
- function __read(o, n) {
157
- var m = typeof Symbol === "function" && o[Symbol.iterator];
158
- if (!m) return o;
159
- var i = m.call(o), r, ar = [], e;
160
- try {
161
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
162
- }
163
- catch (error) { e = { error: error }; }
164
- finally {
165
- try {
166
- if (r && !r.done && (m = i["return"])) m.call(i);
167
- }
168
- finally { if (e) throw e.error; }
169
- }
170
- return ar;
171
118
  }
119
+ UniqueUserId.localStorageId = '_coin_cid';
172
120
 
173
- var UtmFields = /** @class */ (function () {
174
- function UtmFields() {
121
+ class UtmFields {
122
+ constructor() {
175
123
  var _a;
176
124
  this.fields = [];
177
- this.getUtmRecord = function () {
125
+ this.getUtmRecord = () => {
178
126
  var _a, _b;
179
- var record = {};
180
- var parsedQueryString = (_b = (_a = document.location.search.split('?')[1]) === null || _a === void 0 ? void 0 : _a.split('&')) !== null && _b !== void 0 ? _b : [];
181
- parsedQueryString.map(function (item) {
182
- var _a = __read(item.split('='), 2), fullKey = _a[0], value = _a[1];
183
- var _b = __read(fullKey.split('_'), 2), keyCategory = _b[0], keyName = _b[1];
127
+ const record = {};
128
+ const parsedQueryString = (_b = (_a = document.location.search.split('?')[1]) === null || _a === void 0 ? void 0 : _a.split('&')) !== null && _b !== void 0 ? _b : [];
129
+ parsedQueryString.map((item) => {
130
+ const [fullKey, value] = item.split('=');
131
+ const [keyCategory, keyName] = fullKey.split('_');
184
132
  if (keyCategory === 'utm') {
185
133
  record[keyName] = value;
186
134
  }
187
135
  });
188
136
  return Object.keys(record).length > 0 ? record : null;
189
137
  };
190
- var storedString = (_a = window.localStorage.getItem(UtmFields.localStorageId)) !== null && _a !== void 0 ? _a : '[]';
138
+ const storedString = (_a = window.localStorage.getItem(UtmFields.localStorageId)) !== null && _a !== void 0 ? _a : '[]';
191
139
  try {
192
140
  this.fields = JSON.parse(storedString);
193
141
  }
@@ -202,72 +150,41 @@ var UtmFields = /** @class */ (function () {
202
150
  window.localStorage.setItem(UtmFields.localStorageId, JSON.stringify(this.fields));
203
151
  }
204
152
  //check the query string and if there an new/updated utm values, add them to the fields
205
- UtmFields.prototype.update = function () {
153
+ update() {
206
154
  var _a;
207
- var record = this.getUtmRecord();
155
+ const record = this.getUtmRecord();
208
156
  if (record) {
209
157
  if (!isEqual__default["default"](this.fields[this.fields.length - 1], record)) {
210
158
  this.fields.push(record);
211
159
  }
212
160
  }
213
161
  return (_a = this.fields) !== null && _a !== void 0 ? _a : undefined;
214
- };
215
- UtmFields.prototype.toString = function () {
216
- return JSON.stringify(this.fields);
217
- };
218
- UtmFields.localStorageId = '_coin_utm';
219
- return UtmFields;
220
- }());
221
-
222
- var apiBaseUri = {
223
- beta: 'https://pixel.xylabs.com',
224
- local: 'http://localhost:3030',
225
- prod: 'https://pixel.xylabs.com',
226
- };
227
- var PixelApi = /** @class */ (function () {
228
- /* baseUri can either be a preset (prod, beta, local), or a specific uri */
229
- function PixelApi(baseUri) {
230
- if (baseUri === void 0) { baseUri = 'prod'; }
231
- this.endPoint = apiBaseUri[baseUri] ? "".concat(apiBaseUri[baseUri], "/t/event/queue") : baseUri;
232
162
  }
233
- PixelApi.prototype.trackEvents = function (events) {
234
- return __awaiter(this, void 0, void 0, function () {
235
- return __generator(this, function (_a) {
236
- switch (_a.label) {
237
- case 0: return [4 /*yield*/, axios__default["default"].post(this.endPoint, events)];
238
- case 1: return [2 /*return*/, (_a.sent()).data];
239
- }
240
- });
241
- });
242
- };
243
- return PixelApi;
244
- }());
245
-
246
- var systemInfo = undefined;
247
- var getSystemInfo = function () {
248
- try {
249
- systemInfo = systemInfo || bowser.parse(window.navigator.userAgent);
250
- }
251
- catch (ex) {
252
- console.log("getSystemInfo Error: ".concat(ex));
163
+ toString() {
164
+ return JSON.stringify(this.fields);
253
165
  }
254
- return systemInfo;
255
- };
166
+ }
167
+ UtmFields.localStorageId = '_coin_utm';
256
168
 
257
- var XyPixel = /** @class */ (function () {
258
- function XyPixel(pixelId) {
169
+ const emailHashLocalStorageName = 'xy_email_hash';
170
+ class XyPixel {
171
+ constructor(pixelId) {
259
172
  this.queue = [];
260
173
  this.cid = new UniqueUserId().id;
261
174
  this.queueMutex = new asyncMutex.Mutex();
262
175
  this.pixelId = pixelId;
176
+ this.email_hash = localStorage.getItem(emailHashLocalStorageName);
263
177
  }
264
- XyPixel.prototype.identify = function (email) {
178
+ identify(email) {
265
179
  this.email = email;
266
180
  this.email_hash = email ? md5__default["default"](email) : undefined;
267
- };
268
- XyPixel.prototype.updateFbId = function () {
181
+ if (this.email_hash) {
182
+ localStorage.setItem(emailHashLocalStorageName, this.email_hash);
183
+ }
184
+ }
185
+ updateFbId() {
269
186
  var _a;
270
- this.exids = __assign({
187
+ this.exids = Object.assign({
271
188
  fbc: Cookies__default["default"].get('_fbc'),
272
189
  fbp: Cookies__default["default"].get('_fbp'),
273
190
  ga: Cookies__default["default"].get('_ga'),
@@ -276,152 +193,100 @@ var XyPixel = /** @class */ (function () {
276
193
  scid: Cookies__default["default"].get('_scid'),
277
194
  tt_sessionId: (_a = sessionStorage.getItem('tt_sessionId')) !== null && _a !== void 0 ? _a : undefined,
278
195
  });
279
- };
280
- XyPixel.prototype.tryFlushQueue = function () {
281
- return __awaiter(this, void 0, void 0, function () {
282
- var _this = this;
283
- return __generator(this, function (_a) {
284
- switch (_a.label) {
285
- case 0: return [4 /*yield*/, this.queueMutex.runExclusive(function () { return __awaiter(_this, void 0, void 0, function () {
286
- var api, events, ex_1;
287
- return __generator(this, function (_a) {
288
- switch (_a.label) {
289
- case 0:
290
- if (this.queue.length === 0)
291
- return [2 /*return*/];
292
- api = XyPixel.api;
293
- if (!api) return [3 /*break*/, 4];
294
- events = this.queue;
295
- this.queue = [];
296
- _a.label = 1;
297
- case 1:
298
- _a.trys.push([1, 3, , 4]);
299
- return [4 /*yield*/, api.trackEvents(events)];
300
- case 2:
301
- _a.sent();
302
- return [3 /*break*/, 4];
303
- case 3:
304
- ex_1 = _a.sent();
305
- if (events) {
306
- //put it back since it failed
307
- this.queue = this.queue.concat(events);
308
- }
309
- console.error(ex_1);
310
- return [3 /*break*/, 4];
311
- case 4: return [2 /*return*/];
312
- }
313
- });
314
- }); })];
315
- case 1:
316
- _a.sent();
317
- return [2 /*return*/];
196
+ }
197
+ tryFlushQueue() {
198
+ return __awaiter(this, void 0, void 0, function* () {
199
+ yield this.queueMutex.runExclusive(() => __awaiter(this, void 0, void 0, function* () {
200
+ if (this.queue.length === 0)
201
+ return;
202
+ const api = XyPixel.api;
203
+ if (api) {
204
+ const events = this.queue;
205
+ this.queue = [];
206
+ try {
207
+ yield api.trackEvents(events);
208
+ }
209
+ catch (ex) {
210
+ if (events) {
211
+ //put it back since it failed
212
+ this.queue = this.queue.concat(events);
213
+ }
214
+ console.error(ex);
215
+ }
318
216
  }
319
- });
217
+ }));
320
218
  });
321
- };
322
- XyPixel.prototype.send = function (event, fields) {
219
+ }
220
+ send(event, fields) {
323
221
  var _a;
324
- return __awaiter(this, void 0, void 0, function () {
325
- var utm, referrer;
326
- return __generator(this, function (_b) {
327
- switch (_b.label) {
328
- case 0:
329
- this.updateFbId();
330
- utm = XyPixel.utmFields().update();
331
- referrer = new Referrer();
332
- this.queue.push(__assign({
333
- cid: this.cid,
334
- create_time: Date.now(),
335
- email_hash: (_a = this.email_hash) !== null && _a !== void 0 ? _a : undefined,
336
- event: event,
337
- exids: this.exids,
338
- fields: fields,
339
- host: document.location.host,
340
- pathname: document.location.pathname,
341
- pixel: this.pixelId,
342
- referrer: referrer.toJson(),
343
- system: getSystemInfo(),
344
- utm: utm,
345
- }));
346
- return [4 /*yield*/, this.tryFlushQueue()];
347
- case 1:
348
- _b.sent();
349
- return [2 /*return*/];
350
- }
351
- });
222
+ return __awaiter(this, void 0, void 0, function* () {
223
+ this.updateFbId();
224
+ const utm = XyPixel.utmFields().update();
225
+ const referrer = new Referrer();
226
+ this.queue.push(Object.assign({
227
+ cid: this.cid,
228
+ create_time: Date.now(),
229
+ email_hash: (_a = this.email_hash) !== null && _a !== void 0 ? _a : undefined,
230
+ event,
231
+ exids: this.exids,
232
+ fields,
233
+ host: document.location.host,
234
+ pathname: document.location.pathname,
235
+ pixel: this.pixelId,
236
+ referrer: referrer.toJson(),
237
+ system: getSystemInfo(),
238
+ utm,
239
+ }));
240
+ yield this.tryFlushQueue();
352
241
  });
353
- };
354
- Object.defineProperty(XyPixel, "instance", {
355
- get: function () {
356
- return sdkJs.assertEx(this._instance, 'XyPixel uninitialized');
357
- },
358
- enumerable: false,
359
- configurable: true
360
- });
361
- XyPixel.init = function (pixelId) {
242
+ }
243
+ static get instance() {
244
+ return sdkJs.assertEx(this._instance, 'XyPixel uninitialized');
245
+ }
246
+ static init(pixelId) {
362
247
  this._instance = new XyPixel(pixelId);
363
248
  return this._instance;
364
- };
365
- XyPixel.selectApi = function (api) {
249
+ }
250
+ static selectApi(api) {
366
251
  this.api = api;
367
- };
368
- XyPixel.utmFields = function () {
369
- if (XyPixel.utmFieldsObj === undefined) {
370
- XyPixel.utmFieldsObj = new UtmFields();
371
- }
372
- return XyPixel.utmFieldsObj;
373
- };
374
- XyPixel.api = new PixelApi();
375
- return XyPixel;
376
- }());
252
+ }
253
+ }
254
+ XyPixel.utmFields = () => {
255
+ if (XyPixel.utmFieldsObj === undefined) {
256
+ XyPixel.utmFieldsObj = new UtmFields();
257
+ }
258
+ return XyPixel.utmFieldsObj;
259
+ };
260
+ XyPixel.api = new PixelApi();
377
261
 
378
- var XyUserEventHandler = /** @class */ (function (_super) {
379
- __extends(XyUserEventHandler, _super);
380
- function XyUserEventHandler() {
381
- return _super.call(this) || this;
262
+ class UserEventHandler {
263
+ }
264
+
265
+ class XyUserEventHandler extends UserEventHandler {
266
+ constructor() {
267
+ super();
382
268
  }
383
- XyUserEventHandler.prototype.testStarted = function (fields) {
384
- return __awaiter(this, void 0, void 0, function () {
385
- return __generator(this, function (_a) {
386
- switch (_a.label) {
387
- case 0: return [4 /*yield*/, XyPixel.instance.send('TestStarted', fields)];
388
- case 1: return [2 /*return*/, _a.sent()];
389
- }
390
- });
269
+ testStarted(fields) {
270
+ return __awaiter(this, void 0, void 0, function* () {
271
+ return yield XyPixel.instance.send('TestStarted', fields);
391
272
  });
392
- };
393
- XyUserEventHandler.prototype.funnelStarted = function (fields) {
394
- return __awaiter(this, void 0, void 0, function () {
395
- return __generator(this, function (_a) {
396
- switch (_a.label) {
397
- case 0: return [4 /*yield*/, XyPixel.instance.send('FunnelStarted', fields)];
398
- case 1: return [2 /*return*/, _a.sent()];
399
- }
400
- });
273
+ }
274
+ funnelStarted(fields) {
275
+ return __awaiter(this, void 0, void 0, function* () {
276
+ return yield XyPixel.instance.send('FunnelStarted', fields);
401
277
  });
402
- };
403
- XyUserEventHandler.prototype.viewContent = function (fields) {
404
- return __awaiter(this, void 0, void 0, function () {
405
- return __generator(this, function (_a) {
406
- switch (_a.label) {
407
- case 0: return [4 /*yield*/, XyPixel.instance.send('ViewContent', fields)];
408
- case 1: return [2 /*return*/, _a.sent()];
409
- }
410
- });
278
+ }
279
+ viewContent(fields) {
280
+ return __awaiter(this, void 0, void 0, function* () {
281
+ return yield XyPixel.instance.send('ViewContent', fields);
411
282
  });
412
- };
413
- XyUserEventHandler.prototype.userClick = function (fields) {
414
- return __awaiter(this, void 0, void 0, function () {
415
- return __generator(this, function (_a) {
416
- switch (_a.label) {
417
- case 0: return [4 /*yield*/, XyPixel.instance.send('ViewPage', fields)];
418
- case 1: return [2 /*return*/, _a.sent()];
419
- }
420
- });
283
+ }
284
+ userClick(fields) {
285
+ return __awaiter(this, void 0, void 0, function* () {
286
+ return yield XyPixel.instance.send('ViewPage', fields);
421
287
  });
422
- };
423
- return XyUserEventHandler;
424
- }(UserEventHandler));
288
+ }
289
+ }
425
290
 
426
291
  exports.PixelApi = PixelApi;
427
292
  exports.Referrer = Referrer;