@microsoft/applicationinsights-debugplugin-js 2.7.2-nightly.2111-10 → 2.7.2-nightly.2111-15
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/{ai.dbg.2.7.2-nightly.2111-10.cjs.js → ai.dbg.2.7.2-nightly.2111-15.cjs.js} +47 -7
- package/browser/ai.dbg.2.7.2-nightly.2111-15.cjs.js.map +1 -0
- package/browser/ai.dbg.2.7.2-nightly.2111-15.cjs.min.js +6 -0
- package/browser/ai.dbg.2.7.2-nightly.2111-15.cjs.min.js.map +1 -0
- package/browser/{ai.dbg.2.7.2-nightly.2111-10.gbl.js → ai.dbg.2.7.2-nightly.2111-15.gbl.js} +47 -7
- package/browser/ai.dbg.2.7.2-nightly.2111-15.gbl.js.map +1 -0
- package/browser/ai.dbg.2.7.2-nightly.2111-15.gbl.min.js +6 -0
- package/browser/ai.dbg.2.7.2-nightly.2111-15.gbl.min.js.map +1 -0
- package/browser/ai.dbg.2.7.2-nightly.2111-15.integrity.json +66 -0
- package/browser/{ai.dbg.2.7.2-nightly.2111-10.js → ai.dbg.2.7.2-nightly.2111-15.js} +47 -7
- package/browser/ai.dbg.2.7.2-nightly.2111-15.js.map +1 -0
- package/browser/ai.dbg.2.7.2-nightly.2111-15.min.js +6 -0
- package/browser/ai.dbg.2.7.2-nightly.2111-15.min.js.map +1 -0
- package/browser/ai.dbg.2.cjs.js +46 -6
- package/browser/ai.dbg.2.cjs.js.map +1 -1
- package/browser/ai.dbg.2.cjs.min.js +2 -2
- package/browser/ai.dbg.2.cjs.min.js.map +1 -1
- package/browser/ai.dbg.2.gbl.js +46 -6
- package/browser/ai.dbg.2.gbl.js.map +1 -1
- package/browser/ai.dbg.2.gbl.min.js +2 -2
- package/browser/ai.dbg.2.gbl.min.js.map +1 -1
- package/browser/ai.dbg.2.js +46 -6
- package/browser/ai.dbg.2.js.map +1 -1
- package/browser/ai.dbg.2.min.js +2 -2
- package/browser/ai.dbg.2.min.js.map +1 -1
- package/dist/applicationinsights-debugplugin-js.d.ts +1 -1
- package/dist/applicationinsights-debugplugin-js.js +46 -6
- package/dist/applicationinsights-debugplugin-js.js.map +1 -1
- package/dist/applicationinsights-debugplugin-js.min.js +2 -2
- package/dist/applicationinsights-debugplugin-js.min.js.map +1 -1
- package/dist/applicationinsights-debugplugin-js.rollup.d.ts +1 -1
- package/dist-esm/DebugPlugin.js +12 -5
- package/dist-esm/DebugPlugin.js.map +1 -1
- package/dist-esm/applicationinsights-debugplugin-js.js +1 -1
- package/dist-esm/components/Dashboard.js +1 -1
- package/dist-esm/components/LogEntry.js +1 -1
- package/dist-esm/components/debugBins.js +1 -1
- package/dist-esm/components/filterList.js +1 -1
- package/dist-esm/components/helpers.js +3 -2
- package/dist-esm/components/helpers.js.map +1 -1
- package/dist-esm/components/styleNodeSrc.js +1 -1
- package/dist-esm/interfaces/IDebugPluginConfig.js +1 -1
- package/package.json +3 -3
- package/src/DebugPlugin.ts +17 -4
- package/src/components/helpers.ts +3 -2
- package/browser/ai.dbg.2.7.2-nightly.2111-10.cjs.js.map +0 -1
- package/browser/ai.dbg.2.7.2-nightly.2111-10.cjs.min.js +0 -6
- package/browser/ai.dbg.2.7.2-nightly.2111-10.cjs.min.js.map +0 -1
- package/browser/ai.dbg.2.7.2-nightly.2111-10.gbl.js.map +0 -1
- package/browser/ai.dbg.2.7.2-nightly.2111-10.gbl.min.js +0 -6
- package/browser/ai.dbg.2.7.2-nightly.2111-10.gbl.min.js.map +0 -1
- package/browser/ai.dbg.2.7.2-nightly.2111-10.integrity.json +0 -66
- package/browser/ai.dbg.2.7.2-nightly.2111-10.js.map +0 -1
- package/browser/ai.dbg.2.7.2-nightly.2111-10.min.js +0 -6
- package/browser/ai.dbg.2.7.2-nightly.2111-10.min.js.map +0 -1
package/dist-esm/DebugPlugin.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Debug Plugin, 2.7.2-nightly.2111-
|
|
2
|
+
* Application Insights JavaScript SDK - Debug Plugin, 2.7.2-nightly.2111-15
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
import { __extendsFn as __extends } from "@microsoft/applicationinsights-shims";
|
|
8
|
-
import { BaseTelemetryPlugin, arrForEach, InstrumentFunc, objForEachKey, isFunction, dateNow, isArray, isUndefined } from "@microsoft/applicationinsights-core-js";
|
|
8
|
+
import { BaseTelemetryPlugin, arrForEach, InstrumentFunc, objForEachKey, isFunction, dateNow, isArray, isUndefined, getDebugExt } from "@microsoft/applicationinsights-core-js";
|
|
9
9
|
import { Dashboard } from "./components/Dashboard";
|
|
10
10
|
import { getTargetName } from "./components/helpers";
|
|
11
11
|
import { permStyle } from "./components/styleNodeSrc";
|
|
@@ -253,6 +253,13 @@ var DebugPlugin = /** @class */ (function (_super) {
|
|
|
253
253
|
}
|
|
254
254
|
return evtPrefix;
|
|
255
255
|
}
|
|
256
|
+
function _logEntry(theEvent, evtName, kind) {
|
|
257
|
+
dashboard.newLogEntry(theEvent, dateNow() - startTime, evtName, 0, kind);
|
|
258
|
+
var dbgExt = getDebugExt(_self.core.config);
|
|
259
|
+
if (dbgExt && dbgExt.debugMsg) {
|
|
260
|
+
dbgExt.debugMsg(evtName, theEvent);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
256
263
|
function _handleInstPreHook() {
|
|
257
264
|
return function (funcArgs) {
|
|
258
265
|
var orgArgs = [];
|
|
@@ -264,7 +271,7 @@ var DebugPlugin = /** @class */ (function (_super) {
|
|
|
264
271
|
debugBinParent.addClassToEl("notify");
|
|
265
272
|
}
|
|
266
273
|
var evtPrefix = _getEvtPrefix(funcArgs);
|
|
267
|
-
|
|
274
|
+
_logEntry(_createInstrumentObject(funcArgs, orgArgs), evtPrefix, funcArgs.name);
|
|
268
275
|
if (_theConfig.dumpToConsole() && console && console.log) {
|
|
269
276
|
console.log("[".concat(evtPrefix, "] preProcess - funcArgs: "), funcArgs);
|
|
270
277
|
console.log("[".concat(evtPrefix, "] preProcess - orgArgs: "), orgArgs);
|
|
@@ -283,7 +290,7 @@ var DebugPlugin = /** @class */ (function (_super) {
|
|
|
283
290
|
debugBinParent.addClassToEl("notify");
|
|
284
291
|
}
|
|
285
292
|
// The called function threw an exception
|
|
286
|
-
|
|
293
|
+
_logEntry(_createInstrumentObject(funcArgs, orgArgs), evtPrefix, funcArgs.name);
|
|
287
294
|
if (_theConfig.dumpToConsole() && console && console.log) {
|
|
288
295
|
console.log("[".concat(evtPrefix, "] complete"));
|
|
289
296
|
}
|
|
@@ -295,7 +302,7 @@ var DebugPlugin = /** @class */ (function (_super) {
|
|
|
295
302
|
console.log("[".concat(_self.identifier, ":processTelemetry] complete"));
|
|
296
303
|
}
|
|
297
304
|
if (!debugBins["processTelemetry"] && _theConfig.logProcessTelemetry() === true) {
|
|
298
|
-
|
|
305
|
+
_logEntry(event, "[".concat(_self.identifier, ":processTelemetry[").concat(event.baseType, "]"), "processTelemetry");
|
|
299
306
|
}
|
|
300
307
|
_self.processNext(event, itemCtx);
|
|
301
308
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugPlugin.js.map","sources":["DebugPlugin.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { BaseTelemetryPlugin, arrForEach, InstrumentFunc, objForEachKey, isFunction, dateNow, isArray, isUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Dashboard } from \"./components/Dashboard\";\r\nimport { getTargetName } from \"./components/helpers\";\r\nimport { permStyle } from \"./components/styleNodeSrc\";\r\nimport { DebugBin, DebugBinParent } from \"./components/debugBins\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar getDefaultConfig = function () {\r\n var config = {\r\n trackers: function () { return [\r\n \"flush\",\r\n \"track\",\r\n \"trackEvent\",\r\n \"trackPageView\",\r\n \"trackPageViewPerformance\",\r\n \"trackException\",\r\n \"trackTrace\",\r\n \"trackMetric\",\r\n \"trackDependencyData\",\r\n \"processTelemetry\",\r\n \"throwInternal\",\r\n \"logInternalMessage\",\r\n \"triggerSend\",\r\n \"_sender\",\r\n \"perfEvent\",\r\n \"initialize\"\r\n ]; },\r\n excludeKeys: function () { return [\r\n \"_dynInstFuncs\",\r\n \"_getTelCtx\",\r\n \"_baseTelInit\",\r\n \"diagLog\",\r\n \"isInitialized\",\r\n \"setInitialized\",\r\n \"setNextPlugin\",\r\n \"processNext\"\r\n ]; },\r\n cssPrefix: function () { return \"ai\"; },\r\n disableNotifications: function () { return false; },\r\n dumpToConsole: function () { return false; },\r\n maxMessages: function () { return 5000; },\r\n showFunctions: function () { return false; },\r\n logProcessTelemetry: function () { return false; }\r\n };\r\n return config;\r\n};\r\nvar DebugPlugin = /** @class */ (function (_super) {\r\n __extends(DebugPlugin, _super);\r\n function DebugPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = DebugPlugin.identifier;\r\n var dashboard;\r\n /**\r\n * the style that will be permanently embedded in the webpage\r\n * TODO: manage style conflicts (prepend unique ID to relevant class names?)\r\n */\r\n var permStyleEl;\r\n /**\r\n * an object containing the individual debug bin items\r\n */\r\n var debugBins;\r\n /**\r\n * the parent containing all the individual debugBins\r\n */\r\n var debugBinParent;\r\n /**\r\n * the different telemetry functions that will be tracked\r\n */\r\n var trackers;\r\n /**\r\n * timestamp used to track number of seconds since webpage was loaded\r\n */\r\n var startTime = +new Date();\r\n /**\r\n * the config for this plugin\r\n */\r\n var _theConfig = getDefaultConfig();\r\n dynamicProto(DebugPlugin, _this, function (_self, base) {\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n base.initialize(config, core, extensions, pluginChain);\r\n var defaultConfig = getDefaultConfig();\r\n var ctx_1 = _self._getTelCtx();\r\n var identifier_1 = _self.identifier;\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _theConfig[field] = function () { return ctx_1.getConfig(identifier_1, field, value()); };\r\n });\r\n var foundTrackers_1 = [];\r\n trackers = _theConfig.trackers();\r\n var prefix = _theConfig.cssPrefix();\r\n // 1. Listen to Notifications\r\n if (!_theConfig.disableNotifications()) {\r\n var notifyMgr = (isFunction(core.getNotifyMgr) && core.getNotifyMgr()) || core[\"_notificationManager\"];\r\n if (notifyMgr) {\r\n notifyMgr.addNotificationListener({\r\n eventsSent: function (events) {\r\n dashboard.newLogEntry(events, dateNow() - startTime, \"Notification:eventsSent\", 0, \"eventsSent\");\r\n },\r\n eventsDiscarded: function (events, reason) {\r\n dashboard.newLogEntry({\r\n events: events,\r\n reason: reason\r\n }, dateNow() - startTime, \"Notification:eventsDiscarded\", 0, \"eventsDiscarded\");\r\n },\r\n eventsSendRequest: function (sendReason, isAsync) {\r\n dashboard.newLogEntry({\r\n sendReason: sendReason,\r\n isAsync: isAsync\r\n }, dateNow() - startTime, \"Notification:eventsSendRequest\", 0, \"eventsSendRequest\");\r\n },\r\n perfEvent: function (perfEvent) {\r\n var evtName = \"Notification:perfEvent[\".concat(perfEvent.name, \"]\");\r\n dashboard.newLogEntry(perfEvent, dateNow() - startTime, evtName, 0, \"perfEvent\");\r\n }\r\n });\r\n if (trackers.indexOf(\"eventsSent\") !== -1) {\r\n foundTrackers_1.push(\"eventsSent\");\r\n }\r\n if (trackers.indexOf(\"eventsSendRequest\") !== -1) {\r\n foundTrackers_1.push(\"eventsSendRequest\");\r\n }\r\n if (trackers.indexOf(\"eventsDiscarded\") !== -1) {\r\n foundTrackers_1.push(\"eventsDiscarded\");\r\n }\r\n if (trackers.indexOf(\"perfEvent\") !== -1) {\r\n foundTrackers_1.push(\"perfEvent\");\r\n }\r\n }\r\n }\r\n // 2. Get all of the extensions and channels\r\n debugBins = {};\r\n var targetObjects_1 = [core, _self.diagLog()];\r\n // Get all of the config extensions\r\n if (config.extensions) {\r\n arrForEach(config.extensions, function (ext) {\r\n _addTargets(targetObjects_1, ext);\r\n });\r\n }\r\n // Get all of the passed extensions\r\n if (extensions) {\r\n arrForEach(extensions, function (ext) {\r\n _addTargets(targetObjects_1, ext);\r\n });\r\n }\r\n if (isFunction(core.getTransmissionControls)) {\r\n var channelControls = core.getTransmissionControls();\r\n if (channelControls) {\r\n arrForEach(channelControls, function (channel) {\r\n if (isArray(channel)) {\r\n arrForEach(channel, function (theChannel) {\r\n _addTargets(targetObjects_1, theChannel);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n // 3. Instrument the functions\r\n arrForEach(trackers, function (tracker) {\r\n arrForEach(targetObjects_1, function (target, idx) {\r\n var val = InstrumentFunc(target, tracker, {\r\n req: _handleInstPreHook(),\r\n rsp: _handleInstPostHook()\r\n }, true);\r\n if (val) {\r\n if (foundTrackers_1.indexOf(tracker) === -1) {\r\n foundTrackers_1.push(tracker);\r\n }\r\n }\r\n });\r\n });\r\n // Sort the items\r\n foundTrackers_1 = foundTrackers_1.sort();\r\n // 4. Create the Dashboard\r\n dashboard = new Dashboard({\r\n prefix: prefix,\r\n trackers: foundTrackers_1,\r\n excludeKeys: _theConfig.excludeKeys(),\r\n maxMessages: _theConfig.maxMessages(),\r\n includeFunctions: _theConfig.showFunctions()\r\n });\r\n // 5. setup debugBin\r\n var debugBinContainer = document.createElement(\"div\");\r\n debugBinContainer.className = \"\".concat(prefix, \"-debug-bin-container\");\r\n debugBinParent = new DebugBinParent(debugBinContainer, [], 0, prefix);\r\n arrForEach(foundTrackers_1, function (tracker, idx) {\r\n debugBins[tracker] = new DebugBin(tracker, 0, debugBinParent, (idx + 1) * 50);\r\n });\r\n // 6. append permanent style\r\n permStyleEl = document.createElement(\"style\");\r\n permStyleEl.innerHTML = permStyle(prefix);\r\n document.head.appendChild(permStyleEl);\r\n // 7. add button to debugBinParent\r\n debugBinParent.addButton(function (evt) {\r\n evt.stopPropagation();\r\n if (dashboard.isDisplayed()) {\r\n dashboard.hide();\r\n }\r\n else {\r\n dashboard.show();\r\n }\r\n }, \"show dashboard\");\r\n document.body.appendChild(debugBinContainer);\r\n // 8. Log the config as \"keep\" so it won't be dropped or cleared\r\n dashboard.newLogEntry(config, 0, \"config\", 0, \"config\", true);\r\n }\r\n };\r\n function _addTarget(targetObjects, ext) {\r\n if (ext && targetObjects.indexOf(ext) === -1) {\r\n targetObjects.push(ext);\r\n return true;\r\n }\r\n return false;\r\n }\r\n function _addTargets(targetObjects, ext) {\r\n if (_addTarget(targetObjects, ext)) {\r\n if (isFunction(ext[\"_getDbgPlgTargets\"])) {\r\n var extra = ext[\"_getDbgPlgTargets\"]();\r\n if (isArray(extra)) {\r\n arrForEach(extra, function (tgt) {\r\n _addTargets(targetObjects, tgt);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n function _createInstrumentObject(funcArgs, orgArgs) {\r\n var result = {\r\n funcName: funcArgs.name,\r\n inst: funcArgs.inst\r\n };\r\n if (orgArgs && orgArgs.length) {\r\n result.args = orgArgs;\r\n }\r\n if (!isUndefined(funcArgs.err)) {\r\n result.err = funcArgs.err;\r\n }\r\n if (!isUndefined(funcArgs.rslt)) {\r\n result.rslt = funcArgs.rslt;\r\n }\r\n return result;\r\n }\r\n function _getEvtPrefix(funcArgs) {\r\n var identifier = getTargetName(funcArgs.inst);\r\n var evtPrefix = funcArgs.name;\r\n if (identifier) {\r\n evtPrefix += \":\" + identifier;\r\n }\r\n return evtPrefix;\r\n }\r\n function _handleInstPreHook() {\r\n return function (funcArgs) {\r\n var orgArgs = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n orgArgs[_i - 1] = arguments[_i];\r\n }\r\n (debugBins[funcArgs.name] || debugBins[\"default\"]).increment();\r\n if (funcArgs.name === \"trackException\" && !debugBinParent.showChildren) {\r\n debugBinParent.addClassToEl(\"notify\");\r\n }\r\n var evtPrefix = _getEvtPrefix(funcArgs);\r\n dashboard.newLogEntry(_createInstrumentObject(funcArgs, orgArgs), dateNow() - startTime, \"\".concat(evtPrefix), 0, funcArgs.name);\r\n if (_theConfig.dumpToConsole() && console && console.log) {\r\n console.log(\"[\".concat(evtPrefix, \"] preProcess - funcArgs: \"), funcArgs);\r\n console.log(\"[\".concat(evtPrefix, \"] preProcess - orgArgs: \"), orgArgs);\r\n }\r\n };\r\n }\r\n function _handleInstPostHook() {\r\n return function (funcArgs) {\r\n var orgArgs = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n orgArgs[_i - 1] = arguments[_i];\r\n }\r\n if (!isUndefined(funcArgs.err)) {\r\n var evtPrefix = _getEvtPrefix(funcArgs);\r\n if (!debugBinParent.showChildren) {\r\n debugBinParent.addClassToEl(\"notify\");\r\n }\r\n // The called function threw an exception\r\n dashboard.newLogEntry(_createInstrumentObject(funcArgs, orgArgs), dateNow() - startTime, \"\".concat(evtPrefix), 0, funcArgs.name);\r\n if (_theConfig.dumpToConsole() && console && console.log) {\r\n console.log(\"[\".concat(evtPrefix, \"] complete\"));\r\n }\r\n }\r\n };\r\n }\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (_theConfig.dumpToConsole() && console && console.log) {\r\n console.log(\"[\".concat(_self.identifier, \":processTelemetry] complete\"));\r\n }\r\n if (!debugBins[\"processTelemetry\"] && _theConfig.logProcessTelemetry() === true) {\r\n dashboard.newLogEntry(event, dateNow() - startTime, \"[\".concat(_self.identifier, \":processTelemetry[\").concat(event.baseType, \"]\"), 0, \"processTelemetry\");\r\n }\r\n _self.processNext(event, itemCtx);\r\n };\r\n });\r\n return _this;\r\n }\r\n DebugPlugin.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 DebugPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n DebugPlugin.identifier = \"DebugPlugin\";\r\n return DebugPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default DebugPlugin;\r\n//# sourceMappingURL=DebugPlugin.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC,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;2DAKM;AACN;AACA;AACA;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"DebugPlugin.js.map","sources":["DebugPlugin.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { BaseTelemetryPlugin, arrForEach, InstrumentFunc, objForEachKey, isFunction, dateNow, isArray, isUndefined, getDebugExt } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Dashboard } from \"./components/Dashboard\";\r\nimport { getTargetName } from \"./components/helpers\";\r\nimport { permStyle } from \"./components/styleNodeSrc\";\r\nimport { DebugBin, DebugBinParent } from \"./components/debugBins\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar getDefaultConfig = function () {\r\n var config = {\r\n trackers: function () { return [\r\n \"flush\",\r\n \"track\",\r\n \"trackEvent\",\r\n \"trackPageView\",\r\n \"trackPageViewPerformance\",\r\n \"trackException\",\r\n \"trackTrace\",\r\n \"trackMetric\",\r\n \"trackDependencyData\",\r\n \"processTelemetry\",\r\n \"throwInternal\",\r\n \"logInternalMessage\",\r\n \"triggerSend\",\r\n \"_sender\",\r\n \"perfEvent\",\r\n \"initialize\"\r\n ]; },\r\n excludeKeys: function () { return [\r\n \"_dynInstFuncs\",\r\n \"_getTelCtx\",\r\n \"_baseTelInit\",\r\n \"diagLog\",\r\n \"isInitialized\",\r\n \"setInitialized\",\r\n \"setNextPlugin\",\r\n \"processNext\"\r\n ]; },\r\n cssPrefix: function () { return \"ai\"; },\r\n disableNotifications: function () { return false; },\r\n dumpToConsole: function () { return false; },\r\n maxMessages: function () { return 5000; },\r\n showFunctions: function () { return false; },\r\n logProcessTelemetry: function () { return false; }\r\n };\r\n return config;\r\n};\r\nvar DebugPlugin = /** @class */ (function (_super) {\r\n __extends(DebugPlugin, _super);\r\n function DebugPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = DebugPlugin.identifier;\r\n var dashboard;\r\n /**\r\n * the style that will be permanently embedded in the webpage\r\n * TODO: manage style conflicts (prepend unique ID to relevant class names?)\r\n */\r\n var permStyleEl;\r\n /**\r\n * an object containing the individual debug bin items\r\n */\r\n var debugBins;\r\n /**\r\n * the parent containing all the individual debugBins\r\n */\r\n var debugBinParent;\r\n /**\r\n * the different telemetry functions that will be tracked\r\n */\r\n var trackers;\r\n /**\r\n * timestamp used to track number of seconds since webpage was loaded\r\n */\r\n var startTime = +new Date();\r\n /**\r\n * the config for this plugin\r\n */\r\n var _theConfig = getDefaultConfig();\r\n dynamicProto(DebugPlugin, _this, function (_self, base) {\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n base.initialize(config, core, extensions, pluginChain);\r\n var defaultConfig = getDefaultConfig();\r\n var ctx_1 = _self._getTelCtx();\r\n var identifier_1 = _self.identifier;\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _theConfig[field] = function () { return ctx_1.getConfig(identifier_1, field, value()); };\r\n });\r\n var foundTrackers_1 = [];\r\n trackers = _theConfig.trackers();\r\n var prefix = _theConfig.cssPrefix();\r\n // 1. Listen to Notifications\r\n if (!_theConfig.disableNotifications()) {\r\n var notifyMgr = (isFunction(core.getNotifyMgr) && core.getNotifyMgr()) || core[\"_notificationManager\"];\r\n if (notifyMgr) {\r\n notifyMgr.addNotificationListener({\r\n eventsSent: function (events) {\r\n dashboard.newLogEntry(events, dateNow() - startTime, \"Notification:eventsSent\", 0, \"eventsSent\");\r\n },\r\n eventsDiscarded: function (events, reason) {\r\n dashboard.newLogEntry({\r\n events: events,\r\n reason: reason\r\n }, dateNow() - startTime, \"Notification:eventsDiscarded\", 0, \"eventsDiscarded\");\r\n },\r\n eventsSendRequest: function (sendReason, isAsync) {\r\n dashboard.newLogEntry({\r\n sendReason: sendReason,\r\n isAsync: isAsync\r\n }, dateNow() - startTime, \"Notification:eventsSendRequest\", 0, \"eventsSendRequest\");\r\n },\r\n perfEvent: function (perfEvent) {\r\n var evtName = \"Notification:perfEvent[\".concat(perfEvent.name, \"]\");\r\n dashboard.newLogEntry(perfEvent, dateNow() - startTime, evtName, 0, \"perfEvent\");\r\n }\r\n });\r\n if (trackers.indexOf(\"eventsSent\") !== -1) {\r\n foundTrackers_1.push(\"eventsSent\");\r\n }\r\n if (trackers.indexOf(\"eventsSendRequest\") !== -1) {\r\n foundTrackers_1.push(\"eventsSendRequest\");\r\n }\r\n if (trackers.indexOf(\"eventsDiscarded\") !== -1) {\r\n foundTrackers_1.push(\"eventsDiscarded\");\r\n }\r\n if (trackers.indexOf(\"perfEvent\") !== -1) {\r\n foundTrackers_1.push(\"perfEvent\");\r\n }\r\n }\r\n }\r\n // 2. Get all of the extensions and channels\r\n debugBins = {};\r\n var targetObjects_1 = [core, _self.diagLog()];\r\n // Get all of the config extensions\r\n if (config.extensions) {\r\n arrForEach(config.extensions, function (ext) {\r\n _addTargets(targetObjects_1, ext);\r\n });\r\n }\r\n // Get all of the passed extensions\r\n if (extensions) {\r\n arrForEach(extensions, function (ext) {\r\n _addTargets(targetObjects_1, ext);\r\n });\r\n }\r\n if (isFunction(core.getTransmissionControls)) {\r\n var channelControls = core.getTransmissionControls();\r\n if (channelControls) {\r\n arrForEach(channelControls, function (channel) {\r\n if (isArray(channel)) {\r\n arrForEach(channel, function (theChannel) {\r\n _addTargets(targetObjects_1, theChannel);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n // 3. Instrument the functions\r\n arrForEach(trackers, function (tracker) {\r\n arrForEach(targetObjects_1, function (target, idx) {\r\n var val = InstrumentFunc(target, tracker, {\r\n req: _handleInstPreHook(),\r\n rsp: _handleInstPostHook()\r\n }, true);\r\n if (val) {\r\n if (foundTrackers_1.indexOf(tracker) === -1) {\r\n foundTrackers_1.push(tracker);\r\n }\r\n }\r\n });\r\n });\r\n // Sort the items\r\n foundTrackers_1 = foundTrackers_1.sort();\r\n // 4. Create the Dashboard\r\n dashboard = new Dashboard({\r\n prefix: prefix,\r\n trackers: foundTrackers_1,\r\n excludeKeys: _theConfig.excludeKeys(),\r\n maxMessages: _theConfig.maxMessages(),\r\n includeFunctions: _theConfig.showFunctions()\r\n });\r\n // 5. setup debugBin\r\n var debugBinContainer = document.createElement(\"div\");\r\n debugBinContainer.className = \"\".concat(prefix, \"-debug-bin-container\");\r\n debugBinParent = new DebugBinParent(debugBinContainer, [], 0, prefix);\r\n arrForEach(foundTrackers_1, function (tracker, idx) {\r\n debugBins[tracker] = new DebugBin(tracker, 0, debugBinParent, (idx + 1) * 50);\r\n });\r\n // 6. append permanent style\r\n permStyleEl = document.createElement(\"style\");\r\n permStyleEl.innerHTML = permStyle(prefix);\r\n document.head.appendChild(permStyleEl);\r\n // 7. add button to debugBinParent\r\n debugBinParent.addButton(function (evt) {\r\n evt.stopPropagation();\r\n if (dashboard.isDisplayed()) {\r\n dashboard.hide();\r\n }\r\n else {\r\n dashboard.show();\r\n }\r\n }, \"show dashboard\");\r\n document.body.appendChild(debugBinContainer);\r\n // 8. Log the config as \"keep\" so it won't be dropped or cleared\r\n dashboard.newLogEntry(config, 0, \"config\", 0, \"config\", true);\r\n }\r\n };\r\n function _addTarget(targetObjects, ext) {\r\n if (ext && targetObjects.indexOf(ext) === -1) {\r\n targetObjects.push(ext);\r\n return true;\r\n }\r\n return false;\r\n }\r\n function _addTargets(targetObjects, ext) {\r\n if (_addTarget(targetObjects, ext)) {\r\n if (isFunction(ext[\"_getDbgPlgTargets\"])) {\r\n var extra = ext[\"_getDbgPlgTargets\"]();\r\n if (isArray(extra)) {\r\n arrForEach(extra, function (tgt) {\r\n _addTargets(targetObjects, tgt);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n function _createInstrumentObject(funcArgs, orgArgs) {\r\n var result = {\r\n funcName: funcArgs.name,\r\n inst: funcArgs.inst\r\n };\r\n if (orgArgs && orgArgs.length) {\r\n result.args = orgArgs;\r\n }\r\n if (!isUndefined(funcArgs.err)) {\r\n result.err = funcArgs.err;\r\n }\r\n if (!isUndefined(funcArgs.rslt)) {\r\n result.rslt = funcArgs.rslt;\r\n }\r\n return result;\r\n }\r\n function _getEvtPrefix(funcArgs) {\r\n var identifier = getTargetName(funcArgs.inst);\r\n var evtPrefix = funcArgs.name;\r\n if (identifier) {\r\n evtPrefix += \":\" + identifier;\r\n }\r\n return evtPrefix;\r\n }\r\n function _logEntry(theEvent, evtName, kind) {\r\n dashboard.newLogEntry(theEvent, dateNow() - startTime, evtName, 0, kind);\r\n var dbgExt = getDebugExt(_self.core.config);\r\n if (dbgExt && dbgExt.debugMsg) {\r\n dbgExt.debugMsg(evtName, theEvent);\r\n }\r\n }\r\n function _handleInstPreHook() {\r\n return function (funcArgs) {\r\n var orgArgs = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n orgArgs[_i - 1] = arguments[_i];\r\n }\r\n (debugBins[funcArgs.name] || debugBins[\"default\"]).increment();\r\n if (funcArgs.name === \"trackException\" && !debugBinParent.showChildren) {\r\n debugBinParent.addClassToEl(\"notify\");\r\n }\r\n var evtPrefix = _getEvtPrefix(funcArgs);\r\n _logEntry(_createInstrumentObject(funcArgs, orgArgs), evtPrefix, funcArgs.name);\r\n if (_theConfig.dumpToConsole() && console && console.log) {\r\n console.log(\"[\".concat(evtPrefix, \"] preProcess - funcArgs: \"), funcArgs);\r\n console.log(\"[\".concat(evtPrefix, \"] preProcess - orgArgs: \"), orgArgs);\r\n }\r\n };\r\n }\r\n function _handleInstPostHook() {\r\n return function (funcArgs) {\r\n var orgArgs = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n orgArgs[_i - 1] = arguments[_i];\r\n }\r\n if (!isUndefined(funcArgs.err)) {\r\n var evtPrefix = _getEvtPrefix(funcArgs);\r\n if (!debugBinParent.showChildren) {\r\n debugBinParent.addClassToEl(\"notify\");\r\n }\r\n // The called function threw an exception\r\n _logEntry(_createInstrumentObject(funcArgs, orgArgs), evtPrefix, funcArgs.name);\r\n if (_theConfig.dumpToConsole() && console && console.log) {\r\n console.log(\"[\".concat(evtPrefix, \"] complete\"));\r\n }\r\n }\r\n };\r\n }\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (_theConfig.dumpToConsole() && console && console.log) {\r\n console.log(\"[\".concat(_self.identifier, \":processTelemetry] complete\"));\r\n }\r\n if (!debugBins[\"processTelemetry\"] && _theConfig.logProcessTelemetry() === true) {\r\n _logEntry(event, \"[\".concat(_self.identifier, \":processTelemetry[\").concat(event.baseType, \"]\"), \"processTelemetry\");\r\n }\r\n _self.processNext(event, itemCtx);\r\n };\r\n });\r\n return _this;\r\n }\r\n DebugPlugin.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 DebugPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n DebugPlugin.identifier = \"DebugPlugin\";\r\n return DebugPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default DebugPlugin;\r\n//# sourceMappingURL=DebugPlugin.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC,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;2DAKM;AACN;AACA;AACA;AACA;AACA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Debug Plugin, 2.7.2-nightly.2111-
|
|
2
|
+
* Application Insights JavaScript SDK - Debug Plugin, 2.7.2-nightly.2111-15
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
import { arrForEach } from "@microsoft/applicationinsights-core-js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Debug Plugin, 2.7.2-nightly.2111-
|
|
2
|
+
* Application Insights JavaScript SDK - Debug Plugin, 2.7.2-nightly.2111-15
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
import { isBoolean, isNumber, isObject, isString } from "@microsoft/applicationinsights-core-js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Debug Plugin, 2.7.2-nightly.2111-
|
|
2
|
+
* Application Insights JavaScript SDK - Debug Plugin, 2.7.2-nightly.2111-15
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -12,9 +12,10 @@ var strGetOwnPropertyNames = "getOwnPropertyNames";
|
|
|
12
12
|
export var MAX_DEPTH = 16;
|
|
13
13
|
export function makeRegex(value) {
|
|
14
14
|
if (value && value.length > 0) {
|
|
15
|
+
// Escape any slashes first!
|
|
15
16
|
value = value.replace(/\\/g, "\\\\");
|
|
16
17
|
// eslint-disable-next-line security/detect-non-literal-regexp
|
|
17
|
-
value = value.replace(/([\+\?\|\{\[\(\)
|
|
18
|
+
value = value.replace(/([\+\?\|\{\}\[\]\(\)\^\$\#\.\=\!\:\/])/g, "\\$1");
|
|
18
19
|
value = value.replace(/\*/g, ".*");
|
|
19
20
|
return new RegExp("(" + value + ")");
|
|
20
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js.map","sources":["helpers.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, hasOwnProperty, isFunction, isObject, isString, isSymbol, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Util } from \"@microsoft/applicationinsights-common\";\r\nimport { strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nvar strConstructor = \"constructor\";\r\nvar strGetOwnPropertyNames = \"getOwnPropertyNames\";\r\nexport var MAX_DEPTH = 16;\r\nexport function makeRegex(value) {\r\n if (value && value.length > 0) {\r\n value = value.replace(/\\\\/g, \"\\\\\\\\\");\r\n // eslint-disable-next-line security/detect-non-literal-regexp\r\n value = value.replace(/([\\+\\?\\|\\{\\[\\(\\)\\^\\$\\#\\.]}])/g, \"\\\\$1\");\r\n value = value.replace(/\\*/g, \".*\");\r\n return new RegExp(\"(\" + value + \")\");\r\n }\r\n return null;\r\n}\r\nexport function toggleClassName(el, className) {\r\n var idx = el.className.indexOf(className);\r\n if (idx === -1) {\r\n el.className += className;\r\n }\r\n else {\r\n el.className = el.className.substring(0, idx) + el.className.substring(idx + className.length);\r\n }\r\n}\r\nexport function traverseAndReplace(target, maxDepth, currentDepth, thingsReferenced, excludedKeys, includeFunctions) {\r\n var out = {};\r\n if (!thingsReferenced) {\r\n thingsReferenced = [];\r\n }\r\n if (isObject(target)) {\r\n for (var _i = 0, _a = getTargetKeys(target, excludedKeys, includeFunctions); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n var targetValue = target[key];\r\n if (isSymbol(targetValue)) {\r\n targetValue = targetValue.toString();\r\n }\r\n if (targetValue !== null && arrIndexOf(thingsReferenced, targetValue) !== -1) {\r\n out[key] = \"<circular (\".concat(key, \" - \\\"\").concat(getTargetName(targetValue), \"\\\")>\");\r\n }\r\n else if (targetValue !== null && isObject(targetValue)) {\r\n if (currentDepth >= maxDepth) {\r\n out[key] = \"<max allowed depth reached>\";\r\n }\r\n else {\r\n thingsReferenced.push(target);\r\n out[key] = traverseAndReplace(targetValue, maxDepth, currentDepth + 1, thingsReferenced, excludedKeys, includeFunctions);\r\n thingsReferenced.pop();\r\n }\r\n }\r\n else {\r\n out[key] = targetValue;\r\n }\r\n }\r\n }\r\n return out;\r\n}\r\nfunction _sanitizeText(value) {\r\n if (value) {\r\n value = value.replace(/&/g, \"&\");\r\n value = value.replace(/>/g, \">\");\r\n value = value.replace(/</g, \"<\");\r\n }\r\n return value;\r\n}\r\nfunction _setInnerText(elm, theText, textFilter) {\r\n var innerText = theText;\r\n var matchPos = -1;\r\n var matchLen = 0;\r\n var rg = makeRegex(textFilter);\r\n if (rg) {\r\n var matchTxt = rg.exec(innerText);\r\n if (matchTxt && matchTxt[1]) {\r\n matchPos = theText.indexOf(matchTxt[1]);\r\n matchLen = matchTxt[1].length;\r\n }\r\n }\r\n if (matchPos !== -1) {\r\n var innerHtml = _sanitizeText(theText.substring(0, matchPos)) +\r\n \"<span class=\\\"matched-text-filter\\\">\" +\r\n _sanitizeText(theText.substring(matchPos, matchPos + matchLen)) +\r\n \"</span>\" +\r\n theText.substring(matchPos + matchLen);\r\n elm.innerHTML = innerHtml;\r\n return true;\r\n }\r\n elm.innerText = theText;\r\n return false;\r\n}\r\nvar lastSelectedElement;\r\nvar selectedObject;\r\nexport function copySelectedTree() {\r\n var toCopy = selectedObject;\r\n if (!toCopy) {\r\n return;\r\n }\r\n var textArea = document.createElement(\"textarea\");\r\n textArea.innerText = JSON.stringify(toCopy);\r\n textArea.style.opacity = \"0\";\r\n document.body.appendChild(textArea);\r\n textArea.select();\r\n document.execCommand(\"copy\");\r\n textArea.parentElement.removeChild(textArea);\r\n}\r\nexport function focusHandler(evt, target, level, excludeKeys, includeFunctions) {\r\n if (lastSelectedElement) {\r\n toggleClassName(lastSelectedElement, \" last-selected-element\");\r\n }\r\n lastSelectedElement = evt.target;\r\n for (var i = 0; i < 10; i++) {\r\n if (lastSelectedElement.tagName === \"DIV\") {\r\n break;\r\n }\r\n lastSelectedElement = lastSelectedElement.parentElement;\r\n }\r\n lastSelectedElement.className += \" last-selected-element\";\r\n selectedObject = traverseAndReplace(target, MAX_DEPTH, level, null, excludeKeys, includeFunctions);\r\n}\r\nfunction _navHandler(evt, openHandler, currentState) {\r\n var el = evt.target;\r\n switch (evt.which) {\r\n // Enter\r\n case 13:\r\n (openHandler) ? openHandler(evt) : void 0;\r\n break;\r\n // ArrowUp\r\n case 38:\r\n evt.preventDefault();\r\n var prev = el.previousElementSibling;\r\n if (prev && prev.tagName !== \"BUTTON\") {\r\n prev.focus();\r\n }\r\n break;\r\n // ArrowDown\r\n case 40:\r\n evt.preventDefault();\r\n var next = el.nextElementSibling;\r\n if (next) {\r\n next.focus();\r\n }\r\n break;\r\n // ArrowRight\r\n case 39:\r\n if (openHandler) {\r\n openHandler(evt, true);\r\n if (currentState) {\r\n el.firstElementChild.nextSibling.focus();\r\n }\r\n }\r\n break;\r\n // ArrowLeft\r\n case 37:\r\n if (openHandler) {\r\n openHandler(evt, false);\r\n }\r\n if (!currentState) {\r\n el.parentElement.focus();\r\n }\r\n break;\r\n // c\r\n case 67:\r\n if (evt.ctrlKey) {\r\n copySelectedTree();\r\n evt.target.focus();\r\n }\r\n break;\r\n }\r\n}\r\nexport function getTargetName(target) {\r\n if (target) {\r\n if (isString(target.identifier)) {\r\n return target.identifier;\r\n }\r\n if (isString(target.name)) {\r\n return target.name;\r\n }\r\n if (hasOwnProperty(target, strShimPrototype)) {\r\n // Look like a prototype\r\n return target.name || \"\";\r\n }\r\n return ((target[strConstructor]) || {}).name || \"\";\r\n }\r\n return \"\";\r\n}\r\nfunction _toString(value) {\r\n if (isString(value)) {\r\n return value;\r\n }\r\n if (isSymbol(value)) {\r\n return value.toString();\r\n }\r\n if (isFunction(value[\"toString\"])) {\r\n return value[\"toString\"]() || \"\";\r\n }\r\n return \"\";\r\n}\r\nexport function getTargetKeys(target, excludedKeys, includeFunctions) {\r\n var keys = objKeys(target);\r\n if (!Util.isArray(target)) {\r\n try {\r\n if (Object[strGetOwnPropertyNames]) {\r\n // We need to use this for built in objects such as Error which don't return their values via objKeys because they are not enumerable for example\r\n var propKeys = Object[strGetOwnPropertyNames](target);\r\n if (propKeys) {\r\n arrForEach(propKeys, function (key) {\r\n var theKey = _toString(key);\r\n if (theKey && keys.indexOf(theKey) === -1) {\r\n keys.push(key);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n catch (ex) {\r\n // getOwnPropertyNames can fail in ES5, if the argument to this method is not an object (a primitive),\r\n // then it will cause a TypeError. In ES2015, a non-object argument will be coerced to an object.\r\n }\r\n }\r\n var theKeys = [];\r\n arrForEach(keys, function (key) {\r\n if (!includeFunctions && isFunction(target[key])) {\r\n return;\r\n }\r\n var theKey = _toString(key);\r\n if (theKey && excludedKeys.indexOf(theKey) === -1) {\r\n theKeys.push(theKey);\r\n }\r\n });\r\n return theKeys;\r\n}\r\nexport function formatLogElements(target, tmLabel, key, level, textFilter, excludeKeys, thingsReferenced, includeFunctions) {\r\n var openState = false;\r\n if (!level) {\r\n level = 0;\r\n }\r\n if (!thingsReferenced) {\r\n thingsReferenced = [];\r\n }\r\n var isObj = isObject(target) || Util.isError(target);\r\n var isErr = target[\"baseType\"] === \"ExceptionData\" || Util.isError(target);\r\n var children = [];\r\n function _openNode(currentLine) {\r\n openState = true;\r\n arrForEach(children, function (child) {\r\n rootDiv.appendChild(child);\r\n });\r\n currentLine.className = \"obj-key expandable open\";\r\n }\r\n function _collapseNode(currentLine) {\r\n // rootDiv.innerHTML = '';\r\n arrForEach(children, function (child) {\r\n rootDiv.removeChild(child);\r\n });\r\n // rootDiv.appendChild(currentLine);\r\n openState = false;\r\n currentLine.className = \"obj-key expandable closed\";\r\n }\r\n var matched = false;\r\n var childOpened = false;\r\n var keys = getTargetKeys(target, excludeKeys, includeFunctions);\r\n if (keys.length === 0) {\r\n keys.push(\"<empty>\");\r\n }\r\n if (level >= MAX_DEPTH) {\r\n keys.unshift(\"<maxdepth>\");\r\n }\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var key_1 = keys_1[_i];\r\n if (excludeKeys.indexOf(key_1) !== -1) {\r\n continue;\r\n }\r\n var targetValue = target[key_1];\r\n if (isSymbol(targetValue)) {\r\n targetValue = targetValue.toString();\r\n }\r\n if (key_1 === \"<maxdepth>\") {\r\n var builder = document.createElement(\"div\");\r\n builder.className = \"empty\";\r\n builder.innerText = \"<max allowed depth reached>\";\r\n children.push(builder);\r\n break;\r\n }\r\n else if (key_1 === \"<empty>\") {\r\n var builder = document.createElement(\"div\");\r\n builder.className = \"empty\";\r\n builder.innerText = \"<empty>\";\r\n children.push(builder);\r\n }\r\n else if (targetValue !== null && arrIndexOf(thingsReferenced, targetValue) !== -1) {\r\n var builder = document.createElement(\"div\");\r\n builder.className = \"empty\";\r\n builder.innerText = \"<circular (\".concat(key_1, \") - \\\"\").concat(getTargetName(targetValue), \"\\\">\");\r\n children.push(builder);\r\n }\r\n else if (targetValue !== null && (isObject(targetValue) || Util.isError(targetValue))) {\r\n thingsReferenced.push(target);\r\n var formatted = formatLogElements(targetValue, null, key_1, level + 1, textFilter, excludeKeys, thingsReferenced, includeFunctions);\r\n thingsReferenced.pop();\r\n if (formatted.matched) {\r\n childOpened = true;\r\n }\r\n if (formatted.isErr) {\r\n isErr = true;\r\n }\r\n children.push(formatted.root);\r\n }\r\n else {\r\n var builder = document.createElement(\"div\");\r\n builder.setAttribute(\"tabindex\", \"0\");\r\n builder.onclick = function (evt) {\r\n evt.stopPropagation();\r\n };\r\n builder.ontouchend = function (evt) {\r\n evt.stopPropagation();\r\n };\r\n builder.onkeydown = function (evt) {\r\n evt.stopPropagation();\r\n _navHandler(evt);\r\n };\r\n builder.onfocus = function (evt) {\r\n focusHandler(evt, target, level, excludeKeys, includeFunctions);\r\n };\r\n var outerSpan = document.createElement(\"span\");\r\n var keySpan = document.createElement(\"span\");\r\n keySpan.className = \"key\";\r\n if (_setInnerText(keySpan, \"\".concat(key_1, \": \"), textFilter)) {\r\n childOpened = true;\r\n }\r\n outerSpan.appendChild(keySpan);\r\n var valueSpan = document.createElement(\"span\");\r\n if (isFunction(targetValue)) {\r\n var fnStr = targetValue.toString();\r\n var fnHead = fnStr.match(/^([^{]+)/)[1];\r\n valueSpan.textContent = \"\".concat(fnHead, \"{...}\");\r\n }\r\n else {\r\n if (_setInnerText(valueSpan, \"\".concat(targetValue), textFilter)) {\r\n childOpened = true;\r\n }\r\n }\r\n valueSpan.className = \"\".concat(typeof targetValue);\r\n outerSpan.appendChild(valueSpan);\r\n builder.appendChild(outerSpan);\r\n children.push(builder);\r\n }\r\n }\r\n var rootDiv = document.createElement(\"div\");\r\n var innerText = \"\";\r\n var currentLine = document.createElement(\"span\");\r\n if (isObj || children.length) {\r\n innerText = \"\".concat(key ? key : \"obj\", \": \");\r\n if (Util.isArray(target)) {\r\n innerText += \"[\".concat(getTargetKeys(target, excludeKeys, includeFunctions).length, \"]\");\r\n }\r\n else {\r\n var targetName = getTargetName(target);\r\n if (targetName) {\r\n innerText += \" <\\\"\".concat(targetName, \"\\\"> \");\r\n }\r\n innerText += \"{\".concat(getTargetKeys(target, excludeKeys, includeFunctions).length, \"}\");\r\n }\r\n matched = _setInnerText(currentLine, innerText, textFilter);\r\n if (tmLabel) {\r\n var tmWrapper = document.createElement(\"span\");\r\n var tmDetails = document.createElement(\"span\");\r\n tmDetails.className = \"obj-time\";\r\n tmDetails.innerText = tmLabel;\r\n tmWrapper.appendChild(tmDetails);\r\n tmWrapper.appendChild(currentLine);\r\n currentLine = tmWrapper;\r\n }\r\n currentLine.className = \"obj-key expandable closed\";\r\n }\r\n else {\r\n innerText = \"\".concat(key ? key : \"obj\", \": \").concat(target.toString());\r\n matched = _setInnerText(currentLine, innerText, textFilter);\r\n currentLine.className = \"obj-key\";\r\n }\r\n rootDiv.appendChild(currentLine);\r\n rootDiv.setAttribute(\"tabindex\", \"0\");\r\n if (childOpened) {\r\n // A child node matched so auto-expand\r\n _openNode(currentLine);\r\n }\r\n if (isObj) {\r\n if (isErr) {\r\n rootDiv.className = \"exception\";\r\n }\r\n var openHandler_1 = function (evt, forceState) {\r\n evt.stopPropagation();\r\n if (Util.getIEVersion()) {\r\n focusHandler(evt, target, level, excludeKeys, includeFunctions);\r\n }\r\n if (forceState !== undefined && openState === forceState) {\r\n return;\r\n }\r\n if (lastSelectedElement === rootDiv) {\r\n if (openState) {\r\n _collapseNode(currentLine);\r\n }\r\n else {\r\n _openNode(currentLine);\r\n }\r\n }\r\n };\r\n rootDiv.onkeydown = function (evt) {\r\n _navHandler(evt, openHandler_1, openState);\r\n };\r\n rootDiv.onclick = function (evt) {\r\n openHandler_1(evt);\r\n };\r\n rootDiv.ontouchend = function (evt) {\r\n openHandler_1(evt);\r\n };\r\n rootDiv.onfocus = function (evt) {\r\n focusHandler(evt, target, level, excludeKeys, includeFunctions);\r\n };\r\n }\r\n return {\r\n root: rootDiv,\r\n isErr: isErr,\r\n matched: matched || childOpened\r\n };\r\n}\r\n//# sourceMappingURL=helpers.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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":"helpers.js.map","sources":["helpers.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, hasOwnProperty, isFunction, isObject, isString, isSymbol, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Util } from \"@microsoft/applicationinsights-common\";\r\nimport { strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nvar strConstructor = \"constructor\";\r\nvar strGetOwnPropertyNames = \"getOwnPropertyNames\";\r\nexport var MAX_DEPTH = 16;\r\nexport function makeRegex(value) {\r\n if (value && value.length > 0) {\r\n // Escape any slashes first!\r\n value = value.replace(/\\\\/g, \"\\\\\\\\\");\r\n // eslint-disable-next-line security/detect-non-literal-regexp\r\n value = value.replace(/([\\+\\?\\|\\{\\}\\[\\]\\(\\)\\^\\$\\#\\.\\=\\!\\:\\/])/g, \"\\\\$1\");\r\n value = value.replace(/\\*/g, \".*\");\r\n return new RegExp(\"(\" + value + \")\");\r\n }\r\n return null;\r\n}\r\nexport function toggleClassName(el, className) {\r\n var idx = el.className.indexOf(className);\r\n if (idx === -1) {\r\n el.className += className;\r\n }\r\n else {\r\n el.className = el.className.substring(0, idx) + el.className.substring(idx + className.length);\r\n }\r\n}\r\nexport function traverseAndReplace(target, maxDepth, currentDepth, thingsReferenced, excludedKeys, includeFunctions) {\r\n var out = {};\r\n if (!thingsReferenced) {\r\n thingsReferenced = [];\r\n }\r\n if (isObject(target)) {\r\n for (var _i = 0, _a = getTargetKeys(target, excludedKeys, includeFunctions); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n var targetValue = target[key];\r\n if (isSymbol(targetValue)) {\r\n targetValue = targetValue.toString();\r\n }\r\n if (targetValue !== null && arrIndexOf(thingsReferenced, targetValue) !== -1) {\r\n out[key] = \"<circular (\".concat(key, \" - \\\"\").concat(getTargetName(targetValue), \"\\\")>\");\r\n }\r\n else if (targetValue !== null && isObject(targetValue)) {\r\n if (currentDepth >= maxDepth) {\r\n out[key] = \"<max allowed depth reached>\";\r\n }\r\n else {\r\n thingsReferenced.push(target);\r\n out[key] = traverseAndReplace(targetValue, maxDepth, currentDepth + 1, thingsReferenced, excludedKeys, includeFunctions);\r\n thingsReferenced.pop();\r\n }\r\n }\r\n else {\r\n out[key] = targetValue;\r\n }\r\n }\r\n }\r\n return out;\r\n}\r\nfunction _sanitizeText(value) {\r\n if (value) {\r\n value = value.replace(/&/g, \"&\");\r\n value = value.replace(/>/g, \">\");\r\n value = value.replace(/</g, \"<\");\r\n }\r\n return value;\r\n}\r\nfunction _setInnerText(elm, theText, textFilter) {\r\n var innerText = theText;\r\n var matchPos = -1;\r\n var matchLen = 0;\r\n var rg = makeRegex(textFilter);\r\n if (rg) {\r\n var matchTxt = rg.exec(innerText);\r\n if (matchTxt && matchTxt[1]) {\r\n matchPos = theText.indexOf(matchTxt[1]);\r\n matchLen = matchTxt[1].length;\r\n }\r\n }\r\n if (matchPos !== -1) {\r\n var innerHtml = _sanitizeText(theText.substring(0, matchPos)) +\r\n \"<span class=\\\"matched-text-filter\\\">\" +\r\n _sanitizeText(theText.substring(matchPos, matchPos + matchLen)) +\r\n \"</span>\" +\r\n theText.substring(matchPos + matchLen);\r\n elm.innerHTML = innerHtml;\r\n return true;\r\n }\r\n elm.innerText = theText;\r\n return false;\r\n}\r\nvar lastSelectedElement;\r\nvar selectedObject;\r\nexport function copySelectedTree() {\r\n var toCopy = selectedObject;\r\n if (!toCopy) {\r\n return;\r\n }\r\n var textArea = document.createElement(\"textarea\");\r\n textArea.innerText = JSON.stringify(toCopy);\r\n textArea.style.opacity = \"0\";\r\n document.body.appendChild(textArea);\r\n textArea.select();\r\n document.execCommand(\"copy\");\r\n textArea.parentElement.removeChild(textArea);\r\n}\r\nexport function focusHandler(evt, target, level, excludeKeys, includeFunctions) {\r\n if (lastSelectedElement) {\r\n toggleClassName(lastSelectedElement, \" last-selected-element\");\r\n }\r\n lastSelectedElement = evt.target;\r\n for (var i = 0; i < 10; i++) {\r\n if (lastSelectedElement.tagName === \"DIV\") {\r\n break;\r\n }\r\n lastSelectedElement = lastSelectedElement.parentElement;\r\n }\r\n lastSelectedElement.className += \" last-selected-element\";\r\n selectedObject = traverseAndReplace(target, MAX_DEPTH, level, null, excludeKeys, includeFunctions);\r\n}\r\nfunction _navHandler(evt, openHandler, currentState) {\r\n var el = evt.target;\r\n switch (evt.which) {\r\n // Enter\r\n case 13:\r\n (openHandler) ? openHandler(evt) : void 0;\r\n break;\r\n // ArrowUp\r\n case 38:\r\n evt.preventDefault();\r\n var prev = el.previousElementSibling;\r\n if (prev && prev.tagName !== \"BUTTON\") {\r\n prev.focus();\r\n }\r\n break;\r\n // ArrowDown\r\n case 40:\r\n evt.preventDefault();\r\n var next = el.nextElementSibling;\r\n if (next) {\r\n next.focus();\r\n }\r\n break;\r\n // ArrowRight\r\n case 39:\r\n if (openHandler) {\r\n openHandler(evt, true);\r\n if (currentState) {\r\n el.firstElementChild.nextSibling.focus();\r\n }\r\n }\r\n break;\r\n // ArrowLeft\r\n case 37:\r\n if (openHandler) {\r\n openHandler(evt, false);\r\n }\r\n if (!currentState) {\r\n el.parentElement.focus();\r\n }\r\n break;\r\n // c\r\n case 67:\r\n if (evt.ctrlKey) {\r\n copySelectedTree();\r\n evt.target.focus();\r\n }\r\n break;\r\n }\r\n}\r\nexport function getTargetName(target) {\r\n if (target) {\r\n if (isString(target.identifier)) {\r\n return target.identifier;\r\n }\r\n if (isString(target.name)) {\r\n return target.name;\r\n }\r\n if (hasOwnProperty(target, strShimPrototype)) {\r\n // Look like a prototype\r\n return target.name || \"\";\r\n }\r\n return ((target[strConstructor]) || {}).name || \"\";\r\n }\r\n return \"\";\r\n}\r\nfunction _toString(value) {\r\n if (isString(value)) {\r\n return value;\r\n }\r\n if (isSymbol(value)) {\r\n return value.toString();\r\n }\r\n if (isFunction(value[\"toString\"])) {\r\n return value[\"toString\"]() || \"\";\r\n }\r\n return \"\";\r\n}\r\nexport function getTargetKeys(target, excludedKeys, includeFunctions) {\r\n var keys = objKeys(target);\r\n if (!Util.isArray(target)) {\r\n try {\r\n if (Object[strGetOwnPropertyNames]) {\r\n // We need to use this for built in objects such as Error which don't return their values via objKeys because they are not enumerable for example\r\n var propKeys = Object[strGetOwnPropertyNames](target);\r\n if (propKeys) {\r\n arrForEach(propKeys, function (key) {\r\n var theKey = _toString(key);\r\n if (theKey && keys.indexOf(theKey) === -1) {\r\n keys.push(key);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n catch (ex) {\r\n // getOwnPropertyNames can fail in ES5, if the argument to this method is not an object (a primitive),\r\n // then it will cause a TypeError. In ES2015, a non-object argument will be coerced to an object.\r\n }\r\n }\r\n var theKeys = [];\r\n arrForEach(keys, function (key) {\r\n if (!includeFunctions && isFunction(target[key])) {\r\n return;\r\n }\r\n var theKey = _toString(key);\r\n if (theKey && excludedKeys.indexOf(theKey) === -1) {\r\n theKeys.push(theKey);\r\n }\r\n });\r\n return theKeys;\r\n}\r\nexport function formatLogElements(target, tmLabel, key, level, textFilter, excludeKeys, thingsReferenced, includeFunctions) {\r\n var openState = false;\r\n if (!level) {\r\n level = 0;\r\n }\r\n if (!thingsReferenced) {\r\n thingsReferenced = [];\r\n }\r\n var isObj = isObject(target) || Util.isError(target);\r\n var isErr = target[\"baseType\"] === \"ExceptionData\" || Util.isError(target);\r\n var children = [];\r\n function _openNode(currentLine) {\r\n openState = true;\r\n arrForEach(children, function (child) {\r\n rootDiv.appendChild(child);\r\n });\r\n currentLine.className = \"obj-key expandable open\";\r\n }\r\n function _collapseNode(currentLine) {\r\n // rootDiv.innerHTML = '';\r\n arrForEach(children, function (child) {\r\n rootDiv.removeChild(child);\r\n });\r\n // rootDiv.appendChild(currentLine);\r\n openState = false;\r\n currentLine.className = \"obj-key expandable closed\";\r\n }\r\n var matched = false;\r\n var childOpened = false;\r\n var keys = getTargetKeys(target, excludeKeys, includeFunctions);\r\n if (keys.length === 0) {\r\n keys.push(\"<empty>\");\r\n }\r\n if (level >= MAX_DEPTH) {\r\n keys.unshift(\"<maxdepth>\");\r\n }\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var key_1 = keys_1[_i];\r\n if (excludeKeys.indexOf(key_1) !== -1) {\r\n continue;\r\n }\r\n var targetValue = target[key_1];\r\n if (isSymbol(targetValue)) {\r\n targetValue = targetValue.toString();\r\n }\r\n if (key_1 === \"<maxdepth>\") {\r\n var builder = document.createElement(\"div\");\r\n builder.className = \"empty\";\r\n builder.innerText = \"<max allowed depth reached>\";\r\n children.push(builder);\r\n break;\r\n }\r\n else if (key_1 === \"<empty>\") {\r\n var builder = document.createElement(\"div\");\r\n builder.className = \"empty\";\r\n builder.innerText = \"<empty>\";\r\n children.push(builder);\r\n }\r\n else if (targetValue !== null && arrIndexOf(thingsReferenced, targetValue) !== -1) {\r\n var builder = document.createElement(\"div\");\r\n builder.className = \"empty\";\r\n builder.innerText = \"<circular (\".concat(key_1, \") - \\\"\").concat(getTargetName(targetValue), \"\\\">\");\r\n children.push(builder);\r\n }\r\n else if (targetValue !== null && (isObject(targetValue) || Util.isError(targetValue))) {\r\n thingsReferenced.push(target);\r\n var formatted = formatLogElements(targetValue, null, key_1, level + 1, textFilter, excludeKeys, thingsReferenced, includeFunctions);\r\n thingsReferenced.pop();\r\n if (formatted.matched) {\r\n childOpened = true;\r\n }\r\n if (formatted.isErr) {\r\n isErr = true;\r\n }\r\n children.push(formatted.root);\r\n }\r\n else {\r\n var builder = document.createElement(\"div\");\r\n builder.setAttribute(\"tabindex\", \"0\");\r\n builder.onclick = function (evt) {\r\n evt.stopPropagation();\r\n };\r\n builder.ontouchend = function (evt) {\r\n evt.stopPropagation();\r\n };\r\n builder.onkeydown = function (evt) {\r\n evt.stopPropagation();\r\n _navHandler(evt);\r\n };\r\n builder.onfocus = function (evt) {\r\n focusHandler(evt, target, level, excludeKeys, includeFunctions);\r\n };\r\n var outerSpan = document.createElement(\"span\");\r\n var keySpan = document.createElement(\"span\");\r\n keySpan.className = \"key\";\r\n if (_setInnerText(keySpan, \"\".concat(key_1, \": \"), textFilter)) {\r\n childOpened = true;\r\n }\r\n outerSpan.appendChild(keySpan);\r\n var valueSpan = document.createElement(\"span\");\r\n if (isFunction(targetValue)) {\r\n var fnStr = targetValue.toString();\r\n var fnHead = fnStr.match(/^([^{]+)/)[1];\r\n valueSpan.textContent = \"\".concat(fnHead, \"{...}\");\r\n }\r\n else {\r\n if (_setInnerText(valueSpan, \"\".concat(targetValue), textFilter)) {\r\n childOpened = true;\r\n }\r\n }\r\n valueSpan.className = \"\".concat(typeof targetValue);\r\n outerSpan.appendChild(valueSpan);\r\n builder.appendChild(outerSpan);\r\n children.push(builder);\r\n }\r\n }\r\n var rootDiv = document.createElement(\"div\");\r\n var innerText = \"\";\r\n var currentLine = document.createElement(\"span\");\r\n if (isObj || children.length) {\r\n innerText = \"\".concat(key ? key : \"obj\", \": \");\r\n if (Util.isArray(target)) {\r\n innerText += \"[\".concat(getTargetKeys(target, excludeKeys, includeFunctions).length, \"]\");\r\n }\r\n else {\r\n var targetName = getTargetName(target);\r\n if (targetName) {\r\n innerText += \" <\\\"\".concat(targetName, \"\\\"> \");\r\n }\r\n innerText += \"{\".concat(getTargetKeys(target, excludeKeys, includeFunctions).length, \"}\");\r\n }\r\n matched = _setInnerText(currentLine, innerText, textFilter);\r\n if (tmLabel) {\r\n var tmWrapper = document.createElement(\"span\");\r\n var tmDetails = document.createElement(\"span\");\r\n tmDetails.className = \"obj-time\";\r\n tmDetails.innerText = tmLabel;\r\n tmWrapper.appendChild(tmDetails);\r\n tmWrapper.appendChild(currentLine);\r\n currentLine = tmWrapper;\r\n }\r\n currentLine.className = \"obj-key expandable closed\";\r\n }\r\n else {\r\n innerText = \"\".concat(key ? key : \"obj\", \": \").concat(target.toString());\r\n matched = _setInnerText(currentLine, innerText, textFilter);\r\n currentLine.className = \"obj-key\";\r\n }\r\n rootDiv.appendChild(currentLine);\r\n rootDiv.setAttribute(\"tabindex\", \"0\");\r\n if (childOpened) {\r\n // A child node matched so auto-expand\r\n _openNode(currentLine);\r\n }\r\n if (isObj) {\r\n if (isErr) {\r\n rootDiv.className = \"exception\";\r\n }\r\n var openHandler_1 = function (evt, forceState) {\r\n evt.stopPropagation();\r\n if (Util.getIEVersion()) {\r\n focusHandler(evt, target, level, excludeKeys, includeFunctions);\r\n }\r\n if (forceState !== undefined && openState === forceState) {\r\n return;\r\n }\r\n if (lastSelectedElement === rootDiv) {\r\n if (openState) {\r\n _collapseNode(currentLine);\r\n }\r\n else {\r\n _openNode(currentLine);\r\n }\r\n }\r\n };\r\n rootDiv.onkeydown = function (evt) {\r\n _navHandler(evt, openHandler_1, openState);\r\n };\r\n rootDiv.onclick = function (evt) {\r\n openHandler_1(evt);\r\n };\r\n rootDiv.ontouchend = function (evt) {\r\n openHandler_1(evt);\r\n };\r\n rootDiv.onfocus = function (evt) {\r\n focusHandler(evt, target, level, excludeKeys, includeFunctions);\r\n };\r\n }\r\n return {\r\n root: rootDiv,\r\n isErr: isErr,\r\n matched: matched || childOpened\r\n };\r\n}\r\n//# sourceMappingURL=helpers.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/applicationinsights-debugplugin-js",
|
|
3
|
-
"version": "2.7.2-nightly.2111-
|
|
3
|
+
"version": "2.7.2-nightly.2111-15",
|
|
4
4
|
"description": "Microsoft Application Insights JavaScript SDK - Debug Plugin extension",
|
|
5
5
|
"homepage": "https://github.com/microsoft/ApplicationInsights-JS#readme",
|
|
6
6
|
"author": "Microsoft Application Insights Team",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@microsoft/dynamicproto-js": "^1.1.4",
|
|
49
|
-
"@microsoft/applicationinsights-common": "2.7.2-nightly.2111-
|
|
50
|
-
"@microsoft/applicationinsights-core-js": "2.7.2-nightly.2111-
|
|
49
|
+
"@microsoft/applicationinsights-common": "2.7.2-nightly.2111-15",
|
|
50
|
+
"@microsoft/applicationinsights-core-js": "2.7.2-nightly.2111-15",
|
|
51
51
|
"@microsoft/applicationinsights-shims": "2.0.0"
|
|
52
52
|
},
|
|
53
53
|
"license": "MIT",
|
package/src/DebugPlugin.ts
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
import {
|
|
5
5
|
BaseTelemetryPlugin, IConfiguration, arrForEach,
|
|
6
6
|
IAppInsightsCore, IPlugin, ITelemetryItem, IProcessTelemetryContext, _InternalLogMessage, _InternalMessageId,
|
|
7
|
-
ITelemetryPluginChain, InstrumentFunc, IInstrumentCallDetails, InstrumentorHooksCallback, IPerfEvent, IChannelControls,
|
|
7
|
+
ITelemetryPluginChain, InstrumentFunc, IInstrumentCallDetails, InstrumentorHooksCallback, IPerfEvent, IChannelControls,
|
|
8
|
+
objForEachKey, isFunction, dateNow, isArray, isUndefined, getDebugExt
|
|
8
9
|
} from "@microsoft/applicationinsights-core-js";
|
|
9
10
|
import { Dashboard } from "./components/Dashboard";
|
|
10
11
|
import { getTargetName } from "./components/helpers";
|
|
@@ -319,6 +320,15 @@ export default class DebugPlugin extends BaseTelemetryPlugin {
|
|
|
319
320
|
return evtPrefix;
|
|
320
321
|
}
|
|
321
322
|
|
|
323
|
+
function _logEntry(theEvent: any, evtName: string, kind: string) {
|
|
324
|
+
dashboard.newLogEntry(theEvent, dateNow() - startTime, evtName, 0, kind);
|
|
325
|
+
|
|
326
|
+
let dbgExt = getDebugExt(_self.core.config);
|
|
327
|
+
if (dbgExt && dbgExt.debugMsg) {
|
|
328
|
+
dbgExt.debugMsg(evtName, theEvent);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
322
332
|
function _handleInstPreHook() {
|
|
323
333
|
return (funcArgs: IInstrumentCallDetails, ...orgArgs: any[]) => {
|
|
324
334
|
(debugBins[funcArgs.name] || debugBins.default).increment();
|
|
@@ -327,7 +337,8 @@ export default class DebugPlugin extends BaseTelemetryPlugin {
|
|
|
327
337
|
}
|
|
328
338
|
|
|
329
339
|
let evtPrefix = _getEvtPrefix(funcArgs);
|
|
330
|
-
|
|
340
|
+
_logEntry(_createInstrumentObject(funcArgs, orgArgs), evtPrefix, funcArgs.name);
|
|
341
|
+
|
|
331
342
|
if (_theConfig.dumpToConsole() && console && console.log) {
|
|
332
343
|
console.log(`[${evtPrefix}] preProcess - funcArgs: `, funcArgs);
|
|
333
344
|
console.log(`[${evtPrefix}] preProcess - orgArgs: `, orgArgs);
|
|
@@ -345,7 +356,8 @@ export default class DebugPlugin extends BaseTelemetryPlugin {
|
|
|
345
356
|
}
|
|
346
357
|
|
|
347
358
|
// The called function threw an exception
|
|
348
|
-
|
|
359
|
+
_logEntry(_createInstrumentObject(funcArgs, orgArgs), evtPrefix, funcArgs.name);
|
|
360
|
+
|
|
349
361
|
if (_theConfig.dumpToConsole() && console && console.log) {
|
|
350
362
|
console.log(`[${evtPrefix}] complete`);
|
|
351
363
|
}
|
|
@@ -359,8 +371,9 @@ export default class DebugPlugin extends BaseTelemetryPlugin {
|
|
|
359
371
|
}
|
|
360
372
|
|
|
361
373
|
if (!debugBins["processTelemetry"] && _theConfig.logProcessTelemetry() === true) {
|
|
362
|
-
|
|
374
|
+
_logEntry(event, `[${_self.identifier}:processTelemetry[${event.baseType}]`, "processTelemetry");
|
|
363
375
|
}
|
|
376
|
+
|
|
364
377
|
_self.processNext(event, itemCtx);
|
|
365
378
|
}
|
|
366
379
|
});
|
|
@@ -12,13 +12,14 @@ export const MAX_DEPTH = 16;
|
|
|
12
12
|
|
|
13
13
|
export function makeRegex(value: string) {
|
|
14
14
|
if (value && value.length > 0) {
|
|
15
|
+
// Escape any slashes first!
|
|
15
16
|
value = value.replace(/\\/g, "\\\\");
|
|
16
17
|
// eslint-disable-next-line security/detect-non-literal-regexp
|
|
17
|
-
value = value.replace(/([\+\?\|\{\[\(\)
|
|
18
|
+
value = value.replace(/([\+\?\|\{\}\[\]\(\)\^\$\#\.\=\!\:\/])/g, "\\$1");
|
|
18
19
|
value = value.replace(/\*/g, ".*");
|
|
19
20
|
return new RegExp("(" + value + ")");
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
+
|
|
22
23
|
return null;
|
|
23
24
|
}
|
|
24
25
|
|