@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.
Files changed (34) hide show
  1. package/browser/es5/applicationinsights-dependencies-js.cjs.js +870 -322
  2. package/browser/es5/applicationinsights-dependencies-js.cjs.js.map +1 -1
  3. package/browser/es5/applicationinsights-dependencies-js.cjs.min.js +2 -2
  4. package/browser/es5/applicationinsights-dependencies-js.cjs.min.js.map +1 -1
  5. package/browser/es5/applicationinsights-dependencies-js.gbl.js +872 -324
  6. package/browser/es5/applicationinsights-dependencies-js.gbl.js.map +1 -1
  7. package/browser/es5/applicationinsights-dependencies-js.gbl.min.js +2 -2
  8. package/browser/es5/applicationinsights-dependencies-js.gbl.min.js.map +1 -1
  9. package/browser/es5/applicationinsights-dependencies-js.integrity.json +25 -25
  10. package/browser/es5/applicationinsights-dependencies-js.js +872 -324
  11. package/browser/es5/applicationinsights-dependencies-js.js.map +1 -1
  12. package/browser/es5/applicationinsights-dependencies-js.min.js +2 -2
  13. package/browser/es5/applicationinsights-dependencies-js.min.js.map +1 -1
  14. package/dist/es5/applicationinsights-dependencies-js.js +870 -322
  15. package/dist/es5/applicationinsights-dependencies-js.js.map +1 -1
  16. package/dist/es5/applicationinsights-dependencies-js.min.js +2 -2
  17. package/dist/es5/applicationinsights-dependencies-js.min.js.map +1 -1
  18. package/dist-es5/DependencyInitializer.js +1 -1
  19. package/dist-es5/DependencyListener.js +1 -1
  20. package/dist-es5/InternalConstants.js +2 -1
  21. package/dist-es5/InternalConstants.js.map +1 -1
  22. package/dist-es5/__DynamicConstants.js +15 -19
  23. package/dist-es5/__DynamicConstants.js.map +1 -1
  24. package/dist-es5/ajax.js +130 -62
  25. package/dist-es5/ajax.js.map +1 -1
  26. package/dist-es5/ajaxRecord.js +137 -148
  27. package/dist-es5/ajaxRecord.js.map +1 -1
  28. package/dist-es5/applicationinsights-dependencies-js.js +1 -2
  29. package/dist-es5/applicationinsights-dependencies-js.js.map +1 -1
  30. package/package.json +3 -3
  31. package/types/applicationinsights-dependencies-js.d.ts +150 -50
  32. package/types/applicationinsights-dependencies-js.namespaced.d.ts +628 -88
  33. package/dist-es5/ajaxUtils.js +0 -30
  34. package/dist-es5/ajaxUtils.js.map +0 -1
