@microsoft/applicationinsights-core-js 2.8.0-beta.2203-05 → 2.8.0-beta.2203-08
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 +19 -8
- 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 +260 -12
- package/dist/applicationinsights-core-js.api.md +8 -4
- package/dist/applicationinsights-core-js.d.ts +47 -5
- package/dist/applicationinsights-core-js.js +19 -8
- 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 +47 -5
- package/dist-esm/JavaScriptSDK/AppInsightsCore.js +1 -1
- package/dist-esm/JavaScriptSDK/BaseCore.js +13 -8
- package/dist-esm/JavaScriptSDK/BaseCore.js.map +1 -1
- package/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js +2 -2
- package/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js.map +1 -1
- package/dist-esm/JavaScriptSDK/ChannelController.js +2 -1
- package/dist-esm/JavaScriptSDK/ChannelController.js.map +1 -1
- package/dist-esm/JavaScriptSDK/Constants.js +1 -1
- package/dist-esm/JavaScriptSDK/CookieMgr.js +1 -1
- package/dist-esm/JavaScriptSDK/CoreUtils.js +1 -1
- package/dist-esm/JavaScriptSDK/DataCacheHelper.js +1 -1
- package/dist-esm/JavaScriptSDK/DbgExtensionUtils.js +1 -1
- package/dist-esm/JavaScriptSDK/DiagnosticLogger.js +1 -1
- package/dist-esm/JavaScriptSDK/EnvUtils.js +1 -1
- package/dist-esm/JavaScriptSDK/EventHelpers.js +1 -1
- package/dist-esm/JavaScriptSDK/HelperFuncs.js +1 -1
- package/dist-esm/JavaScriptSDK/InstrumentHooks.js +1 -1
- package/dist-esm/JavaScriptSDK/InternalConstants.js +1 -1
- package/dist-esm/JavaScriptSDK/NotificationManager.js +1 -1
- package/dist-esm/JavaScriptSDK/PerfManager.js +1 -1
- package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js +1 -1
- package/dist-esm/JavaScriptSDK/RandomHelper.js +1 -1
- package/dist-esm/JavaScriptSDK/TelemetryHelpers.js +1 -1
- package/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js +1 -1
- package/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/SendRequestReason.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/TelemetryUnloadReason.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/TelemetryUpdateReason.js +1 -1
- 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 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUnloadState.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUpdateState.js +1 -1
- package/dist-esm/applicationinsights-core-js.js +2 -2
- package/dist-esm/applicationinsights-core-js.js.map +1 -1
- package/package.json +1 -1
- package/src/JavaScriptSDK/BaseCore.ts +38 -8
- package/src/JavaScriptSDK/BaseTelemetryPlugin.ts +1 -1
- package/src/JavaScriptSDK/ChannelController.ts +2 -0
- package/src/JavaScriptSDK.Interfaces/IAppInsightsCore.ts +22 -5
- package/types/JavaScriptSDK/BaseCore.d.ts +21 -1
- package/types/JavaScriptSDK.Interfaces/IAppInsightsCore.d.ts +20 -4
- package/types/applicationinsights-core-js.d.ts +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Core, 2.8.0-beta.2203-
|
|
2
|
+
* Application Insights JavaScript SDK - Core, 2.8.0-beta.2203-08
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
export { MinChannelPriorty } from "./JavaScriptSDK.Interfaces/IChannelControls";
|
|
@@ -10,7 +10,7 @@ export { BaseTelemetryPlugin } from "./JavaScriptSDK/BaseTelemetryPlugin";
|
|
|
10
10
|
export { randomValue, random32, mwcRandomSeed, mwcRandom32, newId } from "./JavaScriptSDK/RandomHelper";
|
|
11
11
|
export { CoreUtils, EventHelper, Undefined, newGuid, perfNow, generateW3CId, disableCookies, canUseCookies, getCookie, setCookie, deleteCookie, _legacyCookieMgr } from "./JavaScriptSDK/CoreUtils";
|
|
12
12
|
export { isTypeof, isUndefined, isNullOrUndefined, hasOwnProperty, isObject, isFunction, normalizeJsName, objForEachKey, strEndsWith, strStartsWith, isDate, isArray, isError, isString, isNumber, isBoolean, toISOString, arrForEach, arrIndexOf, arrMap, arrReduce, strTrim, objKeys, objDefineAccessors, dateNow, getExceptionName, throwError, strContains, isSymbol, setValue, getSetValue, isNotTruthy, isTruthy, proxyAssign, proxyFunctions, proxyFunctionAs, createClassFromInterface, optimizeObject, isNotUndefined, isNotNullOrUndefined, objFreeze, objSeal, createEnumStyle, objExtend } from "./JavaScriptSDK/HelperFuncs";
|
|
13
|
-
export { attachEvent, detachEvent, addEventHandler, addEventListeners, addPageUnloadEventListener, addPageHideEventListener, addPageShowEventListener, removeEventHandler, removeEventListeners, removePageUnloadEventListener, removePageHideEventListener, eventOn, eventOff, mergeEvtNamespace, __getRegisteredEvents } from "./JavaScriptSDK/EventHelpers";
|
|
13
|
+
export { attachEvent, detachEvent, addEventHandler, addEventListeners, addPageUnloadEventListener, addPageHideEventListener, addPageShowEventListener, removeEventHandler, removeEventListeners, removePageUnloadEventListener, removePageHideEventListener, removePageShowEventListener, eventOn, eventOff, mergeEvtNamespace, __getRegisteredEvents } from "./JavaScriptSDK/EventHelpers";
|
|
14
14
|
export { getGlobalInst, hasWindow, getWindow, hasDocument, getDocument, getCrypto, getMsCrypto, hasNavigator, getNavigator, hasHistory, getHistory, getLocation, getPerformance, hasJSON, getJSON, isReactNative, getConsole, dumpObj, isIE, getIEVersion, isSafari, setEnableEnvMocks, isBeaconsSupported, isFetchSupported, useXDomainRequest, isXhrSupported } from "./JavaScriptSDK/EnvUtils";
|
|
15
15
|
export { getGlobal, objCreateFn as objCreate, strShimPrototype as strPrototype, strShimFunction as strFunction, strShimUndefined as strUndefined, strShimObject as strObject } from "@microsoft/applicationinsights-shims";
|
|
16
16
|
export { NotificationManager } from "./JavaScriptSDK/NotificationManager";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applicationinsights-core-js.js.map","sources":["applicationinsights-core-js.js"],"sourcesContent":["export { MinChannelPriorty } from \"./JavaScriptSDK.Interfaces/IChannelControls\";\r\nexport { EventsDiscardedReason } from \"./JavaScriptSDK.Enums/EventsDiscardedReason\";\r\nexport { AppInsightsCore } from \"./JavaScriptSDK/AppInsightsCore\";\r\nexport { BaseCore } from \"./JavaScriptSDK/BaseCore\";\r\nexport { BaseTelemetryPlugin } from \"./JavaScriptSDK/BaseTelemetryPlugin\";\r\nexport { randomValue, random32, mwcRandomSeed, mwcRandom32, newId } from \"./JavaScriptSDK/RandomHelper\";\r\nexport { CoreUtils, EventHelper, Undefined, newGuid, perfNow, generateW3CId, disableCookies, canUseCookies, getCookie, setCookie, deleteCookie, _legacyCookieMgr } from \"./JavaScriptSDK/CoreUtils\";\r\nexport { isTypeof, isUndefined, isNullOrUndefined, hasOwnProperty, isObject, isFunction, normalizeJsName, objForEachKey, strEndsWith, strStartsWith, isDate, isArray, isError, isString, isNumber, isBoolean, toISOString, arrForEach, arrIndexOf, arrMap, arrReduce, strTrim, objKeys, objDefineAccessors, dateNow, getExceptionName, throwError, strContains, isSymbol, setValue, getSetValue, isNotTruthy, isTruthy, proxyAssign, proxyFunctions, proxyFunctionAs, createClassFromInterface, optimizeObject, isNotUndefined, isNotNullOrUndefined, objFreeze, objSeal, createEnumStyle, objExtend } from \"./JavaScriptSDK/HelperFuncs\";\r\nexport { attachEvent, detachEvent, addEventHandler, addEventListeners, addPageUnloadEventListener, addPageHideEventListener, addPageShowEventListener, removeEventHandler, removeEventListeners, removePageUnloadEventListener, removePageHideEventListener, eventOn, eventOff, mergeEvtNamespace, __getRegisteredEvents } from \"./JavaScriptSDK/EventHelpers\";\r\nexport { getGlobalInst, hasWindow, getWindow, hasDocument, getDocument, getCrypto, getMsCrypto, hasNavigator, getNavigator, hasHistory, getHistory, getLocation, getPerformance, hasJSON, getJSON, isReactNative, getConsole, dumpObj, isIE, getIEVersion, isSafari, setEnableEnvMocks, isBeaconsSupported, isFetchSupported, useXDomainRequest, isXhrSupported } from \"./JavaScriptSDK/EnvUtils\";\r\nexport { getGlobal, objCreateFn as objCreate, strShimPrototype as strPrototype, strShimFunction as strFunction, strShimUndefined as strUndefined, strShimObject as strObject } from \"@microsoft/applicationinsights-shims\";\r\nexport { NotificationManager } from \"./JavaScriptSDK/NotificationManager\";\r\nexport { PerfEvent, PerfManager, doPerf, getGblPerfMgr, setGblPerfMgr } from \"./JavaScriptSDK/PerfManager\";\r\nexport { safeGetLogger, DiagnosticLogger, _InternalLogMessage, _throwInternal } from \"./JavaScriptSDK/DiagnosticLogger\";\r\nexport { ProcessTelemetryContext, createProcessTelemetryContext\r\n// Explicitly NOT exporting createProcessTelemetryUnloadContext() and createProcessTelemetryUpdateContext() as these should only be created internally\r\n } from \"./JavaScriptSDK/ProcessTelemetryContext\";\r\nexport { initializePlugins, sortPlugins } from \"./JavaScriptSDK/TelemetryHelpers\";\r\nexport { _InternalMessageId, LoggingSeverity } from \"./JavaScriptSDK.Enums/LoggingEnums\";\r\nexport { InstrumentProto, InstrumentProtos, InstrumentFunc, InstrumentFuncs } from \"./JavaScriptSDK/InstrumentHooks\";\r\nexport { createCookieMgr, safeGetCookieMgr, uaDisallowsSameSiteNone, areCookiesSupported } from \"./JavaScriptSDK/CookieMgr\";\r\nexport { strIKey, strExtensionConfig } from \"./JavaScriptSDK/Constants\";\r\nexport { getDebugListener, getDebugExt } from \"./JavaScriptSDK/DbgExtensionUtils\";\r\nexport { createUniqueNamespace } from \"./JavaScriptSDK/DataCacheHelper\";\r\nexport { createUnloadHandlerContainer } from \"./JavaScriptSDK/UnloadHandlerContainer\";\r\n//# sourceMappingURL=applicationinsights-core-js.js.map"],"names":[],"mappings":";;;;AAAA;AACA;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
|
+
{"version":3,"file":"applicationinsights-core-js.js.map","sources":["applicationinsights-core-js.js"],"sourcesContent":["export { MinChannelPriorty } from \"./JavaScriptSDK.Interfaces/IChannelControls\";\r\nexport { EventsDiscardedReason } from \"./JavaScriptSDK.Enums/EventsDiscardedReason\";\r\nexport { AppInsightsCore } from \"./JavaScriptSDK/AppInsightsCore\";\r\nexport { BaseCore } from \"./JavaScriptSDK/BaseCore\";\r\nexport { BaseTelemetryPlugin } from \"./JavaScriptSDK/BaseTelemetryPlugin\";\r\nexport { randomValue, random32, mwcRandomSeed, mwcRandom32, newId } from \"./JavaScriptSDK/RandomHelper\";\r\nexport { CoreUtils, EventHelper, Undefined, newGuid, perfNow, generateW3CId, disableCookies, canUseCookies, getCookie, setCookie, deleteCookie, _legacyCookieMgr } from \"./JavaScriptSDK/CoreUtils\";\r\nexport { isTypeof, isUndefined, isNullOrUndefined, hasOwnProperty, isObject, isFunction, normalizeJsName, objForEachKey, strEndsWith, strStartsWith, isDate, isArray, isError, isString, isNumber, isBoolean, toISOString, arrForEach, arrIndexOf, arrMap, arrReduce, strTrim, objKeys, objDefineAccessors, dateNow, getExceptionName, throwError, strContains, isSymbol, setValue, getSetValue, isNotTruthy, isTruthy, proxyAssign, proxyFunctions, proxyFunctionAs, createClassFromInterface, optimizeObject, isNotUndefined, isNotNullOrUndefined, objFreeze, objSeal, createEnumStyle, objExtend } from \"./JavaScriptSDK/HelperFuncs\";\r\nexport { attachEvent, detachEvent, addEventHandler, addEventListeners, addPageUnloadEventListener, addPageHideEventListener, addPageShowEventListener, removeEventHandler, removeEventListeners, removePageUnloadEventListener, removePageHideEventListener, removePageShowEventListener, eventOn, eventOff, mergeEvtNamespace, __getRegisteredEvents } from \"./JavaScriptSDK/EventHelpers\";\r\nexport { getGlobalInst, hasWindow, getWindow, hasDocument, getDocument, getCrypto, getMsCrypto, hasNavigator, getNavigator, hasHistory, getHistory, getLocation, getPerformance, hasJSON, getJSON, isReactNative, getConsole, dumpObj, isIE, getIEVersion, isSafari, setEnableEnvMocks, isBeaconsSupported, isFetchSupported, useXDomainRequest, isXhrSupported } from \"./JavaScriptSDK/EnvUtils\";\r\nexport { getGlobal, objCreateFn as objCreate, strShimPrototype as strPrototype, strShimFunction as strFunction, strShimUndefined as strUndefined, strShimObject as strObject } from \"@microsoft/applicationinsights-shims\";\r\nexport { NotificationManager } from \"./JavaScriptSDK/NotificationManager\";\r\nexport { PerfEvent, PerfManager, doPerf, getGblPerfMgr, setGblPerfMgr } from \"./JavaScriptSDK/PerfManager\";\r\nexport { safeGetLogger, DiagnosticLogger, _InternalLogMessage, _throwInternal } from \"./JavaScriptSDK/DiagnosticLogger\";\r\nexport { ProcessTelemetryContext, createProcessTelemetryContext\r\n// Explicitly NOT exporting createProcessTelemetryUnloadContext() and createProcessTelemetryUpdateContext() as these should only be created internally\r\n } from \"./JavaScriptSDK/ProcessTelemetryContext\";\r\nexport { initializePlugins, sortPlugins } from \"./JavaScriptSDK/TelemetryHelpers\";\r\nexport { _InternalMessageId, LoggingSeverity } from \"./JavaScriptSDK.Enums/LoggingEnums\";\r\nexport { InstrumentProto, InstrumentProtos, InstrumentFunc, InstrumentFuncs } from \"./JavaScriptSDK/InstrumentHooks\";\r\nexport { createCookieMgr, safeGetCookieMgr, uaDisallowsSameSiteNone, areCookiesSupported } from \"./JavaScriptSDK/CookieMgr\";\r\nexport { strIKey, strExtensionConfig } from \"./JavaScriptSDK/Constants\";\r\nexport { getDebugListener, getDebugExt } from \"./JavaScriptSDK/DbgExtensionUtils\";\r\nexport { createUniqueNamespace } from \"./JavaScriptSDK/DataCacheHelper\";\r\nexport { createUnloadHandlerContainer } from \"./JavaScriptSDK/UnloadHandlerContainer\";\r\n//# sourceMappingURL=applicationinsights-core-js.js.map"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/applicationinsights-core-js",
|
|
3
3
|
"author": "Microsoft Application Insights Team",
|
|
4
|
-
"version": "2.8.0-beta.2203-
|
|
4
|
+
"version": "2.8.0-beta.2203-08",
|
|
5
5
|
"description": "Microsoft Application Insights Core Javascript SDK",
|
|
6
6
|
"homepage": "https://github.com/microsoft/ApplicationInsights-JS#readme",
|
|
7
7
|
"keywords": [
|
|
@@ -194,7 +194,7 @@ export class BaseCore implements IAppInsightsCore {
|
|
|
194
194
|
|
|
195
195
|
_initPluginChain(config, null);
|
|
196
196
|
|
|
197
|
-
if (
|
|
197
|
+
if (!_channelQueue || _channelQueue.length === 0) {
|
|
198
198
|
throwError("No channels available");
|
|
199
199
|
}
|
|
200
200
|
|
|
@@ -379,16 +379,14 @@ export class BaseCore implements IAppInsightsCore {
|
|
|
379
379
|
processUnloadCtx.processNext(unloadState);
|
|
380
380
|
}
|
|
381
381
|
|
|
382
|
-
if (
|
|
383
|
-
|
|
384
|
-
} else {
|
|
385
|
-
_doUnload(true);
|
|
382
|
+
if (!_flushChannels(isAsync, _doUnload, SendRequestReason.SdkUnload, cbTimeout)) {
|
|
383
|
+
_doUnload(false);
|
|
386
384
|
}
|
|
387
385
|
};
|
|
388
386
|
|
|
389
387
|
_self.getPlugin = _getPlugin;
|
|
390
388
|
|
|
391
|
-
_self.addPlugin = <T extends IPlugin = ITelemetryPlugin>(plugin: T, replaceExisting
|
|
389
|
+
_self.addPlugin = <T extends IPlugin = ITelemetryPlugin>(plugin: T, replaceExisting?: boolean, isAsync?: boolean, addCb?: (added?: boolean) => void): void => {
|
|
392
390
|
if (!plugin) {
|
|
393
391
|
addCb && addCb(false);
|
|
394
392
|
_logOrThrowError(strValidationError);
|
|
@@ -442,6 +440,8 @@ export class BaseCore implements IAppInsightsCore {
|
|
|
442
440
|
return _evtNamespace;
|
|
443
441
|
};
|
|
444
442
|
|
|
443
|
+
_self.flush = _flushChannels;
|
|
444
|
+
|
|
445
445
|
// Create the addUnloadCb
|
|
446
446
|
proxyFunctionAs(_self, "addUnloadCb", () => _unloadHandlers, "add");
|
|
447
447
|
|
|
@@ -662,6 +662,15 @@ export class BaseCore implements IAppInsightsCore {
|
|
|
662
662
|
}
|
|
663
663
|
}
|
|
664
664
|
|
|
665
|
+
function _flushChannels(isAsync?: boolean, callBack?: (flushComplete?: boolean) => void, sendReason?: SendRequestReason, cbTimeout?: number) {
|
|
666
|
+
if (_channelControl) {
|
|
667
|
+
return _channelControl.flush(isAsync, callBack, sendReason || SendRequestReason.SdkUnload, cbTimeout);
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
callBack && callBack(false);
|
|
671
|
+
return true;
|
|
672
|
+
}
|
|
673
|
+
|
|
665
674
|
function _initDebugListener(config: IConfiguration) {
|
|
666
675
|
|
|
667
676
|
if (config.disableDbgExt === true && _debugListener) {
|
|
@@ -815,10 +824,12 @@ export class BaseCore implements IAppInsightsCore {
|
|
|
815
824
|
* approach is to create a new instance and initialize that instance.
|
|
816
825
|
* This is due to possible unexpected side effects caused by plugins not supporting unload / teardown, unable
|
|
817
826
|
* to successfully remove any global references or they may just be completing the unload process asynchronously.
|
|
827
|
+
* @param isAsync - Can the unload be performed asynchronously (default)
|
|
828
|
+
* @param unloadComplete - An optional callback that will be called once the unload has completed
|
|
829
|
+
* @param cbTimeout - An optional timeout to wait for any flush operations to complete before proceeding with the unload. Defaults to 5 seconds.
|
|
818
830
|
*/
|
|
819
831
|
public unload(isAsync?: boolean, unloadComplete?: (unloadState: ITelemetryUnloadState) => void, cbTimeout?: number): void {
|
|
820
832
|
// @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
|
|
821
|
-
return null;
|
|
822
833
|
}
|
|
823
834
|
|
|
824
835
|
public getPlugin<T extends IPlugin = IPlugin>(pluginIdentifier: string): ILoadedPlugin<T> {
|
|
@@ -826,7 +837,14 @@ export class BaseCore implements IAppInsightsCore {
|
|
|
826
837
|
return null;
|
|
827
838
|
}
|
|
828
839
|
|
|
829
|
-
|
|
840
|
+
/**
|
|
841
|
+
* Add a new plugin to the installation
|
|
842
|
+
* @param plugin - The new plugin to add
|
|
843
|
+
* @param replaceExisting - should any existing plugin be replaced, default is false
|
|
844
|
+
* @param doAsync - Should the add be performed asynchronously
|
|
845
|
+
* @param addCb - [Optional] callback to call after the plugin has been added
|
|
846
|
+
*/
|
|
847
|
+
public addPlugin<T extends IPlugin = ITelemetryPlugin>(plugin: T, replaceExisting?: boolean, doAsync?: boolean, addCb?: (added?: boolean) => void): void {
|
|
830
848
|
// @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
|
|
831
849
|
}
|
|
832
850
|
|
|
@@ -846,6 +864,18 @@ export class BaseCore implements IAppInsightsCore {
|
|
|
846
864
|
// @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
|
|
847
865
|
}
|
|
848
866
|
|
|
867
|
+
/**
|
|
868
|
+
* Flush and send any batched / cached data immediately
|
|
869
|
+
* @param async - send data asynchronously when true (defaults to true)
|
|
870
|
+
* @param callBack - if specified, notify caller when send is complete, the channel should return true to indicate to the caller that it will be called.
|
|
871
|
+
* If the caller doesn't return true the caller should assume that it may never be called.
|
|
872
|
+
* @param sendReason - specify the reason that you are calling "flush" defaults to ManualFlush (1) if not specified
|
|
873
|
+
* @returns - true if the callback will be return after the flush is complete otherwise the caller should assume that any provided callback will never be called
|
|
874
|
+
*/
|
|
875
|
+
public flush(isAsync?: boolean, callBack?: (flushComplete?: boolean) => void, sendReason?: SendRequestReason): void {
|
|
876
|
+
// @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
|
|
877
|
+
}
|
|
878
|
+
|
|
849
879
|
protected releaseQueue() {
|
|
850
880
|
// @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
|
|
851
881
|
}
|
|
@@ -121,7 +121,7 @@ export abstract class BaseTelemetryPlugin implements ITelemetryPlugin {
|
|
|
121
121
|
// If this plugin has already been torn down (not operational) or is not initialized (core is not set)
|
|
122
122
|
// or the core being used for unload was not the same core used for initialization.
|
|
123
123
|
if (!_self.core || (unloadCtx && _self.core !== unloadCtx.core())) {
|
|
124
|
-
// Do Nothing
|
|
124
|
+
// Do Nothing as either the plugin is not initialized or was not initialized by the current core
|
|
125
125
|
return;
|
|
126
126
|
}
|
|
127
127
|
|
|
@@ -11,7 +11,9 @@ 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 {
|
|
14
|
+
import { ITelemetryUnloadState } from "./ITelemetryUnloadState";
|
|
15
|
+
import { UnloadHandler } from "../JavaScriptSDK/UnloadHandlerContainer";
|
|
16
|
+
import { SendRequestReason } from "../JavaScriptSDK.Enums/SendRequestReason";
|
|
15
17
|
|
|
16
18
|
export interface ILoadedPlugin<T extends IPlugin> {
|
|
17
19
|
plugin: T;
|
|
@@ -116,8 +118,11 @@ export interface IAppInsightsCore extends IPerfManagerProvider {
|
|
|
116
118
|
* approach is to create a new instance and initialize that instance.
|
|
117
119
|
* This is due to possible unexpected side effects caused by plugins not supporting unload / teardown, unable
|
|
118
120
|
* to successfully remove any global references or they may just be completing the unload process asynchronously.
|
|
121
|
+
* @param isAsync - Can the unload be performed asynchronously (default)
|
|
122
|
+
* @param unloadComplete - An optional callback that will be called once the unload has completed
|
|
123
|
+
* @param cbTimeout - An optional timeout to wait for any flush operations to complete before proceeding with the unload. Defaults to 5 seconds.
|
|
119
124
|
*/
|
|
120
|
-
unload(isAsync?: boolean, unloadComplete?: () => void): void;
|
|
125
|
+
unload(isAsync?: boolean, unloadComplete?: (unloadState: ITelemetryUnloadState) => void, cbTimeout?: number): void;
|
|
121
126
|
|
|
122
127
|
/**
|
|
123
128
|
* Find and return the (first) plugin with the specified identifier if present
|
|
@@ -128,10 +133,11 @@ export interface IAppInsightsCore extends IPerfManagerProvider {
|
|
|
128
133
|
/**
|
|
129
134
|
* Add a new plugin to the installation
|
|
130
135
|
* @param plugin - The new plugin to add
|
|
131
|
-
* @param replaceExisting - should any existing plugin be replaced
|
|
136
|
+
* @param replaceExisting - should any existing plugin be replaced, default is false
|
|
132
137
|
* @param doAsync - Should the add be performed asynchronously
|
|
138
|
+
* @param addCb - [Optional] callback to call after the plugin has been added
|
|
133
139
|
*/
|
|
134
|
-
addPlugin<T extends IPlugin = ITelemetryPlugin>(plugin: T, replaceExisting
|
|
140
|
+
addPlugin<T extends IPlugin = ITelemetryPlugin>(plugin: T, replaceExisting?: boolean, doAsync?: boolean, addCb?: (added?: boolean) => void): void;
|
|
135
141
|
|
|
136
142
|
/**
|
|
137
143
|
* Returns the unique event namespace that should be used when registering events
|
|
@@ -143,4 +149,15 @@ export interface IAppInsightsCore extends IPerfManagerProvider {
|
|
|
143
149
|
* @param handler - the handler
|
|
144
150
|
*/
|
|
145
151
|
addUnloadCb(handler: UnloadHandler): void;
|
|
146
|
-
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Flush and send any batched / cached data immediately
|
|
155
|
+
* @param async - send data asynchronously when true (defaults to true)
|
|
156
|
+
* @param callBack - if specified, notify caller when send is complete, the channel should return true to indicate to the caller that it will be called.
|
|
157
|
+
* If the caller doesn't return true the caller should assume that it may never be called.
|
|
158
|
+
* @param sendReason - specify the reason that you are calling "flush" defaults to ManualFlush (1) if not specified
|
|
159
|
+
* @param cbTimeout - An optional timeout to wait for any flush operations to complete before proceeding with the unload. Defaults to 5 seconds.
|
|
160
|
+
* @returns - true if the callback will be return after the flush is complete otherwise the caller should assume that any provided callback will never be called
|
|
161
|
+
*/
|
|
162
|
+
flush(isAsync?: boolean, callBack?: (flushComplete?: boolean) => void, sendReason?: SendRequestReason, cbTimeout?: number): boolean | void;
|
|
163
|
+
}
|
|
@@ -13,6 +13,7 @@ import { ITelemetryInitializerHandler, TelemetryInitializerFunction } from "../J
|
|
|
13
13
|
import { UnloadHandler } from "./UnloadHandlerContainer";
|
|
14
14
|
import { ITelemetryUpdateState } from "../JavaScriptSDK.Interfaces/ITelemetryUpdateState";
|
|
15
15
|
import { ITelemetryUnloadState } from "../JavaScriptSDK.Interfaces/ITelemetryUnloadState";
|
|
16
|
+
import { SendRequestReason } from "../JavaScriptSDK.Enums/SendRequestReason";
|
|
16
17
|
export declare class BaseCore implements IAppInsightsCore {
|
|
17
18
|
static defaultConfig: IConfiguration;
|
|
18
19
|
config: IConfiguration;
|
|
@@ -70,10 +71,20 @@ export declare class BaseCore implements IAppInsightsCore {
|
|
|
70
71
|
* approach is to create a new instance and initialize that instance.
|
|
71
72
|
* This is due to possible unexpected side effects caused by plugins not supporting unload / teardown, unable
|
|
72
73
|
* to successfully remove any global references or they may just be completing the unload process asynchronously.
|
|
74
|
+
* @param isAsync - Can the unload be performed asynchronously (default)
|
|
75
|
+
* @param unloadComplete - An optional callback that will be called once the unload has completed
|
|
76
|
+
* @param cbTimeout - An optional timeout to wait for any flush operations to complete before proceeding with the unload. Defaults to 5 seconds.
|
|
73
77
|
*/
|
|
74
78
|
unload(isAsync?: boolean, unloadComplete?: (unloadState: ITelemetryUnloadState) => void, cbTimeout?: number): void;
|
|
75
79
|
getPlugin<T extends IPlugin = IPlugin>(pluginIdentifier: string): ILoadedPlugin<T>;
|
|
76
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Add a new plugin to the installation
|
|
82
|
+
* @param plugin - The new plugin to add
|
|
83
|
+
* @param replaceExisting - should any existing plugin be replaced, default is false
|
|
84
|
+
* @param doAsync - Should the add be performed asynchronously
|
|
85
|
+
* @param addCb - [Optional] callback to call after the plugin has been added
|
|
86
|
+
*/
|
|
87
|
+
addPlugin<T extends IPlugin = ITelemetryPlugin>(plugin: T, replaceExisting?: boolean, doAsync?: boolean, addCb?: (added?: boolean) => void): void;
|
|
77
88
|
/**
|
|
78
89
|
* Returns the unique event namespace that should be used
|
|
79
90
|
*/
|
|
@@ -83,6 +94,15 @@ export declare class BaseCore implements IAppInsightsCore {
|
|
|
83
94
|
* @param handler - the handler
|
|
84
95
|
*/
|
|
85
96
|
addUnloadCb(handler: UnloadHandler): void;
|
|
97
|
+
/**
|
|
98
|
+
* Flush and send any batched / cached data immediately
|
|
99
|
+
* @param async - send data asynchronously when true (defaults to true)
|
|
100
|
+
* @param callBack - if specified, notify caller when send is complete, the channel should return true to indicate to the caller that it will be called.
|
|
101
|
+
* If the caller doesn't return true the caller should assume that it may never be called.
|
|
102
|
+
* @param sendReason - specify the reason that you are calling "flush" defaults to ManualFlush (1) if not specified
|
|
103
|
+
* @returns - true if the callback will be return after the flush is complete otherwise the caller should assume that any provided callback will never be called
|
|
104
|
+
*/
|
|
105
|
+
flush(isAsync?: boolean, callBack?: (flushComplete?: boolean) => void, sendReason?: SendRequestReason): void;
|
|
86
106
|
protected releaseQueue(): void;
|
|
87
107
|
/**
|
|
88
108
|
* Hook for Core extensions to allow them to update their own configuration before updating all of the plugins.
|
|
@@ -9,7 +9,9 @@ import { IProcessTelemetryContext } from "./IProcessTelemetryContext";
|
|
|
9
9
|
import { IPerfManagerProvider } from "./IPerfManager";
|
|
10
10
|
import { ICookieMgr } from "./ICookieMgr";
|
|
11
11
|
import { ITelemetryInitializerHandler, TelemetryInitializerFunction } from "./ITelemetryInitializers";
|
|
12
|
-
import {
|
|
12
|
+
import { ITelemetryUnloadState } from "./ITelemetryUnloadState";
|
|
13
|
+
import { UnloadHandler } from "../JavaScriptSDK/UnloadHandlerContainer";
|
|
14
|
+
import { SendRequestReason } from "../JavaScriptSDK.Enums/SendRequestReason";
|
|
13
15
|
export interface ILoadedPlugin<T extends IPlugin> {
|
|
14
16
|
plugin: T;
|
|
15
17
|
/**
|
|
@@ -81,8 +83,11 @@ export interface IAppInsightsCore extends IPerfManagerProvider {
|
|
|
81
83
|
* approach is to create a new instance and initialize that instance.
|
|
82
84
|
* This is due to possible unexpected side effects caused by plugins not supporting unload / teardown, unable
|
|
83
85
|
* to successfully remove any global references or they may just be completing the unload process asynchronously.
|
|
86
|
+
* @param isAsync - Can the unload be performed asynchronously (default)
|
|
87
|
+
* @param unloadComplete - An optional callback that will be called once the unload has completed
|
|
88
|
+
* @param cbTimeout - An optional timeout to wait for any flush operations to complete before proceeding with the unload. Defaults to 5 seconds.
|
|
84
89
|
*/
|
|
85
|
-
unload(isAsync?: boolean, unloadComplete?: () => void): void;
|
|
90
|
+
unload(isAsync?: boolean, unloadComplete?: (unloadState: ITelemetryUnloadState) => void, cbTimeout?: number): void;
|
|
86
91
|
/**
|
|
87
92
|
* Find and return the (first) plugin with the specified identifier if present
|
|
88
93
|
* @param pluginIdentifier
|
|
@@ -91,10 +96,11 @@ export interface IAppInsightsCore extends IPerfManagerProvider {
|
|
|
91
96
|
/**
|
|
92
97
|
* Add a new plugin to the installation
|
|
93
98
|
* @param plugin - The new plugin to add
|
|
94
|
-
* @param replaceExisting - should any existing plugin be replaced
|
|
99
|
+
* @param replaceExisting - should any existing plugin be replaced, default is false
|
|
95
100
|
* @param doAsync - Should the add be performed asynchronously
|
|
101
|
+
* @param addCb - [Optional] callback to call after the plugin has been added
|
|
96
102
|
*/
|
|
97
|
-
addPlugin<T extends IPlugin = ITelemetryPlugin>(plugin: T, replaceExisting
|
|
103
|
+
addPlugin<T extends IPlugin = ITelemetryPlugin>(plugin: T, replaceExisting?: boolean, doAsync?: boolean, addCb?: (added?: boolean) => void): void;
|
|
98
104
|
/**
|
|
99
105
|
* Returns the unique event namespace that should be used when registering events
|
|
100
106
|
*/
|
|
@@ -104,4 +110,14 @@ export interface IAppInsightsCore extends IPerfManagerProvider {
|
|
|
104
110
|
* @param handler - the handler
|
|
105
111
|
*/
|
|
106
112
|
addUnloadCb(handler: UnloadHandler): void;
|
|
113
|
+
/**
|
|
114
|
+
* Flush and send any batched / cached data immediately
|
|
115
|
+
* @param async - send data asynchronously when true (defaults to true)
|
|
116
|
+
* @param callBack - if specified, notify caller when send is complete, the channel should return true to indicate to the caller that it will be called.
|
|
117
|
+
* If the caller doesn't return true the caller should assume that it may never be called.
|
|
118
|
+
* @param sendReason - specify the reason that you are calling "flush" defaults to ManualFlush (1) if not specified
|
|
119
|
+
* @param cbTimeout - An optional timeout to wait for any flush operations to complete before proceeding with the unload. Defaults to 5 seconds.
|
|
120
|
+
* @returns - true if the callback will be return after the flush is complete otherwise the caller should assume that any provided callback will never be called
|
|
121
|
+
*/
|
|
122
|
+
flush(isAsync?: boolean, callBack?: (flushComplete?: boolean) => void, sendReason?: SendRequestReason, cbTimeout?: number): boolean | void;
|
|
107
123
|
}
|
|
@@ -18,7 +18,7 @@ export { BaseTelemetryPlugin } from "./JavaScriptSDK/BaseTelemetryPlugin";
|
|
|
18
18
|
export { randomValue, random32, mwcRandomSeed, mwcRandom32, newId } from "./JavaScriptSDK/RandomHelper";
|
|
19
19
|
export { CoreUtils, ICoreUtils, EventHelper, IEventHelper, Undefined, newGuid, perfNow, generateW3CId, disableCookies, canUseCookies, getCookie, setCookie, deleteCookie, _legacyCookieMgr } from "./JavaScriptSDK/CoreUtils";
|
|
20
20
|
export { isTypeof, isUndefined, isNullOrUndefined, hasOwnProperty, isObject, isFunction, normalizeJsName, objForEachKey, strEndsWith, strStartsWith, isDate, isArray, isError, isString, isNumber, isBoolean, toISOString, arrForEach, arrIndexOf, arrMap, arrReduce, strTrim, objKeys, objDefineAccessors, dateNow, getExceptionName, throwError, strContains, isSymbol, setValue, getSetValue, isNotTruthy, isTruthy, proxyAssign, proxyFunctions, proxyFunctionAs, createClassFromInterface, optimizeObject, isNotUndefined, isNotNullOrUndefined, objFreeze, objSeal, createEnumStyle, objExtend } from "./JavaScriptSDK/HelperFuncs";
|
|
21
|
-
export { attachEvent, detachEvent, addEventHandler, addEventListeners, addPageUnloadEventListener, addPageHideEventListener, addPageShowEventListener, removeEventHandler, removeEventListeners, removePageUnloadEventListener, removePageHideEventListener, eventOn, eventOff, mergeEvtNamespace, _IRegisteredEvents, __getRegisteredEvents } from "./JavaScriptSDK/EventHelpers";
|
|
21
|
+
export { attachEvent, detachEvent, addEventHandler, addEventListeners, addPageUnloadEventListener, addPageHideEventListener, addPageShowEventListener, removeEventHandler, removeEventListeners, removePageUnloadEventListener, removePageHideEventListener, removePageShowEventListener, eventOn, eventOff, mergeEvtNamespace, _IRegisteredEvents, __getRegisteredEvents } from "./JavaScriptSDK/EventHelpers";
|
|
22
22
|
export { getGlobalInst, hasWindow, getWindow, hasDocument, getDocument, getCrypto, getMsCrypto, hasNavigator, getNavigator, hasHistory, getHistory, getLocation, getPerformance, hasJSON, getJSON, isReactNative, getConsole, dumpObj, isIE, getIEVersion, isSafari, setEnableEnvMocks, isBeaconsSupported, isFetchSupported, useXDomainRequest, isXhrSupported } from "./JavaScriptSDK/EnvUtils";
|
|
23
23
|
export { getGlobal, objCreateFn as objCreate, strShimPrototype as strPrototype, strShimFunction as strFunction, strShimUndefined as strUndefined, strShimObject as strObject } from "@microsoft/applicationinsights-shims";
|
|
24
24
|
export { NotificationManager } from "./JavaScriptSDK/NotificationManager";
|