@xylabs/pixel 1.3.1 → 1.3.5

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 (182) hide show
  1. package/README.md +6 -1
  2. package/dist/Api/Api.d.ts +2 -3
  3. package/dist/Api/Api.js +10 -18
  4. package/dist/Api/Api.js.map +1 -1
  5. package/dist/Api/UserEvent.d.ts +2 -3
  6. package/dist/Api/UserEventSystem.d.ts +1 -2
  7. package/dist/Api/index.d.ts +3 -5
  8. package/dist/Api/index.js +3 -2
  9. package/dist/Api/index.js.map +1 -1
  10. package/dist/CommonFields.d.ts +1 -2
  11. package/dist/ExIds.d.ts +1 -2
  12. package/dist/FunnelStartedFields.d.ts +2 -3
  13. package/dist/Pixel.d.ts +1 -1
  14. package/dist/Pixel.js +74 -103
  15. package/dist/Pixel.js.map +1 -1
  16. package/dist/Referrer.d.ts +1 -2
  17. package/dist/Referrer.js +12 -14
  18. package/dist/Referrer.js.map +1 -1
  19. package/dist/TestStartedFields.d.ts +2 -3
  20. package/dist/UniqueUserId.d.ts +1 -2
  21. package/dist/UniqueUserId.js +8 -10
  22. package/dist/UniqueUserId.js.map +1 -1
  23. package/dist/UserClickFields.d.ts +2 -3
  24. package/dist/UserEventHandler.d.ts +5 -6
  25. package/dist/UserEventHandler.js +2 -6
  26. package/dist/UserEventHandler.js.map +1 -1
  27. package/dist/UtmFields.d.ts +1 -2
  28. package/dist/UtmFields.js +16 -19
  29. package/dist/UtmFields.js.map +1 -1
  30. package/dist/ViewContentFields.d.ts +2 -3
  31. package/dist/XyUserEventHandler.d.ts +6 -7
  32. package/dist/XyUserEventHandler.js +22 -45
  33. package/dist/XyUserEventHandler.js.map +1 -1
  34. package/dist/cjs5/Api/Api.d.ts +6 -0
  35. package/dist/cjs5/Api/UserEvent.d.ts +17 -0
  36. package/dist/cjs5/Api/UserEventSystem.d.ts +2 -0
  37. package/dist/cjs5/Api/index.d.ts +3 -0
  38. package/dist/cjs5/CommonFields.d.ts +4 -0
  39. package/dist/cjs5/ExIds.d.ts +9 -0
  40. package/dist/cjs5/FunnelStartedFields.d.ts +4 -0
  41. package/dist/cjs5/Pixel.d.ts +23 -0
  42. package/dist/cjs5/Referrer.d.ts +12 -0
  43. package/dist/cjs5/TestStartedFields.d.ts +4 -0
  44. package/dist/cjs5/UniqueUserId.d.ts +7 -0
  45. package/dist/cjs5/UserClickFields.d.ts +5 -0
  46. package/dist/cjs5/UserEventHandler.d.ts +10 -0
  47. package/dist/cjs5/UtmFields.d.ts +8 -0
  48. package/dist/cjs5/ViewContentFields.d.ts +5 -0
  49. package/dist/cjs5/XyLabsTrackingEventJson.d.ts +19 -0
  50. package/dist/cjs5/XyUserEventHandler.d.ts +12 -0
  51. package/dist/cjs5/getSystemInfo.d.ts +1 -0
  52. package/dist/cjs5/index.d.ts +12 -0
  53. package/dist/cjs5/index.js +298 -0
  54. package/dist/cjs5/index.js.map +1 -0
  55. package/dist/esm2015/Api/Api.d.ts +6 -0
  56. package/dist/esm2015/Api/UserEvent.d.ts +17 -0
  57. package/dist/esm2015/Api/UserEventSystem.d.ts +2 -0
  58. package/dist/esm2015/Api/index.d.ts +3 -0
  59. package/dist/esm2015/CommonFields.d.ts +4 -0
  60. package/dist/esm2015/ExIds.d.ts +9 -0
  61. package/dist/esm2015/FunnelStartedFields.d.ts +4 -0
  62. package/dist/esm2015/Pixel.d.ts +23 -0
  63. package/dist/esm2015/Referrer.d.ts +12 -0
  64. package/dist/esm2015/TestStartedFields.d.ts +4 -0
  65. package/dist/esm2015/UniqueUserId.d.ts +7 -0
  66. package/dist/esm2015/UserClickFields.d.ts +5 -0
  67. package/dist/esm2015/UserEventHandler.d.ts +10 -0
  68. package/dist/esm2015/UtmFields.d.ts +8 -0
  69. package/dist/esm2015/ViewContentFields.d.ts +5 -0
  70. package/dist/esm2015/XyLabsTrackingEventJson.d.ts +19 -0
  71. package/dist/esm2015/XyUserEventHandler.d.ts +12 -0
  72. package/dist/esm2015/getSystemInfo.d.ts +1 -0
  73. package/dist/esm2015/index.d.ts +12 -0
  74. package/dist/esm2015/index.js +280 -0
  75. package/dist/esm2015/index.js.map +1 -0
  76. package/dist/esm2017/Api/Api.d.ts +2 -3
  77. package/dist/esm2017/Api/UserEvent.d.ts +2 -3
  78. package/dist/esm2017/Api/UserEventSystem.d.ts +1 -2
  79. package/dist/esm2017/Api/index.d.ts +3 -5
  80. package/dist/esm2017/CommonFields.d.ts +1 -2
  81. package/dist/esm2017/ExIds.d.ts +1 -2
  82. package/dist/esm2017/FunnelStartedFields.d.ts +2 -3
  83. package/dist/esm2017/Pixel.d.ts +1 -1
  84. package/dist/esm2017/Referrer.d.ts +1 -2
  85. package/dist/esm2017/TestStartedFields.d.ts +2 -3
  86. package/dist/esm2017/UniqueUserId.d.ts +1 -2
  87. package/dist/esm2017/UserClickFields.d.ts +2 -3
  88. package/dist/esm2017/UserEventHandler.d.ts +5 -6
  89. package/dist/esm2017/UtmFields.d.ts +1 -2
  90. package/dist/esm2017/ViewContentFields.d.ts +2 -3
  91. package/dist/esm2017/XyUserEventHandler.d.ts +6 -7
  92. package/dist/esm2017/getSystemInfo.d.ts +1 -2
  93. package/dist/esm2017/index.d.ts +9 -11
  94. package/dist/esm2017/index.js +181 -316
  95. package/dist/esm2017/index.js.map +1 -1
  96. package/dist/esm5/Api/Api.d.ts +2 -3
  97. package/dist/esm5/Api/UserEvent.d.ts +2 -3
  98. package/dist/esm5/Api/UserEventSystem.d.ts +1 -2
  99. package/dist/esm5/Api/index.d.ts +3 -5
  100. package/dist/esm5/CommonFields.d.ts +1 -2
  101. package/dist/esm5/ExIds.d.ts +1 -2
  102. package/dist/esm5/FunnelStartedFields.d.ts +2 -3
  103. package/dist/esm5/Pixel.d.ts +1 -1
  104. package/dist/esm5/Referrer.d.ts +1 -2
  105. package/dist/esm5/TestStartedFields.d.ts +2 -3
  106. package/dist/esm5/UniqueUserId.d.ts +1 -2
  107. package/dist/esm5/UserClickFields.d.ts +2 -3
  108. package/dist/esm5/UserEventHandler.d.ts +5 -6
  109. package/dist/esm5/UtmFields.d.ts +1 -2
  110. package/dist/esm5/ViewContentFields.d.ts +2 -3
  111. package/dist/esm5/XyUserEventHandler.d.ts +6 -7
  112. package/dist/esm5/getSystemInfo.d.ts +1 -2
  113. package/dist/esm5/index.d.ts +9 -11
  114. package/dist/esm5/index.js +181 -316
  115. package/dist/esm5/index.js.map +1 -1
  116. package/dist/getSystemInfo.d.ts +1 -2
  117. package/dist/getSystemInfo.js +3 -4
  118. package/dist/getSystemInfo.js.map +1 -1
  119. package/dist/index.d.ts +9 -11
  120. package/dist/index.js +9 -6
  121. package/dist/index.js.map +1 -1
  122. package/dist/node/Api/Api.d.ts +2 -3
  123. package/dist/node/Api/UserEvent.d.ts +2 -3
  124. package/dist/node/Api/UserEventSystem.d.ts +1 -2
  125. package/dist/node/Api/index.d.ts +3 -5
  126. package/dist/node/CommonFields.d.ts +1 -2
  127. package/dist/node/ExIds.d.ts +1 -2
  128. package/dist/node/FunnelStartedFields.d.ts +2 -3
  129. package/dist/node/Pixel.d.ts +1 -1
  130. package/dist/node/Referrer.d.ts +1 -2
  131. package/dist/node/TestStartedFields.d.ts +2 -3
  132. package/dist/node/UniqueUserId.d.ts +1 -2
  133. package/dist/node/UserClickFields.d.ts +2 -3
  134. package/dist/node/UserEventHandler.d.ts +5 -6
  135. package/dist/node/UtmFields.d.ts +1 -2
  136. package/dist/node/ViewContentFields.d.ts +2 -3
  137. package/dist/node/XyUserEventHandler.d.ts +6 -7
  138. package/dist/node/getSystemInfo.d.ts +1 -2
  139. package/dist/node/index.d.ts +9 -11
  140. package/dist/node/index.js +184 -319
  141. package/dist/node/index.js.map +1 -1
  142. package/dist/node-esm/Api/Api.d.ts +2 -3
  143. package/dist/node-esm/Api/UserEvent.d.ts +2 -3
  144. package/dist/node-esm/Api/UserEventSystem.d.ts +1 -2
  145. package/dist/node-esm/Api/index.d.ts +3 -5
  146. package/dist/node-esm/CommonFields.d.ts +1 -2
  147. package/dist/node-esm/ExIds.d.ts +1 -2
  148. package/dist/node-esm/FunnelStartedFields.d.ts +2 -3
  149. package/dist/node-esm/Pixel.d.ts +1 -1
  150. package/dist/node-esm/Referrer.d.ts +1 -2
  151. package/dist/node-esm/TestStartedFields.d.ts +2 -3
  152. package/dist/node-esm/UniqueUserId.d.ts +1 -2
  153. package/dist/node-esm/UserClickFields.d.ts +2 -3
  154. package/dist/node-esm/UserEventHandler.d.ts +5 -6
  155. package/dist/node-esm/UtmFields.d.ts +1 -2
  156. package/dist/node-esm/ViewContentFields.d.ts +2 -3
  157. package/dist/node-esm/XyUserEventHandler.d.ts +6 -7
  158. package/dist/node-esm/getSystemInfo.d.ts +1 -2
  159. package/dist/node-esm/index.d.ts +9 -11
  160. package/dist/node-esm/index.js +181 -316
  161. package/dist/node-esm/index.js.map +1 -1
  162. package/jest.config.cjs +22 -3
  163. package/package.json +5 -8
  164. package/src/Api/Api.ts +2 -4
  165. package/src/Api/UserEvent.ts +2 -4
  166. package/src/Api/UserEventSystem.ts +1 -3
  167. package/src/Api/index.ts +3 -6
  168. package/src/CommonFields.ts +1 -3
  169. package/src/ExIds.ts +1 -3
  170. package/src/FunnelStartedFields.ts +2 -4
  171. package/src/Pixel.spec.ts +2 -1
  172. package/src/Pixel.ts +11 -5
  173. package/src/Referrer.ts +1 -3
  174. package/src/TestStartedFields.ts +2 -4
  175. package/src/UniqueUserId.ts +1 -3
  176. package/src/UserClickFields.ts +2 -4
  177. package/src/UserEventHandler.ts +5 -7
  178. package/src/UtmFields.ts +1 -3
  179. package/src/ViewContentFields.ts +2 -4
  180. package/src/XyUserEventHandler.ts +6 -8
  181. package/src/getSystemInfo.ts +1 -3
  182. package/src/index.ts +9 -13
