@microsoft/applicationinsights-core-js 2.8.0-beta.2203-01 → 2.8.0-beta.2203-04

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 (128) hide show
  1. package/browser/applicationinsights-core-js.integrity.json +9 -9
  2. package/browser/applicationinsights-core-js.js +1137 -484
  3. package/browser/applicationinsights-core-js.js.map +1 -1
  4. package/browser/applicationinsights-core-js.min.js +2 -2
  5. package/browser/applicationinsights-core-js.min.js.map +1 -1
  6. package/dist/applicationinsights-core-js.api.json +6529 -2784
  7. package/dist/applicationinsights-core-js.api.md +290 -30
  8. package/dist/applicationinsights-core-js.d.ts +481 -89
  9. package/dist/applicationinsights-core-js.js +1137 -484
  10. package/dist/applicationinsights-core-js.js.map +1 -1
  11. package/dist/applicationinsights-core-js.min.js +2 -2
  12. package/dist/applicationinsights-core-js.min.js.map +1 -1
  13. package/dist/applicationinsights-core-js.rollup.d.ts +481 -89
  14. package/dist-esm/JavaScriptSDK/AppInsightsCore.js +1 -1
  15. package/dist-esm/JavaScriptSDK/BaseCore.js +248 -32
  16. package/dist-esm/JavaScriptSDK/BaseCore.js.map +1 -1
  17. package/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js +50 -5
  18. package/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js.map +1 -1
  19. package/dist-esm/JavaScriptSDK/ChannelController.js +105 -73
  20. package/dist-esm/JavaScriptSDK/ChannelController.js.map +1 -1
  21. package/dist-esm/JavaScriptSDK/Constants.js +1 -1
  22. package/dist-esm/JavaScriptSDK/CookieMgr.js +3 -4
  23. package/dist-esm/JavaScriptSDK/CookieMgr.js.map +1 -1
  24. package/dist-esm/JavaScriptSDK/CoreUtils.js +6 -122
  25. package/dist-esm/JavaScriptSDK/CoreUtils.js.map +1 -1
  26. package/dist-esm/JavaScriptSDK/DataCacheHelper.js +93 -0
  27. package/dist-esm/JavaScriptSDK/DataCacheHelper.js.map +1 -0
  28. package/dist-esm/JavaScriptSDK/DbgExtensionUtils.js +1 -1
  29. package/dist-esm/JavaScriptSDK/DiagnosticLogger.js +12 -12
  30. package/dist-esm/JavaScriptSDK/DiagnosticLogger.js.map +1 -1
  31. package/dist-esm/JavaScriptSDK/EnvUtils.js +8 -7
  32. package/dist-esm/JavaScriptSDK/EnvUtils.js.map +1 -1
  33. package/dist-esm/JavaScriptSDK/EventHelpers.js +472 -0
  34. package/dist-esm/JavaScriptSDK/EventHelpers.js.map +1 -0
  35. package/dist-esm/JavaScriptSDK/HelperFuncs.js +32 -59
  36. package/dist-esm/JavaScriptSDK/HelperFuncs.js.map +1 -1
  37. package/dist-esm/JavaScriptSDK/InstrumentHooks.js +1 -1
  38. package/dist-esm/JavaScriptSDK/InternalConstants.js +28 -0
  39. package/dist-esm/JavaScriptSDK/InternalConstants.js.map +1 -0
  40. package/dist-esm/JavaScriptSDK/NotificationManager.js +8 -11
  41. package/dist-esm/JavaScriptSDK/NotificationManager.js.map +1 -1
  42. package/dist-esm/JavaScriptSDK/PerfManager.js +1 -1
  43. package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js +195 -107
  44. package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js.map +1 -1
  45. package/dist-esm/JavaScriptSDK/RandomHelper.js +3 -2
  46. package/dist-esm/JavaScriptSDK/RandomHelper.js.map +1 -1
  47. package/dist-esm/JavaScriptSDK/TelemetryHelpers.js +32 -13
  48. package/dist-esm/JavaScriptSDK/TelemetryHelpers.js.map +1 -1
  49. package/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js +4 -6
  50. package/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js.map +1 -1
  51. package/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js +32 -0
  52. package/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js.map +1 -0
  53. package/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js +1 -1
  54. package/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js +90 -96
  55. package/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js.map +1 -1
  56. package/dist-esm/JavaScriptSDK.Enums/SendRequestReason.js +1 -1
  57. package/dist-esm/JavaScriptSDK.Enums/TelemetryUnloadReason.js +8 -0
  58. package/dist-esm/JavaScriptSDK.Enums/TelemetryUnloadReason.js.map +1 -0
  59. package/dist-esm/JavaScriptSDK.Interfaces/IAppInsightsCore.js +1 -1
  60. package/dist-esm/JavaScriptSDK.Interfaces/IChannelControls.js +1 -1
  61. package/dist-esm/JavaScriptSDK.Interfaces/IConfiguration.js +1 -1
  62. package/dist-esm/JavaScriptSDK.Interfaces/ICookieMgr.js +1 -1
  63. package/dist-esm/JavaScriptSDK.Interfaces/IDbgExtension.js +1 -1
  64. package/dist-esm/JavaScriptSDK.Interfaces/IDiagnosticLogger.js +1 -1
  65. package/dist-esm/JavaScriptSDK.Interfaces/IInstrumentHooks.js +1 -1
  66. package/dist-esm/JavaScriptSDK.Interfaces/INotificationListener.js +1 -1
  67. package/dist-esm/JavaScriptSDK.Interfaces/INotificationManager.js +1 -1
  68. package/dist-esm/JavaScriptSDK.Interfaces/IPerfEvent.js +1 -1
  69. package/dist-esm/JavaScriptSDK.Interfaces/IPerfManager.js +1 -1
  70. package/dist-esm/JavaScriptSDK.Interfaces/IProcessTelemetryContext.js +1 -1
  71. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryInitializers.js +1 -1
  72. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryItem.js +1 -1
  73. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPlugin.js +1 -1
  74. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPluginChain.js +1 -2
  75. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPluginChain.js.map +1 -1
  76. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUnloadState.js +8 -0
  77. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUnloadState.js.map +1 -0
  78. package/dist-esm/applicationinsights-core-js.js +9 -4
  79. package/dist-esm/applicationinsights-core-js.js.map +1 -1
  80. package/package.json +1 -1
  81. package/src/JavaScriptSDK/BaseCore.ts +312 -33
  82. package/src/JavaScriptSDK/BaseTelemetryPlugin.ts +90 -5
  83. package/src/JavaScriptSDK/ChannelController.ts +107 -61
  84. package/src/JavaScriptSDK/CookieMgr.ts +4 -4
  85. package/src/JavaScriptSDK/CoreUtils.ts +6 -143
  86. package/src/JavaScriptSDK/DataCacheHelper.ts +106 -0
  87. package/src/JavaScriptSDK/DiagnosticLogger.ts +12 -11
  88. package/src/JavaScriptSDK/EnvUtils.ts +7 -6
  89. package/src/JavaScriptSDK/EventHelpers.ts +542 -0
  90. package/src/JavaScriptSDK/HelperFuncs.ts +35 -54
  91. package/src/JavaScriptSDK/InternalConstants.ts +26 -0
  92. package/src/JavaScriptSDK/NotificationManager.ts +7 -11
  93. package/src/JavaScriptSDK/ProcessTelemetryContext.ts +248 -121
  94. package/src/JavaScriptSDK/RandomHelper.ts +2 -1
  95. package/src/JavaScriptSDK/TelemetryHelpers.ts +47 -15
  96. package/src/JavaScriptSDK/TelemetryInitializerPlugin.ts +5 -15
  97. package/src/JavaScriptSDK/UnloadHandlerContainer.ts +44 -0
  98. package/src/JavaScriptSDK.Enums/LoggingEnums.ts +184 -87
  99. package/src/JavaScriptSDK.Enums/SendRequestReason.ts +5 -0
  100. package/src/JavaScriptSDK.Enums/TelemetryUnloadReason.ts +27 -0
  101. package/src/JavaScriptSDK.Interfaces/IAppInsightsCore.ts +49 -2
  102. package/src/JavaScriptSDK.Interfaces/IChannelControls.ts +9 -2
  103. package/src/JavaScriptSDK.Interfaces/IProcessTelemetryContext.ts +55 -16
  104. package/src/JavaScriptSDK.Interfaces/ITelemetryPlugin.ts +16 -9
  105. package/src/JavaScriptSDK.Interfaces/ITelemetryPluginChain.ts +9 -11
  106. package/src/JavaScriptSDK.Interfaces/ITelemetryUnloadState.ts +10 -0
  107. package/types/JavaScriptSDK/BaseCore.d.ts +21 -1
  108. package/types/JavaScriptSDK/BaseTelemetryPlugin.d.ts +26 -1
  109. package/types/JavaScriptSDK/ChannelController.d.ts +4 -0
  110. package/types/JavaScriptSDK/CoreUtils.d.ts +1 -42
  111. package/types/JavaScriptSDK/DataCacheHelper.d.ts +13 -0
  112. package/types/JavaScriptSDK/EventHelpers.d.ts +152 -0
  113. package/types/JavaScriptSDK/HelperFuncs.d.ts +8 -17
  114. package/types/JavaScriptSDK/InternalConstants.d.ts +20 -0
  115. package/types/JavaScriptSDK/ProcessTelemetryContext.d.ts +12 -3
  116. package/types/JavaScriptSDK/TelemetryHelpers.d.ts +8 -0
  117. package/types/JavaScriptSDK/TelemetryInitializerPlugin.d.ts +0 -7
  118. package/types/JavaScriptSDK/UnloadHandlerContainer.d.ts +11 -0
  119. package/types/JavaScriptSDK.Enums/LoggingEnums.d.ts +91 -2
  120. package/types/JavaScriptSDK.Enums/SendRequestReason.d.ts +4 -0
  121. package/types/JavaScriptSDK.Enums/TelemetryUnloadReason.d.ts +21 -0
  122. package/types/JavaScriptSDK.Interfaces/IAppInsightsCore.d.ts +41 -1
  123. package/types/JavaScriptSDK.Interfaces/IChannelControls.d.ts +9 -2
  124. package/types/JavaScriptSDK.Interfaces/IProcessTelemetryContext.d.ts +49 -14
  125. package/types/JavaScriptSDK.Interfaces/ITelemetryPlugin.d.ts +15 -8
  126. package/types/JavaScriptSDK.Interfaces/ITelemetryPluginChain.d.ts +9 -10
  127. package/types/JavaScriptSDK.Interfaces/ITelemetryUnloadState.d.ts +6 -0
  128. package/types/applicationinsights-core-js.d.ts +7 -3
