@microsoft/applicationinsights-cfgsync-js 3.3.5-nightly3.2411-13 → 3.3.5-nightly3.2412-01
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/es5/{ai.cfgsync.3.3.5-nightly3.2411-13.cjs.js → ai.cfgsync.3.3.5-nightly3.2412-01.cjs.js} +3 -3
- package/browser/es5/{ai.cfgsync.3.3.5-nightly3.2411-13.gbl.js.map → ai.cfgsync.3.3.5-nightly3.2412-01.cjs.js.map} +1 -1
- package/browser/es5/{ai.cfgsync.3.3.5-nightly3.2411-13.cjs.min.js → ai.cfgsync.3.3.5-nightly3.2412-01.cjs.min.js} +3 -3
- package/browser/es5/{ai.cfgsync.3.3.5-nightly3.2411-13.cjs.min.js.map → ai.cfgsync.3.3.5-nightly3.2412-01.cjs.min.js.map} +1 -1
- package/browser/es5/{ai.cfgsync.3.3.5-nightly3.2411-13.gbl.js → ai.cfgsync.3.3.5-nightly3.2412-01.gbl.js} +5 -5
- package/browser/es5/{ai.cfgsync.3.3.5-nightly3.2411-13.cjs.js.map → ai.cfgsync.3.3.5-nightly3.2412-01.gbl.js.map} +1 -1
- package/browser/es5/{ai.cfgsync.3.3.5-nightly3.2411-13.gbl.min.js → ai.cfgsync.3.3.5-nightly3.2412-01.gbl.min.js} +3 -3
- package/browser/es5/{ai.cfgsync.3.3.5-nightly3.2411-13.gbl.min.js.map → ai.cfgsync.3.3.5-nightly3.2412-01.gbl.min.js.map} +1 -1
- package/browser/es5/ai.cfgsync.3.3.5-nightly3.2412-01.integrity.json +66 -0
- package/browser/es5/{ai.cfgsync.3.3.5-nightly3.2411-13.js → ai.cfgsync.3.3.5-nightly3.2412-01.js} +5 -5
- package/browser/es5/{ai.cfgsync.3.3.5-nightly3.2411-13.js.map → ai.cfgsync.3.3.5-nightly3.2412-01.js.map} +1 -1
- package/browser/es5/{ai.cfgsync.3.3.5-nightly3.2411-13.min.js → ai.cfgsync.3.3.5-nightly3.2412-01.min.js} +3 -3
- package/browser/es5/{ai.cfgsync.3.3.5-nightly3.2411-13.min.js.map → ai.cfgsync.3.3.5-nightly3.2412-01.min.js.map} +1 -1
- package/browser/es5/ai.cfgsync.3.cjs.js +2 -2
- package/browser/es5/ai.cfgsync.3.cjs.js.map +1 -1
- package/browser/es5/ai.cfgsync.3.cjs.min.js +2 -2
- package/browser/es5/ai.cfgsync.3.cjs.min.js.map +1 -1
- package/browser/es5/ai.cfgsync.3.gbl.js +4 -4
- package/browser/es5/ai.cfgsync.3.gbl.js.map +1 -1
- package/browser/es5/ai.cfgsync.3.gbl.min.js +2 -2
- package/browser/es5/ai.cfgsync.3.gbl.min.js.map +1 -1
- package/browser/es5/ai.cfgsync.3.integrity.json +25 -25
- package/browser/es5/ai.cfgsync.3.js +4 -4
- package/browser/es5/ai.cfgsync.3.js.map +1 -1
- package/browser/es5/ai.cfgsync.3.min.js +2 -2
- package/browser/es5/ai.cfgsync.3.min.js.map +1 -1
- package/dist/es5/applicationinsights-cfgsync-js.js +2 -2
- package/dist/es5/applicationinsights-cfgsync-js.js.map +1 -1
- package/dist/es5/applicationinsights-cfgsync-js.min.js +2 -2
- package/dist/es5/applicationinsights-cfgsync-js.min.js.map +1 -1
- package/dist-es5/CfgSyncHelperFuncs.js +1 -1
- package/dist-es5/CfgSyncPlugin.js +1 -1
- package/dist-es5/CfgSyncPlugin.js.map +1 -1
- package/dist-es5/Interfaces/ICfgSyncCdnConfig.js +1 -1
- package/dist-es5/Interfaces/ICfgSyncConfig.js +1 -1
- package/dist-es5/Interfaces/ICfgSyncPlugin.js +1 -1
- package/dist-es5/__DynamicConstants.js +1 -1
- package/dist-es5/applicationinsights-cfgsync-js.js +1 -1
- package/package.json +3 -3
- package/types/applicationinsights-cfgsync-js.d.ts +11 -11
- package/types/applicationinsights-cfgsync-js.namespaced.d.ts +30 -36
- package/browser/es5/ai.cfgsync.3.3.5-nightly3.2411-13.integrity.json +0 -66
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Properties Plugin, 3.3.5-nightly3.
|
|
2
|
+
* Application Insights JavaScript SDK - Properties Plugin, 3.3.5-nightly3.2412-01
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
import { isNullOrUndefined, isObject, objExtend, objForEachKey, setValueByKey } from "@nevware21/ts-utils";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CfgSyncPlugin.js.map","sources":["CfgSyncPlugin.js"],"sourcesContent":["/**\r\n* CfgSyncPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, createProcessTelemetryContext, createUniqueNamespace, eventOff, eventOn, getGlobal, getJSON, isFetchSupported, isXhrSupported, mergeEvtNamespace, onConfigChange, sendCustomEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport { doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { applyCdnfeatureCfg, replaceByNonOverrideCfg } from \"./CfgSyncHelperFuncs\";\r\nimport { _DYN_NON_OVERRIDE_CONFIGS, _DYN_ON_CFG_CHANGE_RECEIV0, _DYN_SCHEDULE_FETCH_TIMEO1 } from \"./__DynamicConstants\";\r\nvar EVENT_NAME = \"ai_cfgsync\";\r\nvar STR_GET_METHOD = \"GET\";\r\nvar FETCH_TIMEOUT = 1800000; // 30 minutes\r\nvar udfVal = undefined;\r\nvar defaultNonOverrideCfg = { instrumentationKey: true, connectionString: true, endpointUrl: true };\r\nvar _defaultConfig = objDeepFreeze((_a = {\r\n syncMode: 1 /* ICfgSyncMode.Broadcast */,\r\n blkCdnCfg: udfVal,\r\n customEvtName: udfVal,\r\n cfgUrl: udfVal,\r\n overrideSyncFn: udfVal,\r\n overrideFetchFn: udfVal\r\n },\r\n _a[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:onCfgChangeReceive */] = udfVal,\r\n _a[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:scheduleFetchTimeout */] = FETCH_TIMEOUT,\r\n _a[_DYN_NON_OVERRIDE_CONFIGS /* @min:nonOverrideConfigs */] = defaultNonOverrideCfg,\r\n _a));\r\nvar CfgSyncPlugin = /** @class */ (function (_super) {\r\n __extends(CfgSyncPlugin, _super);\r\n function CfgSyncPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 198;\r\n _this.identifier = \"AppInsightsCfgSyncPlugin\";\r\n var _extensionConfig;\r\n var _mainConfig; // throttle config should be wrapped in IConfiguration\r\n var _evtName;\r\n var _evtNamespace;\r\n var _cfgUrl;\r\n var _timeoutHandle;\r\n var _receiveChanges;\r\n var _broadcastChanges;\r\n var _blkCdnCfg;\r\n var _fetchTimeout;\r\n var _retryCnt;\r\n var _onCfgChangeReceive;\r\n var _nonOverrideConfigs;\r\n var _fetchFn;\r\n var _overrideFetchFn;\r\n var _overrideSyncFn;\r\n var _paused = false;\r\n dynamicProto(CfgSyncPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n };\r\n _self.getCfg = function () {\r\n return _mainConfig;\r\n };\r\n _self.pause = function () {\r\n _paused = true;\r\n _clearScheduledTimer();\r\n };\r\n _self.resume = function () {\r\n _paused = false;\r\n _setupTimer();\r\n };\r\n // used for V2 to manaully trigger config udpate\r\n _self.setCfg = function (config) {\r\n return _setCfg(config);\r\n };\r\n _self.sync = function (customDetails) {\r\n return _sendCfgsyncEvents(customDetails);\r\n };\r\n _self.updateEventListenerName = function (eventName) {\r\n return _updateEventListenerName(eventName);\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _eventOff();\r\n _clearScheduledTimer();\r\n _initDefaults();\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_broadcastChanges, _receiveChanges, _evtName, _blkCdnCfg, _nonOverrideConfigs];\r\n };\r\n function _initDefaults() {\r\n _mainConfig = null;\r\n _evtName = null;\r\n _evtNamespace = null;\r\n _cfgUrl = null;\r\n _receiveChanges = null;\r\n _broadcastChanges = null;\r\n _nonOverrideConfigs = null;\r\n _timeoutHandle = null;\r\n _fetchTimeout = null;\r\n _retryCnt = null;\r\n _blkCdnCfg = null;\r\n _overrideFetchFn = null;\r\n _overrideSyncFn = null;\r\n _onCfgChangeReceive = null;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n var preBlkCdn = _blkCdnCfg;\r\n _blkCdnCfg = !!_extensionConfig.blkCdnCfg;\r\n // avoid initial call\r\n if (!isNullOrUndefined(preBlkCdn) && preBlkCdn !== _blkCdnCfg) {\r\n if (!_blkCdnCfg && _cfgUrl) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n else {\r\n _clearScheduledTimer();\r\n }\r\n }\r\n if (isNullOrUndefined(_receiveChanges)) {\r\n _receiveChanges = _extensionConfig.syncMode === 2 /* ICfgSyncMode.Receive */;\r\n }\r\n if (isNullOrUndefined(_broadcastChanges)) {\r\n _broadcastChanges = _extensionConfig.syncMode === 1 /* ICfgSyncMode.Broadcast */;\r\n }\r\n var newEvtName = _extensionConfig.customEvtName || EVENT_NAME;\r\n if (_evtName !== newEvtName) {\r\n if (_receiveChanges) {\r\n _updateEventListenerName(newEvtName);\r\n }\r\n else {\r\n _eventOff();\r\n _evtName = newEvtName;\r\n }\r\n }\r\n if (isNullOrUndefined(_cfgUrl)) {\r\n _cfgUrl = _extensionConfig.cfgUrl;\r\n }\r\n // if cfgUrl is set, we will ignore core config change\r\n if (!_cfgUrl) {\r\n _mainConfig = config;\r\n if (_broadcastChanges) {\r\n _sendCfgsyncEvents();\r\n }\r\n }\r\n }));\r\n _overrideSyncFn = _extensionConfig.overrideSyncFn;\r\n _overrideFetchFn = _extensionConfig.overrideFetchFn;\r\n _onCfgChangeReceive = _extensionConfig[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:%2eonCfgChangeReceive */];\r\n _nonOverrideConfigs = _extensionConfig[_DYN_NON_OVERRIDE_CONFIGS /* @min:%2enonOverrideConfigs */]; // override values should not be changed\r\n _fetchTimeout = _extensionConfig[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:%2escheduleFetchTimeout */];\r\n _fetchFn = _getFetchFnInterface();\r\n _retryCnt = 0;\r\n // NOT support cfgURL change to avoid mutiple fetch calls\r\n if (_cfgUrl && !_blkCdnCfg) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n }\r\n function _setCfg(config, isAutoSync) {\r\n if (config) {\r\n _mainConfig = config;\r\n if (!!isAutoSync && !_paused) {\r\n return _sendCfgsyncEvents();\r\n }\r\n if (_receiveChanges && !_paused) {\r\n _self.core.updateCfg(config);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _eventOff() {\r\n try {\r\n var global_1 = getGlobal();\r\n if (global_1) {\r\n eventOff(global_1, null, null, _evtNamespace);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _sendCfgsyncEvents(customDetails) {\r\n try {\r\n if (!!_overrideSyncFn && isFunction(_overrideSyncFn)) {\r\n return _overrideSyncFn(_mainConfig, customDetails);\r\n }\r\n return sendCustomEvent(_evtName, _mainConfig, customDetails);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _updateEventListenerName(name) {\r\n try {\r\n _eventOff();\r\n if (name) {\r\n _evtName = name;\r\n _addEventListener();\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _getFetchFnInterface() {\r\n var _fetchFn = _overrideFetchFn;\r\n if (isNullOrUndefined(_fetchFn)) {\r\n if (isFetchSupported()) {\r\n _fetchFn = _fetchSender;\r\n }\r\n else if (isXhrSupported()) {\r\n _fetchFn = _xhrSender;\r\n }\r\n }\r\n return _fetchFn;\r\n }\r\n function _fetchSender(url, oncomplete, isAutoSync) {\r\n var global = getGlobal();\r\n var fetchFn = (global && global.fetch) || null;\r\n if (url && fetchFn && isFunction(fetchFn)) {\r\n try {\r\n var init = {\r\n method: STR_GET_METHOD\r\n };\r\n var request = new Request(url, init);\r\n doAwaitResponse(fetch(request), function (result) {\r\n var response = result.value;\r\n if (!result.rejected) {\r\n if (response.ok) {\r\n doAwaitResponse(response.text(), function (res) {\r\n _doOnComplete(oncomplete, response.status, res.value, isAutoSync);\r\n });\r\n }\r\n else {\r\n _doOnComplete(oncomplete, response.status, null, isAutoSync);\r\n }\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 400);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n function _xhrSender(url, oncomplete, isAutoSync) {\r\n try {\r\n var xhr_1 = new XMLHttpRequest();\r\n xhr_1.open(STR_GET_METHOD, url);\r\n xhr_1.onreadystatechange = function () {\r\n if (xhr_1.readyState === XMLHttpRequest.DONE) {\r\n _doOnComplete(oncomplete, xhr_1.status, xhr_1.responseText, isAutoSync);\r\n }\r\n };\r\n xhr_1.onerror = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.ontimeout = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.send();\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _onFetchComplete(status, response, isAutoSync) {\r\n try {\r\n if (status >= 200 && status < 400 && response) {\r\n _retryCnt = 0; // any successful response will reset retry count to 0\r\n var JSON_1 = getJSON();\r\n if (JSON_1) {\r\n var cdnCfg = JSON_1.parse(response); //comments are not allowed\r\n var cfg = applyCdnfeatureCfg(cdnCfg, _self.core);\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg, isAutoSync);\r\n //cfg && _setCfg(cfg, isAutoSync);\r\n }\r\n }\r\n else {\r\n _retryCnt++;\r\n }\r\n if (_retryCnt < 3) {\r\n _setupTimer();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doOnComplete(oncomplete, status, response, isAutoSync) {\r\n try {\r\n oncomplete(status, response, isAutoSync);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _addEventListener() {\r\n if (_receiveChanges) {\r\n var global_2 = getGlobal();\r\n if (global_2) {\r\n try {\r\n eventOn(global_2, _evtName, function (event) {\r\n // TODO: add more validation here\r\n // may include a \"name\" or some other features to check\r\n var cfgEvent = event && event.detail;\r\n if (_onCfgChangeReceive && cfgEvent) {\r\n _onCfgChangeReceive(cfgEvent);\r\n }\r\n else {\r\n var cfg = cfgEvent && cfgEvent.cfg;\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg);\r\n }\r\n }, _evtNamespace, true);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n }\r\n // 4 levels\r\n function _replaceTartgetByKeys(cfg, level) {\r\n var _cfg = null;\r\n try {\r\n if (cfg) {\r\n _cfg = replaceByNonOverrideCfg(cfg, _nonOverrideConfigs, 0, 5);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return _cfg;\r\n }\r\n /**\r\n * Sets up the timer which triggers fetching cdn every 30mins after inital call\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && _fetchTimeout) {\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }, _fetchTimeout);\r\n _timeoutHandle.unref();\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryCnt = 0;\r\n }\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n });\r\n return _this;\r\n }\r\n CfgSyncPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get current configs of current instance.\r\n * @param config current configs\r\n */\r\n CfgSyncPlugin.prototype.getCfg = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Manually set configs of current instance.\r\n * @param config new configs\r\n */\r\n CfgSyncPlugin.prototype.setCfg = function (config) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Manually broadcast configs of current instance to all other instances.\r\n * @param customDetails additional details should also be sent out to other instances\r\n */\r\n CfgSyncPlugin.prototype.sync = function (customDetails) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Manually update event name.\r\n * If current instance is the main instance, then following config changes will be sent out under this new event name.\r\n * If current instance is listener instances, it will listen to event details under this new name.\r\n * @param eventName new event name\r\n */\r\n CfgSyncPlugin.prototype.updateEventListenerName = function (eventName) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Pause the sending/receiving of events\r\n */\r\n CfgSyncPlugin.prototype.pause = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Resume the sending/receiving of events\r\n */\r\n CfgSyncPlugin.prototype.resume = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n // /**\r\n // * Add Part A fields to the event\r\n // * @param event - The event that needs to be processed\r\n // */\r\n CfgSyncPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return CfgSyncPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { CfgSyncPlugin };\r\n//# sourceMappingURL=CfgSyncPlugin.js.map"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA,gFAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;mEAuDM,CAAC;;;;;yBACkB;AACzB;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"CfgSyncPlugin.js.map","sources":["CfgSyncPlugin.js"],"sourcesContent":["/**\r\n* CfgSyncPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, createProcessTelemetryContext, createUniqueNamespace, eventOff, eventOn, getGlobal, getJSON, isFetchSupported, isXhrSupported, mergeEvtNamespace, onConfigChange, sendCustomEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport { doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { applyCdnfeatureCfg, replaceByNonOverrideCfg } from \"./CfgSyncHelperFuncs\";\r\nimport { _DYN_NON_OVERRIDE_CONFIGS, _DYN_ON_CFG_CHANGE_RECEIV0, _DYN_SCHEDULE_FETCH_TIMEO1 } from \"./__DynamicConstants\";\r\nvar EVENT_NAME = \"ai_cfgsync\";\r\nvar STR_GET_METHOD = \"GET\";\r\nvar FETCH_TIMEOUT = 1800000; // 30 minutes\r\nvar udfVal = undefined;\r\nvar defaultNonOverrideCfg = { instrumentationKey: true, connectionString: true, endpointUrl: true };\r\nvar _defaultConfig = objDeepFreeze((_a = {\r\n syncMode: 1 /* ICfgSyncMode.Broadcast */,\r\n blkCdnCfg: udfVal,\r\n customEvtName: udfVal,\r\n cfgUrl: udfVal,\r\n overrideSyncFn: udfVal,\r\n overrideFetchFn: udfVal\r\n },\r\n _a[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:onCfgChangeReceive */] = udfVal,\r\n _a[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:scheduleFetchTimeout */] = FETCH_TIMEOUT,\r\n _a[_DYN_NON_OVERRIDE_CONFIGS /* @min:nonOverrideConfigs */] = defaultNonOverrideCfg,\r\n _a));\r\nvar CfgSyncPlugin = /** @class */ (function (_super) {\r\n __extends(CfgSyncPlugin, _super);\r\n function CfgSyncPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 198;\r\n _this.identifier = \"AppInsightsCfgSyncPlugin\";\r\n var _extensionConfig;\r\n var _mainConfig; // throttle config should be wrapped in IConfiguration\r\n var _evtName;\r\n var _evtNamespace;\r\n var _cfgUrl;\r\n var _timeoutHandle;\r\n var _receiveChanges;\r\n var _broadcastChanges;\r\n var _blkCdnCfg;\r\n var _fetchTimeout;\r\n var _retryCnt;\r\n var _onCfgChangeReceive;\r\n var _nonOverrideConfigs;\r\n var _fetchFn;\r\n var _overrideFetchFn;\r\n var _overrideSyncFn;\r\n var _paused = false;\r\n dynamicProto(CfgSyncPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n };\r\n _self.getCfg = function () {\r\n return _mainConfig;\r\n };\r\n _self.pause = function () {\r\n _paused = true;\r\n _clearScheduledTimer();\r\n };\r\n _self.resume = function () {\r\n _paused = false;\r\n _setupTimer();\r\n };\r\n // used for V2 to manaully trigger config udpate\r\n _self.setCfg = function (config) {\r\n return _setCfg(config);\r\n };\r\n _self.sync = function (customDetails) {\r\n return _sendCfgsyncEvents(customDetails);\r\n };\r\n _self.updateEventListenerName = function (eventName) {\r\n return _updateEventListenerName(eventName);\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _eventOff();\r\n _clearScheduledTimer();\r\n _initDefaults();\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_broadcastChanges, _receiveChanges, _evtName, _blkCdnCfg, _nonOverrideConfigs];\r\n };\r\n function _initDefaults() {\r\n _mainConfig = null;\r\n _evtName = null;\r\n _evtNamespace = null;\r\n _cfgUrl = null;\r\n _receiveChanges = null;\r\n _broadcastChanges = null;\r\n _nonOverrideConfigs = null;\r\n _timeoutHandle = null;\r\n _fetchTimeout = null;\r\n _retryCnt = null;\r\n _blkCdnCfg = null;\r\n _overrideFetchFn = null;\r\n _overrideSyncFn = null;\r\n _onCfgChangeReceive = null;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n var preBlkCdn = _blkCdnCfg;\r\n _blkCdnCfg = !!_extensionConfig.blkCdnCfg;\r\n // avoid initial call\r\n if (!isNullOrUndefined(preBlkCdn) && preBlkCdn !== _blkCdnCfg) {\r\n if (!_blkCdnCfg && _cfgUrl) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n else {\r\n _clearScheduledTimer();\r\n }\r\n }\r\n if (isNullOrUndefined(_receiveChanges)) {\r\n _receiveChanges = _extensionConfig.syncMode === 2 /* ICfgSyncMode.Receive */;\r\n }\r\n if (isNullOrUndefined(_broadcastChanges)) {\r\n _broadcastChanges = _extensionConfig.syncMode === 1 /* ICfgSyncMode.Broadcast */;\r\n }\r\n var newEvtName = _extensionConfig.customEvtName || EVENT_NAME;\r\n if (_evtName !== newEvtName) {\r\n if (_receiveChanges) {\r\n _updateEventListenerName(newEvtName);\r\n }\r\n else {\r\n _eventOff();\r\n _evtName = newEvtName;\r\n }\r\n }\r\n if (isNullOrUndefined(_cfgUrl)) {\r\n _cfgUrl = _extensionConfig.cfgUrl;\r\n }\r\n // if cfgUrl is set, we will ignore core config change\r\n if (!_cfgUrl) {\r\n _mainConfig = config;\r\n if (_broadcastChanges) {\r\n _sendCfgsyncEvents();\r\n }\r\n }\r\n }));\r\n _overrideSyncFn = _extensionConfig.overrideSyncFn;\r\n _overrideFetchFn = _extensionConfig.overrideFetchFn;\r\n _onCfgChangeReceive = _extensionConfig[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:%2eonCfgChangeReceive */];\r\n _nonOverrideConfigs = _extensionConfig[_DYN_NON_OVERRIDE_CONFIGS /* @min:%2enonOverrideConfigs */]; // override values should not be changed\r\n _fetchTimeout = _extensionConfig[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:%2escheduleFetchTimeout */];\r\n _fetchFn = _getFetchFnInterface();\r\n _retryCnt = 0;\r\n // NOT support cfgURL change to avoid mutiple fetch calls\r\n if (_cfgUrl && !_blkCdnCfg) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n }\r\n function _setCfg(config, isAutoSync) {\r\n if (config) {\r\n _mainConfig = config;\r\n if (!!isAutoSync && !_paused) {\r\n return _sendCfgsyncEvents();\r\n }\r\n if (_receiveChanges && !_paused) {\r\n _self.core.updateCfg(config);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _eventOff() {\r\n try {\r\n var global_1 = getGlobal();\r\n if (global_1) {\r\n eventOff(global_1, null, null, _evtNamespace);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _sendCfgsyncEvents(customDetails) {\r\n try {\r\n if (!!_overrideSyncFn && isFunction(_overrideSyncFn)) {\r\n return _overrideSyncFn(_mainConfig, customDetails);\r\n }\r\n return sendCustomEvent(_evtName, _mainConfig, customDetails);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _updateEventListenerName(name) {\r\n try {\r\n _eventOff();\r\n if (name) {\r\n _evtName = name;\r\n _addEventListener();\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _getFetchFnInterface() {\r\n var _fetchFn = _overrideFetchFn;\r\n if (isNullOrUndefined(_fetchFn)) {\r\n if (isFetchSupported()) {\r\n _fetchFn = _fetchSender;\r\n }\r\n else if (isXhrSupported()) {\r\n _fetchFn = _xhrSender;\r\n }\r\n }\r\n return _fetchFn;\r\n }\r\n function _fetchSender(url, oncomplete, isAutoSync) {\r\n var global = getGlobal();\r\n var fetchFn = (global && global.fetch) || null;\r\n if (url && fetchFn && isFunction(fetchFn)) {\r\n try {\r\n var init = {\r\n method: STR_GET_METHOD\r\n };\r\n var request = new Request(url, init);\r\n doAwaitResponse(fetch(request), function (result) {\r\n var response = result.value;\r\n if (!result.rejected) {\r\n if (response.ok) {\r\n doAwaitResponse(response.text(), function (res) {\r\n _doOnComplete(oncomplete, response.status, res.value, isAutoSync);\r\n });\r\n }\r\n else {\r\n _doOnComplete(oncomplete, response.status, null, isAutoSync);\r\n }\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 400);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n function _xhrSender(url, oncomplete, isAutoSync) {\r\n try {\r\n var xhr_1 = new XMLHttpRequest();\r\n xhr_1.open(STR_GET_METHOD, url);\r\n xhr_1.onreadystatechange = function () {\r\n if (xhr_1.readyState === XMLHttpRequest.DONE) {\r\n _doOnComplete(oncomplete, xhr_1.status, xhr_1.responseText, isAutoSync);\r\n }\r\n };\r\n xhr_1.onerror = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.ontimeout = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.send();\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _onFetchComplete(status, response, isAutoSync) {\r\n try {\r\n if (status >= 200 && status < 400 && response) {\r\n _retryCnt = 0; // any successful response will reset retry count to 0\r\n var JSON_1 = getJSON();\r\n if (JSON_1) {\r\n var cdnCfg = JSON_1.parse(response); //comments are not allowed\r\n var cfg = applyCdnfeatureCfg(cdnCfg, _self.core);\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg, isAutoSync);\r\n //cfg && _setCfg(cfg, isAutoSync);\r\n }\r\n }\r\n else {\r\n _retryCnt++;\r\n }\r\n if (_retryCnt < 3) {\r\n _setupTimer();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doOnComplete(oncomplete, status, response, isAutoSync) {\r\n try {\r\n oncomplete(status, response, isAutoSync);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _addEventListener() {\r\n if (_receiveChanges) {\r\n var global_2 = getGlobal();\r\n if (global_2) {\r\n try {\r\n eventOn(global_2, _evtName, function (event) {\r\n // TODO: add more validation here\r\n // may include a \"name\" or some other features to check\r\n var cfgEvent = event && event.detail;\r\n if (_onCfgChangeReceive && cfgEvent) {\r\n _onCfgChangeReceive(cfgEvent);\r\n }\r\n else {\r\n var cfg = cfgEvent && cfgEvent.cfg;\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg);\r\n }\r\n }, _evtNamespace, true);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n }\r\n // 4 levels\r\n function _replaceTartgetByKeys(cfg, level) {\r\n var _cfg = null;\r\n try {\r\n if (cfg) {\r\n _cfg = replaceByNonOverrideCfg(cfg, _nonOverrideConfigs, 0, 5);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return _cfg;\r\n }\r\n /**\r\n * Sets up the timer which triggers fetching cdn every 30mins after inital call\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && _fetchTimeout) {\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }, _fetchTimeout);\r\n _timeoutHandle.unref();\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryCnt = 0;\r\n }\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n });\r\n return _this;\r\n }\r\n CfgSyncPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get current configs of current instance.\r\n * @param config - current configs\r\n */\r\n CfgSyncPlugin.prototype.getCfg = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Manually set configs of current instance.\r\n * @param config - new configs\r\n */\r\n CfgSyncPlugin.prototype.setCfg = function (config) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Manually broadcast configs of current instance to all other instances.\r\n * @param customDetails - additional details should also be sent out to other instances\r\n */\r\n CfgSyncPlugin.prototype.sync = function (customDetails) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Manually update event name.\r\n * If current instance is the main instance, then following config changes will be sent out under this new event name.\r\n * If current instance is listener instances, it will listen to event details under this new name.\r\n * @param eventName - new event name\r\n */\r\n CfgSyncPlugin.prototype.updateEventListenerName = function (eventName) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Pause the sending/receiving of events\r\n */\r\n CfgSyncPlugin.prototype.pause = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Resume the sending/receiving of events\r\n */\r\n CfgSyncPlugin.prototype.resume = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n // /**\r\n // * Add Part A fields to the event\r\n // * @param event - The event that needs to be processed\r\n // */\r\n CfgSyncPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return CfgSyncPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { CfgSyncPlugin };\r\n//# sourceMappingURL=CfgSyncPlugin.js.map"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA,gFAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;mEAuDM,CAAC;;;;;yBACkB;AACzB;AACA;AACA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Properties Plugin, 3.3.5-nightly3.
|
|
2
|
+
* Application Insights JavaScript SDK - Properties Plugin, 3.3.5-nightly3.2412-01
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
import { CfgSyncPlugin } from "./CfgSyncPlugin";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/applicationinsights-cfgsync-js",
|
|
3
|
-
"version": "3.3.5-nightly3.
|
|
3
|
+
"version": "3.3.5-nightly3.2412-01",
|
|
4
4
|
"description": "Microsoft Application Insights CfgSync Plugin",
|
|
5
5
|
"homepage": "https://github.com/microsoft/ApplicationInsights-JS#readme",
|
|
6
6
|
"author": "Microsoft Application Insights Team",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@microsoft/dynamicproto-js": "^2.0.3",
|
|
60
60
|
"@microsoft/applicationinsights-shims": "3.0.1",
|
|
61
|
-
"@microsoft/applicationinsights-core-js": "3.3.5-nightly3.
|
|
62
|
-
"@microsoft/applicationinsights-common": "3.3.5-nightly3.
|
|
61
|
+
"@microsoft/applicationinsights-core-js": "3.3.5-nightly3.2412-01",
|
|
62
|
+
"@microsoft/applicationinsights-common": "3.3.5-nightly3.2412-01",
|
|
63
63
|
"@nevware21/ts-utils": ">= 0.11.3 < 2.x",
|
|
64
64
|
"@nevware21/ts-async": ">= 0.5.2 < 2.x"
|
|
65
65
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Microsoft Application Insights idsync plugin, 3.3.5-nightly3.
|
|
2
|
+
* Microsoft Application Insights idsync plugin, 3.3.5-nightly3.2412-01
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* Microsoft Application Insights Team
|
|
@@ -28,24 +28,24 @@ export declare class CfgSyncPlugin extends BaseTelemetryPlugin implements ICfgSy
|
|
|
28
28
|
initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain): void;
|
|
29
29
|
/**
|
|
30
30
|
* Get current configs of current instance.
|
|
31
|
-
* @param config current configs
|
|
31
|
+
* @param config - current configs
|
|
32
32
|
*/
|
|
33
33
|
getCfg(): IConfiguration & IConfig;
|
|
34
34
|
/**
|
|
35
35
|
* Manually set configs of current instance.
|
|
36
|
-
* @param config new configs
|
|
36
|
+
* @param config - new configs
|
|
37
37
|
*/
|
|
38
38
|
setCfg(config?: IConfiguration & IConfig): boolean;
|
|
39
39
|
/**
|
|
40
40
|
* Manually broadcast configs of current instance to all other instances.
|
|
41
|
-
* @param customDetails additional details should also be sent out to other instances
|
|
41
|
+
* @param customDetails - additional details should also be sent out to other instances
|
|
42
42
|
*/
|
|
43
43
|
sync(customDetails?: any): boolean;
|
|
44
44
|
/**
|
|
45
45
|
* Manually update event name.
|
|
46
46
|
* If current instance is the main instance, then following config changes will be sent out under this new event name.
|
|
47
47
|
* If current instance is listener instances, it will listen to event details under this new name.
|
|
48
|
-
* @param eventName new event name
|
|
48
|
+
* @param eventName - new event name
|
|
49
49
|
*/
|
|
50
50
|
updateEventListenerName(eventName?: string): boolean;
|
|
51
51
|
/**
|
|
@@ -86,7 +86,7 @@ export declare interface ICfgSyncConfig {
|
|
|
86
86
|
*/
|
|
87
87
|
onCfgChangeReceive?: (event?: ICfgSyncEvent) => void;
|
|
88
88
|
/**
|
|
89
|
-
* Overrides sync() function to broadcast changes
|
|
89
|
+
* Overrides sync() function to broadcast changes.
|
|
90
90
|
* @default null
|
|
91
91
|
*/
|
|
92
92
|
overrideSyncFn?: (config?: IConfiguration & IConfig, customDetails?: any) => boolean;
|
|
@@ -98,7 +98,7 @@ export declare interface ICfgSyncConfig {
|
|
|
98
98
|
/**
|
|
99
99
|
* When current instance is set with syncMode: `Receive`, config fields under nonOverrideConfigs will NOT be changed by any config details sent out from other instances.
|
|
100
100
|
* NOTE: this config will be ONLY applied during initialization, so it won't be changed dynamically
|
|
101
|
-
* @default {instrumentationKey:true,connectionString:true,endpointUrl:true}
|
|
101
|
+
* @default \{instrumentationKey:true,connectionString:true,endpointUrl:true\}
|
|
102
102
|
*/
|
|
103
103
|
nonOverrideConfigs?: NonOverrideCfg;
|
|
104
104
|
/**
|
|
@@ -139,24 +139,24 @@ export declare const enum ICfgSyncMode {
|
|
|
139
139
|
export declare interface ICfgSyncPlugin {
|
|
140
140
|
/**
|
|
141
141
|
* Get current configs of current instance.
|
|
142
|
-
* @param config current configs
|
|
142
|
+
* @param config - current configs
|
|
143
143
|
*/
|
|
144
144
|
getCfg(): IConfiguration & IConfig;
|
|
145
145
|
/**
|
|
146
146
|
* Manually set configs of current instance.
|
|
147
|
-
* @param config new configs
|
|
147
|
+
* @param config - new configs
|
|
148
148
|
*/
|
|
149
149
|
setCfg(config?: IConfiguration & IConfig): boolean;
|
|
150
150
|
/**
|
|
151
151
|
* Manually broadcast configs of current instance to all other instances.
|
|
152
|
-
* @param customDetails additional details should also be sent out to other instances
|
|
152
|
+
* @param customDetails - additional details should also be sent out to other instances
|
|
153
153
|
*/
|
|
154
154
|
sync(customDetails?: any): boolean;
|
|
155
155
|
/**
|
|
156
156
|
* Manually update event name.
|
|
157
157
|
* If current instance is the main instance, then following config changes will be sent out under this new event name.
|
|
158
158
|
* If current instance is listener instances, it will listen to event details under this new name.
|
|
159
|
-
* @param eventName new event name
|
|
159
|
+
* @param eventName - new event name
|
|
160
160
|
*/
|
|
161
161
|
updateEventListenerName(eventName?: string): boolean;
|
|
162
162
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Microsoft Application Insights idsync plugin, 3.3.5-nightly3.
|
|
2
|
+
* Microsoft Application Insights idsync plugin, 3.3.5-nightly3.2412-01
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* Microsoft Application Insights Team
|
|
@@ -113,24 +113,24 @@ declare namespace ApplicationInsights {
|
|
|
113
113
|
initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain): void;
|
|
114
114
|
/**
|
|
115
115
|
* Get current configs of current instance.
|
|
116
|
-
* @param config current configs
|
|
116
|
+
* @param config - current configs
|
|
117
117
|
*/
|
|
118
118
|
getCfg(): IConfiguration & IConfig;
|
|
119
119
|
/**
|
|
120
120
|
* Manually set configs of current instance.
|
|
121
|
-
* @param config new configs
|
|
121
|
+
* @param config - new configs
|
|
122
122
|
*/
|
|
123
123
|
setCfg(config?: IConfiguration & IConfig): boolean;
|
|
124
124
|
/**
|
|
125
125
|
* Manually broadcast configs of current instance to all other instances.
|
|
126
|
-
* @param customDetails additional details should also be sent out to other instances
|
|
126
|
+
* @param customDetails - additional details should also be sent out to other instances
|
|
127
127
|
*/
|
|
128
128
|
sync(customDetails?: any): boolean;
|
|
129
129
|
/**
|
|
130
130
|
* Manually update event name.
|
|
131
131
|
* If current instance is the main instance, then following config changes will be sent out under this new event name.
|
|
132
132
|
* If current instance is listener instances, it will listen to event details under this new name.
|
|
133
|
-
* @param eventName new event name
|
|
133
|
+
* @param eventName - new event name
|
|
134
134
|
*/
|
|
135
135
|
updateEventListenerName(eventName?: string): boolean;
|
|
136
136
|
/**
|
|
@@ -407,7 +407,6 @@ declare namespace ApplicationInsights {
|
|
|
407
407
|
unload(isAsync?: boolean, unloadComplete?: (unloadState: ITelemetryUnloadState) => void, cbTimeout?: number): void | IPromise<ITelemetryUnloadState>;
|
|
408
408
|
/**
|
|
409
409
|
* Find and return the (first) plugin with the specified identifier if present
|
|
410
|
-
* @param pluginIdentifier
|
|
411
410
|
*/
|
|
412
411
|
getPlugin<T extends IPlugin = IPlugin>(pluginIdentifier: string): ILoadedPlugin<T>;
|
|
413
412
|
/**
|
|
@@ -462,7 +461,6 @@ declare namespace ApplicationInsights {
|
|
|
462
461
|
/**
|
|
463
462
|
* Watches and tracks changes for accesses to the current config, and if the accessed config changes the
|
|
464
463
|
* handler will be recalled.
|
|
465
|
-
* @param handler
|
|
466
464
|
* @returns A watcher handler instance that can be used to remove itself when being unloaded
|
|
467
465
|
*/
|
|
468
466
|
onCfgChange(handler: WatcherFunction<CfgType>): IUnloadHook;
|
|
@@ -575,7 +573,7 @@ declare namespace ApplicationInsights {
|
|
|
575
573
|
*/
|
|
576
574
|
onCfgChangeReceive?: (event?: ICfgSyncEvent) => void;
|
|
577
575
|
/**
|
|
578
|
-
* Overrides sync() function to broadcast changes
|
|
576
|
+
* Overrides sync() function to broadcast changes.
|
|
579
577
|
* @default null
|
|
580
578
|
*/
|
|
581
579
|
overrideSyncFn?: (config?: IConfiguration & IConfig, customDetails?: any) => boolean;
|
|
@@ -587,7 +585,7 @@ declare namespace ApplicationInsights {
|
|
|
587
585
|
/**
|
|
588
586
|
* When current instance is set with syncMode: `Receive`, config fields under nonOverrideConfigs will NOT be changed by any config details sent out from other instances.
|
|
589
587
|
* NOTE: this config will be ONLY applied during initialization, so it won't be changed dynamically
|
|
590
|
-
* @default {instrumentationKey:true,connectionString:true,endpointUrl:true}
|
|
588
|
+
* @default \{instrumentationKey:true,connectionString:true,endpointUrl:true\}
|
|
591
589
|
*/
|
|
592
590
|
nonOverrideConfigs?: NonOverrideCfg;
|
|
593
591
|
/**
|
|
@@ -628,24 +626,24 @@ declare namespace ApplicationInsights {
|
|
|
628
626
|
interface ICfgSyncPlugin {
|
|
629
627
|
/**
|
|
630
628
|
* Get current configs of current instance.
|
|
631
|
-
* @param config current configs
|
|
629
|
+
* @param config - current configs
|
|
632
630
|
*/
|
|
633
631
|
getCfg(): IConfiguration & IConfig;
|
|
634
632
|
/**
|
|
635
633
|
* Manually set configs of current instance.
|
|
636
|
-
* @param config new configs
|
|
634
|
+
* @param config - new configs
|
|
637
635
|
*/
|
|
638
636
|
setCfg(config?: IConfiguration & IConfig): boolean;
|
|
639
637
|
/**
|
|
640
638
|
* Manually broadcast configs of current instance to all other instances.
|
|
641
|
-
* @param customDetails additional details should also be sent out to other instances
|
|
639
|
+
* @param customDetails - additional details should also be sent out to other instances
|
|
642
640
|
*/
|
|
643
641
|
sync(customDetails?: any): boolean;
|
|
644
642
|
/**
|
|
645
643
|
* Manually update event name.
|
|
646
644
|
* If current instance is the main instance, then following config changes will be sent out under this new event name.
|
|
647
645
|
* If current instance is listener instances, it will listen to event details under this new name.
|
|
648
|
-
* @param eventName new event name
|
|
646
|
+
* @param eventName - new event name
|
|
649
647
|
*/
|
|
650
648
|
updateEventListenerName(eventName?: string): boolean;
|
|
651
649
|
/**
|
|
@@ -819,7 +817,7 @@ declare namespace ApplicationInsights {
|
|
|
819
817
|
*/
|
|
820
818
|
disableFlushOnBeforeUnload?: boolean;
|
|
821
819
|
/**
|
|
822
|
-
* Default value of
|
|
820
|
+
* Default value of `disableFlushOnBeforeUnload`. If true, flush method will not be called when onPageHide or onVisibilityChange (hidden state) event(s) trigger.
|
|
823
821
|
*/
|
|
824
822
|
disableFlushOnUnload?: boolean;
|
|
825
823
|
/**
|
|
@@ -871,12 +869,12 @@ declare namespace ApplicationInsights {
|
|
|
871
869
|
*/
|
|
872
870
|
isStorageUseDisabled?: boolean;
|
|
873
871
|
/**
|
|
874
|
-
* If false, the SDK will send all telemetry using the
|
|
872
|
+
* If false, the SDK will send all telemetry using the <a href="https://www.w3.org/TR/beacon">Beacon API</a>.
|
|
875
873
|
* @defaultValue true
|
|
876
874
|
*/
|
|
877
875
|
isBeaconApiDisabled?: boolean;
|
|
878
876
|
/**
|
|
879
|
-
* Don't use XMLHttpRequest or XDomainRequest (for IE
|
|
877
|
+
* Don't use XMLHttpRequest or XDomainRequest (for IE \< 9) by default instead attempt to use fetch() or sendBeacon.
|
|
880
878
|
* If no other transport is available it will still use XMLHttpRequest
|
|
881
879
|
*/
|
|
882
880
|
disableXhr?: boolean;
|
|
@@ -1133,8 +1131,8 @@ declare namespace ApplicationInsights {
|
|
|
1133
1131
|
* be logged to console if their severity meets the configured loggingConsoleLevel
|
|
1134
1132
|
*
|
|
1135
1133
|
* 0: ALL console logging off
|
|
1136
|
-
* 1: logs to console: severity
|
|
1137
|
-
* 2: logs to console: severity
|
|
1134
|
+
* 1: logs to console: severity \>= CRITICAL
|
|
1135
|
+
* 2: logs to console: severity \>= WARNING
|
|
1138
1136
|
*/
|
|
1139
1137
|
loggingLevelConsole?: number;
|
|
1140
1138
|
/**
|
|
@@ -1143,8 +1141,8 @@ declare namespace ApplicationInsights {
|
|
|
1143
1141
|
* the configured instrumentation key.
|
|
1144
1142
|
*
|
|
1145
1143
|
* 0: ALL iKey logging off
|
|
1146
|
-
* 1: logs to iKey: severity
|
|
1147
|
-
* 2: logs to iKey: severity
|
|
1144
|
+
* 1: logs to iKey: severity \>= CRITICAL
|
|
1145
|
+
* 2: logs to iKey: severity \>= WARNING
|
|
1148
1146
|
*/
|
|
1149
1147
|
loggingLevelTelemetry?: number;
|
|
1150
1148
|
/**
|
|
@@ -1171,7 +1169,6 @@ declare namespace ApplicationInsights {
|
|
|
1171
1169
|
*/
|
|
1172
1170
|
readonly channels?: IChannelControls[][];
|
|
1173
1171
|
/**
|
|
1174
|
-
* @type {boolean}
|
|
1175
1172
|
* Flag that disables the Instrumentation Key validation.
|
|
1176
1173
|
*/
|
|
1177
1174
|
disableInstrumentationKeyValidation?: boolean;
|
|
@@ -1202,14 +1199,12 @@ declare namespace ApplicationInsights {
|
|
|
1202
1199
|
/**
|
|
1203
1200
|
* @description Custom cookie domain. This is helpful if you want to share Application Insights cookies across subdomains. It
|
|
1204
1201
|
* can be set here or as part of the cookieCfg.domain, the cookieCfg takes precedence if both are specified.
|
|
1205
|
-
* @type {string}
|
|
1206
1202
|
* @defaultValue ""
|
|
1207
1203
|
*/
|
|
1208
1204
|
cookieDomain?: string;
|
|
1209
1205
|
/**
|
|
1210
1206
|
* @description Custom cookie path. This is helpful if you want to share Application Insights cookies behind an application
|
|
1211
1207
|
* gateway. It can be set here or as part of the cookieCfg.domain, the cookieCfg takes precedence if both are specified.
|
|
1212
|
-
* @type {string}
|
|
1213
1208
|
* @defaultValue ""
|
|
1214
1209
|
*/
|
|
1215
1210
|
cookiePath?: string;
|
|
@@ -1321,7 +1316,7 @@ declare namespace ApplicationInsights {
|
|
|
1321
1316
|
/**
|
|
1322
1317
|
* Optional Callback hook to allow the cookie manager to update it's configuration, not generally implemented now that
|
|
1323
1318
|
* dynamic configuration is supported
|
|
1324
|
-
* @param updateState
|
|
1319
|
+
* @param updateState - The new configuration state to apply to the cookie manager
|
|
1325
1320
|
*/
|
|
1326
1321
|
update?(updateState: ITelemetryUpdateState): void;
|
|
1327
1322
|
/**
|
|
@@ -1435,7 +1430,7 @@ declare namespace ApplicationInsights {
|
|
|
1435
1430
|
logInternalMessage?(severity: LoggingSeverity, message: _InternalLogMessage): void;
|
|
1436
1431
|
/**
|
|
1437
1432
|
* Optional Callback hook to allow the diagnostic logger to update it's configuration
|
|
1438
|
-
* @param updateState
|
|
1433
|
+
* @param updateState - The new configuration state to apply to the diagnostic logger
|
|
1439
1434
|
*/
|
|
1440
1435
|
update?(updateState: ITelemetryUpdateState): void;
|
|
1441
1436
|
/**
|
|
@@ -1456,7 +1451,7 @@ declare namespace ApplicationInsights {
|
|
|
1456
1451
|
getName(): string;
|
|
1457
1452
|
/**
|
|
1458
1453
|
* Sets the current name of the page
|
|
1459
|
-
* @param pageName
|
|
1454
|
+
* @param pageName - The name of the page
|
|
1460
1455
|
*/
|
|
1461
1456
|
setName(pageName: string): void;
|
|
1462
1457
|
/**
|
|
@@ -1488,7 +1483,7 @@ declare namespace ApplicationInsights {
|
|
|
1488
1483
|
getTraceFlags(): number | undefined;
|
|
1489
1484
|
/**
|
|
1490
1485
|
* https://www.w3.org/TR/trace-context/#trace-flags
|
|
1491
|
-
* @param newValue
|
|
1486
|
+
* @param newValue - An integer representation of the W3C TraceContext trace-flags.
|
|
1492
1487
|
*/
|
|
1493
1488
|
setTraceFlags(newValue?: number): void;
|
|
1494
1489
|
}
|
|
@@ -1527,10 +1522,10 @@ declare namespace ApplicationInsights {
|
|
|
1527
1522
|
*
|
|
1528
1523
|
* This callback is called before telemetry data is sent, allowing for dynamic customization of the logs.
|
|
1529
1524
|
*
|
|
1530
|
-
* @returns
|
|
1525
|
+
* @returns An object with the following property:
|
|
1531
1526
|
* - logs: An array of strings, where each string represents a log entry to be included in the telemetry.
|
|
1532
1527
|
*
|
|
1533
|
-
* @property
|
|
1528
|
+
* @property maxLogs - Specifies the maximum number of logs that can be generated. If not explicitly set, it defaults to 50.
|
|
1534
1529
|
*/
|
|
1535
1530
|
expLog?: () => {
|
|
1536
1531
|
logs: string[];
|
|
@@ -1589,32 +1584,31 @@ declare namespace ApplicationInsights {
|
|
|
1589
1584
|
getUrl: () => string;
|
|
1590
1585
|
/**
|
|
1591
1586
|
* Create payload data
|
|
1592
|
-
* @param data data
|
|
1593
1587
|
* @returns IPayloadData
|
|
1594
1588
|
*/
|
|
1595
1589
|
createPayload: (data: string | Uint8Array) => IPayloadData;
|
|
1596
1590
|
/**
|
|
1597
1591
|
* Serialize an item into a string
|
|
1598
|
-
* @param input telemetry item
|
|
1599
|
-
* @param convertUndefined convert undefined to a custom-defined object
|
|
1592
|
+
* @param input - telemetry item
|
|
1593
|
+
* @param convertUndefined - convert undefined to a custom-defined object
|
|
1600
1594
|
* @returns Serialized string
|
|
1601
1595
|
*/
|
|
1602
1596
|
serialize?: (input: ITelemetryItem, convertUndefined?: any) => string;
|
|
1603
1597
|
/**
|
|
1604
1598
|
* Batch an array of strings into one string
|
|
1605
|
-
* @param arr array of strings
|
|
1599
|
+
* @param arr - array of strings
|
|
1606
1600
|
* @returns a string represent all items in the given array
|
|
1607
1601
|
*/
|
|
1608
1602
|
batch?: (arr: string[]) => string;
|
|
1609
1603
|
/**
|
|
1610
1604
|
* If the item should be processed by offline channel
|
|
1611
|
-
* @param evt telemetry item
|
|
1605
|
+
* @param evt - telemetry item
|
|
1612
1606
|
* @returns should process or not
|
|
1613
1607
|
*/
|
|
1614
1608
|
shouldProcess?: (evt: ITelemetryItem) => boolean;
|
|
1615
1609
|
/**
|
|
1616
1610
|
* Create 1ds payload data
|
|
1617
|
-
* @param evts ITelemetryItems
|
|
1611
|
+
* @param evts - ITelemetryItems
|
|
1618
1612
|
* @returns IPayloadData
|
|
1619
1613
|
*/
|
|
1620
1614
|
createOneDSPayload?: (evts: ITelemetryItem[]) => IPayloadData;
|
|
@@ -1674,7 +1668,7 @@ declare namespace ApplicationInsights {
|
|
|
1674
1668
|
/**
|
|
1675
1669
|
* [Optional] This event is sent if you have enabled perf events, they are primarily used to track internal performance testing and debugging
|
|
1676
1670
|
* the event can be displayed via the debug plugin extension.
|
|
1677
|
-
* @param perfEvent
|
|
1671
|
+
* @param perfEvent - The performance event object
|
|
1678
1672
|
*/
|
|
1679
1673
|
perfEvent?: (perfEvent: IPerfEvent) => void;
|
|
1680
1674
|
/**
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "ai.cfgsync",
|
|
3
|
-
"version": "3.3.5-nightly3.2411-13",
|
|
4
|
-
"ext": {
|
|
5
|
-
"@cjs.js": {
|
|
6
|
-
"file": "ai.cfgsync.3.3.5-nightly3.2411-13.cjs.js",
|
|
7
|
-
"type": "text/javascript; charset=utf-8",
|
|
8
|
-
"integrity": "sha256-/g6mEdz2T1N11qFAlR7yNNuI18ai3sloPqmnSi+qwQU= sha384-pujO63MAA5xjNrddhIhAzkpJljyD2RwZTEv/bvIU4AwxEwBK2agJqJlduH331J99 sha512-PGxEmoOfSi21/ROKp0lrMi6QiMIictzT7CJ8orVGnZdcPjKBMnUjx9mwQYxE5PF1EovnfToSsdGOVhVrwZG50w==",
|
|
9
|
-
"hashes": {
|
|
10
|
-
"sha256": "/g6mEdz2T1N11qFAlR7yNNuI18ai3sloPqmnSi+qwQU=",
|
|
11
|
-
"sha384": "pujO63MAA5xjNrddhIhAzkpJljyD2RwZTEv/bvIU4AwxEwBK2agJqJlduH331J99",
|
|
12
|
-
"sha512": "PGxEmoOfSi21/ROKp0lrMi6QiMIictzT7CJ8orVGnZdcPjKBMnUjx9mwQYxE5PF1EovnfToSsdGOVhVrwZG50w=="
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"@cjs.min.js": {
|
|
16
|
-
"file": "ai.cfgsync.3.3.5-nightly3.2411-13.cjs.min.js",
|
|
17
|
-
"type": "text/javascript; charset=utf-8",
|
|
18
|
-
"integrity": "sha256-GQjIcOEIUdLSJa7T6+Ud8HQyPygTDvbG6TDcevwJzLU= sha384-kBu/rN+XvLmjykj6I9B2LmZAj02QUS1fzhVn9fJeAgz7XL8qn4VvL+ZDdgs3DbWZ sha512-1rzkmwMtpWtkH9Eku8lPeoph70PzD4iNGLGnmsAN+bbkZa/1o5wEPcncEzSCEnJG5DeJL0gG4Q5o9y4xRC1EoQ==",
|
|
19
|
-
"hashes": {
|
|
20
|
-
"sha256": "GQjIcOEIUdLSJa7T6+Ud8HQyPygTDvbG6TDcevwJzLU=",
|
|
21
|
-
"sha384": "kBu/rN+XvLmjykj6I9B2LmZAj02QUS1fzhVn9fJeAgz7XL8qn4VvL+ZDdgs3DbWZ",
|
|
22
|
-
"sha512": "1rzkmwMtpWtkH9Eku8lPeoph70PzD4iNGLGnmsAN+bbkZa/1o5wEPcncEzSCEnJG5DeJL0gG4Q5o9y4xRC1EoQ=="
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"@gbl.js": {
|
|
26
|
-
"file": "ai.cfgsync.3.3.5-nightly3.2411-13.gbl.js",
|
|
27
|
-
"type": "text/javascript; charset=utf-8",
|
|
28
|
-
"integrity": "sha256-57QPbMJ87osZ8mADcniDlH/AZ7973QRRfoISjaLLTzI= sha384-uwOx7EX6u6GhTJW6Gvjj/PDuRMHiisdpxM9KuUjbQLaOdKFeJCSOZdF3WMo2/xha sha512-K+Cht3NY8j9F0Uu4pjlpnkMSVx6SANlibGMyVh/hV2Vlf4uPbHwsktYgUkMh8y4IlgtccceOoh/0D6ZCCTnn0g==",
|
|
29
|
-
"hashes": {
|
|
30
|
-
"sha256": "57QPbMJ87osZ8mADcniDlH/AZ7973QRRfoISjaLLTzI=",
|
|
31
|
-
"sha384": "uwOx7EX6u6GhTJW6Gvjj/PDuRMHiisdpxM9KuUjbQLaOdKFeJCSOZdF3WMo2/xha",
|
|
32
|
-
"sha512": "K+Cht3NY8j9F0Uu4pjlpnkMSVx6SANlibGMyVh/hV2Vlf4uPbHwsktYgUkMh8y4IlgtccceOoh/0D6ZCCTnn0g=="
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
"@gbl.min.js": {
|
|
36
|
-
"file": "ai.cfgsync.3.3.5-nightly3.2411-13.gbl.min.js",
|
|
37
|
-
"type": "text/javascript; charset=utf-8",
|
|
38
|
-
"integrity": "sha256-gDrCQ91xNpNuKs71TcC3enlCqWpTe6BIL7ERpDrkznQ= sha384-KxCGrUxUmjcMtH0GHa8swHK3Fx61Q7CNSBJTUD/FZpEXlFgLjChoT3XR1pdqo/Wf sha512-hqcO4XfdZQ2N4LDgfP0LEtneKWRxJCBA1fyghfGHxlBWPXgrFyhQx/Ip1QLoy7i6IPiu49Ax++aiXlJnHayVFw==",
|
|
39
|
-
"hashes": {
|
|
40
|
-
"sha256": "gDrCQ91xNpNuKs71TcC3enlCqWpTe6BIL7ERpDrkznQ=",
|
|
41
|
-
"sha384": "KxCGrUxUmjcMtH0GHa8swHK3Fx61Q7CNSBJTUD/FZpEXlFgLjChoT3XR1pdqo/Wf",
|
|
42
|
-
"sha512": "hqcO4XfdZQ2N4LDgfP0LEtneKWRxJCBA1fyghfGHxlBWPXgrFyhQx/Ip1QLoy7i6IPiu49Ax++aiXlJnHayVFw=="
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
"@js": {
|
|
46
|
-
"file": "ai.cfgsync.3.3.5-nightly3.2411-13.js",
|
|
47
|
-
"type": "text/javascript; charset=utf-8",
|
|
48
|
-
"integrity": "sha256-XSe06+fzCEyH7vh26A7u6mAJz/MFHCUSYdrDaDg5a8c= sha384-i81+TP5cUnGtjAHHGfUaAV3eAhHUxyz0HDsYvNEtPB3wNn6kuokmX1GPqzsZT5t5 sha512-cSxxOxguGppFb/DXXIGInDoM6/aIpNRcB5/2m/5O08S4+5KRkmTqdhaiOjn+FZ82jUv7/Fif6GGGQ2IafjT2pg==",
|
|
49
|
-
"hashes": {
|
|
50
|
-
"sha256": "XSe06+fzCEyH7vh26A7u6mAJz/MFHCUSYdrDaDg5a8c=",
|
|
51
|
-
"sha384": "i81+TP5cUnGtjAHHGfUaAV3eAhHUxyz0HDsYvNEtPB3wNn6kuokmX1GPqzsZT5t5",
|
|
52
|
-
"sha512": "cSxxOxguGppFb/DXXIGInDoM6/aIpNRcB5/2m/5O08S4+5KRkmTqdhaiOjn+FZ82jUv7/Fif6GGGQ2IafjT2pg=="
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
"@min.js": {
|
|
56
|
-
"file": "ai.cfgsync.3.3.5-nightly3.2411-13.min.js",
|
|
57
|
-
"type": "text/javascript; charset=utf-8",
|
|
58
|
-
"integrity": "sha256-7hLiAAiCIRujX3AWJ+hPfZGlftPfTdoiWtQ1NtZd9dg= sha384-Ov8eK1rALSkJa2yxMp+0IKm57N9HH9OjGM8Pdl5QuS87Ofb8hNwZuV4d4Tq6R5cU sha512-2w/0XEBhjU4QguGE8eKMIbNvD4qd0c/D396RJhjYUFH80kdACWonTBguEcFiiySHiAsgEx3TmS7CvLiSKSlF5g==",
|
|
59
|
-
"hashes": {
|
|
60
|
-
"sha256": "7hLiAAiCIRujX3AWJ+hPfZGlftPfTdoiWtQ1NtZd9dg=",
|
|
61
|
-
"sha384": "Ov8eK1rALSkJa2yxMp+0IKm57N9HH9OjGM8Pdl5QuS87Ofb8hNwZuV4d4Tq6R5cU",
|
|
62
|
-
"sha512": "2w/0XEBhjU4QguGE8eKMIbNvD4qd0c/D396RJhjYUFH80kdACWonTBguEcFiiySHiAsgEx3TmS7CvLiSKSlF5g=="
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|