@aws-amplify/analytics 7.0.1-console-preview.f63250a.0 → 7.0.1-console-preview.e8aa063.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 (254) hide show
  1. package/lib/errors/AnalyticsError.d.ts +7 -0
  2. package/lib/errors/AnalyticsError.js +23 -0
  3. package/lib/errors/assertValidationError.d.ts +5 -0
  4. package/lib/errors/assertValidationError.js +17 -0
  5. package/lib/errors/index.d.ts +3 -0
  6. package/lib/errors/index.js +12 -0
  7. package/lib/errors/validation.d.ts +9 -0
  8. package/lib/errors/validation.js +31 -0
  9. package/lib/index.d.ts +0 -3
  10. package/lib/index.js +0 -15
  11. package/lib/providers/pinpoint/apis/identifyUser.d.ts +10 -0
  12. package/lib/providers/pinpoint/apis/identifyUser.js +44 -0
  13. package/lib/providers/pinpoint/apis/index.d.ts +2 -0
  14. package/lib/providers/pinpoint/apis/index.js +9 -0
  15. package/lib/providers/pinpoint/apis/record.d.ts +11 -0
  16. package/lib/providers/pinpoint/apis/record.js +44 -0
  17. package/lib/providers/pinpoint/index.d.ts +1 -1
  18. package/lib/providers/pinpoint/index.js +1 -7
  19. package/lib/providers/pinpoint/types/errors.d.ts +9 -0
  20. package/lib/providers/pinpoint/types/errors.js +15 -0
  21. package/lib/providers/pinpoint/types/index.d.ts +2 -0
  22. package/lib/providers/pinpoint/types/index.js +7 -0
  23. package/lib/providers/pinpoint/types/parameters.d.ts +18 -0
  24. package/lib/providers/pinpoint/utils/index.d.ts +2 -0
  25. package/lib/providers/pinpoint/utils/index.js +9 -0
  26. package/lib/providers/pinpoint/utils/resolveConfig.d.ts +7 -0
  27. package/lib/providers/pinpoint/utils/resolveConfig.js +18 -0
  28. package/lib/providers/pinpoint/utils/resolveCredentials.d.ts +12 -0
  29. package/lib/providers/pinpoint/utils/resolveCredentials.js +24 -0
  30. package/lib/setupTests.js +1 -0
  31. package/lib/tsconfig.tsbuildinfo +1 -1
  32. package/{lib-esm/types/Analytics.d.ts → lib/types/analytics.d.ts} +0 -8
  33. package/lib/types/index.d.ts +1 -3
  34. package/lib/types/index.js +1 -3
  35. package/lib/utils/{UserAgent.d.ts → userAgent.d.ts} +1 -1
  36. package/lib/utils/{UserAgent.js → userAgent.js} +5 -5
  37. package/lib-esm/errors/AnalyticsError.d.ts +7 -0
  38. package/lib-esm/errors/AnalyticsError.js +20 -0
  39. package/lib-esm/errors/assertValidationError.d.ts +5 -0
  40. package/lib-esm/errors/assertValidationError.js +13 -0
  41. package/lib-esm/errors/index.d.ts +3 -0
  42. package/lib-esm/errors/index.js +5 -0
  43. package/lib-esm/errors/validation.d.ts +9 -0
  44. package/lib-esm/errors/validation.js +28 -0
  45. package/lib-esm/index.d.ts +0 -3
  46. package/lib-esm/index.js +0 -12
  47. package/lib-esm/providers/pinpoint/apis/identifyUser.d.ts +10 -0
  48. package/lib-esm/providers/pinpoint/apis/identifyUser.js +40 -0
  49. package/lib-esm/providers/pinpoint/apis/index.d.ts +2 -0
  50. package/{src/types/providers/index.ts → lib-esm/providers/pinpoint/apis/index.js} +2 -1
  51. package/lib-esm/providers/pinpoint/apis/record.d.ts +11 -0
  52. package/lib-esm/providers/pinpoint/apis/record.js +40 -0
  53. package/lib-esm/providers/pinpoint/index.d.ts +1 -1
  54. package/lib-esm/providers/pinpoint/index.js +1 -6
  55. package/lib-esm/providers/pinpoint/types/errors.d.ts +9 -0
  56. package/lib-esm/providers/pinpoint/types/errors.js +12 -0
  57. package/lib-esm/providers/pinpoint/types/index.d.ts +2 -0
  58. package/lib-esm/{types/providers → providers/pinpoint/types}/index.js +1 -1
  59. package/lib-esm/providers/pinpoint/types/parameters.d.ts +18 -0
  60. package/lib-esm/providers/pinpoint/utils/index.d.ts +2 -0
  61. package/lib-esm/{utils/AppUtils.js → providers/pinpoint/utils/index.js} +2 -4
  62. package/lib-esm/providers/pinpoint/utils/resolveConfig.d.ts +7 -0
  63. package/lib-esm/providers/pinpoint/utils/resolveConfig.js +14 -0
  64. package/lib-esm/providers/pinpoint/utils/resolveCredentials.d.ts +12 -0
  65. package/lib-esm/providers/pinpoint/utils/resolveCredentials.js +20 -0
  66. package/lib-esm/setupTests.js +1 -0
  67. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  68. package/{lib/types/Analytics.d.ts → lib-esm/types/analytics.d.ts} +0 -8
  69. package/lib-esm/types/index.d.ts +1 -3
  70. package/lib-esm/types/index.js +1 -3
  71. package/lib-esm/utils/{UserAgent.d.ts → userAgent.d.ts} +1 -1
  72. package/lib-esm/utils/{UserAgent.js → userAgent.js} +1 -1
  73. package/package.json +11 -29
  74. package/src/errors/AnalyticsError.ts +18 -0
  75. package/src/errors/assertValidationError.ts +19 -0
  76. package/src/errors/index.ts +6 -0
  77. package/src/errors/validation.ts +31 -0
  78. package/src/index.ts +0 -15
  79. package/src/providers/pinpoint/apis/identifyUser.ts +35 -0
  80. package/src/{utils/AppUtils.ts → providers/pinpoint/apis/index.ts} +2 -4
  81. package/src/providers/pinpoint/apis/record.ts +50 -0
  82. package/src/providers/pinpoint/index.ts +1 -3
  83. package/src/providers/pinpoint/types/errors.ts +12 -0
  84. package/src/providers/pinpoint/types/index.ts +5 -0
  85. package/src/providers/pinpoint/types/parameters.ts +24 -0
  86. package/src/providers/pinpoint/utils/index.ts +5 -0
  87. package/src/providers/pinpoint/utils/resolveConfig.ts +18 -0
  88. package/src/providers/pinpoint/utils/resolveCredentials.ts +20 -0
  89. package/src/types/{Analytics.ts → analytics.ts} +1 -10
  90. package/src/types/index.ts +1 -3
  91. package/src/utils/{UserAgent.ts → userAgent.ts} +1 -1
  92. package/lib/Analytics.d.ts +0 -87
  93. package/lib/Analytics.js +0 -354
  94. package/lib/providers/AWSKinesisFirehoseProvider.d.ts +0 -12
  95. package/lib/providers/AWSKinesisFirehoseProvider.js +0 -82
  96. package/lib/providers/AWSKinesisProvider.d.ts +0 -43
  97. package/lib/providers/AWSKinesisProvider.js +0 -240
  98. package/lib/providers/AWSPinpointProvider.d.ts +0 -67
  99. package/lib/providers/AWSPinpointProvider.js +0 -576
  100. package/lib/providers/AmazonPersonalizeHelper/DataType.d.ts +0 -40
  101. package/lib/providers/AmazonPersonalizeHelper/MediaAutoTrack.d.ts +0 -20
  102. package/lib/providers/AmazonPersonalizeHelper/MediaAutoTrack.js +0 -156
  103. package/lib/providers/AmazonPersonalizeHelper/SessionInfoManager.d.ts +0 -17
  104. package/lib/providers/AmazonPersonalizeHelper/SessionInfoManager.js +0 -96
  105. package/lib/providers/AmazonPersonalizeHelper/index.d.ts +0 -3
  106. package/lib/providers/AmazonPersonalizeHelper/index.js +0 -7
  107. package/lib/providers/AmazonPersonalizeProvider.d.ts +0 -76
  108. package/lib/providers/AmazonPersonalizeProvider.js +0 -331
  109. package/lib/providers/EventBuffer.d.ts +0 -28
  110. package/lib/providers/EventBuffer.js +0 -209
  111. package/lib/providers/index.d.ts +0 -4
  112. package/lib/providers/index.js +0 -14
  113. package/lib/trackers/EventTracker.d.ts +0 -9
  114. package/lib/trackers/EventTracker.js +0 -99
  115. package/lib/trackers/PageViewTracker.d.ts +0 -12
  116. package/lib/trackers/PageViewTracker.js +0 -158
  117. package/lib/trackers/SessionTracker-rn.d.ts +0 -12
  118. package/lib/trackers/SessionTracker-rn.js +0 -134
  119. package/lib/trackers/SessionTracker.d.ts +0 -14
  120. package/lib/trackers/SessionTracker.js +0 -163
  121. package/lib/trackers/index.d.ts +0 -3
  122. package/lib/trackers/index.js +0 -11
  123. package/lib/trackers/reactnative.d.ts +0 -8
  124. package/lib/trackers/reactnative.js +0 -19
  125. package/lib/types/Analytics.js +0 -2
  126. package/lib/types/Provider.d.ts +0 -10
  127. package/lib/types/providers/AWSKinesisProvider.d.ts +0 -6
  128. package/lib/types/providers/AWSKinesisProvider.js +0 -2
  129. package/lib/types/providers/AWSPinpointProvider.d.ts +0 -50
  130. package/lib/types/providers/AWSPinpointProvider.js +0 -2
  131. package/lib/types/providers/AmazonPersonalizeProvider.d.ts +0 -7
  132. package/lib/types/providers/AmazonPersonalizeProvider.js +0 -2
  133. package/lib/types/providers/index.d.ts +0 -1
  134. package/lib/types/providers/index.js +0 -6
  135. package/lib/utils/AppUtils.d.ts +0 -2
  136. package/lib/utils/AppUtils.js +0 -9
  137. package/lib/utils/AppUtils.native.d.ts +0 -2
  138. package/lib/utils/AppUtils.native.js +0 -10
  139. package/lib/utils/MethodEmbed.d.ts +0 -11
  140. package/lib/utils/MethodEmbed.js +0 -43
  141. package/lib/vendor/dom-utils/closest.d.ts +0 -12
  142. package/lib/vendor/dom-utils/closest.js +0 -27
  143. package/lib/vendor/dom-utils/delegate.d.ts +0 -18
  144. package/lib/vendor/dom-utils/delegate.js +0 -51
  145. package/lib/vendor/dom-utils/dispatch.d.ts +0 -17
  146. package/lib/vendor/dom-utils/dispatch.js +0 -51
  147. package/lib/vendor/dom-utils/get-attributes.d.ts +0 -11
  148. package/lib/vendor/dom-utils/get-attributes.js +0 -28
  149. package/lib/vendor/dom-utils/index.d.ts +0 -7
  150. package/lib/vendor/dom-utils/index.js +0 -17
  151. package/lib/vendor/dom-utils/matches.d.ts +0 -11
  152. package/lib/vendor/dom-utils/matches.js +0 -69
  153. package/lib/vendor/dom-utils/parents.d.ts +0 -10
  154. package/lib/vendor/dom-utils/parents.js +0 -22
  155. package/lib/vendor/dom-utils/parse-url.d.ts +0 -9
  156. package/lib/vendor/dom-utils/parse-url.js +0 -59
  157. package/lib-esm/Analytics.d.ts +0 -87
  158. package/lib-esm/Analytics.js +0 -351
  159. package/lib-esm/providers/AWSKinesisFirehoseProvider.d.ts +0 -12
  160. package/lib-esm/providers/AWSKinesisFirehoseProvider.js +0 -79
  161. package/lib-esm/providers/AWSKinesisProvider.d.ts +0 -43
  162. package/lib-esm/providers/AWSKinesisProvider.js +0 -237
  163. package/lib-esm/providers/AWSPinpointProvider.d.ts +0 -67
  164. package/lib-esm/providers/AWSPinpointProvider.js +0 -573
  165. package/lib-esm/providers/AmazonPersonalizeHelper/DataType.d.ts +0 -40
  166. package/lib-esm/providers/AmazonPersonalizeHelper/MediaAutoTrack.d.ts +0 -20
  167. package/lib-esm/providers/AmazonPersonalizeHelper/MediaAutoTrack.js +0 -153
  168. package/lib-esm/providers/AmazonPersonalizeHelper/SessionInfoManager.d.ts +0 -17
  169. package/lib-esm/providers/AmazonPersonalizeHelper/SessionInfoManager.js +0 -92
  170. package/lib-esm/providers/AmazonPersonalizeHelper/index.d.ts +0 -3
  171. package/lib-esm/providers/AmazonPersonalizeHelper/index.js +0 -2
  172. package/lib-esm/providers/AmazonPersonalizeProvider.d.ts +0 -76
  173. package/lib-esm/providers/AmazonPersonalizeProvider.js +0 -328
  174. package/lib-esm/providers/EventBuffer.d.ts +0 -28
  175. package/lib-esm/providers/EventBuffer.js +0 -207
  176. package/lib-esm/providers/index.d.ts +0 -4
  177. package/lib-esm/providers/index.js +0 -7
  178. package/lib-esm/trackers/EventTracker.d.ts +0 -9
  179. package/lib-esm/trackers/EventTracker.js +0 -96
  180. package/lib-esm/trackers/PageViewTracker.d.ts +0 -12
  181. package/lib-esm/trackers/PageViewTracker.js +0 -155
  182. package/lib-esm/trackers/SessionTracker-rn.d.ts +0 -12
  183. package/lib-esm/trackers/SessionTracker-rn.js +0 -131
  184. package/lib-esm/trackers/SessionTracker.d.ts +0 -14
  185. package/lib-esm/trackers/SessionTracker.js +0 -160
  186. package/lib-esm/trackers/index.d.ts +0 -3
  187. package/lib-esm/trackers/index.js +0 -5
  188. package/lib-esm/trackers/reactnative.d.ts +0 -8
  189. package/lib-esm/trackers/reactnative.js +0 -14
  190. package/lib-esm/types/Analytics.js +0 -1
  191. package/lib-esm/types/Provider.d.ts +0 -10
  192. package/lib-esm/types/providers/AWSKinesisProvider.d.ts +0 -6
  193. package/lib-esm/types/providers/AWSKinesisProvider.js +0 -1
  194. package/lib-esm/types/providers/AWSPinpointProvider.d.ts +0 -50
  195. package/lib-esm/types/providers/AWSPinpointProvider.js +0 -1
  196. package/lib-esm/types/providers/AmazonPersonalizeProvider.d.ts +0 -7
  197. package/lib-esm/types/providers/AmazonPersonalizeProvider.js +0 -1
  198. package/lib-esm/types/providers/index.d.ts +0 -1
  199. package/lib-esm/utils/AppUtils.d.ts +0 -2
  200. package/lib-esm/utils/AppUtils.native.d.ts +0 -2
  201. package/lib-esm/utils/AppUtils.native.js +0 -7
  202. package/lib-esm/utils/MethodEmbed.d.ts +0 -11
  203. package/lib-esm/utils/MethodEmbed.js +0 -40
  204. package/lib-esm/vendor/dom-utils/closest.d.ts +0 -12
  205. package/lib-esm/vendor/dom-utils/closest.js +0 -23
  206. package/lib-esm/vendor/dom-utils/delegate.d.ts +0 -18
  207. package/lib-esm/vendor/dom-utils/delegate.js +0 -47
  208. package/lib-esm/vendor/dom-utils/dispatch.d.ts +0 -17
  209. package/lib-esm/vendor/dom-utils/dispatch.js +0 -47
  210. package/lib-esm/vendor/dom-utils/get-attributes.d.ts +0 -11
  211. package/lib-esm/vendor/dom-utils/get-attributes.js +0 -24
  212. package/lib-esm/vendor/dom-utils/index.d.ts +0 -7
  213. package/lib-esm/vendor/dom-utils/index.js +0 -7
  214. package/lib-esm/vendor/dom-utils/matches.d.ts +0 -11
  215. package/lib-esm/vendor/dom-utils/matches.js +0 -65
  216. package/lib-esm/vendor/dom-utils/parents.d.ts +0 -10
  217. package/lib-esm/vendor/dom-utils/parents.js +0 -18
  218. package/lib-esm/vendor/dom-utils/parse-url.d.ts +0 -9
  219. package/lib-esm/vendor/dom-utils/parse-url.js +0 -55
  220. package/src/Analytics.ts +0 -446
  221. package/src/providers/AWSKinesisFirehoseProvider.ts +0 -105
  222. package/src/providers/AWSKinesisProvider.ts +0 -250
  223. package/src/providers/AWSPinpointProvider.ts +0 -685
  224. package/src/providers/AmazonPersonalizeHelper/DataType.ts +0 -49
  225. package/src/providers/AmazonPersonalizeHelper/MediaAutoTrack.ts +0 -196
  226. package/src/providers/AmazonPersonalizeHelper/SessionInfoManager.ts +0 -121
  227. package/src/providers/AmazonPersonalizeHelper/index.ts +0 -11
  228. package/src/providers/AmazonPersonalizeProvider.ts +0 -398
  229. package/src/providers/EventBuffer.ts +0 -257
  230. package/src/providers/index.ts +0 -8
  231. package/src/trackers/EventTracker.ts +0 -115
  232. package/src/trackers/PageViewTracker.ts +0 -157
  233. package/src/trackers/SessionTracker-rn.ts +0 -134
  234. package/src/trackers/SessionTracker.ts +0 -179
  235. package/src/trackers/index.ts +0 -5
  236. package/src/trackers/reactnative.ts +0 -13
  237. package/src/types/Provider.ts +0 -26
  238. package/src/types/providers/AWSKinesisProvider.ts +0 -8
  239. package/src/types/providers/AWSPinpointProvider.ts +0 -60
  240. package/src/types/providers/AmazonPersonalizeProvider.ts +0 -9
  241. package/src/utils/AppUtils.native.ts +0 -9
  242. package/src/utils/MethodEmbed.ts +0 -49
  243. package/src/vendor/dom-utils/closest.ts +0 -25
  244. package/src/vendor/dom-utils/delegate.ts +0 -51
  245. package/src/vendor/dom-utils/dispatch.ts +0 -59
  246. package/src/vendor/dom-utils/get-attributes.ts +0 -26
  247. package/src/vendor/dom-utils/index.ts +0 -7
  248. package/src/vendor/dom-utils/matches.ts +0 -68
  249. package/src/vendor/dom-utils/parents.ts +0 -19
  250. package/src/vendor/dom-utils/parse-url.ts +0 -66
  251. /package/lib/{types/Provider.js → providers/pinpoint/types/parameters.js} +0 -0
  252. /package/lib/{providers/AmazonPersonalizeHelper/DataType.js → types/analytics.js} +0 -0
  253. /package/lib-esm/{types/Provider.js → providers/pinpoint/types/parameters.js} +0 -0
  254. /package/lib-esm/{providers/AmazonPersonalizeHelper/DataType.js → types/analytics.js} +0 -0