@@ -0,0 +1,106 @@
1
+ // Copyright (c) Microsoft Corporation. All rights reserved.
2
+ // Licensed under the MIT License.
3
+
4
+ import { ObjDefineProperty } from "@microsoft/applicationinsights-shims";
5
+ import { normalizeJsName } from "./HelperFuncs";
6
+ import { newId } from "./RandomHelper";
7
+
8
+ const _objDefineProperty = ObjDefineProperty;
9
+
10
+ const version = "2.7.3";
11
+ let instanceName = "." + newId(6);
12
+ let _dataUid = 0;
13
+
14
+ export interface IDataCache {
15
+ id: string;
16
+ accept: (target: any) => boolean,
17
+ get: <T>(target: any, name: string, defValue?: T, addDefault?: boolean) => T;
18
+ kill: (target: any, name: string) => void;
19
+ }
20
+
21
+ function _createAccessor<T>(target: any, prop: string, value: T): boolean {
22
+ if (_objDefineProperty) {
23
+ try {
24
+ _objDefineProperty(target, prop, {
25
+ value: value,
26
+ enumerable: false,
27
+ configurable: true
28
+ });
29
+ return true;
30
+ } catch (e) {
31
+ // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw
32
+ // We will just ignore this here.
33
+ }
34
+ }
35
+
36
+ return false;
37
+ }
38
+
39
+ // Accepts only:
40
+ // - Node
41
+ // - Node.ELEMENT_NODE
42
+ // - Node.DOCUMENT_NODE
43
+ // - Object
44
+ // - Any
45
+ function _canAcceptData(target: any) {
46
+ return target.nodeType === 1 || target.nodeType === 9 || !( +target.nodeType );
47
+ }
48
+
49
+ function _getCache(data: IDataCache, target: Node) {
50
+ let theCache = target[data.id];
51
+ if (!theCache) {
52
+ theCache = {};
53
+
54
+ try {
55
+ if (_canAcceptData(target)) {
56
+ if (!_createAccessor(target, data.id, theCache)) {
57
+ // Environment doesn't support accessor, so just use direct assignment
58
+ target[data.id] = theCache;
59
+ }
60
+ }
61
+ } catch (e) {
62
+ // Not all environments allow extending all objects, so just ignore the cache in those cases
63
+ }
64
+ }
65
+
66
+ return theCache;
67
+ }
68
+
69
+ export function createUniqueNamespace(name: string, includeVersion: boolean = false): string {
70
+ return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : "") + instanceName);
71
+ }
72
+
73
+ export function createElmNodeData(name?: string) {
74
+
75
+ let data = {
76
+ id: createUniqueNamespace("_aiData-" + (name || "") + "." + version),
77
+ accept: function (target: any) {
78
+ return _canAcceptData(target);
79
+ },
80
+ get: function <T>(target: any, name: string, defValue?: T, addDefault?: boolean): T {
81
+ let theCache = target[data.id];
82
+ if (!theCache) {
83
+ if (addDefault) {
84
+ // Side effect is adds the cache
85
+ theCache = _getCache(data, target);
86
+ theCache[normalizeJsName(name)] = defValue;
87
+ }
88
+
89
+ return defValue;
90
+ }
91
+
92
+ return theCache[normalizeJsName(name)];
93
+ },
94
+ kill: function(target: any, name: string) {
95
+ if (target && target[name]) {
96
+ try {
97
+ delete target[name];
98
+ } catch (e) {
99
+ // Just cleaning up, so if this fails -- ignore
100
+ }
101
+ }
102
+ }
103
+ };
104
+
105
+ return data;
106
+ }
@@ -2,13 +2,14 @@
2
2
  // Licensed under the MIT License.
