@falcongames/falcon-playable-ads-sdk 1.1.8

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 (98) hide show
  1. package/README.md +272 -0
  2. package/dist/FalconPlayableSDK.d.ts +42 -0
  3. package/dist/FalconPlayableSDK.d.ts.map +1 -0
  4. package/dist/FalconPlayableSDK.js +208 -0
  5. package/dist/FalconPlayableSDK.js.map +1 -0
  6. package/dist/adNetworkNotifier.d.ts +4 -0
  7. package/dist/adNetworkNotifier.d.ts.map +1 -0
  8. package/dist/adNetworkNotifier.js +37 -0
  9. package/dist/adNetworkNotifier.js.map +1 -0
  10. package/dist/adNetworkUtils.d.ts +2 -0
  11. package/dist/adNetworkUtils.d.ts.map +1 -0
  12. package/dist/adNetworkUtils.js +23 -0
  13. package/dist/adNetworkUtils.js.map +1 -0
  14. package/dist/config/SDKConfig.d.ts +83 -0
  15. package/dist/config/SDKConfig.d.ts.map +1 -0
  16. package/dist/config/SDKConfig.js +218 -0
  17. package/dist/config/SDKConfig.js.map +1 -0
  18. package/dist/http_transport/event_core/CSHttpCoreEventMessage.d.ts +17 -0
  19. package/dist/http_transport/event_core/CSHttpCoreEventMessage.d.ts.map +1 -0
  20. package/dist/http_transport/event_core/CSHttpCoreEventMessage.js +76 -0
  21. package/dist/http_transport/event_core/CSHttpCoreEventMessage.js.map +1 -0
  22. package/dist/http_transport/http_core/CSHttpMessage.d.ts +18 -0
  23. package/dist/http_transport/http_core/CSHttpMessage.d.ts.map +1 -0
  24. package/dist/http_transport/http_core/CSHttpMessage.js +72 -0
  25. package/dist/http_transport/http_core/CSHttpMessage.js.map +1 -0
  26. package/dist/http_transport/http_core/FHttpMessage.d.ts +6 -0
  27. package/dist/http_transport/http_core/FHttpMessage.d.ts.map +1 -0
  28. package/dist/http_transport/http_core/FHttpMessage.js +17 -0
  29. package/dist/http_transport/http_core/FHttpMessage.js.map +1 -0
  30. package/dist/http_transport/http_core/FHttpMessageScanner.d.ts +23 -0
  31. package/dist/http_transport/http_core/FHttpMessageScanner.d.ts.map +1 -0
  32. package/dist/http_transport/http_core/FHttpMessageScanner.js +65 -0
  33. package/dist/http_transport/http_core/FHttpMessageScanner.js.map +1 -0
  34. package/dist/http_transport/http_core/SCHttpMessage.d.ts +8 -0
  35. package/dist/http_transport/http_core/SCHttpMessage.d.ts.map +1 -0
  36. package/dist/http_transport/http_core/SCHttpMessage.js +15 -0
  37. package/dist/http_transport/http_core/SCHttpMessage.js.map +1 -0
  38. package/dist/http_transport/playable_events/FPlayableEventManager.d.ts +52 -0
  39. package/dist/http_transport/playable_events/FPlayableEventManager.d.ts.map +1 -0
  40. package/dist/http_transport/playable_events/FPlayableEventManager.js +465 -0
  41. package/dist/http_transport/playable_events/FPlayableEventManager.js.map +1 -0
  42. package/dist/http_transport/playable_events/GlobalInteractionTracker.d.ts +11 -0
  43. package/dist/http_transport/playable_events/GlobalInteractionTracker.d.ts.map +1 -0
  44. package/dist/http_transport/playable_events/GlobalInteractionTracker.js +69 -0
  45. package/dist/http_transport/playable_events/GlobalInteractionTracker.js.map +1 -0
  46. package/dist/http_transport/playable_events/PlayableEventDefinitionCollection.d.ts +17 -0
  47. package/dist/http_transport/playable_events/PlayableEventDefinitionCollection.d.ts.map +1 -0
  48. package/dist/http_transport/playable_events/PlayableEventDefinitionCollection.js +84 -0
  49. package/dist/http_transport/playable_events/PlayableEventDefinitionCollection.js.map +1 -0
  50. package/dist/http_transport/playable_events/defaultNodes.d.ts +30 -0
  51. package/dist/http_transport/playable_events/defaultNodes.d.ts.map +1 -0
  52. package/dist/http_transport/playable_events/defaultNodes.js +26 -0
  53. package/dist/http_transport/playable_events/defaultNodes.js.map +1 -0
  54. package/dist/http_transport/playable_events/types.d.ts +31 -0
  55. package/dist/http_transport/playable_events/types.d.ts.map +1 -0
  56. package/dist/http_transport/playable_events/types.js +3 -0
  57. package/dist/http_transport/playable_events/types.js.map +1 -0
  58. package/dist/http_transport/types/EventTypes.d.ts +12 -0
  59. package/dist/http_transport/types/EventTypes.d.ts.map +1 -0
  60. package/dist/http_transport/types/EventTypes.js +13 -0
  61. package/dist/http_transport/types/EventTypes.js.map +1 -0
  62. package/dist/http_transport/utils/detectNetwork.d.ts +9 -0
  63. package/dist/http_transport/utils/detectNetwork.d.ts.map +1 -0
  64. package/dist/http_transport/utils/detectNetwork.js +22 -0
  65. package/dist/http_transport/utils/detectNetwork.js.map +1 -0
  66. package/dist/http_transport/utils/detectPlatform.d.ts +3 -0
  67. package/dist/http_transport/utils/detectPlatform.d.ts.map +1 -0
  68. package/dist/http_transport/utils/detectPlatform.js +21 -0
  69. package/dist/http_transport/utils/detectPlatform.js.map +1 -0
  70. package/dist/http_transport/utils/generateId.d.ts +2 -0
  71. package/dist/http_transport/utils/generateId.d.ts.map +1 -0
  72. package/dist/http_transport/utils/generateId.js +81 -0
  73. package/dist/http_transport/utils/generateId.js.map +1 -0
  74. package/dist/http_transport/utils/generateReferralCode.d.ts +11 -0
  75. package/dist/http_transport/utils/generateReferralCode.d.ts.map +1 -0
  76. package/dist/http_transport/utils/generateReferralCode.js +22 -0
  77. package/dist/http_transport/utils/generateReferralCode.js.map +1 -0
  78. package/dist/index.d.ts +18 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +38 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/storeRouter.d.ts +11 -0
  83. package/dist/storeRouter.d.ts.map +1 -0
  84. package/dist/storeRouter.js +149 -0
  85. package/dist/storeRouter.js.map +1 -0
  86. package/dist/types/index.d.ts +4 -0
  87. package/dist/types/index.d.ts.map +1 -0
  88. package/dist/types/index.js +9 -0
  89. package/dist/types/index.js.map +1 -0
  90. package/dist/utils/Logger.d.ts +11 -0
  91. package/dist/utils/Logger.d.ts.map +1 -0
  92. package/dist/utils/Logger.js +60 -0
  93. package/dist/utils/Logger.js.map +1 -0
  94. package/dist/utils/dispatchWindowCustomEvent.d.ts +2 -0
  95. package/dist/utils/dispatchWindowCustomEvent.d.ts.map +1 -0
  96. package/dist/utils/dispatchWindowCustomEvent.js +21 -0
  97. package/dist/utils/dispatchWindowCustomEvent.js.map +1 -0
  98. package/package.json +40 -0
