@aws-amplify/analytics 7.0.1-console-preview.f63250a.0 → 7.0.1-console-preview.5dc0b68.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
package/lib/Analytics.js DELETED
@@ -1,354 +0,0 @@
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.Analytics = exports.AnalyticsClass = void 0;
6
- var tslib_1 = require("tslib");
7
- var core_1 = require("@aws-amplify/core");
8
- var AWSPinpointProvider_1 = require("./providers/AWSPinpointProvider");
9
- var trackers_1 = require("./trackers");
10
- var logger = new core_1.ConsoleLogger('AnalyticsClass');
11
- var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'
12
- ? Symbol.for('amplify_default')
13
- : '@@amplify_default');
14
- var dispatchAnalyticsEvent = function (event, data, message) {
15
- core_1.Hub.dispatch('analytics', { event: event, data: data, message: message }, 'Analytics', AMPLIFY_SYMBOL);
16
- };
17
- var trackers = {
18
- pageView: trackers_1.PageViewTracker,
19
- event: trackers_1.EventTracker,
20
- session: trackers_1.SessionTracker,
21
- };
22
- var _instance = null;
23
- /**
24
- * Provide mobile analytics client functions
25
- */
26
- var AnalyticsClass = /** @class */ (function () {
27
- /**
28
- * Initialize Analtyics
29
- * @param config - Configuration of the Analytics
30
- */
31
- function AnalyticsClass() {
32
- this._config = {};
33
- this._pluggables = [];
34
- this._disabled = false;
35
- this._trackers = {};
36
- _instance = this;
37
- this.record = this.record.bind(this);
38
- core_1.Hub.listen('auth', listener);
39
- core_1.Hub.listen('storage', listener);
40
- core_1.Hub.listen('analytics', listener);
41
- core_1.Hub.listen('core', listener);
42
- }
43
- AnalyticsClass.prototype.getModuleName = function () {
44
- return 'Analytics';
45
- };
46
- /**
47
- * configure Analytics
48
- * @param {Object} config - Configuration of the Analytics
49
- */
50
- AnalyticsClass.prototype.configure = function (config) {
51
- var _this = this;
52
- if (!config)
53
- return this._config;
54
- logger.debug('configure Analytics', config);
55
- var amplifyConfig = (0, core_1.parseAWSExports)(config);
56
- this._config = Object.assign({}, this._config, amplifyConfig.Analytics, config);
57
- if (this._config['disabled']) {
58
- this._disabled = true;
59
- }
60
- // turn on the autoSessionRecord if not specified
61
- if (this._config['autoSessionRecord'] === undefined) {
62
- this._config['autoSessionRecord'] = true;
63
- }
64
- this._pluggables.forEach(function (pluggable) {
65
- // for backward compatibility
66
- var providerConfig = pluggable.getProviderName() === 'AWSPinpoint' &&
67
- !_this._config['AWSPinpoint']
68
- ? _this._config
69
- : _this._config[pluggable.getProviderName()];
70
- pluggable.configure(tslib_1.__assign({ disabled: _this._config['disabled'], autoSessionRecord: _this._config['autoSessionRecord'] }, providerConfig));
71
- });
72
- if (this._pluggables.length === 0) {
73
- this.addPluggable(new AWSPinpointProvider_1.AWSPinpointProvider());
74
- }
75
- dispatchAnalyticsEvent('configured', null, "The Analytics category has been configured successfully");
76
- logger.debug('current configuration', this._config);
77
- return this._config;
78
- };
79
- /**
80
- * add plugin into Analytics category
81
- * @param pluggable - an instance of the plugin
82
- */
83
- AnalyticsClass.prototype.addPluggable = function (pluggable) {
84
- if (pluggable && pluggable.getCategory() === 'Analytics') {
85
- this._pluggables.push(pluggable);
86
- // for backward compatibility
87
- var providerConfig = pluggable.getProviderName() === 'AWSPinpoint' &&
88
- !this._config['AWSPinpoint']
89
- ? this._config
90
- : this._config[pluggable.getProviderName()];
91
- var config = tslib_1.__assign({ disabled: this._config['disabled'] }, providerConfig);
92
- pluggable.configure(config);
93
- return config;
94
- }
95
- };
96
- /**
97
- * Get the plugin object
98
- * @param providerName - the name of the provider to be removed
99
- */
100
- AnalyticsClass.prototype.getPluggable = function (providerName) {
101
- for (var i = 0; i < this._pluggables.length; i += 1) {
102
- var pluggable = this._pluggables[i];
103
- if (pluggable.getProviderName() === providerName) {
104
- return pluggable;
105
- }
106
- }
107
- logger.debug('No plugin found with providerName', providerName);
108
- return null;
109
- };
110
- /**
111
- * Remove the plugin object
112
- * @param providerName - the name of the provider to be removed
113
- */
114
- AnalyticsClass.prototype.removePluggable = function (providerName) {
115
- var idx = 0;
116
- while (idx < this._pluggables.length) {
117
- if (this._pluggables[idx].getProviderName() === providerName) {
118
- break;
119
- }
120
- idx += 1;
121
- }
122
- if (idx === this._pluggables.length) {
123
- logger.debug('No plugin found with providerName', providerName);
124
- return;
125
- }
126
- else {
127
- this._pluggables.splice(idx, idx + 1);
128
- return;
129
- }
130
- };
131
- /**
132
- * stop sending events
133
- */
134
- AnalyticsClass.prototype.disable = function () {
135
- this._disabled = true;
136
- };
137
- /**
138
- * start sending events
139
- */
140
- AnalyticsClass.prototype.enable = function () {
141
- this._disabled = false;
142
- };
143
- /**
144
- * Record Session start
145
- * @param [provider] - name of the provider.
146
- * @return - A promise which resolves if buffer doesn't overflow
147
- */
148
- AnalyticsClass.prototype.startSession = function (provider) {
149
- return tslib_1.__awaiter(this, void 0, void 0, function () {
150
- var event, params;
151
- return tslib_1.__generator(this, function (_a) {
152
- event = { name: '_session.start' };
153
- params = { event: event, provider: provider };
154
- dispatchAnalyticsEvent('record', event, 'Recording Analytics session start event');
155
- return [2 /*return*/, this._sendEvent(params)];
156
- });
157
- });
158
- };
159
- /**
160
- * Record Session stop
161
- * @param [provider] - name of the provider.
162
- * @return - A promise which resolves if buffer doesn't overflow
163
- */
164
- AnalyticsClass.prototype.stopSession = function (provider) {
165
- return tslib_1.__awaiter(this, void 0, void 0, function () {
166
- var event, params;
167
- return tslib_1.__generator(this, function (_a) {
168
- event = { name: '_session.stop' };
169
- params = { event: event, provider: provider };
170
- dispatchAnalyticsEvent('record', event, 'Recording Analytics session stop event');
171
- return [2 /*return*/, this._sendEvent(params)];
172
- });
173
- });
174
- };
175
- /**
176
- * Record one analytic event and send it to Pinpoint
177
- * @param event - An object with the name of the event, attributes of the event and event metrics.
178
- * @param [provider] - name of the provider.
179
- */
180
- AnalyticsClass.prototype.record = function (event, provider) {
181
- return tslib_1.__awaiter(this, void 0, void 0, function () {
182
- var params;
183
- return tslib_1.__generator(this, function (_a) {
184
- params = { event: event, provider: provider };
185
- dispatchAnalyticsEvent('record', params.event, 'Recording Analytics event');
186
- return [2 /*return*/, this._sendEvent(params)];
187
- });
188
- });
189
- };
190
- AnalyticsClass.prototype.updateEndpoint = function (attrs, provider) {
191
- return tslib_1.__awaiter(this, void 0, void 0, function () {
192
- var event;
193
- return tslib_1.__generator(this, function (_a) {
194
- event = tslib_1.__assign(tslib_1.__assign({}, attrs), { name: '_update_endpoint' });
195
- return [2 /*return*/, this.record(event, provider)];
196
- });
197
- });
198
- };
199
- AnalyticsClass.prototype._sendEvent = function (params) {
200
- var _this = this;
201
- if (this._disabled) {
202
- logger.debug('Analytics has been disabled');
203
- return Promise.resolve();
204
- }
205
- var provider = params.provider ? params.provider : 'AWSPinpoint';
206
- return new Promise(function (resolve, reject) {
207
- _this._pluggables.forEach(function (pluggable) {
208
- if (pluggable.getProviderName() === provider) {
209
- pluggable.record(params, { resolve: resolve, reject: reject });
210
- }
211
- });
212
- });
213
- };
214
- AnalyticsClass.prototype.autoTrack = function (trackerType, opts) {
215
- if (!trackers[trackerType]) {
216
- logger.debug('invalid tracker type');
217
- return;
218
- }
219
- // to sync up two different configuration ways of auto session tracking
220
- if (trackerType === 'session') {
221
- this._config['autoSessionRecord'] = opts['enable'];
222
- }
223
- var tracker = this._trackers[trackerType];
224
- if (!tracker) {
225
- this._trackers[trackerType] = new trackers[trackerType](this.record, opts);
226
- }
227
- else {
228
- tracker.configure(opts);
229
- }
230
- };
231
- return AnalyticsClass;
232
- }());
233
- exports.AnalyticsClass = AnalyticsClass;
234
- var endpointUpdated = false;
235
- var authConfigured = false;
236
- var analyticsConfigured = false;
237
- var credentialsConfigured = false;
238
- var listener = function (capsule) {
239
- var channel = capsule.channel, payload = capsule.payload;
240
- logger.debug('on hub capsule ' + channel, payload);
241
- switch (channel) {
242
- case 'auth':
243
- authEvent(payload);
244
- break;
245
- case 'storage':
246
- storageEvent(payload);
247
- break;
248
- case 'analytics':
249
- analyticsEvent(payload);
250
- break;
251
- case 'core':
252
- coreEvent(payload);
253
- break;
254
- default:
255
- break;
256
- }
257
- };
258
- var storageEvent = function (payload) {
259
- var _a = payload.data, attrs = _a.attrs, metrics = _a.metrics;
260
- if (!attrs)
261
- return;
262
- if (analyticsConfigured) {
263
- _instance
264
- .record({
265
- name: 'Storage',
266
- attributes: attrs,
267
- metrics: metrics,
268
- })
269
- .catch(function (e) {
270
- logger.debug('Failed to send the storage event automatically', e);
271
- });
272
- }
273
- };
274
- var authEvent = function (payload) {
275
- var event = payload.event;
276
- if (!event) {
277
- return;
278
- }
279
- var recordAuthEvent = function (eventName) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
280
- var err_1;
281
- return tslib_1.__generator(this, function (_a) {
282
- switch (_a.label) {
283
- case 0:
284
- if (!(authConfigured && analyticsConfigured)) return [3 /*break*/, 4];
285
- _a.label = 1;
286
- case 1:
287
- _a.trys.push([1, 3, , 4]);
288
- return [4 /*yield*/, _instance.record({ name: "_userauth.".concat(eventName) })];
289
- case 2: return [2 /*return*/, _a.sent()];
290
- case 3:
291
- err_1 = _a.sent();
292
- logger.debug("Failed to send the ".concat(eventName, " event automatically"), err_1);
293
- return [3 /*break*/, 4];
294
- case 4: return [2 /*return*/];
295
- }
296
- });
297
- }); };
298
- switch (event) {
299
- case 'signIn':
300
- return recordAuthEvent('sign_in');
301
- case 'signUp':
302
- return recordAuthEvent('sign_up');
303
- case 'signOut':
304
- return recordAuthEvent('sign_out');
305
- case 'signIn_failure':
306
- return recordAuthEvent('auth_fail');
307
- case 'configured':
308
- authConfigured = true;
309
- if (analyticsConfigured) {
310
- sendEvents();
311
- }
312
- break;
313
- }
314
- };
315
- var analyticsEvent = function (payload) {
316
- var event = payload.event;
317
- if (!event)
318
- return;
319
- switch (event) {
320
- case 'pinpointProvider_configured':
321
- analyticsConfigured = true;
322
- if (authConfigured || credentialsConfigured) {
323
- sendEvents();
324
- }
325
- break;
326
- }
327
- };
328
- var coreEvent = function (payload) {
329
- var event = payload.event;
330
- if (!event)
331
- return;
332
- switch (event) {
333
- case 'credentials_configured':
334
- credentialsConfigured = true;
335
- if (analyticsConfigured) {
336
- sendEvents();
337
- }
338
- break;
339
- }
340
- };
341
- var sendEvents = function () {
342
- var config = _instance.configure();
343
- if (!endpointUpdated && config['autoSessionRecord']) {
344
- _instance.updateEndpoint({ immediate: true }).catch(function (e) {
345
- logger.debug('Failed to update the endpoint', e);
346
- });
347
- endpointUpdated = true;
348
- }
349
- _instance.autoTrack('session', {
350
- enable: config['autoSessionRecord'],
351
- });
352
- };
353
- exports.Analytics = new AnalyticsClass();
354
- core_1.Amplify.register(exports.Analytics);
@@ -1,12 +0,0 @@
1
- import { AWSKinesisProvider } from './AWSKinesisProvider';
2
- export declare class AWSKinesisFirehoseProvider extends AWSKinesisProvider {
3
- private _kinesisFirehose;
4
- constructor(config?: any);
5
- /**
6
- * get provider name of the plugin
7
- */
8
- getProviderName(): string;
9
- protected _sendEvents(group: any): boolean;
10
- protected _init(config: any, credentials: any): boolean;
11
- private _initFirehose;
12
- }
@@ -1,82 +0,0 @@
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.AWSKinesisFirehoseProvider = void 0;
6
- var tslib_1 = require("tslib");
7
- var core_1 = require("@aws-amplify/core");
8
- var AWSKinesisProvider_1 = require("./AWSKinesisProvider");
9
- var client_firehose_1 = require("@aws-sdk/client-firehose");
10
- var util_utf8_browser_1 = require("@aws-sdk/util-utf8-browser");
11
- var UserAgent_1 = require("../utils/UserAgent");
12
- var logger = new core_1.ConsoleLogger('AWSKineisFirehoseProvider');
13
- var AWSKinesisFirehoseProvider = /** @class */ (function (_super) {
14
- tslib_1.__extends(AWSKinesisFirehoseProvider, _super);
15
- function AWSKinesisFirehoseProvider(config) {
16
- return _super.call(this, config) || this;
17
- }
18
- /**
19
- * get provider name of the plugin
20
- */
21
- AWSKinesisFirehoseProvider.prototype.getProviderName = function () {
22
- return 'AWSKinesisFirehose';
23
- };
24
- AWSKinesisFirehoseProvider.prototype._sendEvents = function (group) {
25
- var _this = this;
26
- if (group.length === 0) {
27
- return;
28
- }
29
- var _a = group[0], config = _a.config, credentials = _a.credentials;
30
- var initClients = this._init(config, credentials);
31
- if (!initClients)
32
- return false;
33
- var records = {};
34
- group.map(function (params) {
35
- // split by streamName
36
- var evt = params.event;
37
- var streamName = evt.streamName, data = evt.data;
38
- if (records[streamName] === undefined) {
39
- records[streamName] = [];
40
- }
41
- var bufferData = data && typeof data !== 'string' ? JSON.stringify(data) : data;
42
- var Data = (0, util_utf8_browser_1.fromUtf8)(bufferData);
43
- var record = { Data: Data };
44
- records[streamName].push(record);
45
- });
46
- Object.keys(records).map(function (streamName) {
47
- logger.debug('putting records to kinesis', streamName, 'with records', records[streamName]);
48
- _this._kinesisFirehose
49
- .send(new client_firehose_1.PutRecordBatchCommand({
50
- Records: records[streamName],
51
- DeliveryStreamName: streamName,
52
- }))
53
- .then(function (res) { return logger.debug('Upload records to stream', streamName); })
54
- .catch(function (err) { return logger.debug('Failed to upload records to Kinesis', err); });
55
- });
56
- };
57
- AWSKinesisFirehoseProvider.prototype._init = function (config, credentials) {
58
- logger.debug('init clients');
59
- if (this._kinesisFirehose &&
60
- this._config.credentials &&
61
- this._config.credentials.sessionToken === credentials.sessionToken &&
62
- this._config.credentials.identityId === credentials.identityId) {
63
- logger.debug('no change for analytics config, directly return from init');
64
- return true;
65
- }
66
- this._config.credentials = credentials;
67
- var region = config.region;
68
- return this._initFirehose(region, credentials);
69
- };
70
- AWSKinesisFirehoseProvider.prototype._initFirehose = function (region, credentials) {
71
- logger.debug('initialize kinesis firehose with credentials', credentials);
72
- this._kinesisFirehose = new client_firehose_1.FirehoseClient({
73
- apiVersion: '2015-08-04',
74
- region: region,
75
- credentials: credentials,
76
- customUserAgent: (0, UserAgent_1.getAnalyticsUserAgent)(core_1.AnalyticsAction.Record),
77
- });
78
- return true;
79
- };
80
- return AWSKinesisFirehoseProvider;
81
- }(AWSKinesisProvider_1.AWSKinesisProvider));
82
- exports.AWSKinesisFirehoseProvider = AWSKinesisFirehoseProvider;
@@ -1,43 +0,0 @@
1
- import { AnalyticsProvider } from '../types';
2
- export declare class AWSKinesisProvider implements AnalyticsProvider {
3
- protected _config: any;
4
- private _kinesis;
5
- private _buffer;
6
- private _timer;
7
- constructor(config?: any);
8
- private _setupTimer;
9
- /**
10
- * get the category of the plugin
11
- */
12
- getCategory(): string;
13
- /**
14
- * get provider name of the plugin
15
- */
16
- getProviderName(): string;
17
- /**
18
- * configure the plugin
19
- * @param {Object} config - configuration
20
- */
21
- configure(config: any): object;
22
- /**
23
- * record an event
24
- * @param {Object} params - the params of an event
25
- */
26
- record(params: any): Promise<boolean>;
27
- updateEndpoint(): Promise<boolean>;
28
- /**
29
- * @private
30
- * @param params - params for the event recording
31
- * Put events into buffer
32
- */
33
- private _putToBuffer;
34
- private _sendFromBuffer;
35
- protected _sendEvents(group: any): boolean;
36
- protected _init(config: any, credentials: any): boolean;
37
- private _initKinesis;
38
- /**
39
- * @private
40
- * check if current credentials exists
41
- */
42
- private _getCredentials;
43
- }