@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.
- package/lib/errors/AnalyticsError.d.ts +7 -0
- package/lib/errors/AnalyticsError.js +23 -0
- package/lib/errors/assertValidationError.d.ts +5 -0
- package/lib/errors/assertValidationError.js +17 -0
- package/lib/errors/index.d.ts +3 -0
- package/lib/errors/index.js +12 -0
- package/lib/errors/validation.d.ts +9 -0
- package/lib/errors/validation.js +31 -0
- package/lib/index.d.ts +0 -3
- package/lib/index.js +0 -15
- package/lib/providers/pinpoint/apis/identifyUser.d.ts +10 -0
- package/lib/providers/pinpoint/apis/identifyUser.js +44 -0
- package/lib/providers/pinpoint/apis/index.d.ts +2 -0
- package/lib/providers/pinpoint/apis/index.js +9 -0
- package/lib/providers/pinpoint/apis/record.d.ts +11 -0
- package/lib/providers/pinpoint/apis/record.js +44 -0
- package/lib/providers/pinpoint/index.d.ts +1 -1
- package/lib/providers/pinpoint/index.js +1 -7
- package/lib/providers/pinpoint/types/errors.d.ts +9 -0
- package/lib/providers/pinpoint/types/errors.js +15 -0
- package/lib/providers/pinpoint/types/index.d.ts +2 -0
- package/lib/providers/pinpoint/types/index.js +7 -0
- package/lib/providers/pinpoint/types/parameters.d.ts +18 -0
- package/lib/providers/pinpoint/utils/index.d.ts +2 -0
- package/lib/providers/pinpoint/utils/index.js +9 -0
- package/lib/providers/pinpoint/utils/resolveConfig.d.ts +7 -0
- package/lib/providers/pinpoint/utils/resolveConfig.js +18 -0
- package/lib/providers/pinpoint/utils/resolveCredentials.d.ts +12 -0
- package/lib/providers/pinpoint/utils/resolveCredentials.js +24 -0
- package/lib/setupTests.js +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/{lib-esm/types/Analytics.d.ts → lib/types/analytics.d.ts} +0 -8
- package/lib/types/index.d.ts +1 -3
- package/lib/types/index.js +1 -3
- package/lib/utils/{UserAgent.d.ts → userAgent.d.ts} +1 -1
- package/lib/utils/{UserAgent.js → userAgent.js} +5 -5
- package/lib-esm/errors/AnalyticsError.d.ts +7 -0
- package/lib-esm/errors/AnalyticsError.js +20 -0
- package/lib-esm/errors/assertValidationError.d.ts +5 -0
- package/lib-esm/errors/assertValidationError.js +13 -0
- package/lib-esm/errors/index.d.ts +3 -0
- package/lib-esm/errors/index.js +5 -0
- package/lib-esm/errors/validation.d.ts +9 -0
- package/lib-esm/errors/validation.js +28 -0
- package/lib-esm/index.d.ts +0 -3
- package/lib-esm/index.js +0 -12
- package/lib-esm/providers/pinpoint/apis/identifyUser.d.ts +10 -0
- package/lib-esm/providers/pinpoint/apis/identifyUser.js +40 -0
- package/lib-esm/providers/pinpoint/apis/index.d.ts +2 -0
- package/{src/types/providers/index.ts → lib-esm/providers/pinpoint/apis/index.js} +2 -1
- package/lib-esm/providers/pinpoint/apis/record.d.ts +11 -0
- package/lib-esm/providers/pinpoint/apis/record.js +40 -0
- package/lib-esm/providers/pinpoint/index.d.ts +1 -1
- package/lib-esm/providers/pinpoint/index.js +1 -6
- package/lib-esm/providers/pinpoint/types/errors.d.ts +9 -0
- package/lib-esm/providers/pinpoint/types/errors.js +12 -0
- package/lib-esm/providers/pinpoint/types/index.d.ts +2 -0
- package/lib-esm/{types/providers → providers/pinpoint/types}/index.js +1 -1
- package/lib-esm/providers/pinpoint/types/parameters.d.ts +18 -0
- package/lib-esm/providers/pinpoint/utils/index.d.ts +2 -0
- package/lib-esm/{utils/AppUtils.js → providers/pinpoint/utils/index.js} +2 -4
- package/lib-esm/providers/pinpoint/utils/resolveConfig.d.ts +7 -0
- package/lib-esm/providers/pinpoint/utils/resolveConfig.js +14 -0
- package/lib-esm/providers/pinpoint/utils/resolveCredentials.d.ts +12 -0
- package/lib-esm/providers/pinpoint/utils/resolveCredentials.js +20 -0
- package/lib-esm/setupTests.js +1 -0
- package/lib-esm/tsconfig.tsbuildinfo +1 -1
- package/{lib/types/Analytics.d.ts → lib-esm/types/analytics.d.ts} +0 -8
- package/lib-esm/types/index.d.ts +1 -3
- package/lib-esm/types/index.js +1 -3
- package/lib-esm/utils/{UserAgent.d.ts → userAgent.d.ts} +1 -1
- package/lib-esm/utils/{UserAgent.js → userAgent.js} +1 -1
- package/package.json +11 -29
- package/src/errors/AnalyticsError.ts +18 -0
- package/src/errors/assertValidationError.ts +19 -0
- package/src/errors/index.ts +6 -0
- package/src/errors/validation.ts +31 -0
- package/src/index.ts +0 -15
- package/src/providers/pinpoint/apis/identifyUser.ts +35 -0
- package/src/{utils/AppUtils.ts → providers/pinpoint/apis/index.ts} +2 -4
- package/src/providers/pinpoint/apis/record.ts +50 -0
- package/src/providers/pinpoint/index.ts +1 -3
- package/src/providers/pinpoint/types/errors.ts +12 -0
- package/src/providers/pinpoint/types/index.ts +5 -0
- package/src/providers/pinpoint/types/parameters.ts +24 -0
- package/src/providers/pinpoint/utils/index.ts +5 -0
- package/src/providers/pinpoint/utils/resolveConfig.ts +18 -0
- package/src/providers/pinpoint/utils/resolveCredentials.ts +20 -0
- package/src/types/{Analytics.ts → analytics.ts} +1 -10
- package/src/types/index.ts +1 -3
- package/src/utils/{UserAgent.ts → userAgent.ts} +1 -1
- package/lib/Analytics.d.ts +0 -87
- package/lib/Analytics.js +0 -354
- package/lib/providers/AWSKinesisFirehoseProvider.d.ts +0 -12
- package/lib/providers/AWSKinesisFirehoseProvider.js +0 -82
- package/lib/providers/AWSKinesisProvider.d.ts +0 -43
- package/lib/providers/AWSKinesisProvider.js +0 -240
- package/lib/providers/AWSPinpointProvider.d.ts +0 -67
- package/lib/providers/AWSPinpointProvider.js +0 -576
- package/lib/providers/AmazonPersonalizeHelper/DataType.d.ts +0 -40
- package/lib/providers/AmazonPersonalizeHelper/MediaAutoTrack.d.ts +0 -20
- package/lib/providers/AmazonPersonalizeHelper/MediaAutoTrack.js +0 -156
- package/lib/providers/AmazonPersonalizeHelper/SessionInfoManager.d.ts +0 -17
- package/lib/providers/AmazonPersonalizeHelper/SessionInfoManager.js +0 -96
- package/lib/providers/AmazonPersonalizeHelper/index.d.ts +0 -3
- package/lib/providers/AmazonPersonalizeHelper/index.js +0 -7
- package/lib/providers/AmazonPersonalizeProvider.d.ts +0 -76
- package/lib/providers/AmazonPersonalizeProvider.js +0 -331
- package/lib/providers/EventBuffer.d.ts +0 -28
- package/lib/providers/EventBuffer.js +0 -209
- package/lib/providers/index.d.ts +0 -4
- package/lib/providers/index.js +0 -14
- package/lib/trackers/EventTracker.d.ts +0 -9
- package/lib/trackers/EventTracker.js +0 -99
- package/lib/trackers/PageViewTracker.d.ts +0 -12
- package/lib/trackers/PageViewTracker.js +0 -158
- package/lib/trackers/SessionTracker-rn.d.ts +0 -12
- package/lib/trackers/SessionTracker-rn.js +0 -134
- package/lib/trackers/SessionTracker.d.ts +0 -14
- package/lib/trackers/SessionTracker.js +0 -163
- package/lib/trackers/index.d.ts +0 -3
- package/lib/trackers/index.js +0 -11
- package/lib/trackers/reactnative.d.ts +0 -8
- package/lib/trackers/reactnative.js +0 -19
- package/lib/types/Analytics.js +0 -2
- package/lib/types/Provider.d.ts +0 -10
- package/lib/types/providers/AWSKinesisProvider.d.ts +0 -6
- package/lib/types/providers/AWSKinesisProvider.js +0 -2
- package/lib/types/providers/AWSPinpointProvider.d.ts +0 -50
- package/lib/types/providers/AWSPinpointProvider.js +0 -2
- package/lib/types/providers/AmazonPersonalizeProvider.d.ts +0 -7
- package/lib/types/providers/AmazonPersonalizeProvider.js +0 -2
- package/lib/types/providers/index.d.ts +0 -1
- package/lib/types/providers/index.js +0 -6
- package/lib/utils/AppUtils.d.ts +0 -2
- package/lib/utils/AppUtils.js +0 -9
- package/lib/utils/AppUtils.native.d.ts +0 -2
- package/lib/utils/AppUtils.native.js +0 -10
- package/lib/utils/MethodEmbed.d.ts +0 -11
- package/lib/utils/MethodEmbed.js +0 -43
- package/lib/vendor/dom-utils/closest.d.ts +0 -12
- package/lib/vendor/dom-utils/closest.js +0 -27
- package/lib/vendor/dom-utils/delegate.d.ts +0 -18
- package/lib/vendor/dom-utils/delegate.js +0 -51
- package/lib/vendor/dom-utils/dispatch.d.ts +0 -17
- package/lib/vendor/dom-utils/dispatch.js +0 -51
- package/lib/vendor/dom-utils/get-attributes.d.ts +0 -11
- package/lib/vendor/dom-utils/get-attributes.js +0 -28
- package/lib/vendor/dom-utils/index.d.ts +0 -7
- package/lib/vendor/dom-utils/index.js +0 -17
- package/lib/vendor/dom-utils/matches.d.ts +0 -11
- package/lib/vendor/dom-utils/matches.js +0 -69
- package/lib/vendor/dom-utils/parents.d.ts +0 -10
- package/lib/vendor/dom-utils/parents.js +0 -22
- package/lib/vendor/dom-utils/parse-url.d.ts +0 -9
- package/lib/vendor/dom-utils/parse-url.js +0 -59
- package/lib-esm/Analytics.d.ts +0 -87
- package/lib-esm/Analytics.js +0 -351
- package/lib-esm/providers/AWSKinesisFirehoseProvider.d.ts +0 -12
- package/lib-esm/providers/AWSKinesisFirehoseProvider.js +0 -79
- package/lib-esm/providers/AWSKinesisProvider.d.ts +0 -43
- package/lib-esm/providers/AWSKinesisProvider.js +0 -237
- package/lib-esm/providers/AWSPinpointProvider.d.ts +0 -67
- package/lib-esm/providers/AWSPinpointProvider.js +0 -573
- package/lib-esm/providers/AmazonPersonalizeHelper/DataType.d.ts +0 -40
- package/lib-esm/providers/AmazonPersonalizeHelper/MediaAutoTrack.d.ts +0 -20
- package/lib-esm/providers/AmazonPersonalizeHelper/MediaAutoTrack.js +0 -153
- package/lib-esm/providers/AmazonPersonalizeHelper/SessionInfoManager.d.ts +0 -17
- package/lib-esm/providers/AmazonPersonalizeHelper/SessionInfoManager.js +0 -92
- package/lib-esm/providers/AmazonPersonalizeHelper/index.d.ts +0 -3
- package/lib-esm/providers/AmazonPersonalizeHelper/index.js +0 -2
- package/lib-esm/providers/AmazonPersonalizeProvider.d.ts +0 -76
- package/lib-esm/providers/AmazonPersonalizeProvider.js +0 -328
- package/lib-esm/providers/EventBuffer.d.ts +0 -28
- package/lib-esm/providers/EventBuffer.js +0 -207
- package/lib-esm/providers/index.d.ts +0 -4
- package/lib-esm/providers/index.js +0 -7
- package/lib-esm/trackers/EventTracker.d.ts +0 -9
- package/lib-esm/trackers/EventTracker.js +0 -96
- package/lib-esm/trackers/PageViewTracker.d.ts +0 -12
- package/lib-esm/trackers/PageViewTracker.js +0 -155
- package/lib-esm/trackers/SessionTracker-rn.d.ts +0 -12
- package/lib-esm/trackers/SessionTracker-rn.js +0 -131
- package/lib-esm/trackers/SessionTracker.d.ts +0 -14
- package/lib-esm/trackers/SessionTracker.js +0 -160
- package/lib-esm/trackers/index.d.ts +0 -3
- package/lib-esm/trackers/index.js +0 -5
- package/lib-esm/trackers/reactnative.d.ts +0 -8
- package/lib-esm/trackers/reactnative.js +0 -14
- package/lib-esm/types/Analytics.js +0 -1
- package/lib-esm/types/Provider.d.ts +0 -10
- package/lib-esm/types/providers/AWSKinesisProvider.d.ts +0 -6
- package/lib-esm/types/providers/AWSKinesisProvider.js +0 -1
- package/lib-esm/types/providers/AWSPinpointProvider.d.ts +0 -50
- package/lib-esm/types/providers/AWSPinpointProvider.js +0 -1
- package/lib-esm/types/providers/AmazonPersonalizeProvider.d.ts +0 -7
- package/lib-esm/types/providers/AmazonPersonalizeProvider.js +0 -1
- package/lib-esm/types/providers/index.d.ts +0 -1
- package/lib-esm/utils/AppUtils.d.ts +0 -2
- package/lib-esm/utils/AppUtils.native.d.ts +0 -2
- package/lib-esm/utils/AppUtils.native.js +0 -7
- package/lib-esm/utils/MethodEmbed.d.ts +0 -11
- package/lib-esm/utils/MethodEmbed.js +0 -40
- package/lib-esm/vendor/dom-utils/closest.d.ts +0 -12
- package/lib-esm/vendor/dom-utils/closest.js +0 -23
- package/lib-esm/vendor/dom-utils/delegate.d.ts +0 -18
- package/lib-esm/vendor/dom-utils/delegate.js +0 -47
- package/lib-esm/vendor/dom-utils/dispatch.d.ts +0 -17
- package/lib-esm/vendor/dom-utils/dispatch.js +0 -47
- package/lib-esm/vendor/dom-utils/get-attributes.d.ts +0 -11
- package/lib-esm/vendor/dom-utils/get-attributes.js +0 -24
- package/lib-esm/vendor/dom-utils/index.d.ts +0 -7
- package/lib-esm/vendor/dom-utils/index.js +0 -7
- package/lib-esm/vendor/dom-utils/matches.d.ts +0 -11
- package/lib-esm/vendor/dom-utils/matches.js +0 -65
- package/lib-esm/vendor/dom-utils/parents.d.ts +0 -10
- package/lib-esm/vendor/dom-utils/parents.js +0 -18
- package/lib-esm/vendor/dom-utils/parse-url.d.ts +0 -9
- package/lib-esm/vendor/dom-utils/parse-url.js +0 -55
- package/src/Analytics.ts +0 -446
- package/src/providers/AWSKinesisFirehoseProvider.ts +0 -105
- package/src/providers/AWSKinesisProvider.ts +0 -250
- package/src/providers/AWSPinpointProvider.ts +0 -685
- package/src/providers/AmazonPersonalizeHelper/DataType.ts +0 -49
- package/src/providers/AmazonPersonalizeHelper/MediaAutoTrack.ts +0 -196
- package/src/providers/AmazonPersonalizeHelper/SessionInfoManager.ts +0 -121
- package/src/providers/AmazonPersonalizeHelper/index.ts +0 -11
- package/src/providers/AmazonPersonalizeProvider.ts +0 -398
- package/src/providers/EventBuffer.ts +0 -257
- package/src/providers/index.ts +0 -8
- package/src/trackers/EventTracker.ts +0 -115
- package/src/trackers/PageViewTracker.ts +0 -157
- package/src/trackers/SessionTracker-rn.ts +0 -134
- package/src/trackers/SessionTracker.ts +0 -179
- package/src/trackers/index.ts +0 -5
- package/src/trackers/reactnative.ts +0 -13
- package/src/types/Provider.ts +0 -26
- package/src/types/providers/AWSKinesisProvider.ts +0 -8
- package/src/types/providers/AWSPinpointProvider.ts +0 -60
- package/src/types/providers/AmazonPersonalizeProvider.ts +0 -9
- package/src/utils/AppUtils.native.ts +0 -9
- package/src/utils/MethodEmbed.ts +0 -49
- package/src/vendor/dom-utils/closest.ts +0 -25
- package/src/vendor/dom-utils/delegate.ts +0 -51
- package/src/vendor/dom-utils/dispatch.ts +0 -59
- package/src/vendor/dom-utils/get-attributes.ts +0 -26
- package/src/vendor/dom-utils/index.ts +0 -7
- package/src/vendor/dom-utils/matches.ts +0 -68
- package/src/vendor/dom-utils/parents.ts +0 -19
- package/src/vendor/dom-utils/parse-url.ts +0 -66
- /package/lib/{types/Provider.js → providers/pinpoint/types/parameters.js} +0 -0
- /package/lib/{providers/AmazonPersonalizeHelper/DataType.js → types/analytics.js} +0 -0
- /package/lib-esm/{types/Provider.js → providers/pinpoint/types/parameters.js} +0 -0
- /package/lib-esm/{providers/AmazonPersonalizeHelper/DataType.js → types/analytics.js} +0 -0
package/lib-esm/Analytics.d.ts
DELETED
|
@@ -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 {};
|
package/lib-esm/Analytics.js
DELETED
|
@@ -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
|
-
}
|