@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
|
@@ -1,398 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
ConsoleLogger as Logger,
|
|
6
|
-
Credentials,
|
|
7
|
-
browserOrNode,
|
|
8
|
-
AnalyticsAction,
|
|
9
|
-
} from '@aws-amplify/core';
|
|
10
|
-
import {
|
|
11
|
-
PersonalizeEventsClient,
|
|
12
|
-
PutEventsCommand,
|
|
13
|
-
PutEventsCommandInput,
|
|
14
|
-
} from '@aws-sdk/client-personalize-events';
|
|
15
|
-
import {
|
|
16
|
-
SessionInfo,
|
|
17
|
-
RequestParams,
|
|
18
|
-
RecordEventPayload,
|
|
19
|
-
SessionInfoManager,
|
|
20
|
-
MediaAutoTrack,
|
|
21
|
-
} from './AmazonPersonalizeHelper';
|
|
22
|
-
import get from 'lodash/get';
|
|
23
|
-
import isEmpty from 'lodash/isEmpty';
|
|
24
|
-
import isEqual from 'lodash/isEqual';
|
|
25
|
-
import { AnalyticsProvider } from '../types';
|
|
26
|
-
import { getAnalyticsUserAgent } from '../utils/UserAgent';
|
|
27
|
-
|
|
28
|
-
const logger = new Logger('AmazonPersonalizeProvider');
|
|
29
|
-
|
|
30
|
-
// events buffer
|
|
31
|
-
const FLUSH_SIZE = 5;
|
|
32
|
-
const FLUSH_SIZE_THRESHHOLD = 10;
|
|
33
|
-
const FLUSH_INTERVAL = 5 * 1000; // 5s
|
|
34
|
-
|
|
35
|
-
const IDENTIFY_EVENT = 'Identify';
|
|
36
|
-
|
|
37
|
-
export class AmazonPersonalizeProvider implements AnalyticsProvider {
|
|
38
|
-
private _config;
|
|
39
|
-
private _personalize;
|
|
40
|
-
private _buffer;
|
|
41
|
-
private _timer;
|
|
42
|
-
private _sessionInfo: SessionInfo;
|
|
43
|
-
private _sessionManager;
|
|
44
|
-
private _isBrowser;
|
|
45
|
-
|
|
46
|
-
constructor(config?) {
|
|
47
|
-
this._buffer = [];
|
|
48
|
-
this._config = config ? config : {};
|
|
49
|
-
this._config.flushSize =
|
|
50
|
-
this._config.flushSize > 0 &&
|
|
51
|
-
this._config.flushSize <= FLUSH_SIZE_THRESHHOLD
|
|
52
|
-
? this._config.flushSize
|
|
53
|
-
: FLUSH_SIZE;
|
|
54
|
-
this._config.flushInterval = this._config.flushInterval || FLUSH_INTERVAL;
|
|
55
|
-
this._sessionManager = new SessionInfoManager();
|
|
56
|
-
if (!isEmpty(this._config.trackingId)) {
|
|
57
|
-
this._sessionInfo = this._sessionManager.retrieveSessionInfo(
|
|
58
|
-
this._config.trackingId
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
this._isBrowser = browserOrNode().isBrowser;
|
|
62
|
-
|
|
63
|
-
// flush event buffer
|
|
64
|
-
this._setupTimer();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
private _setupTimer() {
|
|
68
|
-
if (this._timer) {
|
|
69
|
-
clearInterval(this._timer);
|
|
70
|
-
}
|
|
71
|
-
const { flushInterval } = this._config;
|
|
72
|
-
const that = this;
|
|
73
|
-
this._timer = setInterval(() => {
|
|
74
|
-
that._sendFromBuffer();
|
|
75
|
-
}, flushInterval);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Record event
|
|
80
|
-
* @param eventType - type of the event action. e.g. "Click"
|
|
81
|
-
* @param properties - properties of the event
|
|
82
|
-
* @return Promise
|
|
83
|
-
*/
|
|
84
|
-
public async record(params): Promise<boolean> {
|
|
85
|
-
const credentials = await this._getCredentials();
|
|
86
|
-
if (!credentials) return Promise.resolve(false);
|
|
87
|
-
|
|
88
|
-
Object.assign(params, {
|
|
89
|
-
config: this._config,
|
|
90
|
-
credentials,
|
|
91
|
-
sentAt: new Date(),
|
|
92
|
-
});
|
|
93
|
-
const { eventType, properties } = params.event;
|
|
94
|
-
|
|
95
|
-
if (eventType === IDENTIFY_EVENT) {
|
|
96
|
-
this._sessionManager.updateSessionInfo(
|
|
97
|
-
properties && properties.userId ? properties.userId : '',
|
|
98
|
-
this._sessionInfo
|
|
99
|
-
);
|
|
100
|
-
return;
|
|
101
|
-
} else if (!isEmpty(params.event.userId)) {
|
|
102
|
-
this._sessionManager.updateSessionInfo(
|
|
103
|
-
params.event.userId,
|
|
104
|
-
this._sessionInfo
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
const requestParams: RequestParams = this.generateRequestParams(
|
|
108
|
-
params,
|
|
109
|
-
this._sessionInfo
|
|
110
|
-
);
|
|
111
|
-
if (eventType === 'MediaAutoTrack') {
|
|
112
|
-
if (this._isBrowser) {
|
|
113
|
-
if (
|
|
114
|
-
!isEmpty(
|
|
115
|
-
get(requestParams, 'eventData.properties.domElementId', null)
|
|
116
|
-
)
|
|
117
|
-
) {
|
|
118
|
-
const isLoaded = await this.isElementFullyLoaded(
|
|
119
|
-
this.loadElement,
|
|
120
|
-
requestParams.eventData.properties['domElementId'],
|
|
121
|
-
500,
|
|
122
|
-
5
|
|
123
|
-
);
|
|
124
|
-
if (isLoaded) {
|
|
125
|
-
new MediaAutoTrack(requestParams, this);
|
|
126
|
-
} else {
|
|
127
|
-
logger.debug('Cannot find the media element.');
|
|
128
|
-
}
|
|
129
|
-
} else {
|
|
130
|
-
logger.debug(
|
|
131
|
-
"Missing domElementId field in 'properties' for MediaAutoTrack event type."
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
} else {
|
|
135
|
-
logger.debug('MediaAutoTrack only for browser');
|
|
136
|
-
}
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return this.putToBuffer(requestParams);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
private loadElement(domId): Promise<boolean> {
|
|
144
|
-
return new Promise((resolve, reject) => {
|
|
145
|
-
if (
|
|
146
|
-
document.getElementById(domId) &&
|
|
147
|
-
document.getElementById(domId).clientHeight
|
|
148
|
-
) {
|
|
149
|
-
return resolve(true);
|
|
150
|
-
} else {
|
|
151
|
-
return reject(true);
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
private isElementFullyLoaded(
|
|
157
|
-
operation,
|
|
158
|
-
params,
|
|
159
|
-
delay,
|
|
160
|
-
times
|
|
161
|
-
): Promise<boolean> {
|
|
162
|
-
const wait = ms => new Promise(r => setTimeout(r, ms));
|
|
163
|
-
return new Promise((resolve, reject) => {
|
|
164
|
-
return operation(params)
|
|
165
|
-
.then(resolve)
|
|
166
|
-
.catch(reason => {
|
|
167
|
-
if (times - 1 > 0) {
|
|
168
|
-
return wait(delay)
|
|
169
|
-
.then(
|
|
170
|
-
this.isElementFullyLoaded.bind(
|
|
171
|
-
null,
|
|
172
|
-
operation,
|
|
173
|
-
params,
|
|
174
|
-
delay,
|
|
175
|
-
times - 1
|
|
176
|
-
)
|
|
177
|
-
)
|
|
178
|
-
.then(resolve)
|
|
179
|
-
.catch(reject);
|
|
180
|
-
}
|
|
181
|
-
return reject(reason);
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* get the category of the plugin
|
|
188
|
-
*/
|
|
189
|
-
public getCategory(): string {
|
|
190
|
-
return 'Analytics';
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* get provider name of the plugin
|
|
195
|
-
*/
|
|
196
|
-
public getProviderName(): string {
|
|
197
|
-
return 'AmazonPersonalize';
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* configure the plugin
|
|
202
|
-
* @param {Object} config - configuration
|
|
203
|
-
*/
|
|
204
|
-
public configure(config): object {
|
|
205
|
-
logger.debug('configure Analytics', config);
|
|
206
|
-
const conf = config ? config : {};
|
|
207
|
-
this._config = Object.assign({}, this._config, conf);
|
|
208
|
-
if (!isEmpty(this._config.trackingId)) {
|
|
209
|
-
this._sessionInfo = this._sessionManager.retrieveSessionInfo(
|
|
210
|
-
this._config.trackingId
|
|
211
|
-
);
|
|
212
|
-
}
|
|
213
|
-
this._setupTimer();
|
|
214
|
-
return this._config;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Generate the requestParams from customer input params and sessionInfo
|
|
219
|
-
* @private
|
|
220
|
-
* @param eventData - customer input for event data
|
|
221
|
-
* @param api - api name
|
|
222
|
-
* @return RequestParams - wrapper object with all information required for make request
|
|
223
|
-
*/
|
|
224
|
-
private generateRequestParams(params, sessionInfo): RequestParams {
|
|
225
|
-
const requestParams = <RequestParams>{};
|
|
226
|
-
const { eventType, properties } = params.event;
|
|
227
|
-
requestParams.eventData = { eventType, properties };
|
|
228
|
-
requestParams.sessionInfo = sessionInfo;
|
|
229
|
-
requestParams.sentAt = params.sentAt;
|
|
230
|
-
requestParams.credentials = params.credentials;
|
|
231
|
-
requestParams.config = params.config;
|
|
232
|
-
return requestParams;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* record an event
|
|
237
|
-
* @param {Object} params - the params of an event
|
|
238
|
-
*/
|
|
239
|
-
private _sendEvents(group) {
|
|
240
|
-
const groupLen = group.length;
|
|
241
|
-
if (groupLen === 0) {
|
|
242
|
-
logger.debug('events array is empty, directly return');
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
const { config, credentials, sessionInfo } = group[0];
|
|
247
|
-
|
|
248
|
-
const initClients = this._init(config, credentials);
|
|
249
|
-
if (!initClients) return false;
|
|
250
|
-
if (groupLen > 0) {
|
|
251
|
-
const events: RecordEventPayload[] = [];
|
|
252
|
-
for (let i = 0; i < groupLen; i += 1) {
|
|
253
|
-
const params: RequestParams = group.shift();
|
|
254
|
-
const eventPayload: RecordEventPayload =
|
|
255
|
-
this._generateSingleRecordPayload(params, sessionInfo);
|
|
256
|
-
events.push(eventPayload);
|
|
257
|
-
}
|
|
258
|
-
const payload = <PutEventsCommandInput>{};
|
|
259
|
-
payload.trackingId = sessionInfo.trackingId;
|
|
260
|
-
payload.sessionId = sessionInfo.sessionId;
|
|
261
|
-
payload.userId = sessionInfo.userId;
|
|
262
|
-
payload.eventList = [];
|
|
263
|
-
events.forEach(event => {
|
|
264
|
-
// @ts-ignore
|
|
265
|
-
payload.eventList.push(event);
|
|
266
|
-
});
|
|
267
|
-
const command: PutEventsCommand = new PutEventsCommand(payload);
|
|
268
|
-
this._personalize.send(command, err => {
|
|
269
|
-
if (err) logger.debug('Failed to call putEvents in Personalize', err);
|
|
270
|
-
else logger.debug('Put events');
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
/**
|
|
276
|
-
* Put event into buffer
|
|
277
|
-
* @private
|
|
278
|
-
* @param params - params for the event recording
|
|
279
|
-
*/
|
|
280
|
-
private putToBuffer(params: RequestParams) {
|
|
281
|
-
if (this._buffer.length < this._config.flushSize) {
|
|
282
|
-
this._buffer.push(params);
|
|
283
|
-
} else {
|
|
284
|
-
this._buffer.push(params);
|
|
285
|
-
this._sendFromBuffer();
|
|
286
|
-
}
|
|
287
|
-
return Promise.resolve(true);
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* flush the buffer and batch sending the request
|
|
292
|
-
* @private
|
|
293
|
-
* @param eventsParams - the buffer for cache the payload
|
|
294
|
-
*/
|
|
295
|
-
private _sendFromBuffer() {
|
|
296
|
-
const size = this._buffer.length;
|
|
297
|
-
if (size <= 0) return;
|
|
298
|
-
const eventsGroups = [];
|
|
299
|
-
let preCred = null;
|
|
300
|
-
let group = [];
|
|
301
|
-
for (let i = 0; i < size; i += 1) {
|
|
302
|
-
const currRequestParams: RequestParams = this._buffer.shift();
|
|
303
|
-
const cred = currRequestParams.credentials;
|
|
304
|
-
const sessionInfo = currRequestParams.sessionInfo;
|
|
305
|
-
if (i === 0) {
|
|
306
|
-
group.push(currRequestParams);
|
|
307
|
-
preCred = cred;
|
|
308
|
-
} else {
|
|
309
|
-
if (
|
|
310
|
-
isEqual(sessionInfo, this._sessionInfo) &&
|
|
311
|
-
cred.sessionToken === preCred.sessionToken &&
|
|
312
|
-
cred.identityId === preCred.identityId
|
|
313
|
-
) {
|
|
314
|
-
logger.debug('no change for cred, put event in the same group');
|
|
315
|
-
group.push(currRequestParams);
|
|
316
|
-
} else {
|
|
317
|
-
eventsGroups.push(group);
|
|
318
|
-
group = [];
|
|
319
|
-
group.push(currRequestParams);
|
|
320
|
-
preCred = cred;
|
|
321
|
-
this._sessionInfo = sessionInfo;
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
eventsGroups.push(group);
|
|
326
|
-
|
|
327
|
-
eventsGroups.map(group => {
|
|
328
|
-
this._sendEvents(group);
|
|
329
|
-
});
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
/**
|
|
333
|
-
* Generate the record payload for single event
|
|
334
|
-
* @private
|
|
335
|
-
* @param params - RequestParams
|
|
336
|
-
*/
|
|
337
|
-
private _generateSingleRecordPayload(
|
|
338
|
-
params: RequestParams,
|
|
339
|
-
sessionInfo
|
|
340
|
-
): RecordEventPayload {
|
|
341
|
-
const { eventData, sentAt } = params;
|
|
342
|
-
const trackPayload = <RecordEventPayload>{};
|
|
343
|
-
trackPayload.sentAt = sentAt;
|
|
344
|
-
trackPayload.properties =
|
|
345
|
-
eventData.properties && JSON.stringify(eventData.properties);
|
|
346
|
-
trackPayload.eventId =
|
|
347
|
-
this._sessionManager.getTimerKey() + sessionInfo.sessionId;
|
|
348
|
-
trackPayload.eventType = eventData.eventType;
|
|
349
|
-
return trackPayload;
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
/**
|
|
353
|
-
* Initialize the personalize client
|
|
354
|
-
* @private
|
|
355
|
-
* @param params - RequestParams
|
|
356
|
-
*/
|
|
357
|
-
private _init(config, credentials) {
|
|
358
|
-
logger.debug('init clients');
|
|
359
|
-
|
|
360
|
-
if (
|
|
361
|
-
this._personalize &&
|
|
362
|
-
this._config.credentials &&
|
|
363
|
-
this._config.credentials.sessionToken === credentials.sessionToken &&
|
|
364
|
-
this._config.credentials.identityId === credentials.identityId
|
|
365
|
-
) {
|
|
366
|
-
logger.debug('no change for analytics config, directly return from init');
|
|
367
|
-
return true;
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
this._config.credentials = credentials;
|
|
371
|
-
const { region } = config;
|
|
372
|
-
logger.debug('initialize personalize with credentials', credentials);
|
|
373
|
-
this._personalize = new PersonalizeEventsClient({
|
|
374
|
-
region,
|
|
375
|
-
credentials,
|
|
376
|
-
customUserAgent: getAnalyticsUserAgent(AnalyticsAction.Record),
|
|
377
|
-
});
|
|
378
|
-
return true;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
/**
|
|
382
|
-
* check if current credentials exists
|
|
383
|
-
* @private
|
|
384
|
-
*/
|
|
385
|
-
private _getCredentials() {
|
|
386
|
-
const that = this;
|
|
387
|
-
return Credentials.get()
|
|
388
|
-
.then(credentials => {
|
|
389
|
-
if (!credentials) return null;
|
|
390
|
-
logger.debug('set credentials for analytics', that._config.credentials);
|
|
391
|
-
return Credentials.shear(credentials);
|
|
392
|
-
})
|
|
393
|
-
.catch(err => {
|
|
394
|
-
logger.debug('ensure credentials error', err);
|
|
395
|
-
return null;
|
|
396
|
-
});
|
|
397
|
-
}
|
|
398
|
-
}
|
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import { AnalyticsAction, ConsoleLogger as Logger } from '@aws-amplify/core';
|
|
4
|
-
import {
|
|
5
|
-
putEvents,
|
|
6
|
-
PutEventsInput,
|
|
7
|
-
PutEventsOutput,
|
|
8
|
-
} from '@aws-amplify/core/internals/aws-clients/pinpoint';
|
|
9
|
-
import { EventBuffer, EventObject, EventMap } from '../types';
|
|
10
|
-
import { isAppInForeground } from '../utils/AppUtils';
|
|
11
|
-
import { getAnalyticsUserAgentString } from '../utils/UserAgent';
|
|
12
|
-
|
|
13
|
-
const logger = new Logger('EventsBuffer');
|
|
14
|
-
const RETRYABLE_CODES = [429, 500];
|
|
15
|
-
const ACCEPTED_CODES = [202];
|
|
16
|
-
|
|
17
|
-
type EventsBufferConfig = {
|
|
18
|
-
bufferSize: number;
|
|
19
|
-
flushSize: number;
|
|
20
|
-
flushInterval: number;
|
|
21
|
-
resendLimit: number;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export default class EventsBuffer {
|
|
25
|
-
private _config;
|
|
26
|
-
private _interval;
|
|
27
|
-
private _buffer: EventBuffer;
|
|
28
|
-
private _pause = false;
|
|
29
|
-
private _flush = false;
|
|
30
|
-
|
|
31
|
-
constructor(config: EventsBufferConfig) {
|
|
32
|
-
logger.debug('Instantiating buffer with config:', config);
|
|
33
|
-
this._buffer = [];
|
|
34
|
-
this._config = config;
|
|
35
|
-
|
|
36
|
-
this._sendBatch = this._sendBatch.bind(this);
|
|
37
|
-
|
|
38
|
-
this._startLoop();
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
public push(event: EventObject) {
|
|
42
|
-
// if the buffer is currently at the configured limit, pushing would exceed it
|
|
43
|
-
if (this._buffer.length >= this._config.bufferSize) {
|
|
44
|
-
logger.debug('Exceeded analytics events buffer size');
|
|
45
|
-
return event.handlers.reject(
|
|
46
|
-
new Error('Exceeded the size of analytics events buffer')
|
|
47
|
-
);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const { eventId } = event.params.event;
|
|
51
|
-
const bufferElement = { [eventId]: event };
|
|
52
|
-
this._buffer.push(bufferElement);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
public pause() {
|
|
56
|
-
this._pause = true;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
public resume() {
|
|
60
|
-
this._pause = false;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
public flush() {
|
|
64
|
-
this._flush = true;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
private _startLoop() {
|
|
68
|
-
if (this._interval) {
|
|
69
|
-
clearInterval(this._interval);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
const { flushInterval } = this._config;
|
|
73
|
-
|
|
74
|
-
this._interval = setInterval(this._sendBatch, flushInterval);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
private _sendBatch() {
|
|
78
|
-
const bufferLength = this._buffer.length;
|
|
79
|
-
|
|
80
|
-
if (this._flush && !bufferLength) {
|
|
81
|
-
clearInterval(this._interval);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// Do not send the batch of events if
|
|
85
|
-
// the Buffer is paused or is empty or the App is not in the foreground
|
|
86
|
-
// Apps should be in the foreground since
|
|
87
|
-
// the OS may restrict access to the network in the background
|
|
88
|
-
if (this._pause || !bufferLength || !isAppInForeground()) {
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const { flushSize } = this._config;
|
|
93
|
-
|
|
94
|
-
const batchSize = Math.min(flushSize, bufferLength);
|
|
95
|
-
const bufferSubset = this._buffer.splice(0, batchSize);
|
|
96
|
-
|
|
97
|
-
this._putEvents(bufferSubset);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
private async _putEvents(buffer: EventBuffer) {
|
|
101
|
-
const eventMap: EventMap = this._bufferToMap(buffer);
|
|
102
|
-
const batchEventParams = this._generateBatchEventParams(eventMap);
|
|
103
|
-
|
|
104
|
-
try {
|
|
105
|
-
const { credentials, region } = this._config;
|
|
106
|
-
const data: PutEventsOutput = await putEvents(
|
|
107
|
-
{
|
|
108
|
-
credentials,
|
|
109
|
-
region,
|
|
110
|
-
userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
|
|
111
|
-
},
|
|
112
|
-
batchEventParams
|
|
113
|
-
);
|
|
114
|
-
this._processPutEventsSuccessResponse(data, eventMap);
|
|
115
|
-
} catch (err) {
|
|
116
|
-
return this._handlePutEventsFailure(err, eventMap);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
private _generateBatchEventParams(eventMap: EventMap): PutEventsInput {
|
|
121
|
-
const batchEventParams = {
|
|
122
|
-
ApplicationId: '',
|
|
123
|
-
EventsRequest: {
|
|
124
|
-
BatchItem: {},
|
|
125
|
-
},
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
Object.values(eventMap).forEach(item => {
|
|
129
|
-
const { params } = item;
|
|
130
|
-
const { event, timestamp, config } = params;
|
|
131
|
-
const { name, attributes, metrics, eventId, session } = event;
|
|
132
|
-
const { appId, endpointId } = config;
|
|
133
|
-
|
|
134
|
-
const batchItem = batchEventParams.EventsRequest.BatchItem;
|
|
135
|
-
|
|
136
|
-
batchEventParams.ApplicationId = batchEventParams.ApplicationId || appId;
|
|
137
|
-
|
|
138
|
-
if (!batchItem[endpointId]) {
|
|
139
|
-
batchItem[endpointId] = {
|
|
140
|
-
Endpoint: {},
|
|
141
|
-
Events: {},
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
batchItem[endpointId].Events[eventId] = {
|
|
146
|
-
EventType: name,
|
|
147
|
-
Timestamp: new Date(timestamp).toISOString(),
|
|
148
|
-
Attributes: attributes,
|
|
149
|
-
Metrics: metrics,
|
|
150
|
-
Session: session,
|
|
151
|
-
};
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
return batchEventParams;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
private _handlePutEventsFailure(err, eventMap: EventMap) {
|
|
158
|
-
logger.debug('_putEvents Failed: ', err);
|
|
159
|
-
const statusCode = err.$metadata && err.$metadata.httpStatusCode;
|
|
160
|
-
|
|
161
|
-
if (RETRYABLE_CODES.includes(statusCode)) {
|
|
162
|
-
const retryableEvents = Object.values(eventMap);
|
|
163
|
-
this._retry(retryableEvents);
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
private _processPutEventsSuccessResponse(
|
|
169
|
-
data: PutEventsOutput,
|
|
170
|
-
eventMap: EventMap
|
|
171
|
-
) {
|
|
172
|
-
const { Results = {} } = data.EventsResponse ?? {};
|
|
173
|
-
const retryableEvents: EventObject[] = [];
|
|
174
|
-
|
|
175
|
-
Object.entries(Results).forEach(([endpointId, endpointValues]) => {
|
|
176
|
-
const responses = endpointValues.EventsItemResponse ?? {};
|
|
177
|
-
|
|
178
|
-
Object.entries(responses).forEach(([eventId, eventValues]) => {
|
|
179
|
-
const eventObject = eventMap[eventId];
|
|
180
|
-
if (!eventObject) {
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
const { StatusCode, Message } = eventValues ?? {};
|
|
185
|
-
|
|
186
|
-
// manually crafting handlers response to keep API consistant
|
|
187
|
-
const response = {
|
|
188
|
-
EventsResponse: {
|
|
189
|
-
Results: {
|
|
190
|
-
[endpointId]: {
|
|
191
|
-
EventsItemResponse: {
|
|
192
|
-
[eventId]: { StatusCode, Message },
|
|
193
|
-
},
|
|
194
|
-
},
|
|
195
|
-
},
|
|
196
|
-
},
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
if (StatusCode && ACCEPTED_CODES.includes(StatusCode)) {
|
|
200
|
-
eventObject.handlers.resolve(response);
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
if (StatusCode && RETRYABLE_CODES.includes(StatusCode)) {
|
|
205
|
-
retryableEvents.push(eventObject);
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
const { name } = eventObject.params.event;
|
|
210
|
-
|
|
211
|
-
logger.error(
|
|
212
|
-
`event ${eventId} : ${name} failed with error: ${Message}`
|
|
213
|
-
);
|
|
214
|
-
return eventObject.handlers.reject(response);
|
|
215
|
-
});
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
if (retryableEvents.length) {
|
|
219
|
-
this._retry(retryableEvents);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
private _retry(retryableEvents: EventObject[]) {
|
|
224
|
-
// retryable events that haven't reached the resendLimit
|
|
225
|
-
const eligibleEvents: EventBuffer = [];
|
|
226
|
-
|
|
227
|
-
retryableEvents.forEach((event: EventObject) => {
|
|
228
|
-
const { params } = event;
|
|
229
|
-
const { eventId, name } = params.event;
|
|
230
|
-
|
|
231
|
-
if (params.resendLimit-- > 0) {
|
|
232
|
-
logger.debug(
|
|
233
|
-
`resending event ${eventId} : ${name} with ${params.resendLimit} retry attempts remaining`
|
|
234
|
-
);
|
|
235
|
-
eligibleEvents.push({ [eventId]: event });
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
logger.debug(
|
|
240
|
-
`no retry attempts remaining for event ${eventId} : ${name}`
|
|
241
|
-
);
|
|
242
|
-
});
|
|
243
|
-
|
|
244
|
-
// add the events to the front of the buffer
|
|
245
|
-
this._buffer.unshift(...eligibleEvents);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
// convert buffer to map, i.e. { eventId1: { params, handler }, eventId2: { params, handlers } }
|
|
249
|
-
// this allows us to easily access the handlers after receiving a batch response
|
|
250
|
-
private _bufferToMap(buffer: EventBuffer) {
|
|
251
|
-
return buffer.reduce((acc, curVal) => {
|
|
252
|
-
const [[key, value]] = Object.entries(curVal);
|
|
253
|
-
acc[key] = value;
|
|
254
|
-
return acc;
|
|
255
|
-
}, {});
|
|
256
|
-
}
|
|
257
|
-
}
|
package/src/providers/index.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
export { AWSPinpointProvider } from './AWSPinpointProvider';
|
|
4
|
-
|
|
5
|
-
// TODO(v6) Refactor as additional Analytics providers come online
|
|
6
|
-
export { AWSKinesisProvider } from './AWSKinesisProvider';
|
|
7
|
-
export { AWSKinesisFirehoseProvider } from './AWSKinesisFirehoseProvider';
|
|
8
|
-
export { AmazonPersonalizeProvider } from './AmazonPersonalizeProvider';
|