@microsoft/applicationinsights-core-js 2.8.0-beta.2202-07 → 2.8.0-beta.2203-03
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/applicationinsights-core-js.integrity.json +9 -9
- package/browser/applicationinsights-core-js.js +1137 -484
- package/browser/applicationinsights-core-js.js.map +1 -1
- package/browser/applicationinsights-core-js.min.js +2 -2
- package/browser/applicationinsights-core-js.min.js.map +1 -1
- package/dist/applicationinsights-core-js.api.json +6529 -2784
- package/dist/applicationinsights-core-js.api.md +290 -30
- package/dist/applicationinsights-core-js.d.ts +481 -89
- package/dist/applicationinsights-core-js.js +1137 -484
- package/dist/applicationinsights-core-js.js.map +1 -1
- package/dist/applicationinsights-core-js.min.js +2 -2
- package/dist/applicationinsights-core-js.min.js.map +1 -1
- package/dist/applicationinsights-core-js.rollup.d.ts +481 -89
- package/dist-esm/JavaScriptSDK/AppInsightsCore.js +1 -1
- package/dist-esm/JavaScriptSDK/BaseCore.js +248 -32
- package/dist-esm/JavaScriptSDK/BaseCore.js.map +1 -1
- package/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js +50 -5
- package/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js.map +1 -1
- package/dist-esm/JavaScriptSDK/ChannelController.js +105 -73
- package/dist-esm/JavaScriptSDK/ChannelController.js.map +1 -1
- package/dist-esm/JavaScriptSDK/Constants.js +1 -1
- package/dist-esm/JavaScriptSDK/CookieMgr.js +3 -4
- package/dist-esm/JavaScriptSDK/CookieMgr.js.map +1 -1
- package/dist-esm/JavaScriptSDK/CoreUtils.js +6 -122
- package/dist-esm/JavaScriptSDK/CoreUtils.js.map +1 -1
- package/dist-esm/JavaScriptSDK/DataCacheHelper.js +93 -0
- package/dist-esm/JavaScriptSDK/DataCacheHelper.js.map +1 -0
- package/dist-esm/JavaScriptSDK/DbgExtensionUtils.js +1 -1
- package/dist-esm/JavaScriptSDK/DiagnosticLogger.js +12 -12
- package/dist-esm/JavaScriptSDK/DiagnosticLogger.js.map +1 -1
- package/dist-esm/JavaScriptSDK/EnvUtils.js +8 -7
- package/dist-esm/JavaScriptSDK/EnvUtils.js.map +1 -1
- package/dist-esm/JavaScriptSDK/EventHelpers.js +472 -0
- package/dist-esm/JavaScriptSDK/EventHelpers.js.map +1 -0
- package/dist-esm/JavaScriptSDK/HelperFuncs.js +32 -59
- package/dist-esm/JavaScriptSDK/HelperFuncs.js.map +1 -1
- package/dist-esm/JavaScriptSDK/InstrumentHooks.js +1 -1
- package/dist-esm/JavaScriptSDK/InternalConstants.js +28 -0
- package/dist-esm/JavaScriptSDK/InternalConstants.js.map +1 -0
- package/dist-esm/JavaScriptSDK/NotificationManager.js +8 -11
- package/dist-esm/JavaScriptSDK/NotificationManager.js.map +1 -1
- package/dist-esm/JavaScriptSDK/PerfManager.js +1 -1
- package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js +195 -107
- package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js.map +1 -1
- package/dist-esm/JavaScriptSDK/RandomHelper.js +3 -2
- package/dist-esm/JavaScriptSDK/RandomHelper.js.map +1 -1
- package/dist-esm/JavaScriptSDK/TelemetryHelpers.js +32 -13
- package/dist-esm/JavaScriptSDK/TelemetryHelpers.js.map +1 -1
- package/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js +4 -6
- package/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js.map +1 -1
- package/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js +32 -0
- package/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js.map +1 -0
- package/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js +90 -96
- package/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js.map +1 -1
- package/dist-esm/JavaScriptSDK.Enums/SendRequestReason.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/TelemetryUnloadReason.js +8 -0
- package/dist-esm/JavaScriptSDK.Enums/TelemetryUnloadReason.js.map +1 -0
- package/dist-esm/JavaScriptSDK.Interfaces/IAppInsightsCore.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IChannelControls.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IConfiguration.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ICookieMgr.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IDbgExtension.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IDiagnosticLogger.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IInstrumentHooks.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/INotificationListener.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/INotificationManager.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IPerfEvent.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IPerfManager.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IProcessTelemetryContext.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryInitializers.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryItem.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPlugin.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPluginChain.js +1 -2
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPluginChain.js.map +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUnloadState.js +8 -0
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUnloadState.js.map +1 -0
- package/dist-esm/applicationinsights-core-js.js +9 -4
- package/dist-esm/applicationinsights-core-js.js.map +1 -1
- package/package.json +1 -1
- package/src/JavaScriptSDK/BaseCore.ts +312 -33
- package/src/JavaScriptSDK/BaseTelemetryPlugin.ts +90 -5
- package/src/JavaScriptSDK/ChannelController.ts +107 -61
- package/src/JavaScriptSDK/CookieMgr.ts +4 -4
- package/src/JavaScriptSDK/CoreUtils.ts +6 -143
- package/src/JavaScriptSDK/DataCacheHelper.ts +106 -0
- package/src/JavaScriptSDK/DiagnosticLogger.ts +12 -11
- package/src/JavaScriptSDK/EnvUtils.ts +7 -6
- package/src/JavaScriptSDK/EventHelpers.ts +542 -0
- package/src/JavaScriptSDK/HelperFuncs.ts +35 -54
- package/src/JavaScriptSDK/InternalConstants.ts +26 -0
- package/src/JavaScriptSDK/NotificationManager.ts +7 -11
- package/src/JavaScriptSDK/ProcessTelemetryContext.ts +248 -121
- package/src/JavaScriptSDK/RandomHelper.ts +2 -1
- package/src/JavaScriptSDK/TelemetryHelpers.ts +47 -15
- package/src/JavaScriptSDK/TelemetryInitializerPlugin.ts +5 -15
- package/src/JavaScriptSDK/UnloadHandlerContainer.ts +44 -0
- package/src/JavaScriptSDK.Enums/LoggingEnums.ts +184 -87
- package/src/JavaScriptSDK.Enums/SendRequestReason.ts +5 -0
- package/src/JavaScriptSDK.Enums/TelemetryUnloadReason.ts +27 -0
- package/src/JavaScriptSDK.Interfaces/IAppInsightsCore.ts +49 -2
- package/src/JavaScriptSDK.Interfaces/IChannelControls.ts +9 -2
- package/src/JavaScriptSDK.Interfaces/IProcessTelemetryContext.ts +55 -16
- package/src/JavaScriptSDK.Interfaces/ITelemetryPlugin.ts +16 -9
- package/src/JavaScriptSDK.Interfaces/ITelemetryPluginChain.ts +9 -11
- package/src/JavaScriptSDK.Interfaces/ITelemetryUnloadState.ts +10 -0
- package/types/JavaScriptSDK/BaseCore.d.ts +21 -1
- package/types/JavaScriptSDK/BaseTelemetryPlugin.d.ts +26 -1
- package/types/JavaScriptSDK/ChannelController.d.ts +4 -0
- package/types/JavaScriptSDK/CoreUtils.d.ts +1 -42
- package/types/JavaScriptSDK/DataCacheHelper.d.ts +13 -0
- package/types/JavaScriptSDK/EventHelpers.d.ts +152 -0
- package/types/JavaScriptSDK/HelperFuncs.d.ts +8 -17
- package/types/JavaScriptSDK/InternalConstants.d.ts +20 -0
- package/types/JavaScriptSDK/ProcessTelemetryContext.d.ts +12 -3
- package/types/JavaScriptSDK/TelemetryHelpers.d.ts +8 -0
- package/types/JavaScriptSDK/TelemetryInitializerPlugin.d.ts +0 -7
- package/types/JavaScriptSDK/UnloadHandlerContainer.d.ts +11 -0
- package/types/JavaScriptSDK.Enums/LoggingEnums.d.ts +91 -2
- package/types/JavaScriptSDK.Enums/SendRequestReason.d.ts +4 -0
- package/types/JavaScriptSDK.Enums/TelemetryUnloadReason.d.ts +21 -0
- package/types/JavaScriptSDK.Interfaces/IAppInsightsCore.d.ts +41 -1
- package/types/JavaScriptSDK.Interfaces/IChannelControls.d.ts +9 -2
- package/types/JavaScriptSDK.Interfaces/IProcessTelemetryContext.d.ts +49 -14
- package/types/JavaScriptSDK.Interfaces/ITelemetryPlugin.d.ts +15 -8
- package/types/JavaScriptSDK.Interfaces/ITelemetryPluginChain.d.ts +9 -10
- package/types/JavaScriptSDK.Interfaces/ITelemetryUnloadState.d.ts +6 -0
- package/types/applicationinsights-core-js.d.ts +7 -3
|
@@ -6,11 +6,22 @@ import { IPlugin, ITelemetryPlugin } from "../JavaScriptSDK.Interfaces/ITelemetr
|
|
|
6
6
|
import { IProcessTelemetryContext } from "../JavaScriptSDK.Interfaces/IProcessTelemetryContext";
|
|
7
7
|
import { ITelemetryPluginChain } from "../JavaScriptSDK.Interfaces/ITelemetryPluginChain";
|
|
8
8
|
import { arrForEach, isFunction } from "./HelperFuncs";
|
|
9
|
+
import { strCore, strIsInitialized, strPriority, strProcessTelemetry, strSetNextPlugin, strTeardown } from "./InternalConstants";
|
|
10
|
+
import { createElmNodeData } from "./DataCacheHelper";
|
|
11
|
+
import { IAppInsightsCore } from "../JavaScriptSDK.Interfaces/IAppInsightsCore";
|
|
9
12
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
export interface IPluginState {
|
|
14
|
+
core?: IAppInsightsCore;
|
|
15
|
+
isInitialized?: boolean;
|
|
16
|
+
tearDown?: boolean;
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const pluginStateData = createElmNodeData("plugin");
|
|
21
|
+
|
|
22
|
+
export function _getPluginState(plugin: IPlugin): IPluginState {
|
|
23
|
+
return pluginStateData.get<IPluginState>(plugin, "state", {}, true)
|
|
24
|
+
}
|
|
14
25
|
|
|
15
26
|
/**
|
|
16
27
|
* Initialize the queue of plugins
|
|
@@ -22,20 +33,29 @@ let isInitialized = "isInitialized";
|
|
|
22
33
|
export function initializePlugins(processContext: IProcessTelemetryContext, extensions: IPlugin[]) {
|
|
23
34
|
|
|
24
35
|
// Set the next plugin and identified the uninitialized plugins
|
|
25
|
-
let initPlugins:ITelemetryPlugin[] = [];
|
|
26
|
-
let lastPlugin:ITelemetryPlugin = null;
|
|
27
|
-
let proxy:ITelemetryPluginChain = processContext.getNext();
|
|
36
|
+
let initPlugins: ITelemetryPlugin[] = [];
|
|
37
|
+
let lastPlugin: ITelemetryPlugin = null;
|
|
38
|
+
let proxy: ITelemetryPluginChain = processContext.getNext();
|
|
39
|
+
let pluginState: IPluginState;
|
|
28
40
|
while (proxy) {
|
|
29
41
|
let thePlugin = proxy.getPlugin();
|
|
30
42
|
if (thePlugin) {
|
|
31
43
|
if (lastPlugin &&
|
|
32
|
-
isFunction(lastPlugin[
|
|
33
|
-
isFunction(thePlugin[
|
|
44
|
+
isFunction(lastPlugin[strSetNextPlugin]) &&
|
|
45
|
+
isFunction(thePlugin[strProcessTelemetry])) {
|
|
34
46
|
// Set this plugin as the next for the previous one
|
|
35
|
-
lastPlugin[
|
|
47
|
+
lastPlugin[strSetNextPlugin](thePlugin);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
let isInitialized = false;
|
|
51
|
+
if (isFunction(thePlugin[strIsInitialized])) {
|
|
52
|
+
isInitialized = thePlugin[strIsInitialized]();
|
|
53
|
+
} else {
|
|
54
|
+
pluginState = _getPluginState(thePlugin);
|
|
55
|
+
isInitialized = pluginState[strIsInitialized];
|
|
36
56
|
}
|
|
37
57
|
|
|
38
|
-
if (!
|
|
58
|
+
if (!isInitialized) {
|
|
39
59
|
initPlugins.push(thePlugin);
|
|
40
60
|
}
|
|
41
61
|
|
|
@@ -46,11 +66,23 @@ export function initializePlugins(processContext: IProcessTelemetryContext, exte
|
|
|
46
66
|
|
|
47
67
|
// Now initialize the plugins
|
|
48
68
|
arrForEach(initPlugins, thePlugin => {
|
|
69
|
+
let core = processContext.core();
|
|
70
|
+
|
|
49
71
|
thePlugin.initialize(
|
|
50
72
|
processContext.getCfg(),
|
|
51
|
-
|
|
73
|
+
core,
|
|
52
74
|
extensions,
|
|
53
75
|
processContext.getNext());
|
|
76
|
+
|
|
77
|
+
pluginState = _getPluginState(thePlugin);
|
|
78
|
+
|
|
79
|
+
// Only add the core to the state if the plugin didn't set it (doesn't extent from BaseTelemetryPlugin)
|
|
80
|
+
if (!thePlugin[strCore] && !pluginState[strCore]) {
|
|
81
|
+
pluginState[strCore] = core;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
pluginState[strIsInitialized] = true;
|
|
85
|
+
delete pluginState[strTeardown];
|
|
54
86
|
});
|
|
55
87
|
}
|
|
56
88
|
|
|
@@ -58,9 +90,9 @@ export function sortPlugins<T = IPlugin>(plugins:T[]) {
|
|
|
58
90
|
// Sort by priority
|
|
59
91
|
return plugins.sort((extA, extB) => {
|
|
60
92
|
let result = 0;
|
|
61
|
-
let bHasProcess = isFunction(extB[
|
|
62
|
-
if (isFunction(extA[
|
|
63
|
-
result = bHasProcess ? extA[
|
|
93
|
+
let bHasProcess = isFunction(extB[strProcessTelemetry]);
|
|
94
|
+
if (isFunction(extA[strProcessTelemetry])) {
|
|
95
|
+
result = bHasProcess ? extA[strPriority] - extB[strPriority] : 1;
|
|
64
96
|
} else if (bHasProcess) {
|
|
65
97
|
result = -1;
|
|
66
98
|
}
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
// // Licensed under the MIT License.
|
|
3
3
|
|
|
4
4
|
import dynamicProto from "@microsoft/dynamicproto-js";
|
|
5
|
-
import {
|
|
5
|
+
import { eLoggingSeverity, _eInternalMessageId } from "../JavaScriptSDK.Enums/LoggingEnums";
|
|
6
6
|
import { IProcessTelemetryContext } from "../JavaScriptSDK.Interfaces/IProcessTelemetryContext";
|
|
7
7
|
import { ITelemetryInitializerContainer, ITelemetryInitializerHandler, TelemetryInitializerFunction } from "../JavaScriptSDK.Interfaces/ITelemetryInitializers";
|
|
8
8
|
import { ITelemetryItem } from "../JavaScriptSDK.Interfaces/ITelemetryItem";
|
|
9
9
|
import { BaseTelemetryPlugin } from "./BaseTelemetryPlugin";
|
|
10
10
|
import { dumpObj } from "./EnvUtils";
|
|
11
11
|
import { arrForEach, getExceptionName } from "./HelperFuncs";
|
|
12
|
+
import { strDoTeardown } from "./InternalConstants";
|
|
12
13
|
|
|
13
14
|
interface _IInternalTelemetryInitializerHandler {
|
|
14
15
|
id: number;
|
|
@@ -68,8 +69,8 @@ export class TelemetryInitializerPlugin extends BaseTelemetryPlugin implements I
|
|
|
68
69
|
// log error but dont stop executing rest of the telemetry initializers
|
|
69
70
|
// doNotSendItem = true;
|
|
70
71
|
itemCtx.diagLog().throwInternal(
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
eLoggingSeverity.CRITICAL,
|
|
73
|
+
_eInternalMessageId.TelemetryInitializerFailed,
|
|
73
74
|
"One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e),
|
|
74
75
|
{ exception: dumpObj(e) }, true);
|
|
75
76
|
}
|
|
@@ -81,8 +82,7 @@ export class TelemetryInitializerPlugin extends BaseTelemetryPlugin implements I
|
|
|
81
82
|
}
|
|
82
83
|
};
|
|
83
84
|
|
|
84
|
-
_self
|
|
85
|
-
_base.unload(itemCtx, isAsync);
|
|
85
|
+
_self[strDoTeardown] = () => {
|
|
86
86
|
_initDefaults();
|
|
87
87
|
};
|
|
88
88
|
});
|
|
@@ -106,14 +106,4 @@ export class TelemetryInitializerPlugin extends BaseTelemetryPlugin implements I
|
|
|
106
106
|
public processTelemetry(env: ITelemetryItem, itemCtx?: IProcessTelemetryContext): void {
|
|
107
107
|
// @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
|
|
108
108
|
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* This plugin is being unloaded and should remove any hooked events and cleanup any global/scoped values, after this
|
|
112
|
-
* call the plugin will be removed from the telemetry processing chain and will no longer receive any events..
|
|
113
|
-
* @param itemCtx - This is the context that should be used during unloading if required to flush any cached events.
|
|
114
|
-
* @param isAsync - Should the plugin attempt to unload synchronously or can it complete asynchronously
|
|
115
|
-
*/
|
|
116
|
-
public unload(itemCtx: IProcessTelemetryContext, isAsync: boolean): void {
|
|
117
|
-
// @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
|
|
118
|
-
}
|
|
119
109
|
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
import { eLoggingSeverity, _eInternalMessageId } from "../JavaScriptSDK.Enums/LoggingEnums";
|
|
5
|
+
import { IProcessTelemetryUnloadContext } from "../JavaScriptSDK.Interfaces/IProcessTelemetryContext";
|
|
6
|
+
import { ITelemetryUnloadState } from "../JavaScriptSDK.Interfaces/ITelemetryUnloadState";
|
|
7
|
+
import { dumpObj } from "./EnvUtils";
|
|
8
|
+
import { arrForEach } from "./HelperFuncs";
|
|
9
|
+
|
|
10
|
+
export type UnloadHandler = (itemCtx: IProcessTelemetryUnloadContext, unloadState: ITelemetryUnloadState) => void;
|
|
11
|
+
|
|
12
|
+
export interface IUnloadHandlerContainer {
|
|
13
|
+
add: (handler: UnloadHandler) => void;
|
|
14
|
+
run: (itemCtx: IProcessTelemetryUnloadContext, unloadState: ITelemetryUnloadState) => void
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function createUnloadHandlerContainer() {
|
|
18
|
+
let handlers: UnloadHandler[] = [];
|
|
19
|
+
|
|
20
|
+
function _addHandler(handler: UnloadHandler) {
|
|
21
|
+
if (handler) {
|
|
22
|
+
handlers.push(handler);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function _runHandlers(unloadCtx: IProcessTelemetryUnloadContext, unloadState: ITelemetryUnloadState) {
|
|
27
|
+
arrForEach(handlers, (handler) => {
|
|
28
|
+
try {
|
|
29
|
+
handler(unloadCtx, unloadState);
|
|
30
|
+
} catch (e) {
|
|
31
|
+
unloadCtx.diagLog().throwInternal(
|
|
32
|
+
eLoggingSeverity.WARNING,
|
|
33
|
+
_eInternalMessageId.PluginException,
|
|
34
|
+
"Unexpected error calling unload handler - " + dumpObj(e));
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
handlers = [];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return {
|
|
41
|
+
add: _addHandler,
|
|
42
|
+
run: _runHandlers
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
import { createEnumStyle } from "../JavaScriptSDK/HelperFuncs";
|
|
5
|
+
|
|
6
|
+
export const enum eLoggingSeverity {
|
|
4
7
|
/**
|
|
5
8
|
* Error will be sent as internal telemetry
|
|
6
9
|
*/
|
|
@@ -9,97 +12,191 @@ export enum LoggingSeverity {
|
|
|
9
12
|
/**
|
|
10
13
|
* Error will NOT be sent as internal telemetry, and will only be shown in browser console
|
|
11
14
|
*/
|
|
12
|
-
WARNING = 2
|
|
15
|
+
WARNING = 2
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
export const LoggingSeverity = createEnumStyle<{ [key in (keyof typeof eLoggingSeverity)]: number; }>({
|
|
20
|
+
CRITICAL: eLoggingSeverity.CRITICAL,
|
|
21
|
+
WARNING: eLoggingSeverity.WARNING
|
|
22
|
+
});
|
|
23
|
+
export type LoggingSeverity = number | eLoggingSeverity;
|
|
24
|
+
|
|
25
|
+
export const enum _eInternalMessageId {
|
|
26
|
+
BrowserDoesNotSupportLocalStorage = 0,
|
|
27
|
+
BrowserCannotReadLocalStorage = 1,
|
|
28
|
+
BrowserCannotReadSessionStorage = 2,
|
|
29
|
+
BrowserCannotWriteLocalStorage = 3,
|
|
30
|
+
BrowserCannotWriteSessionStorage = 4,
|
|
31
|
+
BrowserFailedRemovalFromLocalStorage = 5,
|
|
32
|
+
BrowserFailedRemovalFromSessionStorage = 6,
|
|
33
|
+
CannotSendEmptyTelemetry = 7,
|
|
34
|
+
ClientPerformanceMathError = 8,
|
|
35
|
+
ErrorParsingAISessionCookie = 9,
|
|
36
|
+
ErrorPVCalc = 10,
|
|
37
|
+
ExceptionWhileLoggingError = 11,
|
|
38
|
+
FailedAddingTelemetryToBuffer = 12,
|
|
39
|
+
FailedMonitorAjaxAbort = 13,
|
|
40
|
+
FailedMonitorAjaxDur = 14,
|
|
41
|
+
FailedMonitorAjaxOpen = 15,
|
|
42
|
+
FailedMonitorAjaxRSC = 16,
|
|
43
|
+
FailedMonitorAjaxSend = 17,
|
|
44
|
+
FailedMonitorAjaxGetCorrelationHeader = 18,
|
|
45
|
+
FailedToAddHandlerForOnBeforeUnload = 19,
|
|
46
|
+
FailedToSendQueuedTelemetry = 20,
|
|
47
|
+
FailedToReportDataLoss = 21,
|
|
48
|
+
FlushFailed = 22,
|
|
49
|
+
MessageLimitPerPVExceeded = 23,
|
|
50
|
+
MissingRequiredFieldSpecification = 24,
|
|
51
|
+
NavigationTimingNotSupported = 25,
|
|
52
|
+
OnError = 26,
|
|
53
|
+
SessionRenewalDateIsZero = 27,
|
|
54
|
+
SenderNotInitialized = 28,
|
|
55
|
+
StartTrackEventFailed = 29,
|
|
56
|
+
StopTrackEventFailed = 30,
|
|
57
|
+
StartTrackFailed = 31,
|
|
58
|
+
StopTrackFailed = 32,
|
|
59
|
+
TelemetrySampledAndNotSent = 33,
|
|
60
|
+
TrackEventFailed = 34,
|
|
61
|
+
TrackExceptionFailed = 35,
|
|
62
|
+
TrackMetricFailed = 36,
|
|
63
|
+
TrackPVFailed = 37,
|
|
64
|
+
TrackPVFailedCalc = 38,
|
|
65
|
+
TrackTraceFailed = 39,
|
|
66
|
+
TransmissionFailed = 40,
|
|
67
|
+
FailedToSetStorageBuffer = 41,
|
|
68
|
+
FailedToRestoreStorageBuffer = 42,
|
|
69
|
+
InvalidBackendResponse = 43,
|
|
70
|
+
FailedToFixDepricatedValues = 44,
|
|
71
|
+
InvalidDurationValue = 45,
|
|
72
|
+
TelemetryEnvelopeInvalid = 46,
|
|
73
|
+
CreateEnvelopeError = 47,
|
|
74
|
+
|
|
75
|
+
// User actionable
|
|
76
|
+
CannotSerializeObject = 48,
|
|
77
|
+
CannotSerializeObjectNonSerializable = 49,
|
|
78
|
+
CircularReferenceDetected = 50,
|
|
79
|
+
ClearAuthContextFailed = 51,
|
|
80
|
+
ExceptionTruncated = 52,
|
|
81
|
+
IllegalCharsInName = 53,
|
|
82
|
+
ItemNotInArray = 54,
|
|
83
|
+
MaxAjaxPerPVExceeded = 55,
|
|
84
|
+
MessageTruncated = 56,
|
|
85
|
+
NameTooLong = 57,
|
|
86
|
+
SampleRateOutOfRange = 58,
|
|
87
|
+
SetAuthContextFailed = 59,
|
|
88
|
+
SetAuthContextFailedAccountName = 60,
|
|
89
|
+
StringValueTooLong = 61,
|
|
90
|
+
StartCalledMoreThanOnce = 62,
|
|
91
|
+
StopCalledWithoutStart = 63,
|
|
92
|
+
TelemetryInitializerFailed = 64,
|
|
93
|
+
TrackArgumentsNotSpecified = 65,
|
|
94
|
+
UrlTooLong = 66,
|
|
95
|
+
SessionStorageBufferFull = 67,
|
|
96
|
+
CannotAccessCookie = 68,
|
|
97
|
+
IdTooLong = 69,
|
|
98
|
+
InvalidEvent = 70,
|
|
99
|
+
FailedMonitorAjaxSetRequestHeader = 71,
|
|
100
|
+
SendBrowserInfoOnUserInit = 72,
|
|
101
|
+
PluginException = 73,
|
|
102
|
+
NotificationException = 74,
|
|
103
|
+
SnippetScriptLoadFailure = 99,
|
|
104
|
+
InvalidInstrumentationKey = 100,
|
|
105
|
+
CannotParseAiBlobValue = 101,
|
|
106
|
+
InvalidContentBlob = 102,
|
|
107
|
+
TrackPageActionEventFailed = 103,
|
|
108
|
+
FailedAddingCustomDefinedRequestContext = 104,
|
|
109
|
+
InMemoryStorageBufferFull = 105
|
|
13
110
|
}
|
|
14
111
|
|
|
15
112
|
/**
|
|
16
113
|
* Internal message ID. Please create a new one for every conceptually different message. Please keep alphabetically ordered
|
|
17
114
|
*/
|
|
18
|
-
export const _InternalMessageId = {
|
|
115
|
+
export const _InternalMessageId = createEnumStyle<{ [key in (keyof typeof _eInternalMessageId)]: number; }>({
|
|
19
116
|
// Non user actionable
|
|
20
|
-
BrowserDoesNotSupportLocalStorage:
|
|
21
|
-
BrowserCannotReadLocalStorage:
|
|
22
|
-
BrowserCannotReadSessionStorage:
|
|
23
|
-
BrowserCannotWriteLocalStorage:
|
|
24
|
-
BrowserCannotWriteSessionStorage:
|
|
25
|
-
BrowserFailedRemovalFromLocalStorage:
|
|
26
|
-
BrowserFailedRemovalFromSessionStorage:
|
|
27
|
-
CannotSendEmptyTelemetry:
|
|
28
|
-
ClientPerformanceMathError:
|
|
29
|
-
ErrorParsingAISessionCookie:
|
|
30
|
-
ErrorPVCalc:
|
|
31
|
-
ExceptionWhileLoggingError:
|
|
32
|
-
FailedAddingTelemetryToBuffer:
|
|
33
|
-
FailedMonitorAjaxAbort:
|
|
34
|
-
FailedMonitorAjaxDur:
|
|
35
|
-
FailedMonitorAjaxOpen:
|
|
36
|
-
FailedMonitorAjaxRSC:
|
|
37
|
-
FailedMonitorAjaxSend:
|
|
38
|
-
FailedMonitorAjaxGetCorrelationHeader:
|
|
39
|
-
FailedToAddHandlerForOnBeforeUnload:
|
|
40
|
-
FailedToSendQueuedTelemetry:
|
|
41
|
-
FailedToReportDataLoss:
|
|
42
|
-
FlushFailed:
|
|
43
|
-
MessageLimitPerPVExceeded:
|
|
44
|
-
MissingRequiredFieldSpecification:
|
|
45
|
-
NavigationTimingNotSupported:
|
|
46
|
-
OnError:
|
|
47
|
-
SessionRenewalDateIsZero:
|
|
48
|
-
SenderNotInitialized:
|
|
49
|
-
StartTrackEventFailed:
|
|
50
|
-
StopTrackEventFailed:
|
|
51
|
-
StartTrackFailed:
|
|
52
|
-
StopTrackFailed:
|
|
53
|
-
TelemetrySampledAndNotSent:
|
|
54
|
-
TrackEventFailed:
|
|
55
|
-
TrackExceptionFailed:
|
|
56
|
-
TrackMetricFailed:
|
|
57
|
-
TrackPVFailed:
|
|
58
|
-
TrackPVFailedCalc:
|
|
59
|
-
TrackTraceFailed:
|
|
60
|
-
TransmissionFailed:
|
|
61
|
-
FailedToSetStorageBuffer:
|
|
62
|
-
FailedToRestoreStorageBuffer:
|
|
63
|
-
InvalidBackendResponse:
|
|
64
|
-
FailedToFixDepricatedValues:
|
|
65
|
-
InvalidDurationValue:
|
|
66
|
-
TelemetryEnvelopeInvalid:
|
|
67
|
-
CreateEnvelopeError:
|
|
117
|
+
BrowserDoesNotSupportLocalStorage: _eInternalMessageId.BrowserDoesNotSupportLocalStorage,
|
|
118
|
+
BrowserCannotReadLocalStorage: _eInternalMessageId.BrowserCannotReadLocalStorage,
|
|
119
|
+
BrowserCannotReadSessionStorage: _eInternalMessageId.BrowserCannotReadSessionStorage,
|
|
120
|
+
BrowserCannotWriteLocalStorage: _eInternalMessageId.BrowserCannotWriteLocalStorage,
|
|
121
|
+
BrowserCannotWriteSessionStorage: _eInternalMessageId.BrowserCannotWriteSessionStorage,
|
|
122
|
+
BrowserFailedRemovalFromLocalStorage: _eInternalMessageId.BrowserFailedRemovalFromLocalStorage,
|
|
123
|
+
BrowserFailedRemovalFromSessionStorage: _eInternalMessageId.BrowserFailedRemovalFromSessionStorage,
|
|
124
|
+
CannotSendEmptyTelemetry: _eInternalMessageId.CannotSendEmptyTelemetry,
|
|
125
|
+
ClientPerformanceMathError: _eInternalMessageId.ClientPerformanceMathError,
|
|
126
|
+
ErrorParsingAISessionCookie: _eInternalMessageId.ErrorParsingAISessionCookie,
|
|
127
|
+
ErrorPVCalc: _eInternalMessageId.ErrorPVCalc,
|
|
128
|
+
ExceptionWhileLoggingError: _eInternalMessageId.ExceptionWhileLoggingError,
|
|
129
|
+
FailedAddingTelemetryToBuffer: _eInternalMessageId.FailedAddingTelemetryToBuffer,
|
|
130
|
+
FailedMonitorAjaxAbort: _eInternalMessageId.FailedMonitorAjaxAbort,
|
|
131
|
+
FailedMonitorAjaxDur: _eInternalMessageId.FailedMonitorAjaxDur,
|
|
132
|
+
FailedMonitorAjaxOpen: _eInternalMessageId.FailedMonitorAjaxOpen,
|
|
133
|
+
FailedMonitorAjaxRSC: _eInternalMessageId.FailedMonitorAjaxRSC,
|
|
134
|
+
FailedMonitorAjaxSend: _eInternalMessageId.FailedMonitorAjaxSend,
|
|
135
|
+
FailedMonitorAjaxGetCorrelationHeader: _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader,
|
|
136
|
+
FailedToAddHandlerForOnBeforeUnload: _eInternalMessageId.FailedToAddHandlerForOnBeforeUnload,
|
|
137
|
+
FailedToSendQueuedTelemetry: _eInternalMessageId.FailedToSendQueuedTelemetry,
|
|
138
|
+
FailedToReportDataLoss: _eInternalMessageId.FailedToReportDataLoss,
|
|
139
|
+
FlushFailed: _eInternalMessageId.FlushFailed,
|
|
140
|
+
MessageLimitPerPVExceeded: _eInternalMessageId.MessageLimitPerPVExceeded,
|
|
141
|
+
MissingRequiredFieldSpecification: _eInternalMessageId.MissingRequiredFieldSpecification,
|
|
142
|
+
NavigationTimingNotSupported: _eInternalMessageId.NavigationTimingNotSupported,
|
|
143
|
+
OnError: _eInternalMessageId.OnError,
|
|
144
|
+
SessionRenewalDateIsZero: _eInternalMessageId.SessionRenewalDateIsZero,
|
|
145
|
+
SenderNotInitialized: _eInternalMessageId.SenderNotInitialized,
|
|
146
|
+
StartTrackEventFailed: _eInternalMessageId.StartTrackEventFailed,
|
|
147
|
+
StopTrackEventFailed: _eInternalMessageId.StopTrackEventFailed,
|
|
148
|
+
StartTrackFailed: _eInternalMessageId.StartTrackFailed,
|
|
149
|
+
StopTrackFailed: _eInternalMessageId.StopTrackFailed,
|
|
150
|
+
TelemetrySampledAndNotSent: _eInternalMessageId.TelemetrySampledAndNotSent,
|
|
151
|
+
TrackEventFailed: _eInternalMessageId.TrackEventFailed,
|
|
152
|
+
TrackExceptionFailed: _eInternalMessageId.TrackExceptionFailed,
|
|
153
|
+
TrackMetricFailed: _eInternalMessageId.TrackMetricFailed,
|
|
154
|
+
TrackPVFailed: _eInternalMessageId.TrackPVFailed,
|
|
155
|
+
TrackPVFailedCalc: _eInternalMessageId.TrackPVFailedCalc,
|
|
156
|
+
TrackTraceFailed: _eInternalMessageId.TrackTraceFailed,
|
|
157
|
+
TransmissionFailed: _eInternalMessageId.TransmissionFailed,
|
|
158
|
+
FailedToSetStorageBuffer: _eInternalMessageId.FailedToSetStorageBuffer,
|
|
159
|
+
FailedToRestoreStorageBuffer: _eInternalMessageId.FailedToRestoreStorageBuffer,
|
|
160
|
+
InvalidBackendResponse: _eInternalMessageId.InvalidBackendResponse,
|
|
161
|
+
FailedToFixDepricatedValues: _eInternalMessageId.FailedToFixDepricatedValues,
|
|
162
|
+
InvalidDurationValue: _eInternalMessageId.InvalidDurationValue,
|
|
163
|
+
TelemetryEnvelopeInvalid: _eInternalMessageId.TelemetryEnvelopeInvalid,
|
|
164
|
+
CreateEnvelopeError: _eInternalMessageId.CreateEnvelopeError,
|
|
68
165
|
|
|
69
166
|
// User actionable
|
|
70
|
-
CannotSerializeObject:
|
|
71
|
-
CannotSerializeObjectNonSerializable:
|
|
72
|
-
CircularReferenceDetected:
|
|
73
|
-
ClearAuthContextFailed:
|
|
74
|
-
ExceptionTruncated:
|
|
75
|
-
IllegalCharsInName:
|
|
76
|
-
ItemNotInArray:
|
|
77
|
-
MaxAjaxPerPVExceeded:
|
|
78
|
-
MessageTruncated:
|
|
79
|
-
NameTooLong:
|
|
80
|
-
SampleRateOutOfRange:
|
|
81
|
-
SetAuthContextFailed:
|
|
82
|
-
SetAuthContextFailedAccountName:
|
|
83
|
-
StringValueTooLong:
|
|
84
|
-
StartCalledMoreThanOnce:
|
|
85
|
-
StopCalledWithoutStart:
|
|
86
|
-
TelemetryInitializerFailed:
|
|
87
|
-
TrackArgumentsNotSpecified:
|
|
88
|
-
UrlTooLong:
|
|
89
|
-
SessionStorageBufferFull:
|
|
90
|
-
CannotAccessCookie:
|
|
91
|
-
IdTooLong:
|
|
92
|
-
InvalidEvent:
|
|
93
|
-
FailedMonitorAjaxSetRequestHeader:
|
|
94
|
-
SendBrowserInfoOnUserInit:
|
|
95
|
-
PluginException:
|
|
96
|
-
NotificationException:
|
|
97
|
-
SnippetScriptLoadFailure:
|
|
98
|
-
InvalidInstrumentationKey:
|
|
99
|
-
CannotParseAiBlobValue:
|
|
100
|
-
InvalidContentBlob:
|
|
101
|
-
TrackPageActionEventFailed:
|
|
102
|
-
FailedAddingCustomDefinedRequestContext:
|
|
103
|
-
InMemoryStorageBufferFull:
|
|
104
|
-
};
|
|
105
|
-
export type _InternalMessageId = number |
|
|
167
|
+
CannotSerializeObject: _eInternalMessageId.CannotSerializeObject,
|
|
168
|
+
CannotSerializeObjectNonSerializable: _eInternalMessageId.CannotSerializeObjectNonSerializable,
|
|
169
|
+
CircularReferenceDetected: _eInternalMessageId.CircularReferenceDetected,
|
|
170
|
+
ClearAuthContextFailed: _eInternalMessageId.ClearAuthContextFailed,
|
|
171
|
+
ExceptionTruncated: _eInternalMessageId.ExceptionTruncated,
|
|
172
|
+
IllegalCharsInName: _eInternalMessageId.IllegalCharsInName,
|
|
173
|
+
ItemNotInArray: _eInternalMessageId.ItemNotInArray,
|
|
174
|
+
MaxAjaxPerPVExceeded: _eInternalMessageId.MaxAjaxPerPVExceeded,
|
|
175
|
+
MessageTruncated: _eInternalMessageId.MessageTruncated,
|
|
176
|
+
NameTooLong: _eInternalMessageId.NameTooLong,
|
|
177
|
+
SampleRateOutOfRange: _eInternalMessageId.SampleRateOutOfRange,
|
|
178
|
+
SetAuthContextFailed: _eInternalMessageId.SetAuthContextFailed,
|
|
179
|
+
SetAuthContextFailedAccountName: _eInternalMessageId.SetAuthContextFailedAccountName,
|
|
180
|
+
StringValueTooLong: _eInternalMessageId.StringValueTooLong,
|
|
181
|
+
StartCalledMoreThanOnce: _eInternalMessageId.StartCalledMoreThanOnce,
|
|
182
|
+
StopCalledWithoutStart: _eInternalMessageId.StopCalledWithoutStart,
|
|
183
|
+
TelemetryInitializerFailed: _eInternalMessageId.TelemetryInitializerFailed,
|
|
184
|
+
TrackArgumentsNotSpecified: _eInternalMessageId.TrackArgumentsNotSpecified,
|
|
185
|
+
UrlTooLong: _eInternalMessageId.UrlTooLong,
|
|
186
|
+
SessionStorageBufferFull: _eInternalMessageId.SessionStorageBufferFull,
|
|
187
|
+
CannotAccessCookie: _eInternalMessageId.CannotAccessCookie,
|
|
188
|
+
IdTooLong: _eInternalMessageId.IdTooLong,
|
|
189
|
+
InvalidEvent: _eInternalMessageId.InvalidEvent,
|
|
190
|
+
FailedMonitorAjaxSetRequestHeader: _eInternalMessageId.FailedMonitorAjaxSetRequestHeader,
|
|
191
|
+
SendBrowserInfoOnUserInit: _eInternalMessageId.SendBrowserInfoOnUserInit,
|
|
192
|
+
PluginException: _eInternalMessageId.PluginException,
|
|
193
|
+
NotificationException: _eInternalMessageId.NotificationException,
|
|
194
|
+
SnippetScriptLoadFailure: _eInternalMessageId.SnippetScriptLoadFailure,
|
|
195
|
+
InvalidInstrumentationKey: _eInternalMessageId.InvalidInstrumentationKey,
|
|
196
|
+
CannotParseAiBlobValue: _eInternalMessageId.CannotParseAiBlobValue,
|
|
197
|
+
InvalidContentBlob: _eInternalMessageId.InvalidContentBlob,
|
|
198
|
+
TrackPageActionEventFailed: _eInternalMessageId.TrackPageActionEventFailed,
|
|
199
|
+
FailedAddingCustomDefinedRequestContext: _eInternalMessageId.FailedAddingCustomDefinedRequestContext,
|
|
200
|
+
InMemoryStorageBufferFull: _eInternalMessageId.InMemoryStorageBufferFull
|
|
201
|
+
});
|
|
202
|
+
export type _InternalMessageId = number | _eInternalMessageId;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The TelemetryUnloadReason enumeration contains the possible reasons for why a plugin is being unloaded / torndown().
|
|
6
|
+
*/
|
|
7
|
+
export const enum TelemetryUnloadReason {
|
|
8
|
+
/**
|
|
9
|
+
* Teardown has been called without any context.
|
|
10
|
+
*/
|
|
11
|
+
ManualTeardown = 0,
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Just this plugin is being removed
|
|
15
|
+
*/
|
|
16
|
+
PluginUnload = 1,
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* This instance of the plugin is being removed and replaced
|
|
20
|
+
*/
|
|
21
|
+
PluginReplace = 2,
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The entire SDK is being unloaded
|
|
25
|
+
*/
|
|
26
|
+
SdkUnload = 50
|
|
27
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
import { ITelemetryItem } from "./ITelemetryItem";
|
|
4
4
|
import { IChannelControls } from "./IChannelControls";
|
|
5
|
-
import { IPlugin } from "./ITelemetryPlugin";
|
|
5
|
+
import { IPlugin, ITelemetryPlugin } from "./ITelemetryPlugin";
|
|
6
6
|
import { IConfiguration } from "./IConfiguration";
|
|
7
7
|
import { INotificationManager } from "./INotificationManager";
|
|
8
8
|
import { INotificationListener } from "./INotificationListener";
|
|
@@ -11,9 +11,27 @@ import { IProcessTelemetryContext } from "./IProcessTelemetryContext";
|
|
|
11
11
|
import { IPerfManagerProvider } from "./IPerfManager";
|
|
12
12
|
import { ICookieMgr } from "./ICookieMgr";
|
|
13
13
|
import { ITelemetryInitializerHandler, TelemetryInitializerFunction } from "./ITelemetryInitializers";
|
|
14
|
+
import { UnloadHandler } from "../applicationinsights-core-js";
|
|
14
15
|
|
|
15
16
|
export interface ILoadedPlugin<T extends IPlugin> {
|
|
16
17
|
plugin: T;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Identifies whether the plugin is enabled and can process events. This is slightly different from isInitialized as the plugin may be initialized but disabled
|
|
21
|
+
* via the setEnabled() or it may be a shared plugin which has had it's teardown function called from another instance..
|
|
22
|
+
* @returns boolean = true if the plugin is in a state where it is operational.
|
|
23
|
+
*/
|
|
24
|
+
isEnabled: () => boolean;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* You can optionally enable / disable a plugin from processing events.
|
|
28
|
+
* Setting enabled to true will not necessarily cause the `isEnabled()` to also return true
|
|
29
|
+
* as the plugin must also have been successfully initialized and not had it's `teardown` method called
|
|
30
|
+
* (unless it's also been re-initialized)
|
|
31
|
+
*/
|
|
32
|
+
setEnabled: (isEnabled: boolean) => void;
|
|
33
|
+
|
|
34
|
+
remove: (isAsync?: boolean, removeCb?: (removed?: boolean) => void) => void;
|
|
17
35
|
}
|
|
18
36
|
|
|
19
37
|
export interface IAppInsightsCore extends IPerfManagerProvider {
|
|
@@ -91,9 +109,38 @@ export interface IAppInsightsCore extends IPerfManagerProvider {
|
|
|
91
109
|
*/
|
|
92
110
|
getProcessTelContext() : IProcessTelemetryContext;
|
|
93
111
|
|
|
112
|
+
/**
|
|
113
|
+
* Unload and Tear down the SDK and any initialized plugins, after calling this the SDK will be considered
|
|
114
|
+
* to be un-initialized and non-operational, re-initializing the SDK should only be attempted if the previous
|
|
115
|
+
* unload call return `true` stating that all plugins reported that they also unloaded, the recommended
|
|
116
|
+
* approach is to create a new instance and initialize that instance.
|
|
117
|
+
* This is due to possible unexpected side effects caused by plugins not supporting unload / teardown, unable
|
|
118
|
+
* to successfully remove any global references or they may just be completing the unload process asynchronously.
|
|
119
|
+
*/
|
|
120
|
+
unload(isAsync?: boolean, unloadComplete?: () => void): void;
|
|
121
|
+
|
|
94
122
|
/**
|
|
95
123
|
* Find and return the (first) plugin with the specified identifier if present
|
|
96
124
|
* @param pluginIdentifier
|
|
97
125
|
*/
|
|
98
126
|
getPlugin<T extends IPlugin = IPlugin>(pluginIdentifier: string): ILoadedPlugin<T>;
|
|
99
|
-
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Add a new plugin to the installation
|
|
130
|
+
* @param plugin - The new plugin to add
|
|
131
|
+
* @param replaceExisting - should any existing plugin be replaced
|
|
132
|
+
* @param doAsync - Should the add be performed asynchronously
|
|
133
|
+
*/
|
|
134
|
+
addPlugin<T extends IPlugin = ITelemetryPlugin>(plugin: T, replaceExisting: boolean, doAsync: boolean, addCb?: (added?: boolean) => void): void;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Returns the unique event namespace that should be used when registering events
|
|
138
|
+
*/
|
|
139
|
+
evtNamespace(): string;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Add a handler that will be called when the SDK is being unloaded
|
|
143
|
+
* @param handler - the handler
|
|
144
|
+
*/
|
|
145
|
+
addUnloadCb(handler: UnloadHandler): void;
|
|
146
|
+
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
import { SendRequestReason } from "../JavaScriptSDK.Enums/SendRequestReason";
|
|
4
|
+
import { IProcessTelemetryUnloadContext } from "./IProcessTelemetryContext";
|
|
4
5
|
import { ITelemetryPlugin } from "./ITelemetryPlugin";
|
|
6
|
+
import { ITelemetryUnloadState } from "./ITelemetryUnloadState";
|
|
5
7
|
|
|
6
8
|
"use strict";
|
|
7
9
|
|
|
@@ -21,9 +23,14 @@ export interface IChannelControls extends ITelemetryPlugin {
|
|
|
21
23
|
resume(): void;
|
|
22
24
|
|
|
23
25
|
/**
|
|
24
|
-
* Tear down
|
|
26
|
+
* Tear down the plugin and remove any hooked value, the plugin should be removed so that it is no longer initialized and
|
|
27
|
+
* therefore could be re-initialized after being torn down. The plugin should ensure that once this has been called any further
|
|
28
|
+
* processTelemetry calls are ignored and it just calls the processNext() with the provided context.
|
|
29
|
+
* @param unloadCtx - This is the context that should be used during unloading.
|
|
30
|
+
* @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.
|
|
31
|
+
* @returns boolean - true if the plugin has or will call processNext(), this for backward compatibility as previously teardown was synchronous and returned nothing.
|
|
25
32
|
*/
|
|
26
|
-
teardown()
|
|
33
|
+
teardown: (unloadCtx?: IProcessTelemetryUnloadContext, unloadState?: ITelemetryUnloadState) => void | boolean;
|
|
27
34
|
|
|
28
35
|
/**
|
|
29
36
|
* Flush to send data immediately; channel should default to sending data asynchronously
|