@@ -1,28 +0,0 @@
1
- import { EventObject } from '../types';
2
- type EventsBufferConfig = {
3
- bufferSize: number;
4
- flushSize: number;
5
- flushInterval: number;
6
- resendLimit: number;
7
- };
8
- export default class EventsBuffer {
9
- private _config;
10
- private _interval;
11
- private _buffer;
12
- private _pause;
13
- private _flush;
14
- constructor(config: EventsBufferConfig);
15
- push(event: EventObject): any;
16
- pause(): void;
17
- resume(): void;
18
- flush(): void;
19
- private _startLoop;
20
- private _sendBatch;
21
- private _putEvents;
22
- private _generateBatchEventParams;
23
- private _handlePutEventsFailure;
24
- private _processPutEventsSuccessResponse;
25
- private _retry;
26
- private _bufferToMap;
27
- }
28
- export {};
@@ -1,207 +0,0 @@
1
- import { __awaiter, __generator, __read, __spreadArray } from "tslib";
2
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
- // SPDX-License-Identifier: Apache-2.0
4
- import { AnalyticsAction, ConsoleLogger as Logger } from '@aws-amplify/core';
5
- import { putEvents, } from '@aws-amplify/core/internals/aws-clients/pinpoint';
6
- import { isAppInForeground } from '../utils/AppUtils';
7
- import { getAnalyticsUserAgentString } from '../utils/UserAgent';
8
- var logger = new Logger('EventsBuffer');
9
- var RETRYABLE_CODES = [429, 500];
10
- var ACCEPTED_CODES = [202];
11
- var EventsBuffer = /** @class */ (function () {
12
- function EventsBuffer(config) {
13
- this._pause = false;
14
- this._flush = false;
15
- logger.debug('Instantiating buffer with config:', config);
16
- this._buffer = [];
17
- this._config = config;
18
- this._sendBatch = this._sendBatch.bind(this);
19
- this._startLoop();
20
- }
21
- EventsBuffer.prototype.push = function (event) {
22
- var _a;
23
- // if the buffer is currently at the configured limit, pushing would exceed it
24
- if (this._buffer.length >= this._config.bufferSize) {
25
- logger.debug('Exceeded analytics events buffer size');
26
- return event.handlers.reject(new Error('Exceeded the size of analytics events buffer'));
27
- }
28
- var eventId = event.params.event.eventId;
29
- var bufferElement = (_a = {}, _a[eventId] = event, _a);
30
- this._buffer.push(bufferElement);
31
- };
32
- EventsBuffer.prototype.pause = function () {
33
- this._pause = true;
34
- };
35
- EventsBuffer.prototype.resume = function () {
36
- this._pause = false;
37
- };
38
- EventsBuffer.prototype.flush = function () {
39
- this._flush = true;
40
- };
41
- EventsBuffer.prototype._startLoop = function () {
42
- if (this._interval) {
43
- clearInterval(this._interval);
44
- }
45
- var flushInterval = this._config.flushInterval;
46
- this._interval = setInterval(this._sendBatch, flushInterval);
47
- };
48
- EventsBuffer.prototype._sendBatch = function () {
49
- var bufferLength = this._buffer.length;
50
- if (this._flush && !bufferLength) {
51
- clearInterval(this._interval);
52
- }
53
- // Do not send the batch of events if
54
- // the Buffer is paused or is empty or the App is not in the foreground
55
- // Apps should be in the foreground since
56
- // the OS may restrict access to the network in the background
57
- if (this._pause || !bufferLength || !isAppInForeground()) {
58
- return;
59
- }
60
- var flushSize = this._config.flushSize;
61
- var batchSize = Math.min(flushSize, bufferLength);
62
- var bufferSubset = this._buffer.splice(0, batchSize);
63
- this._putEvents(bufferSubset);
64
- };
65
- EventsBuffer.prototype._putEvents = function (buffer) {
66
- return __awaiter(this, void 0, void 0, function () {
67
- var eventMap, batchEventParams, _a, credentials, region, data, err_1;
68
- return __generator(this, function (_b) {
69
- switch (_b.label) {
70
- case 0:
71
- eventMap = this._bufferToMap(buffer);
72
- batchEventParams = this._generateBatchEventParams(eventMap);
73
- _b.label = 1;
74
- case 1:
75
- _b.trys.push([1, 3, , 4]);
76
- _a = this._config, credentials = _a.credentials, region = _a.region;
77
- return [4 /*yield*/, putEvents({
78
- credentials: credentials,
79
- region: region,
80
- userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
81
- }, batchEventParams)];
82
- case 2:
83
- data = _b.sent();
84
- this._processPutEventsSuccessResponse(data, eventMap);
85
- return [3 /*break*/, 4];
86
- case 3:
87
- err_1 = _b.sent();
88
- return [2 /*return*/, this._handlePutEventsFailure(err_1, eventMap)];
89
- case 4: return [2 /*return*/];
90
- }
91
- });
92
- });
93
- };
94
- EventsBuffer.prototype._generateBatchEventParams = function (eventMap) {
95
- var batchEventParams = {
96
- ApplicationId: '',
97
- EventsRequest: {
98
- BatchItem: {},
99
- },
100
- };
101
- Object.values(eventMap).forEach(function (item) {
102
- var params = item.params;
103
- var event = params.event, timestamp = params.timestamp, config = params.config;
104
- var name = event.name, attributes = event.attributes, metrics = event.metrics, eventId = event.eventId, session = event.session;
105
- var appId = config.appId, endpointId = config.endpointId;
106
- var batchItem = batchEventParams.EventsRequest.BatchItem;
107
- batchEventParams.ApplicationId = batchEventParams.ApplicationId || appId;
108
- if (!batchItem[endpointId]) {
109
- batchItem[endpointId] = {
110
- Endpoint: {},
111
- Events: {},
112
- };
113
- }
114
- batchItem[endpointId].Events[eventId] = {
115
- EventType: name,
116
- Timestamp: new Date(timestamp).toISOString(),
117
- Attributes: attributes,
118
- Metrics: metrics,
119
- Session: session,
120
- };
121
- });
122
- return batchEventParams;
123
- };
124
- EventsBuffer.prototype._handlePutEventsFailure = function (err, eventMap) {
125
- logger.debug('_putEvents Failed: ', err);
126
- var statusCode = err.$metadata && err.$metadata.httpStatusCode;
127
- if (RETRYABLE_CODES.includes(statusCode)) {
128
- var retryableEvents = Object.values(eventMap);
129
- this._retry(retryableEvents);
130
- return;
131
- }
132
- };
133
- EventsBuffer.prototype._processPutEventsSuccessResponse = function (data, eventMap) {
134
- var _a;
135
- var _b = ((_a = data.EventsResponse) !== null && _a !== void 0 ? _a : {}).Results, Results = _b === void 0 ? {} : _b;
136
- var retryableEvents = [];
137
- Object.entries(Results).forEach(function (_a) {
138
- var _b;
139
- var _c = __read(_a, 2), endpointId = _c[0], endpointValues = _c[1];
140
- var responses = (_b = endpointValues.EventsItemResponse) !== null && _b !== void 0 ? _b : {};
141
- Object.entries(responses).forEach(function (_a) {
142
- var _b, _c;
143
- var _d = __read(_a, 2), eventId = _d[0], eventValues = _d[1];
144
- var eventObject = eventMap[eventId];
145
- if (!eventObject) {
146
- return;
147
- }
148
- var _e = eventValues !== null && eventValues !== void 0 ? eventValues : {}, StatusCode = _e.StatusCode, Message = _e.Message;
149
- // manually crafting handlers response to keep API consistant
150
- var response = {
151
- EventsResponse: {
152
- Results: (_b = {},
153
- _b[endpointId] = {
154
- EventsItemResponse: (_c = {},
155
- _c[eventId] = { StatusCode: StatusCode, Message: Message },
156
- _c),
157
- },
158
- _b),
159
- },
160
- };
161
- if (StatusCode && ACCEPTED_CODES.includes(StatusCode)) {
162
- eventObject.handlers.resolve(response);
163
- return;
164
- }
165
- if (StatusCode && RETRYABLE_CODES.includes(StatusCode)) {
166
- retryableEvents.push(eventObject);
167
- return;
168
- }
169
- var name = eventObject.params.event.name;
170
- logger.error("event ".concat(eventId, " : ").concat(name, " failed with error: ").concat(Message));
171
- return eventObject.handlers.reject(response);
172
- });
173
- });
174
- if (retryableEvents.length) {
175
- this._retry(retryableEvents);
176
- }
177
- };
178
- EventsBuffer.prototype._retry = function (retryableEvents) {
179
- var _a;
180
- // retryable events that haven't reached the resendLimit
181
- var eligibleEvents = [];
182
- retryableEvents.forEach(function (event) {
183
- var _a;
184
- var params = event.params;
185
- var _b = params.event, eventId = _b.eventId, name = _b.name;
186
- if (params.resendLimit-- > 0) {
187
- logger.debug("resending event ".concat(eventId, " : ").concat(name, " with ").concat(params.resendLimit, " retry attempts remaining"));
188
- eligibleEvents.push((_a = {}, _a[eventId] = event, _a));
189
- return;
190
- }
191
- logger.debug("no retry attempts remaining for event ".concat(eventId, " : ").concat(name));
192
- });
193
- // add the events to the front of the buffer
194
- (_a = this._buffer).unshift.apply(_a, __spreadArray([], __read(eligibleEvents), false));
195
- };
196
- // convert buffer to map, i.e. { eventId1: { params, handler }, eventId2: { params, handlers } }
197
- // this allows us to easily access the handlers after receiving a batch response
198
- EventsBuffer.prototype._bufferToMap = function (buffer) {
199
- return buffer.reduce(function (acc, curVal) {
200
- var _a = __read(Object.entries(curVal), 1), _b = __read(_a[0], 2), key = _b[0], value = _b[1];
201
- acc[key] = value;
202
- return acc;
203
- }, {});
204
- };
205
- return EventsBuffer;
206
- }());
207
- export default EventsBuffer;
@@ -1,4 +0,0 @@
1
- export { AWSPinpointProvider } from './AWSPinpointProvider';
2
- export { AWSKinesisProvider } from './AWSKinesisProvider';
3
- export { AWSKinesisFirehoseProvider } from './AWSKinesisFirehoseProvider';
4
- export { AmazonPersonalizeProvider } from './AmazonPersonalizeProvider';
@@ -1,7 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- export { AWSPinpointProvider } from './AWSPinpointProvider';
4
- // TODO(v6) Refactor as additional Analytics providers come online
5
- export { AWSKinesisProvider } from './AWSKinesisProvider';
6
- export { AWSKinesisFirehoseProvider } from './AWSKinesisFirehoseProvider';
7
- export { AmazonPersonalizeProvider } from './AmazonPersonalizeProvider';
@@ -1,9 +0,0 @@
1
- import { EventTrackOpts } from '../types';
2
- export declare class EventTracker {
3
- private _tracker;
4
- private _config;
5
- private _delegates;
6
- constructor(tracker: any, opts: any);
7
- configure(opts?: EventTrackOpts): EventTrackOpts;
8
- private _trackFunc;
9
- }
@@ -1,96 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { __awaiter, __generator } from "tslib";
4
- import { delegate } from '../vendor/dom-utils';
5
- import { ConsoleLogger as Logger, browserOrNode } from '@aws-amplify/core';
6
- var logger = new Logger('EventTracker');
7
- var defaultOpts = {
8
- enable: false,
9
- events: ['click'],
10
- selectorPrefix: 'data-amplify-analytics-',
11
- provider: 'AWSPinpoint',
12
- };
13
- var EventTracker = /** @class */ (function () {
14
- function EventTracker(tracker, opts) {
15
- if (!browserOrNode().isBrowser || !window.addEventListener) {
16
- logger.debug('not in the supported web environment');
17
- return;
18
- }
19
- this._config = Object.assign({}, defaultOpts, opts);
20
- this._tracker = tracker;
21
- this._delegates = {};
22
- this._trackFunc = this._trackFunc.bind(this);
23
- logger.debug('initialize pageview tracker with opts', this._config);
24
- this.configure(this._config);
25
- }
26
- EventTracker.prototype.configure = function (opts) {
27
- var _this = this;
28
- Object.assign(this._config, opts);
29
- if (!this._config.enable) {
30
- Object.keys(this._delegates).forEach(function (key) {
31
- if (typeof _this._delegates[key].destroy === 'function')
32
- _this._delegates[key].destroy();
33
- });
34
- this._delegates = {};
35
- }
36
- else if (this._config.enable &&
37
- Object.keys(this._delegates).length === 0) {
38
- var selector_1 = '[' + this._config.selectorPrefix + 'on]';
39
- this._config.events.forEach(function (evt) {
40
- _this._delegates[evt] = delegate(document, evt, selector_1, _this._trackFunc, { composed: true, useCapture: true });
41
- });
42
- }
43
- return this._config;
44
- };
45
- EventTracker.prototype._trackFunc = function (event, element) {
46
- return __awaiter(this, void 0, void 0, function () {
47
- var customAttrs, events, eventName, attrs, defaultAttrs, _a, attributes;
48
- return __generator(this, function (_b) {
49
- switch (_b.label) {
50
- case 0:
51
- customAttrs = {};
52
- events = element
53
- .getAttribute(this._config.selectorPrefix + 'on')
54
- .split(/\s*,\s*/);
55
- eventName = element.getAttribute(this._config.selectorPrefix + 'name');
56
- attrs = element.getAttribute(this._config.selectorPrefix + 'attrs');
57
- if (attrs) {
58
- attrs.split(/\s*,\s*/).forEach(function (attr) {
59
- var tmp = attr.trim().split(/\s*:\s*/);
60
- customAttrs[tmp[0]] = tmp[1];
61
- });
62
- }
63
- if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2];
64
- return [4 /*yield*/, this._config.attributes()];
65
- case 1:
66
- _a = _b.sent();
67
- return [3 /*break*/, 3];
68
- case 2:
69
- _a = this._config.attributes;
70
- _b.label = 3;
71
- case 3:
72
- defaultAttrs = _a;
73
- attributes = Object.assign({
74
- type: event.type,
75
- target: "".concat(event.target.localName, " with id ").concat(event.target.id),
76
- }, defaultAttrs, customAttrs);
77
- logger.debug('events needed to be recorded', events);
78
- logger.debug('attributes needed to be attached', customAttrs);
79
- if (events.indexOf(event.type) < 0) {
80
- logger.debug("event ".concat(event.type, " is not selected to be recorded"));
81
- return [2 /*return*/];
82
- }
83
- this._tracker({
84
- name: eventName || 'event',
85
- attributes: attributes,
86
- }, this._config.provider).catch(function (e) {
87
- logger.debug("Failed to record the ".concat(event.type, " event', ").concat(e));
88
- });
89
- return [2 /*return*/];
90
- }
91
- });
92
- });
93
- };
94
- return EventTracker;
95
- }());
96
- export { EventTracker };
@@ -1,12 +0,0 @@
1
- import { pageViewTrackOpts } from '../types';
2
- export declare class PageViewTracker {
3
- private _config;
4
- private _tracker;
5
- private _hasEnabled;
6
- constructor(tracker: any, opts: any);
7
- configure(opts?: pageViewTrackOpts): pageViewTrackOpts;
8
- private _isSameUrl;
9
- private _pageViewTrackDefault;
10
- private _trackFunc;
11
- private _pageViewTrackSPA;
12
- }
@@ -1,155 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { __awaiter, __generator } from "tslib";
4
- import { MethodEmbed } from '../utils/MethodEmbed';
5
- import { ConsoleLogger as Logger, browserOrNode } from '@aws-amplify/core';
6
- var logger = new Logger('PageViewTracker');
7
- var PREV_URL_KEY = 'aws-amplify-analytics-prevUrl';
8
- var getUrl = function () {
9
- if (!browserOrNode().isBrowser)
10
- return '';
11
- else
12
- return window.location.origin + window.location.pathname;
13
- };
14
- var defaultOpts = {
15
- enable: false,
16
- provider: 'AWSPinpoint',
17
- getUrl: getUrl,
18
- };
19
- var PageViewTracker = /** @class */ (function () {
20
- function PageViewTracker(tracker, opts) {
21
- logger.debug('initialize pageview tracker with opts', opts);
22
- this._config = Object.assign({}, defaultOpts, opts);
23
- this._tracker = tracker;
24
- this._hasEnabled = false;
25
- this._trackFunc = this._trackFunc.bind(this);
26
- if (this._config.type === 'SPA') {
27
- this._pageViewTrackSPA();
28
- }
29
- else {
30
- this._pageViewTrackDefault();
31
- }
32
- }
33
- PageViewTracker.prototype.configure = function (opts) {
34
- Object.assign(this._config, opts);
35
- // if spa, need to remove those listeners if disabled
36
- if (this._config.type === 'SPA') {
37
- this._pageViewTrackSPA();
38
- }
39
- return this._config;
40
- };
41
- PageViewTracker.prototype._isSameUrl = function () {
42
- var prevUrl = sessionStorage.getItem(PREV_URL_KEY);
43
- var curUrl = this._config.getUrl();
44
- if (prevUrl === curUrl) {
45
- logger.debug('the url is same');
46
- return true;
47
- }
48
- else
49
- return false;
50
- };
51
- PageViewTracker.prototype._pageViewTrackDefault = function () {
52
- return __awaiter(this, void 0, void 0, function () {
53
- var url, customAttrs, _a, attributes;
54
- return __generator(this, function (_b) {
55
- switch (_b.label) {
56
- case 0:
57
- if (!browserOrNode().isBrowser ||
58
- !window.addEventListener ||
59
- !window.sessionStorage) {
60
- logger.debug('not in the supported web enviroment');
61
- return [2 /*return*/];
62
- }
63
- url = this._config.getUrl();
64
- if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2];
65
- return [4 /*yield*/, this._config.attributes()];
66
- case 1:
67
- _a = _b.sent();
68
- return [3 /*break*/, 3];
69
- case 2:
70
- _a = this._config.attributes;
71
- _b.label = 3;
72
- case 3:
73
- customAttrs = _a;
74
- attributes = Object.assign({
75
- url: url,
76
- }, customAttrs);
77
- if (this._config.enable && !this._isSameUrl()) {
78
- this._tracker({
79
- name: this._config.eventName || 'pageView',
80
- attributes: attributes,
81
- }, this._config.provider).catch(function (e) {
82
- logger.debug('Failed to record the page view event', e);
83
- });
84
- sessionStorage.setItem(PREV_URL_KEY, url);
85
- }
86
- return [2 /*return*/];
87
- }
88
- });
89
- });
90
- };
91
- PageViewTracker.prototype._trackFunc = function () {
92
- return __awaiter(this, void 0, void 0, function () {
93
- var url, customAttrs, _a, attributes;
94
- return __generator(this, function (_b) {
95
- switch (_b.label) {
96
- case 0:
97
- if (!browserOrNode().isBrowser ||
98
- !window.addEventListener ||
99
- !history.pushState ||
100
- !window.sessionStorage) {
101
- logger.debug('not in the supported web enviroment');
102
- return [2 /*return*/];
103
- }
104
- url = this._config.getUrl();
105
- if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2];
106
- return [4 /*yield*/, this._config.attributes()];
107
- case 1:
108
- _a = _b.sent();
109
- return [3 /*break*/, 3];
110
- case 2:
111
- _a = this._config.attributes;
112
- _b.label = 3;
113
- case 3:
114
- customAttrs = _a;
115
- attributes = Object.assign({
116
- url: url,
117
- }, customAttrs);
118
- if (!this._isSameUrl()) {
119
- this._tracker({
120
- name: this._config.eventName || 'pageView',
121
- attributes: attributes,
122
- }, this._config.provider).catch(function (e) {
123
- logger.debug('Failed to record the page view event', e);
124
- });
125
- sessionStorage.setItem(PREV_URL_KEY, url);
126
- }
127
- return [2 /*return*/];
128
- }
129
- });
130
- });
131
- };
132
- PageViewTracker.prototype._pageViewTrackSPA = function () {
133
- if (!browserOrNode().isBrowser ||
134
- !window.addEventListener ||
135
- !history.pushState) {
136
- logger.debug('not in the supported web enviroment');
137
- return;
138
- }
139
- if (this._config.enable && !this._hasEnabled) {
140
- MethodEmbed.add(history, 'pushState', this._trackFunc);
141
- MethodEmbed.add(history, 'replaceState', this._trackFunc);
142
- window.addEventListener('popstate', this._trackFunc);
143
- this._trackFunc();
144
- this._hasEnabled = true;
145
- }
146
- else {
147
- MethodEmbed.remove(history, 'pushState');
148
- MethodEmbed.remove(history, 'replaceState');
149
- window.removeEventListener('popstate', this._trackFunc);
150
- this._hasEnabled = false;
151
- }
152
- };
153
- return PageViewTracker;
154
- }());
155
- export { PageViewTracker };
@@ -1,12 +0,0 @@
1
- import { SessionTrackOpts } from '../types';
2
- export declare class SessionTracker {
3
- private _tracker;
4
- private _hasEnabled;
5
- private _config;
6
- private _currentState;
7
- constructor(tracker: any, opts: any);
8
- private _envCheck;
9
- private _trackFunc;
10
- private _sendInitialEvent;
11
- configure(opts?: SessionTrackOpts): SessionTrackOpts;
12
- }
@@ -1,131 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { __awaiter, __generator } from "tslib";
4
- // the session tracker for react native
5
- import { ConsoleLogger as Logger } from '@aws-amplify/core';
6
- import { AppState } from 'react-native';
7
- var logger = new Logger('SessionTracker');
8
- var defaultOpts = {
9
- enable: false,
10
- provider: 'AWSPinpoint',
11
- };
12
- var initialEventSent = false;
13
- var SessionTracker = /** @class */ (function () {
14
- function SessionTracker(tracker, opts) {
15
- this._config = Object.assign({}, defaultOpts, opts);
16
- this._tracker = tracker;
17
- this._hasEnabled = false;
18
- this._trackFunc = this._trackFunc.bind(this);
19
- this._currentState = AppState.currentState;
20
- this.configure(this._config);
21
- }
22
- SessionTracker.prototype._envCheck = function () {
23
- if (!AppState) {
24
- logger.debug('not in the supported react native environment');
25
- return false;
26
- }
27
- return true;
28
- };
29
- SessionTracker.prototype._trackFunc = function (nextAppState) {
30
- return __awaiter(this, void 0, void 0, function () {
31
- var customAttrs, _a, attributes;
32
- return __generator(this, function (_b) {
33
- switch (_b.label) {
34
- case 0:
35
- if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2];
36
- return [4 /*yield*/, this._config.attributes()];
37
- case 1:
38
- _a = _b.sent();
39
- return [3 /*break*/, 3];
40
- case 2:
41
- _a = this._config.attributes;
42
- _b.label = 3;
43
- case 3:
44
- customAttrs = _a;
45
- attributes = Object.assign({}, customAttrs);
46
- if (this._currentState.match(/inactive|background/) &&
47
- nextAppState === 'active') {
48
- logger.debug('App has come to the foreground, recording start session');
49
- this._tracker({
50
- name: '_session.start',
51
- attributes: attributes,
52
- immediate: false,
53
- }, this._config.provider).catch(function (e) {
54
- logger.debug('record session start event failed.', e);
55
- });
56
- }
57
- if (this._currentState.match(/active/) &&
58
- nextAppState.match(/inactive|background/)) {
59
- logger.debug('App has come to inactive/background, recording stop session');
60
- this._tracker({
61
- name: '_session.stop',
62
- attributes: attributes,
63
- immediate: false,
64
- }, this._config.provider).catch(function (e) {
65
- logger.debug('record session stop event failed.', e);
66
- });
67
- }
68
- this._currentState = nextAppState;
69
- return [2 /*return*/];
70
- }
71
- });
72
- });
73
- };
74
- // to keep configure a synchronized function
75
- SessionTracker.prototype._sendInitialEvent = function () {
76
- return __awaiter(this, void 0, void 0, function () {
77
- var customAttrs, _a, attributes;
78
- return __generator(this, function (_b) {
79
- switch (_b.label) {
80
- case 0:
81
- if (initialEventSent) {
82
- logger.debug('the start session has been sent when the page is loaded');
83
- return [2 /*return*/];
84
- }
85
- else {
86
- initialEventSent = true;
87
- }
88
- if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2];
89
- return [4 /*yield*/, this._config.attributes()];
90
- case 1:
91
- _a = _b.sent();
92
- return [3 /*break*/, 3];
93
- case 2:
94
- _a = this._config.attributes;
95
- _b.label = 3;
96
- case 3:
97
- customAttrs = _a;
98
- attributes = Object.assign({}, customAttrs);
99
- this._tracker({
100
- name: '_session.start',
101
- attributes: attributes,
102
- immediate: false,
103
- }, this._config.provider).catch(function (e) {
104
- logger.debug('record session start event failed.', e);
105
- });
106
- return [2 /*return*/];
107
- }
108
- });
109
- });
110
- };
111
- SessionTracker.prototype.configure = function (opts) {
112
- if (!this._envCheck()) {
113
- return this._config;
114
- }
115
- Object.assign(this._config, opts);
116
- if (this._config.enable && !this._hasEnabled) {
117
- // send a start session as soon as it's enabled
118
- this._sendInitialEvent();
119
- // listen on events
120
- AppState.addEventListener('change', this._trackFunc, false);
121
- this._hasEnabled = true;
122
- }
123
- else if (!this._config.enable && this._hasEnabled) {
124
- AppState.removeEventListener('change', this._trackFunc, false);
125
- this._hasEnabled = false;
126
- }
127
- return this._config;
128
- };
129
- return SessionTracker;
130
- }());
131
- export { SessionTracker };