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