@@ -0,0 +1,8 @@
1
+ import FHttpMessage from "./FHttpMessage";
2
+ declare class SCHttpMessage extends FHttpMessage {
3
+ static event: string;
4
+ constructor();
5
+ onData(): void;
6
+ }
7
+ export default SCHttpMessage;
8
+ //# sourceMappingURL=SCHttpMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SCHttpMessage.d.ts","sourceRoot":"","sources":["../../../src/http_transport/http_core/SCHttpMessage.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAa1C,cAAM,aAAc,SAAQ,YAAY;IACtC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;;IAKrB,MAAM,IAAI,IAAI;CAGf;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const FHttpMessage_1 = __importDefault(require("./FHttpMessage"));
7
+ class SCHttpMessage extends FHttpMessage_1.default {
8
+ constructor() {
9
+ super();
10
+ }
11
+ onData() {
12
+ }
13
+ }
14
+ exports.default = SCHttpMessage;
15
+ //# sourceMappingURL=SCHttpMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SCHttpMessage.js","sourceRoot":"","sources":["../../../src/http_transport/http_core/SCHttpMessage.ts"],"names":[],"mappings":";;;;;AAAA,kEAA0C;AAa1C,MAAM,aAAc,SAAQ,sBAAY;IAEtC;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM;IAEN,CAAC;CACF;AAED,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type { PlayableEventDefinition, PlayableEventDefinitionInput, PlayableEventHierarchyNode, PlayableEventHierarchy, PlayableEventNodeInput } from "./types";
2
+ export type { PlayableEventHierarchyNode, PlayableEventHierarchy, PlayableEventTreeNode, PlayableEventDefinition, PlayableEventNodeInput, PlayableEventDefinitionSeed, PlayableEventDefinitionInput, } from "./types";
3
+ export { DefaultPlayableEventNodes } from "./defaultNodes";
4
+ export { PlayableEventDefinitionCollection, getPlayableEventDefinitionCollection, createPlayableEventDefinitionCollection, registerPlayableEventNode as createPlayableEventNode, } from "./PlayableEventDefinitionCollection";
5
+ declare class FPlayableEventManager {
6
+ private fEvent2SeqNo;
7
+ private eventNodes;
8
+ private eventDefinitions;
9
+ private lastLoggedEventIdByType;
10
+ private timestampAtStart;
11
+ private timestampAtFirstFrame;
12
+ private hasSentFirstInteraction;
13
+ private sessionId;
14
+ private config;
15
+ private platform;
16
+ private loadedEventId;
17
+ private firstFrameEventId;
18
+ private firstInteractionEventId;
19
+ private lastCustomEventId;
20
+ private endGameEventId;
21
+ private ctaEventId;
22
+ private referralCode;
23
+ getReferralCode(): string;
24
+ constructor();
25
+ private sendEvent;
26
+ loaded(): PlayableEventHierarchyNode | null;
27
+ frame(): PlayableEventHierarchyNode | null;
28
+ internalClick(): PlayableEventHierarchyNode | null;
29
+ cta(): PlayableEventHierarchyNode | null;
30
+ endGame(): PlayableEventHierarchyNode | null;
31
+ logEvent(event: PlayableEventNodeInput): PlayableEventHierarchyNode | null;
32
+ defineEventNode<T extends string>(event: PlayableEventDefinitionInput<T>): PlayableEventDefinition;
33
+ defineEventNodes(definitions?: Iterable<PlayableEventDefinitionInput>): PlayableEventDefinition[];
34
+ getEventDefinitions(): PlayableEventDefinition[];
35
+ getEventHierarchy(): PlayableEventHierarchy;
36
+ reset(): void;
37
+ private createEventId;
38
+ private registerRuntimeEventNode;
39
+ private resolveOrDefineEvent;
40
+ private storeEventDefinition;
41
+ private assertNoCycle;
42
+ private normalizeDefinitionInput;
43
+ private resolveDefinitionParentKey;
44
+ private buildEventDefinition;
45
+ private resolveDefinitionParentEventId;
46
+ private resolveParentEventId;
47
+ private getDefaultCustomParentEventId;
48
+ private registerDefaultDefinitions;
49
+ }
50
+ declare const _default: FPlayableEventManager;
51
+ export default _default;
52
+ //# sourceMappingURL=FPlayableEventManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FPlayableEventManager.d.ts","sourceRoot":"","sources":["../../../src/http_transport/playable_events/FPlayableEventManager.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,sBAAsB,EAEtB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AASjB,YAAY,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,iCAAiC,EACjC,oCAAoC,EACpC,uCAAuC,EACvC,yBAAyB,IAAI,uBAAuB,GACrD,MAAM,qCAAqC,CAAC;AAa7C,cAAM,qBAAqB;IACzB,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,UAAU,CAAiD;IACnE,OAAO,CAAC,gBAAgB,CAGpB;IACJ,OAAO,CAAC,uBAAuB,CAA6B;IAE5D,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,qBAAqB,CAAuB;IACpD,OAAO,CAAC,uBAAuB,CAAkB;IACjD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,uBAAuB,CAAuB;IACtD,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,YAAY,CAAuB;IAEpC,eAAe,IAAI,MAAM;;IAmBhC,OAAO,CAAC,SAAS;IA0EV,MAAM,IAAI,0BAA0B,GAAG,IAAI;IAuB3C,KAAK,IAAI,0BAA0B,GAAG,IAAI;IAY1C,aAAa,IAAI,0BAA0B,GAAG,IAAI;IAqBlD,GAAG,IAAI,0BAA0B,GAAG,IAAI;IAcxC,OAAO,IAAI,0BAA0B,GAAG,IAAI;IAgB5C,QAAQ,CACb,KAAK,EAAE,sBAAsB,GAC5B,0BAA0B,GAAG,IAAI;IAc7B,eAAe,CAAC,CAAC,SAAS,MAAM,EACrC,KAAK,EAAE,4BAA4B,CAAC,CAAC,CAAC,GACrC,uBAAuB;IAKnB,gBAAgB,CACrB,WAAW,GAAE,QAAQ,CAAC,4BAA4B,CAA0C,GAC3F,uBAAuB,EAAE;IAQrB,mBAAmB,IAAI,uBAAuB,EAAE;IAMhD,iBAAiB,IAAI,sBAAsB;IA0D3C,KAAK,IAAI,IAAI;IAmBpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,wBAAwB;IAchC,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,8BAA8B;IAoBtC,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,6BAA6B;IASrC,OAAO,CAAC,0BAA0B;CAuBnC;;AAED,wBAA2C"}
@@ -0,0 +1,465 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createPlayableEventNode = exports.createPlayableEventDefinitionCollection = exports.getPlayableEventDefinitionCollection = exports.PlayableEventDefinitionCollection = exports.DefaultPlayableEventNodes = void 0;
7
+ const CSHttpCoreEventMessage_1 = __importDefault(require("../event_core/CSHttpCoreEventMessage"));
8
+ const generateId_1 = __importDefault(require("../utils/generateId"));
9
+ const SDKConfig_1 = require("../../config/SDKConfig");
10
+ const detectPlatform_1 = __importDefault(require("../utils/detectPlatform"));
11
+ const dispatchWindowCustomEvent_1 = __importDefault(require("../../utils/dispatchWindowCustomEvent"));
12
+ const Logger_1 = __importDefault(require("../../utils/Logger"));
13
+ const defaultNodes_1 = require("./defaultNodes");
14
+ const PlayableEventDefinitionCollection_1 = require("./PlayableEventDefinitionCollection");
15
+ const generateReferralCode_1 = __importDefault(require("../utils/generateReferralCode"));
16
+ var defaultNodes_2 = require("./defaultNodes");
17
+ Object.defineProperty(exports, "DefaultPlayableEventNodes", { enumerable: true, get: function () { return defaultNodes_2.DefaultPlayableEventNodes; } });
18
+ var PlayableEventDefinitionCollection_2 = require("./PlayableEventDefinitionCollection");
19
+ Object.defineProperty(exports, "PlayableEventDefinitionCollection", { enumerable: true, get: function () { return PlayableEventDefinitionCollection_2.PlayableEventDefinitionCollection; } });
20
+ Object.defineProperty(exports, "getPlayableEventDefinitionCollection", { enumerable: true, get: function () { return PlayableEventDefinitionCollection_2.getPlayableEventDefinitionCollection; } });
21
+ Object.defineProperty(exports, "createPlayableEventDefinitionCollection", { enumerable: true, get: function () { return PlayableEventDefinitionCollection_2.createPlayableEventDefinitionCollection; } });
22
+ Object.defineProperty(exports, "createPlayableEventNode", { enumerable: true, get: function () { return PlayableEventDefinitionCollection_2.registerPlayableEventNode; } });
23
+ class FPlayableEventManager {
24
+ getReferralCode() {
25
+ if (!this.referralCode) {
26
+ this.referralCode = (0, generateReferralCode_1.default)({
27
+ appId: this.config.appId,
28
+ campaignId: this.config.campaignId,
29
+ creativeId: this.config.creativeId,
30
+ sessionId: this.sessionId,
31
+ adNetwork: this.config.adNetwork,
32
+ conceptId: this.config.conceptId,
33
+ });
34
+ }
35
+ return this.referralCode;
36
+ }
37
+ constructor() {
38
+ Object.defineProperty(this, "fEvent2SeqNo", {
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true,
42
+ value: new Map()
43
+ });
44
+ Object.defineProperty(this, "eventNodes", {
45
+ enumerable: true,
46
+ configurable: true,
47
+ writable: true,
48
+ value: new Map()
49
+ });
50
+ Object.defineProperty(this, "eventDefinitions", {
51
+ enumerable: true,
52
+ configurable: true,
53
+ writable: true,
54
+ value: new Map()
55
+ });
56
+ Object.defineProperty(this, "lastLoggedEventIdByType", {
57
+ enumerable: true,
58
+ configurable: true,
59
+ writable: true,
60
+ value: new Map()
61
+ });
62
+ Object.defineProperty(this, "timestampAtStart", {
63
+ enumerable: true,
64
+ configurable: true,
65
+ writable: true,
66
+ value: null
67
+ });
68
+ Object.defineProperty(this, "timestampAtFirstFrame", {
69
+ enumerable: true,
70
+ configurable: true,
71
+ writable: true,
72
+ value: null
73
+ });
74
+ Object.defineProperty(this, "hasSentFirstInteraction", {
75
+ enumerable: true,
76
+ configurable: true,
77
+ writable: true,
78
+ value: false
79
+ });
80
+ Object.defineProperty(this, "sessionId", {
81
+ enumerable: true,
82
+ configurable: true,
83
+ writable: true,
84
+ value: null
85
+ });
86
+ Object.defineProperty(this, "config", {
87
+ enumerable: true,
88
+ configurable: true,
89
+ writable: true,
90
+ value: void 0
91
+ });
92
+ Object.defineProperty(this, "platform", {
93
+ enumerable: true,
94
+ configurable: true,
95
+ writable: true,
96
+ value: "unknown"
97
+ });
98
+ Object.defineProperty(this, "loadedEventId", {
99
+ enumerable: true,
100
+ configurable: true,
101
+ writable: true,
102
+ value: null
103
+ });
104
+ Object.defineProperty(this, "firstFrameEventId", {
105
+ enumerable: true,
106
+ configurable: true,
107
+ writable: true,
108
+ value: null
109
+ });
110
+ Object.defineProperty(this, "firstInteractionEventId", {
111
+ enumerable: true,
112
+ configurable: true,
113
+ writable: true,
114
+ value: null
115
+ });
116
+ Object.defineProperty(this, "lastCustomEventId", {
117
+ enumerable: true,
118
+ configurable: true,
119
+ writable: true,
120
+ value: null
121
+ });
122
+ Object.defineProperty(this, "endGameEventId", {
123
+ enumerable: true,
124
+ configurable: true,
125
+ writable: true,
126
+ value: null
127
+ });
128
+ Object.defineProperty(this, "ctaEventId", {
129
+ enumerable: true,
130
+ configurable: true,
131
+ writable: true,
132
+ value: null
133
+ });
134
+ Object.defineProperty(this, "referralCode", {
135
+ enumerable: true,
136
+ configurable: true,
137
+ writable: true,
138
+ value: null
139
+ });
140
+ this.config = SDKConfig_1.SDKConfiguration.getInstance();
141
+ this.reset();
142
+ }
143
+ sendEvent(node, options = {}) {
144
+ const { isDefault = false, parentEventId = null } = options;
145
+ const nodeKey = node.key;
146
+ if (this.fEvent2SeqNo.has(defaultNodes_1.DefaultPlayableEventNodes.END_GAME.key) &&
147
+ nodeKey !== defaultNodes_1.DefaultPlayableEventNodes.CTA.key) {
148
+ return null;
149
+ }
150
+ const seqNo = this.fEvent2SeqNo.get(nodeKey) ?? 1;
151
+ this.fEvent2SeqNo.set(nodeKey, seqNo + 1);
152
+ const now = Date.now();
153
+ if (this.timestampAtStart === null) {
154
+ this.timestampAtStart = now;
155
+ }
156
+ if (nodeKey === defaultNodes_1.DefaultPlayableEventNodes.FRAME.key &&
157
+ this.timestampAtFirstFrame === null) {
158
+ this.timestampAtFirstFrame = now;
159
+ }
160
+ const resolvedEventId = this.createEventId();
161
+ const eventNode = this.registerRuntimeEventNode({
162
+ eventId: resolvedEventId,
163
+ parentEventId,
164
+ node,
165
+ seqNo,
166
+ isDefault,
167
+ childrenEventIds: [],
168
+ });
169
+ const eventData = {
170
+ sessionId: this.sessionId,
171
+ paEvent: nodeKey,
172
+ seqNo: seqNo,
173
+ appId: this.config.appId,
174
+ campaignId: this.config.campaignId,
175
+ creativeId: this.config.creativeId,
176
+ conceptId: this.config.conceptId,
177
+ platform: this.platform,
178
+ adNetwork: this.config.adNetwork || null,
179
+ };
180
+ new CSHttpCoreEventMessage_1.default(eventData).send();
181
+ Logger_1.default.event(nodeKey, {
182
+ ...eventData,
183
+ eventId: eventNode.eventId,
184
+ parentEventId: eventNode.parentEventId,
185
+ });
186
+ this.lastLoggedEventIdByType.set(nodeKey, eventNode.eventId);
187
+ return eventNode;
188
+ }
189
+ loaded() {
190
+ const eventNode = this.sendEvent(defaultNodes_1.DefaultPlayableEventNodes.LOADED, {
191
+ isDefault: true,
192
+ parentEventId: this.resolveParentEventId(defaultNodes_1.DefaultPlayableEventNodes.LOADED),
193
+ });
194
+ if (eventNode && this.loadedEventId === null) {
195
+ this.loadedEventId = eventNode.eventId;
196
+ }
197
+ (0, dispatchWindowCustomEvent_1.default)("pa:loaded");
198
+ return eventNode;
199
+ }
200
+ frame() {
201
+ const eventNode = this.sendEvent(defaultNodes_1.DefaultPlayableEventNodes.FRAME, {
202
+ isDefault: true,
203
+ parentEventId: this.resolveParentEventId(defaultNodes_1.DefaultPlayableEventNodes.FRAME),
204
+ });
205
+ if (eventNode && this.firstFrameEventId === null) {
206
+ this.firstFrameEventId = eventNode.eventId;
207
+ }
208
+ (0, dispatchWindowCustomEvent_1.default)("pa:frame");
209
+ return eventNode;
210
+ }
211
+ internalClick() {
212
+ let eventNode = null;
213
+ if (!this.hasSentFirstInteraction) {
214
+ this.hasSentFirstInteraction = true;
215
+ eventNode = this.sendEvent(defaultNodes_1.DefaultPlayableEventNodes.INTERACTION, {
216
+ isDefault: true,
217
+ parentEventId: this.resolveParentEventId(defaultNodes_1.DefaultPlayableEventNodes.INTERACTION),
218
+ });
219
+ if (eventNode && this.firstInteractionEventId === null) {
220
+ this.firstInteractionEventId = eventNode.eventId;
221
+ }
222
+ (0, dispatchWindowCustomEvent_1.default)("pa:interaction");
223
+ }
224
+ return eventNode;
225
+ }
226
+ cta() {
227
+ (0, dispatchWindowCustomEvent_1.default)("pa:cta");
228
+ if (this.fEvent2SeqNo.has(defaultNodes_1.DefaultPlayableEventNodes.CTA.key))
229
+ return null;
230
+ const eventNode = this.sendEvent(defaultNodes_1.DefaultPlayableEventNodes.CTA, {
231
+ isDefault: true,
232
+ parentEventId: this.resolveParentEventId(defaultNodes_1.DefaultPlayableEventNodes.CTA),
233
+ });
234
+ if (eventNode && this.ctaEventId === null) {
235
+ this.ctaEventId = eventNode.eventId;
236
+ }
237
+ return eventNode;
238
+ }
239
+ endGame() {
240
+ if (this.fEvent2SeqNo.has(defaultNodes_1.DefaultPlayableEventNodes.END_GAME.key))
241
+ return null;
242
+ const eventNode = this.sendEvent(defaultNodes_1.DefaultPlayableEventNodes.END_GAME, {
243
+ isDefault: true,
244
+ parentEventId: this.resolveParentEventId(defaultNodes_1.DefaultPlayableEventNodes.END_GAME),
245
+ });
246
+ if (eventNode && this.endGameEventId === null) {
247
+ this.endGameEventId = eventNode.eventId;
248
+ }
249
+ (0, dispatchWindowCustomEvent_1.default)("pa:end_game");
250
+ return eventNode;
251
+ }
252
+ logEvent(event) {
253
+ const definition = this.resolveOrDefineEvent(event);
254
+ const eventNode = this.sendEvent(definition, {
255
+ isDefault: definition?.isDefault ?? false,
256
+ parentEventId: this.resolveParentEventId(definition),
257
+ });
258
+ if (eventNode) {
259
+ this.lastCustomEventId = eventNode.eventId;
260
+ }
261
+ return eventNode;
262
+ }
263
+ defineEventNode(event) {
264
+ (0, PlayableEventDefinitionCollection_1.getPlayableEventDefinitionCollection)().add(event);
265
+ return this.storeEventDefinition(event);
266
+ }
267
+ defineEventNodes(definitions = (0, PlayableEventDefinitionCollection_1.getPlayableEventDefinitionCollection)()) {
268
+ const result = [];
269
+ for (const definition of definitions) {
270
+ result.push(this.defineEventNode(definition));
271
+ }
272
+ return result;
273
+ }
274
+ getEventDefinitions() {
275
+ return Array.from(this.eventDefinitions.values()).map((definition) => this.buildEventDefinition(definition.nodeKey));
276
+ }
277
+ getEventHierarchy() {
278
+ for (const def of (0, PlayableEventDefinitionCollection_1.getPlayableEventDefinitionCollection)()) {
279
+ if (!this.eventDefinitions.has(def.key)) {
280
+ this.storeEventDefinition(def);
281
+ }
282
+ }
283
+ const endGameKey = defaultNodes_1.DefaultPlayableEventNodes.END_GAME.key;
284
+ const ctaKey = defaultNodes_1.DefaultPlayableEventNodes.CTA.key;
285
+ const terminalKeys = new Set([endGameKey, ctaKey]);
286
+ const treeMap = new Map();
287
+ for (const def of this.eventDefinitions.values()) {
288
+ if (terminalKeys.has(def.nodeKey))
289
+ continue;
290
+ treeMap.set(def.nodeKey, {
291
+ eventId: def.nodeKey,
292
+ parentEventId: def.parentNodeKey,
293
+ isDefault: def.isDefault,
294
+ children: [],
295
+ });
296
+ }
297
+ const root = [];
298
+ for (const treeNode of treeMap.values()) {
299
+ if (treeNode.parentEventId === null) {
300
+ root.push(treeNode);
301
+ }
302
+ else {
303
+ const parent = treeMap.get(treeNode.parentEventId);
304
+ if (parent) {
305
+ parent.children.push(treeNode);
306
+ }
307
+ else {
308
+ root.push(treeNode);
309
+ }
310
+ }
311
+ }
312
+ const ctaNode = {
313
+ eventId: ctaKey,
314
+ parentEventId: endGameKey,
315
+ isDefault: true,
316
+ children: [],
317
+ };
318
+ const terminalNode = {
319
+ eventId: endGameKey,
320
+ parentEventId: null,
321
+ isDefault: true,
322
+ children: [ctaNode],
323
+ };
324
+ return { root, terminalNode };
325
+ }
326
+ reset() {
327
+ this.fEvent2SeqNo.clear();
328
+ this.eventNodes.clear();
329
+ this.eventDefinitions.clear();
330
+ this.lastLoggedEventIdByType.clear();
331
+ this.timestampAtStart = null;
332
+ this.timestampAtFirstFrame = null;
333
+ this.hasSentFirstInteraction = false;
334
+ this.sessionId = (0, generateId_1.default)();
335
+ this.platform = (0, detectPlatform_1.default)();
336
+ this.loadedEventId = null;
337
+ this.firstFrameEventId = null;
338
+ this.firstInteractionEventId = null;
339
+ this.lastCustomEventId = null;
340
+ this.endGameEventId = null;
341
+ this.ctaEventId = null;
342
+ this.registerDefaultDefinitions();
343
+ }
344
+ createEventId() {
345
+ return (0, generateId_1.default)();
346
+ }
347
+ registerRuntimeEventNode(eventNode) {
348
+ this.eventNodes.set(eventNode.eventId, eventNode);
349
+ if (eventNode.parentEventId) {
350
+ const parentNode = this.eventNodes.get(eventNode.parentEventId);
351
+ if (parentNode &&
352
+ !parentNode.childrenEventIds.includes(eventNode.eventId)) {
353
+ parentNode.childrenEventIds.push(eventNode.eventId);
354
+ }
355
+ }
356
+ return eventNode;
357
+ }
358
+ resolveOrDefineEvent(event) {
359
+ const definition = this.eventDefinitions.get(event.key);
360
+ return definition
361
+ ? this.buildEventDefinition(definition.nodeKey)
362
+ : this.storeEventDefinition(event);
363
+ }
364
+ storeEventDefinition(event) {
365
+ const registeredDefinition = this.normalizeDefinitionInput(event);
366
+ this.assertNoCycle(registeredDefinition.nodeKey, registeredDefinition.parentNodeKey);
367
+ this.eventDefinitions.set(registeredDefinition.nodeKey, registeredDefinition);
368
+ return this.buildEventDefinition(registeredDefinition.nodeKey);
369
+ }
370
+ assertNoCycle(nodeKey, parentNodeKey) {
371
+ let current = parentNodeKey;
372
+ while (current !== null) {
373
+ if (current === nodeKey) {
374
+ throw new Error(`Circular event definition detected: "${nodeKey}" is an ancestor of itself.`);
375
+ }
376
+ current = this.eventDefinitions.get(current)?.parentNodeKey ?? null;
377
+ }
378
+ }
379
+ normalizeDefinitionInput(event) {
380
+ const parentInput = "parent" in event ? event.parent : undefined;
381
+ const parentNodeKey = this.resolveDefinitionParentKey(parentInput);
382
+ const existing = this.eventDefinitions.get(event.key);
383
+ return Object.freeze({
384
+ nodeKey: event.key,
385
+ parentNodeKey,
386
+ isDefault: event.isDefault ?? existing?.isDefault ?? false,
387
+ });
388
+ }
389
+ resolveDefinitionParentKey(parent) {
390
+ if (parent === undefined) {
391
+ return defaultNodes_1.DefaultPlayableEventNodes.INTERACTION.key;
392
+ }
393
+ if (parent === null) {
394
+ return null;
395
+ }
396
+ if (!this.eventDefinitions.has(parent.key)) {
397
+ this.storeEventDefinition(parent);
398
+ }
399
+ return parent.key;
400
+ }
401
+ buildEventDefinition(nodeKey, visited = new Set()) {
402
+ if (visited.has(nodeKey)) {
403
+ Logger_1.default.warn("EventHierarchy", `Circular event definition detected at "${nodeKey}". Parent will be ignored.`);
404
+ return (0, defaultNodes_1.freezeEventDefinition)(nodeKey, null, false);
405
+ }
406
+ const definition = this.eventDefinitions.get(nodeKey);
407
+ if (!definition) {
408
+ return (0, defaultNodes_1.freezeEventDefinition)(nodeKey, null, false);
409
+ }
410
+ visited.add(nodeKey);
411
+ const parent = definition.parentNodeKey
412
+ ? this.buildEventDefinition(definition.parentNodeKey, visited)
413
+ : null;
414
+ visited.delete(nodeKey);
415
+ return (0, defaultNodes_1.freezeEventDefinition)(definition.nodeKey, parent, definition.isDefault);
416
+ }
417
+ resolveDefinitionParentEventId(parentNodeKey) {
418
+ if (!parentNodeKey) {
419
+ return null;
420
+ }
421
+ const directParentEventId = this.lastLoggedEventIdByType.get(parentNodeKey);
422
+ if (directParentEventId) {
423
+ return directParentEventId;
424
+ }
425
+ const parentDefinition = this.eventDefinitions.get(parentNodeKey);
426
+ if (!parentDefinition) {
427
+ return this.getDefaultCustomParentEventId();
428
+ }
429
+ return this.resolveDefinitionParentEventId(parentDefinition.parentNodeKey);
430
+ }
431
+ resolveParentEventId(event) {
432
+ if (event.key === defaultNodes_1.DefaultPlayableEventNodes.LOADED.key) {
433
+ return null;
434
+ }
435
+ if (event.key === defaultNodes_1.DefaultPlayableEventNodes.END_GAME.key) {
436
+ return this.lastCustomEventId ?? this.getDefaultCustomParentEventId();
437
+ }
438
+ if (event.key === defaultNodes_1.DefaultPlayableEventNodes.CTA.key) {
439
+ return (this.endGameEventId ??
440
+ this.resolveParentEventId(defaultNodes_1.DefaultPlayableEventNodes.END_GAME));
441
+ }
442
+ const definition = this.normalizeDefinitionInput(event);
443
+ return this.resolveDefinitionParentEventId(definition.parentNodeKey);
444
+ }
445
+ getDefaultCustomParentEventId() {
446
+ return (this.lastCustomEventId ??
447
+ this.firstInteractionEventId ??
448
+ this.firstFrameEventId ??
449
+ this.loadedEventId);
450
+ }
451
+ registerDefaultDefinitions() {
452
+ const defaultDefinitions = [
453
+ defaultNodes_1.DefaultPlayableEventNodes.LOADED,
454
+ defaultNodes_1.DefaultPlayableEventNodes.FRAME,
455
+ defaultNodes_1.DefaultPlayableEventNodes.INTERACTION,
456
+ defaultNodes_1.DefaultPlayableEventNodes.END_GAME,
457
+ defaultNodes_1.DefaultPlayableEventNodes.CTA,
458
+ ];
459
+ for (const definition of defaultDefinitions) {
460
+ this.storeEventDefinition(definition);
461
+ }
462
+ }
463
+ }
464
+ exports.default = new FPlayableEventManager();
465
+ //# sourceMappingURL=FPlayableEventManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FPlayableEventManager.js","sourceRoot":"","sources":["../../../src/http_transport/playable_events/FPlayableEventManager.ts"],"names":[],"mappings":";;;;;;AAAA,kGAA0E;AAC1E,qEAA6C;AAC7C,sDAA0D;AAC1D,6EAAqD;AACrD,sGAA8E;AAC9E,gEAAwC;AAUxC,iDAGwB;AACxB,2FAA2F;AAC3F,yFAAiE;AAYjE,+CAA2D;AAAlD,yHAAA,yBAAyB,OAAA;AAClC,yFAK6C;AAJ3C,sJAAA,iCAAiC,OAAA;AACjC,yJAAA,oCAAoC,OAAA;AACpC,4JAAA,uCAAuC,OAAA;AACvC,4IAAA,yBAAyB,OAA2B;AActD,MAAM,qBAAqB;IAuBlB,eAAe;QACpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAA,8BAAoB,EAAC;gBACvC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACxB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAClC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAClC,SAAS,EAAE,IAAI,CAAC,SAAU;gBAC1B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;aACjC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;QApCQ;;;;mBAAe,IAAI,GAAG,EAAkB;WAAC;QACzC;;;;mBAAa,IAAI,GAAG,EAAsC;WAAC;QAC3D;;;;mBAAmB,IAAI,GAAG,EAG/B;WAAC;QACI;;;;mBAA0B,IAAI,GAAG,EAAkB;WAAC;QAEpD;;;;mBAAkC,IAAI;WAAC;QACvC;;;;mBAAuC,IAAI;WAAC;QAC5C;;;;mBAAmC,KAAK;WAAC;QACzC;;;;mBAA2B,IAAI;WAAC;QAChC;;;;;WAAyB;QACzB;;;;mBAAmB,SAAS;WAAC;QAC7B;;;;mBAA+B,IAAI;WAAC;QACpC;;;;mBAAmC,IAAI;WAAC;QACxC;;;;mBAAyC,IAAI;WAAC;QAC9C;;;;mBAAmC,IAAI;WAAC;QACxC;;;;mBAAgC,IAAI;WAAC;QACrC;;;;mBAA4B,IAAI;WAAC;QACjC;;;;mBAA8B,IAAI;WAAC;QAiBzC,IAAI,CAAC,MAAM,GAAG,4BAAgB,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEO,SAAS,CACf,IAA6B,EAC7B,UAA4B,EAAE;QAE9B,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;QAEzB,IACE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wCAAyB,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC7D,OAAO,KAAK,wCAAyB,CAAC,GAAG,CAAC,GAAG,EAC7C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAE1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC9B,CAAC;QAED,IACE,OAAO,KAAK,wCAAyB,CAAC,KAAK,CAAC,GAAG;YAC/C,IAAI,CAAC,qBAAqB,KAAK,IAAI,EACnC,CAAC;YACD,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;QACnC,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC9C,OAAO,EAAE,eAAe;YACxB,aAAa;YACb,IAAI;YACJ,KAAK;YACL,SAAS;YACT,gBAAgB,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,KAAK;YASZ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;YACxB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI;SACzC,CAAC;QAEF,IAAI,gCAAsB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QAE7C,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE;YACpB,GAAG,SAAS;YACZ,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,aAAa,EAAE,SAAS,CAAC,aAAa;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IAMM,MAAM;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,wCAAyB,CAAC,MAAM,EAAE;YACjE,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,oBAAoB,CACtC,wCAAyB,CAAC,MAAM,CACjC;SACF,CAAC,CAAC;QACH,IAAI,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC7C,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC;QACzC,CAAC;QACD,IAAA,mCAAyB,EAAC,WAAW,CAAC,CAAC;QAEvC,OAAO,SAAS,CAAC;IACnB,CAAC;IAUM,KAAK;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,wCAAyB,CAAC,KAAK,EAAE;YAChE,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,oBAAoB,CAAC,wCAAyB,CAAC,KAAK,CAAC;SAC1E,CAAC,CAAC;QACH,IAAI,SAAS,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,OAAO,CAAC;QAC7C,CAAC;QACD,IAAA,mCAAyB,EAAC,UAAU,CAAC,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,aAAa;QAClB,IAAI,SAAS,GAAsC,IAAI,CAAC;QAExD,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACpC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,wCAAyB,CAAC,WAAW,EAAE;gBAChE,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,IAAI,CAAC,oBAAoB,CACtC,wCAAyB,CAAC,WAAW,CACtC;aACF,CAAC,CAAC;YACH,IAAI,SAAS,IAAI,IAAI,CAAC,uBAAuB,KAAK,IAAI,EAAE,CAAC;gBACvD,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC,OAAO,CAAC;YACnD,CAAC;YACD,IAAA,mCAAyB,EAAC,gBAAgB,CAAC,CAAC;QAC9C,CAAC;QAGD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,GAAG;QACR,IAAA,mCAAyB,EAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wCAAyB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,wCAAyB,CAAC,GAAG,EAAE;YAC9D,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,oBAAoB,CAAC,wCAAyB,CAAC,GAAG,CAAC;SACxE,CAAC,CAAC;QACH,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC;QACtC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,OAAO;QACZ,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wCAAyB,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,wCAAyB,CAAC,QAAQ,EAAE;YACnE,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,oBAAoB,CACtC,wCAAyB,CAAC,QAAQ,CACnC;SACF,CAAC,CAAC;QACH,IAAI,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC;QAC1C,CAAC;QACD,IAAA,mCAAyB,EAAC,aAAa,CAAC,CAAC;QACzC,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,QAAQ,CACb,KAA6B;QAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YAC3C,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,KAAK;YACzC,aAAa,EAAE,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;SACrD,CAAC,CAAC;QAEH,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,OAAO,CAAC;QAC7C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,eAAe,CACpB,KAAsC;QAEtC,IAAA,wEAAoC,GAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEM,gBAAgB,CACrB,cAAsD,IAAA,wEAAoC,GAAE;QAE5F,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,mBAAmB;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACnE,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,CAC9C,CAAC;IACJ,CAAC;IAEM,iBAAiB;QAEtB,KAAK,MAAM,GAAG,IAAI,IAAA,wEAAoC,GAAE,EAAE,CAAC;YACzD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,wCAAyB,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC1D,MAAM,MAAM,GAAG,wCAAyB,CAAC,GAAG,CAAC,GAAG,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiC,CAAC;QAGzD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,SAAS;YAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE;gBACvB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;QACL,CAAC;QAGD,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACnD,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAGD,MAAM,OAAO,GAA0B;YACrC,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,UAAU;YACzB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,YAAY,GAA0B;YAC1C,OAAO,EAAE,UAAU;YACnB,aAAa,EAAE,IAAI;YACnB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB,CAAC;QAEF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAChC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAA,oBAAU,GAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAA,wBAAc,GAAE,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACpC,CAAC;IAEO,aAAa;QACnB,OAAO,IAAA,oBAAU,GAAE,CAAC;IACtB,CAAC;IAEO,wBAAwB,CAC9B,SAAqC;QAErC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAElD,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAChE,IACE,UAAU;gBACV,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EACxD,CAAC;gBACD,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,oBAAoB,CAC1B,KAA6B;QAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,OAAO,UAAU;YACf,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC;YAC/C,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,oBAAoB,CAC1B,KAAmC;QAEnC,MAAM,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,aAAa,CAChB,oBAAoB,CAAC,OAAO,EAC5B,oBAAoB,CAAC,aAAa,CACnC,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACvB,oBAAoB,CAAC,OAAO,EAC5B,oBAAoB,CACrB,CAAC;QACF,OAAO,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IAEO,aAAa,CAAC,OAAe,EAAE,aAA4B;QACjE,IAAI,OAAO,GAAG,aAAa,CAAC;QAC5B,OAAO,OAAO,KAAK,IAAI,EAAE,CAAC;YACxB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,wCAAwC,OAAO,6BAA6B,CAC7E,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,aAAa,IAAI,IAAI,CAAC;QACtE,CAAC;IACH,CAAC;IAEO,wBAAwB,CAC9B,KAAmC;QAEnC,MAAM,WAAW,GAAG,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,MAAM,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEtD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,KAAK,CAAC,GAAG;YAClB,aAAa;YACb,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS,IAAI,KAAK;SAC3D,CAAC,CAAC;IACL,CAAC;IAEO,0BAA0B,CAChC,MAAkD;QAElD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,wCAAyB,CAAC,WAAW,CAAC,GAAG,CAAC;QACnD,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAEO,oBAAoB,CAC1B,OAAe,EACf,UAAU,IAAI,GAAG,EAAU;QAE3B,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,gBAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,0CAA0C,OAAO,4BAA4B,CAC9E,CAAC;YACF,OAAO,IAAA,oCAAqB,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAA,oCAAqB,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa;YACrC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC;YAC9D,CAAC,CAAC,IAAI,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExB,OAAO,IAAA,oCAAqB,EAC1B,UAAU,CAAC,OAAO,EAClB,MAAM,EACN,UAAU,CAAC,SAAS,CACrB,CAAC;IACJ,CAAC;IAEO,8BAA8B,CACpC,aAA4B;QAE5B,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5E,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC7E,CAAC;IAEO,oBAAoB,CAAC,KAA8B;QACzD,IAAI,KAAK,CAAC,GAAG,KAAK,wCAAyB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,wCAAyB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACxE,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,wCAAyB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACpD,OAAO,CACL,IAAI,CAAC,cAAc;gBACnB,IAAI,CAAC,oBAAoB,CAAC,wCAAyB,CAAC,QAAQ,CAAC,CAC9D,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACvE,CAAC;IAEO,6BAA6B;QACnC,OAAO,CACL,IAAI,CAAC,iBAAiB;YACtB,IAAI,CAAC,uBAAuB;YAC5B,IAAI,CAAC,iBAAiB;YACtB,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAEO,0BAA0B;QAChC,MAAM,kBAAkB,GAA8B;YACpD,wCAAyB,CAAC,MAAM;YAChC,wCAAyB,CAAC,KAAK;YAC/B,wCAAyB,CAAC,WAAW;YACrC,wCAAyB,CAAC,QAAQ;YAClC,wCAAyB,CAAC,GAAG;SAC9B,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;YAC5C,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CAWF;AAED,kBAAe,IAAI,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ declare class GlobalInteractionTracker {
2
+ private canvasElement;
3
+ private isInitialized;
4
+ private config;
5
+ constructor();
6
+ init(): void;
7
+ private setupListeners;
8
+ }
9
+ declare const tracker: GlobalInteractionTracker;
10
+ export default tracker;
11
+ //# sourceMappingURL=GlobalInteractionTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalInteractionTracker.d.ts","sourceRoot":"","sources":["../../../src/http_transport/playable_events/GlobalInteractionTracker.ts"],"names":[],"mappings":"AASA,cAAM,wBAAwB;IAC5B,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,MAAM,CAAmB;;IAMjC,IAAI,IAAI,IAAI;IAkCZ,OAAO,CAAC,cAAc;CAmBvB;AAED,QAAA,MAAM,OAAO,0BAAiC,CAAC;AAC/C,eAAe,OAAO,CAAC"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const FPlayableEventManager_1 = __importDefault(require("./FPlayableEventManager"));
7
+ const SDKConfig_1 = require("../../config/SDKConfig");
8
+ const Logger_1 = __importDefault(require("../../utils/Logger"));
9
+ class GlobalInteractionTracker {
10
+ constructor() {
11
+ Object.defineProperty(this, "canvasElement", {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value: null
16
+ });
17
+ Object.defineProperty(this, "isInitialized", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: false
22
+ });
23
+ Object.defineProperty(this, "config", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: void 0
28
+ });
29
+ this.config = SDKConfig_1.SDKConfiguration.getInstance();
30
+ }
31
+ init() {
32
+ if (this.isInitialized) {
33
+ Logger_1.default.warn("Tracker", "GlobalInteractionTracker already initialized");
34
+ return;
35
+ }
36
+ if (!this.config.autoTrackInteractions) {
37
+ Logger_1.default.info("Tracker", "Auto-tracking disabled, skipping setup");
38
+ return;
39
+ }
40
+ const initCanvas = () => {
41
+ this.canvasElement = document.querySelector("canvas");
42
+ if (!this.canvasElement) {
43
+ Logger_1.default.info("Tracker", "Canvas not found, retrying...");
44
+ setTimeout(initCanvas, 100);
45
+ return;
46
+ }
47
+ this.setupListeners();
48
+ this.isInitialized = true;
49
+ Logger_1.default.success("Tracker", "GlobalInteractionTracker initialized");
50
+ };
51
+ if (document.readyState === "loading") {
52
+ document.addEventListener("DOMContentLoaded", initCanvas);
53
+ }
54
+ else {
55
+ initCanvas();
56
+ }
57
+ }
58
+ setupListeners() {
59
+ document.addEventListener("click", (_ignore) => {
60
+ FPlayableEventManager_1.default.internalClick();
61
+ }, false);
62
+ document.addEventListener("touchstart", (_ignore) => {
63
+ FPlayableEventManager_1.default.internalClick();
64
+ }, { passive: true });
65
+ }
66
+ }
67
+ const tracker = new GlobalInteractionTracker();
68
+ exports.default = tracker;
69
+ //# sourceMappingURL=GlobalInteractionTracker.js.map