@mparticle/web-sdk 2.60.1 → 2.62.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/dist/mparticle.common.js +22 -22
- package/dist/mparticle.esm.js +22 -22
- package/dist/mparticle.js +118 -173
- package/dist/types/src/apiClient.d.ts +34 -0
- package/dist/types/src/audience.d.ts +4 -0
- package/dist/types/src/audienceManager.d.ts +19 -0
- package/dist/types/src/batchUploader.d.ts +72 -0
- package/dist/types/src/configAPIClient.d.ts +68 -0
- package/dist/types/src/consent.d.ts +71 -0
- package/dist/types/src/constants.d.ts +201 -0
- package/dist/types/src/cookieConsentManager.d.ts +50 -0
- package/dist/types/src/cookieSyncManager.d.ts +34 -0
- package/dist/types/src/ecommerce.d.ts +52 -0
- package/dist/types/src/ecommerce.interfaces.d.ts +78 -0
- package/dist/types/src/events.d.ts +17 -0
- package/dist/types/src/events.interfaces.d.ts +21 -0
- package/dist/types/src/filteredMparticleUser.d.ts +8 -0
- package/dist/types/src/foregroundTimeTracker.d.ts +21 -0
- package/dist/types/src/forwarders.d.ts +26 -0
- package/dist/types/src/forwarders.interfaces.d.ts +59 -0
- package/dist/types/src/forwardingStatsUploader.d.ts +5 -0
- package/dist/types/src/helpers.d.ts +54 -0
- package/dist/types/src/identity-user-interfaces.d.ts +106 -0
- package/dist/types/src/identity-utils.d.ts +36 -0
- package/dist/types/src/identity.interfaces.d.ts +117 -0
- package/dist/types/src/identityApiClient.d.ts +14 -0
- package/dist/types/src/integrationCapture.d.ts +83 -0
- package/dist/types/src/internal-types.d.ts +20 -0
- package/dist/types/src/kitBlocking.d.ts +116 -0
- package/dist/types/src/kitFilterHelper.d.ts +15 -0
- package/dist/types/src/logger.d.ts +18 -0
- package/dist/types/src/mockBatchCreator.d.ts +7 -0
- package/dist/types/src/mp-instance.d.ts +76 -0
- package/dist/types/src/mparticle-instance-manager.d.ts +2 -0
- package/dist/types/src/nativeSdkHelpers.d.ts +12 -0
- package/dist/types/src/nativeSdkHelpers.interfaces.d.ts +10 -0
- package/dist/types/src/persistence.d.ts +44 -0
- package/dist/types/src/persistence.interfaces.d.ts +73 -0
- package/dist/types/src/polyfill.d.ts +15 -0
- package/dist/types/src/pre-init-utils.d.ts +11 -0
- package/dist/types/src/public-types.d.ts +23 -0
- package/dist/types/src/reporting/errorReportingDispatcher.d.ts +8 -0
- package/dist/types/src/reporting/loggingDispatcher.d.ts +8 -0
- package/dist/types/src/reporting/types.d.ts +37 -0
- package/dist/types/src/roktManager.d.ts +176 -0
- package/dist/types/src/sdkRuntimeModels.d.ts +319 -0
- package/dist/types/src/sdkToEventsApiConverter.d.ts +43 -0
- package/dist/types/src/serverModel.d.ts +105 -0
- package/dist/types/src/sessionManager.d.ts +16 -0
- package/dist/types/src/sideloadedKit.d.ts +30 -0
- package/dist/types/src/store.d.ts +157 -0
- package/dist/types/src/stub/mparticle.stub.d.ts +182 -0
- package/dist/types/src/types.d.ts +154 -0
- package/dist/types/src/uploaders.d.ts +21 -0
- package/dist/types/src/user-utils.d.ts +5 -0
- package/dist/types/src/utils.d.ts +82 -0
- package/dist/types/src/validators.d.ts +18 -0
- package/dist/types/src/vault.d.ts +41 -0
- package/package.json +16 -3
- package/src/apiClient.ts +1 -1
- package/src/constants.ts +0 -4
- package/src/forwarders.interfaces.ts +42 -0
- package/src/identityApiClient.ts +9 -6
- package/src/internal-types.ts +66 -0
- package/src/logger.ts +3 -12
- package/src/mp-instance.ts +28 -15
- package/src/mparticle-instance-manager.ts +6 -0
- package/src/public-types.ts +84 -0
- package/src/reporting/errorReportingDispatcher.ts +21 -0
- package/src/reporting/loggingDispatcher.ts +21 -0
- package/src/reporting/types.ts +45 -0
- package/src/roktManager.ts +32 -6
- package/src/sdkRuntimeModels.ts +3 -1
- package/src/serverModel.ts +1 -1
- package/src/store.ts +1 -3
- package/src/logging/reportingLogger.ts +0 -192
- package/src/logging/types.ts +0 -32
package/dist/mparticle.js
CHANGED
|
@@ -203,7 +203,7 @@ var mParticle = (function () {
|
|
|
203
203
|
Base64: Base64$1
|
|
204
204
|
};
|
|
205
205
|
|
|
206
|
-
var version = "2.
|
|
206
|
+
var version = "2.62.0";
|
|
207
207
|
|
|
208
208
|
var Constants = {
|
|
209
209
|
sdkVersion: version,
|
|
@@ -328,9 +328,7 @@ var mParticle = (function () {
|
|
|
328
328
|
configUrl: 'jssdkcdns.mparticle.com/JS/v2/',
|
|
329
329
|
identityUrl: 'identity.mparticle.com/v1/',
|
|
330
330
|
aliasUrl: 'jssdks.mparticle.com/v1/identity/',
|
|
331
|
-
userAudienceUrl: 'nativesdks.mparticle.com/v1/'
|
|
332
|
-
loggingUrl: 'apps.rokt-api.com/v1/log',
|
|
333
|
-
errorUrl: 'apps.rokt-api.com/v1/errors'
|
|
331
|
+
userAudienceUrl: 'nativesdks.mparticle.com/v1/'
|
|
334
332
|
},
|
|
335
333
|
// These are the paths that are used to construct the CNAME urls
|
|
336
334
|
CNAMEUrlPaths: {
|
|
@@ -339,9 +337,7 @@ var mParticle = (function () {
|
|
|
339
337
|
v3SecureServiceUrl: '/webevents/v3/JS/',
|
|
340
338
|
configUrl: '/tags/JS/v2/',
|
|
341
339
|
identityUrl: '/identity/v1/',
|
|
342
|
-
aliasUrl: '/webevents/v1/identity/'
|
|
343
|
-
loggingUrl: '/v1/log',
|
|
344
|
-
errorUrl: '/v1/errors'
|
|
340
|
+
aliasUrl: '/webevents/v1/identity/'
|
|
345
341
|
},
|
|
346
342
|
Base64CookieKeys: {
|
|
347
343
|
csm: 1,
|
|
@@ -3101,7 +3097,7 @@ var mParticle = (function () {
|
|
|
3101
3097
|
// https://go.mparticle.com/work/SQDSDKS-6935
|
|
3102
3098
|
// While Event Name is 'usually' a string, there are some cases where it is a number
|
|
3103
3099
|
// in that it could be a type of MessageType Enum
|
|
3104
|
-
if (event.EventName !== Types.MessageType.AppStateTransition) {
|
|
3100
|
+
if (event.EventName !== String(Types.MessageType.AppStateTransition)) {
|
|
3105
3101
|
if (kitBlocker && kitBlocker.kitBlockingEnabled) {
|
|
3106
3102
|
event = kitBlocker.createBlockedEvent(event);
|
|
3107
3103
|
}
|
|
@@ -5010,7 +5006,7 @@ var mParticle = (function () {
|
|
|
5010
5006
|
for (var baseUrlKey in defaultBaseUrls) {
|
|
5011
5007
|
// Any custom endpoints passed to mpConfig will take priority over direct
|
|
5012
5008
|
// mapping to the silo. The most common use case is a customer provided CNAME.
|
|
5013
|
-
if (baseUrlKey === 'configUrl'
|
|
5009
|
+
if (baseUrlKey === 'configUrl') {
|
|
5014
5010
|
directBaseUrls[baseUrlKey] = config[baseUrlKey] || defaultBaseUrls[baseUrlKey];
|
|
5015
5011
|
continue;
|
|
5016
5012
|
}
|
|
@@ -5025,11 +5021,10 @@ var mParticle = (function () {
|
|
|
5025
5021
|
}
|
|
5026
5022
|
|
|
5027
5023
|
var Logger = /** @class */function () {
|
|
5028
|
-
function Logger(config
|
|
5024
|
+
function Logger(config) {
|
|
5029
5025
|
var _a, _b;
|
|
5030
5026
|
this.logLevel = (_a = config.logLevel) !== null && _a !== void 0 ? _a : LogLevelType.Warning;
|
|
5031
5027
|
this.logger = (_b = config.logger) !== null && _b !== void 0 ? _b : new ConsoleLogger();
|
|
5032
|
-
this.reportingLogger = reportingLogger;
|
|
5033
5028
|
}
|
|
5034
5029
|
Logger.prototype.verbose = function (msg) {
|
|
5035
5030
|
if (this.logLevel === LogLevelType.None) return;
|
|
@@ -5043,14 +5038,10 @@ var mParticle = (function () {
|
|
|
5043
5038
|
this.logger.warning(msg);
|
|
5044
5039
|
}
|
|
5045
5040
|
};
|
|
5046
|
-
Logger.prototype.error = function (msg
|
|
5047
|
-
var _a;
|
|
5041
|
+
Logger.prototype.error = function (msg) {
|
|
5048
5042
|
if (this.logLevel === LogLevelType.None) return;
|
|
5049
5043
|
if (this.logger.error) {
|
|
5050
5044
|
this.logger.error(msg);
|
|
5051
|
-
if (codeForReporting) {
|
|
5052
|
-
(_a = this.reportingLogger) === null || _a === void 0 ? void 0 : _a.error(msg, codeForReporting);
|
|
5053
|
-
}
|
|
5054
5045
|
}
|
|
5055
5046
|
};
|
|
5056
5047
|
Logger.prototype.isVerbose = function () {
|
|
@@ -7154,7 +7145,7 @@ var mParticle = (function () {
|
|
|
7154
7145
|
// This is an artifact from v2 events where SessionStart/End and AST event
|
|
7155
7146
|
// names are numbers (1, 2, or 10), but going forward with v3, these lifecycle
|
|
7156
7147
|
// events do not have names, but are denoted by their `event_type`
|
|
7157
|
-
EventName: event.name || event.messageType,
|
|
7148
|
+
EventName: event.name || String(event.messageType),
|
|
7158
7149
|
EventCategory: event.eventType,
|
|
7159
7150
|
EventAttributes: mpInstance._Helpers.sanitizeAttributes(event.data, event.name),
|
|
7160
7151
|
ActiveTimeOnSite: (_a = mpInstance._timeOnSiteTimer) === null || _a === void 0 ? void 0 : _a.getTimeInForeground(),
|
|
@@ -9332,7 +9323,9 @@ var mParticle = (function () {
|
|
|
9332
9323
|
var ErrorCodes = {
|
|
9333
9324
|
UNKNOWN_ERROR: 'UNKNOWN_ERROR',
|
|
9334
9325
|
UNHANDLED_EXCEPTION: 'UNHANDLED_EXCEPTION',
|
|
9335
|
-
IDENTITY_REQUEST: 'IDENTITY_REQUEST'
|
|
9326
|
+
IDENTITY_REQUEST: 'IDENTITY_REQUEST',
|
|
9327
|
+
IDENTITY_MISMATCH: 'IDENTITY_MISMATCH',
|
|
9328
|
+
ROKT_KIT_ATTACHED: 'ROKT_KIT_ATTACHED'
|
|
9336
9329
|
};
|
|
9337
9330
|
var WSDKErrorSeverity = {
|
|
9338
9331
|
ERROR: 'ERROR',
|
|
@@ -9442,7 +9435,7 @@ var mParticle = (function () {
|
|
|
9442
9435
|
this.sendIdentityRequest = function (identityApiRequest, method, callback, originalIdentityApiData, parseIdentityResponse, mpid, knownIdentities) {
|
|
9443
9436
|
var _a, _b, _c, _d;
|
|
9444
9437
|
return __awaiter(this, void 0, void 0, function () {
|
|
9445
|
-
var requestCount, invokeCallback, Logger, previousMPID, uploadUrl, uploader, fetchPayload, response, identityResponse, message, _e, responseBody, errorResponse, errorMessage, responseText, isDevelopmentMode, responseToLog, errorMessage, requestCount, err_1, requestCount, errorMessage;
|
|
9438
|
+
var requestCount, invokeCallback, Logger, errorReporter, previousMPID, uploadUrl, uploader, fetchPayload, response, identityResponse, message, _e, responseBody, errorResponse, errorMessage, responseText, isDevelopmentMode, responseToLog, errorMessage, requestCount, err_1, requestCount, errorMessage, msg;
|
|
9446
9439
|
return __generator(this, function (_f) {
|
|
9447
9440
|
switch (_f.label) {
|
|
9448
9441
|
case 0:
|
|
@@ -9452,7 +9445,7 @@ var mParticle = (function () {
|
|
|
9452
9445
|
mpInstance.captureTiming("".concat(requestCount, "-identityRequestStart"));
|
|
9453
9446
|
}
|
|
9454
9447
|
invokeCallback = mpInstance._Helpers.invokeCallback;
|
|
9455
|
-
Logger = mpInstance.Logger;
|
|
9448
|
+
Logger = mpInstance.Logger, errorReporter = mpInstance._ErrorReportingDispatcher;
|
|
9456
9449
|
Logger.verbose(Messages$1.InformationMessages.SendIdentityBegin);
|
|
9457
9450
|
if (!identityApiRequest) {
|
|
9458
9451
|
Logger.error(Messages$1.ErrorMessages.APIRequestEmpty);
|
|
@@ -9561,7 +9554,13 @@ var mParticle = (function () {
|
|
|
9561
9554
|
mpInstance.captureTiming("".concat(requestCount, "-identityRequestEnd"));
|
|
9562
9555
|
}
|
|
9563
9556
|
errorMessage = err_1.message || err_1.toString();
|
|
9564
|
-
|
|
9557
|
+
msg = 'Error sending identity request to servers' + ' - ' + errorMessage;
|
|
9558
|
+
Logger.error(msg);
|
|
9559
|
+
errorReporter === null || errorReporter === void 0 ? void 0 : errorReporter.report({
|
|
9560
|
+
message: msg,
|
|
9561
|
+
code: ErrorCodes.IDENTITY_REQUEST,
|
|
9562
|
+
severity: WSDKErrorSeverity.ERROR
|
|
9563
|
+
});
|
|
9565
9564
|
(_d = mpInstance.processQueueOnIdentityFailure) === null || _d === void 0 ? void 0 : _d.call(mpInstance);
|
|
9566
9565
|
invokeCallback(callback, HTTPCodes$1.noHttpCoverage, errorMessage);
|
|
9567
9566
|
return [3 /*break*/, 10];
|
|
@@ -9928,10 +9927,12 @@ var mParticle = (function () {
|
|
|
9928
9927
|
* @param {SDKLoggerApi} logger - The mParticle Logger instance
|
|
9929
9928
|
* @param {IRoktOptions} options - Options for the RoktManager
|
|
9930
9929
|
* @param {Function} captureTiming - Function to capture performance timing marks
|
|
9930
|
+
* @param {IErrorReportingService} errorReporter - Dispatcher for error/warning reporting
|
|
9931
|
+
* @param {ILoggingService} loggingService - Dispatcher for informational logging
|
|
9931
9932
|
*
|
|
9932
9933
|
* @throws Logs error to console if placementAttributesMapping parsing fails
|
|
9933
9934
|
*/
|
|
9934
|
-
RoktManager.prototype.init = function (roktConfig, filteredUser, identityService, store, logger, options, captureTiming) {
|
|
9935
|
+
RoktManager.prototype.init = function (roktConfig, filteredUser, identityService, store, logger, options, captureTiming, errorReporter, loggingService) {
|
|
9935
9936
|
var _a, _b;
|
|
9936
9937
|
var _c = roktConfig || {},
|
|
9937
9938
|
userAttributeFilters = _c.userAttributeFilters,
|
|
@@ -9943,6 +9944,8 @@ var mParticle = (function () {
|
|
|
9943
9944
|
this.identityService = identityService;
|
|
9944
9945
|
this.store = store;
|
|
9945
9946
|
this.logger = logger;
|
|
9947
|
+
this.errorReporter = errorReporter;
|
|
9948
|
+
this.loggingService = loggingService;
|
|
9946
9949
|
this.captureTiming = captureTiming;
|
|
9947
9950
|
(_b = this.captureTiming) === null || _b === void 0 ? void 0 : _b.call(this, PerformanceMarkType.JointSdkRoktKitInit);
|
|
9948
9951
|
this.filters = {
|
|
@@ -9981,7 +9984,7 @@ var mParticle = (function () {
|
|
|
9981
9984
|
configurable: true
|
|
9982
9985
|
});
|
|
9983
9986
|
RoktManager.prototype.attachKit = function (kit) {
|
|
9984
|
-
var _a, _b, _c, _d;
|
|
9987
|
+
var _a, _b, _c, _d, _e;
|
|
9985
9988
|
this.kit = kit;
|
|
9986
9989
|
if ((_a = kit.settings) === null || _a === void 0 ? void 0 : _a.accountId) {
|
|
9987
9990
|
this.store.setRoktAccountId(kit.settings.accountId);
|
|
@@ -9989,11 +9992,15 @@ var mParticle = (function () {
|
|
|
9989
9992
|
if (kit.integrationName) {
|
|
9990
9993
|
(_b = this.store) === null || _b === void 0 ? void 0 : _b.setIntegrationName(kit.integrationName);
|
|
9991
9994
|
}
|
|
9995
|
+
(_c = this.loggingService) === null || _c === void 0 ? void 0 : _c.log({
|
|
9996
|
+
message: 'RoktManager: Kit attached, Rokt is ready',
|
|
9997
|
+
code: ErrorCodes.ROKT_KIT_ATTACHED
|
|
9998
|
+
});
|
|
9992
9999
|
this.processMessageQueue();
|
|
9993
10000
|
try {
|
|
9994
|
-
(
|
|
10001
|
+
(_d = this.onReadyCallback) === null || _d === void 0 ? void 0 : _d.call(this);
|
|
9995
10002
|
} catch (e) {
|
|
9996
|
-
(
|
|
10003
|
+
(_e = this.logger) === null || _e === void 0 ? void 0 : _e.error('RoktManager: Error in onReadyCallback: ' + e);
|
|
9997
10004
|
}
|
|
9998
10005
|
};
|
|
9999
10006
|
/**
|
|
@@ -10012,21 +10019,21 @@ var mParticle = (function () {
|
|
|
10012
10019
|
* });
|
|
10013
10020
|
*/
|
|
10014
10021
|
RoktManager.prototype.selectPlacements = function (options) {
|
|
10015
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
10022
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
10016
10023
|
return __awaiter(this, void 0, void 0, function () {
|
|
10017
|
-
var attributes, sandboxValue, mappedAttributes, attributesToLog, currentUserIdentities_1, currentEmail, newEmail, currentHashedEmail, newHashedEmail, isValidHashedEmailIdentityType, emailChanged, hashedEmailChanged, newIdentities_1, error_1, errorMessage, finalUserIdentities, enrichedAttributes, hashedEmail, enrichedOptions, error_2;
|
|
10024
|
+
var attributes, sandboxValue, mappedAttributes, attributesToLog, currentUserIdentities_1, currentEmail, newEmail, currentHashedEmail, newHashedEmail, isValidHashedEmailIdentityType, emailChanged, hashedEmailChanged, newIdentities_1, msg, msg, error_1, errorMessage, finalUserIdentities, enrichedAttributes, hashedEmail, enrichedOptions, error_2;
|
|
10018
10025
|
var _this = this;
|
|
10019
|
-
return __generator(this, function (
|
|
10020
|
-
switch (
|
|
10026
|
+
return __generator(this, function (_m) {
|
|
10027
|
+
switch (_m.label) {
|
|
10021
10028
|
case 0:
|
|
10022
10029
|
(_a = this.captureTiming) === null || _a === void 0 ? void 0 : _a.call(this, PerformanceMarkType.JointSdkSelectPlacements);
|
|
10023
10030
|
// Queue if kit isn't ready OR if identity is in flight
|
|
10024
10031
|
if (!this.isReady() || ((_b = this.store) === null || _b === void 0 ? void 0 : _b.identityCallInFlight)) {
|
|
10025
10032
|
return [2 /*return*/, this.deferredCall('selectPlacements', options)];
|
|
10026
10033
|
}
|
|
10027
|
-
|
|
10034
|
+
_m.label = 1;
|
|
10028
10035
|
case 1:
|
|
10029
|
-
|
|
10036
|
+
_m.trys.push([1, 6,, 7]);
|
|
10030
10037
|
attributes = options.attributes;
|
|
10031
10038
|
sandboxValue = (attributes === null || attributes === void 0 ? void 0 : attributes.sandbox) || null;
|
|
10032
10039
|
mappedAttributes = this.mapPlacementAttributes(attributes, this.placementAttributesMapping);
|
|
@@ -10051,17 +10058,29 @@ var mParticle = (function () {
|
|
|
10051
10058
|
if (emailChanged) {
|
|
10052
10059
|
newIdentities_1.email = newEmail;
|
|
10053
10060
|
if (newEmail) {
|
|
10054
|
-
|
|
10061
|
+
msg = 'Email mismatch detected. Current email differs from email passed to selectPlacements call. Proceeding to call identify with email from selectPlacements call. Please verify your implementation.';
|
|
10062
|
+
this.logger.warning(msg);
|
|
10063
|
+
(_h = this.errorReporter) === null || _h === void 0 ? void 0 : _h.report({
|
|
10064
|
+
message: msg,
|
|
10065
|
+
code: ErrorCodes.IDENTITY_MISMATCH,
|
|
10066
|
+
severity: WSDKErrorSeverity.WARNING
|
|
10067
|
+
});
|
|
10055
10068
|
}
|
|
10056
10069
|
}
|
|
10057
10070
|
if (hashedEmailChanged) {
|
|
10058
10071
|
newIdentities_1[this.mappedEmailShaIdentityType] = newHashedEmail;
|
|
10059
|
-
|
|
10072
|
+
msg = 'emailsha256 mismatch detected. Current mParticle hashedEmail differs from hashedEmail passed to selectPlacements call. Proceeding to call identify with hashedEmail from selectPlacements call. Please verify your implementation.';
|
|
10073
|
+
this.logger.warning(msg);
|
|
10074
|
+
(_j = this.errorReporter) === null || _j === void 0 ? void 0 : _j.report({
|
|
10075
|
+
message: msg,
|
|
10076
|
+
code: ErrorCodes.IDENTITY_MISMATCH,
|
|
10077
|
+
severity: WSDKErrorSeverity.WARNING
|
|
10078
|
+
});
|
|
10060
10079
|
}
|
|
10061
10080
|
if (!!isEmpty(newIdentities_1)) return [3 /*break*/, 5];
|
|
10062
|
-
|
|
10081
|
+
_m.label = 2;
|
|
10063
10082
|
case 2:
|
|
10064
|
-
|
|
10083
|
+
_m.trys.push([2, 4,, 5]);
|
|
10065
10084
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
10066
10085
|
_this.identityService.identify({
|
|
10067
10086
|
userIdentities: __assign(__assign({}, currentUserIdentities_1), newIdentities_1)
|
|
@@ -10070,17 +10089,17 @@ var mParticle = (function () {
|
|
|
10070
10089
|
});
|
|
10071
10090
|
})];
|
|
10072
10091
|
case 3:
|
|
10073
|
-
|
|
10092
|
+
_m.sent();
|
|
10074
10093
|
return [3 /*break*/, 5];
|
|
10075
10094
|
case 4:
|
|
10076
|
-
error_1 =
|
|
10095
|
+
error_1 = _m.sent();
|
|
10077
10096
|
errorMessage = error_1 instanceof Error ? error_1.message : JSON.stringify(error_1);
|
|
10078
10097
|
this.logger.error('Failed to identify user with updated identities: ' + errorMessage);
|
|
10079
10098
|
return [3 /*break*/, 5];
|
|
10080
10099
|
case 5:
|
|
10081
10100
|
// Refresh current user identities to ensure we have the latest values before building enrichedAttributes
|
|
10082
10101
|
this.currentUser = this.identityService.getCurrentUser();
|
|
10083
|
-
finalUserIdentities = ((
|
|
10102
|
+
finalUserIdentities = ((_l = (_k = this.currentUser) === null || _k === void 0 ? void 0 : _k.getUserIdentities()) === null || _l === void 0 ? void 0 : _l.userIdentities) || {};
|
|
10084
10103
|
this.setUserAttributes(mappedAttributes);
|
|
10085
10104
|
enrichedAttributes = __assign(__assign({}, mappedAttributes), sandboxValue !== null ? {
|
|
10086
10105
|
sandbox: sandboxValue
|
|
@@ -10102,7 +10121,7 @@ var mParticle = (function () {
|
|
|
10102
10121
|
});
|
|
10103
10122
|
return [2 /*return*/, this.kit.selectPlacements(enrichedOptions)];
|
|
10104
10123
|
case 6:
|
|
10105
|
-
error_2 =
|
|
10124
|
+
error_2 = _m.sent();
|
|
10106
10125
|
return [2 /*return*/, Promise.reject(error_2 instanceof Error ? error_2 : new Error('Unknown error occurred'))];
|
|
10107
10126
|
case 7:
|
|
10108
10127
|
return [2 /*return*/];
|
|
@@ -10440,136 +10459,46 @@ var mParticle = (function () {
|
|
|
10440
10459
|
return CookieConsentManager;
|
|
10441
10460
|
}();
|
|
10442
10461
|
|
|
10443
|
-
|
|
10444
|
-
|
|
10445
|
-
|
|
10446
|
-
|
|
10447
|
-
|
|
10448
|
-
|
|
10449
|
-
var ReportingLogger = /** @class */function () {
|
|
10450
|
-
function ReportingLogger(config, sdkVersion, store, launcherInstanceGuid, rateLimiter) {
|
|
10451
|
-
var _this = this;
|
|
10452
|
-
this.sdkVersion = sdkVersion;
|
|
10453
|
-
this.launcherInstanceGuid = launcherInstanceGuid;
|
|
10454
|
-
this.reporter = 'mp-wsdk';
|
|
10455
|
-
this.isFeatureFlagEnabled = function () {
|
|
10456
|
-
return _this.isLoggingEnabled;
|
|
10457
|
-
};
|
|
10458
|
-
this.loggingUrl = "https://".concat(config.loggingUrl || Constants.DefaultBaseUrls.loggingUrl);
|
|
10459
|
-
this.errorUrl = "https://".concat(config.errorUrl || Constants.DefaultBaseUrls.errorUrl);
|
|
10460
|
-
this.isLoggingEnabled = config.isLoggingEnabled || false;
|
|
10461
|
-
this.store = store !== null && store !== void 0 ? store : null;
|
|
10462
|
-
this.isEnabled = this.isReportingEnabled();
|
|
10463
|
-
this.rateLimiter = rateLimiter !== null && rateLimiter !== void 0 ? rateLimiter : new RateLimiter();
|
|
10464
|
-
}
|
|
10465
|
-
ReportingLogger.prototype.setStore = function (store) {
|
|
10466
|
-
this.store = store;
|
|
10467
|
-
};
|
|
10468
|
-
ReportingLogger.prototype.info = function (msg, code) {
|
|
10469
|
-
this.sendLog(WSDKErrorSeverity.INFO, msg, code);
|
|
10470
|
-
};
|
|
10471
|
-
ReportingLogger.prototype.error = function (msg, code, stackTrace) {
|
|
10472
|
-
this.sendError(WSDKErrorSeverity.ERROR, msg, code, stackTrace);
|
|
10473
|
-
};
|
|
10474
|
-
ReportingLogger.prototype.warning = function (msg, code) {
|
|
10475
|
-
this.sendError(WSDKErrorSeverity.WARNING, msg, code);
|
|
10476
|
-
};
|
|
10477
|
-
ReportingLogger.prototype.sendToServer = function (url, severity, msg, code, stackTrace) {
|
|
10478
|
-
if (!this.canSendLog(severity)) return;
|
|
10479
|
-
try {
|
|
10480
|
-
var logRequest = this.buildLogRequest(severity, msg, code, stackTrace);
|
|
10481
|
-
var uploader = new FetchUploader(url);
|
|
10482
|
-
var payload = {
|
|
10483
|
-
method: 'POST',
|
|
10484
|
-
headers: this.getHeaders(),
|
|
10485
|
-
body: JSON.stringify(logRequest)
|
|
10486
|
-
};
|
|
10487
|
-
uploader.upload(payload)["catch"](function (error) {
|
|
10488
|
-
console.error('ReportingLogger: Failed to send log', error);
|
|
10489
|
-
});
|
|
10490
|
-
} catch (error) {
|
|
10491
|
-
console.error('ReportingLogger: Failed to send log', error);
|
|
10492
|
-
}
|
|
10493
|
-
};
|
|
10494
|
-
ReportingLogger.prototype.sendLog = function (severity, msg, code, stackTrace) {
|
|
10495
|
-
this.sendToServer(this.loggingUrl, severity, msg, code, stackTrace);
|
|
10496
|
-
};
|
|
10497
|
-
ReportingLogger.prototype.sendError = function (severity, msg, code, stackTrace) {
|
|
10498
|
-
this.sendToServer(this.errorUrl, severity, msg, code, stackTrace);
|
|
10499
|
-
};
|
|
10500
|
-
ReportingLogger.prototype.buildLogRequest = function (severity, msg, code, stackTrace) {
|
|
10501
|
-
var _a, _b;
|
|
10502
|
-
return {
|
|
10503
|
-
additionalInformation: {
|
|
10504
|
-
message: msg,
|
|
10505
|
-
version: this.getVersion()
|
|
10506
|
-
},
|
|
10507
|
-
severity: severity,
|
|
10508
|
-
code: code !== null && code !== void 0 ? code : ErrorCodes.UNKNOWN_ERROR,
|
|
10509
|
-
url: this.getUrl(),
|
|
10510
|
-
deviceInfo: this.getUserAgent(),
|
|
10511
|
-
stackTrace: stackTrace,
|
|
10512
|
-
reporter: this.reporter,
|
|
10513
|
-
// Integration will be set to integrationName once the kit connects via RoktManager.attachKit()
|
|
10514
|
-
integration: (_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.getIntegrationName()) !== null && _b !== void 0 ? _b : 'mp-wsdk'
|
|
10515
|
-
};
|
|
10516
|
-
};
|
|
10517
|
-
ReportingLogger.prototype.getVersion = function () {
|
|
10518
|
-
var _a, _b, _c;
|
|
10519
|
-
return (_c = (_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.getIntegrationName) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : "mParticle_wsdkv_".concat(this.sdkVersion);
|
|
10520
|
-
};
|
|
10521
|
-
ReportingLogger.prototype.isReportingEnabled = function () {
|
|
10522
|
-
return this.isDebugModeEnabled() || this.isRoktDomainPresent() && this.isFeatureFlagEnabled();
|
|
10523
|
-
};
|
|
10524
|
-
ReportingLogger.prototype.isRoktDomainPresent = function () {
|
|
10525
|
-
return typeof window !== 'undefined' && Boolean(window['ROKT_DOMAIN']);
|
|
10526
|
-
};
|
|
10527
|
-
ReportingLogger.prototype.isDebugModeEnabled = function () {
|
|
10528
|
-
var _a, _b, _c, _d;
|
|
10529
|
-
return typeof window !== 'undefined' && ((_d = (_c = (_b = (_a = window.location) === null || _a === void 0 ? void 0 : _a.search) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === null || _c === void 0 ? void 0 : _c.includes('mp_enable_logging=true')) !== null && _d !== void 0 ? _d : false);
|
|
10530
|
-
};
|
|
10531
|
-
ReportingLogger.prototype.canSendLog = function (severity) {
|
|
10532
|
-
return this.isEnabled && !this.isRateLimited(severity);
|
|
10533
|
-
};
|
|
10534
|
-
ReportingLogger.prototype.isRateLimited = function (severity) {
|
|
10535
|
-
return this.rateLimiter.incrementAndCheck(severity);
|
|
10462
|
+
var ErrorReportingDispatcher = /** @class */function () {
|
|
10463
|
+
function ErrorReportingDispatcher() {
|
|
10464
|
+
this.services = [];
|
|
10465
|
+
}
|
|
10466
|
+
ErrorReportingDispatcher.prototype.register = function (service) {
|
|
10467
|
+
this.services.push(service);
|
|
10536
10468
|
};
|
|
10537
|
-
|
|
10538
|
-
var
|
|
10539
|
-
|
|
10469
|
+
ErrorReportingDispatcher.prototype.report = function (error) {
|
|
10470
|
+
var _this = this;
|
|
10471
|
+
this.services.forEach(function (s) {
|
|
10472
|
+
var _a;
|
|
10473
|
+
try {
|
|
10474
|
+
s.report(error);
|
|
10475
|
+
} catch (e) {
|
|
10476
|
+
(_a = _this.logger) === null || _a === void 0 ? void 0 : _a.error('Error in ErrorReportingService: ' + e);
|
|
10477
|
+
}
|
|
10478
|
+
});
|
|
10540
10479
|
};
|
|
10541
|
-
|
|
10542
|
-
|
|
10543
|
-
|
|
10480
|
+
return ErrorReportingDispatcher;
|
|
10481
|
+
}();
|
|
10482
|
+
|
|
10483
|
+
var LoggingDispatcher = /** @class */function () {
|
|
10484
|
+
function LoggingDispatcher() {
|
|
10485
|
+
this.services = [];
|
|
10486
|
+
}
|
|
10487
|
+
LoggingDispatcher.prototype.register = function (service) {
|
|
10488
|
+
this.services.push(service);
|
|
10544
10489
|
};
|
|
10545
|
-
|
|
10546
|
-
var
|
|
10547
|
-
|
|
10548
|
-
|
|
10549
|
-
|
|
10550
|
-
|
|
10551
|
-
|
|
10552
|
-
|
|
10553
|
-
|
|
10554
|
-
|
|
10555
|
-
}
|
|
10556
|
-
return headers;
|
|
10490
|
+
LoggingDispatcher.prototype.log = function (entry) {
|
|
10491
|
+
var _this = this;
|
|
10492
|
+
this.services.forEach(function (s) {
|
|
10493
|
+
var _a;
|
|
10494
|
+
try {
|
|
10495
|
+
s.log(entry);
|
|
10496
|
+
} catch (e) {
|
|
10497
|
+
(_a = _this.logger) === null || _a === void 0 ? void 0 : _a.error('Error in LoggingService: ' + e);
|
|
10498
|
+
}
|
|
10499
|
+
});
|
|
10557
10500
|
};
|
|
10558
|
-
return
|
|
10559
|
-
}();
|
|
10560
|
-
var RateLimiter = /** @class */function () {
|
|
10561
|
-
function RateLimiter() {
|
|
10562
|
-
this.rateLimits = new Map([[WSDKErrorSeverity.ERROR, 10], [WSDKErrorSeverity.WARNING, 10], [WSDKErrorSeverity.INFO, 10]]);
|
|
10563
|
-
this.logCount = new Map();
|
|
10564
|
-
}
|
|
10565
|
-
RateLimiter.prototype.incrementAndCheck = function (severity) {
|
|
10566
|
-
var count = this.logCount.get(severity) || 0;
|
|
10567
|
-
var limit = this.rateLimits.get(severity) || 10;
|
|
10568
|
-
var newCount = count + 1;
|
|
10569
|
-
this.logCount.set(severity, newCount);
|
|
10570
|
-
return newCount > limit;
|
|
10571
|
-
};
|
|
10572
|
-
return RateLimiter;
|
|
10501
|
+
return LoggingDispatcher;
|
|
10573
10502
|
}();
|
|
10574
10503
|
|
|
10575
10504
|
var Messages = Constants.Messages,
|
|
@@ -10612,6 +10541,8 @@ var mParticle = (function () {
|
|
|
10612
10541
|
integrationDelays: {},
|
|
10613
10542
|
forwarderConstructors: []
|
|
10614
10543
|
};
|
|
10544
|
+
this._ErrorReportingDispatcher = new ErrorReportingDispatcher();
|
|
10545
|
+
this._LoggingDispatcher = new LoggingDispatcher();
|
|
10615
10546
|
this._RoktManager = new RoktManager();
|
|
10616
10547
|
this._RoktManager.setOnReadyCallback(function () {
|
|
10617
10548
|
self.processQueueOnIdentityFailure();
|
|
@@ -10709,14 +10640,16 @@ var mParticle = (function () {
|
|
|
10709
10640
|
console.error('Cannot reset mParticle', error);
|
|
10710
10641
|
}
|
|
10711
10642
|
};
|
|
10712
|
-
this._resetForTests = function (config, keepPersistence, instance
|
|
10643
|
+
this._resetForTests = function (config, keepPersistence, instance) {
|
|
10713
10644
|
if (instance._Store) {
|
|
10714
10645
|
delete instance._Store;
|
|
10715
10646
|
}
|
|
10716
|
-
instance.
|
|
10647
|
+
instance._ErrorReportingDispatcher = new ErrorReportingDispatcher();
|
|
10648
|
+
instance._LoggingDispatcher = new LoggingDispatcher();
|
|
10649
|
+
instance.Logger = new Logger(config);
|
|
10650
|
+
instance._ErrorReportingDispatcher.logger = instance.Logger;
|
|
10651
|
+
instance._LoggingDispatcher.logger = instance.Logger;
|
|
10717
10652
|
instance._Store = new Store(config, instance);
|
|
10718
|
-
// Update ReportingLogger with the new Store reference to avoid stale data
|
|
10719
|
-
reportingLogger === null || reportingLogger === void 0 ? void 0 : reportingLogger.setStore(instance._Store);
|
|
10720
10653
|
instance._Store.isLocalStorageAvailable = instance._Persistence.determineLocalStorageAvailability(window.localStorage);
|
|
10721
10654
|
instance._Events.stopTracking();
|
|
10722
10655
|
if (!keepPersistence) {
|
|
@@ -11532,6 +11465,12 @@ var mParticle = (function () {
|
|
|
11532
11465
|
};
|
|
11533
11466
|
}
|
|
11534
11467
|
};
|
|
11468
|
+
this._registerErrorReportingService = function (service) {
|
|
11469
|
+
self._ErrorReportingDispatcher.register(service);
|
|
11470
|
+
};
|
|
11471
|
+
this._registerLoggingService = function (service) {
|
|
11472
|
+
self._LoggingDispatcher.register(service);
|
|
11473
|
+
};
|
|
11535
11474
|
var launcherInstanceGuidKey = Constants.Rokt.LauncherInstanceGuidKey;
|
|
11536
11475
|
this.setLauncherInstanceGuid = function () {
|
|
11537
11476
|
if (!window[launcherInstanceGuidKey] || typeof window[launcherInstanceGuidKey] !== 'string') {
|
|
@@ -11608,7 +11547,7 @@ var mParticle = (function () {
|
|
|
11608
11547
|
domain: config === null || config === void 0 ? void 0 : config.domain
|
|
11609
11548
|
};
|
|
11610
11549
|
// https://go.mparticle.com/work/SQDSDKS-7339
|
|
11611
|
-
mpInstance._RoktManager.init(roktConfig, roktFilteredUser, mpInstance.Identity, mpInstance._Store, mpInstance.Logger, roktOptions, mpInstance.captureTiming);
|
|
11550
|
+
mpInstance._RoktManager.init(roktConfig, roktFilteredUser, mpInstance.Identity, mpInstance._Store, mpInstance.Logger, roktOptions, mpInstance.captureTiming, mpInstance._ErrorReportingDispatcher, mpInstance._LoggingDispatcher);
|
|
11612
11551
|
}
|
|
11613
11552
|
mpInstance._Forwarders.processForwarders(config, mpInstance._APIClient.prepareForwardingStats);
|
|
11614
11553
|
mpInstance._Forwarders.processPixelConfigs(config);
|
|
@@ -11702,11 +11641,11 @@ var mParticle = (function () {
|
|
|
11702
11641
|
}
|
|
11703
11642
|
function runPreConfigFetchInitialization(mpInstance, apiKey, config) {
|
|
11704
11643
|
var _a;
|
|
11705
|
-
mpInstance.
|
|
11706
|
-
mpInstance.
|
|
11644
|
+
mpInstance.Logger = new Logger(config);
|
|
11645
|
+
mpInstance._ErrorReportingDispatcher.logger = mpInstance.Logger;
|
|
11646
|
+
mpInstance._LoggingDispatcher.logger = mpInstance.Logger;
|
|
11707
11647
|
mpInstance._Store = new Store(config, mpInstance, apiKey);
|
|
11708
11648
|
window.mParticle.Store = mpInstance._Store;
|
|
11709
|
-
mpInstance._ReportingLogger.setStore(mpInstance._Store);
|
|
11710
11649
|
mpInstance.Logger.verbose(StartingInitialization);
|
|
11711
11650
|
// Initialize CookieConsentManager with privacy flags from launcherOptions
|
|
11712
11651
|
var _b = (_a = config === null || config === void 0 ? void 0 : config.launcherOptions) !== null && _a !== void 0 ? _a : {},
|
|
@@ -12243,6 +12182,12 @@ var mParticle = (function () {
|
|
|
12243
12182
|
this._setWrapperSDKInfo = function (name, version) {
|
|
12244
12183
|
self.getInstance()._setWrapperSDKInfo(name, version);
|
|
12245
12184
|
};
|
|
12185
|
+
this._registerErrorReportingService = function (service) {
|
|
12186
|
+
self.getInstance()._registerErrorReportingService(service);
|
|
12187
|
+
};
|
|
12188
|
+
this._registerLoggingService = function (service) {
|
|
12189
|
+
self.getInstance()._registerLoggingService(service);
|
|
12190
|
+
};
|
|
12246
12191
|
}
|
|
12247
12192
|
var mParticleManager = new mParticleInstanceManager();
|
|
12248
12193
|
if (typeof window !== 'undefined') {
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BatchUploader } from './batchUploader';
|
|
2
|
+
import { SDKEvent, SDKDataPlan } from './sdkRuntimeModels';
|
|
3
|
+
import KitBlocker from './kitBlocking';
|
|
4
|
+
import { Dictionary } from './utils';
|
|
5
|
+
import { IUploadObject } from './serverModel';
|
|
6
|
+
import { MPForwarder } from './forwarders.interfaces';
|
|
7
|
+
import { IMParticleUser, ISDKUserAttributes } from './identity-user-interfaces';
|
|
8
|
+
import { AsyncUploader } from './uploaders';
|
|
9
|
+
import { IMParticleWebSDKInstance } from './mp-instance';
|
|
10
|
+
export interface IAPIClient {
|
|
11
|
+
uploader: BatchUploader | null;
|
|
12
|
+
queueEventForBatchUpload: (event: SDKEvent) => void;
|
|
13
|
+
processQueuedEvents: () => void;
|
|
14
|
+
appendUserInfoToEvents: (user: IMParticleUser, events: SDKEvent[]) => void;
|
|
15
|
+
sendEventToServer: (event: SDKEvent, _options?: Dictionary<any>) => void;
|
|
16
|
+
sendSingleEventToServer: (event: SDKEvent) => void;
|
|
17
|
+
sendBatchForwardingStatsToServer: (forwardingStatsData: IForwardingStatsData, xhr: XMLHttpRequest) => void;
|
|
18
|
+
initializeForwarderStatsUploader: () => AsyncUploader;
|
|
19
|
+
prepareForwardingStats: (forwarder: MPForwarder, event: IUploadObject) => void;
|
|
20
|
+
}
|
|
21
|
+
export interface IForwardingStatsData {
|
|
22
|
+
mid: number;
|
|
23
|
+
esid: number;
|
|
24
|
+
n: string;
|
|
25
|
+
attrs: ISDKUserAttributes;
|
|
26
|
+
sdk: string;
|
|
27
|
+
dt: number;
|
|
28
|
+
et: number;
|
|
29
|
+
dbg: boolean;
|
|
30
|
+
ct: number;
|
|
31
|
+
eec: number;
|
|
32
|
+
dp: SDKDataPlan;
|
|
33
|
+
}
|
|
34
|
+
export default function APIClient(this: IAPIClient, mpInstance: IMParticleWebSDKInstance, kitBlocker: KitBlocker): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SDKLoggerApi } from './sdkRuntimeModels';
|
|
2
|
+
import { AsyncUploader } from './uploaders';
|
|
3
|
+
import Audience from './audience';
|
|
4
|
+
export interface IAudienceMembershipsServerResponse {
|
|
5
|
+
dt: 'cam';
|
|
6
|
+
ct: number;
|
|
7
|
+
id: string;
|
|
8
|
+
audience_memberships: Audience[];
|
|
9
|
+
}
|
|
10
|
+
export interface IAudienceMemberships {
|
|
11
|
+
currentAudienceMemberships: Audience[];
|
|
12
|
+
}
|
|
13
|
+
export default class AudienceManager {
|
|
14
|
+
url: string;
|
|
15
|
+
userAudienceAPI: AsyncUploader;
|
|
16
|
+
logger: SDKLoggerApi;
|
|
17
|
+
constructor(userAudienceUrl: string, apiKey: string, logger: SDKLoggerApi);
|
|
18
|
+
sendGetUserAudienceRequest(mpid: string, callback: (userAudiences: IAudienceMemberships) => void): Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Batch } from '@mparticle/event-models';
|
|
2
|
+
import { SDKEvent } from './sdkRuntimeModels';
|
|
3
|
+
import { IMParticleWebSDKInstance } from './mp-instance';
|
|
4
|
+
/**
|
|
5
|
+
* BatchUploader contains all the logic to store/retrieve events and batches
|
|
6
|
+
* to/from persistence, and upload batches to mParticle.
|
|
7
|
+
* It queues events as they come in, storing them in persistence, then at set
|
|
8
|
+
* intervals turns them into batches and transfers between event and batch
|
|
9
|
+
* persistence.
|
|
10
|
+
* It then attempts to upload them to mParticle, purging batch persistence if
|
|
11
|
+
* the upload is successful
|
|
12
|
+
*
|
|
13
|
+
* These uploads happen on an interval basis using window.fetch or XHR
|
|
14
|
+
* requests, depending on what is available in the browser.
|
|
15
|
+
*
|
|
16
|
+
* Uploads can also be triggered on browser visibility/focus changes via an
|
|
17
|
+
* event listener, which then uploads to mPartice via the browser's Beacon API.
|
|
18
|
+
*/
|
|
19
|
+
export declare class BatchUploader {
|
|
20
|
+
static readonly CONTENT_TYPE: string;
|
|
21
|
+
static readonly MINIMUM_INTERVAL_MILLIS: number;
|
|
22
|
+
uploadIntervalMillis: number;
|
|
23
|
+
eventsQueuedForProcessing: SDKEvent[];
|
|
24
|
+
batchesQueuedForProcessing: Batch[];
|
|
25
|
+
mpInstance: IMParticleWebSDKInstance;
|
|
26
|
+
uploadUrl: string;
|
|
27
|
+
batchingEnabled: boolean;
|
|
28
|
+
private eventVault;
|
|
29
|
+
private batchVault;
|
|
30
|
+
private offlineStorageEnabled;
|
|
31
|
+
private uploader;
|
|
32
|
+
private lastASTEventTime;
|
|
33
|
+
private readonly AST_DEBOUNCE_MS;
|
|
34
|
+
/**
|
|
35
|
+
* Creates an instance of a BatchUploader
|
|
36
|
+
* @param {IMParticleWebSDKInstance} mpInstance - the mParticle SDK instance
|
|
37
|
+
* @param {number} uploadInterval - the desired upload interval in milliseconds
|
|
38
|
+
*/
|
|
39
|
+
constructor(mpInstance: IMParticleWebSDKInstance, uploadInterval: number);
|
|
40
|
+
private isOfflineStorageAvailable;
|
|
41
|
+
private shouldDebounceAndUpdateLastASTTime;
|
|
42
|
+
private createBackgroundASTEvent;
|
|
43
|
+
private addEventListeners;
|
|
44
|
+
private isBeaconAvailable;
|
|
45
|
+
private triggerUploadInterval;
|
|
46
|
+
/**
|
|
47
|
+
* This method will queue a single Event which will eventually be processed into a Batch
|
|
48
|
+
* @param event event that should be queued
|
|
49
|
+
*/
|
|
50
|
+
queueEvent(event: SDKEvent): void;
|
|
51
|
+
private shouldTriggerImmediateUpload;
|
|
52
|
+
/**
|
|
53
|
+
* This implements crucial logic to:
|
|
54
|
+
* - bucket pending events by MPID, and then by Session, and upload individual batches for each bucket.
|
|
55
|
+
*
|
|
56
|
+
* In the future this should enforce other requirements such as maximum batch size.
|
|
57
|
+
*
|
|
58
|
+
* @param sdkEvents current pending events
|
|
59
|
+
* @param defaultUser the user to reference for events that are missing data
|
|
60
|
+
*/
|
|
61
|
+
private static createNewBatches;
|
|
62
|
+
/**
|
|
63
|
+
* This is the main loop function:
|
|
64
|
+
* - take all pending events and turn them into batches
|
|
65
|
+
* - attempt to upload each batch
|
|
66
|
+
*
|
|
67
|
+
* @param triggerFuture whether to trigger the loop again - for manual/forced uploads this should be false
|
|
68
|
+
* @param useBeacon whether to use the beacon API - used when the page is being unloaded
|
|
69
|
+
*/
|
|
70
|
+
prepareAndUpload(triggerFuture?: boolean, useBeacon?: boolean): Promise<void>;
|
|
71
|
+
private uploadBatches;
|
|
72
|
+
}
|