@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
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import { __awaiter, __generator } from "tslib";
|
|
4
|
-
import { ConsoleLogger as Logger, Credentials, AnalyticsAction, } from '@aws-amplify/core';
|
|
5
|
-
import { KinesisClient, PutRecordsCommand } from '@aws-sdk/client-kinesis';
|
|
6
|
-
import { fromUtf8 } from '@aws-sdk/util-utf8-browser';
|
|
7
|
-
import { getAnalyticsUserAgent } from '../utils/UserAgent';
|
|
8
|
-
var logger = new Logger('AWSKinesisProvider');
|
|
9
|
-
// events buffer
|
|
10
|
-
var BUFFER_SIZE = 1000;
|
|
11
|
-
var FLUSH_SIZE = 100;
|
|
12
|
-
var FLUSH_INTERVAL = 5 * 1000; // 5s
|
|
13
|
-
var RESEND_LIMIT = 5;
|
|
14
|
-
var AWSKinesisProvider = /** @class */ (function () {
|
|
15
|
-
function AWSKinesisProvider(config) {
|
|
16
|
-
this._buffer = [];
|
|
17
|
-
this._config = config || {};
|
|
18
|
-
this._config.bufferSize = this._config.bufferSize || BUFFER_SIZE;
|
|
19
|
-
this._config.flushSize = this._config.flushSize || FLUSH_SIZE;
|
|
20
|
-
this._config.flushInterval = this._config.flushInterval || FLUSH_INTERVAL;
|
|
21
|
-
this._config.resendLimit = this._config.resendLimit || RESEND_LIMIT;
|
|
22
|
-
this._setupTimer();
|
|
23
|
-
}
|
|
24
|
-
AWSKinesisProvider.prototype._setupTimer = function () {
|
|
25
|
-
var _this = this;
|
|
26
|
-
if (this._timer) {
|
|
27
|
-
clearInterval(this._timer);
|
|
28
|
-
}
|
|
29
|
-
var _a = this._config, flushSize = _a.flushSize, flushInterval = _a.flushInterval;
|
|
30
|
-
this._timer = setInterval(function () {
|
|
31
|
-
var size = _this._buffer.length < flushSize ? _this._buffer.length : flushSize;
|
|
32
|
-
var events = [];
|
|
33
|
-
for (var i = 0; i < size; i += 1) {
|
|
34
|
-
var params = _this._buffer.shift();
|
|
35
|
-
events.push(params);
|
|
36
|
-
}
|
|
37
|
-
_this._sendFromBuffer(events);
|
|
38
|
-
}, flushInterval);
|
|
39
|
-
};
|
|
40
|
-
/**
|
|
41
|
-
* get the category of the plugin
|
|
42
|
-
*/
|
|
43
|
-
AWSKinesisProvider.prototype.getCategory = function () {
|
|
44
|
-
return 'Analytics';
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* get provider name of the plugin
|
|
48
|
-
*/
|
|
49
|
-
AWSKinesisProvider.prototype.getProviderName = function () {
|
|
50
|
-
return 'AWSKinesis';
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* configure the plugin
|
|
54
|
-
* @param {Object} config - configuration
|
|
55
|
-
*/
|
|
56
|
-
AWSKinesisProvider.prototype.configure = function (config) {
|
|
57
|
-
logger.debug('configure Analytics', config);
|
|
58
|
-
var conf = config || {};
|
|
59
|
-
this._config = Object.assign({}, this._config, conf);
|
|
60
|
-
this._setupTimer();
|
|
61
|
-
return this._config;
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* record an event
|
|
65
|
-
* @param {Object} params - the params of an event
|
|
66
|
-
*/
|
|
67
|
-
AWSKinesisProvider.prototype.record = function (params) {
|
|
68
|
-
var _a;
|
|
69
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
70
|
-
var credentials;
|
|
71
|
-
return __generator(this, function (_b) {
|
|
72
|
-
switch (_b.label) {
|
|
73
|
-
case 0: return [4 /*yield*/, this._getCredentials()];
|
|
74
|
-
case 1:
|
|
75
|
-
credentials = _b.sent();
|
|
76
|
-
if (!credentials)
|
|
77
|
-
return [2 /*return*/, Promise.resolve(false)];
|
|
78
|
-
Object.assign(params, { config: this._config, credentials: credentials });
|
|
79
|
-
if ((_a = params.event) === null || _a === void 0 ? void 0 : _a.immediate) {
|
|
80
|
-
this._sendEvents([params]);
|
|
81
|
-
return [2 /*return*/, Promise.resolve(true)];
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
return [2 /*return*/, this._putToBuffer(params)];
|
|
85
|
-
}
|
|
86
|
-
return [2 /*return*/];
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
};
|
|
91
|
-
AWSKinesisProvider.prototype.updateEndpoint = function () {
|
|
92
|
-
logger.debug('updateEndpoint is not implemented in Kinesis provider');
|
|
93
|
-
return Promise.resolve(true);
|
|
94
|
-
};
|
|
95
|
-
/**
|
|
96
|
-
* @private
|
|
97
|
-
* @param params - params for the event recording
|
|
98
|
-
* Put events into buffer
|
|
99
|
-
*/
|
|
100
|
-
AWSKinesisProvider.prototype._putToBuffer = function (params) {
|
|
101
|
-
if (this._buffer.length < BUFFER_SIZE) {
|
|
102
|
-
this._buffer.push(params);
|
|
103
|
-
return Promise.resolve(true);
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
logger.debug('exceed analytics events buffer size');
|
|
107
|
-
return Promise.reject(false);
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
AWSKinesisProvider.prototype._sendFromBuffer = function (events) {
|
|
111
|
-
var _this = this;
|
|
112
|
-
// collapse events by credentials
|
|
113
|
-
// events = [ {params} ]
|
|
114
|
-
var eventsGroups = [];
|
|
115
|
-
var preCred = null;
|
|
116
|
-
var group = [];
|
|
117
|
-
for (var i = 0; i < events.length; i += 1) {
|
|
118
|
-
var cred = events[i].credentials;
|
|
119
|
-
if (i === 0) {
|
|
120
|
-
group.push(events[i]);
|
|
121
|
-
preCred = cred;
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
if (cred.sessionToken === preCred.sessionToken &&
|
|
125
|
-
cred.identityId === preCred.identityId) {
|
|
126
|
-
logger.debug('no change for cred, put event in the same group');
|
|
127
|
-
group.push(events[i]);
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
eventsGroups.push(group);
|
|
131
|
-
group = [];
|
|
132
|
-
group.push(events[i]);
|
|
133
|
-
preCred = cred;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
eventsGroups.push(group);
|
|
138
|
-
eventsGroups.map(function (evts) {
|
|
139
|
-
_this._sendEvents(evts);
|
|
140
|
-
});
|
|
141
|
-
};
|
|
142
|
-
AWSKinesisProvider.prototype._sendEvents = function (group) {
|
|
143
|
-
var _this = this;
|
|
144
|
-
if (group.length === 0) {
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
var _a = group[0], config = _a.config, credentials = _a.credentials;
|
|
148
|
-
var initClients = this._init(config, credentials);
|
|
149
|
-
if (!initClients)
|
|
150
|
-
return false;
|
|
151
|
-
var records = {};
|
|
152
|
-
group.map(function (params) {
|
|
153
|
-
// spit by streamName
|
|
154
|
-
var evt = params.event;
|
|
155
|
-
var streamName = evt.streamName;
|
|
156
|
-
if (records[streamName] === undefined) {
|
|
157
|
-
records[streamName] = [];
|
|
158
|
-
}
|
|
159
|
-
var bufferData = evt.data && typeof evt.data !== 'string'
|
|
160
|
-
? JSON.stringify(evt.data)
|
|
161
|
-
: evt.data;
|
|
162
|
-
var Data = fromUtf8(bufferData);
|
|
163
|
-
var PartitionKey = evt.partitionKey || 'partition-' + credentials.identityId;
|
|
164
|
-
var record = { Data: Data, PartitionKey: PartitionKey };
|
|
165
|
-
records[streamName].push(record);
|
|
166
|
-
});
|
|
167
|
-
Object.keys(records).map(function (streamName) { return __awaiter(_this, void 0, void 0, function () {
|
|
168
|
-
var command, err_1;
|
|
169
|
-
return __generator(this, function (_a) {
|
|
170
|
-
switch (_a.label) {
|
|
171
|
-
case 0:
|
|
172
|
-
logger.debug('putting records to kinesis with records', records[streamName]);
|
|
173
|
-
_a.label = 1;
|
|
174
|
-
case 1:
|
|
175
|
-
_a.trys.push([1, 3, , 4]);
|
|
176
|
-
command = new PutRecordsCommand({
|
|
177
|
-
Records: records[streamName],
|
|
178
|
-
StreamName: streamName,
|
|
179
|
-
});
|
|
180
|
-
return [4 /*yield*/, this._kinesis.send(command)];
|
|
181
|
-
case 2:
|
|
182
|
-
_a.sent();
|
|
183
|
-
logger.debug('Upload records to stream', streamName);
|
|
184
|
-
return [3 /*break*/, 4];
|
|
185
|
-
case 3:
|
|
186
|
-
err_1 = _a.sent();
|
|
187
|
-
logger.debug('Failed to upload records to Kinesis', err_1);
|
|
188
|
-
return [3 /*break*/, 4];
|
|
189
|
-
case 4: return [2 /*return*/];
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
}); });
|
|
193
|
-
};
|
|
194
|
-
AWSKinesisProvider.prototype._init = function (config, credentials) {
|
|
195
|
-
logger.debug('init clients');
|
|
196
|
-
if (this._kinesis &&
|
|
197
|
-
this._config.credentials &&
|
|
198
|
-
this._config.credentials.sessionToken === credentials.sessionToken &&
|
|
199
|
-
this._config.credentials.identityId === credentials.identityId) {
|
|
200
|
-
logger.debug('no change for analytics config, directly return from init');
|
|
201
|
-
return true;
|
|
202
|
-
}
|
|
203
|
-
this._config.credentials = credentials;
|
|
204
|
-
var region = config.region, endpoint = config.endpoint;
|
|
205
|
-
return this._initKinesis(region, endpoint, credentials);
|
|
206
|
-
};
|
|
207
|
-
AWSKinesisProvider.prototype._initKinesis = function (region, endpoint, credentials) {
|
|
208
|
-
logger.debug('initialize kinesis with credentials', credentials);
|
|
209
|
-
this._kinesis = new KinesisClient({
|
|
210
|
-
region: region,
|
|
211
|
-
credentials: credentials,
|
|
212
|
-
customUserAgent: getAnalyticsUserAgent(AnalyticsAction.Record),
|
|
213
|
-
endpoint: endpoint,
|
|
214
|
-
});
|
|
215
|
-
return true;
|
|
216
|
-
};
|
|
217
|
-
/**
|
|
218
|
-
* @private
|
|
219
|
-
* check if current credentials exists
|
|
220
|
-
*/
|
|
221
|
-
AWSKinesisProvider.prototype._getCredentials = function () {
|
|
222
|
-
var _this = this;
|
|
223
|
-
return Credentials.get()
|
|
224
|
-
.then(function (credentials) {
|
|
225
|
-
if (!credentials)
|
|
226
|
-
return null;
|
|
227
|
-
logger.debug('set credentials for analytics', _this._config.credentials);
|
|
228
|
-
return Credentials.shear(credentials);
|
|
229
|
-
})
|
|
230
|
-
.catch(function (err) {
|
|
231
|
-
logger.debug('ensure credentials error', err);
|
|
232
|
-
return null;
|
|
233
|
-
});
|
|
234
|
-
};
|
|
235
|
-
return AWSKinesisProvider;
|
|
236
|
-
}());
|
|
237
|
-
export { AWSKinesisProvider };
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { AnalyticsProvider, PromiseHandlers, EventParams } from '../types';
|
|
2
|
-
export declare class AWSPinpointProvider implements AnalyticsProvider {
|
|
3
|
-
static category: string;
|
|
4
|
-
static providerName: string;
|
|
5
|
-
private _config;
|
|
6
|
-
private _sessionId;
|
|
7
|
-
private _sessionStartTimestamp;
|
|
8
|
-
private _buffer;
|
|
9
|
-
private _endpointBuffer;
|
|
10
|
-
private _clientInfo;
|
|
11
|
-
private _endpointGenerating;
|
|
12
|
-
private _endpointUpdateInProgress;
|
|
13
|
-
constructor(config?: any);
|
|
14
|
-
/**
|
|
15
|
-
* get the category of the plugin
|
|
16
|
-
*/
|
|
17
|
-
getCategory(): string;
|
|
18
|
-
/**
|
|
19
|
-
* get provider name of the plugin
|
|
20
|
-
*/
|
|
21
|
-
getProviderName(): string;
|
|
22
|
-
/**
|
|
23
|
-
* configure the plugin
|
|
24
|
-
* @param {Object} config - configuration
|
|
25
|
-
*/
|
|
26
|
-
configure(config: any): object;
|
|
27
|
-
/**
|
|
28
|
-
* record an event
|
|
29
|
-
* @param {Object} params - the params of an event
|
|
30
|
-
*/
|
|
31
|
-
record(params: EventParams, handlers: PromiseHandlers): Promise<any>;
|
|
32
|
-
private _sendEndpointUpdate;
|
|
33
|
-
/**
|
|
34
|
-
* @private
|
|
35
|
-
* @param params - params for event recording
|
|
36
|
-
* Put events into buffer
|
|
37
|
-
*/
|
|
38
|
-
private _putToBuffer;
|
|
39
|
-
private _generateSession;
|
|
40
|
-
private _send;
|
|
41
|
-
private _generateBatchItemContext;
|
|
42
|
-
private _pinpointPutEvents;
|
|
43
|
-
private _pinpointSendStopSession;
|
|
44
|
-
private _retry;
|
|
45
|
-
private _updateEndpoint;
|
|
46
|
-
private _handleEndpointUpdateFailure;
|
|
47
|
-
private _handleEndpointUpdateForbidden;
|
|
48
|
-
private _retryEndpointUpdate;
|
|
49
|
-
/**
|
|
50
|
-
* @private
|
|
51
|
-
* @param config
|
|
52
|
-
* Configure credentials and init buffer
|
|
53
|
-
*/
|
|
54
|
-
private _init;
|
|
55
|
-
private _bufferExists;
|
|
56
|
-
private _initBuffer;
|
|
57
|
-
private _flushBuffer;
|
|
58
|
-
private _resumeBuffer;
|
|
59
|
-
private _getEndpointId;
|
|
60
|
-
/**
|
|
61
|
-
* EndPoint request
|
|
62
|
-
* @return {Object} - The request of updating endpoint
|
|
63
|
-
*/
|
|
64
|
-
private _endpointRequest;
|
|
65
|
-
private _eventError;
|
|
66
|
-
private _getCredentials;
|
|
67
|
-
}
|