@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.
- 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/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
|
-
}
|