3
3
  "use strict"
4
4
  import { IConfiguration } from "../JavaScriptSDK.Interfaces/IConfiguration"
5
- import { _InternalMessageId, LoggingSeverity } from "../JavaScriptSDK.Enums/LoggingEnums";
5
+ import { _InternalMessageId, _eInternalMessageId, LoggingSeverity, eLoggingSeverity } from "../JavaScriptSDK.Enums/LoggingEnums";
6
6
  import { IDiagnosticLogger } from "../JavaScriptSDK.Interfaces/IDiagnosticLogger";
7
7
  import { hasJSON, getJSON, getConsole } from "./EnvUtils";
8
8
  import dynamicProto from "@microsoft/dynamicproto-js";
9
9
  import { isFunction, isNullOrUndefined, isUndefined } from "./HelperFuncs";
10
10
  import { IAppInsightsCore } from "../JavaScriptSDK.Interfaces/IAppInsightsCore";
11
11
  import { getDebugExt } from "./DbgExtensionUtils";
12
+ import { strEmpty } from "./InternalConstants";
12
13
 
13
14
  /**
14
15
  * For user non actionable traces use AI Internal prefix.
@@ -30,10 +31,10 @@ const strWarnToConsole = "warnToConsole";
30
31
 
31
32
  function _sanitizeDiagnosticText(text: string) {
32
33
  if (text) {
33
- return "\"" + text.replace(/\"/g, "") + "\"";
34
+ return "\"" + text.replace(/\"/g, strEmpty) + "\"";
34
35
  }
35
36
 
36
- return "";
37
+ return strEmpty;
37
38
  }
38
39
 
39
40
  function _logToConsole(func: string, message: string) {
@@ -64,14 +65,14 @@ export class _InternalLogMessage{
64
65
  (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
65
66
  msgId;
66
67
 
67
- let strProps:string = "";
68
+ let strProps:string = strEmpty;
68
69
  if (hasJSON()) {
69
70
  strProps = getJSON().stringify(properties);
70
71
  }
71
72
 
72
73
  const diagnosticText =
73
- (msg ? " message:" + _sanitizeDiagnosticText(msg) : "") +
74
- (properties ? " props:" + _sanitizeDiagnosticText(strProps) : "");
74
+ (msg ? " message:" + _sanitizeDiagnosticText(msg) : strEmpty) +
75
+ (properties ? " props:" + _sanitizeDiagnosticText(strProps) : strEmpty);
75
76
 
76
77
  _self.message += diagnosticText;
77
78
  }
@@ -125,7 +126,7 @@ export class DiagnosticLogger implements IDiagnosticLogger {
125
126
  throw message;
126
127
  } else {
127
128
  // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist
128
- let logFunc = severity === LoggingSeverity.CRITICAL ? strErrorToConsole : strWarnToConsole;
129
+ let logFunc = severity === eLoggingSeverity.CRITICAL ? strErrorToConsole : strWarnToConsole;
129
130
 
130
131
  if (!isUndefined(message.message)) {
131
132
  const logLevel = _self.consoleLoggingLevel();
@@ -146,7 +147,7 @@ export class DiagnosticLogger implements IDiagnosticLogger {
146
147
 
147
148
  _self.logInternalMessage(severity, message);
148
149
  } else {
149
- _debugExtMsg("throw" + (severity === LoggingSeverity.CRITICAL ? "Critical" : "Warning"), message);
150
+ _debugExtMsg("throw" + (severity === eLoggingSeverity.CRITICAL ? "Critical" : "Warning"), message);
150
151
  }
151
152
  }
152
153
  }
@@ -203,15 +204,15 @@ export class DiagnosticLogger implements IDiagnosticLogger {
203
204
  if (severity <= _self.telemetryLoggingLevel()) {
204
205
  _self.queue.push(message);
205
206
  _messageCount++;
206
- _debugExtMsg((severity === LoggingSeverity.CRITICAL ? "error" : "warn"), message);
207
+ _debugExtMsg((severity === eLoggingSeverity.CRITICAL ? "error" : "warn"), message);
207
208
  }
208
209
 
209
210
  // When throttle limit reached, send a special event
210
211
  if (_messageCount === _self.maxInternalMessageLimit()) {
211
212
  const throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
212
- const throttleMessage = new _InternalLogMessage(_InternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);
213
+ const throttleMessage = new _InternalLogMessage(_eInternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);
213
214
  _self.queue.push(throttleMessage);
214
- if (severity === LoggingSeverity.CRITICAL) {
215
+ if (severity === eLoggingSeverity.CRITICAL) {
215
216
  _self.errorToConsole(throttleLimitMessage);
216
217
  } else {
217
218
  _self.warnToConsole(throttleLimitMessage);
@@ -5,6 +5,7 @@
5
5
  import {
6
6
  getGlobal, strShimUndefined, strShimObject, strShimPrototype
7
7
  } from "@microsoft/applicationinsights-shims";
8
+ import { strEmpty } from "./InternalConstants";
8
9
  import { isString, isUndefined, strContains } from "./HelperFuncs";
9
10
 
10
11
  // TypeScript removed this interface so we need to declare the global so we can check for it's existence.
@@ -296,7 +297,7 @@ export function isIE() {
296
297
  if (nav && (nav.userAgent !== _navUserAgentCheck || _isTrident === null)) {
297
298
  // Added to support test mocking of the user agent
298
299
  _navUserAgentCheck = nav.userAgent;
299
- let userAgent = (_navUserAgentCheck || "").toLowerCase();
300
+ let userAgent = (_navUserAgentCheck || strEmpty).toLowerCase();
300
301
  _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
301
302
  }
302
303
 
@@ -309,10 +310,10 @@ export function isIE() {
309
310
  export function getIEVersion(userAgentStr: string = null): number {
310
311
  if (!userAgentStr) {
311
312
  let navigator = getNavigator() || ({} as Navigator);
312
- userAgentStr = navigator ? (navigator.userAgent || "").toLowerCase() : "";
313
+ userAgentStr = navigator ? (navigator.userAgent || strEmpty).toLowerCase() : strEmpty;
313
314
  }
314
315
 
315
- var ua = (userAgentStr || "").toLowerCase();
316
+ var ua = (userAgentStr || strEmpty).toLowerCase();
316
317
  // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.
317
318
  if (strContains(ua, strMsie)) {
318
319
  let doc = getDocument() || {} as Document;
@@ -332,7 +333,7 @@ export function getIEVersion(userAgentStr: string = null): number {
332
333
  */
333
334
  export function dumpObj(object: any): string {
334
335
  const objectTypeDump: string = Object[strShimPrototype].toString.call(object);
335
- let propertyValueDump: string = "";
336
+ let propertyValueDump: string = strEmpty;
336
337
  if (objectTypeDump === "[object Error]") {
337
338
  propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object.name + "'";
338
339
  } else if (hasJSON()) {
@@ -345,10 +346,10 @@ export function dumpObj(object: any): string {
345
346
  export function isSafari(userAgentStr ?: string) {
346
347
  if (!userAgentStr || !isString(userAgentStr)) {
347
348
  let navigator = getNavigator() || ({} as Navigator);
348
- userAgentStr = navigator ? (navigator.userAgent || "").toLowerCase() : "";
349
+ userAgentStr = navigator ? (navigator.userAgent || strEmpty).toLowerCase() : strEmpty;
349
350
  }
350
351
 
351
- var ua = (userAgentStr || "").toLowerCase();
352
+ var ua = (userAgentStr || strEmpty).toLowerCase();
352
353
  return (ua.indexOf("safari") >= 0);
353
354
  }
354
355