@microsoft/applicationinsights-dependencies-js 3.4.0-nightlybeta3.2505-35 → 3.4.0-nightlybeta3.2507-23
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/es5/applicationinsights-dependencies-js.cjs.js +870 -322
- package/browser/es5/applicationinsights-dependencies-js.cjs.js.map +1 -1
- package/browser/es5/applicationinsights-dependencies-js.cjs.min.js +2 -2
- package/browser/es5/applicationinsights-dependencies-js.cjs.min.js.map +1 -1
- package/browser/es5/applicationinsights-dependencies-js.gbl.js +872 -324
- package/browser/es5/applicationinsights-dependencies-js.gbl.js.map +1 -1
- package/browser/es5/applicationinsights-dependencies-js.gbl.min.js +2 -2
- package/browser/es5/applicationinsights-dependencies-js.gbl.min.js.map +1 -1
- package/browser/es5/applicationinsights-dependencies-js.integrity.json +25 -25
- package/browser/es5/applicationinsights-dependencies-js.js +872 -324
- package/browser/es5/applicationinsights-dependencies-js.js.map +1 -1
- package/browser/es5/applicationinsights-dependencies-js.min.js +2 -2
- package/browser/es5/applicationinsights-dependencies-js.min.js.map +1 -1
- package/dist/es5/applicationinsights-dependencies-js.js +870 -322
- package/dist/es5/applicationinsights-dependencies-js.js.map +1 -1
- package/dist/es5/applicationinsights-dependencies-js.min.js +2 -2
- package/dist/es5/applicationinsights-dependencies-js.min.js.map +1 -1
- package/dist-es5/DependencyInitializer.js +1 -1
- package/dist-es5/DependencyListener.js +1 -1
- package/dist-es5/InternalConstants.js +2 -1
- package/dist-es5/InternalConstants.js.map +1 -1
- package/dist-es5/__DynamicConstants.js +15 -19
- package/dist-es5/__DynamicConstants.js.map +1 -1
- package/dist-es5/ajax.js +130 -62
- package/dist-es5/ajax.js.map +1 -1
- package/dist-es5/ajaxRecord.js +137 -148
- package/dist-es5/ajaxRecord.js.map +1 -1
- package/dist-es5/applicationinsights-dependencies-js.js +1 -2
- package/dist-es5/applicationinsights-dependencies-js.js.map +1 -1
- package/package.json +3 -3
- package/types/applicationinsights-dependencies-js.d.ts +150 -50
- package/types/applicationinsights-dependencies-js.namespaced.d.ts +628 -88
- package/dist-es5/ajaxUtils.js +0 -30
- package/dist-es5/ajaxUtils.js.map +0 -1
package/dist-es5/ajaxRecord.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Dependencies Plugin, 3.4.0-nightlybeta3.
|
|
2
|
+
* Application Insights JavaScript SDK - Dependencies Plugin, 3.4.0-nightlybeta3.2507-23
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
import dynamicProto from "@microsoft/dynamicproto-js";
|
|
8
7
|
import { Extensions, dataSanitizeUrl, dateTimeUtilsDuration, msToTimeSpan, urlGetAbsoluteUrl, urlGetCompleteUrl } from "@microsoft/applicationinsights-common";
|
|
9
8
|
import { arrForEach, isNullOrUndefined, isNumber, isString, normalizeJsName, objForEachKey, objKeys } from "@microsoft/applicationinsights-core-js";
|
|
10
9
|
import { mathRound } from "@nevware21/ts-utils";
|
|
11
10
|
import { STR_DURATION, STR_PROPERTIES } from "./InternalConstants";
|
|
12
|
-
import { _DYN_ABORTED, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_ERROR_STATUS_TEXT,
|
|
11
|
+
import { _DYN_ABORTED, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_ERROR_STATUS_TEXT, _DYN_GET_ABSOLUTE_URL, _DYN_HEADER_MAP, _DYN_LENGTH, _DYN_METHOD, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE_FINISHED_TI12, _DYN_RESPONSE_TEXT, _DYN_SPAN_ID, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE11, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__CREATE_TRACK_ITEM } from "./__DynamicConstants";
|
|
13
12
|
/** @ignore */
|
|
14
13
|
function _calcPerfDuration(resourceEntry, start, end) {
|
|
15
14
|
var result = 0;
|
|
@@ -136,7 +135,7 @@ function _populatePerfData(ajaxData, dependency) {
|
|
|
136
135
|
propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);
|
|
137
136
|
}
|
|
138
137
|
else {
|
|
139
|
-
if (ajaxData
|
|
138
|
+
if (ajaxData.perfMark) {
|
|
140
139
|
propsSet |= _setPerfValue(props, "missing", ajaxData.perfAttempts);
|
|
141
140
|
}
|
|
142
141
|
}
|
|
@@ -144,158 +143,148 @@ function _populatePerfData(ajaxData, dependency) {
|
|
|
144
143
|
dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;
|
|
145
144
|
}
|
|
146
145
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
146
|
+
/**
|
|
147
|
+
* Factory function to create an XHR monitoring state object
|
|
148
|
+
* @returns An object implementing IXHRMonitoringState interface
|
|
149
|
+
*/
|
|
150
|
+
export function createXHRMonitoringState() {
|
|
151
|
+
var _a;
|
|
152
|
+
return _a = {
|
|
153
|
+
openDone: false,
|
|
154
|
+
setRequestHeaderDone: false,
|
|
155
|
+
sendDone: false,
|
|
156
|
+
abortDone: false
|
|
157
|
+
},
|
|
158
|
+
_a[_DYN_STATE_CHANGE_ATTACHE11 /* @min:stateChangeAttached */] = false,
|
|
159
|
+
_a;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Factory function to create an ajax record that implements IAjaxRecordInternal
|
|
163
|
+
* @param traceCtx - The distributed trace context for the ajax request
|
|
164
|
+
* @param logger - The diagnostic logger instance
|
|
165
|
+
* @returns An object implementing IAjaxRecordInternal interface
|
|
166
|
+
*/
|
|
167
|
+
export function createAjaxRecord(traceCtx, logger) {
|
|
168
|
+
var _a;
|
|
169
|
+
var _logger = logger;
|
|
170
|
+
// Create the ajax record object implementing IAjaxRecordInternal
|
|
171
|
+
var ajaxRecord = (_a = {
|
|
172
|
+
// Initialize all properties with default values
|
|
173
|
+
perfMark: null,
|
|
174
|
+
completed: false,
|
|
175
|
+
requestHeadersSize: null
|
|
176
|
+
},
|
|
177
|
+
_a[_DYN_REQUEST_HEADERS /* @min:requestHeaders */] = null,
|
|
178
|
+
_a.responseReceivingDuration = null,
|
|
179
|
+
_a.callbackDuration = null,
|
|
180
|
+
_a[_DYN_AJAX_TOTAL_DURATION /* @min:ajaxTotalDuration */] = null,
|
|
181
|
+
_a.aborted = 0,
|
|
182
|
+
_a.pageUrl = null,
|
|
183
|
+
_a.requestUrl = null,
|
|
184
|
+
_a.requestSize = 0,
|
|
185
|
+
_a.method = null,
|
|
186
|
+
_a.status = null,
|
|
187
|
+
_a[_DYN_REQUEST_SENT_TIME /* @min:requestSentTime */] = null,
|
|
188
|
+
_a.responseStartedTime = null,
|
|
189
|
+
_a[_DYN_RESPONSE_FINISHED_TI12 /* @min:responseFinishedTime */] = null,
|
|
190
|
+
_a.callbackFinishedTime = null,
|
|
191
|
+
_a.endTime = null,
|
|
192
|
+
_a.xhrMonitoringState = createXHRMonitoringState(),
|
|
193
|
+
_a.clientFailure = 0,
|
|
194
|
+
_a.traceCtx = traceCtx,
|
|
195
|
+
_a.perfTiming = null,
|
|
196
|
+
_a[_DYN_GET_ABSOLUTE_URL /* @min:getAbsoluteUrl */] = function () {
|
|
197
|
+
return ajaxRecord[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(ajaxRecord[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;
|
|
198
|
+
},
|
|
199
|
+
_a.getPathName = function () {
|
|
200
|
+
return ajaxRecord[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(ajaxRecord[_DYN_METHOD /* @min:%2emethod */], ajaxRecord[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;
|
|
201
|
+
},
|
|
202
|
+
_a[_DYN__CREATE_TRACK_ITEM /* @min:CreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {
|
|
203
|
+
var _a;
|
|
204
|
+
// round to 3 decimal points
|
|
205
|
+
ajaxRecord.ajaxTotalDuration = mathRound(dateTimeUtilsDuration(ajaxRecord.requestSentTime, ajaxRecord.responseFinishedTime) * 1000) / 1000;
|
|
206
|
+
if (ajaxRecord[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {
|
|
207
|
+
return null;
|
|
208
|
+
}
|
|
209
|
+
var dependency = (_a = {
|
|
210
|
+
// Always use the traceId and spanId from the traceCtx, this is the same as the
|
|
211
|
+
// traceId and spanId used to create the ajaxRecord, this is to ensure that
|
|
212
|
+
// the traceId and spanId are always the same for the ajaxRecord and the dependency
|
|
213
|
+
// This is important for the distributed tracing to work correctly
|
|
214
|
+
id: "|" + traceCtx[_DYN_TRACE_ID /* @min:%2etraceId */] + "." + traceCtx[_DYN_SPAN_ID /* @min:%2espanId */],
|
|
215
|
+
target: ajaxRecord[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](),
|
|
216
|
+
name: ajaxRecord.getPathName(),
|
|
217
|
+
type: ajaxType,
|
|
218
|
+
startTime: null,
|
|
219
|
+
duration: ajaxRecord[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],
|
|
220
|
+
success: (+(ajaxRecord[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(ajaxRecord[_DYN_STATUS /* @min:%2estatus */])) < 400,
|
|
221
|
+
responseCode: (+(ajaxRecord[_DYN_STATUS /* @min:%2estatus */]))
|
|
222
|
+
},
|
|
223
|
+
_a[STR_PROPERTIES] = { HttpMethod: ajaxRecord[_DYN_METHOD /* @min:%2emethod */] },
|
|
224
|
+
_a);
|
|
225
|
+
var props = dependency[STR_PROPERTIES];
|
|
226
|
+
if (ajaxRecord[_DYN_ABORTED /* @min:%2eaborted */]) {
|
|
227
|
+
props[_DYN_ABORTED /* @min:%2eaborted */] = true;
|
|
228
|
+
}
|
|
229
|
+
if (ajaxRecord[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {
|
|
230
|
+
// Set the correct dependency start time
|
|
231
|
+
dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();
|
|
232
|
+
dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(ajaxRecord[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);
|
|
233
|
+
}
|
|
234
|
+
// Add Ajax perf details if available
|
|
235
|
+
_populatePerfData(this, dependency);
|
|
236
|
+
if (enableRequestHeaderTracking) {
|
|
237
|
+
if (objKeys(ajaxRecord.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {
|
|
238
|
+
props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = ajaxRecord[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];
|
|
234
239
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
+
}
|
|
241
|
+
if (getResponse) {
|
|
242
|
+
var response = getResponse();
|
|
243
|
+
if (response) {
|
|
244
|
+
// enrich dependency target with correlation context from the server
|
|
245
|
+
var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];
|
|
246
|
+
if (correlationContext) {
|
|
247
|
+
dependency.correlationContext = /* dependency.target + " | " + */ correlationContext;
|
|
240
248
|
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
if (response) {
|
|
245
|
-
// enrich dependency target with correlation context from the server
|
|
246
|
-
var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];
|
|
247
|
-
if (correlationContext) {
|
|
248
|
-
dependency.correlationContext = /* dependency.target + " | " + */ correlationContext;
|
|
249
|
+
if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {
|
|
250
|
+
if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {
|
|
251
|
+
props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];
|
|
249
252
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
if (self[_DYN_STATUS /* @min:%2estatus */] >= 400) {
|
|
257
|
-
var responseType = response.type;
|
|
258
|
-
if (responseType === "" || responseType === "text") {
|
|
259
|
-
props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + " - " + response[strResponseText] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];
|
|
260
|
-
}
|
|
261
|
-
if (responseType === "json") {
|
|
262
|
-
props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + " - " + JSON.stringify(response.response) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];
|
|
263
|
-
}
|
|
253
|
+
}
|
|
254
|
+
if (ajaxRecord[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {
|
|
255
|
+
if ((+(ajaxRecord[_DYN_STATUS /* @min:%2estatus */])) >= 400) {
|
|
256
|
+
var responseType = response.type;
|
|
257
|
+
if (responseType === "" || responseType === "text") {
|
|
258
|
+
props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + " - " + response[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];
|
|
264
259
|
}
|
|
265
|
-
|
|
266
|
-
props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */]
|
|
260
|
+
if (responseType === "json") {
|
|
261
|
+
props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + " - " + JSON.stringify(response.response) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];
|
|
267
262
|
}
|
|
268
263
|
}
|
|
264
|
+
else if (ajaxRecord[_DYN_STATUS /* @min:%2estatus */] === 0) {
|
|
265
|
+
props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */] || "";
|
|
266
|
+
}
|
|
269
267
|
}
|
|
270
268
|
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
269
|
+
}
|
|
270
|
+
return dependency;
|
|
271
|
+
},
|
|
272
|
+
_a.getPartAProps = function () {
|
|
273
|
+
var partA = null;
|
|
274
|
+
var parentCtx = ajaxRecord.traceCtx.parentCtx;
|
|
275
|
+
if (parentCtx && (parentCtx[_DYN_TRACE_ID /* @min:%2etraceId */] || parentCtx[_DYN_SPAN_ID /* @min:%2espanId */])) {
|
|
276
|
+
partA = {};
|
|
277
|
+
var traceExt = partA[Extensions.TraceExt] = {
|
|
278
|
+
traceID: parentCtx[_DYN_TRACE_ID /* @min:%2etraceId */],
|
|
279
|
+
parentID: parentCtx[_DYN_SPAN_ID /* @min:%2espanId */]
|
|
280
|
+
};
|
|
281
|
+
if (!isNullOrUndefined(parentCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {
|
|
282
|
+
traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = parentCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];
|
|
285
283
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.
|
|
291
|
-
// Removed Stub for ajaxRecord.prototype.getPathName.
|
|
292
|
-
// Removed Stub for ajaxRecord.prototype.CreateTrackItem.
|
|
293
|
-
// Removed Stub for ajaxRecord.prototype.getPartAProps.
|
|
294
|
-
// This is a workaround for an IE bug when using dynamicProto() with classes that don't have any
|
|
295
|
-
// non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.
|
|
296
|
-
ajaxRecord.__ieDyn=1;
|
|
297
|
-
|
|
284
|
+
}
|
|
285
|
+
return partA;
|
|
286
|
+
},
|
|
287
|
+
_a);
|
|
298
288
|
return ajaxRecord;
|
|
299
|
-
}
|
|
300
|
-
export { ajaxRecord };
|
|
289
|
+
}
|
|
301
290
|
//# sourceMappingURL=ajaxRecord.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ajaxRecord.js.map","sources":["ajaxRecord.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { Extensions, dataSanitizeUrl, dateTimeUtilsDuration, msToTimeSpan, urlGetAbsoluteUrl, urlGetCompleteUrl } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isNullOrUndefined, isNumber, isString, normalizeJsName, objForEachKey, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { mathRound } from \"@nevware21/ts-utils\";\r\nimport { STR_DURATION, STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_ERROR_STATUS_TEXT, _DYN_EVENT_TRACE_CTX, _DYN_GET_ABSOLUTE_URL, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADER_MAP, _DYN_LENGTH, _DYN_METHOD, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE_FINISHED_TI12, _DYN_SPAN_ID, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE11, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */];\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[STR_DURATION /* @min:%2eduration */];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, STR_DURATION, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */]) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self.openDone = false;\r\n self.setRequestHeaderDone = false;\r\n self.sendDone = false;\r\n self.abortDone = false;\r\n // <summary>True, if onreadyStateChangeCallback function attached to xhr, otherwise false</summary>\r\n self[_DYN_STATE_CHANGE_ATTACHE11 /* @min:%2estateChangeAttached */] = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceId, spanId, logger, traceCtx) {\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self[_DYN_PERF_MARK /* @min:%2eperfMark */] = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] = null;\r\n self[_DYN_ABORTED /* @min:%2eaborted */] = 0;\r\n self.pageUrl = null;\r\n self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = null;\r\n self.requestSize = 0;\r\n self[_DYN_METHOD /* @min:%2emethod */] = null;\r\n self[_DYN_STATUS /* @min:%2estatus */] = null;\r\n self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = null;\r\n self.responseStartedTime = null;\r\n self[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */] = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self[_DYN_TRACE_ID /* @min:%2etraceID */] = traceId;\r\n self[_DYN_SPAN_ID /* @min:%2espanID */] = spanId;\r\n self[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();\r\n if (traceCtx) {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = {\r\n traceId: traceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */](),\r\n spanId: traceCtx.getSpanId(),\r\n traceFlags: traceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]()\r\n };\r\n }\r\n else {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = null;\r\n }\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;\r\n };\r\n self.getPathName = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD /* @min:%2emethod */], self[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;\r\n };\r\n self[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = mathRound(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + self[_DYN_SPAN_ID /* @min:%2espanID */],\r\n target: self[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](),\r\n name: self.getPathName(),\r\n type: ajaxType,\r\n startTime: null,\r\n duration: self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],\r\n success: (+(self[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(self[_DYN_STATUS /* @min:%2estatus */])) < 400,\r\n responseCode: (+(self[_DYN_STATUS /* @min:%2estatus */]))\r\n },\r\n _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD /* @min:%2emethod */] },\r\n _a);\r\n var props = dependency[STR_PROPERTIES];\r\n if (self[_DYN_ABORTED /* @min:%2eaborted */]) {\r\n props[_DYN_ABORTED /* @min:%2eaborted */] = true;\r\n }\r\n if (self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {\r\n // Set the correct dependency start time\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(self.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {\r\n if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];\r\n }\r\n }\r\n if (self[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {\r\n if (self[_DYN_STATUS /* @min:%2estatus */] >= 400) {\r\n var responseType = response.type;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + response[strResponseText] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n if (responseType === \"json\") {\r\n props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + JSON.stringify(response.response) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n }\r\n else if (self[_DYN_STATUS /* @min:%2estatus */] === 0) {\r\n props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */] || \"\";\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n };\r\n self[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */] = function () {\r\n var partA = null;\r\n var traceCtx = self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */];\r\n if (traceCtx && (traceCtx.traceId || traceCtx.spanId)) {\r\n partA = {};\r\n var traceExt = partA[Extensions.TraceExt] = {\r\n traceID: traceCtx.traceId,\r\n parentID: traceCtx.spanId\r\n };\r\n if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {\r\n traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n }\r\n }\r\n return partA;\r\n };\r\n });\r\n }\r\n ajaxRecord.prototype.getAbsoluteUrl = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ajaxRecord.prototype.getPathName = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ajaxRecord.prototype.CreateTrackItem = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ajaxRecord.prototype.getPartAProps = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n//# sourceMappingURL=ajaxRecord.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;uDAeM,CAAC;;;;;sBACe;AACtB;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"ajaxRecord.js.map","sources":["ajaxRecord.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Extensions, dataSanitizeUrl, dateTimeUtilsDuration, msToTimeSpan, urlGetAbsoluteUrl, urlGetCompleteUrl } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isNullOrUndefined, isNumber, isString, normalizeJsName, objForEachKey, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { mathRound } from \"@nevware21/ts-utils\";\r\nimport { STR_DURATION, STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_ERROR_STATUS_TEXT, _DYN_GET_ABSOLUTE_URL, _DYN_HEADER_MAP, _DYN_LENGTH, _DYN_METHOD, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE_FINISHED_TI12, _DYN_RESPONSE_TEXT, _DYN_SPAN_ID, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE11, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */];\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[STR_DURATION /* @min:%2eduration */];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, STR_DURATION, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData.perfMark) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;\r\n }\r\n}\r\n/**\r\n * Factory function to create an XHR monitoring state object\r\n * @returns An object implementing IXHRMonitoringState interface\r\n */\r\nexport function createXHRMonitoringState() {\r\n var _a;\r\n return _a = {\r\n openDone: false,\r\n setRequestHeaderDone: false,\r\n sendDone: false,\r\n abortDone: false\r\n },\r\n _a[_DYN_STATE_CHANGE_ATTACHE11 /* @min:stateChangeAttached */] = false,\r\n _a;\r\n}\r\n/**\r\n * Factory function to create an ajax record that implements IAjaxRecordInternal\r\n * @param traceCtx - The distributed trace context for the ajax request\r\n * @param logger - The diagnostic logger instance\r\n * @returns An object implementing IAjaxRecordInternal interface\r\n */\r\nexport function createAjaxRecord(traceCtx, logger) {\r\n var _a;\r\n var _logger = logger;\r\n // Create the ajax record object implementing IAjaxRecordInternal\r\n var ajaxRecord = (_a = {\r\n // Initialize all properties with default values\r\n perfMark: null,\r\n completed: false,\r\n requestHeadersSize: null\r\n },\r\n _a[_DYN_REQUEST_HEADERS /* @min:requestHeaders */] = null,\r\n _a.responseReceivingDuration = null,\r\n _a.callbackDuration = null,\r\n _a[_DYN_AJAX_TOTAL_DURATION /* @min:ajaxTotalDuration */] = null,\r\n _a.aborted = 0,\r\n _a.pageUrl = null,\r\n _a.requestUrl = null,\r\n _a.requestSize = 0,\r\n _a.method = null,\r\n _a.status = null,\r\n _a[_DYN_REQUEST_SENT_TIME /* @min:requestSentTime */] = null,\r\n _a.responseStartedTime = null,\r\n _a[_DYN_RESPONSE_FINISHED_TI12 /* @min:responseFinishedTime */] = null,\r\n _a.callbackFinishedTime = null,\r\n _a.endTime = null,\r\n _a.xhrMonitoringState = createXHRMonitoringState(),\r\n _a.clientFailure = 0,\r\n _a.traceCtx = traceCtx,\r\n _a.perfTiming = null,\r\n _a[_DYN_GET_ABSOLUTE_URL /* @min:getAbsoluteUrl */] = function () {\r\n return ajaxRecord[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(ajaxRecord[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;\r\n },\r\n _a.getPathName = function () {\r\n return ajaxRecord[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(ajaxRecord[_DYN_METHOD /* @min:%2emethod */], ajaxRecord[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;\r\n },\r\n _a[_DYN__CREATE_TRACK_ITEM /* @min:CreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n ajaxRecord.ajaxTotalDuration = mathRound(dateTimeUtilsDuration(ajaxRecord.requestSentTime, ajaxRecord.responseFinishedTime) * 1000) / 1000;\r\n if (ajaxRecord[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n // Always use the traceId and spanId from the traceCtx, this is the same as the\r\n // traceId and spanId used to create the ajaxRecord, this is to ensure that\r\n // the traceId and spanId are always the same for the ajaxRecord and the dependency\r\n // This is important for the distributed tracing to work correctly\r\n id: \"|\" + traceCtx[_DYN_TRACE_ID /* @min:%2etraceId */] + \".\" + traceCtx[_DYN_SPAN_ID /* @min:%2espanId */],\r\n target: ajaxRecord[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](),\r\n name: ajaxRecord.getPathName(),\r\n type: ajaxType,\r\n startTime: null,\r\n duration: ajaxRecord[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],\r\n success: (+(ajaxRecord[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(ajaxRecord[_DYN_STATUS /* @min:%2estatus */])) < 400,\r\n responseCode: (+(ajaxRecord[_DYN_STATUS /* @min:%2estatus */]))\r\n },\r\n _a[STR_PROPERTIES] = { HttpMethod: ajaxRecord[_DYN_METHOD /* @min:%2emethod */] },\r\n _a);\r\n var props = dependency[STR_PROPERTIES];\r\n if (ajaxRecord[_DYN_ABORTED /* @min:%2eaborted */]) {\r\n props[_DYN_ABORTED /* @min:%2eaborted */] = true;\r\n }\r\n if (ajaxRecord[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {\r\n // Set the correct dependency start time\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(ajaxRecord[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(this, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(ajaxRecord.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = ajaxRecord[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {\r\n if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];\r\n }\r\n }\r\n if (ajaxRecord[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {\r\n if ((+(ajaxRecord[_DYN_STATUS /* @min:%2estatus */])) >= 400) {\r\n var responseType = response.type;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + response[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n if (responseType === \"json\") {\r\n props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + JSON.stringify(response.response) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n }\r\n else if (ajaxRecord[_DYN_STATUS /* @min:%2estatus */] === 0) {\r\n props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */] || \"\";\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n },\r\n _a.getPartAProps = function () {\r\n var partA = null;\r\n var parentCtx = ajaxRecord.traceCtx.parentCtx;\r\n if (parentCtx && (parentCtx[_DYN_TRACE_ID /* @min:%2etraceId */] || parentCtx[_DYN_SPAN_ID /* @min:%2espanId */])) {\r\n partA = {};\r\n var traceExt = partA[Extensions.TraceExt] = {\r\n traceID: parentCtx[_DYN_TRACE_ID /* @min:%2etraceId */],\r\n parentID: parentCtx[_DYN_SPAN_ID /* @min:%2espanId */]\r\n };\r\n if (!isNullOrUndefined(parentCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {\r\n traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = parentCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n }\r\n }\r\n return partA;\r\n },\r\n _a);\r\n return ajaxRecord;\r\n}\r\n//# sourceMappingURL=ajaxRecord.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Dependencies Plugin, 3.4.0-nightlybeta3.
|
|
2
|
+
* Application Insights JavaScript SDK - Dependencies Plugin, 3.4.0-nightlybeta3.2507-23
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
export { AjaxMonitor as AjaxPlugin, DfltAjaxCorrelationHeaderExDomains } from "./ajax";
|
|
8
|
-
export { ajaxRecord } from "./ajaxRecord";
|
|
9
8
|
//# sourceMappingURL=applicationinsights-dependencies-js.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applicationinsights-dependencies-js.js.map","sources":["applicationinsights-dependencies-js.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport { AjaxMonitor as AjaxPlugin, DfltAjaxCorrelationHeaderExDomains } from \"./ajax\";\r\
|
|
1
|
+
{"version":3,"file":"applicationinsights-dependencies-js.js.map","sources":["applicationinsights-dependencies-js.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport { AjaxMonitor as AjaxPlugin, DfltAjaxCorrelationHeaderExDomains } from \"./ajax\";\r\n//# sourceMappingURL=applicationinsights-dependencies-js.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/applicationinsights-dependencies-js",
|
|
3
|
-
"version": "3.4.0-nightlybeta3.
|
|
3
|
+
"version": "3.4.0-nightlybeta3.2507-23",
|
|
4
4
|
"description": "Microsoft Application Insights XHR dependencies plugin",
|
|
5
5
|
"homepage": "https://github.com/microsoft/ApplicationInsights-JS#readme",
|
|
6
6
|
"author": "Microsoft Application Insights Team",
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@microsoft/dynamicproto-js": "^2.0.3",
|
|
59
59
|
"@microsoft/applicationinsights-shims": "3.0.1",
|
|
60
|
-
"@microsoft/applicationinsights-core-js": "3.4.0-nightlybeta3.
|
|
61
|
-
"@microsoft/applicationinsights-common": "3.4.0-nightlybeta3.
|
|
60
|
+
"@microsoft/applicationinsights-core-js": "3.4.0-nightlybeta3.2507-23",
|
|
61
|
+
"@microsoft/applicationinsights-common": "3.4.0-nightlybeta3.2507-23",
|
|
62
62
|
"@nevware21/ts-utils": ">= 0.11.8 < 2.x",
|
|
63
63
|
"@nevware21/ts-async": ">= 0.5.4 < 2.x"
|
|
64
64
|
},
|