@microsoft/applicationinsights-channel-js 2.8.5-nightly.2206-04 → 2.8.5-nightly.2207-02
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/browser/applicationinsights-channel-js.integrity.json +9 -9
- package/browser/applicationinsights-channel-js.js +1463 -1286
- package/browser/applicationinsights-channel-js.js.map +1 -1
- package/browser/applicationinsights-channel-js.min.js +2 -2
- package/browser/applicationinsights-channel-js.min.js.map +1 -1
- package/dist/applicationinsights-channel-js.api.json +5 -2
- package/dist/applicationinsights-channel-js.d.ts +1 -1
- package/dist/applicationinsights-channel-js.js +1463 -1286
- package/dist/applicationinsights-channel-js.js.map +1 -1
- package/dist/applicationinsights-channel-js.min.js +2 -2
- package/dist/applicationinsights-channel-js.min.js.map +1 -1
- package/dist/applicationinsights-channel-js.rollup.d.ts +1 -1
- package/dist-esm/EnvelopeCreator.js +64 -63
- package/dist-esm/EnvelopeCreator.js.map +1 -1
- package/dist-esm/Interfaces.js +1 -1
- package/dist-esm/InternalConstants.js +13 -0
- package/dist-esm/InternalConstants.js.map +1 -0
- package/dist-esm/Offline.js +7 -6
- package/dist-esm/Offline.js.map +1 -1
- package/dist-esm/SendBuffer.js +51 -50
- package/dist-esm/SendBuffer.js.map +1 -1
- package/dist-esm/Sender.js +178 -172
- package/dist-esm/Sender.js.map +1 -1
- package/dist-esm/Serializer.js +11 -10
- package/dist-esm/Serializer.js.map +1 -1
- package/dist-esm/TelemetryProcessors/Sample.js +6 -5
- package/dist-esm/TelemetryProcessors/Sample.js.map +1 -1
- package/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js +4 -3
- package/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js.map +1 -1
- package/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js +11 -10
- package/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js.map +1 -1
- package/dist-esm/__DynamicConstants.js +70 -0
- package/dist-esm/__DynamicConstants.js.map +1 -0
- package/dist-esm/applicationinsights-channel-js.js +1 -1
- package/package.json +7 -4
- package/src/EnvelopeCreator.ts +19 -24
- package/src/InternalConstants.ts +11 -0
- package/src/Offline.ts +5 -3
- package/src/SendBuffer.ts +9 -6
- package/src/Sender.ts +46 -46
- package/src/Serializer.ts +7 -7
- package/src/TelemetryProcessors/Sample.ts +10 -10
- package/src/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.ts +4 -4
- package/src/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.ts +8 -8
- package/src/__DynamicConstants.ts +68 -0
- package/types/EnvelopeCreator.d.ts +1 -1
- package/types/InternalConstants.d.ts +1 -0
- package/types/Sender.d.ts +3 -3
- package/types/Serializer.d.ts +1 -1
- package/types/__DynamicConstants.d.ts +56 -0
- package/types/tsdoc-metadata.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Application Insights JavaScript SDK - Channel, 2.8.5-nightly.
|
|
2
|
+
* Application Insights JavaScript SDK - Channel, 2.8.5-nightly.2207-02
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
(function (global, factory) {
|
|
@@ -98,21 +98,310 @@
|
|
|
98
98
|
d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new __());
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
var
|
|
106
|
-
var
|
|
107
|
-
var
|
|
108
|
-
var
|
|
101
|
+
/*!
|
|
102
|
+
* Microsoft Dynamic Proto Utility, 1.1.6
|
|
103
|
+
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
104
|
+
*/
|
|
105
|
+
var Constructor = 'constructor';
|
|
106
|
+
var Prototype = 'prototype';
|
|
107
|
+
var strFunction = 'function';
|
|
108
|
+
var DynInstFuncTable = '_dynInstFuncs';
|
|
109
|
+
var DynProxyTag = '_isDynProxy';
|
|
110
|
+
var DynClassName = '_dynClass';
|
|
111
|
+
var DynClassNamePrefix = '_dynCls$';
|
|
112
|
+
var DynInstChkTag = '_dynInstChk';
|
|
113
|
+
var DynAllowInstChkTag = DynInstChkTag;
|
|
114
|
+
var DynProtoDefaultOptions = '_dfOpts';
|
|
115
|
+
var UnknownValue = '_unknown_';
|
|
116
|
+
var str__Proto$1 = "__proto__";
|
|
117
|
+
var DynProtoBaseProto = "_dyn" + str__Proto$1;
|
|
118
|
+
var DynProtoCurrent = "_dynInstProto";
|
|
119
|
+
var strUseBaseInst = 'useBaseInst';
|
|
120
|
+
var strSetInstFuncs = 'setInstFuncs';
|
|
121
|
+
var Obj = Object;
|
|
122
|
+
var _objGetPrototypeOf$1 = Obj["getPrototypeOf"];
|
|
123
|
+
var _objGetOwnProps = Obj["getOwnPropertyNames"];
|
|
124
|
+
var _dynamicNames = 0;
|
|
125
|
+
function _hasOwnProperty(obj, prop) {
|
|
126
|
+
return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);
|
|
127
|
+
}
|
|
128
|
+
function _isObjectOrArrayPrototype(target) {
|
|
129
|
+
return target && (target === Obj[Prototype] || target === Array[Prototype]);
|
|
130
|
+
}
|
|
131
|
+
function _isObjectArrayOrFunctionPrototype(target) {
|
|
132
|
+
return _isObjectOrArrayPrototype(target) || target === Function[Prototype];
|
|
133
|
+
}
|
|
134
|
+
function _getObjProto$1(target) {
|
|
135
|
+
var newProto;
|
|
136
|
+
if (target) {
|
|
137
|
+
if (_objGetPrototypeOf$1) {
|
|
138
|
+
return _objGetPrototypeOf$1(target);
|
|
139
|
+
}
|
|
140
|
+
var curProto = target[str__Proto$1] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);
|
|
141
|
+
newProto = target[DynProtoBaseProto] || curProto;
|
|
142
|
+
if (!_hasOwnProperty(target, DynProtoBaseProto)) {
|
|
143
|
+
delete target[DynProtoCurrent];
|
|
144
|
+
newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];
|
|
145
|
+
target[DynProtoCurrent] = curProto;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return newProto;
|
|
149
|
+
}
|
|
150
|
+
function _forEachProp(target, func) {
|
|
151
|
+
var props = [];
|
|
152
|
+
if (_objGetOwnProps) {
|
|
153
|
+
props = _objGetOwnProps(target);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
for (var name_1 in target) {
|
|
157
|
+
if (typeof name_1 === "string" && _hasOwnProperty(target, name_1)) {
|
|
158
|
+
props.push(name_1);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (props && props.length > 0) {
|
|
163
|
+
for (var lp = 0; lp < props.length; lp++) {
|
|
164
|
+
func(props[lp]);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
function _isDynamicCandidate(target, funcName, skipOwn) {
|
|
169
|
+
return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));
|
|
170
|
+
}
|
|
171
|
+
function _throwTypeError(message) {
|
|
172
|
+
throw new TypeError("DynamicProto: " + message);
|
|
173
|
+
}
|
|
174
|
+
function _getInstanceFuncs(thisTarget) {
|
|
175
|
+
var instFuncs = {};
|
|
176
|
+
_forEachProp(thisTarget, function (name) {
|
|
177
|
+
if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {
|
|
178
|
+
instFuncs[name] = thisTarget[name];
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
return instFuncs;
|
|
182
|
+
}
|
|
183
|
+
function _hasVisited(values, value) {
|
|
184
|
+
for (var lp = values.length - 1; lp >= 0; lp--) {
|
|
185
|
+
if (values[lp] === value) {
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
function _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {
|
|
192
|
+
function _instFuncProxy(target, funcHost, funcName) {
|
|
193
|
+
var theFunc = funcHost[funcName];
|
|
194
|
+
if (theFunc[DynProxyTag] && useBaseInst) {
|
|
195
|
+
var instFuncTable = target[DynInstFuncTable] || {};
|
|
196
|
+
if (instFuncTable[DynAllowInstChkTag] !== false) {
|
|
197
|
+
theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return function () {
|
|
201
|
+
return theFunc.apply(target, arguments);
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
var baseFuncs = {};
|
|
205
|
+
_forEachProp(instFuncs, function (name) {
|
|
206
|
+
baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);
|
|
207
|
+
});
|
|
208
|
+
var baseProto = _getObjProto$1(classProto);
|
|
209
|
+
var visited = [];
|
|
210
|
+
while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {
|
|
211
|
+
_forEachProp(baseProto, function (name) {
|
|
212
|
+
if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf$1)) {
|
|
213
|
+
baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
visited.push(baseProto);
|
|
217
|
+
baseProto = _getObjProto$1(baseProto);
|
|
218
|
+
}
|
|
219
|
+
return baseFuncs;
|
|
220
|
+
}
|
|
221
|
+
function _getInstFunc(target, funcName, proto, currentDynProtoProxy) {
|
|
222
|
+
var instFunc = null;
|
|
223
|
+
if (target && _hasOwnProperty(proto, DynClassName)) {
|
|
224
|
+
var instFuncTable = target[DynInstFuncTable] || {};
|
|
225
|
+
instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];
|
|
226
|
+
if (!instFunc) {
|
|
227
|
+
_throwTypeError("Missing [" + funcName + "] " + strFunction);
|
|
228
|
+
}
|
|
229
|
+
if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {
|
|
230
|
+
var canAddInst = !_hasOwnProperty(target, funcName);
|
|
231
|
+
var objProto = _getObjProto$1(target);
|
|
232
|
+
var visited = [];
|
|
233
|
+
while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {
|
|
234
|
+
var protoFunc = objProto[funcName];
|
|
235
|
+
if (protoFunc) {
|
|
236
|
+
canAddInst = (protoFunc === currentDynProtoProxy);
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
visited.push(objProto);
|
|
240
|
+
objProto = _getObjProto$1(objProto);
|
|
241
|
+
}
|
|
242
|
+
try {
|
|
243
|
+
if (canAddInst) {
|
|
244
|
+
target[funcName] = instFunc;
|
|
245
|
+
}
|
|
246
|
+
instFunc[DynInstChkTag] = 1;
|
|
247
|
+
}
|
|
248
|
+
catch (e) {
|
|
249
|
+
instFuncTable[DynAllowInstChkTag] = false;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return instFunc;
|
|
254
|
+
}
|
|
255
|
+
function _getProtoFunc(funcName, proto, currentDynProtoProxy) {
|
|
256
|
+
var protoFunc = proto[funcName];
|
|
257
|
+
if (protoFunc === currentDynProtoProxy) {
|
|
258
|
+
protoFunc = _getObjProto$1(proto)[funcName];
|
|
259
|
+
}
|
|
260
|
+
if (typeof protoFunc !== strFunction) {
|
|
261
|
+
_throwTypeError("[" + funcName + "] is not a " + strFunction);
|
|
262
|
+
}
|
|
263
|
+
return protoFunc;
|
|
264
|
+
}
|
|
265
|
+
function _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {
|
|
266
|
+
function _createDynamicPrototype(proto, funcName) {
|
|
267
|
+
var dynProtoProxy = function () {
|
|
268
|
+
var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);
|
|
269
|
+
return instFunc.apply(this, arguments);
|
|
270
|
+
};
|
|
271
|
+
dynProtoProxy[DynProxyTag] = 1;
|
|
272
|
+
return dynProtoProxy;
|
|
273
|
+
}
|
|
274
|
+
if (!_isObjectOrArrayPrototype(proto)) {
|
|
275
|
+
var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};
|
|
276
|
+
var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {});
|
|
277
|
+
if (instFuncTable[DynAllowInstChkTag] !== false) {
|
|
278
|
+
instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;
|
|
279
|
+
}
|
|
280
|
+
_forEachProp(target, function (name) {
|
|
281
|
+
if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {
|
|
282
|
+
instFuncs_1[name] = target[name];
|
|
283
|
+
delete target[name];
|
|
284
|
+
if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {
|
|
285
|
+
proto[name] = _createDynamicPrototype(proto, name);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
function _checkPrototype(classProto, thisTarget) {
|
|
292
|
+
if (_objGetPrototypeOf$1) {
|
|
293
|
+
var visited = [];
|
|
294
|
+
var thisProto = _getObjProto$1(thisTarget);
|
|
295
|
+
while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {
|
|
296
|
+
if (thisProto === classProto) {
|
|
297
|
+
return true;
|
|
298
|
+
}
|
|
299
|
+
visited.push(thisProto);
|
|
300
|
+
thisProto = _getObjProto$1(thisProto);
|
|
301
|
+
}
|
|
302
|
+
return false;
|
|
303
|
+
}
|
|
304
|
+
return true;
|
|
305
|
+
}
|
|
306
|
+
function _getObjName(target, unknownValue) {
|
|
307
|
+
if (_hasOwnProperty(target, Prototype)) {
|
|
308
|
+
return target.name || unknownValue || UnknownValue;
|
|
309
|
+
}
|
|
310
|
+
return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;
|
|
311
|
+
}
|
|
312
|
+
function dynamicProto(theClass, target, delegateFunc, options) {
|
|
313
|
+
if (!_hasOwnProperty(theClass, Prototype)) {
|
|
314
|
+
_throwTypeError("theClass is an invalid class definition.");
|
|
315
|
+
}
|
|
316
|
+
var classProto = theClass[Prototype];
|
|
317
|
+
if (!_checkPrototype(classProto, target)) {
|
|
318
|
+
_throwTypeError("[" + _getObjName(theClass) + "] is not in class hierarchy of [" + _getObjName(target) + "]");
|
|
319
|
+
}
|
|
320
|
+
var className = null;
|
|
321
|
+
if (_hasOwnProperty(classProto, DynClassName)) {
|
|
322
|
+
className = classProto[DynClassName];
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
className = DynClassNamePrefix + _getObjName(theClass, "_") + "$" + _dynamicNames;
|
|
326
|
+
_dynamicNames++;
|
|
327
|
+
classProto[DynClassName] = className;
|
|
328
|
+
}
|
|
329
|
+
var perfOptions = dynamicProto[DynProtoDefaultOptions];
|
|
330
|
+
var useBaseInst = !!perfOptions[strUseBaseInst];
|
|
331
|
+
if (useBaseInst && options && options[strUseBaseInst] !== undefined) {
|
|
332
|
+
useBaseInst = !!options[strUseBaseInst];
|
|
333
|
+
}
|
|
334
|
+
var instFuncs = _getInstanceFuncs(target);
|
|
335
|
+
var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);
|
|
336
|
+
delegateFunc(target, baseFuncs);
|
|
337
|
+
var setInstanceFunc = !!_objGetPrototypeOf$1 && !!perfOptions[strSetInstFuncs];
|
|
338
|
+
if (setInstanceFunc && options) {
|
|
339
|
+
setInstanceFunc = !!options[strSetInstFuncs];
|
|
340
|
+
}
|
|
341
|
+
_populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);
|
|
342
|
+
}
|
|
343
|
+
var perfDefaults = {
|
|
344
|
+
setInstFuncs: true,
|
|
345
|
+
useBaseInst: true
|
|
346
|
+
};
|
|
347
|
+
dynamicProto[DynProtoDefaultOptions] = perfDefaults;
|
|
348
|
+
|
|
349
|
+
var _DYN_INITIALIZE = "initialize";
|
|
350
|
+
var _DYN_NAME$2 = "name";
|
|
351
|
+
var _DYN_IDENTIFIER = "identifier";
|
|
352
|
+
var _DYN_PUSH$1 = "push";
|
|
353
|
+
var _DYN_IS_INITIALIZED = "isInitialized";
|
|
354
|
+
var _DYN_CONFIG = "config";
|
|
355
|
+
var _DYN_LOGGER = "logger";
|
|
356
|
+
var _DYN_LENGTH$2 = "length";
|
|
357
|
+
var _DYN_TIME = "time";
|
|
358
|
+
var _DYN_PROCESS_NEXT = "processNext";
|
|
359
|
+
var _DYN_GET_PROCESS_TEL_CONT0 = "getProcessTelContext";
|
|
360
|
+
var _DYN_GET_PLUGIN = "getPlugin";
|
|
361
|
+
var _DYN_SPLICE = "splice";
|
|
362
|
+
var _DYN_TEARDOWN = "teardown";
|
|
363
|
+
var _DYN_MESSAGE_ID = "messageId";
|
|
364
|
+
var _DYN_MESSAGE$1 = "message";
|
|
365
|
+
var _DYN_IS_ASYNC = "isAsync";
|
|
366
|
+
var _DYN__DO_TEARDOWN = "_doTeardown";
|
|
367
|
+
var _DYN_UPDATE = "update";
|
|
368
|
+
var _DYN_GET_NEXT = "getNext";
|
|
369
|
+
var _DYN_DIAG_LOG$1 = "diagLog";
|
|
370
|
+
var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
|
|
371
|
+
var _DYN_CREATE_NEW = "createNew";
|
|
372
|
+
var _DYN_INDEX_OF$1 = "indexOf";
|
|
373
|
+
var _DYN_USER_AGENT = "userAgent";
|
|
374
|
+
var _DYN_SPLIT$1 = "split";
|
|
375
|
+
var _DYN_REPLACE = "replace";
|
|
376
|
+
var _DYN_NODE_TYPE = "nodeType";
|
|
377
|
+
var _DYN_APPLY = "apply";
|
|
378
|
+
var _DYN_ENABLE_DEBUG_EXCEPTI4 = "enableDebugExceptions";
|
|
379
|
+
var _DYN_LOG_INTERNAL_MESSAGE = "logInternalMessage";
|
|
380
|
+
var _DYN_TO_LOWER_CASE$1 = "toLowerCase";
|
|
381
|
+
var _DYN_CALL = "call";
|
|
382
|
+
var _DYN_TYPE = "type";
|
|
383
|
+
var _DYN_HANDLER = "handler";
|
|
384
|
+
var _DYN_IS_CHILD_EVT = "isChildEvt";
|
|
385
|
+
var _DYN_GET_CTX = "getCtx";
|
|
386
|
+
var _DYN_SET_CTX = "setCtx";
|
|
387
|
+
var _DYN_COMPLETE = "complete";
|
|
388
|
+
|
|
389
|
+
var STR_EMPTY = "";
|
|
390
|
+
var STR_CORE = "core";
|
|
391
|
+
var STR_DISABLED = "disabled";
|
|
392
|
+
var STR_EXTENSION_CONFIG = "extensionConfig";
|
|
393
|
+
var STR_PROCESS_TELEMETRY = "processTelemetry";
|
|
394
|
+
var STR_PRIORITY = "priority";
|
|
395
|
+
var STR_ERROR_TO_CONSOLE = "errorToConsole";
|
|
396
|
+
var STR_WARN_TO_CONSOLE = "warnToConsole";
|
|
397
|
+
var STR_GET_PERF_MGR = "getPerfMgr";
|
|
109
398
|
|
|
110
399
|
var strToISOString = "toISOString";
|
|
111
400
|
var strIndexOf = "indexOf";
|
|
112
401
|
var strMap = "map";
|
|
113
402
|
var cStrTrim = "trim";
|
|
114
403
|
var strToString = "toString";
|
|
115
|
-
var str__Proto
|
|
404
|
+
var str__Proto = "__proto__";
|
|
116
405
|
var strConstructor = "constructor";
|
|
117
406
|
var _objDefineProperty$1 = ObjDefineProperty;
|
|
118
407
|
var _objFreeze = ObjClass.freeze;
|
|
@@ -124,17 +413,17 @@
|
|
|
124
413
|
var _isArray = Array.isArray;
|
|
125
414
|
var _objToString = ObjProto[strToString];
|
|
126
415
|
var _fnToString = ObjHasOwnProperty[strToString];
|
|
127
|
-
var _objFunctionString = _fnToString
|
|
416
|
+
var _objFunctionString = _fnToString[_DYN_CALL ](ObjClass);
|
|
128
417
|
var rCamelCase = /-([a-z])/g;
|
|
129
418
|
var rNormalizeInvalid = /([^\w\d_$])/g;
|
|
130
419
|
var rLeadingNumeric = /^(\d+[\w\d_$])/;
|
|
131
|
-
var _objGetPrototypeOf
|
|
132
|
-
function _getObjProto
|
|
420
|
+
var _objGetPrototypeOf = Object["getPrototypeOf"];
|
|
421
|
+
function _getObjProto(target) {
|
|
133
422
|
if (target) {
|
|
134
|
-
if (_objGetPrototypeOf
|
|
135
|
-
return _objGetPrototypeOf
|
|
423
|
+
if (_objGetPrototypeOf) {
|
|
424
|
+
return _objGetPrototypeOf(target);
|
|
136
425
|
}
|
|
137
|
-
var newProto = target[str__Proto
|
|
426
|
+
var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];
|
|
138
427
|
if (newProto) {
|
|
139
428
|
return newProto;
|
|
140
429
|
}
|
|
@@ -156,11 +445,11 @@
|
|
|
156
445
|
function normalizeJsName(name) {
|
|
157
446
|
var value = name;
|
|
158
447
|
if (value && isString(value)) {
|
|
159
|
-
value = value
|
|
448
|
+
value = value[_DYN_REPLACE ](rCamelCase, function (_all, letter) {
|
|
160
449
|
return letter.toUpperCase();
|
|
161
450
|
});
|
|
162
|
-
value = value
|
|
163
|
-
value = value
|
|
451
|
+
value = value[_DYN_REPLACE ](rNormalizeInvalid, "_");
|
|
452
|
+
value = value[_DYN_REPLACE ](rLeadingNumeric, function (_all, match) {
|
|
164
453
|
return "_" + match;
|
|
165
454
|
});
|
|
166
455
|
}
|
|
@@ -169,24 +458,24 @@
|
|
|
169
458
|
function objForEachKey(target, callbackfn) {
|
|
170
459
|
if (target) {
|
|
171
460
|
for (var prop in target) {
|
|
172
|
-
if (ObjHasOwnProperty
|
|
173
|
-
callbackfn
|
|
461
|
+
if (ObjHasOwnProperty[_DYN_CALL ](target, prop)) {
|
|
462
|
+
callbackfn[_DYN_CALL ](target, prop, target[prop]);
|
|
174
463
|
}
|
|
175
464
|
}
|
|
176
465
|
}
|
|
177
466
|
}
|
|
178
467
|
function strContains(value, search) {
|
|
179
468
|
if (value && search) {
|
|
180
|
-
return value
|
|
469
|
+
return value[_DYN_INDEX_OF$1 ](search) !== -1;
|
|
181
470
|
}
|
|
182
471
|
return false;
|
|
183
472
|
}
|
|
184
473
|
var isArray = _isArray || _isArrayPoly;
|
|
185
474
|
function _isArrayPoly(obj) {
|
|
186
|
-
return !!(obj && _objToString
|
|
475
|
+
return !!(obj && _objToString[_DYN_CALL ](obj) === "[object Array]");
|
|
187
476
|
}
|
|
188
477
|
function isError(obj) {
|
|
189
|
-
return !!(obj && _objToString
|
|
478
|
+
return !!(obj && _objToString[_DYN_CALL ](obj) === "[object Error]");
|
|
190
479
|
}
|
|
191
480
|
function isString(value) {
|
|
192
481
|
return typeof value === "string";
|
|
@@ -200,15 +489,15 @@
|
|
|
200
489
|
function isPlainObject(value) {
|
|
201
490
|
var result = false;
|
|
202
491
|
if (value && typeof value === "object") {
|
|
203
|
-
var proto = _objGetPrototypeOf
|
|
492
|
+
var proto = _objGetPrototypeOf ? _objGetPrototypeOf(value) : _getObjProto(value);
|
|
204
493
|
if (!proto) {
|
|
205
494
|
result = true;
|
|
206
495
|
}
|
|
207
496
|
else {
|
|
208
|
-
if (proto[strConstructor] && ObjHasOwnProperty
|
|
497
|
+
if (proto[strConstructor] && ObjHasOwnProperty[_DYN_CALL ](proto, strConstructor)) {
|
|
209
498
|
proto = proto[strConstructor];
|
|
210
499
|
}
|
|
211
|
-
result = typeof proto === strShimFunction && _fnToString
|
|
500
|
+
result = typeof proto === strShimFunction && _fnToString[_DYN_CALL ](proto) === _objFunctionString;
|
|
212
501
|
}
|
|
213
502
|
}
|
|
214
503
|
return result;
|
|
@@ -222,7 +511,7 @@
|
|
|
222
511
|
if (date && date.getUTCFullYear) {
|
|
223
512
|
var pad = function (num) {
|
|
224
513
|
var r = String(num);
|
|
225
|
-
if (r
|
|
514
|
+
if (r[_DYN_LENGTH$2 ] === 1) {
|
|
226
515
|
r = "0" + r;
|
|
227
516
|
}
|
|
228
517
|
return r;
|
|
@@ -238,11 +527,11 @@
|
|
|
238
527
|
}
|
|
239
528
|
}
|
|
240
529
|
function arrForEach(arr, callbackfn, thisArg) {
|
|
241
|
-
var len = arr
|
|
530
|
+
var len = arr[_DYN_LENGTH$2 ];
|
|
242
531
|
try {
|
|
243
532
|
for (var idx = 0; idx < len; idx++) {
|
|
244
533
|
if (idx in arr) {
|
|
245
|
-
if (callbackfn
|
|
534
|
+
if (callbackfn[_DYN_CALL ](thisArg || arr, arr[idx], idx, arr) === -1) {
|
|
246
535
|
break;
|
|
247
536
|
}
|
|
248
537
|
}
|
|
@@ -256,7 +545,7 @@
|
|
|
256
545
|
if (arr[strIndexOf]) {
|
|
257
546
|
return arr[strIndexOf](searchElement, fromIndex);
|
|
258
547
|
}
|
|
259
|
-
var len = arr
|
|
548
|
+
var len = arr[_DYN_LENGTH$2 ];
|
|
260
549
|
var from = fromIndex || 0;
|
|
261
550
|
try {
|
|
262
551
|
for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {
|
|
@@ -276,13 +565,13 @@
|
|
|
276
565
|
if (arr[strMap]) {
|
|
277
566
|
return arr[strMap](callbackfn, thisArg);
|
|
278
567
|
}
|
|
279
|
-
var len = arr
|
|
568
|
+
var len = arr[_DYN_LENGTH$2 ];
|
|
280
569
|
var _this = thisArg || arr;
|
|
281
570
|
results = new Array(len);
|
|
282
571
|
try {
|
|
283
572
|
for (var lp = 0; lp < len; lp++) {
|
|
284
573
|
if (lp in arr) {
|
|
285
|
-
results[lp] = callbackfn
|
|
574
|
+
results[lp] = callbackfn[_DYN_CALL ](_this, arr[lp], arr);
|
|
286
575
|
}
|
|
287
576
|
}
|
|
288
577
|
}
|
|
@@ -293,7 +582,7 @@
|
|
|
293
582
|
}
|
|
294
583
|
function strTrim(str) {
|
|
295
584
|
if (str) {
|
|
296
|
-
str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str
|
|
585
|
+
str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str[_DYN_REPLACE ] ? str[_DYN_REPLACE ](/^\s+|\s+$/g, STR_EMPTY) : str);
|
|
297
586
|
}
|
|
298
587
|
return str;
|
|
299
588
|
}
|
|
@@ -317,15 +606,15 @@
|
|
|
317
606
|
}
|
|
318
607
|
var result = [];
|
|
319
608
|
for (var prop in obj) {
|
|
320
|
-
if (obj && ObjHasOwnProperty
|
|
321
|
-
result
|
|
609
|
+
if (obj && ObjHasOwnProperty[_DYN_CALL ](obj, prop)) {
|
|
610
|
+
result[_DYN_PUSH$1 ](prop);
|
|
322
611
|
}
|
|
323
612
|
}
|
|
324
613
|
if (_objKeysHasDontEnumBug) {
|
|
325
|
-
var dontEnumsLength = _objKeysDontEnums
|
|
614
|
+
var dontEnumsLength = _objKeysDontEnums[_DYN_LENGTH$2 ];
|
|
326
615
|
for (var lp = 0; lp < dontEnumsLength; lp++) {
|
|
327
|
-
if (obj && ObjHasOwnProperty
|
|
328
|
-
result
|
|
616
|
+
if (obj && ObjHasOwnProperty[_DYN_CALL ](obj, _objKeysDontEnums[lp])) {
|
|
617
|
+
result[_DYN_PUSH$1 ](_objKeysDontEnums[lp]);
|
|
329
618
|
}
|
|
330
619
|
}
|
|
331
620
|
}
|
|
@@ -372,9 +661,9 @@
|
|
|
372
661
|
}
|
|
373
662
|
function getExceptionName(object) {
|
|
374
663
|
if (isError(object)) {
|
|
375
|
-
return object
|
|
664
|
+
return object[_DYN_NAME$2 ];
|
|
376
665
|
}
|
|
377
|
-
return
|
|
666
|
+
return STR_EMPTY;
|
|
378
667
|
}
|
|
379
668
|
function setValue(target, field, value, valChk, srcChk) {
|
|
380
669
|
var theValue = value;
|
|
@@ -387,6 +676,9 @@
|
|
|
387
676
|
}
|
|
388
677
|
return theValue;
|
|
389
678
|
}
|
|
679
|
+
function getCfgValue(theValue, defaultValue) {
|
|
680
|
+
return !isNullOrUndefined(theValue) ? theValue : defaultValue;
|
|
681
|
+
}
|
|
390
682
|
function isTruthy(value) {
|
|
391
683
|
return !!value;
|
|
392
684
|
}
|
|
@@ -405,7 +697,7 @@
|
|
|
405
697
|
src = srcFunc();
|
|
406
698
|
}
|
|
407
699
|
if (src) {
|
|
408
|
-
return src[funcName]
|
|
700
|
+
return src[funcName][_DYN_APPLY ](src, originalArguments);
|
|
409
701
|
}
|
|
410
702
|
};
|
|
411
703
|
}
|
|
@@ -438,7 +730,7 @@
|
|
|
438
730
|
function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
|
|
439
731
|
var theArgs = arguments;
|
|
440
732
|
var extended = theArgs[0] || {};
|
|
441
|
-
var argLen = theArgs
|
|
733
|
+
var argLen = theArgs[_DYN_LENGTH$2 ];
|
|
442
734
|
var deep = false;
|
|
443
735
|
var idx = 1;
|
|
444
736
|
if (argLen > 0 && isBoolean(extended)) {
|
|
@@ -454,7 +746,7 @@
|
|
|
454
746
|
var isArgArray = isArray(arg);
|
|
455
747
|
var isArgObj = isObject(arg);
|
|
456
748
|
for (var prop in arg) {
|
|
457
|
-
var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty
|
|
749
|
+
var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty[_DYN_CALL ](arg, prop)));
|
|
458
750
|
if (!propOk) {
|
|
459
751
|
continue;
|
|
460
752
|
}
|
|
@@ -497,254 +789,6 @@
|
|
|
497
789
|
return deepFreeze(mapClass);
|
|
498
790
|
}
|
|
499
791
|
|
|
500
|
-
/*!
|
|
501
|
-
* Microsoft Dynamic Proto Utility, 1.1.6
|
|
502
|
-
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
503
|
-
*/
|
|
504
|
-
var Constructor = 'constructor';
|
|
505
|
-
var Prototype = 'prototype';
|
|
506
|
-
var strFunction = 'function';
|
|
507
|
-
var DynInstFuncTable = '_dynInstFuncs';
|
|
508
|
-
var DynProxyTag = '_isDynProxy';
|
|
509
|
-
var DynClassName = '_dynClass';
|
|
510
|
-
var DynClassNamePrefix = '_dynCls$';
|
|
511
|
-
var DynInstChkTag = '_dynInstChk';
|
|
512
|
-
var DynAllowInstChkTag = DynInstChkTag;
|
|
513
|
-
var DynProtoDefaultOptions = '_dfOpts';
|
|
514
|
-
var UnknownValue = '_unknown_';
|
|
515
|
-
var str__Proto = "__proto__";
|
|
516
|
-
var DynProtoBaseProto = "_dyn" + str__Proto;
|
|
517
|
-
var DynProtoCurrent = "_dynInstProto";
|
|
518
|
-
var strUseBaseInst = 'useBaseInst';
|
|
519
|
-
var strSetInstFuncs = 'setInstFuncs';
|
|
520
|
-
var Obj = Object;
|
|
521
|
-
var _objGetPrototypeOf = Obj["getPrototypeOf"];
|
|
522
|
-
var _objGetOwnProps = Obj["getOwnPropertyNames"];
|
|
523
|
-
var _dynamicNames = 0;
|
|
524
|
-
function _hasOwnProperty(obj, prop) {
|
|
525
|
-
return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);
|
|
526
|
-
}
|
|
527
|
-
function _isObjectOrArrayPrototype(target) {
|
|
528
|
-
return target && (target === Obj[Prototype] || target === Array[Prototype]);
|
|
529
|
-
}
|
|
530
|
-
function _isObjectArrayOrFunctionPrototype(target) {
|
|
531
|
-
return _isObjectOrArrayPrototype(target) || target === Function[Prototype];
|
|
532
|
-
}
|
|
533
|
-
function _getObjProto(target) {
|
|
534
|
-
var newProto;
|
|
535
|
-
if (target) {
|
|
536
|
-
if (_objGetPrototypeOf) {
|
|
537
|
-
return _objGetPrototypeOf(target);
|
|
538
|
-
}
|
|
539
|
-
var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);
|
|
540
|
-
newProto = target[DynProtoBaseProto] || curProto;
|
|
541
|
-
if (!_hasOwnProperty(target, DynProtoBaseProto)) {
|
|
542
|
-
delete target[DynProtoCurrent];
|
|
543
|
-
newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];
|
|
544
|
-
target[DynProtoCurrent] = curProto;
|
|
545
|
-
}
|
|
546
|
-
}
|
|
547
|
-
return newProto;
|
|
548
|
-
}
|
|
549
|
-
function _forEachProp(target, func) {
|
|
550
|
-
var props = [];
|
|
551
|
-
if (_objGetOwnProps) {
|
|
552
|
-
props = _objGetOwnProps(target);
|
|
553
|
-
}
|
|
554
|
-
else {
|
|
555
|
-
for (var name_1 in target) {
|
|
556
|
-
if (typeof name_1 === "string" && _hasOwnProperty(target, name_1)) {
|
|
557
|
-
props.push(name_1);
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
if (props && props.length > 0) {
|
|
562
|
-
for (var lp = 0; lp < props.length; lp++) {
|
|
563
|
-
func(props[lp]);
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
function _isDynamicCandidate(target, funcName, skipOwn) {
|
|
568
|
-
return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));
|
|
569
|
-
}
|
|
570
|
-
function _throwTypeError(message) {
|
|
571
|
-
throw new TypeError("DynamicProto: " + message);
|
|
572
|
-
}
|
|
573
|
-
function _getInstanceFuncs(thisTarget) {
|
|
574
|
-
var instFuncs = {};
|
|
575
|
-
_forEachProp(thisTarget, function (name) {
|
|
576
|
-
if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {
|
|
577
|
-
instFuncs[name] = thisTarget[name];
|
|
578
|
-
}
|
|
579
|
-
});
|
|
580
|
-
return instFuncs;
|
|
581
|
-
}
|
|
582
|
-
function _hasVisited(values, value) {
|
|
583
|
-
for (var lp = values.length - 1; lp >= 0; lp--) {
|
|
584
|
-
if (values[lp] === value) {
|
|
585
|
-
return true;
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
return false;
|
|
589
|
-
}
|
|
590
|
-
function _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {
|
|
591
|
-
function _instFuncProxy(target, funcHost, funcName) {
|
|
592
|
-
var theFunc = funcHost[funcName];
|
|
593
|
-
if (theFunc[DynProxyTag] && useBaseInst) {
|
|
594
|
-
var instFuncTable = target[DynInstFuncTable] || {};
|
|
595
|
-
if (instFuncTable[DynAllowInstChkTag] !== false) {
|
|
596
|
-
theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
return function () {
|
|
600
|
-
return theFunc.apply(target, arguments);
|
|
601
|
-
};
|
|
602
|
-
}
|
|
603
|
-
var baseFuncs = {};
|
|
604
|
-
_forEachProp(instFuncs, function (name) {
|
|
605
|
-
baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);
|
|
606
|
-
});
|
|
607
|
-
var baseProto = _getObjProto(classProto);
|
|
608
|
-
var visited = [];
|
|
609
|
-
while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {
|
|
610
|
-
_forEachProp(baseProto, function (name) {
|
|
611
|
-
if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {
|
|
612
|
-
baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);
|
|
613
|
-
}
|
|
614
|
-
});
|
|
615
|
-
visited.push(baseProto);
|
|
616
|
-
baseProto = _getObjProto(baseProto);
|
|
617
|
-
}
|
|
618
|
-
return baseFuncs;
|
|
619
|
-
}
|
|
620
|
-
function _getInstFunc(target, funcName, proto, currentDynProtoProxy) {
|
|
621
|
-
var instFunc = null;
|
|
622
|
-
if (target && _hasOwnProperty(proto, DynClassName)) {
|
|
623
|
-
var instFuncTable = target[DynInstFuncTable] || {};
|
|
624
|
-
instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];
|
|
625
|
-
if (!instFunc) {
|
|
626
|
-
_throwTypeError("Missing [" + funcName + "] " + strFunction);
|
|
627
|
-
}
|
|
628
|
-
if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {
|
|
629
|
-
var canAddInst = !_hasOwnProperty(target, funcName);
|
|
630
|
-
var objProto = _getObjProto(target);
|
|
631
|
-
var visited = [];
|
|
632
|
-
while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {
|
|
633
|
-
var protoFunc = objProto[funcName];
|
|
634
|
-
if (protoFunc) {
|
|
635
|
-
canAddInst = (protoFunc === currentDynProtoProxy);
|
|
636
|
-
break;
|
|
637
|
-
}
|
|
638
|
-
visited.push(objProto);
|
|
639
|
-
objProto = _getObjProto(objProto);
|
|
640
|
-
}
|
|
641
|
-
try {
|
|
642
|
-
if (canAddInst) {
|
|
643
|
-
target[funcName] = instFunc;
|
|
644
|
-
}
|
|
645
|
-
instFunc[DynInstChkTag] = 1;
|
|
646
|
-
}
|
|
647
|
-
catch (e) {
|
|
648
|
-
instFuncTable[DynAllowInstChkTag] = false;
|
|
649
|
-
}
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
return instFunc;
|
|
653
|
-
}
|
|
654
|
-
function _getProtoFunc(funcName, proto, currentDynProtoProxy) {
|
|
655
|
-
var protoFunc = proto[funcName];
|
|
656
|
-
if (protoFunc === currentDynProtoProxy) {
|
|
657
|
-
protoFunc = _getObjProto(proto)[funcName];
|
|
658
|
-
}
|
|
659
|
-
if (typeof protoFunc !== strFunction) {
|
|
660
|
-
_throwTypeError("[" + funcName + "] is not a " + strFunction);
|
|
661
|
-
}
|
|
662
|
-
return protoFunc;
|
|
663
|
-
}
|
|
664
|
-
function _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {
|
|
665
|
-
function _createDynamicPrototype(proto, funcName) {
|
|
666
|
-
var dynProtoProxy = function () {
|
|
667
|
-
var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);
|
|
668
|
-
return instFunc.apply(this, arguments);
|
|
669
|
-
};
|
|
670
|
-
dynProtoProxy[DynProxyTag] = 1;
|
|
671
|
-
return dynProtoProxy;
|
|
672
|
-
}
|
|
673
|
-
if (!_isObjectOrArrayPrototype(proto)) {
|
|
674
|
-
var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};
|
|
675
|
-
var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {});
|
|
676
|
-
if (instFuncTable[DynAllowInstChkTag] !== false) {
|
|
677
|
-
instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;
|
|
678
|
-
}
|
|
679
|
-
_forEachProp(target, function (name) {
|
|
680
|
-
if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {
|
|
681
|
-
instFuncs_1[name] = target[name];
|
|
682
|
-
delete target[name];
|
|
683
|
-
if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {
|
|
684
|
-
proto[name] = _createDynamicPrototype(proto, name);
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
});
|
|
688
|
-
}
|
|
689
|
-
}
|
|
690
|
-
function _checkPrototype(classProto, thisTarget) {
|
|
691
|
-
if (_objGetPrototypeOf) {
|
|
692
|
-
var visited = [];
|
|
693
|
-
var thisProto = _getObjProto(thisTarget);
|
|
694
|
-
while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {
|
|
695
|
-
if (thisProto === classProto) {
|
|
696
|
-
return true;
|
|
697
|
-
}
|
|
698
|
-
visited.push(thisProto);
|
|
699
|
-
thisProto = _getObjProto(thisProto);
|
|
700
|
-
}
|
|
701
|
-
return false;
|
|
702
|
-
}
|
|
703
|
-
return true;
|
|
704
|
-
}
|
|
705
|
-
function _getObjName(target, unknownValue) {
|
|
706
|
-
if (_hasOwnProperty(target, Prototype)) {
|
|
707
|
-
return target.name || unknownValue || UnknownValue;
|
|
708
|
-
}
|
|
709
|
-
return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;
|
|
710
|
-
}
|
|
711
|
-
function dynamicProto(theClass, target, delegateFunc, options) {
|
|
712
|
-
if (!_hasOwnProperty(theClass, Prototype)) {
|
|
713
|
-
_throwTypeError("theClass is an invalid class definition.");
|
|
714
|
-
}
|
|
715
|
-
var classProto = theClass[Prototype];
|
|
716
|
-
if (!_checkPrototype(classProto, target)) {
|
|
717
|
-
_throwTypeError("[" + _getObjName(theClass) + "] is not in class hierarchy of [" + _getObjName(target) + "]");
|
|
718
|
-
}
|
|
719
|
-
var className = null;
|
|
720
|
-
if (_hasOwnProperty(classProto, DynClassName)) {
|
|
721
|
-
className = classProto[DynClassName];
|
|
722
|
-
}
|
|
723
|
-
else {
|
|
724
|
-
className = DynClassNamePrefix + _getObjName(theClass, "_") + "$" + _dynamicNames;
|
|
725
|
-
_dynamicNames++;
|
|
726
|
-
classProto[DynClassName] = className;
|
|
727
|
-
}
|
|
728
|
-
var perfOptions = dynamicProto[DynProtoDefaultOptions];
|
|
729
|
-
var useBaseInst = !!perfOptions[strUseBaseInst];
|
|
730
|
-
if (useBaseInst && options && options[strUseBaseInst] !== undefined) {
|
|
731
|
-
useBaseInst = !!options[strUseBaseInst];
|
|
732
|
-
}
|
|
733
|
-
var instFuncs = _getInstanceFuncs(target);
|
|
734
|
-
var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);
|
|
735
|
-
delegateFunc(target, baseFuncs);
|
|
736
|
-
var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];
|
|
737
|
-
if (setInstanceFunc && options) {
|
|
738
|
-
setInstanceFunc = !!options[strSetInstFuncs];
|
|
739
|
-
}
|
|
740
|
-
_populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);
|
|
741
|
-
}
|
|
742
|
-
var perfDefaults = {
|
|
743
|
-
setInstFuncs: true,
|
|
744
|
-
useBaseInst: true
|
|
745
|
-
};
|
|
746
|
-
dynamicProto[DynProtoDefaultOptions] = perfDefaults;
|
|
747
|
-
|
|
748
792
|
var strWindow = "window";
|
|
749
793
|
var strDocument = "document";
|
|
750
794
|
var strDocumentMode = "documentMode";
|
|
@@ -845,9 +889,9 @@
|
|
|
845
889
|
}
|
|
846
890
|
function isIE() {
|
|
847
891
|
var nav = getNavigator();
|
|
848
|
-
if (nav && (nav
|
|
849
|
-
_navUserAgentCheck = nav
|
|
850
|
-
var userAgent = (_navUserAgentCheck ||
|
|
892
|
+
if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
|
|
893
|
+
_navUserAgentCheck = nav[_DYN_USER_AGENT ];
|
|
894
|
+
var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
|
|
851
895
|
_isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
|
|
852
896
|
}
|
|
853
897
|
return _isTrident;
|
|
@@ -856,15 +900,15 @@
|
|
|
856
900
|
if (userAgentStr === void 0) { userAgentStr = null; }
|
|
857
901
|
if (!userAgentStr) {
|
|
858
902
|
var navigator_1 = getNavigator() || {};
|
|
859
|
-
userAgentStr = navigator_1 ? (navigator_1
|
|
903
|
+
userAgentStr = navigator_1 ? (navigator_1[_DYN_USER_AGENT ] || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]() : STR_EMPTY;
|
|
860
904
|
}
|
|
861
|
-
var ua = (userAgentStr ||
|
|
905
|
+
var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
|
|
862
906
|
if (strContains(ua, strMsie)) {
|
|
863
907
|
var doc = getDocument() || {};
|
|
864
|
-
return Math.max(parseInt(ua
|
|
908
|
+
return Math.max(parseInt(ua[_DYN_SPLIT$1 ](strMsie)[1]), (doc[strDocumentMode] || 0));
|
|
865
909
|
}
|
|
866
910
|
else if (strContains(ua, strTrident)) {
|
|
867
|
-
var tridentVer = parseInt(ua
|
|
911
|
+
var tridentVer = parseInt(ua[_DYN_SPLIT$1 ](strTrident)[1]);
|
|
868
912
|
if (tridentVer) {
|
|
869
913
|
return tridentVer + 4;
|
|
870
914
|
}
|
|
@@ -872,10 +916,10 @@
|
|
|
872
916
|
return null;
|
|
873
917
|
}
|
|
874
918
|
function dumpObj(object) {
|
|
875
|
-
var objectTypeDump = Object[strShimPrototype].toString
|
|
876
|
-
var propertyValueDump =
|
|
919
|
+
var objectTypeDump = Object[strShimPrototype].toString[_DYN_CALL ](object);
|
|
920
|
+
var propertyValueDump = STR_EMPTY;
|
|
877
921
|
if (objectTypeDump === "[object Error]") {
|
|
878
|
-
propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object
|
|
922
|
+
propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object[_DYN_NAME$2 ] + "'";
|
|
879
923
|
}
|
|
880
924
|
else if (hasJSON()) {
|
|
881
925
|
propertyValueDump = getJSON().stringify(object);
|
|
@@ -940,13 +984,11 @@
|
|
|
940
984
|
var AiNonUserActionablePrefix = "AI (Internal): ";
|
|
941
985
|
var AiUserActionablePrefix = "AI: ";
|
|
942
986
|
var AIInternalMessagePrefix = "AITR_";
|
|
943
|
-
var strErrorToConsole = "errorToConsole";
|
|
944
|
-
var strWarnToConsole = "warnToConsole";
|
|
945
987
|
function _sanitizeDiagnosticText(text) {
|
|
946
988
|
if (text) {
|
|
947
|
-
return "\"" + text
|
|
989
|
+
return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY) + "\"";
|
|
948
990
|
}
|
|
949
|
-
return
|
|
991
|
+
return STR_EMPTY;
|
|
950
992
|
}
|
|
951
993
|
function _logToConsole(func, message) {
|
|
952
994
|
var theConsole = getConsole();
|
|
@@ -964,23 +1006,23 @@
|
|
|
964
1006
|
function _InternalLogMessage(msgId, msg, isUserAct, properties) {
|
|
965
1007
|
if (isUserAct === void 0) { isUserAct = false; }
|
|
966
1008
|
var _self = this;
|
|
967
|
-
_self
|
|
968
|
-
_self
|
|
1009
|
+
_self[_DYN_MESSAGE_ID ] = msgId;
|
|
1010
|
+
_self[_DYN_MESSAGE$1 ] =
|
|
969
1011
|
(isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
|
|
970
1012
|
msgId;
|
|
971
|
-
var strProps =
|
|
1013
|
+
var strProps = STR_EMPTY;
|
|
972
1014
|
if (hasJSON()) {
|
|
973
1015
|
strProps = getJSON().stringify(properties);
|
|
974
1016
|
}
|
|
975
|
-
var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) :
|
|
976
|
-
(properties ? " props:" + _sanitizeDiagnosticText(strProps) :
|
|
977
|
-
_self
|
|
1017
|
+
var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +
|
|
1018
|
+
(properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);
|
|
1019
|
+
_self[_DYN_MESSAGE$1 ] += diagnosticText;
|
|
978
1020
|
}
|
|
979
1021
|
_InternalLogMessage.dataType = "MessageData";
|
|
980
1022
|
return _InternalLogMessage;
|
|
981
1023
|
}());
|
|
982
1024
|
function safeGetLogger(core, config) {
|
|
983
|
-
return (core || {})
|
|
1025
|
+
return (core || {})[_DYN_LOGGER ] || new DiagnosticLogger(config);
|
|
984
1026
|
}
|
|
985
1027
|
var DiagnosticLogger = /** @class */ (function () {
|
|
986
1028
|
function DiagnosticLogger(config) {
|
|
@@ -988,48 +1030,49 @@
|
|
|
988
1030
|
this.queue = [];
|
|
989
1031
|
var _messageCount = 0;
|
|
990
1032
|
var _messageLogged = {};
|
|
1033
|
+
var _loggingLevelConsole;
|
|
1034
|
+
var _loggingLevelTelemetry;
|
|
1035
|
+
var _maxInternalMessageLimit;
|
|
1036
|
+
var _enableDebugExceptions;
|
|
991
1037
|
dynamicProto(DiagnosticLogger, this, function (_self) {
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
}
|
|
995
|
-
_self.
|
|
996
|
-
_self
|
|
997
|
-
_self.maxInternalMessageLimit = function () { return _getConfigValue("maxMessageLimit", 25); };
|
|
998
|
-
_self.enableDebugExceptions = function () { return _getConfigValue("enableDebugExceptions", false); };
|
|
1038
|
+
_setDefaultsFromConfig(config || {});
|
|
1039
|
+
_self.consoleLoggingLevel = function () { return _loggingLevelConsole; };
|
|
1040
|
+
_self.telemetryLoggingLevel = function () { return _loggingLevelTelemetry; };
|
|
1041
|
+
_self.maxInternalMessageLimit = function () { return _maxInternalMessageLimit; };
|
|
1042
|
+
_self[_DYN_ENABLE_DEBUG_EXCEPTI4 ] = function () { return _enableDebugExceptions; };
|
|
999
1043
|
_self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {
|
|
1000
1044
|
if (isUserAct === void 0) { isUserAct = false; }
|
|
1001
1045
|
var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);
|
|
1002
|
-
if (
|
|
1046
|
+
if (_enableDebugExceptions) {
|
|
1003
1047
|
throw dumpObj(message);
|
|
1004
1048
|
}
|
|
1005
1049
|
else {
|
|
1006
|
-
var logFunc = severity === 1 ?
|
|
1007
|
-
if (!isUndefined(message
|
|
1008
|
-
var logLevel = _self.consoleLoggingLevel();
|
|
1050
|
+
var logFunc = severity === 1 ? STR_ERROR_TO_CONSOLE : STR_WARN_TO_CONSOLE;
|
|
1051
|
+
if (!isUndefined(message[_DYN_MESSAGE$1 ])) {
|
|
1009
1052
|
if (isUserAct) {
|
|
1010
|
-
var messageKey = +message
|
|
1011
|
-
if (!_messageLogged[messageKey] &&
|
|
1012
|
-
_self[logFunc](message
|
|
1053
|
+
var messageKey = +message[_DYN_MESSAGE_ID ];
|
|
1054
|
+
if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {
|
|
1055
|
+
_self[logFunc](message[_DYN_MESSAGE$1 ]);
|
|
1013
1056
|
_messageLogged[messageKey] = true;
|
|
1014
1057
|
}
|
|
1015
1058
|
}
|
|
1016
1059
|
else {
|
|
1017
|
-
if (
|
|
1018
|
-
_self[logFunc](message
|
|
1060
|
+
if (_loggingLevelConsole >= severity) {
|
|
1061
|
+
_self[logFunc](message[_DYN_MESSAGE$1 ]);
|
|
1019
1062
|
}
|
|
1020
1063
|
}
|
|
1021
|
-
|
|
1064
|
+
_logInternalMessage(severity, message);
|
|
1022
1065
|
}
|
|
1023
1066
|
else {
|
|
1024
1067
|
_debugExtMsg("throw" + (severity === 1 ? "Critical" : "Warning"), message);
|
|
1025
1068
|
}
|
|
1026
1069
|
}
|
|
1027
1070
|
};
|
|
1028
|
-
_self
|
|
1071
|
+
_self[STR_WARN_TO_CONSOLE ] = function (message) {
|
|
1029
1072
|
_logToConsole("warn", message);
|
|
1030
1073
|
_debugExtMsg("warning", message);
|
|
1031
1074
|
};
|
|
1032
|
-
_self
|
|
1075
|
+
_self[STR_ERROR_TO_CONSOLE ] = function (message) {
|
|
1033
1076
|
_logToConsole("error", message);
|
|
1034
1077
|
_debugExtMsg("error", message);
|
|
1035
1078
|
};
|
|
@@ -1037,12 +1080,13 @@
|
|
|
1037
1080
|
_messageCount = 0;
|
|
1038
1081
|
_messageLogged = {};
|
|
1039
1082
|
};
|
|
1040
|
-
_self
|
|
1083
|
+
_self[_DYN_LOG_INTERNAL_MESSAGE ] = _logInternalMessage;
|
|
1084
|
+
function _logInternalMessage(severity, message) {
|
|
1041
1085
|
if (_areInternalMessagesThrottled()) {
|
|
1042
1086
|
return;
|
|
1043
1087
|
}
|
|
1044
1088
|
var logMessage = true;
|
|
1045
|
-
var messageKey = AIInternalMessagePrefix + message
|
|
1089
|
+
var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID ];
|
|
1046
1090
|
if (_messageLogged[messageKey]) {
|
|
1047
1091
|
logMessage = false;
|
|
1048
1092
|
}
|
|
@@ -1050,38 +1094,37 @@
|
|
|
1050
1094
|
_messageLogged[messageKey] = true;
|
|
1051
1095
|
}
|
|
1052
1096
|
if (logMessage) {
|
|
1053
|
-
if (severity <=
|
|
1054
|
-
_self.queue
|
|
1097
|
+
if (severity <= _loggingLevelTelemetry) {
|
|
1098
|
+
_self.queue[_DYN_PUSH$1 ](message);
|
|
1055
1099
|
_messageCount++;
|
|
1056
1100
|
_debugExtMsg((severity === 1 ? "error" : "warn"), message);
|
|
1057
1101
|
}
|
|
1058
|
-
if (_messageCount ===
|
|
1102
|
+
if (_messageCount === _maxInternalMessageLimit) {
|
|
1059
1103
|
var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
|
|
1060
1104
|
var throttleMessage = new _InternalLogMessage(23 , throttleLimitMessage, false);
|
|
1061
|
-
_self.queue
|
|
1105
|
+
_self.queue[_DYN_PUSH$1 ](throttleMessage);
|
|
1062
1106
|
if (severity === 1 ) {
|
|
1063
|
-
_self
|
|
1107
|
+
_self[STR_ERROR_TO_CONSOLE ](throttleLimitMessage);
|
|
1064
1108
|
}
|
|
1065
1109
|
else {
|
|
1066
|
-
_self
|
|
1110
|
+
_self[STR_WARN_TO_CONSOLE ](throttleLimitMessage);
|
|
1067
1111
|
}
|
|
1068
1112
|
}
|
|
1069
1113
|
}
|
|
1070
|
-
}
|
|
1071
|
-
function
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
return defValue;
|
|
1114
|
+
}
|
|
1115
|
+
function _setDefaultsFromConfig(config) {
|
|
1116
|
+
_loggingLevelConsole = getCfgValue(config.loggingLevelConsole, 0);
|
|
1117
|
+
_loggingLevelTelemetry = getCfgValue(config.loggingLevelTelemetry, 1);
|
|
1118
|
+
_maxInternalMessageLimit = getCfgValue(config.maxMessageLimit, 25);
|
|
1119
|
+
_enableDebugExceptions = getCfgValue(config[_DYN_ENABLE_DEBUG_EXCEPTI4 ], false);
|
|
1077
1120
|
}
|
|
1078
1121
|
function _areInternalMessagesThrottled() {
|
|
1079
|
-
return _messageCount >=
|
|
1122
|
+
return _messageCount >= _maxInternalMessageLimit;
|
|
1080
1123
|
}
|
|
1081
1124
|
function _debugExtMsg(name, data) {
|
|
1082
|
-
var dbgExt = getDebugExt(config);
|
|
1083
|
-
if (dbgExt && dbgExt
|
|
1084
|
-
dbgExt
|
|
1125
|
+
var dbgExt = getDebugExt(config || {});
|
|
1126
|
+
if (dbgExt && dbgExt[_DYN_DIAG_LOG$1 ]) {
|
|
1127
|
+
dbgExt[_DYN_DIAG_LOG$1 ](name, data);
|
|
1085
1128
|
}
|
|
1086
1129
|
}
|
|
1087
1130
|
});
|
|
@@ -1094,21 +1137,23 @@
|
|
|
1094
1137
|
}
|
|
1095
1138
|
function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
|
|
1096
1139
|
if (isUserAct === void 0) { isUserAct = false; }
|
|
1097
|
-
(logger
|
|
1140
|
+
_getLogger(logger).throwInternal(severity, msgId, msg, properties, isUserAct);
|
|
1098
1141
|
}
|
|
1099
1142
|
function _warnToConsole(logger, message) {
|
|
1100
|
-
_getLogger(logger)
|
|
1143
|
+
_getLogger(logger)[STR_WARN_TO_CONSOLE ](message);
|
|
1101
1144
|
}
|
|
1102
1145
|
|
|
1103
1146
|
var strExecutionContextKey = "ctx";
|
|
1147
|
+
var strParentContextKey = "ParentContextKey";
|
|
1148
|
+
var strChildrenContextKey = "ChildrenContextKey";
|
|
1104
1149
|
var PerfEvent = /** @class */ (function () {
|
|
1105
1150
|
function PerfEvent(name, payloadDetails, isAsync) {
|
|
1106
1151
|
var _self = this;
|
|
1107
1152
|
var accessorDefined = false;
|
|
1108
1153
|
_self.start = dateNow();
|
|
1109
|
-
_self
|
|
1110
|
-
_self
|
|
1111
|
-
_self
|
|
1154
|
+
_self[_DYN_NAME$2 ] = name;
|
|
1155
|
+
_self[_DYN_IS_ASYNC ] = isAsync;
|
|
1156
|
+
_self[_DYN_IS_CHILD_EVT ] = function () { return false; };
|
|
1112
1157
|
if (isFunction(payloadDetails)) {
|
|
1113
1158
|
var theDetails_1;
|
|
1114
1159
|
accessorDefined = objDefineAccessors(_self, "payload", function () {
|
|
@@ -1119,24 +1164,24 @@
|
|
|
1119
1164
|
return theDetails_1;
|
|
1120
1165
|
});
|
|
1121
1166
|
}
|
|
1122
|
-
_self
|
|
1167
|
+
_self[_DYN_GET_CTX ] = function (key) {
|
|
1123
1168
|
if (key) {
|
|
1124
|
-
if (key === PerfEvent
|
|
1169
|
+
if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {
|
|
1125
1170
|
return _self[key];
|
|
1126
1171
|
}
|
|
1127
1172
|
return (_self[strExecutionContextKey] || {})[key];
|
|
1128
1173
|
}
|
|
1129
1174
|
return null;
|
|
1130
1175
|
};
|
|
1131
|
-
_self
|
|
1176
|
+
_self[_DYN_SET_CTX ] = function (key, value) {
|
|
1132
1177
|
if (key) {
|
|
1133
|
-
if (key === PerfEvent
|
|
1178
|
+
if (key === PerfEvent[strParentContextKey]) {
|
|
1134
1179
|
if (!_self[key]) {
|
|
1135
|
-
_self
|
|
1180
|
+
_self[_DYN_IS_CHILD_EVT ] = function () { return true; };
|
|
1136
1181
|
}
|
|
1137
1182
|
_self[key] = value;
|
|
1138
1183
|
}
|
|
1139
|
-
else if (key === PerfEvent
|
|
1184
|
+
else if (key === PerfEvent[strChildrenContextKey]) {
|
|
1140
1185
|
_self[key] = value;
|
|
1141
1186
|
}
|
|
1142
1187
|
else {
|
|
@@ -1145,20 +1190,20 @@
|
|
|
1145
1190
|
}
|
|
1146
1191
|
}
|
|
1147
1192
|
};
|
|
1148
|
-
_self
|
|
1193
|
+
_self[_DYN_COMPLETE ] = function () {
|
|
1149
1194
|
var childTime = 0;
|
|
1150
|
-
var childEvts = _self
|
|
1195
|
+
var childEvts = _self[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
1151
1196
|
if (isArray(childEvts)) {
|
|
1152
|
-
for (var lp = 0; lp < childEvts
|
|
1197
|
+
for (var lp = 0; lp < childEvts[_DYN_LENGTH$2 ]; lp++) {
|
|
1153
1198
|
var childEvt = childEvts[lp];
|
|
1154
1199
|
if (childEvt) {
|
|
1155
|
-
childTime += childEvt
|
|
1200
|
+
childTime += childEvt[_DYN_TIME ];
|
|
1156
1201
|
}
|
|
1157
1202
|
}
|
|
1158
1203
|
}
|
|
1159
|
-
_self
|
|
1160
|
-
_self.exTime = _self
|
|
1161
|
-
_self
|
|
1204
|
+
_self[_DYN_TIME ] = dateNow() - _self.start;
|
|
1205
|
+
_self.exTime = _self[_DYN_TIME ] - childTime;
|
|
1206
|
+
_self[_DYN_COMPLETE ] = function () { };
|
|
1162
1207
|
if (!accessorDefined && isFunction(payloadDetails)) {
|
|
1163
1208
|
_self.payload = payloadDetails();
|
|
1164
1209
|
}
|
|
@@ -1172,40 +1217,40 @@
|
|
|
1172
1217
|
function doPerf(mgrSource, getSource, func, details, isAsync) {
|
|
1173
1218
|
if (mgrSource) {
|
|
1174
1219
|
var perfMgr = mgrSource;
|
|
1175
|
-
if (
|
|
1176
|
-
perfMgr = perfMgr[
|
|
1220
|
+
if (perfMgr[STR_GET_PERF_MGR]) {
|
|
1221
|
+
perfMgr = perfMgr[STR_GET_PERF_MGR]();
|
|
1177
1222
|
}
|
|
1178
1223
|
if (perfMgr) {
|
|
1179
1224
|
var perfEvt = void 0;
|
|
1180
|
-
var currentActive = perfMgr
|
|
1225
|
+
var currentActive = perfMgr[_DYN_GET_CTX ](doPerfActiveKey);
|
|
1181
1226
|
try {
|
|
1182
1227
|
perfEvt = perfMgr.create(getSource(), details, isAsync);
|
|
1183
1228
|
if (perfEvt) {
|
|
1184
|
-
if (currentActive && perfEvt
|
|
1185
|
-
perfEvt
|
|
1186
|
-
if (currentActive
|
|
1187
|
-
var children = currentActive
|
|
1229
|
+
if (currentActive && perfEvt[_DYN_SET_CTX ]) {
|
|
1230
|
+
perfEvt[_DYN_SET_CTX ](PerfEvent[strParentContextKey], currentActive);
|
|
1231
|
+
if (currentActive[_DYN_GET_CTX ] && currentActive[_DYN_SET_CTX ]) {
|
|
1232
|
+
var children = currentActive[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
1188
1233
|
if (!children) {
|
|
1189
1234
|
children = [];
|
|
1190
|
-
currentActive
|
|
1235
|
+
currentActive[_DYN_SET_CTX ](PerfEvent[strChildrenContextKey], children);
|
|
1191
1236
|
}
|
|
1192
|
-
children
|
|
1237
|
+
children[_DYN_PUSH$1 ](perfEvt);
|
|
1193
1238
|
}
|
|
1194
1239
|
}
|
|
1195
|
-
perfMgr
|
|
1240
|
+
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, perfEvt);
|
|
1196
1241
|
return func(perfEvt);
|
|
1197
1242
|
}
|
|
1198
1243
|
}
|
|
1199
1244
|
catch (ex) {
|
|
1200
|
-
if (perfEvt && perfEvt
|
|
1201
|
-
perfEvt
|
|
1245
|
+
if (perfEvt && perfEvt[_DYN_SET_CTX ]) {
|
|
1246
|
+
perfEvt[_DYN_SET_CTX ]("exception", ex);
|
|
1202
1247
|
}
|
|
1203
1248
|
}
|
|
1204
1249
|
finally {
|
|
1205
1250
|
if (perfEvt) {
|
|
1206
1251
|
perfMgr.fire(perfEvt);
|
|
1207
1252
|
}
|
|
1208
|
-
perfMgr
|
|
1253
|
+
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, currentActive);
|
|
1209
1254
|
}
|
|
1210
1255
|
}
|
|
1211
1256
|
}
|
|
@@ -1267,8 +1312,8 @@
|
|
|
1267
1312
|
var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
1268
1313
|
var number = random32() >>> 0;
|
|
1269
1314
|
var chars = 0;
|
|
1270
|
-
var result =
|
|
1271
|
-
while (result
|
|
1315
|
+
var result = STR_EMPTY;
|
|
1316
|
+
while (result[_DYN_LENGTH$2 ] < maxLength) {
|
|
1272
1317
|
chars++;
|
|
1273
1318
|
result += base64chars.charAt(number & 0x3F);
|
|
1274
1319
|
number >>>= 6;
|
|
@@ -1281,7 +1326,7 @@
|
|
|
1281
1326
|
}
|
|
1282
1327
|
|
|
1283
1328
|
var _objDefineProperty = ObjDefineProperty;
|
|
1284
|
-
var version = "2.8.5-nightly.
|
|
1329
|
+
var version = "2.8.5-nightly.2207-02";
|
|
1285
1330
|
var instanceName = "." + newId(6);
|
|
1286
1331
|
var _dataUid = 0;
|
|
1287
1332
|
function _createAccessor(target, prop, value) {
|
|
@@ -1300,7 +1345,7 @@
|
|
|
1300
1345
|
return false;
|
|
1301
1346
|
}
|
|
1302
1347
|
function _canAcceptData(target) {
|
|
1303
|
-
return target
|
|
1348
|
+
return target[_DYN_NODE_TYPE ] === 1 || target[_DYN_NODE_TYPE ] === 9 || !(+target[_DYN_NODE_TYPE ]);
|
|
1304
1349
|
}
|
|
1305
1350
|
function _getCache(data, target) {
|
|
1306
1351
|
var theCache = target[data.id];
|
|
@@ -1320,11 +1365,11 @@
|
|
|
1320
1365
|
}
|
|
1321
1366
|
function createUniqueNamespace(name, includeVersion) {
|
|
1322
1367
|
if (includeVersion === void 0) { includeVersion = false; }
|
|
1323
|
-
return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version :
|
|
1368
|
+
return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY) + instanceName);
|
|
1324
1369
|
}
|
|
1325
1370
|
function createElmNodeData(name) {
|
|
1326
1371
|
var data = {
|
|
1327
|
-
id: createUniqueNamespace("_aiData-" + (name ||
|
|
1372
|
+
id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY) + "." + version),
|
|
1328
1373
|
accept: function (target) {
|
|
1329
1374
|
return _canAcceptData(target);
|
|
1330
1375
|
},
|
|
@@ -1366,16 +1411,17 @@
|
|
|
1366
1411
|
var elmNodeData = createElmNodeData("events");
|
|
1367
1412
|
var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
|
|
1368
1413
|
function _normalizeNamespace(name) {
|
|
1369
|
-
if (name && name
|
|
1370
|
-
return name.replace(/^\s*\.*|\.*\s*$/g,
|
|
1414
|
+
if (name && name[_DYN_REPLACE ]) {
|
|
1415
|
+
return name.replace(/^\s*\.*|\.*\s*$/g, STR_EMPTY);
|
|
1371
1416
|
}
|
|
1372
1417
|
return name;
|
|
1373
1418
|
}
|
|
1374
1419
|
function _getEvtNamespace(eventName, evtNamespace) {
|
|
1420
|
+
var _a;
|
|
1375
1421
|
if (evtNamespace) {
|
|
1376
|
-
var theNamespace_1 =
|
|
1422
|
+
var theNamespace_1 = STR_EMPTY;
|
|
1377
1423
|
if (isArray(evtNamespace)) {
|
|
1378
|
-
theNamespace_1 =
|
|
1424
|
+
theNamespace_1 = STR_EMPTY;
|
|
1379
1425
|
arrForEach(evtNamespace, function (name) {
|
|
1380
1426
|
name = _normalizeNamespace(name);
|
|
1381
1427
|
if (name) {
|
|
@@ -1393,14 +1439,14 @@
|
|
|
1393
1439
|
if (theNamespace_1[0] !== ".") {
|
|
1394
1440
|
theNamespace_1 = "." + theNamespace_1;
|
|
1395
1441
|
}
|
|
1396
|
-
eventName = (eventName ||
|
|
1442
|
+
eventName = (eventName || STR_EMPTY) + theNamespace_1;
|
|
1397
1443
|
}
|
|
1398
1444
|
}
|
|
1399
|
-
var parsedEvent = (eventNamespace.exec(eventName ||
|
|
1400
|
-
return {
|
|
1401
|
-
|
|
1402
|
-
ns
|
|
1403
|
-
|
|
1445
|
+
var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);
|
|
1446
|
+
return _a = {},
|
|
1447
|
+
_a[_DYN_TYPE ] = parsedEvent[1],
|
|
1448
|
+
_a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT$1 ](".").sort()).join("."),
|
|
1449
|
+
_a;
|
|
1404
1450
|
}
|
|
1405
1451
|
function _getRegisteredEvents(target, evtName, addDefault) {
|
|
1406
1452
|
if (addDefault === void 0) { addDefault = true; }
|
|
@@ -1412,53 +1458,53 @@
|
|
|
1412
1458
|
return registeredEvents;
|
|
1413
1459
|
}
|
|
1414
1460
|
function _doDetach(obj, evtName, handlerRef, useCapture) {
|
|
1415
|
-
if (obj && evtName && evtName
|
|
1461
|
+
if (obj && evtName && evtName[_DYN_TYPE ]) {
|
|
1416
1462
|
if (obj[strRemoveEventListener]) {
|
|
1417
|
-
obj[strRemoveEventListener](evtName
|
|
1463
|
+
obj[strRemoveEventListener](evtName[_DYN_TYPE ], handlerRef, useCapture);
|
|
1418
1464
|
}
|
|
1419
1465
|
else if (obj[strDetachEvent]) {
|
|
1420
|
-
obj[strDetachEvent](strOnPrefix + evtName
|
|
1466
|
+
obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
|
|
1421
1467
|
}
|
|
1422
1468
|
}
|
|
1423
1469
|
}
|
|
1424
1470
|
function _doAttach(obj, evtName, handlerRef, useCapture) {
|
|
1425
1471
|
var result = false;
|
|
1426
|
-
if (obj && evtName && evtName
|
|
1472
|
+
if (obj && evtName && evtName[_DYN_TYPE ] && handlerRef) {
|
|
1427
1473
|
if (obj[strAddEventHelper]) {
|
|
1428
|
-
obj[strAddEventHelper](evtName
|
|
1474
|
+
obj[strAddEventHelper](evtName[_DYN_TYPE ], handlerRef, useCapture);
|
|
1429
1475
|
result = true;
|
|
1430
1476
|
}
|
|
1431
1477
|
else if (obj[strAttachEvent]) {
|
|
1432
|
-
obj[strAttachEvent](strOnPrefix + evtName
|
|
1478
|
+
obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
|
|
1433
1479
|
result = true;
|
|
1434
1480
|
}
|
|
1435
1481
|
}
|
|
1436
1482
|
return result;
|
|
1437
1483
|
}
|
|
1438
1484
|
function _doUnregister(target, events, evtName, unRegFn) {
|
|
1439
|
-
var idx = events
|
|
1485
|
+
var idx = events[_DYN_LENGTH$2 ];
|
|
1440
1486
|
while (idx--) {
|
|
1441
1487
|
var theEvent = events[idx];
|
|
1442
1488
|
if (theEvent) {
|
|
1443
1489
|
if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
|
|
1444
1490
|
if (!unRegFn || unRegFn(theEvent)) {
|
|
1445
|
-
_doDetach(target, theEvent.evtName, theEvent
|
|
1446
|
-
events
|
|
1491
|
+
_doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER ], theEvent.capture);
|
|
1492
|
+
events[_DYN_SPLICE ](idx, 1);
|
|
1447
1493
|
}
|
|
1448
1494
|
}
|
|
1449
1495
|
}
|
|
1450
1496
|
}
|
|
1451
1497
|
}
|
|
1452
1498
|
function _unregisterEvents(target, evtName, unRegFn) {
|
|
1453
|
-
if (evtName
|
|
1454
|
-
_doUnregister(target, _getRegisteredEvents(target, evtName
|
|
1499
|
+
if (evtName[_DYN_TYPE ]) {
|
|
1500
|
+
_doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE ]), evtName, unRegFn);
|
|
1455
1501
|
}
|
|
1456
1502
|
else {
|
|
1457
1503
|
var eventCache = elmNodeData.get(target, strEvents, {});
|
|
1458
1504
|
objForEachKey(eventCache, function (evtType, events) {
|
|
1459
1505
|
_doUnregister(target, events, evtName, unRegFn);
|
|
1460
1506
|
});
|
|
1461
|
-
if (objKeys(eventCache)
|
|
1507
|
+
if (objKeys(eventCache)[_DYN_LENGTH$2 ] === 0) {
|
|
1462
1508
|
elmNodeData.kill(target, strEvents);
|
|
1463
1509
|
}
|
|
1464
1510
|
}
|
|
@@ -1472,7 +1518,7 @@
|
|
|
1472
1518
|
else {
|
|
1473
1519
|
newNamespaces = [theNamespace, namespaces];
|
|
1474
1520
|
}
|
|
1475
|
-
newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns)
|
|
1521
|
+
newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns)[_DYN_SPLIT$1 ](".");
|
|
1476
1522
|
}
|
|
1477
1523
|
else {
|
|
1478
1524
|
newNamespaces = theNamespace;
|
|
@@ -1480,6 +1526,7 @@
|
|
|
1480
1526
|
return newNamespaces;
|
|
1481
1527
|
}
|
|
1482
1528
|
function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1529
|
+
var _a;
|
|
1483
1530
|
if (useCapture === void 0) { useCapture = false; }
|
|
1484
1531
|
var result = false;
|
|
1485
1532
|
if (target) {
|
|
@@ -1487,13 +1534,14 @@
|
|
|
1487
1534
|
var evtName = _getEvtNamespace(eventName, evtNamespace);
|
|
1488
1535
|
result = _doAttach(target, evtName, handlerRef, useCapture);
|
|
1489
1536
|
if (result && elmNodeData.accept(target)) {
|
|
1490
|
-
var registeredEvent = {
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1537
|
+
var registeredEvent = (_a = {
|
|
1538
|
+
guid: _guid++,
|
|
1539
|
+
evtName: evtName
|
|
1540
|
+
},
|
|
1541
|
+
_a[_DYN_HANDLER ] = handlerRef,
|
|
1542
|
+
_a.capture = useCapture,
|
|
1543
|
+
_a);
|
|
1544
|
+
_getRegisteredEvents(target, evtName.type)[_DYN_PUSH$1 ](registeredEvent);
|
|
1497
1545
|
}
|
|
1498
1546
|
}
|
|
1499
1547
|
catch (e) {
|
|
@@ -1508,7 +1556,7 @@
|
|
|
1508
1556
|
var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
|
|
1509
1557
|
var found_1 = false;
|
|
1510
1558
|
_unregisterEvents(target, evtName_1, function (regEvent) {
|
|
1511
|
-
if ((evtName_1.ns && !handlerRef) || regEvent
|
|
1559
|
+
if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER ] === handlerRef) {
|
|
1512
1560
|
found_1 = true;
|
|
1513
1561
|
return true;
|
|
1514
1562
|
}
|
|
@@ -1534,12 +1582,12 @@
|
|
|
1534
1582
|
var _chainId = 0;
|
|
1535
1583
|
function _getNextProxyStart(proxy, core, startAt) {
|
|
1536
1584
|
while (proxy) {
|
|
1537
|
-
if (proxy
|
|
1585
|
+
if (proxy[_DYN_GET_PLUGIN ]() === startAt) {
|
|
1538
1586
|
return proxy;
|
|
1539
1587
|
}
|
|
1540
|
-
proxy = proxy
|
|
1588
|
+
proxy = proxy[_DYN_GET_NEXT ]();
|
|
1541
1589
|
}
|
|
1542
|
-
return createTelemetryProxyChain([startAt], core
|
|
1590
|
+
return createTelemetryProxyChain([startAt], core[_DYN_CONFIG ] || {}, core);
|
|
1543
1591
|
}
|
|
1544
1592
|
function _createInternalContext(telemetryChain, config, core, startAt) {
|
|
1545
1593
|
var _nextProxy = null;
|
|
@@ -1580,7 +1628,7 @@
|
|
|
1580
1628
|
args[_i - 2] = arguments[_i];
|
|
1581
1629
|
}
|
|
1582
1630
|
if (onComplete) {
|
|
1583
|
-
_onComplete
|
|
1631
|
+
_onComplete[_DYN_PUSH$1 ]({
|
|
1584
1632
|
func: onComplete,
|
|
1585
1633
|
self: !isUndefined(that) ? that : context.ctx,
|
|
1586
1634
|
args: args
|
|
@@ -1589,16 +1637,16 @@
|
|
|
1589
1637
|
}
|
|
1590
1638
|
function _moveNext() {
|
|
1591
1639
|
var nextProxy = _nextProxy;
|
|
1592
|
-
_nextProxy = nextProxy ? nextProxy
|
|
1640
|
+
_nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT ]() : null;
|
|
1593
1641
|
if (!nextProxy) {
|
|
1594
1642
|
var onComplete = _onComplete;
|
|
1595
|
-
if (onComplete && onComplete
|
|
1643
|
+
if (onComplete && onComplete[_DYN_LENGTH$2 ] > 0) {
|
|
1596
1644
|
arrForEach(onComplete, function (completeDetails) {
|
|
1597
1645
|
try {
|
|
1598
|
-
completeDetails.func
|
|
1646
|
+
completeDetails.func[_DYN_CALL ](completeDetails.self, completeDetails.args);
|
|
1599
1647
|
}
|
|
1600
1648
|
catch (e) {
|
|
1601
|
-
_throwInternal(core
|
|
1649
|
+
_throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
1602
1650
|
}
|
|
1603
1651
|
});
|
|
1604
1652
|
_onComplete = [];
|
|
@@ -1611,7 +1659,7 @@
|
|
|
1611
1659
|
if (mergeDefault === void 0) { mergeDefault = 0 ; }
|
|
1612
1660
|
var theConfig;
|
|
1613
1661
|
if (config) {
|
|
1614
|
-
var extConfig = config
|
|
1662
|
+
var extConfig = config[STR_EXTENSION_CONFIG ];
|
|
1615
1663
|
if (extConfig && identifier) {
|
|
1616
1664
|
theConfig = extConfig[identifier];
|
|
1617
1665
|
}
|
|
@@ -1652,7 +1700,7 @@
|
|
|
1652
1700
|
function _iterateChain(cb) {
|
|
1653
1701
|
var nextPlugin;
|
|
1654
1702
|
while (!!(nextPlugin = context._next())) {
|
|
1655
|
-
var plugin = nextPlugin
|
|
1703
|
+
var plugin = nextPlugin[_DYN_GET_PLUGIN ]();
|
|
1656
1704
|
if (plugin) {
|
|
1657
1705
|
cb(plugin);
|
|
1658
1706
|
}
|
|
@@ -1665,7 +1713,7 @@
|
|
|
1665
1713
|
var context = internalContext.ctx;
|
|
1666
1714
|
function _processNext(env) {
|
|
1667
1715
|
var nextPlugin = internalContext._next();
|
|
1668
|
-
nextPlugin && nextPlugin
|
|
1716
|
+
nextPlugin && nextPlugin[STR_PROCESS_TELEMETRY ](env, context);
|
|
1669
1717
|
return !nextPlugin;
|
|
1670
1718
|
}
|
|
1671
1719
|
function _createNew(plugins, startAt) {
|
|
@@ -1673,14 +1721,14 @@
|
|
|
1673
1721
|
if (isArray(plugins)) {
|
|
1674
1722
|
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1675
1723
|
}
|
|
1676
|
-
return createProcessTelemetryContext(plugins || context
|
|
1724
|
+
return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config, core, startAt);
|
|
1677
1725
|
}
|
|
1678
|
-
context
|
|
1679
|
-
context
|
|
1726
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
1727
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
1680
1728
|
return context;
|
|
1681
1729
|
}
|
|
1682
1730
|
function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
|
|
1683
|
-
var config = core
|
|
1731
|
+
var config = core[_DYN_CONFIG ] || {};
|
|
1684
1732
|
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1685
1733
|
var context = internalContext.ctx;
|
|
1686
1734
|
function _processNext(unloadState) {
|
|
@@ -1693,20 +1741,20 @@
|
|
|
1693
1741
|
if (isArray(plugins)) {
|
|
1694
1742
|
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1695
1743
|
}
|
|
1696
|
-
return createProcessTelemetryUnloadContext(plugins || context
|
|
1744
|
+
return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
1697
1745
|
}
|
|
1698
|
-
context
|
|
1699
|
-
context
|
|
1746
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
1747
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
1700
1748
|
return context;
|
|
1701
1749
|
}
|
|
1702
1750
|
function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
|
|
1703
|
-
var config = core
|
|
1751
|
+
var config = core[_DYN_CONFIG ] || {};
|
|
1704
1752
|
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1705
1753
|
var context = internalContext.ctx;
|
|
1706
1754
|
function _processNext(updateState) {
|
|
1707
1755
|
return context.iterate(function (plugin) {
|
|
1708
|
-
if (isFunction(plugin
|
|
1709
|
-
plugin
|
|
1756
|
+
if (isFunction(plugin[_DYN_UPDATE ])) {
|
|
1757
|
+
plugin[_DYN_UPDATE ](context, updateState);
|
|
1710
1758
|
}
|
|
1711
1759
|
});
|
|
1712
1760
|
}
|
|
@@ -1715,22 +1763,22 @@
|
|
|
1715
1763
|
if (isArray(plugins)) {
|
|
1716
1764
|
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1717
1765
|
}
|
|
1718
|
-
return createProcessTelemetryUpdateContext(plugins || context
|
|
1766
|
+
return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
1719
1767
|
}
|
|
1720
|
-
context
|
|
1721
|
-
context
|
|
1768
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
1769
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
1722
1770
|
return context;
|
|
1723
1771
|
}
|
|
1724
1772
|
function createTelemetryProxyChain(plugins, config, core, startAt) {
|
|
1725
1773
|
var firstProxy = null;
|
|
1726
1774
|
var add = startAt ? false : true;
|
|
1727
|
-
if (isArray(plugins) && plugins
|
|
1775
|
+
if (isArray(plugins) && plugins[_DYN_LENGTH$2 ] > 0) {
|
|
1728
1776
|
var lastProxy_1 = null;
|
|
1729
1777
|
arrForEach(plugins, function (thePlugin) {
|
|
1730
1778
|
if (!add && startAt === thePlugin) {
|
|
1731
1779
|
add = true;
|
|
1732
1780
|
}
|
|
1733
|
-
if (add && thePlugin && isFunction(thePlugin
|
|
1781
|
+
if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY ])) {
|
|
1734
1782
|
var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
|
|
1735
1783
|
if (!firstProxy) {
|
|
1736
1784
|
firstProxy = newProxy;
|
|
@@ -1749,11 +1797,11 @@
|
|
|
1749
1797
|
}
|
|
1750
1798
|
function createTelemetryPluginProxy(plugin, config, core) {
|
|
1751
1799
|
var nextProxy = null;
|
|
1752
|
-
var hasProcessTelemetry = isFunction(plugin
|
|
1753
|
-
var hasSetNext = isFunction(plugin
|
|
1800
|
+
var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY ]);
|
|
1801
|
+
var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN ]);
|
|
1754
1802
|
var chainId;
|
|
1755
1803
|
if (plugin) {
|
|
1756
|
-
chainId = plugin
|
|
1804
|
+
chainId = plugin[_DYN_IDENTIFIER ] + "-" + plugin[STR_PRIORITY ] + "-" + _chainId++;
|
|
1757
1805
|
}
|
|
1758
1806
|
else {
|
|
1759
1807
|
chainId = "Unknown-0-" + _chainId++;
|
|
@@ -1785,17 +1833,17 @@
|
|
|
1785
1833
|
}
|
|
1786
1834
|
function _processChain(itemCtx, processPluginFn, name, details, isAsync) {
|
|
1787
1835
|
var hasRun = false;
|
|
1788
|
-
var identifier = plugin ? plugin
|
|
1836
|
+
var identifier = plugin ? plugin[_DYN_IDENTIFIER ] : strTelemetryPluginChain;
|
|
1789
1837
|
var hasRunContext = itemCtx[strHasRunFlags];
|
|
1790
1838
|
if (!hasRunContext) {
|
|
1791
1839
|
hasRunContext = itemCtx[strHasRunFlags] = {};
|
|
1792
1840
|
}
|
|
1793
1841
|
itemCtx.setNext(nextProxy);
|
|
1794
1842
|
if (plugin) {
|
|
1795
|
-
doPerf(itemCtx[
|
|
1843
|
+
doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
|
|
1796
1844
|
hasRunContext[chainId] = true;
|
|
1797
1845
|
try {
|
|
1798
|
-
var nextId = nextProxy ? nextProxy._id :
|
|
1846
|
+
var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
|
|
1799
1847
|
if (nextId) {
|
|
1800
1848
|
hasRunContext[nextId] = false;
|
|
1801
1849
|
}
|
|
@@ -1807,7 +1855,7 @@
|
|
|
1807
1855
|
hasRun = true;
|
|
1808
1856
|
}
|
|
1809
1857
|
if (!nextProxy || !hasNextRun) {
|
|
1810
|
-
_throwInternal(itemCtx
|
|
1858
|
+
_throwInternal(itemCtx[_DYN_DIAG_LOG$1 ](), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
|
|
1811
1859
|
}
|
|
1812
1860
|
}
|
|
1813
1861
|
}, details, isAsync);
|
|
@@ -1821,17 +1869,17 @@
|
|
|
1821
1869
|
return false;
|
|
1822
1870
|
}
|
|
1823
1871
|
var pluginState = _getPluginState(plugin);
|
|
1824
|
-
if (pluginState
|
|
1872
|
+
if (pluginState[_DYN_TEARDOWN ] || pluginState[STR_DISABLED]) {
|
|
1825
1873
|
return false;
|
|
1826
1874
|
}
|
|
1827
1875
|
if (hasSetNext) {
|
|
1828
|
-
plugin
|
|
1876
|
+
plugin[_DYN_SET_NEXT_PLUGIN ](nextProxy);
|
|
1829
1877
|
}
|
|
1830
|
-
plugin
|
|
1878
|
+
plugin[STR_PROCESS_TELEMETRY ](env, itemCtx);
|
|
1831
1879
|
return true;
|
|
1832
1880
|
}
|
|
1833
1881
|
if (!_processChain(itemCtx, _callProcessTelemetry, "processTelemetry", function () { return ({ item: env }); }, !(env.sync))) {
|
|
1834
|
-
itemCtx
|
|
1882
|
+
itemCtx[_DYN_PROCESS_NEXT ](env);
|
|
1835
1883
|
}
|
|
1836
1884
|
}
|
|
1837
1885
|
function _unloadPlugin(unloadCtx, unloadState) {
|
|
@@ -1839,20 +1887,20 @@
|
|
|
1839
1887
|
var hasRun = false;
|
|
1840
1888
|
if (plugin) {
|
|
1841
1889
|
var pluginState = _getPluginState(plugin);
|
|
1842
|
-
var pluginCore = plugin[
|
|
1843
|
-
if (plugin && (!pluginCore || pluginCore === unloadCtx
|
|
1844
|
-
pluginState[
|
|
1845
|
-
pluginState[
|
|
1846
|
-
pluginState[
|
|
1847
|
-
if (plugin[
|
|
1890
|
+
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
1891
|
+
if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
1892
|
+
pluginState[STR_CORE ] = null;
|
|
1893
|
+
pluginState[_DYN_TEARDOWN ] = true;
|
|
1894
|
+
pluginState[_DYN_IS_INITIALIZED ] = false;
|
|
1895
|
+
if (plugin[_DYN_TEARDOWN ] && plugin[_DYN_TEARDOWN ](unloadCtx, unloadState) === true) {
|
|
1848
1896
|
hasRun = true;
|
|
1849
1897
|
}
|
|
1850
1898
|
}
|
|
1851
1899
|
}
|
|
1852
1900
|
return hasRun;
|
|
1853
1901
|
}
|
|
1854
|
-
if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState
|
|
1855
|
-
unloadCtx
|
|
1902
|
+
if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState[_DYN_IS_ASYNC ])) {
|
|
1903
|
+
unloadCtx[_DYN_PROCESS_NEXT ](unloadState);
|
|
1856
1904
|
}
|
|
1857
1905
|
}
|
|
1858
1906
|
function _updatePlugin(updateCtx, updateState) {
|
|
@@ -1860,9 +1908,9 @@
|
|
|
1860
1908
|
var hasRun = false;
|
|
1861
1909
|
if (plugin) {
|
|
1862
1910
|
var pluginState = _getPluginState(plugin);
|
|
1863
|
-
var pluginCore = plugin[
|
|
1864
|
-
if (plugin && (!pluginCore || pluginCore === updateCtx
|
|
1865
|
-
if (plugin[
|
|
1911
|
+
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
1912
|
+
if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
1913
|
+
if (plugin[_DYN_UPDATE ] && plugin[_DYN_UPDATE ](updateCtx, updateState) === true) {
|
|
1866
1914
|
hasRun = true;
|
|
1867
1915
|
}
|
|
1868
1916
|
}
|
|
@@ -1870,19 +1918,17 @@
|
|
|
1870
1918
|
return hasRun;
|
|
1871
1919
|
}
|
|
1872
1920
|
if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
|
|
1873
|
-
updateCtx
|
|
1921
|
+
updateCtx[_DYN_PROCESS_NEXT ](updateState);
|
|
1874
1922
|
}
|
|
1875
1923
|
}
|
|
1876
1924
|
return objFreeze(proxyChain);
|
|
1877
1925
|
}
|
|
1878
1926
|
|
|
1879
|
-
var strExtensionConfig = "extensionConfig";
|
|
1880
|
-
|
|
1881
1927
|
function createUnloadHandlerContainer() {
|
|
1882
1928
|
var handlers = [];
|
|
1883
1929
|
function _addHandler(handler) {
|
|
1884
1930
|
if (handler) {
|
|
1885
|
-
handlers
|
|
1931
|
+
handlers[_DYN_PUSH$1 ](handler);
|
|
1886
1932
|
}
|
|
1887
1933
|
}
|
|
1888
1934
|
function _runHandlers(unloadCtx, unloadState) {
|
|
@@ -1891,7 +1937,7 @@
|
|
|
1891
1937
|
handler(unloadCtx, unloadState);
|
|
1892
1938
|
}
|
|
1893
1939
|
catch (e) {
|
|
1894
|
-
_throwInternal(unloadCtx
|
|
1940
|
+
_throwInternal(unloadCtx[_DYN_DIAG_LOG$1 ](), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
|
|
1895
1941
|
}
|
|
1896
1942
|
});
|
|
1897
1943
|
handlers = [];
|
|
@@ -1913,37 +1959,40 @@
|
|
|
1913
1959
|
var _hooks;
|
|
1914
1960
|
_initDefaults();
|
|
1915
1961
|
dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
|
|
1916
|
-
_self
|
|
1962
|
+
_self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
|
|
1917
1963
|
_setDefaults(config, core, pluginChain);
|
|
1918
1964
|
_isinitialized = true;
|
|
1919
1965
|
};
|
|
1920
|
-
_self
|
|
1921
|
-
var
|
|
1922
|
-
|
|
1966
|
+
_self[_DYN_TEARDOWN ] = function (unloadCtx, unloadState) {
|
|
1967
|
+
var _a;
|
|
1968
|
+
var core = _self[STR_CORE ];
|
|
1969
|
+
if (!core || (unloadCtx && core !== unloadCtx[STR_CORE ]())) {
|
|
1923
1970
|
return;
|
|
1924
1971
|
}
|
|
1925
1972
|
var result;
|
|
1926
1973
|
var unloadDone = false;
|
|
1927
1974
|
var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
|
|
1928
|
-
var theUnloadState = unloadState || {
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1975
|
+
var theUnloadState = unloadState || (_a = {
|
|
1976
|
+
reason: 0
|
|
1977
|
+
},
|
|
1978
|
+
_a[_DYN_IS_ASYNC ] = false,
|
|
1979
|
+
_a);
|
|
1932
1980
|
function _unloadCallback() {
|
|
1933
1981
|
if (!unloadDone) {
|
|
1934
1982
|
unloadDone = true;
|
|
1935
1983
|
_unloadHandlerContainer.run(theUnloadCtx, unloadState);
|
|
1936
|
-
|
|
1984
|
+
var oldHooks = _hooks;
|
|
1985
|
+
_hooks = [];
|
|
1986
|
+
arrForEach(oldHooks, function (fn) {
|
|
1937
1987
|
fn.rm();
|
|
1938
1988
|
});
|
|
1939
|
-
_hooks = [];
|
|
1940
1989
|
if (result === true) {
|
|
1941
|
-
theUnloadCtx
|
|
1990
|
+
theUnloadCtx[_DYN_PROCESS_NEXT ](theUnloadState);
|
|
1942
1991
|
}
|
|
1943
1992
|
_initDefaults();
|
|
1944
1993
|
}
|
|
1945
1994
|
}
|
|
1946
|
-
if (!_self[
|
|
1995
|
+
if (!_self[_DYN__DO_TEARDOWN ] || _self[_DYN__DO_TEARDOWN ](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {
|
|
1947
1996
|
_unloadCallback();
|
|
1948
1997
|
}
|
|
1949
1998
|
else {
|
|
@@ -1951,9 +2000,9 @@
|
|
|
1951
2000
|
}
|
|
1952
2001
|
return result;
|
|
1953
2002
|
};
|
|
1954
|
-
_self
|
|
1955
|
-
var core = _self
|
|
1956
|
-
if (!core || (updateCtx && core !== updateCtx
|
|
2003
|
+
_self[_DYN_UPDATE ] = function (updateCtx, updateState) {
|
|
2004
|
+
var core = _self[STR_CORE ];
|
|
2005
|
+
if (!core || (updateCtx && core !== updateCtx[STR_CORE ]())) {
|
|
1957
2006
|
return;
|
|
1958
2007
|
}
|
|
1959
2008
|
var result;
|
|
@@ -1965,7 +2014,7 @@
|
|
|
1965
2014
|
function _updateCallback() {
|
|
1966
2015
|
if (!updateDone) {
|
|
1967
2016
|
updateDone = true;
|
|
1968
|
-
_setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx
|
|
2017
|
+
_setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT ]());
|
|
1969
2018
|
}
|
|
1970
2019
|
}
|
|
1971
2020
|
if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
|
|
@@ -1982,30 +2031,30 @@
|
|
|
1982
2031
|
_hooks = _hooks.concat(hooks);
|
|
1983
2032
|
}
|
|
1984
2033
|
else {
|
|
1985
|
-
_hooks
|
|
2034
|
+
_hooks[_DYN_PUSH$1 ](hooks);
|
|
1986
2035
|
}
|
|
1987
2036
|
}
|
|
1988
2037
|
};
|
|
1989
2038
|
proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
|
|
1990
2039
|
});
|
|
1991
|
-
_self
|
|
1992
|
-
return _getTelCtx(itemCtx)
|
|
2040
|
+
_self[_DYN_DIAG_LOG$1 ] = function (itemCtx) {
|
|
2041
|
+
return _getTelCtx(itemCtx)[_DYN_DIAG_LOG$1 ]();
|
|
1993
2042
|
};
|
|
1994
|
-
_self[
|
|
2043
|
+
_self[_DYN_IS_INITIALIZED ] = function () {
|
|
1995
2044
|
return _isinitialized;
|
|
1996
2045
|
};
|
|
1997
2046
|
_self.setInitialized = function (isInitialized) {
|
|
1998
2047
|
_isinitialized = isInitialized;
|
|
1999
2048
|
};
|
|
2000
|
-
_self[
|
|
2049
|
+
_self[_DYN_SET_NEXT_PLUGIN ] = function (next) {
|
|
2001
2050
|
_nextPlugin = next;
|
|
2002
2051
|
};
|
|
2003
|
-
_self
|
|
2052
|
+
_self[_DYN_PROCESS_NEXT ] = function (env, itemCtx) {
|
|
2004
2053
|
if (itemCtx) {
|
|
2005
|
-
itemCtx
|
|
2054
|
+
itemCtx[_DYN_PROCESS_NEXT ](env);
|
|
2006
2055
|
}
|
|
2007
|
-
else if (_nextPlugin && isFunction(_nextPlugin
|
|
2008
|
-
_nextPlugin
|
|
2056
|
+
else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY ])) {
|
|
2057
|
+
_nextPlugin[STR_PROCESS_TELEMETRY ](env, null);
|
|
2009
2058
|
}
|
|
2010
2059
|
};
|
|
2011
2060
|
_self._getTelCtx = _getTelCtx;
|
|
@@ -2013,33 +2062,33 @@
|
|
|
2013
2062
|
if (currentCtx === void 0) { currentCtx = null; }
|
|
2014
2063
|
var itemCtx = currentCtx;
|
|
2015
2064
|
if (!itemCtx) {
|
|
2016
|
-
var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self
|
|
2065
|
+
var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE ]);
|
|
2017
2066
|
if (_nextPlugin && _nextPlugin[strGetPlugin]) {
|
|
2018
|
-
itemCtx = rootCtx
|
|
2067
|
+
itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin[strGetPlugin]);
|
|
2019
2068
|
}
|
|
2020
2069
|
else {
|
|
2021
|
-
itemCtx = rootCtx
|
|
2070
|
+
itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin);
|
|
2022
2071
|
}
|
|
2023
2072
|
}
|
|
2024
2073
|
return itemCtx;
|
|
2025
2074
|
}
|
|
2026
2075
|
function _setDefaults(config, core, pluginChain) {
|
|
2027
2076
|
if (config) {
|
|
2028
|
-
setValue(config,
|
|
2077
|
+
setValue(config, STR_EXTENSION_CONFIG, [], null, isNullOrUndefined);
|
|
2029
2078
|
}
|
|
2030
2079
|
if (!pluginChain && core) {
|
|
2031
|
-
pluginChain = core
|
|
2080
|
+
pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 ]()[_DYN_GET_NEXT ]();
|
|
2032
2081
|
}
|
|
2033
2082
|
var nextPlugin = _nextPlugin;
|
|
2034
2083
|
if (_nextPlugin && _nextPlugin[strGetPlugin]) {
|
|
2035
2084
|
nextPlugin = _nextPlugin[strGetPlugin]();
|
|
2036
2085
|
}
|
|
2037
|
-
_self
|
|
2086
|
+
_self[STR_CORE ] = core;
|
|
2038
2087
|
_rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);
|
|
2039
2088
|
}
|
|
2040
2089
|
function _initDefaults() {
|
|
2041
2090
|
_isinitialized = false;
|
|
2042
|
-
_self
|
|
2091
|
+
_self[STR_CORE ] = null;
|
|
2043
2092
|
_rootCtx = null;
|
|
2044
2093
|
_nextPlugin = null;
|
|
2045
2094
|
_hooks = [];
|
|
@@ -2050,27 +2099,157 @@
|
|
|
2050
2099
|
return BaseTelemetryPlugin;
|
|
2051
2100
|
}());
|
|
2052
2101
|
|
|
2053
|
-
var
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2102
|
+
var DisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
|
|
2103
|
+
var SampleRate = "sampleRate";
|
|
2104
|
+
var ProcessLegacy = "ProcessLegacy";
|
|
2105
|
+
var HttpMethod = "http.method";
|
|
2106
|
+
var DEFAULT_BREEZE_ENDPOINT = "https://dc.services.visualstudio.com";
|
|
2107
|
+
var DEFAULT_BREEZE_PATH = "/v2/track";
|
|
2108
|
+
var strNotSpecified = "not_specified";
|
|
2109
|
+
|
|
2110
|
+
var _DYN_SPLIT = "split";
|
|
2111
|
+
var _DYN_LENGTH$1 = "length";
|
|
2112
|
+
var _DYN_TO_LOWER_CASE = "toLowerCase";
|
|
2113
|
+
var _DYN_TO_STRING$1 = "toString";
|
|
2114
|
+
var _DYN_REMOVE_ITEM = "removeItem";
|
|
2115
|
+
var _DYN_NAME$1 = "name";
|
|
2116
|
+
var _DYN_PATHNAME = "pathname";
|
|
2117
|
+
var _DYN_INDEX_OF = "indexOf";
|
|
2118
|
+
var _DYN_EXCEPTIONS = "exceptions";
|
|
2119
|
+
var _DYN_PARSED_STACK = "parsedStack";
|
|
2120
|
+
var _DYN_PROPERTIES = "properties";
|
|
2121
|
+
var _DYN_MEASUREMENTS$1 = "measurements";
|
|
2122
|
+
var _DYN_STRINGIFY$1 = "stringify";
|
|
2123
|
+
var _DYN_MESSAGE = "message";
|
|
2124
|
+
var _DYN_SIZE_IN_BYTES = "sizeInBytes";
|
|
2125
|
+
var _DYN_TYPE_NAME = "typeName";
|
|
2126
|
+
var _DYN_SEVERITY_LEVEL = "severityLevel";
|
|
2127
|
+
var _DYN_PROBLEM_GROUP = "problemGroup";
|
|
2128
|
+
var _DYN_IS_MANUAL = "isManual";
|
|
2129
|
+
var _DYN__CREATE_FROM_INTERFA1 = "CreateFromInterface";
|
|
2130
|
+
var _DYN_HAS_FULL_STACK = "hasFullStack";
|
|
2131
|
+
var _DYN_LEVEL = "level";
|
|
2132
|
+
var _DYN_METHOD = "method";
|
|
2133
|
+
var _DYN_ASSEMBLY = "assembly";
|
|
2134
|
+
var _DYN_FILE_NAME = "fileName";
|
|
2135
|
+
var _DYN_LINE = "line";
|
|
2136
|
+
var _DYN_DURATION = "duration";
|
|
2137
|
+
var _DYN_RECEIVED_RESPONSE = "receivedResponse";
|
|
2138
|
+
var _DYN_SUBSTRING = "substring";
|
|
2139
|
+
var _DYN_SANITIZE_KEY_AND_ADD2 = "sanitizeKeyAndAddUniqueness";
|
|
2140
|
+
var _DYN_SANITIZE_EXCEPTION = "sanitizeException";
|
|
2141
|
+
var _DYN_SANITIZE_PROPERTIES = "sanitizeProperties";
|
|
2142
|
+
var _DYN_SANITIZE_MEASUREMENT3 = "sanitizeMeasurements";
|
|
2143
|
+
|
|
2144
|
+
var strEmpty = "";
|
|
2145
|
+
function msToTimeSpan(totalms) {
|
|
2146
|
+
if (isNaN(totalms) || totalms < 0) {
|
|
2147
|
+
totalms = 0;
|
|
2148
|
+
}
|
|
2149
|
+
totalms = Math.round(totalms);
|
|
2150
|
+
var ms = strEmpty + totalms % 1000;
|
|
2151
|
+
var sec = strEmpty + Math.floor(totalms / 1000) % 60;
|
|
2152
|
+
var min = strEmpty + Math.floor(totalms / (1000 * 60)) % 60;
|
|
2153
|
+
var hour = strEmpty + Math.floor(totalms / (1000 * 60 * 60)) % 24;
|
|
2154
|
+
var days = Math.floor(totalms / (1000 * 60 * 60 * 24));
|
|
2155
|
+
ms = ms[_DYN_LENGTH$1 ] === 1 ? "00" + ms : ms[_DYN_LENGTH$1 ] === 2 ? "0" + ms : ms;
|
|
2156
|
+
sec = sec[_DYN_LENGTH$1 ] < 2 ? "0" + sec : sec;
|
|
2157
|
+
min = min[_DYN_LENGTH$1 ] < 2 ? "0" + min : min;
|
|
2158
|
+
hour = hour[_DYN_LENGTH$1 ] < 2 ? "0" + hour : hour;
|
|
2159
|
+
return (days > 0 ? days + "." : strEmpty) + hour + ":" + min + ":" + sec + "." + ms;
|
|
2160
|
+
}
|
|
2161
|
+
|
|
2162
|
+
var RequestHeaders = createValueMap({
|
|
2163
|
+
requestContextHeader: [0 , "Request-Context"],
|
|
2164
|
+
requestContextTargetKey: [1 , "appId"],
|
|
2165
|
+
requestContextAppIdFormat: [2 , "appId=cid-v1:"],
|
|
2166
|
+
requestIdHeader: [3 , "Request-Id"],
|
|
2167
|
+
traceParentHeader: [4 , "traceparent"],
|
|
2168
|
+
traceStateHeader: [5 , "tracestate"],
|
|
2169
|
+
sdkContextHeader: [6 , "Sdk-Context"],
|
|
2170
|
+
sdkContextHeaderAppIdRequest: [7 , "appId"],
|
|
2171
|
+
requestContextHeaderLowerCase: [8 , "request-context"]
|
|
2172
|
+
});
|
|
2173
|
+
|
|
2174
|
+
var StorageType = createEnumStyle({
|
|
2175
|
+
LocalStorage: 0 ,
|
|
2176
|
+
SessionStorage: 1
|
|
2177
|
+
});
|
|
2178
|
+
createEnumStyle({
|
|
2179
|
+
AI: 0 ,
|
|
2180
|
+
AI_AND_W3C: 1 ,
|
|
2181
|
+
W3C: 2
|
|
2182
|
+
});
|
|
2183
|
+
|
|
2184
|
+
var _canUseSessionStorage = undefined;
|
|
2185
|
+
function _getVerifiedStorageObject(storageType) {
|
|
2186
|
+
try {
|
|
2187
|
+
if (isNullOrUndefined(getGlobal())) {
|
|
2188
|
+
return null;
|
|
2189
|
+
}
|
|
2190
|
+
var uid = (new Date)[_DYN_TO_STRING$1 ]();
|
|
2191
|
+
var storage = getGlobalInst(storageType === StorageType.LocalStorage ? "localStorage" : "sessionStorage");
|
|
2192
|
+
storage.setItem(uid, uid);
|
|
2193
|
+
var fail = storage.getItem(uid) !== uid;
|
|
2194
|
+
storage[_DYN_REMOVE_ITEM ](uid);
|
|
2195
|
+
if (!fail) {
|
|
2196
|
+
return storage;
|
|
2197
|
+
}
|
|
2198
|
+
}
|
|
2199
|
+
catch (exception) {
|
|
2200
|
+
}
|
|
2201
|
+
return null;
|
|
2202
|
+
}
|
|
2203
|
+
function _getSessionStorageObject() {
|
|
2204
|
+
if (utlCanUseSessionStorage()) {
|
|
2205
|
+
return _getVerifiedStorageObject(StorageType.SessionStorage);
|
|
2206
|
+
}
|
|
2207
|
+
return null;
|
|
2208
|
+
}
|
|
2209
|
+
function utlCanUseSessionStorage(reset) {
|
|
2210
|
+
if (reset || _canUseSessionStorage === undefined) {
|
|
2211
|
+
_canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);
|
|
2212
|
+
}
|
|
2213
|
+
return _canUseSessionStorage;
|
|
2214
|
+
}
|
|
2215
|
+
function utlGetSessionStorage(logger, name) {
|
|
2216
|
+
var storage = _getSessionStorageObject();
|
|
2217
|
+
if (storage !== null) {
|
|
2218
|
+
try {
|
|
2219
|
+
return storage.getItem(name);
|
|
2220
|
+
}
|
|
2221
|
+
catch (e) {
|
|
2222
|
+
_canUseSessionStorage = false;
|
|
2223
|
+
_throwInternal(logger, 2 , 2 , "Browser failed read of session storage. " + getExceptionName(e), { exception: dumpObj(e) });
|
|
2224
|
+
}
|
|
2225
|
+
}
|
|
2226
|
+
return null;
|
|
2227
|
+
}
|
|
2228
|
+
function utlSetSessionStorage(logger, name, data) {
|
|
2229
|
+
var storage = _getSessionStorageObject();
|
|
2230
|
+
if (storage !== null) {
|
|
2231
|
+
try {
|
|
2232
|
+
storage.setItem(name, data);
|
|
2233
|
+
return true;
|
|
2234
|
+
}
|
|
2235
|
+
catch (e) {
|
|
2236
|
+
_canUseSessionStorage = false;
|
|
2237
|
+
_throwInternal(logger, 2 , 4 , "Browser failed write to session storage. " + getExceptionName(e), { exception: dumpObj(e) });
|
|
2238
|
+
}
|
|
2239
|
+
}
|
|
2240
|
+
return false;
|
|
2241
|
+
}
|
|
2242
|
+
|
|
2243
|
+
var _a$1;
|
|
2244
|
+
function dataSanitizeKeyAndAddUniqueness(logger, key, map) {
|
|
2245
|
+
var origLength = key[_DYN_LENGTH$1 ];
|
|
2246
|
+
var field = dataSanitizeKey(logger, key);
|
|
2247
|
+
if (field[_DYN_LENGTH$1 ] !== origLength) {
|
|
2069
2248
|
var i = 0;
|
|
2070
2249
|
var uniqueField = field;
|
|
2071
2250
|
while (map[uniqueField] !== undefined) {
|
|
2072
2251
|
i++;
|
|
2073
|
-
uniqueField = field
|
|
2252
|
+
uniqueField = field[_DYN_SUBSTRING ](0, 150 - 3) + dsPadNumber(i);
|
|
2074
2253
|
}
|
|
2075
2254
|
field = uniqueField;
|
|
2076
2255
|
}
|
|
@@ -2079,9 +2258,9 @@
|
|
|
2079
2258
|
function dataSanitizeKey(logger, name) {
|
|
2080
2259
|
var nameTrunc;
|
|
2081
2260
|
if (name) {
|
|
2082
|
-
name = strTrim(name
|
|
2083
|
-
if (name
|
|
2084
|
-
nameTrunc = name
|
|
2261
|
+
name = strTrim(name[_DYN_TO_STRING$1 ]());
|
|
2262
|
+
if (name[_DYN_LENGTH$1 ] > 150 ) {
|
|
2263
|
+
nameTrunc = name[_DYN_SUBSTRING ](0, 150 );
|
|
2085
2264
|
_throwInternal(logger, 2 , 57 , "name is too long. It has been truncated to " + 150 + " characters.", { name: name }, true);
|
|
2086
2265
|
}
|
|
2087
2266
|
}
|
|
@@ -2093,8 +2272,8 @@
|
|
|
2093
2272
|
if (value) {
|
|
2094
2273
|
maxLength = maxLength ? maxLength : 1024 ;
|
|
2095
2274
|
value = strTrim(value);
|
|
2096
|
-
if (value.toString()
|
|
2097
|
-
valueTrunc = value
|
|
2275
|
+
if (value.toString()[_DYN_LENGTH$1 ] > maxLength) {
|
|
2276
|
+
valueTrunc = value[_DYN_TO_STRING$1 ]()[_DYN_SUBSTRING ](0, maxLength);
|
|
2098
2277
|
_throwInternal(logger, 2 , 61 , "string value is too long. It has been truncated to " + maxLength + " characters.", { value: value }, true);
|
|
2099
2278
|
}
|
|
2100
2279
|
}
|
|
@@ -2106,8 +2285,8 @@
|
|
|
2106
2285
|
function dataSanitizeMessage(logger, message) {
|
|
2107
2286
|
var messageTrunc;
|
|
2108
2287
|
if (message) {
|
|
2109
|
-
if (message
|
|
2110
|
-
messageTrunc = message
|
|
2288
|
+
if (message[_DYN_LENGTH$1 ] > 32768 ) {
|
|
2289
|
+
messageTrunc = message[_DYN_SUBSTRING ](0, 32768 );
|
|
2111
2290
|
_throwInternal(logger, 2 , 56 , "message is too long, it has been truncated to " + 32768 + " characters.", { message: message }, true);
|
|
2112
2291
|
}
|
|
2113
2292
|
}
|
|
@@ -2117,8 +2296,8 @@
|
|
|
2117
2296
|
var exceptionTrunc;
|
|
2118
2297
|
if (exception) {
|
|
2119
2298
|
var value = "" + exception;
|
|
2120
|
-
if (value
|
|
2121
|
-
exceptionTrunc = value
|
|
2299
|
+
if (value[_DYN_LENGTH$1 ] > 32768 ) {
|
|
2300
|
+
exceptionTrunc = value[_DYN_SUBSTRING ](0, 32768 );
|
|
2122
2301
|
_throwInternal(logger, 2 , 52 , "exception is too long, it has been truncated to " + 32768 + " characters.", { exception: exception }, true);
|
|
2123
2302
|
}
|
|
2124
2303
|
}
|
|
@@ -2130,7 +2309,7 @@
|
|
|
2130
2309
|
objForEachKey(properties, function (prop, value) {
|
|
2131
2310
|
if (isObject(value) && hasJSON()) {
|
|
2132
2311
|
try {
|
|
2133
|
-
value = getJSON()
|
|
2312
|
+
value = getJSON()[_DYN_STRINGIFY$1 ](value);
|
|
2134
2313
|
}
|
|
2135
2314
|
catch (e) {
|
|
2136
2315
|
_throwInternal(logger, 2 , 49 , "custom property is not valid", { exception: e }, true);
|
|
@@ -2156,14 +2335,14 @@
|
|
|
2156
2335
|
return measurements;
|
|
2157
2336
|
}
|
|
2158
2337
|
function dataSanitizeId(logger, id) {
|
|
2159
|
-
return id ? dataSanitizeInput(logger, id, 128 , 69 )
|
|
2338
|
+
return id ? dataSanitizeInput(logger, id, 128 , 69 )[_DYN_TO_STRING$1 ]() : id;
|
|
2160
2339
|
}
|
|
2161
2340
|
function dataSanitizeInput(logger, input, maxLength, _msgId) {
|
|
2162
2341
|
var inputTrunc;
|
|
2163
2342
|
if (input) {
|
|
2164
2343
|
input = strTrim(input);
|
|
2165
|
-
if (input
|
|
2166
|
-
inputTrunc = input
|
|
2344
|
+
if (input[_DYN_LENGTH$1 ] > maxLength) {
|
|
2345
|
+
inputTrunc = input[_DYN_SUBSTRING ](0, maxLength);
|
|
2167
2346
|
_throwInternal(logger, 2 , _msgId, "input is too long, it has been truncated to " + maxLength + " characters.", { data: input }, true);
|
|
2168
2347
|
}
|
|
2169
2348
|
}
|
|
@@ -2171,101 +2350,30 @@
|
|
|
2171
2350
|
}
|
|
2172
2351
|
function dsPadNumber(num) {
|
|
2173
2352
|
var s = "00" + num;
|
|
2174
|
-
return s.substr(s
|
|
2175
|
-
}
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
var HttpMethod = "http.method";
|
|
2199
|
-
var strNotSpecified = "not_specified";
|
|
2200
|
-
|
|
2201
|
-
var StorageType = createEnumStyle({
|
|
2202
|
-
LocalStorage: 0 ,
|
|
2203
|
-
SessionStorage: 1
|
|
2204
|
-
});
|
|
2205
|
-
createEnumStyle({
|
|
2206
|
-
AI: 0 ,
|
|
2207
|
-
AI_AND_W3C: 1 ,
|
|
2208
|
-
W3C: 2
|
|
2209
|
-
});
|
|
2210
|
-
|
|
2211
|
-
var _canUseSessionStorage = undefined;
|
|
2212
|
-
function _getVerifiedStorageObject(storageType) {
|
|
2213
|
-
try {
|
|
2214
|
-
if (isNullOrUndefined(getGlobal())) {
|
|
2215
|
-
return null;
|
|
2216
|
-
}
|
|
2217
|
-
var uid = (new Date).toString();
|
|
2218
|
-
var storage = getGlobalInst(storageType === StorageType.LocalStorage ? "localStorage" : "sessionStorage");
|
|
2219
|
-
storage.setItem(uid, uid);
|
|
2220
|
-
var fail = storage.getItem(uid) !== uid;
|
|
2221
|
-
storage.removeItem(uid);
|
|
2222
|
-
if (!fail) {
|
|
2223
|
-
return storage;
|
|
2224
|
-
}
|
|
2225
|
-
}
|
|
2226
|
-
catch (exception) {
|
|
2227
|
-
}
|
|
2228
|
-
return null;
|
|
2229
|
-
}
|
|
2230
|
-
function _getSessionStorageObject() {
|
|
2231
|
-
if (utlCanUseSessionStorage()) {
|
|
2232
|
-
return _getVerifiedStorageObject(StorageType.SessionStorage);
|
|
2233
|
-
}
|
|
2234
|
-
return null;
|
|
2235
|
-
}
|
|
2236
|
-
function utlCanUseSessionStorage(reset) {
|
|
2237
|
-
if (reset || _canUseSessionStorage === undefined) {
|
|
2238
|
-
_canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);
|
|
2239
|
-
}
|
|
2240
|
-
return _canUseSessionStorage;
|
|
2241
|
-
}
|
|
2242
|
-
function utlGetSessionStorage(logger, name) {
|
|
2243
|
-
var storage = _getSessionStorageObject();
|
|
2244
|
-
if (storage !== null) {
|
|
2245
|
-
try {
|
|
2246
|
-
return storage.getItem(name);
|
|
2247
|
-
}
|
|
2248
|
-
catch (e) {
|
|
2249
|
-
_canUseSessionStorage = false;
|
|
2250
|
-
_throwInternal(logger, 2 , 2 , "Browser failed read of session storage. " + getExceptionName(e), { exception: dumpObj(e) });
|
|
2251
|
-
}
|
|
2252
|
-
}
|
|
2253
|
-
return null;
|
|
2254
|
-
}
|
|
2255
|
-
function utlSetSessionStorage(logger, name, data) {
|
|
2256
|
-
var storage = _getSessionStorageObject();
|
|
2257
|
-
if (storage !== null) {
|
|
2258
|
-
try {
|
|
2259
|
-
storage.setItem(name, data);
|
|
2260
|
-
return true;
|
|
2261
|
-
}
|
|
2262
|
-
catch (e) {
|
|
2263
|
-
_canUseSessionStorage = false;
|
|
2264
|
-
_throwInternal(logger, 2 , 4 , "Browser failed write to session storage. " + getExceptionName(e), { exception: dumpObj(e) });
|
|
2265
|
-
}
|
|
2266
|
-
}
|
|
2267
|
-
return false;
|
|
2268
|
-
}
|
|
2353
|
+
return s.substr(s[_DYN_LENGTH$1 ] - 3);
|
|
2354
|
+
}
|
|
2355
|
+
(_a$1 = {
|
|
2356
|
+
MAX_NAME_LENGTH: 150 ,
|
|
2357
|
+
MAX_ID_LENGTH: 128 ,
|
|
2358
|
+
MAX_PROPERTY_LENGTH: 8192 ,
|
|
2359
|
+
MAX_STRING_LENGTH: 1024 ,
|
|
2360
|
+
MAX_URL_LENGTH: 2048 ,
|
|
2361
|
+
MAX_MESSAGE_LENGTH: 32768 ,
|
|
2362
|
+
MAX_EXCEPTION_LENGTH: 32768
|
|
2363
|
+
},
|
|
2364
|
+
_a$1[_DYN_SANITIZE_KEY_AND_ADD2 ] = dataSanitizeKeyAndAddUniqueness,
|
|
2365
|
+
_a$1.sanitizeKey = dataSanitizeKey,
|
|
2366
|
+
_a$1.sanitizeString = dataSanitizeString,
|
|
2367
|
+
_a$1.sanitizeUrl = dataSanitizeUrl,
|
|
2368
|
+
_a$1.sanitizeMessage = dataSanitizeMessage,
|
|
2369
|
+
_a$1[_DYN_SANITIZE_EXCEPTION ] = dataSanitizeException,
|
|
2370
|
+
_a$1[_DYN_SANITIZE_PROPERTIES ] = dataSanitizeProperties,
|
|
2371
|
+
_a$1[_DYN_SANITIZE_MEASUREMENT3 ] = dataSanitizeMeasurements,
|
|
2372
|
+
_a$1.sanitizeId = dataSanitizeId,
|
|
2373
|
+
_a$1.sanitizeInput = dataSanitizeInput,
|
|
2374
|
+
_a$1.padNumber = dsPadNumber,
|
|
2375
|
+
_a$1.trim = strTrim,
|
|
2376
|
+
_a$1);
|
|
2269
2377
|
|
|
2270
2378
|
var _document = getDocument() || {};
|
|
2271
2379
|
var _htmlAnchorIdx = 0;
|
|
@@ -2282,7 +2390,7 @@
|
|
|
2282
2390
|
}
|
|
2283
2391
|
tempAnchor.href = url;
|
|
2284
2392
|
anchorIdx++;
|
|
2285
|
-
if (anchorIdx >= anchorCache
|
|
2393
|
+
if (anchorIdx >= anchorCache[_DYN_LENGTH$1 ]) {
|
|
2286
2394
|
anchorIdx = 0;
|
|
2287
2395
|
}
|
|
2288
2396
|
_htmlAnchorIdx = anchorIdx;
|
|
@@ -2292,7 +2400,7 @@
|
|
|
2292
2400
|
var fullHost = urlParseFullHost(url, inclPort) || "";
|
|
2293
2401
|
if (fullHost) {
|
|
2294
2402
|
var match = fullHost.match(/(www[0-9]?\.)?(.[^/:]+)(\:[\d]+)?/i);
|
|
2295
|
-
if (match != null && match
|
|
2403
|
+
if (match != null && match[_DYN_LENGTH$1 ] > 3 && isString(match[2]) && match[2][_DYN_LENGTH$1 ] > 0) {
|
|
2296
2404
|
return match[2] + (match[3] || "");
|
|
2297
2405
|
}
|
|
2298
2406
|
}
|
|
@@ -2302,10 +2410,10 @@
|
|
|
2302
2410
|
var result = null;
|
|
2303
2411
|
if (url) {
|
|
2304
2412
|
var match = url.match(/(\w*):\/\/(.[^/:]+)(\:[\d]+)?/i);
|
|
2305
|
-
if (match != null && match
|
|
2413
|
+
if (match != null && match[_DYN_LENGTH$1 ] > 2 && isString(match[2]) && match[2][_DYN_LENGTH$1 ] > 0) {
|
|
2306
2414
|
result = match[2] || "";
|
|
2307
|
-
if (inclPort && match
|
|
2308
|
-
var protocol = (match[1] || "")
|
|
2415
|
+
if (inclPort && match[_DYN_LENGTH$1 ] > 2) {
|
|
2416
|
+
var protocol = (match[1] || "")[_DYN_TO_LOWER_CASE ]();
|
|
2309
2417
|
var port = match[3] || "";
|
|
2310
2418
|
if (protocol === "http" && port === ":80") {
|
|
2311
2419
|
port = "";
|
|
@@ -2321,25 +2429,25 @@
|
|
|
2321
2429
|
}
|
|
2322
2430
|
|
|
2323
2431
|
var _internalEndpoints = [
|
|
2324
|
-
|
|
2325
|
-
"https://breeze.aimon.applicationinsights.io
|
|
2326
|
-
"https://dc-int.services.visualstudio.com
|
|
2432
|
+
DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,
|
|
2433
|
+
"https://breeze.aimon.applicationinsights.io" + DEFAULT_BREEZE_PATH,
|
|
2434
|
+
"https://dc-int.services.visualstudio.com" + DEFAULT_BREEZE_PATH
|
|
2327
2435
|
];
|
|
2328
2436
|
function isInternalApplicationInsightsEndpoint(endpointUrl) {
|
|
2329
|
-
return arrIndexOf(_internalEndpoints, endpointUrl
|
|
2437
|
+
return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE ]()) !== -1;
|
|
2330
2438
|
}
|
|
2331
2439
|
function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {
|
|
2332
2440
|
var target, name = commandName, data = commandName;
|
|
2333
|
-
if (absoluteUrl && absoluteUrl
|
|
2441
|
+
if (absoluteUrl && absoluteUrl[_DYN_LENGTH$1 ] > 0) {
|
|
2334
2442
|
var parsedUrl = urlParseUrl(absoluteUrl);
|
|
2335
2443
|
target = parsedUrl.host;
|
|
2336
2444
|
if (!name) {
|
|
2337
|
-
if (parsedUrl
|
|
2338
|
-
var pathName = (parsedUrl.pathname
|
|
2445
|
+
if (parsedUrl[_DYN_PATHNAME ] != null) {
|
|
2446
|
+
var pathName = (parsedUrl.pathname[_DYN_LENGTH$1 ] === 0) ? "/" : parsedUrl[_DYN_PATHNAME ];
|
|
2339
2447
|
if (pathName.charAt(0) !== "/") {
|
|
2340
2448
|
pathName = "/" + pathName;
|
|
2341
2449
|
}
|
|
2342
|
-
data = parsedUrl
|
|
2450
|
+
data = parsedUrl[_DYN_PATHNAME ];
|
|
2343
2451
|
name = dataSanitizeString(logger, method ? method + " " + pathName : pathName);
|
|
2344
2452
|
}
|
|
2345
2453
|
else {
|
|
@@ -2365,7 +2473,7 @@
|
|
|
2365
2473
|
_self.ver = 1;
|
|
2366
2474
|
_self.sampleRate = 100.0;
|
|
2367
2475
|
_self.tags = {};
|
|
2368
|
-
_self
|
|
2476
|
+
_self[_DYN_NAME$1 ] = dataSanitizeString(logger, name) || strNotSpecified;
|
|
2369
2477
|
_self.data = data;
|
|
2370
2478
|
_self.time = toISOString(new Date());
|
|
2371
2479
|
_self.aiDataContract = {
|
|
@@ -2392,9 +2500,9 @@
|
|
|
2392
2500
|
};
|
|
2393
2501
|
var _self = this;
|
|
2394
2502
|
_self.ver = 2;
|
|
2395
|
-
_self
|
|
2396
|
-
_self
|
|
2397
|
-
_self
|
|
2503
|
+
_self[_DYN_NAME$1 ] = dataSanitizeString(logger, name) || strNotSpecified;
|
|
2504
|
+
_self[_DYN_PROPERTIES ] = dataSanitizeProperties(logger, properties);
|
|
2505
|
+
_self[_DYN_MEASUREMENTS$1 ] = dataSanitizeMeasurements(logger, measurements);
|
|
2398
2506
|
}
|
|
2399
2507
|
Event.envelopeType = "Microsoft.ApplicationInsights.{0}.Event";
|
|
2400
2508
|
Event.dataType = "EventData";
|
|
@@ -2411,11 +2519,11 @@
|
|
|
2411
2519
|
function _stringify(value, convertToString) {
|
|
2412
2520
|
var result = value;
|
|
2413
2521
|
if (result && !isString(result)) {
|
|
2414
|
-
if (JSON && JSON
|
|
2415
|
-
result = JSON
|
|
2522
|
+
if (JSON && JSON[_DYN_STRINGIFY$1 ]) {
|
|
2523
|
+
result = JSON[_DYN_STRINGIFY$1 ](value);
|
|
2416
2524
|
if (convertToString && (!result || result === "{}")) {
|
|
2417
|
-
if (isFunction(value
|
|
2418
|
-
result = value
|
|
2525
|
+
if (isFunction(value[_DYN_TO_STRING$1 ])) {
|
|
2526
|
+
result = value[_DYN_TO_STRING$1 ]();
|
|
2419
2527
|
}
|
|
2420
2528
|
else {
|
|
2421
2529
|
result = "" + value;
|
|
@@ -2441,7 +2549,7 @@
|
|
|
2441
2549
|
evtMessage = evtMessage + " @" + (theEvent["filename"] || "") + ":" + (theEvent["lineno"] || "?") + ":" + (theEvent["colno"] || "?");
|
|
2442
2550
|
}
|
|
2443
2551
|
}
|
|
2444
|
-
if (errorType && errorType !== "String" && errorType !== "Object" && errorType !== "Error" && (evtMessage || "")
|
|
2552
|
+
if (errorType && errorType !== "String" && errorType !== "Object" && errorType !== "Error" && (evtMessage || "")[_DYN_INDEX_OF ](errorType) === -1) {
|
|
2445
2553
|
evtMessage = errorType + ": " + evtMessage;
|
|
2446
2554
|
}
|
|
2447
2555
|
return evtMessage || "";
|
|
@@ -2479,7 +2587,7 @@
|
|
|
2479
2587
|
src = "" + src;
|
|
2480
2588
|
}
|
|
2481
2589
|
}
|
|
2482
|
-
var items = src
|
|
2590
|
+
var items = src[_DYN_SPLIT ]("\n");
|
|
2483
2591
|
return {
|
|
2484
2592
|
src: src,
|
|
2485
2593
|
obj: items
|
|
@@ -2487,8 +2595,8 @@
|
|
|
2487
2595
|
}
|
|
2488
2596
|
function _getOperaStack(errorMessage) {
|
|
2489
2597
|
var stack = [];
|
|
2490
|
-
var lines = errorMessage
|
|
2491
|
-
for (var lp = 0; lp < lines
|
|
2598
|
+
var lines = errorMessage[_DYN_SPLIT ]("\n");
|
|
2599
|
+
for (var lp = 0; lp < lines[_DYN_LENGTH$1 ]; lp++) {
|
|
2492
2600
|
var entry = lines[lp];
|
|
2493
2601
|
if (lines[lp + 1]) {
|
|
2494
2602
|
entry += "@" + lines[lp + 1];
|
|
@@ -2521,7 +2629,7 @@
|
|
|
2521
2629
|
details = errorObj[strStackDetails];
|
|
2522
2630
|
}
|
|
2523
2631
|
else if (window && window["opera"] && errorObj[strMessage]) {
|
|
2524
|
-
details = _getOperaStack(errorObj
|
|
2632
|
+
details = _getOperaStack(errorObj[_DYN_MESSAGE ]);
|
|
2525
2633
|
}
|
|
2526
2634
|
else if (isString(errorObj)) {
|
|
2527
2635
|
details = _convertStackObj(errorObj);
|
|
@@ -2565,28 +2673,28 @@
|
|
|
2565
2673
|
function _parseStack(stack) {
|
|
2566
2674
|
var parsedStack;
|
|
2567
2675
|
var frames = stack.obj;
|
|
2568
|
-
if (frames && frames
|
|
2676
|
+
if (frames && frames[_DYN_LENGTH$1 ] > 0) {
|
|
2569
2677
|
parsedStack = [];
|
|
2570
2678
|
var level_1 = 0;
|
|
2571
2679
|
var totalSizeInBytes_1 = 0;
|
|
2572
2680
|
arrForEach(frames, function (frame) {
|
|
2573
|
-
var theFrame = frame
|
|
2681
|
+
var theFrame = frame[_DYN_TO_STRING$1 ]();
|
|
2574
2682
|
if (_StackFrame.regex.test(theFrame)) {
|
|
2575
2683
|
var parsedFrame = new _StackFrame(theFrame, level_1++);
|
|
2576
|
-
totalSizeInBytes_1 += parsedFrame
|
|
2684
|
+
totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES ];
|
|
2577
2685
|
parsedStack.push(parsedFrame);
|
|
2578
2686
|
}
|
|
2579
2687
|
});
|
|
2580
2688
|
var exceptionParsedStackThreshold = 32 * 1024;
|
|
2581
2689
|
if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {
|
|
2582
2690
|
var left = 0;
|
|
2583
|
-
var right = parsedStack
|
|
2691
|
+
var right = parsedStack[_DYN_LENGTH$1 ] - 1;
|
|
2584
2692
|
var size = 0;
|
|
2585
2693
|
var acceptedLeft = left;
|
|
2586
2694
|
var acceptedRight = right;
|
|
2587
2695
|
while (left < right) {
|
|
2588
|
-
var lSize = parsedStack[left]
|
|
2589
|
-
var rSize = parsedStack[right]
|
|
2696
|
+
var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES ];
|
|
2697
|
+
var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES ];
|
|
2590
2698
|
size += lSize + rSize;
|
|
2591
2699
|
if (size > exceptionParsedStackThreshold) {
|
|
2592
2700
|
var howMany = acceptedRight - acceptedLeft + 1;
|
|
@@ -2605,12 +2713,12 @@
|
|
|
2605
2713
|
function _getErrorType(errorType) {
|
|
2606
2714
|
var typeName = "";
|
|
2607
2715
|
if (errorType) {
|
|
2608
|
-
typeName = errorType.typeName || errorType
|
|
2716
|
+
typeName = errorType.typeName || errorType[_DYN_NAME$1 ] || "";
|
|
2609
2717
|
if (!typeName) {
|
|
2610
2718
|
try {
|
|
2611
2719
|
var funcNameRegex = /function (.{1,200})\(/;
|
|
2612
|
-
var results = (funcNameRegex).exec((errorType).constructor
|
|
2613
|
-
typeName = (results && results
|
|
2720
|
+
var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING$1 ]());
|
|
2721
|
+
typeName = (results && results[_DYN_LENGTH$1 ] > 1) ? results[1] : "";
|
|
2614
2722
|
}
|
|
2615
2723
|
catch (e) {
|
|
2616
2724
|
}
|
|
@@ -2631,7 +2739,7 @@
|
|
|
2631
2739
|
}
|
|
2632
2740
|
result = _stringify(errorObj, true);
|
|
2633
2741
|
}
|
|
2634
|
-
if (result
|
|
2742
|
+
if (result[_DYN_INDEX_OF ](errorType) !== 0 && errorType !== "String") {
|
|
2635
2743
|
return errorType + ":" + result;
|
|
2636
2744
|
}
|
|
2637
2745
|
return result;
|
|
@@ -2657,79 +2765,83 @@
|
|
|
2657
2765
|
if (!properties) {
|
|
2658
2766
|
properties = {};
|
|
2659
2767
|
}
|
|
2660
|
-
_self
|
|
2661
|
-
_self
|
|
2662
|
-
_self
|
|
2768
|
+
_self[_DYN_EXCEPTIONS ] = [new _ExceptionDetails(logger, exception, properties)];
|
|
2769
|
+
_self[_DYN_PROPERTIES ] = dataSanitizeProperties(logger, properties);
|
|
2770
|
+
_self[_DYN_MEASUREMENTS$1 ] = dataSanitizeMeasurements(logger, measurements);
|
|
2663
2771
|
if (severityLevel) {
|
|
2664
|
-
_self
|
|
2772
|
+
_self[_DYN_SEVERITY_LEVEL ] = severityLevel;
|
|
2665
2773
|
}
|
|
2666
2774
|
if (id) {
|
|
2667
2775
|
_self.id = id;
|
|
2668
2776
|
}
|
|
2669
2777
|
}
|
|
2670
2778
|
else {
|
|
2671
|
-
_self
|
|
2672
|
-
_self
|
|
2673
|
-
_self
|
|
2674
|
-
if (exception
|
|
2675
|
-
_self
|
|
2779
|
+
_self[_DYN_EXCEPTIONS ] = exception[_DYN_EXCEPTIONS ] || [];
|
|
2780
|
+
_self[_DYN_PROPERTIES ] = exception[_DYN_PROPERTIES ];
|
|
2781
|
+
_self[_DYN_MEASUREMENTS$1 ] = exception[_DYN_MEASUREMENTS$1 ];
|
|
2782
|
+
if (exception[_DYN_SEVERITY_LEVEL ]) {
|
|
2783
|
+
_self[_DYN_SEVERITY_LEVEL ] = exception[_DYN_SEVERITY_LEVEL ];
|
|
2676
2784
|
}
|
|
2677
2785
|
if (exception.id) {
|
|
2678
2786
|
_self.id = exception.id;
|
|
2679
2787
|
}
|
|
2680
|
-
if (exception
|
|
2681
|
-
_self
|
|
2788
|
+
if (exception[_DYN_PROBLEM_GROUP ]) {
|
|
2789
|
+
_self[_DYN_PROBLEM_GROUP ] = exception[_DYN_PROBLEM_GROUP ];
|
|
2682
2790
|
}
|
|
2683
|
-
if (!isNullOrUndefined(exception
|
|
2684
|
-
_self
|
|
2791
|
+
if (!isNullOrUndefined(exception[_DYN_IS_MANUAL ])) {
|
|
2792
|
+
_self[_DYN_IS_MANUAL ] = exception[_DYN_IS_MANUAL ];
|
|
2685
2793
|
}
|
|
2686
2794
|
}
|
|
2687
2795
|
}
|
|
2688
2796
|
Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {
|
|
2797
|
+
var _a;
|
|
2689
2798
|
var errorType = _getErrorType(error || evt || message);
|
|
2690
|
-
return {
|
|
2691
|
-
|
|
2692
|
-
url
|
|
2693
|
-
lineNumber
|
|
2694
|
-
columnNumber
|
|
2695
|
-
error
|
|
2696
|
-
evt
|
|
2697
|
-
|
|
2698
|
-
stackDetails
|
|
2699
|
-
errorSrc
|
|
2700
|
-
|
|
2799
|
+
return _a = {},
|
|
2800
|
+
_a[_DYN_MESSAGE ] = _formatMessage(message, errorType),
|
|
2801
|
+
_a.url = url,
|
|
2802
|
+
_a.lineNumber = lineNumber,
|
|
2803
|
+
_a.columnNumber = columnNumber,
|
|
2804
|
+
_a.error = _formatErrorCode(error || evt || message),
|
|
2805
|
+
_a.evt = _formatErrorCode(evt || message),
|
|
2806
|
+
_a[_DYN_TYPE_NAME ] = errorType,
|
|
2807
|
+
_a.stackDetails = _getStackFromErrorObj(stack || error || evt),
|
|
2808
|
+
_a.errorSrc = errorSrc,
|
|
2809
|
+
_a;
|
|
2701
2810
|
};
|
|
2702
2811
|
Exception.CreateFromInterface = function (logger, exception, properties, measurements) {
|
|
2703
|
-
var exceptions = exception
|
|
2704
|
-
&& arrMap(exception
|
|
2812
|
+
var exceptions = exception[_DYN_EXCEPTIONS ]
|
|
2813
|
+
&& arrMap(exception[_DYN_EXCEPTIONS ], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 ](logger, ex); });
|
|
2705
2814
|
var exceptionData = new Exception(logger, __assignFn(__assignFn({}, exception), { exceptions: exceptions }), properties, measurements);
|
|
2706
2815
|
return exceptionData;
|
|
2707
2816
|
};
|
|
2708
2817
|
Exception.prototype.toInterface = function () {
|
|
2709
|
-
var _a
|
|
2818
|
+
var _a;
|
|
2819
|
+
var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;
|
|
2710
2820
|
var exceptionDetailsInterface = exceptions instanceof Array
|
|
2711
2821
|
&& arrMap(exceptions, function (exception) { return exception.toInterface(); })
|
|
2712
2822
|
|| undefined;
|
|
2713
|
-
return {
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2823
|
+
return _a = {
|
|
2824
|
+
ver: "4.0"
|
|
2825
|
+
},
|
|
2826
|
+
_a[_DYN_EXCEPTIONS ] = exceptionDetailsInterface,
|
|
2827
|
+
_a.severityLevel = severityLevel,
|
|
2828
|
+
_a.properties = properties,
|
|
2829
|
+
_a.measurements = measurements,
|
|
2830
|
+
_a.problemGroup = problemGroup,
|
|
2831
|
+
_a.id = id,
|
|
2832
|
+
_a.isManual = isManual,
|
|
2833
|
+
_a;
|
|
2723
2834
|
};
|
|
2724
2835
|
Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {
|
|
2836
|
+
var _a;
|
|
2725
2837
|
return {
|
|
2726
2838
|
exceptions: [
|
|
2727
|
-
{
|
|
2728
|
-
|
|
2729
|
-
message
|
|
2730
|
-
stack
|
|
2731
|
-
typeName
|
|
2732
|
-
|
|
2839
|
+
(_a = {},
|
|
2840
|
+
_a[_DYN_HAS_FULL_STACK ] = true,
|
|
2841
|
+
_a.message = message,
|
|
2842
|
+
_a.stack = details,
|
|
2843
|
+
_a.typeName = typeName,
|
|
2844
|
+
_a)
|
|
2733
2845
|
]
|
|
2734
2846
|
};
|
|
2735
2847
|
};
|
|
@@ -2756,43 +2868,45 @@
|
|
|
2756
2868
|
if (!isError(error)) {
|
|
2757
2869
|
error = error[strError] || evt || error;
|
|
2758
2870
|
}
|
|
2759
|
-
_self
|
|
2760
|
-
_self
|
|
2871
|
+
_self[_DYN_TYPE_NAME ] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;
|
|
2872
|
+
_self[_DYN_MESSAGE ] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME ])) || strNotSpecified;
|
|
2761
2873
|
var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);
|
|
2762
|
-
_self
|
|
2874
|
+
_self[_DYN_PARSED_STACK ] = _parseStack(stack);
|
|
2763
2875
|
_self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));
|
|
2764
|
-
_self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack
|
|
2876
|
+
_self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH$1 ] > 0;
|
|
2765
2877
|
if (properties) {
|
|
2766
|
-
properties
|
|
2878
|
+
properties[_DYN_TYPE_NAME ] = properties[_DYN_TYPE_NAME ] || _self[_DYN_TYPE_NAME ];
|
|
2767
2879
|
}
|
|
2768
2880
|
}
|
|
2769
2881
|
else {
|
|
2770
|
-
_self
|
|
2771
|
-
_self
|
|
2882
|
+
_self[_DYN_TYPE_NAME ] = exception[_DYN_TYPE_NAME ];
|
|
2883
|
+
_self[_DYN_MESSAGE ] = exception[_DYN_MESSAGE ];
|
|
2772
2884
|
_self[strStack] = exception[strStack];
|
|
2773
|
-
_self
|
|
2774
|
-
_self
|
|
2885
|
+
_self[_DYN_PARSED_STACK ] = exception[_DYN_PARSED_STACK ] || [];
|
|
2886
|
+
_self[_DYN_HAS_FULL_STACK ] = exception[_DYN_HAS_FULL_STACK ];
|
|
2775
2887
|
}
|
|
2776
2888
|
}
|
|
2777
2889
|
_ExceptionDetails.prototype.toInterface = function () {
|
|
2890
|
+
var _a;
|
|
2778
2891
|
var _self = this;
|
|
2779
|
-
var parsedStack = _self
|
|
2780
|
-
&& arrMap(_self
|
|
2781
|
-
var exceptionDetailsInterface = {
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2892
|
+
var parsedStack = _self[_DYN_PARSED_STACK ] instanceof Array
|
|
2893
|
+
&& arrMap(_self[_DYN_PARSED_STACK ], function (frame) { return frame.toInterface(); });
|
|
2894
|
+
var exceptionDetailsInterface = (_a = {
|
|
2895
|
+
id: _self.id,
|
|
2896
|
+
outerId: _self.outerId,
|
|
2897
|
+
typeName: _self[_DYN_TYPE_NAME ],
|
|
2898
|
+
message: _self[_DYN_MESSAGE ],
|
|
2899
|
+
hasFullStack: _self[_DYN_HAS_FULL_STACK ],
|
|
2900
|
+
stack: _self[strStack]
|
|
2901
|
+
},
|
|
2902
|
+
_a[_DYN_PARSED_STACK ] = parsedStack || undefined,
|
|
2903
|
+
_a);
|
|
2790
2904
|
return exceptionDetailsInterface;
|
|
2791
2905
|
};
|
|
2792
2906
|
_ExceptionDetails.CreateFromInterface = function (logger, exception) {
|
|
2793
|
-
var parsedStack = (exception
|
|
2794
|
-
&& arrMap(exception
|
|
2795
|
-
|| exception
|
|
2907
|
+
var parsedStack = (exception[_DYN_PARSED_STACK ] instanceof Array
|
|
2908
|
+
&& arrMap(exception[_DYN_PARSED_STACK ], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 ](frame); }))
|
|
2909
|
+
|| exception[_DYN_PARSED_STACK ];
|
|
2796
2910
|
var exceptionDetails = new _ExceptionDetails(logger, __assignFn(__assignFn({}, exception), { parsedStack: parsedStack }));
|
|
2797
2911
|
return exceptionDetails;
|
|
2798
2912
|
};
|
|
@@ -2808,35 +2922,35 @@
|
|
|
2808
2922
|
line: 0
|
|
2809
2923
|
};
|
|
2810
2924
|
var _self = this;
|
|
2811
|
-
_self
|
|
2925
|
+
_self[_DYN_SIZE_IN_BYTES ] = 0;
|
|
2812
2926
|
if (typeof sourceFrame === "string") {
|
|
2813
2927
|
var frame = sourceFrame;
|
|
2814
|
-
_self
|
|
2815
|
-
_self
|
|
2816
|
-
_self
|
|
2817
|
-
_self
|
|
2818
|
-
_self
|
|
2928
|
+
_self[_DYN_LEVEL ] = level;
|
|
2929
|
+
_self[_DYN_METHOD ] = NoMethod;
|
|
2930
|
+
_self[_DYN_ASSEMBLY ] = strTrim(frame);
|
|
2931
|
+
_self[_DYN_FILE_NAME ] = "";
|
|
2932
|
+
_self[_DYN_LINE ] = 0;
|
|
2819
2933
|
var matches = frame.match(_StackFrame.regex);
|
|
2820
|
-
if (matches && matches
|
|
2821
|
-
_self
|
|
2822
|
-
_self
|
|
2823
|
-
_self
|
|
2934
|
+
if (matches && matches[_DYN_LENGTH$1 ] >= 5) {
|
|
2935
|
+
_self[_DYN_METHOD ] = strTrim(matches[2]) || _self[_DYN_METHOD ];
|
|
2936
|
+
_self[_DYN_FILE_NAME ] = strTrim(matches[4]);
|
|
2937
|
+
_self[_DYN_LINE ] = parseInt(matches[5]) || 0;
|
|
2824
2938
|
}
|
|
2825
2939
|
}
|
|
2826
2940
|
else {
|
|
2827
|
-
_self
|
|
2828
|
-
_self
|
|
2829
|
-
_self
|
|
2830
|
-
_self
|
|
2831
|
-
_self
|
|
2832
|
-
_self
|
|
2833
|
-
}
|
|
2834
|
-
_self.sizeInBytes += _self.method
|
|
2835
|
-
_self.sizeInBytes += _self.fileName
|
|
2836
|
-
_self.sizeInBytes += _self.assembly
|
|
2837
|
-
_self
|
|
2838
|
-
_self.sizeInBytes += _self.level.toString()
|
|
2839
|
-
_self.sizeInBytes += _self.line.toString()
|
|
2941
|
+
_self[_DYN_LEVEL ] = sourceFrame[_DYN_LEVEL ];
|
|
2942
|
+
_self[_DYN_METHOD ] = sourceFrame[_DYN_METHOD ];
|
|
2943
|
+
_self[_DYN_ASSEMBLY ] = sourceFrame[_DYN_ASSEMBLY ];
|
|
2944
|
+
_self[_DYN_FILE_NAME ] = sourceFrame[_DYN_FILE_NAME ];
|
|
2945
|
+
_self[_DYN_LINE ] = sourceFrame[_DYN_LINE ];
|
|
2946
|
+
_self[_DYN_SIZE_IN_BYTES ] = 0;
|
|
2947
|
+
}
|
|
2948
|
+
_self.sizeInBytes += _self.method[_DYN_LENGTH$1 ];
|
|
2949
|
+
_self.sizeInBytes += _self.fileName[_DYN_LENGTH$1 ];
|
|
2950
|
+
_self.sizeInBytes += _self.assembly[_DYN_LENGTH$1 ];
|
|
2951
|
+
_self[_DYN_SIZE_IN_BYTES ] += _StackFrame.baseSize;
|
|
2952
|
+
_self.sizeInBytes += _self.level.toString()[_DYN_LENGTH$1 ];
|
|
2953
|
+
_self.sizeInBytes += _self.line.toString()[_DYN_LENGTH$1 ];
|
|
2840
2954
|
}
|
|
2841
2955
|
_StackFrame.CreateFromInterface = function (frame) {
|
|
2842
2956
|
return new _StackFrame(frame, null );
|
|
@@ -2844,11 +2958,11 @@
|
|
|
2844
2958
|
_StackFrame.prototype.toInterface = function () {
|
|
2845
2959
|
var _self = this;
|
|
2846
2960
|
return {
|
|
2847
|
-
level: _self
|
|
2848
|
-
method: _self
|
|
2849
|
-
assembly: _self
|
|
2850
|
-
fileName: _self
|
|
2851
|
-
line: _self
|
|
2961
|
+
level: _self[_DYN_LEVEL ],
|
|
2962
|
+
method: _self[_DYN_METHOD ],
|
|
2963
|
+
assembly: _self[_DYN_ASSEMBLY ],
|
|
2964
|
+
fileName: _self[_DYN_FILE_NAME ],
|
|
2965
|
+
line: _self[_DYN_LINE ]
|
|
2852
2966
|
};
|
|
2853
2967
|
};
|
|
2854
2968
|
_StackFrame.regex = /^([\s]+at)?[\s]{0,50}([^\@\()]+?)[\s]{0,50}(\@|\()([^\(\n]+):([0-9]+):([0-9]+)(\)?)$/;
|
|
@@ -2885,12 +2999,12 @@
|
|
|
2885
2999
|
dataPoint.count = count > 0 ? count : undefined;
|
|
2886
3000
|
dataPoint.max = isNaN(max) || max === null ? undefined : max;
|
|
2887
3001
|
dataPoint.min = isNaN(min) || min === null ? undefined : min;
|
|
2888
|
-
dataPoint
|
|
3002
|
+
dataPoint[_DYN_NAME$1 ] = dataSanitizeString(logger, name) || strNotSpecified;
|
|
2889
3003
|
dataPoint.value = value;
|
|
2890
3004
|
dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;
|
|
2891
3005
|
_self.metrics = [dataPoint];
|
|
2892
|
-
_self
|
|
2893
|
-
_self
|
|
3006
|
+
_self[_DYN_PROPERTIES ] = dataSanitizeProperties(logger, properties);
|
|
3007
|
+
_self[_DYN_MEASUREMENTS$1 ] = dataSanitizeMeasurements(logger, measurements);
|
|
2894
3008
|
}
|
|
2895
3009
|
Metric.envelopeType = "Microsoft.ApplicationInsights.{0}.Metric";
|
|
2896
3010
|
Metric.dataType = "MetricData";
|
|
@@ -2912,12 +3026,12 @@
|
|
|
2912
3026
|
_self.ver = 2;
|
|
2913
3027
|
_self.id = dataSanitizeId(logger, id);
|
|
2914
3028
|
_self.url = dataSanitizeUrl(logger, url);
|
|
2915
|
-
_self
|
|
3029
|
+
_self[_DYN_NAME$1 ] = dataSanitizeString(logger, name) || strNotSpecified;
|
|
2916
3030
|
if (!isNaN(durationMs)) {
|
|
2917
|
-
_self
|
|
3031
|
+
_self[_DYN_DURATION ] = msToTimeSpan(durationMs);
|
|
2918
3032
|
}
|
|
2919
|
-
_self
|
|
2920
|
-
_self
|
|
3033
|
+
_self[_DYN_PROPERTIES ] = dataSanitizeProperties(logger, properties);
|
|
3034
|
+
_self[_DYN_MEASUREMENTS$1 ] = dataSanitizeMeasurements(logger, measurements);
|
|
2921
3035
|
}
|
|
2922
3036
|
PageView.envelopeType = "Microsoft.ApplicationInsights.{0}.Pageview";
|
|
2923
3037
|
PageView.dataType = "PageviewData";
|
|
@@ -2953,7 +3067,7 @@
|
|
|
2953
3067
|
var _self = this;
|
|
2954
3068
|
_self.ver = 2;
|
|
2955
3069
|
_self.id = id;
|
|
2956
|
-
_self
|
|
3070
|
+
_self[_DYN_DURATION ] = msToTimeSpan(value);
|
|
2957
3071
|
_self.success = success;
|
|
2958
3072
|
_self.resultCode = resultCode + "";
|
|
2959
3073
|
_self.type = dataSanitizeString(logger, requestAPI);
|
|
@@ -2963,9 +3077,9 @@
|
|
|
2963
3077
|
if (correlationContext) {
|
|
2964
3078
|
_self.target = "".concat(_self.target, " | ").concat(correlationContext);
|
|
2965
3079
|
}
|
|
2966
|
-
_self
|
|
2967
|
-
_self
|
|
2968
|
-
_self
|
|
3080
|
+
_self[_DYN_NAME$1 ] = dataSanitizeString(logger, dependencyFields[_DYN_NAME$1 ]);
|
|
3081
|
+
_self[_DYN_PROPERTIES ] = dataSanitizeProperties(logger, properties);
|
|
3082
|
+
_self[_DYN_MEASUREMENTS$1 ] = dataSanitizeMeasurements(logger, measurements);
|
|
2969
3083
|
}
|
|
2970
3084
|
RemoteDependencyData.envelopeType = "Microsoft.ApplicationInsights.{0}.RemoteDependency";
|
|
2971
3085
|
RemoteDependencyData.dataType = "RemoteDependencyData";
|
|
@@ -2983,11 +3097,11 @@
|
|
|
2983
3097
|
var _self = this;
|
|
2984
3098
|
_self.ver = 2;
|
|
2985
3099
|
message = message || strNotSpecified;
|
|
2986
|
-
_self
|
|
2987
|
-
_self
|
|
2988
|
-
_self
|
|
3100
|
+
_self[_DYN_MESSAGE ] = dataSanitizeMessage(logger, message);
|
|
3101
|
+
_self[_DYN_PROPERTIES ] = dataSanitizeProperties(logger, properties);
|
|
3102
|
+
_self[_DYN_MEASUREMENTS$1 ] = dataSanitizeMeasurements(logger, measurements);
|
|
2989
3103
|
if (severityLevel) {
|
|
2990
|
-
_self
|
|
3104
|
+
_self[_DYN_SEVERITY_LEVEL ] = severityLevel;
|
|
2991
3105
|
}
|
|
2992
3106
|
}
|
|
2993
3107
|
Trace.envelopeType = "Microsoft.ApplicationInsights.{0}.Message";
|
|
@@ -3013,15 +3127,15 @@
|
|
|
3013
3127
|
var _self = this;
|
|
3014
3128
|
_self.ver = 2;
|
|
3015
3129
|
_self.url = dataSanitizeUrl(logger, url);
|
|
3016
|
-
_self
|
|
3017
|
-
_self
|
|
3018
|
-
_self
|
|
3130
|
+
_self[_DYN_NAME$1 ] = dataSanitizeString(logger, name) || strNotSpecified;
|
|
3131
|
+
_self[_DYN_PROPERTIES ] = dataSanitizeProperties(logger, properties);
|
|
3132
|
+
_self[_DYN_MEASUREMENTS$1 ] = dataSanitizeMeasurements(logger, measurements);
|
|
3019
3133
|
if (cs4BaseData) {
|
|
3020
3134
|
_self.domProcessing = cs4BaseData.domProcessing;
|
|
3021
|
-
_self
|
|
3135
|
+
_self[_DYN_DURATION ] = cs4BaseData[_DYN_DURATION ];
|
|
3022
3136
|
_self.networkConnect = cs4BaseData.networkConnect;
|
|
3023
3137
|
_self.perfTotal = cs4BaseData.perfTotal;
|
|
3024
|
-
_self
|
|
3138
|
+
_self[_DYN_RECEIVED_RESPONSE ] = cs4BaseData[_DYN_RECEIVED_RESPONSE ];
|
|
3025
3139
|
_self.sentRequest = cs4BaseData.sentRequest;
|
|
3026
3140
|
}
|
|
3027
3141
|
}
|
|
@@ -3126,191 +3240,80 @@
|
|
|
3126
3240
|
|
|
3127
3241
|
var BreezeChannelIdentifier = "AppInsightsChannelPlugin";
|
|
3128
3242
|
|
|
3129
|
-
var
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
var
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
}
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
function SessionStorageSendBuffer(logger, config) {
|
|
3204
|
-
var _this = _super.call(this, logger, config) || this;
|
|
3205
|
-
var _bufferFullMessageSent = false;
|
|
3206
|
-
dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
|
|
3207
|
-
var bufferItems = _getBuffer(SessionStorageSendBuffer.BUFFER_KEY);
|
|
3208
|
-
var notDeliveredItems = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);
|
|
3209
|
-
var buffer = _self._set(bufferItems.concat(notDeliveredItems));
|
|
3210
|
-
if (buffer.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {
|
|
3211
|
-
buffer.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;
|
|
3212
|
-
}
|
|
3213
|
-
_setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);
|
|
3214
|
-
_setBuffer(SessionStorageSendBuffer.BUFFER_KEY, buffer);
|
|
3215
|
-
_self.enqueue = function (payload) {
|
|
3216
|
-
if (_self.count() >= SessionStorageSendBuffer.MAX_BUFFER_SIZE) {
|
|
3217
|
-
if (!_bufferFullMessageSent) {
|
|
3218
|
-
_throwInternal(logger, 2 , 67 , "Maximum buffer size reached: " + _self.count(), true);
|
|
3219
|
-
_bufferFullMessageSent = true;
|
|
3220
|
-
}
|
|
3221
|
-
return;
|
|
3222
|
-
}
|
|
3223
|
-
_base.enqueue(payload);
|
|
3224
|
-
_setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());
|
|
3225
|
-
};
|
|
3226
|
-
_self.clear = function () {
|
|
3227
|
-
_base.clear();
|
|
3228
|
-
_setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());
|
|
3229
|
-
_setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);
|
|
3230
|
-
_bufferFullMessageSent = false;
|
|
3231
|
-
};
|
|
3232
|
-
_self.markAsSent = function (payload) {
|
|
3233
|
-
_setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._set(_removePayloadsFromBuffer(payload, _self._get())));
|
|
3234
|
-
var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);
|
|
3235
|
-
if (sentElements instanceof Array && payload instanceof Array) {
|
|
3236
|
-
sentElements = sentElements.concat(payload);
|
|
3237
|
-
if (sentElements.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {
|
|
3238
|
-
_throwInternal(logger, 1 , 67 , "Sent buffer reached its maximum size: " + sentElements.length, true);
|
|
3239
|
-
sentElements.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;
|
|
3240
|
-
}
|
|
3241
|
-
_setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);
|
|
3242
|
-
}
|
|
3243
|
-
};
|
|
3244
|
-
_self.clearSent = function (payload) {
|
|
3245
|
-
var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);
|
|
3246
|
-
sentElements = _removePayloadsFromBuffer(payload, sentElements);
|
|
3247
|
-
_setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);
|
|
3248
|
-
};
|
|
3249
|
-
function _removePayloadsFromBuffer(payloads, buffer) {
|
|
3250
|
-
var remaining = [];
|
|
3251
|
-
arrForEach(buffer, function (value) {
|
|
3252
|
-
if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {
|
|
3253
|
-
remaining.push(value);
|
|
3254
|
-
}
|
|
3255
|
-
});
|
|
3256
|
-
return remaining;
|
|
3257
|
-
}
|
|
3258
|
-
function _getBuffer(key) {
|
|
3259
|
-
var prefixedKey = key;
|
|
3260
|
-
try {
|
|
3261
|
-
prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + "_" + prefixedKey : prefixedKey;
|
|
3262
|
-
var bufferJson = utlGetSessionStorage(logger, prefixedKey);
|
|
3263
|
-
if (bufferJson) {
|
|
3264
|
-
var buffer_1 = getJSON().parse(bufferJson);
|
|
3265
|
-
if (isString(buffer_1)) {
|
|
3266
|
-
buffer_1 = getJSON().parse(buffer_1);
|
|
3267
|
-
}
|
|
3268
|
-
if (buffer_1 && isArray(buffer_1)) {
|
|
3269
|
-
return buffer_1;
|
|
3270
|
-
}
|
|
3271
|
-
}
|
|
3272
|
-
}
|
|
3273
|
-
catch (e) {
|
|
3274
|
-
_throwInternal(logger, 1 , 42 , " storage key: " + prefixedKey + ", " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3275
|
-
}
|
|
3276
|
-
return [];
|
|
3277
|
-
}
|
|
3278
|
-
function _setBuffer(key, buffer) {
|
|
3279
|
-
var prefixedKey = key;
|
|
3280
|
-
try {
|
|
3281
|
-
prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + "_" + prefixedKey : prefixedKey;
|
|
3282
|
-
var bufferJson = JSON.stringify(buffer);
|
|
3283
|
-
utlSetSessionStorage(logger, prefixedKey, bufferJson);
|
|
3284
|
-
}
|
|
3285
|
-
catch (e) {
|
|
3286
|
-
utlSetSessionStorage(logger, prefixedKey, JSON.stringify([]));
|
|
3287
|
-
_throwInternal(logger, 2 , 41 , " storage key: " + prefixedKey + ", " + getExceptionName(e) + ". Buffer cleared", { exception: dumpObj(e) });
|
|
3288
|
-
}
|
|
3289
|
-
}
|
|
3290
|
-
});
|
|
3291
|
-
return _this;
|
|
3292
|
-
}
|
|
3293
|
-
SessionStorageSendBuffer.BUFFER_KEY = "AI_buffer";
|
|
3294
|
-
SessionStorageSendBuffer.SENT_BUFFER_KEY = "AI_sentBuffer";
|
|
3295
|
-
SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;
|
|
3296
|
-
return SessionStorageSendBuffer;
|
|
3297
|
-
}(BaseSendBuffer));
|
|
3298
|
-
|
|
3299
|
-
var strBaseType = "baseType";
|
|
3300
|
-
var strBaseData = "baseData";
|
|
3301
|
-
var strProperties = "properties";
|
|
3302
|
-
var strTrue = "true";
|
|
3303
|
-
function _setValueIf(target, field, value) {
|
|
3304
|
-
return setValue(target, field, value, isTruthy);
|
|
3305
|
-
}
|
|
3306
|
-
function _extractPartAExtensions(logger, item, env) {
|
|
3307
|
-
var envTags = env.tags = env.tags || {};
|
|
3308
|
-
var itmExt = item.ext = item.ext || {};
|
|
3309
|
-
var itmTags = item.tags = item.tags || [];
|
|
3310
|
-
var extUser = itmExt.user;
|
|
3311
|
-
if (extUser) {
|
|
3312
|
-
_setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);
|
|
3313
|
-
_setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);
|
|
3243
|
+
var STR_DURATION = "duration";
|
|
3244
|
+
|
|
3245
|
+
var _DYN_TAGS = "tags";
|
|
3246
|
+
var _DYN_DEVICE_TYPE = "deviceType";
|
|
3247
|
+
var _DYN_DATA = "data";
|
|
3248
|
+
var _DYN_NAME = "name";
|
|
3249
|
+
var _DYN_TRACE_ID = "traceID";
|
|
3250
|
+
var _DYN_LENGTH = "length";
|
|
3251
|
+
var _DYN_STRINGIFY = "stringify";
|
|
3252
|
+
var _DYN_MEASUREMENTS = "measurements";
|
|
3253
|
+
var _DYN_DATA_TYPE = "dataType";
|
|
3254
|
+
var _DYN_ENVELOPE_TYPE = "envelopeType";
|
|
3255
|
+
var _DYN_TO_STRING = "toString";
|
|
3256
|
+
var _DYN_ON_LINE = "onLine";
|
|
3257
|
+
var _DYN_ENQUEUE = "enqueue";
|
|
3258
|
+
var _DYN_COUNT = "count";
|
|
3259
|
+
var _DYN_PUSH = "push";
|
|
3260
|
+
var _DYN_EMIT_LINE_DELIMITED_0 = "emitLineDelimitedJson";
|
|
3261
|
+
var _DYN_CLEAR = "clear";
|
|
3262
|
+
var _DYN_BATCH_PAYLOADS = "batchPayloads";
|
|
3263
|
+
var _DYN_MARK_AS_SENT = "markAsSent";
|
|
3264
|
+
var _DYN_CLEAR_SENT = "clearSent";
|
|
3265
|
+
var _DYN__BUFFER__KEY = "BUFFER_KEY";
|
|
3266
|
+
var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
|
|
3267
|
+
var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
|
|
3268
|
+
var _DYN_NAME_PREFIX = "namePrefix";
|
|
3269
|
+
var _DYN_MAX_BATCH_SIZE_IN_BY1 = "maxBatchSizeInBytes";
|
|
3270
|
+
var _DYN_TRIGGER_SEND = "triggerSend";
|
|
3271
|
+
var _DYN_DIAG_LOG = "diagLog";
|
|
3272
|
+
var _DYN_ONUNLOAD_DISABLE_BEA2 = "onunloadDisableBeacon";
|
|
3273
|
+
var _DYN_IS_BEACON_API_DISABL3 = "isBeaconApiDisabled";
|
|
3274
|
+
var _DYN__SENDER = "_sender";
|
|
3275
|
+
var _DYN__SENDER_CONFIG = "_senderConfig";
|
|
3276
|
+
var _DYN__BUFFER = "_buffer";
|
|
3277
|
+
var _DYN_ENABLE_SESSION_STORA4 = "enableSessionStorageBuffer";
|
|
3278
|
+
var _DYN_SAMPLING_PERCENTAGE = "samplingPercentage";
|
|
3279
|
+
var _DYN_INSTRUMENTATION_KEY = "instrumentationKey";
|
|
3280
|
+
var _DYN_ENDPOINT_URL = "endpointUrl";
|
|
3281
|
+
var _DYN_CUSTOM_HEADERS = "customHeaders";
|
|
3282
|
+
var _DYN_DISABLE_XHR = "disableXhr";
|
|
3283
|
+
var _DYN_ONUNLOAD_DISABLE_FET5 = "onunloadDisableFetch";
|
|
3284
|
+
var _DYN_DISABLE_TELEMETRY = "disableTelemetry";
|
|
3285
|
+
var _DYN_BASE_TYPE = "baseType";
|
|
3286
|
+
var _DYN_SAMPLE_RATE = "sampleRate";
|
|
3287
|
+
var _DYN_CONVERT_UNDEFINED = "convertUndefined";
|
|
3288
|
+
var _DYN__XHR_READY_STATE_CHA6 = "_xhrReadyStateChange";
|
|
3289
|
+
var _DYN__ON_ERROR = "_onError";
|
|
3290
|
+
var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
|
|
3291
|
+
var _DYN__ON_SUCCESS = "_onSuccess";
|
|
3292
|
+
var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
|
|
3293
|
+
var _DYN_ITEMS_RECEIVED = "itemsReceived";
|
|
3294
|
+
var _DYN_IS_RETRY_DISABLED = "isRetryDisabled";
|
|
3295
|
+
var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
|
|
3296
|
+
var _DYN_MAX_BATCH_INTERVAL = "maxBatchInterval";
|
|
3297
|
+
var _DYN_EVENTS_SEND_REQUEST = "eventsSendRequest";
|
|
3298
|
+
var _DYN_DISABLE_INSTRUMENTAT7 = "disableInstrumentationKeyValidation";
|
|
3299
|
+
var _DYN_GET_SAMPLING_SCORE = "getSamplingScore";
|
|
3300
|
+
var _DYN_GET_HASH_CODE_SCORE = "getHashCodeScore";
|
|
3301
|
+
|
|
3302
|
+
var strBaseType = "baseType";
|
|
3303
|
+
var strBaseData = "baseData";
|
|
3304
|
+
var strProperties = "properties";
|
|
3305
|
+
var strTrue = "true";
|
|
3306
|
+
function _setValueIf(target, field, value) {
|
|
3307
|
+
return setValue(target, field, value, isTruthy);
|
|
3308
|
+
}
|
|
3309
|
+
function _extractPartAExtensions(logger, item, env) {
|
|
3310
|
+
var envTags = env[_DYN_TAGS ] = env[_DYN_TAGS ] || {};
|
|
3311
|
+
var itmExt = item.ext = item.ext || {};
|
|
3312
|
+
var itmTags = item[_DYN_TAGS ] = item[_DYN_TAGS ] || [];
|
|
3313
|
+
var extUser = itmExt.user;
|
|
3314
|
+
if (extUser) {
|
|
3315
|
+
_setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);
|
|
3316
|
+
_setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);
|
|
3314
3317
|
}
|
|
3315
3318
|
var extApp = itmExt.app;
|
|
3316
3319
|
if (extApp) {
|
|
@@ -3319,17 +3322,17 @@
|
|
|
3319
3322
|
var extDevice = itmExt.device;
|
|
3320
3323
|
if (extDevice) {
|
|
3321
3324
|
_setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);
|
|
3322
|
-
_setValueIf(envTags, CtxTagKeys
|
|
3325
|
+
_setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE ], extDevice.deviceClass);
|
|
3323
3326
|
_setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);
|
|
3324
3327
|
_setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);
|
|
3325
|
-
_setValueIf(envTags, CtxTagKeys
|
|
3328
|
+
_setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE ], extDevice[_DYN_DEVICE_TYPE ]);
|
|
3326
3329
|
}
|
|
3327
3330
|
var web = item.ext.web;
|
|
3328
3331
|
if (web) {
|
|
3329
3332
|
_setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);
|
|
3330
3333
|
_setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);
|
|
3331
3334
|
_setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);
|
|
3332
|
-
var envData = env
|
|
3335
|
+
var envData = env[_DYN_DATA ] = env[_DYN_DATA ] || {};
|
|
3333
3336
|
var envBaseData = envData[strBaseData] = envData[strBaseData] || {};
|
|
3334
3337
|
var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};
|
|
3335
3338
|
_setValueIf(envProps, "domain", web.domain);
|
|
@@ -3339,16 +3342,16 @@
|
|
|
3339
3342
|
}
|
|
3340
3343
|
var extOs = itmExt.os;
|
|
3341
3344
|
if (extOs) {
|
|
3342
|
-
_setValueIf(envTags, CtxTagKeys.deviceOS, extOs
|
|
3345
|
+
_setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME ]);
|
|
3343
3346
|
}
|
|
3344
3347
|
var extTrace = itmExt.trace;
|
|
3345
3348
|
if (extTrace) {
|
|
3346
3349
|
_setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);
|
|
3347
|
-
_setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace
|
|
3348
|
-
_setValueIf(envTags, CtxTagKeys.operationId, extTrace
|
|
3350
|
+
_setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace[_DYN_NAME ]));
|
|
3351
|
+
_setValueIf(envTags, CtxTagKeys.operationId, extTrace[_DYN_TRACE_ID ]);
|
|
3349
3352
|
}
|
|
3350
3353
|
var tgs = {};
|
|
3351
|
-
for (var i = itmTags
|
|
3354
|
+
for (var i = itmTags[_DYN_LENGTH ] - 1; i >= 0; i--) {
|
|
3352
3355
|
var tg = itmTags[i];
|
|
3353
3356
|
objForEachKey(tg, function (key, value) {
|
|
3354
3357
|
tgs[key] = value;
|
|
@@ -3362,7 +3365,7 @@
|
|
|
3362
3365
|
if (!theTags[CtxTagKeys.internalSdkVersion]) {
|
|
3363
3366
|
theTags[CtxTagKeys.internalSdkVersion] = "javascript:".concat(EnvelopeCreator.Version);
|
|
3364
3367
|
}
|
|
3365
|
-
env
|
|
3368
|
+
env[_DYN_TAGS ] = optimizeObject(theTags);
|
|
3366
3369
|
}
|
|
3367
3370
|
function _extractPropsAndMeasurements(data, properties, measurements) {
|
|
3368
3371
|
if (!isNullOrUndefined(data)) {
|
|
@@ -3374,7 +3377,7 @@
|
|
|
3374
3377
|
properties[key] = value;
|
|
3375
3378
|
}
|
|
3376
3379
|
else if (hasJSON()) {
|
|
3377
|
-
properties[key] = getJSON()
|
|
3380
|
+
properties[key] = getJSON()[_DYN_STRINGIFY ](value);
|
|
3378
3381
|
}
|
|
3379
3382
|
});
|
|
3380
3383
|
}
|
|
@@ -3394,9 +3397,9 @@
|
|
|
3394
3397
|
}
|
|
3395
3398
|
envelope.iKey = telemetryItem.iKey;
|
|
3396
3399
|
var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, "");
|
|
3397
|
-
envelope
|
|
3400
|
+
envelope[_DYN_NAME ] = envelope[_DYN_NAME ].replace("{0}", iKeyNoDashes);
|
|
3398
3401
|
_extractPartAExtensions(logger, telemetryItem, envelope);
|
|
3399
|
-
telemetryItem
|
|
3402
|
+
telemetryItem[_DYN_TAGS ] = telemetryItem[_DYN_TAGS ] || [];
|
|
3400
3403
|
return optimizeObject(envelope);
|
|
3401
3404
|
}
|
|
3402
3405
|
function EnvelopeCreatorInit(logger, telemetryItem) {
|
|
@@ -3405,13 +3408,13 @@
|
|
|
3405
3408
|
}
|
|
3406
3409
|
}
|
|
3407
3410
|
var EnvelopeCreator = {
|
|
3408
|
-
Version: "2.8.5-nightly.
|
|
3411
|
+
Version: "2.8.5-nightly.2207-02"
|
|
3409
3412
|
};
|
|
3410
3413
|
function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
|
|
3411
3414
|
EnvelopeCreatorInit(logger, telemetryItem);
|
|
3412
|
-
var customMeasurements = telemetryItem[strBaseData]
|
|
3415
|
+
var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS ] || {};
|
|
3413
3416
|
var customProperties = telemetryItem[strBaseData][strProperties] || {};
|
|
3414
|
-
_extractPropsAndMeasurements(telemetryItem
|
|
3417
|
+
_extractPropsAndMeasurements(telemetryItem[_DYN_DATA ], customProperties, customMeasurements);
|
|
3415
3418
|
if (!isNullOrUndefined(customUndefinedValue)) {
|
|
3416
3419
|
_convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);
|
|
3417
3420
|
}
|
|
@@ -3421,87 +3424,86 @@
|
|
|
3421
3424
|
return null;
|
|
3422
3425
|
}
|
|
3423
3426
|
var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : "GET";
|
|
3424
|
-
var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd
|
|
3425
|
-
var data = new Data(RemoteDependencyData
|
|
3426
|
-
return _createEnvelope(logger, RemoteDependencyData
|
|
3427
|
+
var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd[_DYN_NAME ], bd[STR_DURATION ], bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);
|
|
3428
|
+
var data = new Data(RemoteDependencyData[_DYN_DATA_TYPE ], remoteDepData);
|
|
3429
|
+
return _createEnvelope(logger, RemoteDependencyData[_DYN_ENVELOPE_TYPE ], telemetryItem, data);
|
|
3427
3430
|
}
|
|
3428
3431
|
function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
|
|
3429
3432
|
EnvelopeCreatorInit(logger, telemetryItem);
|
|
3430
3433
|
var customProperties = {};
|
|
3431
3434
|
var customMeasurements = {};
|
|
3432
|
-
if (telemetryItem[strBaseType] !== Event
|
|
3435
|
+
if (telemetryItem[strBaseType] !== Event[_DYN_DATA_TYPE ]) {
|
|
3433
3436
|
customProperties["baseTypeSource"] = telemetryItem[strBaseType];
|
|
3434
3437
|
}
|
|
3435
|
-
if (telemetryItem[strBaseType] === Event
|
|
3438
|
+
if (telemetryItem[strBaseType] === Event[_DYN_DATA_TYPE ]) {
|
|
3436
3439
|
customProperties = telemetryItem[strBaseData][strProperties] || {};
|
|
3437
|
-
customMeasurements = telemetryItem[strBaseData]
|
|
3440
|
+
customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS ] || {};
|
|
3438
3441
|
}
|
|
3439
3442
|
else {
|
|
3440
3443
|
if (telemetryItem[strBaseData]) {
|
|
3441
3444
|
_extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);
|
|
3442
3445
|
}
|
|
3443
3446
|
}
|
|
3444
|
-
_extractPropsAndMeasurements(telemetryItem
|
|
3447
|
+
_extractPropsAndMeasurements(telemetryItem[_DYN_DATA ], customProperties, customMeasurements);
|
|
3445
3448
|
if (!isNullOrUndefined(customUndefinedValue)) {
|
|
3446
3449
|
_convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);
|
|
3447
3450
|
}
|
|
3448
|
-
var eventName = telemetryItem[strBaseData]
|
|
3451
|
+
var eventName = telemetryItem[strBaseData][_DYN_NAME ];
|
|
3449
3452
|
var eventData = new Event(logger, eventName, customProperties, customMeasurements);
|
|
3450
|
-
var data = new Data(Event
|
|
3451
|
-
return _createEnvelope(logger, Event
|
|
3453
|
+
var data = new Data(Event[_DYN_DATA_TYPE ], eventData);
|
|
3454
|
+
return _createEnvelope(logger, Event[_DYN_ENVELOPE_TYPE ], telemetryItem, data);
|
|
3452
3455
|
}
|
|
3453
3456
|
function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
|
|
3454
3457
|
EnvelopeCreatorInit(logger, telemetryItem);
|
|
3455
|
-
var customMeasurements = telemetryItem[strBaseData]
|
|
3458
|
+
var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS ] || {};
|
|
3456
3459
|
var customProperties = telemetryItem[strBaseData][strProperties] || {};
|
|
3457
|
-
_extractPropsAndMeasurements(telemetryItem
|
|
3460
|
+
_extractPropsAndMeasurements(telemetryItem[_DYN_DATA ], customProperties, customMeasurements);
|
|
3458
3461
|
if (!isNullOrUndefined(customUndefinedValue)) {
|
|
3459
3462
|
_convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);
|
|
3460
3463
|
}
|
|
3461
3464
|
var bd = telemetryItem[strBaseData];
|
|
3462
3465
|
var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);
|
|
3463
|
-
var data = new Data(Exception
|
|
3464
|
-
return _createEnvelope(logger, Exception
|
|
3466
|
+
var data = new Data(Exception[_DYN_DATA_TYPE ], exData);
|
|
3467
|
+
return _createEnvelope(logger, Exception[_DYN_ENVELOPE_TYPE ], telemetryItem, data);
|
|
3465
3468
|
}
|
|
3466
3469
|
function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
|
|
3467
3470
|
EnvelopeCreatorInit(logger, telemetryItem);
|
|
3468
3471
|
var baseData = telemetryItem[strBaseData];
|
|
3469
3472
|
var props = baseData[strProperties] || {};
|
|
3470
|
-
var measurements = baseData
|
|
3471
|
-
_extractPropsAndMeasurements(telemetryItem
|
|
3473
|
+
var measurements = baseData[_DYN_MEASUREMENTS ] || {};
|
|
3474
|
+
_extractPropsAndMeasurements(telemetryItem[_DYN_DATA ], props, measurements);
|
|
3472
3475
|
if (!isNullOrUndefined(customUndefinedValue)) {
|
|
3473
3476
|
_convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);
|
|
3474
3477
|
}
|
|
3475
|
-
var baseMetricData = new Metric(logger, baseData
|
|
3476
|
-
var data = new Data(Metric
|
|
3477
|
-
return _createEnvelope(logger, Metric
|
|
3478
|
+
var baseMetricData = new Metric(logger, baseData[_DYN_NAME ], baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);
|
|
3479
|
+
var data = new Data(Metric[_DYN_DATA_TYPE ], baseMetricData);
|
|
3480
|
+
return _createEnvelope(logger, Metric[_DYN_ENVELOPE_TYPE ], telemetryItem, data);
|
|
3478
3481
|
}
|
|
3479
3482
|
function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
|
|
3480
3483
|
EnvelopeCreatorInit(logger, telemetryItem);
|
|
3481
|
-
var strDuration = "duration";
|
|
3482
3484
|
var duration;
|
|
3483
3485
|
var baseData = telemetryItem[strBaseData];
|
|
3484
3486
|
if (!isNullOrUndefined(baseData) &&
|
|
3485
3487
|
!isNullOrUndefined(baseData[strProperties]) &&
|
|
3486
|
-
!isNullOrUndefined(baseData[strProperties][
|
|
3487
|
-
duration = baseData[strProperties][
|
|
3488
|
-
delete baseData[strProperties][
|
|
3488
|
+
!isNullOrUndefined(baseData[strProperties][STR_DURATION])) {
|
|
3489
|
+
duration = baseData[strProperties][STR_DURATION];
|
|
3490
|
+
delete baseData[strProperties][STR_DURATION];
|
|
3489
3491
|
}
|
|
3490
|
-
else if (!isNullOrUndefined(telemetryItem
|
|
3491
|
-
!isNullOrUndefined(telemetryItem
|
|
3492
|
-
duration = telemetryItem
|
|
3493
|
-
delete telemetryItem
|
|
3492
|
+
else if (!isNullOrUndefined(telemetryItem[_DYN_DATA ]) &&
|
|
3493
|
+
!isNullOrUndefined(telemetryItem[_DYN_DATA ][STR_DURATION])) {
|
|
3494
|
+
duration = telemetryItem[_DYN_DATA ][STR_DURATION];
|
|
3495
|
+
delete telemetryItem[_DYN_DATA ][STR_DURATION];
|
|
3494
3496
|
}
|
|
3495
3497
|
var bd = telemetryItem[strBaseData];
|
|
3496
3498
|
var currentContextId;
|
|
3497
|
-
if (((telemetryItem.ext || {}).trace || {})
|
|
3498
|
-
currentContextId = telemetryItem.ext.trace
|
|
3499
|
+
if (((telemetryItem.ext || {}).trace || {})[_DYN_TRACE_ID ]) {
|
|
3500
|
+
currentContextId = telemetryItem.ext.trace[_DYN_TRACE_ID ];
|
|
3499
3501
|
}
|
|
3500
3502
|
var id = bd.id || currentContextId;
|
|
3501
|
-
var name = bd
|
|
3503
|
+
var name = bd[_DYN_NAME ];
|
|
3502
3504
|
var url = bd.uri;
|
|
3503
3505
|
var properties = bd[strProperties] || {};
|
|
3504
|
-
var measurements = bd
|
|
3506
|
+
var measurements = bd[_DYN_MEASUREMENTS ] || {};
|
|
3505
3507
|
if (!isNullOrUndefined(bd.refUri)) {
|
|
3506
3508
|
properties["refUri"] = bd.refUri;
|
|
3507
3509
|
}
|
|
@@ -3509,7 +3511,7 @@
|
|
|
3509
3511
|
properties["pageType"] = bd.pageType;
|
|
3510
3512
|
}
|
|
3511
3513
|
if (!isNullOrUndefined(bd.isLoggedIn)) {
|
|
3512
|
-
properties["isLoggedIn"] = bd.isLoggedIn
|
|
3514
|
+
properties["isLoggedIn"] = bd.isLoggedIn[_DYN_TO_STRING ]();
|
|
3513
3515
|
}
|
|
3514
3516
|
if (!isNullOrUndefined(bd[strProperties])) {
|
|
3515
3517
|
var pageTags = bd[strProperties];
|
|
@@ -3517,54 +3519,300 @@
|
|
|
3517
3519
|
properties[key] = value;
|
|
3518
3520
|
});
|
|
3519
3521
|
}
|
|
3520
|
-
_extractPropsAndMeasurements(telemetryItem
|
|
3522
|
+
_extractPropsAndMeasurements(telemetryItem[_DYN_DATA ], properties, measurements);
|
|
3521
3523
|
if (!isNullOrUndefined(customUndefinedValue)) {
|
|
3522
3524
|
_convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);
|
|
3523
3525
|
}
|
|
3524
3526
|
var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);
|
|
3525
|
-
var data = new Data(PageView
|
|
3526
|
-
return _createEnvelope(logger, PageView
|
|
3527
|
+
var data = new Data(PageView[_DYN_DATA_TYPE ], pageViewData);
|
|
3528
|
+
return _createEnvelope(logger, PageView[_DYN_ENVELOPE_TYPE ], telemetryItem, data);
|
|
3527
3529
|
}
|
|
3528
3530
|
function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
|
|
3529
3531
|
EnvelopeCreatorInit(logger, telemetryItem);
|
|
3530
3532
|
var bd = telemetryItem[strBaseData];
|
|
3531
|
-
var name = bd
|
|
3533
|
+
var name = bd[_DYN_NAME ];
|
|
3532
3534
|
var url = bd.uri || bd.url;
|
|
3533
3535
|
var properties = bd[strProperties] || {};
|
|
3534
|
-
var measurements = bd
|
|
3535
|
-
_extractPropsAndMeasurements(telemetryItem
|
|
3536
|
+
var measurements = bd[_DYN_MEASUREMENTS ] || {};
|
|
3537
|
+
_extractPropsAndMeasurements(telemetryItem[_DYN_DATA ], properties, measurements);
|
|
3536
3538
|
if (!isNullOrUndefined(customUndefinedValue)) {
|
|
3537
3539
|
_convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);
|
|
3538
3540
|
}
|
|
3539
3541
|
var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);
|
|
3540
|
-
var data = new Data(PageViewPerformance
|
|
3541
|
-
return _createEnvelope(logger, PageViewPerformance
|
|
3542
|
+
var data = new Data(PageViewPerformance[_DYN_DATA_TYPE ], baseData);
|
|
3543
|
+
return _createEnvelope(logger, PageViewPerformance[_DYN_ENVELOPE_TYPE ], telemetryItem, data);
|
|
3542
3544
|
}
|
|
3543
3545
|
function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
|
|
3544
3546
|
EnvelopeCreatorInit(logger, telemetryItem);
|
|
3545
3547
|
var message = telemetryItem[strBaseData].message;
|
|
3546
3548
|
var severityLevel = telemetryItem[strBaseData].severityLevel;
|
|
3547
3549
|
var props = telemetryItem[strBaseData][strProperties] || {};
|
|
3548
|
-
var measurements = telemetryItem[strBaseData]
|
|
3549
|
-
_extractPropsAndMeasurements(telemetryItem
|
|
3550
|
+
var measurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS ] || {};
|
|
3551
|
+
_extractPropsAndMeasurements(telemetryItem[_DYN_DATA ], props, measurements);
|
|
3550
3552
|
if (!isNullOrUndefined(customUndefinedValue)) {
|
|
3551
3553
|
_convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);
|
|
3552
3554
|
}
|
|
3553
3555
|
var baseData = new Trace(logger, message, severityLevel, props, measurements);
|
|
3554
|
-
var data = new Data(Trace
|
|
3555
|
-
return _createEnvelope(logger, Trace
|
|
3556
|
+
var data = new Data(Trace[_DYN_DATA_TYPE ], baseData);
|
|
3557
|
+
return _createEnvelope(logger, Trace[_DYN_ENVELOPE_TYPE ], telemetryItem, data);
|
|
3556
3558
|
}
|
|
3557
3559
|
|
|
3560
|
+
function _disableEvents(target, evtNamespace) {
|
|
3561
|
+
eventOff(target, null, null, evtNamespace);
|
|
3562
|
+
}
|
|
3563
|
+
function createOfflineListener(parentEvtNamespace) {
|
|
3564
|
+
var _document = getDocument();
|
|
3565
|
+
var _navigator = getNavigator();
|
|
3566
|
+
var _isListening = false;
|
|
3567
|
+
var _onlineStatus = true;
|
|
3568
|
+
var _evtNamespace = mergeEvtNamespace(createUniqueNamespace("OfflineListener"), parentEvtNamespace);
|
|
3569
|
+
try {
|
|
3570
|
+
if (_enableEvents(getWindow())) {
|
|
3571
|
+
_isListening = true;
|
|
3572
|
+
}
|
|
3573
|
+
if (_document) {
|
|
3574
|
+
var target = _document.body || _document;
|
|
3575
|
+
if (target.ononline) {
|
|
3576
|
+
if (_enableEvents(target)) {
|
|
3577
|
+
_isListening = true;
|
|
3578
|
+
}
|
|
3579
|
+
}
|
|
3580
|
+
}
|
|
3581
|
+
if (_isListening) {
|
|
3582
|
+
if (_navigator && !isNullOrUndefined(_navigator[_DYN_ON_LINE ])) {
|
|
3583
|
+
_onlineStatus = _navigator[_DYN_ON_LINE ];
|
|
3584
|
+
}
|
|
3585
|
+
}
|
|
3586
|
+
}
|
|
3587
|
+
catch (e) {
|
|
3588
|
+
_isListening = false;
|
|
3589
|
+
}
|
|
3590
|
+
function _enableEvents(target) {
|
|
3591
|
+
var enabled = false;
|
|
3592
|
+
if (target) {
|
|
3593
|
+
enabled = eventOn(target, "online", _setOnline, _evtNamespace);
|
|
3594
|
+
if (enabled) {
|
|
3595
|
+
eventOn(target, "offline", _setOffline, _evtNamespace);
|
|
3596
|
+
}
|
|
3597
|
+
}
|
|
3598
|
+
return enabled;
|
|
3599
|
+
}
|
|
3600
|
+
function _setOnline() {
|
|
3601
|
+
_onlineStatus = true;
|
|
3602
|
+
}
|
|
3603
|
+
function _setOffline() {
|
|
3604
|
+
_onlineStatus = false;
|
|
3605
|
+
}
|
|
3606
|
+
function _isOnline() {
|
|
3607
|
+
var result = true;
|
|
3608
|
+
if (_isListening) {
|
|
3609
|
+
result = _onlineStatus;
|
|
3610
|
+
}
|
|
3611
|
+
else if (_navigator && !isNullOrUndefined(_navigator[_DYN_ON_LINE ])) {
|
|
3612
|
+
result = _navigator[_DYN_ON_LINE ];
|
|
3613
|
+
}
|
|
3614
|
+
return result;
|
|
3615
|
+
}
|
|
3616
|
+
function _unload() {
|
|
3617
|
+
var win = getWindow();
|
|
3618
|
+
if (win && _isListening) {
|
|
3619
|
+
_disableEvents(win, _evtNamespace);
|
|
3620
|
+
if (_document) {
|
|
3621
|
+
var target = _document.body || _document;
|
|
3622
|
+
if (!isUndefined(target.ononline)) {
|
|
3623
|
+
_disableEvents(target, _evtNamespace);
|
|
3624
|
+
}
|
|
3625
|
+
}
|
|
3626
|
+
_isListening = false;
|
|
3627
|
+
}
|
|
3628
|
+
}
|
|
3629
|
+
return {
|
|
3630
|
+
isOnline: _isOnline,
|
|
3631
|
+
isListening: function () { return _isListening; },
|
|
3632
|
+
unload: _unload
|
|
3633
|
+
};
|
|
3634
|
+
}
|
|
3635
|
+
|
|
3636
|
+
var BaseSendBuffer = /** @class */ (function () {
|
|
3637
|
+
function BaseSendBuffer(logger, config) {
|
|
3638
|
+
var _buffer = [];
|
|
3639
|
+
var _bufferFullMessageSent = false;
|
|
3640
|
+
this._get = function () {
|
|
3641
|
+
return _buffer;
|
|
3642
|
+
};
|
|
3643
|
+
this._set = function (buffer) {
|
|
3644
|
+
_buffer = buffer;
|
|
3645
|
+
return _buffer;
|
|
3646
|
+
};
|
|
3647
|
+
dynamicProto(BaseSendBuffer, this, function (_self) {
|
|
3648
|
+
_self[_DYN_ENQUEUE ] = function (payload) {
|
|
3649
|
+
if (_self[_DYN_COUNT ]() >= config.eventsLimitInMem()) {
|
|
3650
|
+
if (!_bufferFullMessageSent) {
|
|
3651
|
+
_throwInternal(logger, 2 , 105 , "Maximum in-memory buffer size reached: " + _self[_DYN_COUNT ](), true);
|
|
3652
|
+
_bufferFullMessageSent = true;
|
|
3653
|
+
}
|
|
3654
|
+
return;
|
|
3655
|
+
}
|
|
3656
|
+
_buffer[_DYN_PUSH ](payload);
|
|
3657
|
+
};
|
|
3658
|
+
_self[_DYN_COUNT ] = function () {
|
|
3659
|
+
return _buffer[_DYN_LENGTH ];
|
|
3660
|
+
};
|
|
3661
|
+
_self.size = function () {
|
|
3662
|
+
var size = _buffer[_DYN_LENGTH ];
|
|
3663
|
+
for (var lp = 0; lp < _buffer[_DYN_LENGTH ]; lp++) {
|
|
3664
|
+
size += _buffer[lp][_DYN_LENGTH ];
|
|
3665
|
+
}
|
|
3666
|
+
if (!config[_DYN_EMIT_LINE_DELIMITED_0 ]()) {
|
|
3667
|
+
size += 2;
|
|
3668
|
+
}
|
|
3669
|
+
return size;
|
|
3670
|
+
};
|
|
3671
|
+
_self[_DYN_CLEAR ] = function () {
|
|
3672
|
+
_buffer = [];
|
|
3673
|
+
_bufferFullMessageSent = false;
|
|
3674
|
+
};
|
|
3675
|
+
_self.getItems = function () {
|
|
3676
|
+
return _buffer.slice(0);
|
|
3677
|
+
};
|
|
3678
|
+
_self[_DYN_BATCH_PAYLOADS ] = function (payload) {
|
|
3679
|
+
if (payload && payload[_DYN_LENGTH ] > 0) {
|
|
3680
|
+
var batch = config[_DYN_EMIT_LINE_DELIMITED_0 ]() ?
|
|
3681
|
+
payload.join("\n") :
|
|
3682
|
+
"[" + payload.join(",") + "]";
|
|
3683
|
+
return batch;
|
|
3684
|
+
}
|
|
3685
|
+
return null;
|
|
3686
|
+
};
|
|
3687
|
+
});
|
|
3688
|
+
}
|
|
3689
|
+
BaseSendBuffer.__ieDyn=1;
|
|
3690
|
+
return BaseSendBuffer;
|
|
3691
|
+
}());
|
|
3692
|
+
var ArraySendBuffer = /** @class */ (function (_super) {
|
|
3693
|
+
__extendsFn(ArraySendBuffer, _super);
|
|
3694
|
+
function ArraySendBuffer(logger, config) {
|
|
3695
|
+
var _this = _super.call(this, logger, config) || this;
|
|
3696
|
+
dynamicProto(ArraySendBuffer, _this, function (_self, _base) {
|
|
3697
|
+
_self[_DYN_MARK_AS_SENT ] = function (payload) {
|
|
3698
|
+
_base[_DYN_CLEAR ]();
|
|
3699
|
+
};
|
|
3700
|
+
_self[_DYN_CLEAR_SENT ] = function (payload) {
|
|
3701
|
+
};
|
|
3702
|
+
});
|
|
3703
|
+
return _this;
|
|
3704
|
+
}
|
|
3705
|
+
ArraySendBuffer.__ieDyn=1;
|
|
3706
|
+
return ArraySendBuffer;
|
|
3707
|
+
}(BaseSendBuffer));
|
|
3708
|
+
var SessionStorageSendBuffer = /** @class */ (function (_super) {
|
|
3709
|
+
__extendsFn(SessionStorageSendBuffer, _super);
|
|
3710
|
+
function SessionStorageSendBuffer(logger, config) {
|
|
3711
|
+
var _this = _super.call(this, logger, config) || this;
|
|
3712
|
+
var _bufferFullMessageSent = false;
|
|
3713
|
+
dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
|
|
3714
|
+
var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ]);
|
|
3715
|
+
var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
|
|
3716
|
+
var buffer = _self._set(bufferItems.concat(notDeliveredItems));
|
|
3717
|
+
if (buffer[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
|
|
3718
|
+
buffer[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
|
|
3719
|
+
}
|
|
3720
|
+
_setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ], []);
|
|
3721
|
+
_setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], buffer);
|
|
3722
|
+
_self[_DYN_ENQUEUE ] = function (payload) {
|
|
3723
|
+
if (_self[_DYN_COUNT ]() >= SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
|
|
3724
|
+
if (!_bufferFullMessageSent) {
|
|
3725
|
+
_throwInternal(logger, 2 , 67 , "Maximum buffer size reached: " + _self[_DYN_COUNT ](), true);
|
|
3726
|
+
_bufferFullMessageSent = true;
|
|
3727
|
+
}
|
|
3728
|
+
return;
|
|
3729
|
+
}
|
|
3730
|
+
_base[_DYN_ENQUEUE ](payload);
|
|
3731
|
+
_setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._get());
|
|
3732
|
+
};
|
|
3733
|
+
_self[_DYN_CLEAR ] = function () {
|
|
3734
|
+
_base[_DYN_CLEAR ]();
|
|
3735
|
+
_setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._get());
|
|
3736
|
+
_setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ], []);
|
|
3737
|
+
_bufferFullMessageSent = false;
|
|
3738
|
+
};
|
|
3739
|
+
_self[_DYN_MARK_AS_SENT ] = function (payload) {
|
|
3740
|
+
_setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self._get())));
|
|
3741
|
+
var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
|
|
3742
|
+
if (sentElements instanceof Array && payload instanceof Array) {
|
|
3743
|
+
sentElements = sentElements.concat(payload);
|
|
3744
|
+
if (sentElements[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
|
|
3745
|
+
_throwInternal(logger, 1 , 67 , "Sent buffer reached its maximum size: " + sentElements[_DYN_LENGTH ], true);
|
|
3746
|
+
sentElements[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
|
|
3747
|
+
}
|
|
3748
|
+
_setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ], sentElements);
|
|
3749
|
+
}
|
|
3750
|
+
};
|
|
3751
|
+
_self[_DYN_CLEAR_SENT ] = function (payload) {
|
|
3752
|
+
var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
|
|
3753
|
+
sentElements = _removePayloadsFromBuffer(payload, sentElements);
|
|
3754
|
+
_setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ], sentElements);
|
|
3755
|
+
};
|
|
3756
|
+
function _removePayloadsFromBuffer(payloads, buffer) {
|
|
3757
|
+
var remaining = [];
|
|
3758
|
+
arrForEach(buffer, function (value) {
|
|
3759
|
+
if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {
|
|
3760
|
+
remaining[_DYN_PUSH ](value);
|
|
3761
|
+
}
|
|
3762
|
+
});
|
|
3763
|
+
return remaining;
|
|
3764
|
+
}
|
|
3765
|
+
function _getBuffer(key) {
|
|
3766
|
+
var prefixedKey = key;
|
|
3767
|
+
try {
|
|
3768
|
+
prefixedKey = config[_DYN_NAME_PREFIX ] && config[_DYN_NAME_PREFIX ]() ? config[_DYN_NAME_PREFIX ]() + "_" + prefixedKey : prefixedKey;
|
|
3769
|
+
var bufferJson = utlGetSessionStorage(logger, prefixedKey);
|
|
3770
|
+
if (bufferJson) {
|
|
3771
|
+
var buffer_1 = getJSON().parse(bufferJson);
|
|
3772
|
+
if (isString(buffer_1)) {
|
|
3773
|
+
buffer_1 = getJSON().parse(buffer_1);
|
|
3774
|
+
}
|
|
3775
|
+
if (buffer_1 && isArray(buffer_1)) {
|
|
3776
|
+
return buffer_1;
|
|
3777
|
+
}
|
|
3778
|
+
}
|
|
3779
|
+
}
|
|
3780
|
+
catch (e) {
|
|
3781
|
+
_throwInternal(logger, 1 , 42 , " storage key: " + prefixedKey + ", " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3782
|
+
}
|
|
3783
|
+
return [];
|
|
3784
|
+
}
|
|
3785
|
+
function _setBuffer(key, buffer) {
|
|
3786
|
+
var prefixedKey = key;
|
|
3787
|
+
try {
|
|
3788
|
+
prefixedKey = config[_DYN_NAME_PREFIX ] && config[_DYN_NAME_PREFIX ]() ? config[_DYN_NAME_PREFIX ]() + "_" + prefixedKey : prefixedKey;
|
|
3789
|
+
var bufferJson = JSON[_DYN_STRINGIFY ](buffer);
|
|
3790
|
+
utlSetSessionStorage(logger, prefixedKey, bufferJson);
|
|
3791
|
+
}
|
|
3792
|
+
catch (e) {
|
|
3793
|
+
utlSetSessionStorage(logger, prefixedKey, JSON[_DYN_STRINGIFY ]([]));
|
|
3794
|
+
_throwInternal(logger, 2 , 41 , " storage key: " + prefixedKey + ", " + getExceptionName(e) + ". Buffer cleared", { exception: dumpObj(e) });
|
|
3795
|
+
}
|
|
3796
|
+
}
|
|
3797
|
+
});
|
|
3798
|
+
return _this;
|
|
3799
|
+
}
|
|
3800
|
+
SessionStorageSendBuffer.BUFFER_KEY = "AI_buffer";
|
|
3801
|
+
SessionStorageSendBuffer.SENT_BUFFER_KEY = "AI_sentBuffer";
|
|
3802
|
+
SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;
|
|
3803
|
+
return SessionStorageSendBuffer;
|
|
3804
|
+
}(BaseSendBuffer));
|
|
3805
|
+
|
|
3558
3806
|
var Serializer = /** @class */ (function () {
|
|
3559
3807
|
function Serializer(logger) {
|
|
3560
3808
|
dynamicProto(Serializer, this, function (_self) {
|
|
3561
3809
|
_self.serialize = function (input) {
|
|
3562
3810
|
var output = _serializeObject(input, "root");
|
|
3563
3811
|
try {
|
|
3564
|
-
return getJSON()
|
|
3812
|
+
return getJSON()[_DYN_STRINGIFY ](output);
|
|
3565
3813
|
}
|
|
3566
3814
|
catch (e) {
|
|
3567
|
-
_throwInternal(logger, 1 , 48 , (e && isFunction(e
|
|
3815
|
+
_throwInternal(logger, 1 , 48 , (e && isFunction(e[_DYN_TO_STRING ])) ? e[_DYN_TO_STRING ]() : "Error serializing object", null, true);
|
|
3568
3816
|
}
|
|
3569
3817
|
};
|
|
3570
3818
|
function _serializeObject(source, name) {
|
|
@@ -3594,11 +3842,11 @@
|
|
|
3594
3842
|
else {
|
|
3595
3843
|
_throwInternal(logger, 2 , 49 , "Attempting to serialize an object which does not implement ISerializable", { name: name }, true);
|
|
3596
3844
|
try {
|
|
3597
|
-
getJSON()
|
|
3845
|
+
getJSON()[_DYN_STRINGIFY ](source);
|
|
3598
3846
|
output = source;
|
|
3599
3847
|
}
|
|
3600
3848
|
catch (e) {
|
|
3601
|
-
_throwInternal(logger, 1 , 48 , (e && isFunction(e
|
|
3849
|
+
_throwInternal(logger, 1 , 48 , (e && isFunction(e[_DYN_TO_STRING ])) ? e[_DYN_TO_STRING ]() : "Error serializing object", null, true);
|
|
3602
3850
|
}
|
|
3603
3851
|
}
|
|
3604
3852
|
return output;
|
|
@@ -3642,10 +3890,10 @@
|
|
|
3642
3890
|
}
|
|
3643
3891
|
else {
|
|
3644
3892
|
output = [];
|
|
3645
|
-
for (var i = 0; i < sources
|
|
3893
|
+
for (var i = 0; i < sources[_DYN_LENGTH ]; i++) {
|
|
3646
3894
|
var source = sources[i];
|
|
3647
3895
|
var item = _serializeObject(source, name + "[" + i + "]");
|
|
3648
|
-
output
|
|
3896
|
+
output[_DYN_PUSH ](item);
|
|
3649
3897
|
}
|
|
3650
3898
|
}
|
|
3651
3899
|
}
|
|
@@ -3663,11 +3911,11 @@
|
|
|
3663
3911
|
else if (value === null) {
|
|
3664
3912
|
output[field] = "null";
|
|
3665
3913
|
}
|
|
3666
|
-
else if (!value
|
|
3914
|
+
else if (!value[_DYN_TO_STRING ]) {
|
|
3667
3915
|
output[field] = "invalid field: toString() is not defined.";
|
|
3668
3916
|
}
|
|
3669
3917
|
else {
|
|
3670
|
-
output[field] = value
|
|
3918
|
+
output[field] = value[_DYN_TO_STRING ]();
|
|
3671
3919
|
}
|
|
3672
3920
|
}
|
|
3673
3921
|
else if (expectedType === "number") {
|
|
@@ -3701,82 +3949,6 @@
|
|
|
3701
3949
|
return Serializer;
|
|
3702
3950
|
}());
|
|
3703
3951
|
|
|
3704
|
-
function _disableEvents(target, evtNamespace) {
|
|
3705
|
-
eventOff(target, null, null, evtNamespace);
|
|
3706
|
-
}
|
|
3707
|
-
function createOfflineListener(parentEvtNamespace) {
|
|
3708
|
-
var _document = getDocument();
|
|
3709
|
-
var _navigator = getNavigator();
|
|
3710
|
-
var _isListening = false;
|
|
3711
|
-
var _onlineStatus = true;
|
|
3712
|
-
var _evtNamespace = mergeEvtNamespace(createUniqueNamespace("OfflineListener"), parentEvtNamespace);
|
|
3713
|
-
try {
|
|
3714
|
-
if (_enableEvents(getWindow())) {
|
|
3715
|
-
_isListening = true;
|
|
3716
|
-
}
|
|
3717
|
-
if (_document) {
|
|
3718
|
-
var target = _document.body || _document;
|
|
3719
|
-
if (target.ononline) {
|
|
3720
|
-
if (_enableEvents(target)) {
|
|
3721
|
-
_isListening = true;
|
|
3722
|
-
}
|
|
3723
|
-
}
|
|
3724
|
-
}
|
|
3725
|
-
if (_isListening) {
|
|
3726
|
-
if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
|
|
3727
|
-
_onlineStatus = _navigator.onLine;
|
|
3728
|
-
}
|
|
3729
|
-
}
|
|
3730
|
-
}
|
|
3731
|
-
catch (e) {
|
|
3732
|
-
_isListening = false;
|
|
3733
|
-
}
|
|
3734
|
-
function _enableEvents(target) {
|
|
3735
|
-
var enabled = false;
|
|
3736
|
-
if (target) {
|
|
3737
|
-
enabled = eventOn(target, "online", _setOnline, _evtNamespace);
|
|
3738
|
-
if (enabled) {
|
|
3739
|
-
eventOn(target, "offline", _setOffline, _evtNamespace);
|
|
3740
|
-
}
|
|
3741
|
-
}
|
|
3742
|
-
return enabled;
|
|
3743
|
-
}
|
|
3744
|
-
function _setOnline() {
|
|
3745
|
-
_onlineStatus = true;
|
|
3746
|
-
}
|
|
3747
|
-
function _setOffline() {
|
|
3748
|
-
_onlineStatus = false;
|
|
3749
|
-
}
|
|
3750
|
-
function _isOnline() {
|
|
3751
|
-
var result = true;
|
|
3752
|
-
if (_isListening) {
|
|
3753
|
-
result = _onlineStatus;
|
|
3754
|
-
}
|
|
3755
|
-
else if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
|
|
3756
|
-
result = _navigator.onLine;
|
|
3757
|
-
}
|
|
3758
|
-
return result;
|
|
3759
|
-
}
|
|
3760
|
-
function _unload() {
|
|
3761
|
-
var win = getWindow();
|
|
3762
|
-
if (win && _isListening) {
|
|
3763
|
-
_disableEvents(win, _evtNamespace);
|
|
3764
|
-
if (_document) {
|
|
3765
|
-
var target = _document.body || _document;
|
|
3766
|
-
if (!isUndefined(target.ononline)) {
|
|
3767
|
-
_disableEvents(target, _evtNamespace);
|
|
3768
|
-
}
|
|
3769
|
-
}
|
|
3770
|
-
_isListening = false;
|
|
3771
|
-
}
|
|
3772
|
-
}
|
|
3773
|
-
return {
|
|
3774
|
-
isOnline: _isOnline,
|
|
3775
|
-
isListening: function () { return _isListening; },
|
|
3776
|
-
unload: _unload
|
|
3777
|
-
};
|
|
3778
|
-
}
|
|
3779
|
-
|
|
3780
3952
|
var MIN_INPUT_LENGTH = 8;
|
|
3781
3953
|
var HashCodeScoreGenerator = /** @class */ (function () {
|
|
3782
3954
|
function HashCodeScoreGenerator() {
|
|
@@ -3789,11 +3961,11 @@
|
|
|
3789
3961
|
if (input === "") {
|
|
3790
3962
|
return 0;
|
|
3791
3963
|
}
|
|
3792
|
-
while (input
|
|
3964
|
+
while (input[_DYN_LENGTH ] < MIN_INPUT_LENGTH) {
|
|
3793
3965
|
input = input.concat(input);
|
|
3794
3966
|
}
|
|
3795
3967
|
var hash = 5381;
|
|
3796
|
-
for (var i = 0; i < input
|
|
3968
|
+
for (var i = 0; i < input[_DYN_LENGTH ]; ++i) {
|
|
3797
3969
|
hash = ((hash << 5) + hash) + input.charCodeAt(i);
|
|
3798
3970
|
hash = hash & hash;
|
|
3799
3971
|
}
|
|
@@ -3808,19 +3980,19 @@
|
|
|
3808
3980
|
var _self = this;
|
|
3809
3981
|
var hashCodeGenerator = new HashCodeScoreGenerator();
|
|
3810
3982
|
var keys = new ContextTagKeys();
|
|
3811
|
-
_self
|
|
3983
|
+
_self[_DYN_GET_SAMPLING_SCORE ] = function (item) {
|
|
3812
3984
|
var score = 0;
|
|
3813
|
-
if (item
|
|
3814
|
-
score = hashCodeGenerator.getHashCodeScore(item
|
|
3985
|
+
if (item[_DYN_TAGS ] && item[_DYN_TAGS ][keys.userId]) {
|
|
3986
|
+
score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS ][keys.userId]);
|
|
3815
3987
|
}
|
|
3816
3988
|
else if (item.ext && item.ext.user && item.ext.user.id) {
|
|
3817
|
-
score = hashCodeGenerator
|
|
3989
|
+
score = hashCodeGenerator[_DYN_GET_HASH_CODE_SCORE ](item.ext.user.id);
|
|
3818
3990
|
}
|
|
3819
|
-
else if (item
|
|
3820
|
-
score = hashCodeGenerator.getHashCodeScore(item
|
|
3991
|
+
else if (item[_DYN_TAGS ] && item[_DYN_TAGS ][keys.operationId]) {
|
|
3992
|
+
score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS ][keys.operationId]);
|
|
3821
3993
|
}
|
|
3822
|
-
else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace
|
|
3823
|
-
score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace
|
|
3994
|
+
else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace[_DYN_TRACE_ID ]) {
|
|
3995
|
+
score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace[_DYN_TRACE_ID ]);
|
|
3824
3996
|
}
|
|
3825
3997
|
else {
|
|
3826
3998
|
score = (Math.random() * 100);
|
|
@@ -3839,19 +4011,19 @@
|
|
|
3839
4011
|
_logger.throwInternal(2 , 58 , "Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.", { samplingRate: sampleRate }, true);
|
|
3840
4012
|
sampleRate = 100;
|
|
3841
4013
|
}
|
|
3842
|
-
this
|
|
4014
|
+
this[_DYN_SAMPLE_RATE ] = sampleRate;
|
|
3843
4015
|
this.samplingScoreGenerator = new SamplingScoreGenerator();
|
|
3844
4016
|
}
|
|
3845
4017
|
Sample.prototype.isSampledIn = function (envelope) {
|
|
3846
|
-
var samplingPercentage = this
|
|
4018
|
+
var samplingPercentage = this[_DYN_SAMPLE_RATE ];
|
|
3847
4019
|
var isSampledIn = false;
|
|
3848
4020
|
if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {
|
|
3849
4021
|
return true;
|
|
3850
4022
|
}
|
|
3851
|
-
else if (envelope.baseType === Metric
|
|
4023
|
+
else if (envelope.baseType === Metric[_DYN_DATA_TYPE ]) {
|
|
3852
4024
|
return true;
|
|
3853
4025
|
}
|
|
3854
|
-
isSampledIn = this.samplingScoreGenerator
|
|
4026
|
+
isSampledIn = this.samplingScoreGenerator[_DYN_GET_SAMPLING_SCORE ](envelope) < samplingPercentage;
|
|
3855
4027
|
return isSampledIn;
|
|
3856
4028
|
};
|
|
3857
4029
|
return Sample;
|
|
@@ -3868,25 +4040,29 @@
|
|
|
3868
4040
|
return null;
|
|
3869
4041
|
}
|
|
3870
4042
|
function _getDefaultAppInsightsChannelConfig() {
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
|
|
4043
|
+
var _a;
|
|
4044
|
+
var defaultValue;
|
|
4045
|
+
var defaultCustomHeaders;
|
|
4046
|
+
return _a = {
|
|
4047
|
+
endpointUrl: function () { return DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH; }
|
|
4048
|
+
},
|
|
4049
|
+
_a[_DYN_EMIT_LINE_DELIMITED_0 ] = function () { return false; },
|
|
4050
|
+
_a[_DYN_MAX_BATCH_INTERVAL ] = function () { return 15000; },
|
|
4051
|
+
_a[_DYN_MAX_BATCH_SIZE_IN_BY1 ] = function () { return 102400; },
|
|
4052
|
+
_a[_DYN_DISABLE_TELEMETRY ] = function () { return false; },
|
|
4053
|
+
_a[_DYN_ENABLE_SESSION_STORA4 ] = function () { return true; },
|
|
4054
|
+
_a[_DYN_IS_RETRY_DISABLED ] = function () { return false; },
|
|
4055
|
+
_a[_DYN_IS_BEACON_API_DISABL3 ] = function () { return true; },
|
|
4056
|
+
_a[_DYN_DISABLE_XHR ] = function () { return false; },
|
|
4057
|
+
_a[_DYN_ONUNLOAD_DISABLE_FET5 ] = function () { return false; },
|
|
4058
|
+
_a[_DYN_ONUNLOAD_DISABLE_BEA2 ] = function () { return false; },
|
|
4059
|
+
_a[_DYN_INSTRUMENTATION_KEY ] = function () { return defaultValue; },
|
|
4060
|
+
_a[_DYN_NAME_PREFIX ] = function () { return defaultValue; },
|
|
4061
|
+
_a[_DYN_SAMPLING_PERCENTAGE ] = function () { return 100; },
|
|
4062
|
+
_a[_DYN_CUSTOM_HEADERS ] = function () { return defaultCustomHeaders; },
|
|
4063
|
+
_a[_DYN_CONVERT_UNDEFINED ] = function () { return defaultValue; },
|
|
4064
|
+
_a.eventsLimitInMem = function () { return 10000; },
|
|
4065
|
+
_a;
|
|
3890
4066
|
}
|
|
3891
4067
|
var EnvelopeTypeCreator = (_a = {},
|
|
3892
4068
|
_a[Event.dataType] = EventEnvelopeCreator,
|
|
@@ -3927,8 +4103,8 @@
|
|
|
3927
4103
|
if (_paused) {
|
|
3928
4104
|
_paused = false;
|
|
3929
4105
|
_retryAt = null;
|
|
3930
|
-
if (_self._buffer.size() > _self._senderConfig
|
|
3931
|
-
_self
|
|
4106
|
+
if (_self._buffer.size() > _self._senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 ]()) {
|
|
4107
|
+
_self[_DYN_TRIGGER_SEND ](true, null, 10 );
|
|
3932
4108
|
}
|
|
3933
4109
|
_setupTimer();
|
|
3934
4110
|
}
|
|
@@ -3938,21 +4114,21 @@
|
|
|
3938
4114
|
if (!_paused) {
|
|
3939
4115
|
_clearScheduledTimer();
|
|
3940
4116
|
try {
|
|
3941
|
-
_self
|
|
4117
|
+
_self[_DYN_TRIGGER_SEND ](isAsync, null, sendReason || 1 );
|
|
3942
4118
|
}
|
|
3943
4119
|
catch (e) {
|
|
3944
|
-
_throwInternal(_self
|
|
4120
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 22 , "flush failed, telemetry will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3945
4121
|
}
|
|
3946
4122
|
}
|
|
3947
4123
|
};
|
|
3948
4124
|
_self.onunloadFlush = function () {
|
|
3949
4125
|
if (!_paused) {
|
|
3950
|
-
if ((_self._senderConfig
|
|
4126
|
+
if ((_self._senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 ]() === false || _self[_DYN__SENDER_CONFIG ][_DYN_IS_BEACON_API_DISABL3 ]() === false) && isBeaconsSupported()) {
|
|
3951
4127
|
try {
|
|
3952
|
-
_self
|
|
4128
|
+
_self[_DYN_TRIGGER_SEND ](true, _doUnloadSend, 2 );
|
|
3953
4129
|
}
|
|
3954
4130
|
catch (e) {
|
|
3955
|
-
_throwInternal(_self
|
|
4131
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 20 , "failed to flush with beacon sender on page unload, telemetry will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3956
4132
|
}
|
|
3957
4133
|
}
|
|
3958
4134
|
else {
|
|
@@ -3965,7 +4141,7 @@
|
|
|
3965
4141
|
};
|
|
3966
4142
|
_self.initialize = function (config, core, extensions, pluginChain) {
|
|
3967
4143
|
if (_self.isInitialized()) {
|
|
3968
|
-
_throwInternal(_self
|
|
4144
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 28 , "Sender is already initialized");
|
|
3969
4145
|
}
|
|
3970
4146
|
_base.initialize(config, core, extensions, pluginChain);
|
|
3971
4147
|
var ctx = _self._getTelCtx();
|
|
@@ -3974,52 +4150,52 @@
|
|
|
3974
4150
|
_consecutiveErrors = 0;
|
|
3975
4151
|
_retryAt = null;
|
|
3976
4152
|
_lastSend = 0;
|
|
3977
|
-
_self
|
|
4153
|
+
_self[_DYN__SENDER ] = null;
|
|
3978
4154
|
_stamp_specific_redirects = 0;
|
|
3979
|
-
var diagLog = _self
|
|
4155
|
+
var diagLog = _self[_DYN_DIAG_LOG ]();
|
|
3980
4156
|
_evtNamespace = mergeEvtNamespace(createUniqueNamespace("Sender"), core.evtNamespace && core.evtNamespace());
|
|
3981
4157
|
_offlineListener = createOfflineListener(_evtNamespace);
|
|
3982
4158
|
var defaultConfig = _getDefaultAppInsightsChannelConfig();
|
|
3983
4159
|
objForEachKey(defaultConfig, function (field, value) {
|
|
3984
|
-
_self
|
|
4160
|
+
_self[_DYN__SENDER_CONFIG ][field] = function () { return ctx.getConfig(identifier, field, value()); };
|
|
3985
4161
|
});
|
|
3986
|
-
_self._buffer = (_self
|
|
3987
|
-
? new SessionStorageSendBuffer(diagLog, _self
|
|
3988
|
-
_self._sample = new Sample(_self
|
|
4162
|
+
_self._buffer = (_self[_DYN__SENDER_CONFIG ][_DYN_ENABLE_SESSION_STORA4 ]() && utlCanUseSessionStorage())
|
|
4163
|
+
? new SessionStorageSendBuffer(diagLog, _self[_DYN__SENDER_CONFIG ]) : new ArraySendBuffer(diagLog, _self[_DYN__SENDER_CONFIG ]);
|
|
4164
|
+
_self._sample = new Sample(_self[_DYN__SENDER_CONFIG ][_DYN_SAMPLING_PERCENTAGE ](), diagLog);
|
|
3989
4165
|
if (!_validateInstrumentationKey(config)) {
|
|
3990
|
-
_throwInternal(diagLog, 1 , 100 , "Invalid Instrumentation key " + config
|
|
4166
|
+
_throwInternal(diagLog, 1 , 100 , "Invalid Instrumentation key " + config[_DYN_INSTRUMENTATION_KEY ]);
|
|
3991
4167
|
}
|
|
3992
|
-
if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders()
|
|
3993
|
-
arrForEach(_self
|
|
4168
|
+
if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders()[_DYN_LENGTH ] > 0) {
|
|
4169
|
+
arrForEach(_self[_DYN__SENDER_CONFIG ][_DYN_CUSTOM_HEADERS ](), function (customHeader) {
|
|
3994
4170
|
_this.addHeader(customHeader.header, customHeader.value);
|
|
3995
4171
|
});
|
|
3996
4172
|
}
|
|
3997
|
-
var senderConfig = _self
|
|
4173
|
+
var senderConfig = _self[_DYN__SENDER_CONFIG ];
|
|
3998
4174
|
var sendPostFunc = null;
|
|
3999
|
-
if (!senderConfig
|
|
4175
|
+
if (!senderConfig[_DYN_DISABLE_XHR ]() && useXDomainRequest()) {
|
|
4000
4176
|
sendPostFunc = _xdrSender;
|
|
4001
4177
|
}
|
|
4002
|
-
else if (!senderConfig
|
|
4178
|
+
else if (!senderConfig[_DYN_DISABLE_XHR ]() && isXhrSupported()) {
|
|
4003
4179
|
sendPostFunc = _xhrSender;
|
|
4004
4180
|
}
|
|
4005
4181
|
if (!sendPostFunc && isFetchSupported()) {
|
|
4006
4182
|
sendPostFunc = _fetchSender;
|
|
4007
4183
|
}
|
|
4008
4184
|
_fallbackSender = sendPostFunc || _xhrSender;
|
|
4009
|
-
if (!senderConfig
|
|
4185
|
+
if (!senderConfig[_DYN_IS_BEACON_API_DISABL3 ]() && isBeaconsSupported()) {
|
|
4010
4186
|
sendPostFunc = _beaconSender;
|
|
4011
4187
|
}
|
|
4012
|
-
_self
|
|
4013
|
-
if (!senderConfig
|
|
4188
|
+
_self[_DYN__SENDER ] = sendPostFunc || _xhrSender;
|
|
4189
|
+
if (!senderConfig[_DYN_ONUNLOAD_DISABLE_FET5 ]() && isFetchSupported(true)) {
|
|
4014
4190
|
_syncUnloadSender = _fetchKeepAliveSender;
|
|
4015
4191
|
}
|
|
4016
4192
|
else if (isBeaconsSupported()) {
|
|
4017
4193
|
_syncUnloadSender = _beaconSender;
|
|
4018
4194
|
}
|
|
4019
|
-
else if (!senderConfig
|
|
4195
|
+
else if (!senderConfig[_DYN_DISABLE_XHR ]() && useXDomainRequest()) {
|
|
4020
4196
|
_syncUnloadSender = _xdrSender;
|
|
4021
4197
|
}
|
|
4022
|
-
else if (!senderConfig
|
|
4198
|
+
else if (!senderConfig[_DYN_DISABLE_XHR ]() && isXhrSupported()) {
|
|
4023
4199
|
_syncUnloadSender = _xhrSender;
|
|
4024
4200
|
}
|
|
4025
4201
|
else {
|
|
@@ -4028,103 +4204,104 @@
|
|
|
4028
4204
|
};
|
|
4029
4205
|
_self.processTelemetry = function (telemetryItem, itemCtx) {
|
|
4030
4206
|
itemCtx = _self._getTelCtx(itemCtx);
|
|
4207
|
+
var diagLogger = itemCtx[_DYN_DIAG_LOG ]();
|
|
4031
4208
|
try {
|
|
4032
|
-
if (_self
|
|
4209
|
+
if (_self[_DYN__SENDER_CONFIG ][_DYN_DISABLE_TELEMETRY ]()) {
|
|
4033
4210
|
return;
|
|
4034
4211
|
}
|
|
4035
4212
|
if (!telemetryItem) {
|
|
4036
|
-
_throwInternal(
|
|
4213
|
+
_throwInternal(diagLogger, 1 , 7 , "Cannot send empty telemetry");
|
|
4037
4214
|
return;
|
|
4038
4215
|
}
|
|
4039
|
-
if (telemetryItem.baseData && !telemetryItem
|
|
4040
|
-
_throwInternal(
|
|
4216
|
+
if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE ]) {
|
|
4217
|
+
_throwInternal(diagLogger, 1 , 70 , "Cannot send telemetry without baseData and baseType");
|
|
4041
4218
|
return;
|
|
4042
4219
|
}
|
|
4043
|
-
if (!telemetryItem
|
|
4044
|
-
telemetryItem
|
|
4220
|
+
if (!telemetryItem[_DYN_BASE_TYPE ]) {
|
|
4221
|
+
telemetryItem[_DYN_BASE_TYPE ] = "EventData";
|
|
4045
4222
|
}
|
|
4046
|
-
if (!_self
|
|
4047
|
-
_throwInternal(
|
|
4223
|
+
if (!_self[_DYN__SENDER ]) {
|
|
4224
|
+
_throwInternal(diagLogger, 1 , 28 , "Sender was not initialized");
|
|
4048
4225
|
return;
|
|
4049
4226
|
}
|
|
4050
4227
|
if (!_isSampledIn(telemetryItem)) {
|
|
4051
|
-
_throwInternal(
|
|
4228
|
+
_throwInternal(diagLogger, 2 , 33 , "Telemetry item was sampled out and not sent", { SampleRate: _self._sample[_DYN_SAMPLE_RATE ] });
|
|
4052
4229
|
return;
|
|
4053
4230
|
}
|
|
4054
4231
|
else {
|
|
4055
|
-
telemetryItem[SampleRate] = _self._sample
|
|
4232
|
+
telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE ];
|
|
4056
4233
|
}
|
|
4057
|
-
var convertUndefined = _self
|
|
4058
|
-
var defaultEnvelopeIkey = telemetryItem.iKey || _self
|
|
4059
|
-
var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey,
|
|
4234
|
+
var convertUndefined = _self[_DYN__SENDER_CONFIG ][_DYN_CONVERT_UNDEFINED ]() || undefined;
|
|
4235
|
+
var defaultEnvelopeIkey = telemetryItem.iKey || _self[_DYN__SENDER_CONFIG ][_DYN_INSTRUMENTATION_KEY ]();
|
|
4236
|
+
var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, convertUndefined);
|
|
4060
4237
|
if (!aiEnvelope_1) {
|
|
4061
|
-
_throwInternal(
|
|
4238
|
+
_throwInternal(diagLogger, 1 , 47 , "Unable to create an AppInsights envelope");
|
|
4062
4239
|
return;
|
|
4063
4240
|
}
|
|
4064
4241
|
var doNotSendItem_1 = false;
|
|
4065
|
-
if (telemetryItem
|
|
4066
|
-
arrForEach(telemetryItem
|
|
4242
|
+
if (telemetryItem[_DYN_TAGS ] && telemetryItem[_DYN_TAGS ][ProcessLegacy]) {
|
|
4243
|
+
arrForEach(telemetryItem[_DYN_TAGS ][ProcessLegacy], function (callBack) {
|
|
4067
4244
|
try {
|
|
4068
4245
|
if (callBack && callBack(aiEnvelope_1) === false) {
|
|
4069
4246
|
doNotSendItem_1 = true;
|
|
4070
|
-
_warnToConsole(
|
|
4247
|
+
_warnToConsole(diagLogger, "Telemetry processor check returns false");
|
|
4071
4248
|
}
|
|
4072
4249
|
}
|
|
4073
4250
|
catch (e) {
|
|
4074
|
-
_throwInternal(
|
|
4251
|
+
_throwInternal(diagLogger, 1 , 64 , "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
|
|
4075
4252
|
}
|
|
4076
4253
|
});
|
|
4077
|
-
delete telemetryItem
|
|
4254
|
+
delete telemetryItem[_DYN_TAGS ][ProcessLegacy];
|
|
4078
4255
|
}
|
|
4079
4256
|
if (doNotSendItem_1) {
|
|
4080
4257
|
return;
|
|
4081
4258
|
}
|
|
4082
4259
|
var payload = _serializer.serialize(aiEnvelope_1);
|
|
4083
|
-
var buffer = _self
|
|
4260
|
+
var buffer = _self[_DYN__BUFFER ];
|
|
4084
4261
|
var bufferSize = buffer.size();
|
|
4085
|
-
if ((bufferSize + payload
|
|
4086
|
-
_self
|
|
4262
|
+
if ((bufferSize + payload[_DYN_LENGTH ]) > _self[_DYN__SENDER_CONFIG ][_DYN_MAX_BATCH_SIZE_IN_BY1 ]()) {
|
|
4263
|
+
_self[_DYN_TRIGGER_SEND ](true, null, 10 );
|
|
4087
4264
|
}
|
|
4088
|
-
buffer
|
|
4265
|
+
buffer[_DYN_ENQUEUE ](payload);
|
|
4089
4266
|
_setupTimer();
|
|
4090
4267
|
}
|
|
4091
4268
|
catch (e) {
|
|
4092
|
-
_throwInternal(
|
|
4269
|
+
_throwInternal(diagLogger, 2 , 12 , "Failed adding telemetry to the sender's buffer, some telemetry will be lost: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
4093
4270
|
}
|
|
4094
4271
|
_self.processNext(telemetryItem, itemCtx);
|
|
4095
4272
|
};
|
|
4096
|
-
_self
|
|
4273
|
+
_self[_DYN__XHR_READY_STATE_CHA6 ] = function (xhr, payload, countOfItemsInPayload) {
|
|
4097
4274
|
if (xhr.readyState === 4) {
|
|
4098
4275
|
_checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
|
|
4099
4276
|
}
|
|
4100
4277
|
};
|
|
4101
|
-
_self
|
|
4278
|
+
_self[_DYN_TRIGGER_SEND ] = function (async, forcedSender, sendReason) {
|
|
4102
4279
|
if (async === void 0) { async = true; }
|
|
4103
4280
|
if (!_paused) {
|
|
4104
4281
|
try {
|
|
4105
|
-
var buffer = _self
|
|
4106
|
-
if (!_self
|
|
4107
|
-
if (buffer
|
|
4282
|
+
var buffer = _self[_DYN__BUFFER ];
|
|
4283
|
+
if (!_self[_DYN__SENDER_CONFIG ][_DYN_DISABLE_TELEMETRY ]()) {
|
|
4284
|
+
if (buffer[_DYN_COUNT ]() > 0) {
|
|
4108
4285
|
var payload = buffer.getItems();
|
|
4109
4286
|
_notifySendRequest(sendReason || 0 , async);
|
|
4110
4287
|
if (forcedSender) {
|
|
4111
4288
|
forcedSender.call(_this, payload, async);
|
|
4112
4289
|
}
|
|
4113
4290
|
else {
|
|
4114
|
-
_self
|
|
4291
|
+
_self[_DYN__SENDER ](payload, async);
|
|
4115
4292
|
}
|
|
4116
4293
|
}
|
|
4117
4294
|
_lastSend = +new Date;
|
|
4118
4295
|
}
|
|
4119
4296
|
else {
|
|
4120
|
-
buffer
|
|
4297
|
+
buffer[_DYN_CLEAR ]();
|
|
4121
4298
|
}
|
|
4122
4299
|
_clearScheduledTimer();
|
|
4123
4300
|
}
|
|
4124
4301
|
catch (e) {
|
|
4125
4302
|
var ieVer = getIEVersion();
|
|
4126
4303
|
if (!ieVer || ieVer > 9) {
|
|
4127
|
-
_throwInternal(_self
|
|
4304
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 40 , "Telemetry transmission failed, some telemetry will be lost: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
4128
4305
|
}
|
|
4129
4306
|
}
|
|
4130
4307
|
}
|
|
@@ -4134,11 +4311,11 @@
|
|
|
4134
4311
|
_offlineListener.unload();
|
|
4135
4312
|
_initDefaults();
|
|
4136
4313
|
};
|
|
4137
|
-
_self
|
|
4138
|
-
_throwInternal(_self
|
|
4139
|
-
_self._buffer
|
|
4314
|
+
_self[_DYN__ON_ERROR ] = function (payload, message, event) {
|
|
4315
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 26 , "Failed to send telemetry.", { message: message });
|
|
4316
|
+
_self._buffer[_DYN_CLEAR_SENT ](payload);
|
|
4140
4317
|
};
|
|
4141
|
-
_self
|
|
4318
|
+
_self[_DYN__ON_PARTIAL_SUCCESS ] = function (payload, results) {
|
|
4142
4319
|
var failed = [];
|
|
4143
4320
|
var retry = [];
|
|
4144
4321
|
var errors = results.errors.reverse();
|
|
@@ -4146,42 +4323,42 @@
|
|
|
4146
4323
|
var error = errors_1[_i];
|
|
4147
4324
|
var extracted = payload.splice(error.index, 1)[0];
|
|
4148
4325
|
if (_isRetriable(error.statusCode)) {
|
|
4149
|
-
retry
|
|
4326
|
+
retry[_DYN_PUSH ](extracted);
|
|
4150
4327
|
}
|
|
4151
4328
|
else {
|
|
4152
|
-
failed
|
|
4329
|
+
failed[_DYN_PUSH ](extracted);
|
|
4153
4330
|
}
|
|
4154
4331
|
}
|
|
4155
|
-
if (payload
|
|
4156
|
-
_self
|
|
4332
|
+
if (payload[_DYN_LENGTH ] > 0) {
|
|
4333
|
+
_self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
|
|
4157
4334
|
}
|
|
4158
|
-
if (failed
|
|
4159
|
-
_self
|
|
4335
|
+
if (failed[_DYN_LENGTH ] > 0) {
|
|
4336
|
+
_self[_DYN__ON_ERROR ](failed, _formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
|
|
4160
4337
|
}
|
|
4161
|
-
if (retry
|
|
4338
|
+
if (retry[_DYN_LENGTH ] > 0) {
|
|
4162
4339
|
_resendPayload(retry);
|
|
4163
|
-
_throwInternal(_self
|
|
4164
|
-
"Delivered: " + payload
|
|
4165
|
-
". Will retry to send " + retry
|
|
4340
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , "Partial success. " +
|
|
4341
|
+
"Delivered: " + payload[_DYN_LENGTH ] + ", Failed: " + failed[_DYN_LENGTH ] +
|
|
4342
|
+
". Will retry to send " + retry[_DYN_LENGTH ] + " our of " + results[_DYN_ITEMS_RECEIVED ] + " items");
|
|
4166
4343
|
}
|
|
4167
4344
|
};
|
|
4168
|
-
_self
|
|
4169
|
-
_self._buffer
|
|
4345
|
+
_self[_DYN__ON_SUCCESS ] = function (payload, countOfItemsInPayload) {
|
|
4346
|
+
_self._buffer[_DYN_CLEAR_SENT ](payload);
|
|
4170
4347
|
};
|
|
4171
4348
|
_self._xdrOnLoad = function (xdr, payload) {
|
|
4172
4349
|
var responseText = _getResponseText(xdr);
|
|
4173
4350
|
if (xdr && (responseText + "" === "200" || responseText === "")) {
|
|
4174
4351
|
_consecutiveErrors = 0;
|
|
4175
|
-
_self
|
|
4352
|
+
_self[_DYN__ON_SUCCESS ](payload, 0);
|
|
4176
4353
|
}
|
|
4177
4354
|
else {
|
|
4178
4355
|
var results = _parseResponse(responseText);
|
|
4179
|
-
if (results && results.itemsReceived && results.itemsReceived > results
|
|
4180
|
-
&& !_self
|
|
4181
|
-
_self
|
|
4356
|
+
if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED ]
|
|
4357
|
+
&& !_self[_DYN__SENDER_CONFIG ][_DYN_IS_RETRY_DISABLED ]()) {
|
|
4358
|
+
_self[_DYN__ON_PARTIAL_SUCCESS ](payload, results);
|
|
4182
4359
|
}
|
|
4183
4360
|
else {
|
|
4184
|
-
_self
|
|
4361
|
+
_self[_DYN__ON_ERROR ](payload, _formatErrorMessageXdr(xdr));
|
|
4185
4362
|
}
|
|
4186
4363
|
}
|
|
4187
4364
|
};
|
|
@@ -4199,24 +4376,24 @@
|
|
|
4199
4376
|
if ((status < 200 || status >= 300) && status !== 0) {
|
|
4200
4377
|
if (status === 301 || status === 307 || status === 308) {
|
|
4201
4378
|
if (!_checkAndUpdateEndPointUrl(responseUrl)) {
|
|
4202
|
-
_self
|
|
4379
|
+
_self[_DYN__ON_ERROR ](payload, errorMessage);
|
|
4203
4380
|
return;
|
|
4204
4381
|
}
|
|
4205
4382
|
}
|
|
4206
|
-
if (!_self
|
|
4383
|
+
if (!_self[_DYN__SENDER_CONFIG ][_DYN_IS_RETRY_DISABLED ]() && _isRetriable(status)) {
|
|
4207
4384
|
_resendPayload(payload);
|
|
4208
|
-
_throwInternal(_self
|
|
4209
|
-
"Response code " + status + ". Will retry to send " + payload
|
|
4385
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " +
|
|
4386
|
+
"Response code " + status + ". Will retry to send " + payload[_DYN_LENGTH ] + " items.");
|
|
4210
4387
|
}
|
|
4211
4388
|
else {
|
|
4212
|
-
_self
|
|
4389
|
+
_self[_DYN__ON_ERROR ](payload, errorMessage);
|
|
4213
4390
|
}
|
|
4214
4391
|
}
|
|
4215
4392
|
else if (_offlineListener && !_offlineListener.isOnline()) {
|
|
4216
|
-
if (!_self
|
|
4393
|
+
if (!_self[_DYN__SENDER_CONFIG ][_DYN_IS_RETRY_DISABLED ]()) {
|
|
4217
4394
|
var offlineBackOffMultiplier = 10;
|
|
4218
4395
|
_resendPayload(payload, offlineBackOffMultiplier);
|
|
4219
|
-
_throwInternal(_self
|
|
4396
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". Offline - Response Code: ".concat(status, ". Offline status: ").concat(!_offlineListener.isOnline(), ". Will retry to send ").concat(payload.length, " items."));
|
|
4220
4397
|
}
|
|
4221
4398
|
}
|
|
4222
4399
|
else {
|
|
@@ -4225,16 +4402,16 @@
|
|
|
4225
4402
|
if (!response) {
|
|
4226
4403
|
response = _parseResponse(res);
|
|
4227
4404
|
}
|
|
4228
|
-
if (response && !_self
|
|
4229
|
-
_self
|
|
4405
|
+
if (response && !_self[_DYN__SENDER_CONFIG ][_DYN_IS_RETRY_DISABLED ]()) {
|
|
4406
|
+
_self[_DYN__ON_PARTIAL_SUCCESS ](payload, response);
|
|
4230
4407
|
}
|
|
4231
4408
|
else {
|
|
4232
|
-
_self
|
|
4409
|
+
_self[_DYN__ON_ERROR ](payload, errorMessage);
|
|
4233
4410
|
}
|
|
4234
4411
|
}
|
|
4235
4412
|
else {
|
|
4236
4413
|
_consecutiveErrors = 0;
|
|
4237
|
-
_self
|
|
4414
|
+
_self[_DYN__ON_SUCCESS ](payload, countOfItemsInPayload);
|
|
4238
4415
|
}
|
|
4239
4416
|
}
|
|
4240
4417
|
}
|
|
@@ -4243,8 +4420,8 @@
|
|
|
4243
4420
|
return false;
|
|
4244
4421
|
}
|
|
4245
4422
|
if (!isNullOrUndefined(responseUrl) && responseUrl !== "") {
|
|
4246
|
-
if (responseUrl !== _self
|
|
4247
|
-
_self
|
|
4423
|
+
if (responseUrl !== _self[_DYN__SENDER_CONFIG ][_DYN_ENDPOINT_URL ]()) {
|
|
4424
|
+
_self[_DYN__SENDER_CONFIG ][_DYN_ENDPOINT_URL ] = function () { return responseUrl; };
|
|
4248
4425
|
++_stamp_specific_redirects;
|
|
4249
4426
|
return true;
|
|
4250
4427
|
}
|
|
@@ -4261,61 +4438,61 @@
|
|
|
4261
4438
|
}
|
|
4262
4439
|
function _doBeaconSend(payload) {
|
|
4263
4440
|
var nav = getNavigator();
|
|
4264
|
-
var buffer = _self
|
|
4265
|
-
var url = _self
|
|
4266
|
-
var batch = _self._buffer
|
|
4441
|
+
var buffer = _self[_DYN__BUFFER ];
|
|
4442
|
+
var url = _self[_DYN__SENDER_CONFIG ][_DYN_ENDPOINT_URL ]();
|
|
4443
|
+
var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
|
|
4267
4444
|
var plainTextBatch = new Blob([batch], { type: "text/plain;charset=UTF-8" });
|
|
4268
4445
|
var queued = nav.sendBeacon(url, plainTextBatch);
|
|
4269
4446
|
if (queued) {
|
|
4270
|
-
buffer
|
|
4271
|
-
_self._onSuccess(payload, payload
|
|
4447
|
+
buffer[_DYN_MARK_AS_SENT ](payload);
|
|
4448
|
+
_self._onSuccess(payload, payload[_DYN_LENGTH ]);
|
|
4272
4449
|
}
|
|
4273
4450
|
return queued;
|
|
4274
4451
|
}
|
|
4275
4452
|
function _beaconSender(payload, isAsync) {
|
|
4276
|
-
if (isArray(payload) && payload
|
|
4453
|
+
if (isArray(payload) && payload[_DYN_LENGTH ] > 0) {
|
|
4277
4454
|
if (!_doBeaconSend(payload)) {
|
|
4278
4455
|
var droppedPayload = [];
|
|
4279
|
-
for (var lp = 0; lp < payload
|
|
4456
|
+
for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
|
|
4280
4457
|
var thePayload = payload[lp];
|
|
4281
4458
|
if (!_doBeaconSend([thePayload])) {
|
|
4282
|
-
droppedPayload
|
|
4459
|
+
droppedPayload[_DYN_PUSH ](thePayload);
|
|
4283
4460
|
}
|
|
4284
4461
|
}
|
|
4285
|
-
if (droppedPayload
|
|
4462
|
+
if (droppedPayload[_DYN_LENGTH ] > 0) {
|
|
4286
4463
|
_fallbackSender && _fallbackSender(droppedPayload, true);
|
|
4287
|
-
_throwInternal(_self
|
|
4464
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
|
|
4288
4465
|
}
|
|
4289
4466
|
}
|
|
4290
4467
|
}
|
|
4291
4468
|
}
|
|
4292
4469
|
function _xhrSender(payload, isAsync) {
|
|
4293
4470
|
var xhr = new XMLHttpRequest();
|
|
4294
|
-
var endPointUrl = _self
|
|
4471
|
+
var endPointUrl = _self[_DYN__SENDER_CONFIG ][_DYN_ENDPOINT_URL ]();
|
|
4295
4472
|
try {
|
|
4296
4473
|
xhr[DisabledPropertyName] = true;
|
|
4297
4474
|
}
|
|
4298
4475
|
catch (e) {
|
|
4299
4476
|
}
|
|
4300
4477
|
xhr.open("POST", endPointUrl, isAsync);
|
|
4301
|
-
xhr
|
|
4478
|
+
xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
|
|
4302
4479
|
if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
|
|
4303
|
-
xhr
|
|
4480
|
+
xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
|
|
4304
4481
|
}
|
|
4305
4482
|
arrForEach(objKeys(_headers), function (headerName) {
|
|
4306
|
-
xhr
|
|
4483
|
+
xhr[_DYN_SET_REQUEST_HEADER ](headerName, _headers[headerName]);
|
|
4307
4484
|
});
|
|
4308
|
-
xhr.onreadystatechange = function () { return _self._xhrReadyStateChange(xhr, payload, payload
|
|
4309
|
-
xhr.onerror = function (event) { return _self
|
|
4310
|
-
var batch = _self._buffer
|
|
4485
|
+
xhr.onreadystatechange = function () { return _self._xhrReadyStateChange(xhr, payload, payload[_DYN_LENGTH ]); };
|
|
4486
|
+
xhr.onerror = function (event) { return _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXhr(xhr), event); };
|
|
4487
|
+
var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
|
|
4311
4488
|
xhr.send(batch);
|
|
4312
|
-
_self._buffer
|
|
4489
|
+
_self._buffer[_DYN_MARK_AS_SENT ](payload);
|
|
4313
4490
|
}
|
|
4314
4491
|
function _fetchKeepAliveSender(payload, isAsync) {
|
|
4315
4492
|
if (isArray(payload)) {
|
|
4316
|
-
var payloadSize = payload
|
|
4317
|
-
for (var lp = 0; lp < payload
|
|
4318
|
-
payloadSize += payload[lp]
|
|
4493
|
+
var payloadSize = payload[_DYN_LENGTH ];
|
|
4494
|
+
for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
|
|
4495
|
+
payloadSize += payload[lp][_DYN_LENGTH ];
|
|
4319
4496
|
}
|
|
4320
4497
|
if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
|
|
4321
4498
|
_doFetchSender(payload, false);
|
|
@@ -4325,7 +4502,7 @@
|
|
|
4325
4502
|
}
|
|
4326
4503
|
else {
|
|
4327
4504
|
_fallbackSender && _fallbackSender(payload, true);
|
|
4328
|
-
_throwInternal(_self
|
|
4505
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
|
|
4329
4506
|
}
|
|
4330
4507
|
}
|
|
4331
4508
|
}
|
|
@@ -4334,15 +4511,15 @@
|
|
|
4334
4511
|
}
|
|
4335
4512
|
function _doFetchSender(payload, isAsync) {
|
|
4336
4513
|
var _a;
|
|
4337
|
-
var endPointUrl = _self
|
|
4338
|
-
var batch = _self._buffer
|
|
4514
|
+
var endPointUrl = _self[_DYN__SENDER_CONFIG ][_DYN_ENDPOINT_URL ]();
|
|
4515
|
+
var batch = _self._buffer[_DYN_BATCH_PAYLOADS ](payload);
|
|
4339
4516
|
var plainTextBatch = new Blob([batch], { type: "application/json" });
|
|
4340
4517
|
var requestHeaders = new Headers();
|
|
4341
|
-
var batchLength = batch
|
|
4518
|
+
var batchLength = batch[_DYN_LENGTH ];
|
|
4342
4519
|
var ignoreResponse = false;
|
|
4343
4520
|
var responseHandled = false;
|
|
4344
4521
|
if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
|
|
4345
|
-
requestHeaders.append(RequestHeaders
|
|
4522
|
+
requestHeaders.append(RequestHeaders[6 ], RequestHeaders[7 ]);
|
|
4346
4523
|
}
|
|
4347
4524
|
arrForEach(objKeys(_headers), function (headerName) {
|
|
4348
4525
|
requestHeaders.append(headerName, _headers[headerName]);
|
|
@@ -4366,7 +4543,7 @@
|
|
|
4366
4543
|
}
|
|
4367
4544
|
catch (e) {
|
|
4368
4545
|
}
|
|
4369
|
-
_self._buffer
|
|
4546
|
+
_self._buffer[_DYN_MARK_AS_SENT ](payload);
|
|
4370
4547
|
try {
|
|
4371
4548
|
fetch(request).then(function (response) {
|
|
4372
4549
|
if (!isAsync) {
|
|
@@ -4376,11 +4553,11 @@
|
|
|
4376
4553
|
if (!responseHandled) {
|
|
4377
4554
|
responseHandled = true;
|
|
4378
4555
|
if (!response.ok) {
|
|
4379
|
-
_self
|
|
4556
|
+
_self[_DYN__ON_ERROR ](payload, response.statusText);
|
|
4380
4557
|
}
|
|
4381
4558
|
else {
|
|
4382
4559
|
response.text().then(function (text) {
|
|
4383
|
-
_checkResponsStatus(response.status, payload, response.url, payload
|
|
4560
|
+
_checkResponsStatus(response.status, payload, response.url, payload[_DYN_LENGTH ], response.statusText, text);
|
|
4384
4561
|
});
|
|
4385
4562
|
}
|
|
4386
4563
|
}
|
|
@@ -4391,32 +4568,32 @@
|
|
|
4391
4568
|
}
|
|
4392
4569
|
if (!responseHandled) {
|
|
4393
4570
|
responseHandled = true;
|
|
4394
|
-
_self
|
|
4571
|
+
_self[_DYN__ON_ERROR ](payload, error.message);
|
|
4395
4572
|
}
|
|
4396
4573
|
});
|
|
4397
4574
|
}
|
|
4398
4575
|
catch (e) {
|
|
4399
4576
|
if (!responseHandled) {
|
|
4400
|
-
_self
|
|
4577
|
+
_self[_DYN__ON_ERROR ](payload, dumpObj(e));
|
|
4401
4578
|
}
|
|
4402
4579
|
}
|
|
4403
4580
|
if (ignoreResponse && !responseHandled) {
|
|
4404
4581
|
responseHandled = true;
|
|
4405
|
-
_self._onSuccess(payload, payload
|
|
4582
|
+
_self._onSuccess(payload, payload[_DYN_LENGTH ]);
|
|
4406
4583
|
}
|
|
4407
4584
|
}
|
|
4408
4585
|
function _parseResponse(response) {
|
|
4409
4586
|
try {
|
|
4410
4587
|
if (response && response !== "") {
|
|
4411
4588
|
var result = getJSON().parse(response);
|
|
4412
|
-
if (result && result.itemsReceived && result.itemsReceived >= result
|
|
4413
|
-
result.itemsReceived - result.itemsAccepted === result.errors
|
|
4589
|
+
if (result && result.itemsReceived && result.itemsReceived >= result[_DYN_ITEMS_ACCEPTED ] &&
|
|
4590
|
+
result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH ]) {
|
|
4414
4591
|
return result;
|
|
4415
4592
|
}
|
|
4416
4593
|
}
|
|
4417
4594
|
}
|
|
4418
4595
|
catch (e) {
|
|
4419
|
-
_throwInternal(_self
|
|
4596
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
|
|
4420
4597
|
response: response
|
|
4421
4598
|
});
|
|
4422
4599
|
}
|
|
@@ -4424,15 +4601,15 @@
|
|
|
4424
4601
|
}
|
|
4425
4602
|
function _resendPayload(payload, linearFactor) {
|
|
4426
4603
|
if (linearFactor === void 0) { linearFactor = 1; }
|
|
4427
|
-
if (!payload || payload
|
|
4604
|
+
if (!payload || payload[_DYN_LENGTH ] === 0) {
|
|
4428
4605
|
return;
|
|
4429
4606
|
}
|
|
4430
|
-
var buffer = _self
|
|
4431
|
-
buffer
|
|
4607
|
+
var buffer = _self[_DYN__BUFFER ];
|
|
4608
|
+
buffer[_DYN_CLEAR_SENT ](payload);
|
|
4432
4609
|
_consecutiveErrors++;
|
|
4433
4610
|
for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {
|
|
4434
4611
|
var item = payload_1[_i];
|
|
4435
|
-
buffer
|
|
4612
|
+
buffer[_DYN_ENQUEUE ](item);
|
|
4436
4613
|
}
|
|
4437
4614
|
_setRetryTime(linearFactor);
|
|
4438
4615
|
_setupTimer();
|
|
@@ -4455,10 +4632,10 @@
|
|
|
4455
4632
|
function _setupTimer() {
|
|
4456
4633
|
if (!_timeoutHandle && !_paused) {
|
|
4457
4634
|
var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;
|
|
4458
|
-
var timerValue = Math.max(_self
|
|
4635
|
+
var timerValue = Math.max(_self[_DYN__SENDER_CONFIG ][_DYN_MAX_BATCH_INTERVAL ](), retryInterval);
|
|
4459
4636
|
_timeoutHandle = setTimeout(function () {
|
|
4460
4637
|
_timeoutHandle = null;
|
|
4461
|
-
_self
|
|
4638
|
+
_self[_DYN_TRIGGER_SEND ](true, null, 1 );
|
|
4462
4639
|
}, timerValue);
|
|
4463
4640
|
}
|
|
4464
4641
|
}
|
|
@@ -4480,23 +4657,23 @@
|
|
|
4480
4657
|
return message;
|
|
4481
4658
|
}
|
|
4482
4659
|
function _xdrSender(payload, isAsync) {
|
|
4483
|
-
var buffer = _self
|
|
4660
|
+
var buffer = _self[_DYN__BUFFER ];
|
|
4484
4661
|
var _window = getWindow();
|
|
4485
4662
|
var xdr = new XDomainRequest();
|
|
4486
4663
|
xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };
|
|
4487
|
-
xdr.onerror = function (event) { return _self
|
|
4664
|
+
xdr.onerror = function (event) { return _self[_DYN__ON_ERROR ](payload, _formatErrorMessageXdr(xdr), event); };
|
|
4488
4665
|
var hostingProtocol = _window && _window.location && _window.location.protocol || "";
|
|
4489
|
-
if (_self
|
|
4490
|
-
_throwInternal(_self
|
|
4666
|
+
if (_self[_DYN__SENDER_CONFIG ][_DYN_ENDPOINT_URL ]().lastIndexOf(hostingProtocol, 0) !== 0) {
|
|
4667
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " +
|
|
4491
4668
|
"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
|
|
4492
|
-
buffer
|
|
4669
|
+
buffer[_DYN_CLEAR ]();
|
|
4493
4670
|
return;
|
|
4494
4671
|
}
|
|
4495
|
-
var endpointUrl = _self
|
|
4672
|
+
var endpointUrl = _self[_DYN__SENDER_CONFIG ][_DYN_ENDPOINT_URL ]().replace(/^(https?:)/, "");
|
|
4496
4673
|
xdr.open("POST", endpointUrl);
|
|
4497
|
-
var batch = buffer
|
|
4674
|
+
var batch = buffer[_DYN_BATCH_PAYLOADS ](payload);
|
|
4498
4675
|
xdr.send(batch);
|
|
4499
|
-
buffer
|
|
4676
|
+
buffer[_DYN_MARK_AS_SENT ](payload);
|
|
4500
4677
|
}
|
|
4501
4678
|
function _formatErrorMessageXdr(xdr, message) {
|
|
4502
4679
|
if (xdr) {
|
|
@@ -4513,27 +4690,27 @@
|
|
|
4513
4690
|
}
|
|
4514
4691
|
function _notifySendRequest(sendRequest, isAsync) {
|
|
4515
4692
|
var manager = _getNotifyMgr();
|
|
4516
|
-
if (manager && manager
|
|
4693
|
+
if (manager && manager[_DYN_EVENTS_SEND_REQUEST ]) {
|
|
4517
4694
|
try {
|
|
4518
|
-
manager
|
|
4695
|
+
manager[_DYN_EVENTS_SEND_REQUEST ](sendRequest, isAsync);
|
|
4519
4696
|
}
|
|
4520
4697
|
catch (e) {
|
|
4521
|
-
_throwInternal(_self
|
|
4698
|
+
_throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 74 , "send request notification failed: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
4522
4699
|
}
|
|
4523
4700
|
}
|
|
4524
4701
|
}
|
|
4525
4702
|
function _validateInstrumentationKey(config) {
|
|
4526
|
-
var disableIKeyValidationFlag = isNullOrUndefined(config
|
|
4703
|
+
var disableIKeyValidationFlag = isNullOrUndefined(config[_DYN_DISABLE_INSTRUMENTAT7 ]) ? false : config[_DYN_DISABLE_INSTRUMENTAT7 ];
|
|
4527
4704
|
if (disableIKeyValidationFlag) {
|
|
4528
4705
|
return true;
|
|
4529
4706
|
}
|
|
4530
4707
|
var UUID_Regex = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$";
|
|
4531
4708
|
var regexp = new RegExp(UUID_Regex);
|
|
4532
|
-
return regexp.test(config
|
|
4709
|
+
return regexp.test(config[_DYN_INSTRUMENTATION_KEY ]);
|
|
4533
4710
|
}
|
|
4534
4711
|
function _initDefaults() {
|
|
4535
|
-
_self
|
|
4536
|
-
_self
|
|
4712
|
+
_self[_DYN__SENDER ] = null;
|
|
4713
|
+
_self[_DYN__BUFFER ] = null;
|
|
4537
4714
|
_self._appId = null;
|
|
4538
4715
|
_self._sample = null;
|
|
4539
4716
|
_headers = {};
|