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