@@ -1 +1 @@
1
- {"version":3,"file":"UtmFields.js","sourceRoot":"","sources":["../src/UtmFields.ts"],"names":[],"mappings":";AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAEpC;IAGE;;QADO,WAAM,GAA6B,EAAE,CAAA;QAgBrC,iBAAY,GAAG;;YACpB,IAAM,MAAM,GAA2B,EAAE,CAAA;YACzC,IAAM,iBAAiB,GAAG,MAAA,MAAA,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAA;YAClF,iBAAiB,CAAC,GAAG,CAAC,UAAC,IAAI;gBACnB,IAAA,KAAA,OAAmB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAA,EAAjC,OAAO,QAAA,EAAE,KAAK,QAAmB,CAAA;gBAClC,IAAA,KAAA,OAAyB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAA,EAA1C,WAAW,QAAA,EAAE,OAAO,QAAsB,CAAA;gBACjD,IAAI,WAAW,KAAK,KAAK,EAAE;oBACzB,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;iBACxB;YACH,CAAC,CAAC,CAAA;YACF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;QACvD,CAAC,CAAA;QAzBC,IAAM,YAAY,GAAG,MAAA,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,mCAAI,IAAI,CAAA;QAClF,IAAI;YACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;SACvC;QAAC,WAAM;YACN,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;SACjB;QACD,8CAA8C;QAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;SACjB;QACD,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACpF,CAAC;IAeD,uFAAuF;IAChF,0BAAM,GAAb;;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QAClC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;gBACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aACzB;SACF;QACD,OAAO,MAAA,IAAI,CAAC,MAAM,mCAAI,SAAS,CAAA;IACjC,CAAC;IAEM,4BAAQ,GAAf;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IA3Cc,wBAAc,GAAG,WAAW,CAAA;IA4C7C,gBAAC;CAAA,AA7CD,IA6CC;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"UtmFields.js","sourceRoot":"","sources":["../src/UtmFields.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAEpC,MAAM,OAAO,SAAS;IAGpB;;QADO,WAAM,GAA6B,EAAE,CAAA;QAgBrC,iBAAY,GAAG,GAAG,EAAE;;YACzB,MAAM,MAAM,GAA2B,EAAE,CAAA;YACzC,MAAM,iBAAiB,GAAG,MAAA,MAAA,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAA;YAClF,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7B,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACxC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACjD,IAAI,WAAW,KAAK,KAAK,EAAE;oBACzB,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;iBACxB;YACH,CAAC,CAAC,CAAA;YACF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;QACvD,CAAC,CAAA;QAzBC,MAAM,YAAY,GAAG,MAAA,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,mCAAI,IAAI,CAAA;QAClF,IAAI;YACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;SACvC;QAAC,WAAM;YACN,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;SACjB;QACD,8CAA8C;QAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;SACjB;QACD,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACpF,CAAC;IAeD,uFAAuF;IAChF,MAAM;;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QAClC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;gBACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aACzB;SACF;QACD,OAAO,MAAA,IAAI,CAAC,MAAM,mCAAI,SAAS,CAAA;IACjC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;;AA3Cc,wBAAc,GAAG,WAAW,CAAA"}
@@ -1,6 +1,5 @@
1
- import CommonFields from './CommonFields';
2
- interface ViewContentFields extends CommonFields {
1
+ import { CommonFields } from './CommonFields';
2
+ export interface ViewContentFields extends CommonFields {
3
3
  name: string;
4
4
  path: string;
5
5
  }
6
- export default ViewContentFields;
@@ -1,13 +1,12 @@
1
- import FunnelStartedFields from './FunnelStartedFields';
2
- import TestStartedFields from './TestStartedFields';
3
- import UserClickFields from './UserClickFields';
4
- import UserEventHandler from './UserEventHandler';
5
- import ViewContentFields from './ViewContentFields';
6
- declare class XyUserEventHandler<T extends Record<string, unknown>> extends UserEventHandler<T> {
1
+ import { FunnelStartedFields } from './FunnelStartedFields';
2
+ import { TestStartedFields } from './TestStartedFields';
3
+ import { UserClickFields } from './UserClickFields';
4
+ import { UserEventHandler } from './UserEventHandler';
5
+ import { ViewContentFields } from './ViewContentFields';
6
+ export declare class XyUserEventHandler<T extends Record<string, unknown>> extends UserEventHandler<T> {
7
7
  constructor();
8
8
  testStarted(fields: T | TestStartedFields): Promise<void>;
9
9
  funnelStarted(fields: T | FunnelStartedFields): Promise<void>;
10
10
  viewContent(fields: T | ViewContentFields): Promise<void>;
11
11
  userClick(fields: T | UserClickFields): Promise<void>;
12
12
  }
13
- export default XyUserEventHandler;
@@ -1,52 +1,29 @@
1
- import { __awaiter, __extends, __generator } from "tslib";
1
+ import { __awaiter } from "tslib";
2
2
  import { XyPixel } from './Pixel';
3
- import UserEventHandler from './UserEventHandler';
4
- var XyUserEventHandler = /** @class */ (function (_super) {
5
- __extends(XyUserEventHandler, _super);
6
- function XyUserEventHandler() {
7
- return _super.call(this) || this;
3
+ import { UserEventHandler } from './UserEventHandler';
4
+ export class XyUserEventHandler extends UserEventHandler {
5
+ constructor() {
6
+ super();
8
7
  }
9
- XyUserEventHandler.prototype.testStarted = function (fields) {
10
- return __awaiter(this, void 0, void 0, function () {
11
- return __generator(this, function (_a) {
12
- switch (_a.label) {
13
- case 0: return [4 /*yield*/, XyPixel.instance.send('TestStarted', fields)];
14
- case 1: return [2 /*return*/, _a.sent()];
15
- }
16
- });
8
+ testStarted(fields) {
9
+ return __awaiter(this, void 0, void 0, function* () {
10
+ return yield XyPixel.instance.send('TestStarted', fields);
17
11
  });
18
- };
19
- XyUserEventHandler.prototype.funnelStarted = function (fields) {
20
- return __awaiter(this, void 0, void 0, function () {
21
- return __generator(this, function (_a) {
22
- switch (_a.label) {
23
- case 0: return [4 /*yield*/, XyPixel.instance.send('FunnelStarted', fields)];
24
- case 1: return [2 /*return*/, _a.sent()];
25
- }
26
- });
12
+ }
13
+ funnelStarted(fields) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ return yield XyPixel.instance.send('FunnelStarted', fields);
27
16
  });
28
- };
29
- XyUserEventHandler.prototype.viewContent = function (fields) {
30
- return __awaiter(this, void 0, void 0, function () {
31
- return __generator(this, function (_a) {
32
- switch (_a.label) {
33
- case 0: return [4 /*yield*/, XyPixel.instance.send('ViewContent', fields)];
34
- case 1: return [2 /*return*/, _a.sent()];
35
- }
36
- });
17
+ }
18
+ viewContent(fields) {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ return yield XyPixel.instance.send('ViewContent', fields);
37
21
  });
38
- };
39
- XyUserEventHandler.prototype.userClick = function (fields) {
40
- return __awaiter(this, void 0, void 0, function () {
41
- return __generator(this, function (_a) {
42
- switch (_a.label) {
43
- case 0: return [4 /*yield*/, XyPixel.instance.send('ViewPage', fields)];
44
- case 1: return [2 /*return*/, _a.sent()];
45
- }
46
- });
22
+ }
23
+ userClick(fields) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ return yield XyPixel.instance.send('ViewPage', fields);
47
26
  });
48
- };
49
- return XyUserEventHandler;
50
- }(UserEventHandler));
51
- export default XyUserEventHandler;
27
+ }
28
+ }
52
29
  //# sourceMappingURL=XyUserEventHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyUserEventHandler.js","sourceRoot":"","sources":["../src/XyUserEventHandler.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGjC,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AAGjD;IAAoE,sCAAmB;IACrF;eACE,iBAAO;IACT,CAAC;IACY,wCAAW,GAAxB,UAAyB,MAA6B;;;;4BAC7C,qBAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,EAAA;4BAAzD,sBAAO,SAAkD,EAAA;;;;KAC1D;IACY,0CAAa,GAA1B,UAA2B,MAA+B;;;;4BACjD,qBAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAAA;4BAA3D,sBAAO,SAAoD,EAAA;;;;KAC5D;IACY,wCAAW,GAAxB,UAAyB,MAA6B;;;;4BAC7C,qBAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,EAAA;4BAAzD,sBAAO,SAAkD,EAAA;;;;KAC1D;IACY,sCAAS,GAAtB,UAAuB,MAA2B;;;;4BACzC,qBAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAAA;4BAAtD,sBAAO,SAA+C,EAAA;;;;KACvD;IACH,yBAAC;AAAD,CAAC,AAhBD,CAAoE,gBAAgB,GAgBnF;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"XyUserEventHandler.js","sourceRoot":"","sources":["../src/XyUserEventHandler.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,MAAM,OAAO,kBAAsD,SAAQ,gBAAmB;IAC5F;QACE,KAAK,EAAE,CAAA;IACT,CAAC;IACY,WAAW,CAAC,MAA6B;;YACpD,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QAC3D,CAAC;KAAA;IACY,aAAa,CAAC,MAA+B;;YACxD,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;QAC7D,CAAC;KAAA;IACY,WAAW,CAAC,MAA6B;;YACpD,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QAC3D,CAAC;KAAA;IACY,SAAS,CAAC,MAA2B;;YAChD,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QACxD,CAAC;KAAA;CACF"}
@@ -0,0 +1,6 @@
1
+ import { UserEvent } from './UserEvent';
2
+ export declare class PixelApi {
3
+ private endPoint;
4
+ constructor(baseUri?: string);
5
+ trackEvents(events: UserEvent[]): Promise<any>;
6
+ }
@@ -0,0 +1,17 @@
1
+ import { UserEventSystem } from './UserEventSystem';
2
+ export interface UserEvent {
3
+ cid: string;
4
+ create_time?: number;
5
+ email?: string;
6
+ email_hash?: string;
7
+ event?: string;
8
+ fields?: Record<string, unknown>;
9
+ host?: string;
10
+ pathname?: string;
11
+ pixel?: string;
12
+ receive_time?: number;
13
+ rid?: string;
14
+ uid?: string;
15
+ utm?: Record<string, string>[] | Record<string, string[]>;
16
+ system?: UserEventSystem;
17
+ }
@@ -0,0 +1,2 @@
1
+ import Bowser from 'bowser';
2
+ export declare type UserEventSystem = Bowser.Parser.ParsedResult;
@@ -0,0 +1,3 @@
1
+ export * from './Api';
2
+ export * from './UserEvent';
3
+ export * from './UserEventSystem';
@@ -0,0 +1,4 @@
1
+ export interface CommonFields extends Record<string, unknown> {
2
+ funnel?: string;
3
+ testData?: string;
4
+ }
@@ -0,0 +1,9 @@
1
+ export interface ExIds {
2
+ fbp?: string;
3
+ fbc?: string;
4
+ ga?: string;
5
+ gclid?: string;
6
+ scid?: string;
7
+ rdt_uid?: string;
8
+ tt_sessionId?: string;
9
+ }
@@ -0,0 +1,4 @@
1
+ import { CommonFields } from './CommonFields';
2
+ export interface FunnelStartedFields extends CommonFields {
3
+ name: string;
4
+ }
@@ -0,0 +1,23 @@
1
+ import { PixelApi, UserEvent } from './Api';
2
+ import { ExIds } from './ExIds';
3
+ export declare class XyPixel {
4
+ pixelId?: string;
5
+ email?: string;
6
+ email_hash?: string | null;
7
+ queue: UserEvent[];
8
+ cid: string;
9
+ exids?: ExIds;
10
+ private queueMutex;
11
+ private constructor();
12
+ identify(email?: string): void;
13
+ private updateFbId;
14
+ private tryFlushQueue;
15
+ private static utmFieldsObj;
16
+ private static utmFields;
17
+ send<T extends Record<string, unknown>>(event: string, fields?: T): Promise<void>;
18
+ private static _instance?;
19
+ static get instance(): XyPixel;
20
+ static init(pixelId: string): XyPixel;
21
+ static api: PixelApi;
22
+ static selectApi(api: PixelApi): void;
23
+ }
@@ -0,0 +1,12 @@
1
+ export declare class Referrer {
2
+ private static storageId;
3
+ local: string;
4
+ session: string;
5
+ constructor();
6
+ private getFromLocal;
7
+ private getFromSession;
8
+ toJson(): {
9
+ local: string;
10
+ session: string;
11
+ } | undefined;
12
+ }
@@ -0,0 +1,4 @@
1
+ import { CommonFields } from './CommonFields';
2
+ export interface TestStartedFields extends CommonFields {
3
+ name: string;
4
+ }
@@ -0,0 +1,7 @@
1
+ export declare class UniqueUserId {
2
+ private static localStorageId;
3
+ id: string;
4
+ constructor();
5
+ private generateId;
6
+ toString(): string;
7
+ }
@@ -0,0 +1,5 @@
1
+ import { CommonFields } from './CommonFields';
2
+ export interface UserClickFields extends CommonFields {
3
+ elementName: string;
4
+ elementType: string;
5
+ }
@@ -0,0 +1,10 @@
1
+ import { FunnelStartedFields } from './FunnelStartedFields';
2
+ import { TestStartedFields } from './TestStartedFields';
3
+ import { UserClickFields } from './UserClickFields';
4
+ import { ViewContentFields } from './ViewContentFields';
5
+ export declare abstract class UserEventHandler<T> {
6
+ abstract testStarted(fields: T | TestStartedFields): Promise<void>;
7
+ abstract funnelStarted(fields: T | FunnelStartedFields): Promise<void>;
8
+ abstract viewContent(fields: T | ViewContentFields): Promise<void>;
9
+ abstract userClick(fields: T | UserClickFields): Promise<void>;
10
+ }
@@ -0,0 +1,8 @@
1
+ export declare class UtmFields {
2
+ private static localStorageId;
3
+ fields: Record<string, string>[];
4
+ constructor();
5
+ getUtmRecord: () => Record<string, string> | null;
6
+ update(): Record<string, string>[];
7
+ toString(): string;
8
+ }
@@ -0,0 +1,5 @@
1
+ import { CommonFields } from './CommonFields';
2
+ export interface ViewContentFields extends CommonFields {
3
+ name: string;
4
+ path: string;
5
+ }
@@ -0,0 +1,19 @@
1
+ export interface XyLabsTrackingEventJson {
2
+ cid: string;
3
+ create_time?: number;
4
+ email?: string;
5
+ email_hash?: string;
6
+ event?: string;
7
+ exids?: Record<string, string>;
8
+ fields?: Record<string, unknown>;
9
+ host?: string;
10
+ pathname?: string;
11
+ pixel?: string;
12
+ receive_time?: number;
13
+ rid?: string;
14
+ uid?: string;
15
+ utm?: Record<string, string>[] | Record<string, string[]>;
16
+ system?: unknown;
17
+ ip?: string;
18
+ ua?: string;
19
+ }
@@ -0,0 +1,12 @@
1
+ import { FunnelStartedFields } from './FunnelStartedFields';
2
+ import { TestStartedFields } from './TestStartedFields';
3
+ import { UserClickFields } from './UserClickFields';
4
+ import { UserEventHandler } from './UserEventHandler';
5
+ import { ViewContentFields } from './ViewContentFields';
6
+ export declare class XyUserEventHandler<T extends Record<string, unknown>> extends UserEventHandler<T> {
7
+ constructor();
8
+ testStarted(fields: T | TestStartedFields): Promise<void>;
9
+ funnelStarted(fields: T | FunnelStartedFields): Promise<void>;
10
+ viewContent(fields: T | ViewContentFields): Promise<void>;
11
+ userClick(fields: T | UserClickFields): Promise<void>;
12
+ }
@@ -0,0 +1 @@
1
+ export declare const getSystemInfo: () => import("bowser").Parser.ParsedResult | undefined;
@@ -0,0 +1,12 @@
1
+ export * from './Api';
2
+ export * from './FunnelStartedFields';
3
+ export * from './Pixel';
4
+ export * from './Referrer';
5
+ export * from './TestStartedFields';
6
+ export * from './UniqueUserId';
7
+ export * from './UserClickFields';
8
+ export * from './UserEventHandler';
9
+ export * from './UtmFields';
10
+ export * from './ViewContentFields';
11
+ export * from './XyLabsTrackingEventJson';
12
+ export * from './XyUserEventHandler';
@@ -0,0 +1,298 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var axios = require('axios');
6
+ var sdkJs = require('@xylabs/sdk-js');
7
+ var asyncMutex = require('async-mutex');
8
+ var Cookies = require('js-cookie');
9
+ var md5 = require('md5');
10
+ var bowser = require('bowser');
11
+ var randomBytes = require('randombytes');
12
+ var isEqual = require('lodash/isEqual');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
17
+ var Cookies__default = /*#__PURE__*/_interopDefaultLegacy(Cookies);
18
+ var md5__default = /*#__PURE__*/_interopDefaultLegacy(md5);
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
+ }
63
+
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() {
77
+ var _a, _b;
78
+ this.session = (_a = this.getFromSession()) !== null && _a !== void 0 ? _a : document.referrer;
79
+ sessionStorage.setItem(Referrer.storageId, this.session);
80
+ this.local = (_b = this.getFromLocal()) !== null && _b !== void 0 ? _b : document.referrer;
81
+ window.localStorage.setItem(Referrer.storageId, this.local);
82
+ }
83
+ getFromLocal() {
84
+ const value = window.localStorage.getItem(Referrer.storageId);
85
+ if (value && value.length > 0) {
86
+ return value;
87
+ }
88
+ }
89
+ getFromSession() {
90
+ const value = sessionStorage.getItem(Referrer.storageId);
91
+ if (value && value.length > 0) {
92
+ return value;
93
+ }
94
+ }
95
+ toJson() {
96
+ if ((this.local && this.local.length > 0) || (this.session && this.session.length > 0)) {
97
+ return {
98
+ local: this.local,
99
+ session: this.session,
100
+ };
101
+ }
102
+ }
103
+ }
104
+ Referrer.storageId = '_coin_referrer';
105
+
106
+ class UniqueUserId {
107
+ constructor() {
108
+ var _a;
109
+ this.id = (_a = window.localStorage.getItem(UniqueUserId.localStorageId)) !== null && _a !== void 0 ? _a : this.generateId();
110
+ window.localStorage.setItem(UniqueUserId.localStorageId, this.id);
111
+ }
112
+ generateId() {
113
+ return randomBytes__default["default"](16).toString('base64');
114
+ }
115
+ toString() {
116
+ return this.id;
117
+ }
118
+ }
119
+ UniqueUserId.localStorageId = '_coin_cid';
120
+
121
+ class UtmFields {
122
+ constructor() {
123
+ var _a;
124
+ this.fields = [];
125
+ this.getUtmRecord = () => {
126
+ var _a, _b;
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('_');
132
+ if (keyCategory === 'utm') {
133
+ record[keyName] = value;
134
+ }
135
+ });
136
+ return Object.keys(record).length > 0 ? record : null;
137
+ };
138
+ const storedString = (_a = window.localStorage.getItem(UtmFields.localStorageId)) !== null && _a !== void 0 ? _a : '[]';
139
+ try {
140
+ this.fields = JSON.parse(storedString);
141
+ }
142
+ catch (_b) {
143
+ this.fields = [];
144
+ }
145
+ //this clears the old object version if needed
146
+ if (!Array.isArray(this.fields)) {
147
+ this.fields = [];
148
+ }
149
+ this.update();
150
+ window.localStorage.setItem(UtmFields.localStorageId, JSON.stringify(this.fields));
151
+ }
152
+ //check the query string and if there an new/updated utm values, add them to the fields
153
+ update() {
154
+ var _a;
155
+ const record = this.getUtmRecord();
156
+ if (record) {
157
+ if (!isEqual__default["default"](this.fields[this.fields.length - 1], record)) {
158
+ this.fields.push(record);
159
+ }
160
+ }
161
+ return (_a = this.fields) !== null && _a !== void 0 ? _a : undefined;
162
+ }
163
+ toString() {
164
+ return JSON.stringify(this.fields);
165
+ }
166
+ }
167
+ UtmFields.localStorageId = '_coin_utm';
168
+
169
+ const emailHashLocalStorageName = 'xy_email_hash';
170
+ class XyPixel {
171
+ constructor(pixelId) {
172
+ this.queue = [];
173
+ this.cid = new UniqueUserId().id;
174
+ this.queueMutex = new asyncMutex.Mutex();
175
+ this.pixelId = pixelId;
176
+ this.email_hash = localStorage.getItem(emailHashLocalStorageName);
177
+ }
178
+ identify(email) {
179
+ this.email = email;
180
+ this.email_hash = email ? md5__default["default"](email) : undefined;
181
+ if (this.email_hash) {
182
+ localStorage.setItem(emailHashLocalStorageName, this.email_hash);
183
+ }
184
+ }
185
+ updateFbId() {
186
+ var _a;
187
+ this.exids = Object.assign({
188
+ fbc: Cookies__default["default"].get('_fbc'),
189
+ fbp: Cookies__default["default"].get('_fbp'),
190
+ ga: Cookies__default["default"].get('_ga'),
191
+ gclid: Cookies__default["default"].get('_gclid'),
192
+ rdt_uid: Cookies__default["default"].get('rdt_uid'),
193
+ scid: Cookies__default["default"].get('_scid'),
194
+ tt_sessionId: (_a = sessionStorage.getItem('tt_sessionId')) !== null && _a !== void 0 ? _a : undefined,
195
+ });
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
+ }
216
+ }
217
+ }));
218
+ });
219
+ }
220
+ send(event, fields) {
221
+ var _a;
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();
241
+ });
242
+ }
243
+ static get instance() {
244
+ return sdkJs.assertEx(this._instance, 'XyPixel uninitialized');
245
+ }
246
+ static init(pixelId) {
247
+ this._instance = new XyPixel(pixelId);
248
+ return this._instance;
249
+ }
250
+ static selectApi(api) {
251
+ this.api = api;
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();
261
+
262
+ class UserEventHandler {
263
+ }
264
+
265
+ class XyUserEventHandler extends UserEventHandler {
266
+ constructor() {
267
+ super();
268
+ }
269
+ testStarted(fields) {
270
+ return __awaiter(this, void 0, void 0, function* () {
271
+ return yield XyPixel.instance.send('TestStarted', fields);
272
+ });
273
+ }
274
+ funnelStarted(fields) {
275
+ return __awaiter(this, void 0, void 0, function* () {
276
+ return yield XyPixel.instance.send('FunnelStarted', fields);
277
+ });
278
+ }
279
+ viewContent(fields) {
280
+ return __awaiter(this, void 0, void 0, function* () {
281
+ return yield XyPixel.instance.send('ViewContent', fields);
282
+ });
283
+ }
284
+ userClick(fields) {
285
+ return __awaiter(this, void 0, void 0, function* () {
286
+ return yield XyPixel.instance.send('ViewPage', fields);
287
+ });
288
+ }
289
+ }
290
+
291
+ exports.PixelApi = PixelApi;
292
+ exports.Referrer = Referrer;
293
+ exports.UniqueUserId = UniqueUserId;
294
+ exports.UserEventHandler = UserEventHandler;
295
+ exports.UtmFields = UtmFields;
296
+ exports.XyPixel = XyPixel;
297
+ exports.XyUserEventHandler = XyUserEventHandler;
298
+ //# sourceMappingURL=index.js.map