@@ -1,15 +1,14 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Dependencies Plugin, 3.4.0-nightlybeta3.2505-35
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, _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";
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[_DYN_PERF_MARK /* @min:%2eperfMark */]) {
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
- var XHRMonitoringState = /** @class */ (function () {
148
- function XHRMonitoringState() {
149
- var self = this;
150
- self.openDone = false;
151
- self.setRequestHeaderDone = false;
152
- self.sendDone = false;
153
- self.abortDone = false;
154
- // <summary>True, if onreadyStateChangeCallback function attached to xhr, otherwise false</summary>
155
- self[_DYN_STATE_CHANGE_ATTACHE11 /* @min:%2estateChangeAttached */] = false;
156
- }
157
- return XHRMonitoringState;
158
- }());
159
- export { XHRMonitoringState };
160
- var ajaxRecord = /** @class */ (function () {
161
- function ajaxRecord(traceId, spanId, logger, traceCtx) {
162
- var self = this;
163
- var _logger = logger;
164
- var strResponseText = "responseText";
165
- // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of
166
- // this.XXXX = null
167
- self[_DYN_PERF_MARK /* @min:%2eperfMark */] = null;
168
- self.completed = false;
169
- self.requestHeadersSize = null;
170
- self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = null;
171
- self.responseReceivingDuration = null;
172
- self.callbackDuration = null;
173
- self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] = null;
174
- self[_DYN_ABORTED /* @min:%2eaborted */] = 0;
175
- self.pageUrl = null;
176
- self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = null;
177
- self.requestSize = 0;
178
- self[_DYN_METHOD /* @min:%2emethod */] = null;
179
- self[_DYN_STATUS /* @min:%2estatus */] = null;
180
- self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = null;
181
- self.responseStartedTime = null;
182
- self[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */] = null;
183
- self.callbackFinishedTime = null;
184
- self.endTime = null;
185
- self.xhrMonitoringState = new XHRMonitoringState();
186
- self.clientFailure = 0;
187
- self[_DYN_TRACE_ID /* @min:%2etraceID */] = traceId;
188
- self[_DYN_SPAN_ID /* @min:%2espanID */] = spanId;
189
- self[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();
190
- if (traceCtx) {
191
- self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = {
192
- traceId: traceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */](),
193
- spanId: traceCtx.getSpanId(),
194
- traceFlags: traceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]()
195
- };
196
- }
197
- else {
198
- self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = null;
199
- }
200
- dynamicProto(ajaxRecord, self, function (self) {
201
- self.getAbsoluteUrl = function () {
202
- return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;
203
- };
204
- self.getPathName = function () {
205
- return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD /* @min:%2emethod */], self[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;
206
- };
207
- self[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {
208
- var _a;
209
- // round to 3 decimal points
210
- self.ajaxTotalDuration = mathRound(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;
211
- if (self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {
212
- return null;
213
- }
214
- var dependency = (_a = {
215
- id: "|" + self[_DYN_TRACE_ID /* @min:%2etraceID */] + "." + self[_DYN_SPAN_ID /* @min:%2espanID */],
216
- target: self[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](),
217
- name: self.getPathName(),
218
- type: ajaxType,
219
- startTime: null,
220
- duration: self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],
221
- success: (+(self[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(self[_DYN_STATUS /* @min:%2estatus */])) < 400,
222
- responseCode: (+(self[_DYN_STATUS /* @min:%2estatus */]))
223
- },
224
- _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD /* @min:%2emethod */] },
225
- _a);
226
- var props = dependency[STR_PROPERTIES];
227
- if (self[_DYN_ABORTED /* @min:%2eaborted */]) {
228
- props[_DYN_ABORTED /* @min:%2eaborted */] = true;
229
- }
230
- if (self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {
231
- // Set the correct dependency start time
232
- dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();
233
- dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);
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
- // Add Ajax perf details if available
236
- _populatePerfData(self, dependency);
237
- if (enableRequestHeaderTracking) {
238
- if (objKeys(self.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {
239
- props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];
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
- if (getResponse) {
243
- var response = getResponse();
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
- if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {
251
- if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {
252
- props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];
253
- }
254
- }
255
- if (self[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {
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
- else if (self[_DYN_STATUS /* @min:%2estatus */] === 0) {
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
- return dependency;
272
- };
273
- self[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */] = function () {
274
- var partA = null;
275
- var traceCtx = self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */];
276
- if (traceCtx && (traceCtx.traceId || traceCtx.spanId)) {
277
- partA = {};
278
- var traceExt = partA[Extensions.TraceExt] = {
279
- traceID: traceCtx.traceId,
280
- parentID: traceCtx.spanId
281
- };
282
- if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {
283
- traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];
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
- return partA;
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.2505-35
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\nexport { ajaxRecord } from \"./ajaxRecord\";\r\n//# sourceMappingURL=applicationinsights-dependencies-js.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA"}
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.2505-35",
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.2505-35",
61
- "@microsoft/applicationinsights-common": "3.4.0-nightlybeta3.2505-35",
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
  },