@aws-amplify/analytics 7.0.1-console-preview.11cf989.0 → 7.0.1-console-preview.4ae78ed.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/lib/errors/assertValidationError.d.ts +1 -1
  2. package/lib/errors/assertValidationError.js +7 -3
  3. package/lib/errors/validation.d.ts +3 -1
  4. package/lib/errors/validation.js +8 -0
  5. package/lib/index.d.ts +1 -1
  6. package/lib/index.js +2 -1
  7. package/lib/providers/kinesis/apis/flushEvents.d.ts +8 -0
  8. package/lib/providers/kinesis/apis/flushEvents.js +37 -0
  9. package/lib/providers/kinesis/apis/index.d.ts +1 -0
  10. package/lib/providers/kinesis/apis/index.js +3 -1
  11. package/lib/providers/kinesis/apis/record.d.ts +1 -1
  12. package/lib/providers/kinesis/apis/record.js +40 -2
  13. package/lib/providers/kinesis/index.d.ts +1 -1
  14. package/lib/providers/kinesis/index.js +2 -1
  15. package/lib/providers/kinesis/types/buffer.d.ts +15 -0
  16. package/lib/providers/kinesis/types/buffer.js +4 -0
  17. package/lib/providers/kinesis/types/index.d.ts +1 -0
  18. package/lib/providers/kinesis/types/inputs.d.ts +6 -1
  19. package/lib/providers/kinesis/utils/constants.d.ts +6 -0
  20. package/lib/providers/kinesis/utils/constants.js +11 -0
  21. package/lib/providers/kinesis/utils/getEventBuffer.d.ts +3 -0
  22. package/lib/providers/kinesis/utils/getEventBuffer.js +103 -0
  23. package/lib/providers/kinesis/utils/resolveConfig.d.ts +7 -0
  24. package/lib/providers/kinesis/utils/resolveConfig.js +24 -0
  25. package/lib/providers/kinesis-firehose/apis/flushEvents.d.ts +8 -0
  26. package/lib/providers/kinesis-firehose/apis/flushEvents.js +36 -0
  27. package/lib/providers/kinesis-firehose/apis/index.d.ts +1 -0
  28. package/lib/providers/kinesis-firehose/apis/index.js +3 -1
  29. package/lib/providers/kinesis-firehose/apis/record.d.ts +1 -1
  30. package/lib/providers/kinesis-firehose/apis/record.js +37 -2
  31. package/lib/providers/kinesis-firehose/index.d.ts +1 -1
  32. package/lib/providers/kinesis-firehose/index.js +2 -1
  33. package/lib/providers/kinesis-firehose/types/buffer.d.ts +15 -0
  34. package/lib/providers/kinesis-firehose/types/buffer.js +4 -0
  35. package/lib/providers/kinesis-firehose/types/index.d.ts +1 -0
  36. package/lib/providers/kinesis-firehose/types/inputs.d.ts +5 -1
  37. package/lib/providers/kinesis-firehose/utils/constants.d.ts +6 -0
  38. package/lib/providers/kinesis-firehose/utils/constants.js +11 -0
  39. package/lib/providers/kinesis-firehose/utils/getEventBuffer.d.ts +3 -0
  40. package/lib/providers/kinesis-firehose/utils/getEventBuffer.js +100 -0
  41. package/lib/providers/kinesis-firehose/utils/index.d.ts +2 -0
  42. package/lib/providers/kinesis-firehose/utils/index.js +9 -0
  43. package/lib/providers/kinesis-firehose/utils/resolveConfig.d.ts +7 -0
  44. package/lib/providers/kinesis-firehose/utils/resolveConfig.js +24 -0
  45. package/lib/providers/personalize/apis/flushEvents.d.ts +8 -0
  46. package/lib/providers/personalize/apis/flushEvents.js +35 -0
  47. package/lib/providers/personalize/apis/index.d.ts +1 -0
  48. package/lib/providers/personalize/apis/index.js +3 -1
  49. package/lib/providers/personalize/apis/record.d.ts +1 -1
  50. package/lib/providers/personalize/apis/record.js +65 -2
  51. package/lib/providers/personalize/index.d.ts +1 -1
  52. package/lib/providers/personalize/index.js +2 -1
  53. package/lib/providers/personalize/types/buffer.d.ts +16 -0
  54. package/lib/providers/personalize/types/buffer.js +4 -0
  55. package/lib/providers/personalize/types/index.d.ts +2 -1
  56. package/lib/providers/personalize/types/inputs.d.ts +7 -1
  57. package/lib/providers/personalize/utils/autoTrackMedia.d.ts +10 -0
  58. package/lib/providers/personalize/utils/autoTrackMedia.js +182 -0
  59. package/lib/providers/personalize/utils/cachedSession.d.ts +5 -0
  60. package/lib/providers/personalize/utils/cachedSession.js +52 -0
  61. package/lib/providers/personalize/utils/constants.d.ts +7 -0
  62. package/lib/providers/personalize/utils/constants.js +12 -0
  63. package/lib/providers/personalize/utils/getEventBuffer.d.ts +3 -0
  64. package/lib/providers/personalize/utils/getEventBuffer.js +100 -0
  65. package/lib/providers/personalize/utils/index.d.ts +5 -0
  66. package/lib/providers/personalize/utils/index.js +17 -0
  67. package/lib/providers/personalize/utils/resolveConfig.d.ts +7 -0
  68. package/lib/providers/personalize/utils/resolveConfig.js +25 -0
  69. package/lib/providers/pinpoint/apis/flushEvents.d.ts +8 -0
  70. package/lib/providers/pinpoint/apis/flushEvents.js +27 -0
  71. package/lib/providers/pinpoint/apis/identifyUser.d.ts +2 -2
  72. package/lib/providers/pinpoint/apis/identifyUser.js +3 -3
  73. package/lib/providers/pinpoint/apis/index.d.ts +1 -0
  74. package/lib/providers/pinpoint/apis/index.js +3 -1
  75. package/lib/providers/pinpoint/index.d.ts +1 -1
  76. package/lib/providers/pinpoint/index.js +2 -1
  77. package/lib/tsconfig.tsbuildinfo +1 -1
  78. package/lib/types/index.d.ts +1 -0
  79. package/lib/types/kinesis.d.ts +8 -0
  80. package/lib/types/kinesis.js +4 -0
  81. package/lib/utils/eventBuffer/EventBuffer.d.ts +16 -0
  82. package/lib/utils/eventBuffer/EventBuffer.js +91 -0
  83. package/lib/utils/eventBuffer/index.d.ts +2 -0
  84. package/lib/utils/eventBuffer/index.js +7 -0
  85. package/lib/utils/eventBuffer/types.d.ts +8 -0
  86. package/lib/utils/eventBuffer/types.js +4 -0
  87. package/lib/utils/groupBy.d.ts +1 -0
  88. package/lib/utils/groupBy.js +15 -0
  89. package/lib/utils/index.d.ts +3 -0
  90. package/lib/utils/index.js +7 -1
  91. package/lib/utils/resolveCredentials.d.ts +9 -0
  92. package/lib/utils/resolveCredentials.js +21 -0
  93. package/lib-esm/errors/assertValidationError.d.ts +1 -1
  94. package/lib-esm/errors/assertValidationError.js +7 -3
  95. package/lib-esm/errors/validation.d.ts +3 -1
  96. package/lib-esm/errors/validation.js +8 -0
  97. package/lib-esm/index.d.ts +1 -1
  98. package/lib-esm/index.js +1 -1
  99. package/lib-esm/providers/kinesis/apis/flushEvents.d.ts +8 -0
  100. package/lib-esm/providers/kinesis/apis/flushEvents.js +33 -0
  101. package/lib-esm/providers/kinesis/apis/index.d.ts +1 -0
  102. package/lib-esm/providers/kinesis/apis/index.js +1 -0
  103. package/lib-esm/providers/kinesis/apis/record.d.ts +1 -1
  104. package/lib-esm/providers/kinesis/apis/record.js +40 -2
  105. package/lib-esm/providers/kinesis/index.d.ts +1 -1
  106. package/lib-esm/providers/kinesis/index.js +1 -1
  107. package/lib-esm/providers/kinesis/types/buffer.d.ts +15 -0
  108. package/lib-esm/providers/kinesis/types/buffer.js +3 -0
  109. package/lib-esm/providers/kinesis/types/index.d.ts +1 -0
  110. package/lib-esm/providers/kinesis/types/inputs.d.ts +6 -1
  111. package/lib-esm/providers/kinesis/utils/constants.d.ts +6 -0
  112. package/lib-esm/providers/kinesis/utils/constants.js +8 -0
  113. package/lib-esm/providers/kinesis/utils/getEventBuffer.d.ts +3 -0
  114. package/lib-esm/providers/kinesis/utils/getEventBuffer.js +99 -0
  115. package/lib-esm/providers/kinesis/utils/resolveConfig.d.ts +7 -0
  116. package/lib-esm/providers/kinesis/utils/resolveConfig.js +20 -0
  117. package/lib-esm/providers/kinesis-firehose/apis/flushEvents.d.ts +8 -0
  118. package/lib-esm/providers/kinesis-firehose/apis/flushEvents.js +32 -0
  119. package/lib-esm/providers/kinesis-firehose/apis/index.d.ts +1 -0
  120. package/lib-esm/providers/kinesis-firehose/apis/index.js +1 -0
  121. package/lib-esm/providers/kinesis-firehose/apis/record.d.ts +1 -1
  122. package/lib-esm/providers/kinesis-firehose/apis/record.js +37 -2
  123. package/lib-esm/providers/kinesis-firehose/index.d.ts +1 -1
  124. package/lib-esm/providers/kinesis-firehose/index.js +1 -1
  125. package/lib-esm/providers/kinesis-firehose/types/buffer.d.ts +15 -0
  126. package/lib-esm/providers/kinesis-firehose/types/buffer.js +3 -0
  127. package/lib-esm/providers/kinesis-firehose/types/index.d.ts +1 -0
  128. package/lib-esm/providers/kinesis-firehose/types/inputs.d.ts +5 -1
  129. package/lib-esm/providers/kinesis-firehose/utils/constants.d.ts +6 -0
  130. package/lib-esm/providers/kinesis-firehose/utils/constants.js +8 -0
  131. package/lib-esm/providers/kinesis-firehose/utils/getEventBuffer.d.ts +3 -0
  132. package/lib-esm/providers/kinesis-firehose/utils/getEventBuffer.js +96 -0
  133. package/lib-esm/providers/kinesis-firehose/utils/index.d.ts +2 -0
  134. package/lib-esm/providers/kinesis-firehose/utils/index.js +4 -0
  135. package/lib-esm/providers/kinesis-firehose/utils/resolveConfig.d.ts +7 -0
  136. package/lib-esm/providers/kinesis-firehose/utils/resolveConfig.js +20 -0
  137. package/lib-esm/providers/personalize/apis/flushEvents.d.ts +8 -0
  138. package/lib-esm/providers/personalize/apis/flushEvents.js +31 -0
  139. package/lib-esm/providers/personalize/apis/index.d.ts +1 -0
  140. package/lib-esm/providers/personalize/apis/index.js +1 -0
  141. package/lib-esm/providers/personalize/apis/record.d.ts +1 -1
  142. package/lib-esm/providers/personalize/apis/record.js +65 -2
  143. package/lib-esm/providers/personalize/index.d.ts +1 -1
  144. package/lib-esm/providers/personalize/index.js +1 -1
  145. package/lib-esm/providers/personalize/types/buffer.d.ts +16 -0
  146. package/lib-esm/providers/personalize/types/buffer.js +3 -0
  147. package/lib-esm/providers/personalize/types/index.d.ts +2 -1
  148. package/lib-esm/providers/personalize/types/inputs.d.ts +7 -1
  149. package/lib-esm/providers/personalize/utils/autoTrackMedia.d.ts +10 -0
  150. package/lib-esm/providers/personalize/utils/autoTrackMedia.js +178 -0
  151. package/lib-esm/providers/personalize/utils/cachedSession.d.ts +5 -0
  152. package/lib-esm/providers/personalize/utils/cachedSession.js +47 -0
  153. package/lib-esm/providers/personalize/utils/constants.d.ts +7 -0
  154. package/lib-esm/providers/personalize/utils/constants.js +9 -0
  155. package/lib-esm/providers/personalize/utils/getEventBuffer.d.ts +3 -0
  156. package/lib-esm/providers/personalize/utils/getEventBuffer.js +96 -0
  157. package/lib-esm/providers/personalize/utils/index.d.ts +5 -0
  158. package/lib-esm/providers/personalize/utils/index.js +7 -0
  159. package/lib-esm/providers/personalize/utils/resolveConfig.d.ts +7 -0
  160. package/lib-esm/providers/personalize/utils/resolveConfig.js +21 -0
  161. package/lib-esm/providers/pinpoint/apis/flushEvents.d.ts +8 -0
  162. package/lib-esm/providers/pinpoint/apis/flushEvents.js +23 -0
  163. package/lib-esm/providers/pinpoint/apis/identifyUser.d.ts +2 -2
  164. package/lib-esm/providers/pinpoint/apis/identifyUser.js +3 -3
  165. package/lib-esm/providers/pinpoint/apis/index.d.ts +1 -0
  166. package/lib-esm/providers/pinpoint/apis/index.js +1 -0
  167. package/lib-esm/providers/pinpoint/index.d.ts +1 -1
  168. package/lib-esm/providers/pinpoint/index.js +1 -1
  169. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  170. package/lib-esm/types/index.d.ts +1 -0
  171. package/lib-esm/types/kinesis.d.ts +8 -0
  172. package/lib-esm/types/kinesis.js +3 -0
  173. package/lib-esm/utils/eventBuffer/EventBuffer.d.ts +16 -0
  174. package/lib-esm/utils/eventBuffer/EventBuffer.js +88 -0
  175. package/lib-esm/utils/eventBuffer/index.d.ts +2 -0
  176. package/lib-esm/utils/eventBuffer/index.js +3 -0
  177. package/lib-esm/utils/eventBuffer/types.d.ts +8 -0
  178. package/lib-esm/utils/eventBuffer/types.js +3 -0
  179. package/lib-esm/utils/groupBy.d.ts +1 -0
  180. package/lib-esm/utils/groupBy.js +11 -0
  181. package/lib-esm/utils/index.d.ts +3 -0
  182. package/lib-esm/utils/index.js +3 -0
  183. package/lib-esm/utils/resolveCredentials.d.ts +9 -0
  184. package/lib-esm/utils/resolveCredentials.js +17 -0
  185. package/package.json +5 -4
  186. package/src/errors/assertValidationError.ts +9 -3
  187. package/src/errors/validation.ts +8 -0
  188. package/src/index.ts +1 -0
  189. package/src/providers/kinesis/apis/flushEvents.ts +42 -0
  190. package/src/providers/kinesis/apis/index.ts +1 -0
  191. package/src/providers/kinesis/apis/record.ts +54 -2
  192. package/src/providers/kinesis/index.ts +1 -1
  193. package/src/providers/kinesis/types/buffer.ts +20 -0
  194. package/src/providers/kinesis/types/index.ts +1 -0
  195. package/src/providers/kinesis/types/inputs.ts +7 -1
  196. package/src/providers/kinesis/utils/constants.ts +9 -0
  197. package/src/providers/kinesis/utils/getEventBuffer.ts +110 -0
  198. package/src/providers/kinesis/utils/resolveConfig.ts +36 -0
  199. package/src/providers/kinesis-firehose/apis/flushEvents.ts +41 -0
  200. package/src/providers/kinesis-firehose/apis/index.ts +1 -0
  201. package/src/providers/kinesis-firehose/apis/record.ts +47 -2
  202. package/src/providers/kinesis-firehose/index.ts +1 -1
  203. package/src/providers/kinesis-firehose/types/buffer.ts +20 -0
  204. package/src/providers/kinesis-firehose/types/index.ts +5 -0
  205. package/src/providers/kinesis-firehose/types/inputs.ts +6 -1
  206. package/src/providers/kinesis-firehose/utils/constants.ts +9 -0
  207. package/src/providers/kinesis-firehose/utils/getEventBuffer.ts +118 -0
  208. package/src/providers/kinesis-firehose/utils/index.ts +5 -0
  209. package/src/providers/kinesis-firehose/utils/resolveConfig.ts +36 -0
  210. package/src/providers/personalize/apis/flushEvents.ts +39 -0
  211. package/src/providers/personalize/apis/index.ts +1 -0
  212. package/src/providers/personalize/apis/record.ts +98 -2
  213. package/src/providers/personalize/index.ts +1 -1
  214. package/src/providers/personalize/types/buffer.ts +21 -0
  215. package/src/providers/personalize/types/index.ts +2 -1
  216. package/src/providers/personalize/types/inputs.ts +8 -1
  217. package/src/providers/personalize/utils/autoTrackMedia.ts +231 -0
  218. package/src/providers/personalize/utils/cachedSession.ts +67 -0
  219. package/src/providers/personalize/utils/constants.ts +12 -0
  220. package/src/providers/personalize/utils/getEventBuffer.ts +111 -0
  221. package/src/providers/personalize/utils/index.ts +11 -0
  222. package/src/providers/personalize/utils/resolveConfig.ts +41 -0
  223. package/src/providers/pinpoint/apis/flushEvents.ts +34 -0
  224. package/src/providers/pinpoint/apis/identifyUser.ts +3 -3
  225. package/src/providers/pinpoint/apis/index.ts +1 -0
  226. package/src/providers/pinpoint/index.ts +1 -1
  227. package/src/types/index.ts +2 -0
  228. package/src/types/kinesis.ts +13 -0
  229. package/src/utils/eventBuffer/EventBuffer.ts +84 -0
  230. package/src/utils/eventBuffer/index.ts +5 -0
  231. package/src/utils/eventBuffer/types.ts +12 -0
  232. package/src/utils/groupBy.ts +12 -0
  233. package/src/utils/index.ts +7 -0
  234. package/src/utils/resolveCredentials.ts +14 -0
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getEventBuffer = void 0;
6
+ var tslib_1 = require("tslib");
7
+ var utils_1 = require("../../../utils");
8
+ var client_firehose_1 = require("@aws-sdk/client-firehose");
9
+ /**
10
+ * These Records hold cached event buffers and AWS clients.
11
+ * The hash key is determined by the region and session,
12
+ * consisting of a combined value comprising [region, sessionToken, identityId].
13
+ *
14
+ * Only one active session should exist at any given moment.
15
+ * When a new session is initiated, the previous ones should be released.
16
+ * */
17
+ var eventBufferMap = {};
18
+ var cachedClients = {};
19
+ var createPutRecordsBatchCommand = function (streamName, events) {
20
+ return new client_firehose_1.PutRecordBatchCommand({
21
+ DeliveryStreamName: streamName,
22
+ Records: events.map(function (event) { return ({
23
+ Data: event.event,
24
+ }); }),
25
+ });
26
+ };
27
+ var submitEvents = function (events, client, resendLimit) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
28
+ var groupedByStreamName, requests, responses, failedEvents;
29
+ return tslib_1.__generator(this, function (_a) {
30
+ switch (_a.label) {
31
+ case 0:
32
+ groupedByStreamName = Object.entries((0, utils_1.groupBy)(function (event) { return event.streamName; }, events));
33
+ requests = groupedByStreamName
34
+ .map(function (_a) {
35
+ var _b = tslib_1.__read(_a, 2), streamName = _b[0], events = _b[1];
36
+ return createPutRecordsBatchCommand(streamName, events);
37
+ })
38
+ .map(function (command) { return client.send(command); });
39
+ return [4 /*yield*/, Promise.allSettled(requests)];
40
+ case 1:
41
+ responses = _a.sent();
42
+ failedEvents = responses
43
+ .map(function (response, i) {
44
+ return response.status === 'rejected' ? groupedByStreamName[i][1] : [];
45
+ })
46
+ .flat();
47
+ return [2 /*return*/, resendLimit
48
+ ? failedEvents
49
+ .filter(function (event) { return event.retryCount < resendLimit; })
50
+ .map(function (event) { return (tslib_1.__assign(tslib_1.__assign({}, event), { retryCount: event.retryCount + 1 })); })
51
+ .sort(function (a, b) { return a.timestamp - b.timestamp; })
52
+ : []];
53
+ }
54
+ });
55
+ }); };
56
+ var getEventBuffer = function (_a) {
57
+ var e_1, _b;
58
+ var region = _a.region, credentials = _a.credentials, identityId = _a.identityId, bufferSize = _a.bufferSize, flushSize = _a.flushSize, flushInterval = _a.flushInterval, resendLimit = _a.resendLimit, userAgentValue = _a.userAgentValue;
59
+ var sessionToken = credentials.sessionToken;
60
+ var sessionIdentityKey = [region, sessionToken, identityId]
61
+ .filter(function (id) { return !!id; })
62
+ .join('-');
63
+ if (!eventBufferMap[sessionIdentityKey]) {
64
+ var getClient = function () {
65
+ if (!cachedClients[sessionIdentityKey]) {
66
+ cachedClients[sessionIdentityKey] = new client_firehose_1.FirehoseClient({
67
+ region: region,
68
+ credentials: credentials,
69
+ customUserAgent: userAgentValue,
70
+ });
71
+ }
72
+ var firehoseClient = cachedClients[sessionIdentityKey];
73
+ return function (events) { return submitEvents(events, firehoseClient, resendLimit); };
74
+ };
75
+ eventBufferMap[sessionIdentityKey] =
76
+ new utils_1.EventBuffer({
77
+ bufferSize: bufferSize,
78
+ flushSize: flushSize,
79
+ flushInterval: flushInterval,
80
+ }, getClient);
81
+ var releaseSessionKeys = Object.keys(eventBufferMap).filter(function (key) { return key !== sessionIdentityKey; });
82
+ try {
83
+ for (var releaseSessionKeys_1 = tslib_1.__values(releaseSessionKeys), releaseSessionKeys_1_1 = releaseSessionKeys_1.next(); !releaseSessionKeys_1_1.done; releaseSessionKeys_1_1 = releaseSessionKeys_1.next()) {
84
+ var releaseSessionKey = releaseSessionKeys_1_1.value;
85
+ eventBufferMap[releaseSessionKey].release();
86
+ delete eventBufferMap[releaseSessionKey];
87
+ delete cachedClients[releaseSessionKey];
88
+ }
89
+ }
90
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
91
+ finally {
92
+ try {
93
+ if (releaseSessionKeys_1_1 && !releaseSessionKeys_1_1.done && (_b = releaseSessionKeys_1.return)) _b.call(releaseSessionKeys_1);
94
+ }
95
+ finally { if (e_1) throw e_1.error; }
96
+ }
97
+ }
98
+ return eventBufferMap[sessionIdentityKey];
99
+ };
100
+ exports.getEventBuffer = getEventBuffer;
@@ -0,0 +1,2 @@
1
+ export { getEventBuffer } from './getEventBuffer';
2
+ export { resolveConfig } from './resolveConfig';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.resolveConfig = exports.getEventBuffer = void 0;
6
+ var getEventBuffer_1 = require("./getEventBuffer");
7
+ Object.defineProperty(exports, "getEventBuffer", { enumerable: true, get: function () { return getEventBuffer_1.getEventBuffer; } });
8
+ var resolveConfig_1 = require("./resolveConfig");
9
+ Object.defineProperty(exports, "resolveConfig", { enumerable: true, get: function () { return resolveConfig_1.resolveConfig; } });
@@ -0,0 +1,7 @@
1
+ export declare const resolveConfig: () => {
2
+ region: string;
3
+ bufferSize: number;
4
+ flushSize: number;
5
+ flushInterval: number;
6
+ resendLimit: number;
7
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.resolveConfig = void 0;
6
+ var tslib_1 = require("tslib");
7
+ var core_1 = require("@aws-amplify/core");
8
+ var errors_1 = require("../../../errors");
9
+ var constants_1 = require("./constants");
10
+ var resolveConfig = function () {
11
+ var _a;
12
+ var config = (_a = core_1.Amplify.getConfig().Analytics) === null || _a === void 0 ? void 0 : _a.KinesisFirehose;
13
+ var _b = tslib_1.__assign(tslib_1.__assign({}, constants_1.DEFAULT_KINESIS_FIREHOSE_CONFIG), config), region = _b.region, _c = _b.bufferSize, bufferSize = _c === void 0 ? constants_1.DEFAULT_KINESIS_FIREHOSE_CONFIG.bufferSize : _c, _d = _b.flushSize, flushSize = _d === void 0 ? constants_1.DEFAULT_KINESIS_FIREHOSE_CONFIG.flushSize : _d, _e = _b.flushInterval, flushInterval = _e === void 0 ? constants_1.DEFAULT_KINESIS_FIREHOSE_CONFIG.flushInterval : _e, resendLimit = _b.resendLimit;
14
+ (0, errors_1.assertValidationError)(!!region, errors_1.AnalyticsValidationErrorCode.NoRegion);
15
+ (0, errors_1.assertValidationError)(flushSize < bufferSize, errors_1.AnalyticsValidationErrorCode.InvalidFlushSize);
16
+ return {
17
+ region: region,
18
+ bufferSize: bufferSize,
19
+ flushSize: flushSize,
20
+ flushInterval: flushInterval,
21
+ resendLimit: resendLimit,
22
+ };
23
+ };
24
+ exports.resolveConfig = resolveConfig;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Flushes all buffered Personalize events to the service.
3
+ *
4
+ * @note
5
+ * This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
6
+ * this API may not be included in the flush.
7
+ */
8
+ export declare const flushEvents: () => void;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.flushEvents = void 0;
6
+ var utils_1 = require("../utils");
7
+ var utils_2 = require("../../../utils");
8
+ var utils_3 = require("@aws-amplify/core/internals/utils");
9
+ var logger = new utils_3.ConsoleLogger('Personalize');
10
+ /**
11
+ * Flushes all buffered Personalize events to the service.
12
+ *
13
+ * @note
14
+ * This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
15
+ * this API may not be included in the flush.
16
+ */
17
+ var flushEvents = function () {
18
+ var _a = (0, utils_1.resolveConfig)(), region = _a.region, flushSize = _a.flushSize, bufferSize = _a.bufferSize, flushInterval = _a.flushInterval;
19
+ (0, utils_2.resolveCredentials)()
20
+ .then(function (_a) {
21
+ var credentials = _a.credentials, identityId = _a.identityId;
22
+ return (0, utils_1.getEventBuffer)({
23
+ region: region,
24
+ flushSize: flushSize,
25
+ flushInterval: flushInterval,
26
+ bufferSize: bufferSize,
27
+ credentials: credentials,
28
+ identityId: identityId,
29
+ userAgentValue: (0, utils_2.getAnalyticsUserAgentString)(utils_3.AnalyticsAction.Record),
30
+ });
31
+ })
32
+ .then(function (eventBuffer) { return eventBuffer.flushAll(); })
33
+ .catch(function (e) { return logger.warn('Failed to flush events', e); });
34
+ };
35
+ exports.flushEvents = flushEvents;
@@ -1 +1,2 @@
1
1
  export { record } from './record';
2
+ export { flushEvents } from './flushEvents';
@@ -2,6 +2,8 @@
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.record = void 0;
5
+ exports.flushEvents = exports.record = void 0;
6
6
  var record_1 = require("./record");
7
7
  Object.defineProperty(exports, "record", { enumerable: true, get: function () { return record_1.record; } });
8
+ var flushEvents_1 = require("./flushEvents");
9
+ Object.defineProperty(exports, "flushEvents", { enumerable: true, get: function () { return flushEvents_1.flushEvents; } });
@@ -1,2 +1,2 @@
1
1
  import { RecordInput } from '../types';
2
- export declare const record: (input: RecordInput) => void;
2
+ export declare const record: ({ userId, eventId, eventType, properties, }: RecordInput) => void;
@@ -3,7 +3,70 @@
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.record = void 0;
6
- var record = function (input) {
7
- throw new Error('Not Yet Implemented');
6
+ var utils_1 = require("../utils");
7
+ var utils_2 = require("../../../utils");
8
+ var utils_3 = require("@aws-amplify/core/internals/utils");
9
+ var constants_1 = require("../utils/constants");
10
+ var logger = new utils_3.ConsoleLogger('Personalize');
11
+ var record = function (_a) {
12
+ var userId = _a.userId, eventId = _a.eventId, eventType = _a.eventType, properties = _a.properties;
13
+ if (!(0, utils_2.isAnalyticsEnabled)()) {
14
+ logger.debug('Analytics is disabled, event will not be recorded.');
15
+ return;
16
+ }
17
+ var _b = (0, utils_1.resolveConfig)(), region = _b.region, trackingId = _b.trackingId, bufferSize = _b.bufferSize, flushSize = _b.flushSize, flushInterval = _b.flushInterval;
18
+ (0, utils_2.resolveCredentials)()
19
+ .then(function (_a) {
20
+ var credentials = _a.credentials, identityId = _a.identityId;
21
+ var timestamp = Date.now();
22
+ var _b = (0, utils_1.resolveCachedSession)(trackingId), cachedSessionId = _b.sessionId, cachedUserId = _b.userId;
23
+ if (eventType === constants_1.IDENTIFY_EVENT_TYPE) {
24
+ (0, utils_1.updateCachedSession)(typeof properties.userId === 'string' ? properties.userId : '', cachedSessionId, cachedUserId);
25
+ }
26
+ else if (!!userId) {
27
+ (0, utils_1.updateCachedSession)(userId, cachedSessionId, cachedUserId);
28
+ }
29
+ var _c = (0, utils_1.resolveCachedSession)(trackingId), updatedSessionId = _c.sessionId, updatedUserId = _c.userId;
30
+ var eventBuffer = (0, utils_1.getEventBuffer)({
31
+ region: region,
32
+ flushSize: flushSize,
33
+ flushInterval: flushInterval,
34
+ bufferSize: bufferSize,
35
+ credentials: credentials,
36
+ identityId: identityId,
37
+ userAgentValue: (0, utils_2.getAnalyticsUserAgentString)(utils_3.AnalyticsAction.Record),
38
+ });
39
+ if (eventType === constants_1.MEDIA_AUTO_TRACK_EVENT_TYPE) {
40
+ (0, utils_1.autoTrackMedia)({
41
+ trackingId: trackingId,
42
+ sessionId: updatedSessionId,
43
+ userId: updatedUserId,
44
+ event: {
45
+ eventId: eventId,
46
+ eventType: eventType,
47
+ properties: properties,
48
+ },
49
+ }, eventBuffer);
50
+ }
51
+ else {
52
+ eventBuffer.append({
53
+ trackingId: trackingId,
54
+ sessionId: updatedSessionId,
55
+ userId: updatedUserId,
56
+ event: {
57
+ eventId: eventId,
58
+ eventType: eventType,
59
+ properties: properties,
60
+ },
61
+ timestamp: timestamp,
62
+ });
63
+ }
64
+ if (eventBuffer.length >= bufferSize) {
65
+ eventBuffer.flushAll();
66
+ }
67
+ })
68
+ .catch(function (e) {
69
+ logger.warn('Failed to record event.', e);
70
+ });
8
71
  };
9
72
  exports.record = record;
@@ -1 +1 @@
1
- export { record } from './apis';
1
+ export { record, flushEvents } from './apis';
@@ -2,6 +2,7 @@
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.record = void 0;
5
+ exports.flushEvents = exports.record = void 0;
6
6
  var apis_1 = require("./apis");
7
7
  Object.defineProperty(exports, "record", { enumerable: true, get: function () { return apis_1.record; } });
8
+ Object.defineProperty(exports, "flushEvents", { enumerable: true, get: function () { return apis_1.flushEvents; } });
@@ -0,0 +1,16 @@
1
+ import { PersonalizeEvent } from './';
2
+ import { EventBufferConfig } from '../../../utils';
3
+ import { Credentials } from '@aws-sdk/types';
4
+ export type PersonalizeBufferEvent = {
5
+ trackingId: string;
6
+ sessionId?: string;
7
+ userId?: string;
8
+ event: PersonalizeEvent;
9
+ timestamp: number;
10
+ };
11
+ export type PersonalizeBufferConfig = EventBufferConfig & {
12
+ region: string;
13
+ credentials: Credentials;
14
+ identityId?: string;
15
+ userAgentValue?: string;
16
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +1,2 @@
1
- export { RecordInput } from './inputs';
1
+ export { RecordInput, PersonalizeEvent } from './inputs';
2
+ export { PersonalizeBufferEvent, PersonalizeBufferConfig } from './buffer';
@@ -1 +1,7 @@
1
- export type RecordInput = {};
1
+ export type PersonalizeEvent = {
2
+ userId?: string;
3
+ eventId?: string;
4
+ eventType: string;
5
+ properties: Record<string, unknown>;
6
+ };
7
+ export type RecordInput = PersonalizeEvent;
@@ -0,0 +1,10 @@
1
+ import { EventBuffer } from '../../../utils';
2
+ import { PersonalizeBufferEvent, PersonalizeEvent } from '../types';
3
+ type MediaAutoTrackConfig = {
4
+ trackingId: string;
5
+ sessionId: string;
6
+ userId?: string;
7
+ event: PersonalizeEvent;
8
+ };
9
+ export declare const autoTrackMedia: (config: MediaAutoTrackConfig, eventBuffer: EventBuffer<PersonalizeBufferEvent>) => Promise<void>;
10
+ export {};
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.autoTrackMedia = void 0;
6
+ var tslib_1 = require("tslib");
7
+ var utils_1 = require("@aws-amplify/core/internals/utils");
8
+ var HTML5_MEDIA_EVENT;
9
+ (function (HTML5_MEDIA_EVENT) {
10
+ HTML5_MEDIA_EVENT["PLAY"] = "play";
11
+ HTML5_MEDIA_EVENT["PAUSE"] = "pause";
12
+ HTML5_MEDIA_EVENT["ENDED"] = "Ended";
13
+ })(HTML5_MEDIA_EVENT || (HTML5_MEDIA_EVENT = {}));
14
+ var MEDIA_TYPE;
15
+ (function (MEDIA_TYPE) {
16
+ MEDIA_TYPE["IFRAME"] = "IFRAME";
17
+ MEDIA_TYPE["VIDEO"] = "VIDEO";
18
+ MEDIA_TYPE["AUDIO"] = "AUDIO";
19
+ })(MEDIA_TYPE || (MEDIA_TYPE = {}));
20
+ var EVENT_TYPE;
21
+ (function (EVENT_TYPE) {
22
+ EVENT_TYPE["PLAY"] = "Play";
23
+ EVENT_TYPE["ENDED"] = "Ended";
24
+ EVENT_TYPE["PAUSE"] = "Pause";
25
+ EVENT_TYPE["TIME_WATCHED"] = "TimeWatched";
26
+ })(EVENT_TYPE || (EVENT_TYPE = {}));
27
+ var logger = new utils_1.ConsoleLogger('MediaAutoTrack');
28
+ var startIframeAutoTracking = function (element, recordEvent) {
29
+ var isPlaying = false;
30
+ var player;
31
+ var mediaProperties = function () {
32
+ var duration = Number(parseFloat(player.getDuration()).toFixed(4));
33
+ var currentTime = Number(parseFloat(player.getCurrentTime()).toFixed(4));
34
+ return {
35
+ duration: duration,
36
+ eventValue: Number((currentTime / duration).toFixed(4)),
37
+ };
38
+ };
39
+ var scriptElement = document.createElement('script');
40
+ scriptElement.type = 'text/javascript';
41
+ scriptElement.src = 'https://www.youtube.com/iframe_api';
42
+ document.body.append(scriptElement);
43
+ var timer = setInterval(function () {
44
+ if (isPlaying && player) {
45
+ recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());
46
+ }
47
+ }, 3000);
48
+ element.addEventListener('unload', function () { return clearInterval(timer); });
49
+ // @ts-ignore
50
+ window.onYouTubeIframeAPIReady = function () {
51
+ // @ts-ignore
52
+ delete window.onYouTubeIframeAPIReady;
53
+ // @ts-ignore
54
+ player = new window.YT.Player(element.id, {
55
+ events: {
56
+ onStateChange: function (event) {
57
+ var iframeEventMapping = {
58
+ 0: EVENT_TYPE.ENDED,
59
+ 1: EVENT_TYPE.PLAY,
60
+ 2: EVENT_TYPE.PAUSE,
61
+ };
62
+ // @ts-ignore
63
+ var eventType = iframeEventMapping[event.data];
64
+ switch (eventType) {
65
+ case EVENT_TYPE.ENDED:
66
+ case EVENT_TYPE.PAUSE:
67
+ isPlaying = false;
68
+ break;
69
+ case EVENT_TYPE.PLAY:
70
+ isPlaying = true;
71
+ break;
72
+ }
73
+ if (eventType) {
74
+ recordEvent(eventType, mediaProperties());
75
+ }
76
+ },
77
+ },
78
+ });
79
+ };
80
+ };
81
+ var startHTMLMediaAutoTracking = function (element, recordEvent) {
82
+ var isPlaying = false;
83
+ var mediaProperties = function () { return ({
84
+ duration: element.duration,
85
+ eventValue: Number((element.currentTime / element.duration).toFixed(4)),
86
+ }); };
87
+ var timer = setInterval(function () {
88
+ if (isPlaying) {
89
+ recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());
90
+ }
91
+ }, 3000);
92
+ element.addEventListener('unload', function () { return clearInterval(timer); });
93
+ element.addEventListener(HTML5_MEDIA_EVENT.PLAY, function () {
94
+ isPlaying = true;
95
+ recordEvent(EVENT_TYPE.PLAY, mediaProperties());
96
+ });
97
+ element.addEventListener(HTML5_MEDIA_EVENT.PAUSE, function () {
98
+ isPlaying = false;
99
+ recordEvent(EVENT_TYPE.PAUSE, mediaProperties());
100
+ });
101
+ element.addEventListener(HTML5_MEDIA_EVENT.ENDED, function () {
102
+ isPlaying = false;
103
+ recordEvent(EVENT_TYPE.ENDED, mediaProperties());
104
+ });
105
+ };
106
+ var checkElementLoaded = function (interval, maxTries) {
107
+ var retryCount = 0;
108
+ var wait = function () { return new Promise(function (r) { return setTimeout(r, interval); }); };
109
+ var check = function (elementId) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
110
+ var domElement;
111
+ return tslib_1.__generator(this, function (_a) {
112
+ switch (_a.label) {
113
+ case 0:
114
+ if (retryCount >= maxTries) {
115
+ return [2 /*return*/, false];
116
+ }
117
+ domElement = document.getElementById(elementId);
118
+ if (!(domElement && domElement.clientHeight)) return [3 /*break*/, 1];
119
+ return [2 /*return*/, true];
120
+ case 1:
121
+ retryCount += 1;
122
+ return [4 /*yield*/, wait()];
123
+ case 2:
124
+ _a.sent();
125
+ return [4 /*yield*/, check(elementId)];
126
+ case 3: return [2 /*return*/, _a.sent()];
127
+ }
128
+ });
129
+ }); };
130
+ return check;
131
+ };
132
+ var recordEvent = function (config, eventBuffer) {
133
+ return function (eventType, properties) {
134
+ // override eventType and merge properties
135
+ eventBuffer.append(tslib_1.__assign(tslib_1.__assign({}, config), { event: tslib_1.__assign(tslib_1.__assign({}, config.event), { eventType: eventType, properties: tslib_1.__assign(tslib_1.__assign({}, config.event.properties), properties) }), timestamp: Date.now() }));
136
+ };
137
+ };
138
+ var autoTrackMedia = function (config, eventBuffer) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
139
+ var _a, eventType, properties, domElementId, otherProperties, elementId, isElementLoaded, autoTrackConfigWithoutDomElementId, element;
140
+ return tslib_1.__generator(this, function (_b) {
141
+ switch (_b.label) {
142
+ case 0:
143
+ _a = config.event, eventType = _a.eventType, properties = _a.properties;
144
+ domElementId = properties.domElementId, otherProperties = tslib_1.__rest(properties, ["domElementId"]);
145
+ if (!(0, utils_1.isBrowser)()) {
146
+ logger.debug("".concat(eventType, " only for browser"));
147
+ return [2 /*return*/];
148
+ }
149
+ if (typeof domElementId === 'string' && !domElementId) {
150
+ logger.debug("Missing domElementId field in 'properties' for MediaAutoTrack event type.");
151
+ return [2 /*return*/];
152
+ }
153
+ elementId = domElementId;
154
+ return [4 /*yield*/, checkElementLoaded(500, 5)(elementId)];
155
+ case 1:
156
+ isElementLoaded = _b.sent();
157
+ if (isElementLoaded) {
158
+ autoTrackConfigWithoutDomElementId = tslib_1.__assign(tslib_1.__assign({}, config), { event: tslib_1.__assign(tslib_1.__assign({}, config.event), { properties: otherProperties }) });
159
+ element = document.getElementById(elementId);
160
+ switch (element === null || element === void 0 ? void 0 : element.tagName) {
161
+ case MEDIA_TYPE.IFRAME:
162
+ startIframeAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));
163
+ break;
164
+ case MEDIA_TYPE.VIDEO:
165
+ case MEDIA_TYPE.AUDIO:
166
+ if (element instanceof HTMLMediaElement) {
167
+ startHTMLMediaAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));
168
+ }
169
+ break;
170
+ default:
171
+ logger.debug("Unsupported DOM element tag: ".concat(element === null || element === void 0 ? void 0 : element.tagName));
172
+ break;
173
+ }
174
+ }
175
+ else {
176
+ logger.debug('Cannot find the media element.');
177
+ }
178
+ return [2 /*return*/];
179
+ }
180
+ });
181
+ }); };
182
+ exports.autoTrackMedia = autoTrackMedia;
@@ -0,0 +1,5 @@
1
+ export declare const resolveCachedSession: (trackingId: string) => {
2
+ sessionId: string;
3
+ userId: string | undefined;
4
+ };
5
+ export declare const updateCachedSession: (newUserId?: string, currentSessionId?: string, currentUserId?: string) => void;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.updateCachedSession = exports.resolveCachedSession = void 0;
6
+ var core_1 = require("@aws-amplify/core");
7
+ var utils_1 = require("@aws-amplify/core/internals/utils");
8
+ var uuid_1 = require("uuid");
9
+ var PERSONALIZE_CACHE_USERID = '_awsct_uid';
10
+ var PERSONALIZE_CACHE_SESSIONID = '_awsct_sid';
11
+ var DEFAULT_CACHE_PREFIX = 'personalize';
12
+ var DELIMITER = '.';
13
+ var CACHE_EXPIRY_IN_DAYS = 7;
14
+ var normalize = function (key) {
15
+ return [key, (0, utils_1.isBrowser)() ? window.location.host : DEFAULT_CACHE_PREFIX].join(DELIMITER);
16
+ };
17
+ var getCache = function (key) { return core_1.Cache.getItem(normalize(key)); };
18
+ var setCache = function (key, value) {
19
+ var expiredAt = new Date(Date.now() + 3600000 * 24 * CACHE_EXPIRY_IN_DAYS);
20
+ core_1.Cache.setItem(normalize(key), value, {
21
+ expires: expiredAt.getTime(),
22
+ });
23
+ };
24
+ var resolveCachedSession = function (trackingId) {
25
+ var sessionId = getCache(PERSONALIZE_CACHE_SESSIONID);
26
+ if (!sessionId) {
27
+ sessionId = (0, uuid_1.v4)();
28
+ setCache(PERSONALIZE_CACHE_SESSIONID, sessionId);
29
+ }
30
+ var userId = getCache(PERSONALIZE_CACHE_USERID);
31
+ return {
32
+ sessionId: sessionId,
33
+ userId: userId,
34
+ };
35
+ };
36
+ exports.resolveCachedSession = resolveCachedSession;
37
+ var updateCachedSession = function (newUserId, currentSessionId, currentUserId) {
38
+ var isNoCachedSession = !currentSessionId;
39
+ var isSignOutCase = !newUserId && !currentUserId;
40
+ var isSwitchUserCase = !!newUserId && !!currentUserId && newUserId !== currentUserId;
41
+ var isRequireNewSession = isNoCachedSession || isSignOutCase || isSwitchUserCase;
42
+ var isRequireUpdateSession = !!currentSessionId && !currentUserId && !!newUserId;
43
+ if (isRequireNewSession) {
44
+ var newSessionId = (0, uuid_1.v4)();
45
+ setCache(PERSONALIZE_CACHE_SESSIONID, newSessionId);
46
+ setCache(PERSONALIZE_CACHE_USERID, newUserId);
47
+ }
48
+ else if (isRequireUpdateSession) {
49
+ setCache(PERSONALIZE_CACHE_USERID, newUserId);
50
+ }
51
+ };
52
+ exports.updateCachedSession = updateCachedSession;
@@ -0,0 +1,7 @@
1
+ export declare const DEFAULT_PERSONALIZE_CONFIG: {
2
+ flushSize: number;
3
+ flushInterval: number;
4
+ };
5
+ export declare const PERSONALIZE_FLUSH_SIZE_MAX = 10;
6
+ export declare const IDENTIFY_EVENT_TYPE = "Identify";
7
+ export declare const MEDIA_AUTO_TRACK_EVENT_TYPE = "MediaAutoTrack";
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.MEDIA_AUTO_TRACK_EVENT_TYPE = exports.IDENTIFY_EVENT_TYPE = exports.PERSONALIZE_FLUSH_SIZE_MAX = exports.DEFAULT_PERSONALIZE_CONFIG = void 0;
6
+ exports.DEFAULT_PERSONALIZE_CONFIG = {
7
+ flushSize: 5,
8
+ flushInterval: 5000,
9
+ };
10
+ exports.PERSONALIZE_FLUSH_SIZE_MAX = 10;
11
+ exports.IDENTIFY_EVENT_TYPE = 'Identify';
12
+ exports.MEDIA_AUTO_TRACK_EVENT_TYPE = 'MediaAutoTrack';
@@ -0,0 +1,3 @@
1
+ import { EventBuffer } from '../../../utils';
2
+ import { PersonalizeBufferConfig, PersonalizeBufferEvent } from '../types';
3
+ export declare const getEventBuffer: ({ region, flushSize, flushInterval, bufferSize, credentials, identityId, userAgentValue, }: PersonalizeBufferConfig) => EventBuffer<PersonalizeBufferEvent>;