@cloudcare/browser-core 3.2.48 → 3.2.51
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/cjs/console/consoleObservable.js +17 -11
- package/cjs/console/consoleObservable.js.map +1 -1
- package/cjs/helper/errorTools.js +12 -7
- package/cjs/helper/errorTools.js.map +1 -1
- package/cjs/helper/monitor.js +11 -7
- package/cjs/helper/monitor.js.map +1 -1
- package/esm/console/consoleObservable.js +19 -13
- package/esm/console/consoleObservable.js.map +1 -1
- package/esm/helper/errorTools.js +11 -7
- package/esm/helper/errorTools.js.map +1 -1
- package/esm/helper/monitor.js +10 -7
- package/esm/helper/monitor.js.map +1 -1
- package/package.json +2 -2
- package/src/console/consoleObservable.js +20 -18
- package/src/helper/errorTools.js +22 -12
- package/src/helper/monitor.js +10 -8
|
@@ -13,6 +13,7 @@ var _jsonStringify = require("../helper/serialisation/jsonStringify");
|
|
|
13
13
|
var _display = require("../helper/display");
|
|
14
14
|
var _monitor = require("../helper/monitor");
|
|
15
15
|
var _enums = require("../helper/enums");
|
|
16
|
+
var _sanitize = require("../helper/sanitize");
|
|
16
17
|
var consoleObservablesByApi = {};
|
|
17
18
|
function initConsoleObservable(apis) {
|
|
18
19
|
var consoleObservables = (0, _tools.map)(apis, function (api) {
|
|
@@ -47,35 +48,40 @@ function buildConsoleLog(params, api, handlingStack) {
|
|
|
47
48
|
var message = (0, _tools.map)(params, function (param) {
|
|
48
49
|
return formatConsoleParameters(param);
|
|
49
50
|
}).join(' ');
|
|
50
|
-
var error;
|
|
51
51
|
if (api === _display.ConsoleApiName.error) {
|
|
52
|
-
var firstErrorParam = (0, _tools.find)(params,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
error = {
|
|
56
|
-
stack: firstErrorParam ? (0, _errorTools.toStackTraceString)((0, _tracekit.computeStackTrace)(firstErrorParam)) : undefined,
|
|
57
|
-
causes: firstErrorParam ? (0, _errorTools.flattenErrorCauses)(firstErrorParam, 'console') : undefined,
|
|
52
|
+
var firstErrorParam = (0, _tools.find)(params, _errorTools.isError);
|
|
53
|
+
var rawError = (0, _errorTools.computeRawError)({
|
|
54
|
+
originalError: firstErrorParam,
|
|
58
55
|
startClocks: (0, _tools.clocksNow)(),
|
|
59
56
|
message: message,
|
|
60
57
|
source: _errorTools.ErrorSource.CONSOLE,
|
|
61
58
|
handling: _enums.ErrorHandling.HANDLED,
|
|
59
|
+
handlingStack: handlingStack,
|
|
60
|
+
nonErrorPrefix: _enums.NonErrorPrefix.PROVIDED,
|
|
61
|
+
useFallbackStack: false
|
|
62
|
+
});
|
|
63
|
+
rawError.message = message;
|
|
64
|
+
return {
|
|
65
|
+
api: api,
|
|
66
|
+
message: message,
|
|
67
|
+
error: rawError,
|
|
62
68
|
handlingStack: handlingStack
|
|
63
69
|
};
|
|
64
70
|
}
|
|
65
71
|
return {
|
|
66
72
|
api: api,
|
|
67
73
|
message: message,
|
|
68
|
-
error:
|
|
74
|
+
error: undefined,
|
|
69
75
|
handlingStack: handlingStack
|
|
70
76
|
};
|
|
71
77
|
}
|
|
72
78
|
function formatConsoleParameters(param) {
|
|
73
79
|
if (typeof param === 'string') {
|
|
74
|
-
return param;
|
|
80
|
+
return (0, _sanitize.sanitize)(param);
|
|
75
81
|
}
|
|
76
|
-
if (
|
|
82
|
+
if ((0, _errorTools.isError)(param)) {
|
|
77
83
|
return (0, _errorTools.formatErrorMessage)((0, _tracekit.computeStackTrace)(param));
|
|
78
84
|
}
|
|
79
|
-
return (0, _jsonStringify.jsonStringify)(param, undefined, 2);
|
|
85
|
+
return (0, _jsonStringify.jsonStringify)((0, _sanitize.sanitize)(param), undefined, 2);
|
|
80
86
|
}
|
|
81
87
|
//# sourceMappingURL=consoleObservable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleObservable.js","names":["_tracekit","require","_errorTools","_observable","_tools","_jsonStringify","_display","_monitor","_enums","consoleObservablesByApi","initConsoleObservable","apis","consoleObservables","map","api","createConsoleObservable","mergeObservables","apply","resetConsoleObservable","Observable","observable","originalConsoleApi","console","params","slice","call","arguments","handlingStack","createHandlingStack","callMonitored","notify","buildConsoleLog","message","param","formatConsoleParameters","join","
|
|
1
|
+
{"version":3,"file":"consoleObservable.js","names":["_tracekit","require","_errorTools","_observable","_tools","_jsonStringify","_display","_monitor","_enums","_sanitize","consoleObservablesByApi","initConsoleObservable","apis","consoleObservables","map","api","createConsoleObservable","mergeObservables","apply","resetConsoleObservable","Observable","observable","originalConsoleApi","console","params","slice","call","arguments","handlingStack","createHandlingStack","callMonitored","notify","buildConsoleLog","message","param","formatConsoleParameters","join","ConsoleApiName","error","firstErrorParam","find","isError","rawError","computeRawError","originalError","startClocks","clocksNow","source","ErrorSource","CONSOLE","handling","ErrorHandling","HANDLED","nonErrorPrefix","NonErrorPrefix","PROVIDED","useFallbackStack","undefined","sanitize","formatErrorMessage","computeStackTrace","jsonStringify"],"sources":["../../src/console/consoleObservable.js"],"sourcesContent":["import { computeStackTrace } from '../tracekit'\nimport {\n createHandlingStack,\n formatErrorMessage,\n computeRawError,\n isError\n} from '../helper/errorTools'\nimport { mergeObservables, Observable } from '../helper/observable'\nimport { find, map, clocksNow } from '../helper/tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { ConsoleApiName } from '../helper/display'\nimport { callMonitored } from '../helper/monitor'\nimport { ErrorHandling, NonErrorPrefix } from '../helper/enums'\nimport { ErrorSource } from '../helper/errorTools'\nimport { sanitize } from '../helper/sanitize'\nvar consoleObservablesByApi = {}\n\nexport function initConsoleObservable(apis) {\n var consoleObservables = map(apis, function (api) {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api)\n }\n return consoleObservablesByApi[api]\n })\n\n return mergeObservables.apply(this, consoleObservables)\n}\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {}\n}\n/* eslint-disable no-console */\nfunction createConsoleObservable(api) {\n return new Observable(function (observable) {\n var originalConsoleApi = console[api]\n console[api] = function () {\n var params = [].slice.call(arguments)\n originalConsoleApi.apply(console, arguments)\n var handlingStack = createHandlingStack()\n callMonitored(function () {\n observable.notify(buildConsoleLog(params, api, handlingStack))\n })\n }\n return function () {\n console[api] = originalConsoleApi\n }\n })\n}\n\nfunction buildConsoleLog(params, api, handlingStack) {\n var message = map(params, function (param) {\n return formatConsoleParameters(param)\n }).join(' ')\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, isError)\n const rawError = computeRawError({\n originalError: firstErrorParam,\n startClocks: clocksNow(),\n message: message,\n source: ErrorSource.CONSOLE,\n handling: ErrorHandling.HANDLED,\n handlingStack: handlingStack,\n nonErrorPrefix: NonErrorPrefix.PROVIDED,\n useFallbackStack: false\n })\n rawError.message = message\n return {\n api: api,\n message: message,\n error: rawError,\n handlingStack: handlingStack\n }\n }\n\n return {\n api: api,\n message: message,\n error: undefined,\n handlingStack: handlingStack\n }\n}\n\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param)\n }\n if (isError(param)) {\n return formatErrorMessage(computeStackTrace(param))\n }\n return jsonStringify(sanitize(param), undefined, 2)\n}\n"],"mappings":"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","ignoreList":[]}
|
package/cjs/helper/errorTools.js
CHANGED
|
@@ -10,6 +10,7 @@ exports.flattenErrorCauses = flattenErrorCauses;
|
|
|
10
10
|
exports.formatErrorMessage = formatErrorMessage;
|
|
11
11
|
exports.formatUnknownError = formatUnknownError;
|
|
12
12
|
exports.getFileFromStackTraceString = getFileFromStackTraceString;
|
|
13
|
+
exports.isError = isError;
|
|
13
14
|
exports.toStackTraceString = toStackTraceString;
|
|
14
15
|
var _tools = require("./tools");
|
|
15
16
|
var _jsonStringify = require("../helper/serialisation/jsonStringify");
|
|
@@ -34,21 +35,22 @@ function computeRawError(data) {
|
|
|
34
35
|
var nonErrorPrefix = data.nonErrorPrefix;
|
|
35
36
|
var source = data.source;
|
|
36
37
|
var handling = data.handling;
|
|
37
|
-
var
|
|
38
|
+
var useFallbackStack = data.useFallbackStack === undefined ? true : data.useFallbackStack;
|
|
39
|
+
var isErrorInstance = isError(originalError);
|
|
40
|
+
if (!stackTrace && isErrorInstance) {
|
|
41
|
+
stackTrace = (0, _tracekit.computeStackTrace)(originalError);
|
|
42
|
+
}
|
|
38
43
|
var message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError);
|
|
39
|
-
var stack = hasUsableStack(isErrorInstance, stackTrace) ? toStackTraceString(stackTrace) : NO_ERROR_STACK_PRESENT_MESSAGE;
|
|
40
|
-
var causes = isErrorInstance ? flattenErrorCauses(originalError, source) : undefined;
|
|
41
|
-
var type = stackTrace && stackTrace.name;
|
|
42
44
|
return {
|
|
43
45
|
startClocks: startClocks,
|
|
44
46
|
source: source,
|
|
45
47
|
handling: handling,
|
|
46
48
|
originalError: originalError,
|
|
47
49
|
message: message,
|
|
48
|
-
stack:
|
|
50
|
+
stack: stackTrace ? toStackTraceString(stackTrace) : useFallbackStack ? NO_ERROR_STACK_PRESENT_MESSAGE : undefined,
|
|
49
51
|
handlingStack: handlingStack,
|
|
50
|
-
type:
|
|
51
|
-
causes:
|
|
52
|
+
type: stackTrace ? stackTrace.name : undefined,
|
|
53
|
+
causes: isErrorInstance ? flattenErrorCauses(originalError, source) : undefined
|
|
52
54
|
};
|
|
53
55
|
}
|
|
54
56
|
function computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError) {
|
|
@@ -149,4 +151,7 @@ function flattenErrorCauses(error, parentSource) {
|
|
|
149
151
|
}
|
|
150
152
|
return causes.length ? causes : undefined;
|
|
151
153
|
}
|
|
154
|
+
function isError(error) {
|
|
155
|
+
return error instanceof Error || Object.prototype.toString.call(error) === '[object Error]';
|
|
156
|
+
}
|
|
152
157
|
//# sourceMappingURL=errorTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorTools.js","names":["_tools","require","_jsonStringify","_tracekit","_monitor","_sanitize","NO_ERROR_STACK_PRESENT_MESSAGE","exports","ErrorSource","AGENT","CONSOLE","NETWORK","SOURCE","LOGGER","CUSTOM","REPORT","computeRawError","data","stackTrace","originalError","handlingStack","startClocks","nonErrorPrefix","source","handling","isErrorInstance","Error","message","computeMessage","stack","hasUsableStack","toStackTraceString","causes","flattenErrorCauses","undefined","type","name","jsonStringify","sanitize","length","url","formatUnknownError","errorObject","createHandlingStack","internalFramesToSkip","error","formattedStack","e","noop","callMonitored","computeStackTrace","slice","result","formatErrorMessage","each","frame","func","args","join","line","column","getFileFromStackTraceString","execResult","exec","parentSource","currentError","cause","push"],"sources":["../../src/helper/errorTools.js"],"sourcesContent":["import { each, noop } from './tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { computeStackTrace } from '../tracekit'\nimport { callMonitored } from '../helper/monitor'\nimport { sanitize } from '../helper/sanitize'\nexport var NO_ERROR_STACK_PRESENT_MESSAGE =\n 'No stack, consider using an instance of Error'\nexport var ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n NETWORK: 'network',\n SOURCE: 'source',\n LOGGER: 'logger',\n CUSTOM: 'custom',\n REPORT: 'report'\n}\n\nexport function computeRawError(data) {\n var stackTrace = data.stackTrace\n var originalError = data.originalError\n var handlingStack = data.handlingStack\n var startClocks = data.startClocks\n var nonErrorPrefix = data.nonErrorPrefix\n var source = data.source\n var handling = data.handling\n var isErrorInstance = originalError instanceof Error\n var message = computeMessage(\n stackTrace,\n isErrorInstance,\n nonErrorPrefix,\n originalError\n )\n var stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE\n var causes = isErrorInstance\n ? flattenErrorCauses(originalError, source)\n : undefined\n var type = stackTrace && stackTrace.name\n\n return {\n startClocks: startClocks,\n source: source,\n handling: handling,\n originalError: originalError,\n message: message,\n stack: stack,\n handlingStack: handlingStack,\n type: type,\n causes: causes\n }\n}\nfunction computeMessage(\n stackTrace,\n isErrorInstance,\n nonErrorPrefix,\n originalError\n) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return stackTrace && stackTrace.message && stackTrace && stackTrace.name\n ? stackTrace.message\n : !isErrorInstance\n ? nonErrorPrefix + ' ' + jsonStringify(sanitize(originalError))\n : 'Empty message'\n}\nfunction hasUsableStack(isErrorInstance, stackTrace) {\n if (stackTrace === undefined) {\n return false\n }\n if (isErrorInstance) {\n return true\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return (\n stackTrace.stack.length > 0 &&\n (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined)\n )\n}\n\nexport function formatUnknownError(\n stackTrace,\n errorObject,\n nonErrorPrefix,\n handlingStack\n) {\n if (\n !stackTrace ||\n (stackTrace.message === undefined && !(errorObject instanceof Error))\n ) {\n return {\n message: nonErrorPrefix + '' + jsonStringify(errorObject),\n stack: 'No stack, consider using an instance of Error',\n handlingStack: handlingStack,\n type: stackTrace && stackTrace.name\n }\n }\n return {\n message: stackTrace.message || 'Empty message',\n stack: toStackTraceString(stackTrace),\n handlingStack: handlingStack,\n type: stackTrace.name\n }\n}\n/**\n Creates a stacktrace without SDK internal frames.\n \n Constraints:\n - Has to be called at the utmost position of the call stack.\n - No internal monitoring should encapsulate the function, that is why we need to use callMonitored inside of it.\n */\nexport function createHandlingStack() {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n var internalFramesToSkip = 2\n var error = new Error()\n var formattedStack\n\n // IE needs to throw the error to fill in the stack trace\n if (!error.stack) {\n try {\n throw error\n } catch (e) {\n noop()\n }\n }\n callMonitored(function () {\n var stackTrace = computeStackTrace(error)\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip)\n formattedStack = toStackTraceString(stackTrace)\n })\n\n return formattedStack\n}\nexport function toStackTraceString(stack) {\n var result = formatErrorMessage(stack)\n each(stack.stack, function (frame) {\n var func = frame.func === '?' ? '<anonymous>' : frame.func\n var args =\n frame.args && frame.args.length > 0\n ? '(' + frame.args.join(', ') + ')'\n : ''\n var line = frame.line ? ':' + frame.line : ''\n var column = frame.line && frame.column ? ':' + frame.column : ''\n result += '\\n at ' + func + args + ' @ ' + frame.url + line + column\n })\n return result\n}\nexport function formatErrorMessage(stack) {\n return (stack.name || 'Error') + ': ' + stack.message\n}\nexport function getFileFromStackTraceString(stack) {\n var execResult = /@ (.+)/.exec(stack)\n return execResult && execResult[1]\n}\nexport function flattenErrorCauses(error, parentSource) {\n var currentError = error\n var causes = []\n while (\n currentError &&\n currentError.cause instanceof Error &&\n causes.length < 10\n ) {\n var stackTrace = computeStackTrace(currentError.cause)\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace && stackTrace.name,\n stack: stackTrace && toStackTraceString(stackTrace)\n })\n currentError = currentError.cause\n }\n return causes.length ? causes : undefined\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"errorTools.js","names":["_tools","require","_jsonStringify","_tracekit","_monitor","_sanitize","NO_ERROR_STACK_PRESENT_MESSAGE","exports","ErrorSource","AGENT","CONSOLE","NETWORK","SOURCE","LOGGER","CUSTOM","REPORT","computeRawError","data","stackTrace","originalError","handlingStack","startClocks","nonErrorPrefix","source","handling","useFallbackStack","undefined","isErrorInstance","isError","computeStackTrace","message","computeMessage","stack","toStackTraceString","type","name","causes","flattenErrorCauses","jsonStringify","sanitize","hasUsableStack","length","url","formatUnknownError","errorObject","Error","createHandlingStack","internalFramesToSkip","error","formattedStack","e","noop","callMonitored","slice","result","formatErrorMessage","each","frame","func","args","join","line","column","getFileFromStackTraceString","execResult","exec","parentSource","currentError","cause","push","Object","prototype","toString","call"],"sources":["../../src/helper/errorTools.js"],"sourcesContent":["import { each, noop } from './tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { computeStackTrace } from '../tracekit'\nimport { callMonitored } from '../helper/monitor'\nimport { sanitize } from '../helper/sanitize'\nexport var NO_ERROR_STACK_PRESENT_MESSAGE =\n 'No stack, consider using an instance of Error'\nexport var ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n NETWORK: 'network',\n SOURCE: 'source',\n LOGGER: 'logger',\n CUSTOM: 'custom',\n REPORT: 'report'\n}\n\nexport function computeRawError(data) {\n var stackTrace = data.stackTrace\n var originalError = data.originalError\n var handlingStack = data.handlingStack\n var startClocks = data.startClocks\n var nonErrorPrefix = data.nonErrorPrefix\n var source = data.source\n var handling = data.handling\n var useFallbackStack =\n data.useFallbackStack === undefined ? true : data.useFallbackStack\n var isErrorInstance = isError(originalError)\n if (!stackTrace && isErrorInstance) {\n stackTrace = computeStackTrace(originalError)\n }\n var message = computeMessage(\n stackTrace,\n isErrorInstance,\n nonErrorPrefix,\n originalError\n )\n return {\n startClocks: startClocks,\n source: source,\n handling: handling,\n originalError: originalError,\n message: message,\n stack: stackTrace\n ? toStackTraceString(stackTrace)\n : useFallbackStack\n ? NO_ERROR_STACK_PRESENT_MESSAGE\n : undefined,\n handlingStack: handlingStack,\n type: stackTrace ? stackTrace.name : undefined,\n causes: isErrorInstance\n ? flattenErrorCauses(originalError, source)\n : undefined\n }\n}\nfunction computeMessage(\n stackTrace,\n isErrorInstance,\n nonErrorPrefix,\n originalError\n) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return stackTrace && stackTrace.message && stackTrace && stackTrace.name\n ? stackTrace.message\n : !isErrorInstance\n ? nonErrorPrefix + ' ' + jsonStringify(sanitize(originalError))\n : 'Empty message'\n}\nfunction hasUsableStack(isErrorInstance, stackTrace) {\n if (stackTrace === undefined) {\n return false\n }\n if (isErrorInstance) {\n return true\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return (\n stackTrace.stack.length > 0 &&\n (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined)\n )\n}\n\nexport function formatUnknownError(\n stackTrace,\n errorObject,\n nonErrorPrefix,\n handlingStack\n) {\n if (\n !stackTrace ||\n (stackTrace.message === undefined && !(errorObject instanceof Error))\n ) {\n return {\n message: nonErrorPrefix + '' + jsonStringify(errorObject),\n stack: 'No stack, consider using an instance of Error',\n handlingStack: handlingStack,\n type: stackTrace && stackTrace.name\n }\n }\n return {\n message: stackTrace.message || 'Empty message',\n stack: toStackTraceString(stackTrace),\n handlingStack: handlingStack,\n type: stackTrace.name\n }\n}\n/**\n Creates a stacktrace without SDK internal frames.\n \n Constraints:\n - Has to be called at the utmost position of the call stack.\n - No internal monitoring should encapsulate the function, that is why we need to use callMonitored inside of it.\n */\nexport function createHandlingStack() {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n var internalFramesToSkip = 2\n var error = new Error()\n var formattedStack\n\n // IE needs to throw the error to fill in the stack trace\n if (!error.stack) {\n try {\n throw error\n } catch (e) {\n noop()\n }\n }\n callMonitored(function () {\n var stackTrace = computeStackTrace(error)\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip)\n formattedStack = toStackTraceString(stackTrace)\n })\n\n return formattedStack\n}\nexport function toStackTraceString(stack) {\n var result = formatErrorMessage(stack)\n each(stack.stack, function (frame) {\n var func = frame.func === '?' ? '<anonymous>' : frame.func\n var args =\n frame.args && frame.args.length > 0\n ? '(' + frame.args.join(', ') + ')'\n : ''\n var line = frame.line ? ':' + frame.line : ''\n var column = frame.line && frame.column ? ':' + frame.column : ''\n result += '\\n at ' + func + args + ' @ ' + frame.url + line + column\n })\n return result\n}\nexport function formatErrorMessage(stack) {\n return (stack.name || 'Error') + ': ' + stack.message\n}\nexport function getFileFromStackTraceString(stack) {\n var execResult = /@ (.+)/.exec(stack)\n return execResult && execResult[1]\n}\nexport function flattenErrorCauses(error, parentSource) {\n var currentError = error\n var causes = []\n while (\n currentError &&\n currentError.cause instanceof Error &&\n causes.length < 10\n ) {\n var stackTrace = computeStackTrace(currentError.cause)\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace && stackTrace.name,\n stack: stackTrace && toStackTraceString(stackTrace)\n })\n currentError = currentError.cause\n }\n return causes.length ? causes : undefined\n}\n\nexport function isError(error) {\n return (\n error instanceof Error ||\n Object.prototype.toString.call(error) === '[object Error]'\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
package/cjs/helper/monitor.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.callMonitored = callMonitored;
|
|
7
7
|
exports.displayIfDebugEnabled = displayIfDebugEnabled;
|
|
8
8
|
exports.monitor = monitor;
|
|
9
|
+
exports.monitorError = monitorError;
|
|
9
10
|
exports.resetMonitor = resetMonitor;
|
|
10
11
|
exports.setDebugMode = setDebugMode;
|
|
11
12
|
exports.startMonitorErrorCollection = startMonitorErrorCollection;
|
|
@@ -31,13 +32,16 @@ function callMonitored(fn, context, args) {
|
|
|
31
32
|
try {
|
|
32
33
|
return fn.apply(context, args);
|
|
33
34
|
} catch (e) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
monitorError(e);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function monitorError(e) {
|
|
39
|
+
displayIfDebugEnabled(e);
|
|
40
|
+
if (onMonitorErrorCollected) {
|
|
41
|
+
try {
|
|
42
|
+
onMonitorErrorCollected(e);
|
|
43
|
+
} catch (e) {
|
|
44
|
+
displayIfDebugEnabled(e);
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.js","names":["_display","require","onMonitorErrorCollected","debugMode","startMonitorErrorCollection","newOnMonitorErrorCollected","setDebugMode","newDebugMode","resetMonitor","undefined","monitor","fn","callMonitored","arguments","context","args","apply","e","displayIfDebugEnabled","slice","call","display","error","concat"],"sources":["../../src/helper/monitor.js"],"sourcesContent":["import { ConsoleApiName, display } from './display'\nvar onMonitorErrorCollected\nvar debugMode = false\n\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected\n}\n\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode\n}\n\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined\n debugMode = false\n}\n\nexport function monitor(fn) {\n return function () {\n return callMonitored(fn, this, arguments)\n }\n}\n\nexport function callMonitored(fn, context, args) {\n try {\n return fn.apply(context, args)\n } catch (e) {\n displayIfDebugEnabled(e)\n
|
|
1
|
+
{"version":3,"file":"monitor.js","names":["_display","require","onMonitorErrorCollected","debugMode","startMonitorErrorCollection","newOnMonitorErrorCollected","setDebugMode","newDebugMode","resetMonitor","undefined","monitor","fn","callMonitored","arguments","context","args","apply","e","monitorError","displayIfDebugEnabled","slice","call","display","error","concat"],"sources":["../../src/helper/monitor.js"],"sourcesContent":["import { ConsoleApiName, display } from './display'\nvar onMonitorErrorCollected\nvar debugMode = false\n\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected\n}\n\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode\n}\n\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined\n debugMode = false\n}\n\nexport function monitor(fn) {\n return function () {\n return callMonitored(fn, this, arguments)\n }\n}\n\nexport function callMonitored(fn, context, args) {\n try {\n return fn.apply(context, args)\n } catch (e) {\n monitorError(e)\n }\n}\nexport function monitorError(e) {\n displayIfDebugEnabled(e)\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e)\n } catch (e) {\n displayIfDebugEnabled(e)\n }\n }\n}\nexport function displayIfDebugEnabled() {\n var args = [].slice.call(arguments)\n // display.error.apply(null, ['[MONITOR]'].concat(args))\n if (debugMode) {\n display.error.apply(null, ['[MONITOR]'].concat(args))\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAIC,uBAAuB;AAC3B,IAAIC,SAAS,GAAG,KAAK;AAEd,SAASC,2BAA2BA,CAACC,0BAA0B,EAAE;EACtEH,uBAAuB,GAAGG,0BAA0B;AACtD;AAEO,SAASC,YAAYA,CAACC,YAAY,EAAE;EACzCJ,SAAS,GAAGI,YAAY;AAC1B;AAEO,SAASC,YAAYA,CAAA,EAAG;EAC7BN,uBAAuB,GAAGO,SAAS;EACnCN,SAAS,GAAG,KAAK;AACnB;AAEO,SAASO,OAAOA,CAACC,EAAE,EAAE;EAC1B,OAAO,YAAY;IACjB,OAAOC,aAAa,CAACD,EAAE,EAAE,IAAI,EAAEE,SAAS,CAAC;EAC3C,CAAC;AACH;AAEO,SAASD,aAAaA,CAACD,EAAE,EAAEG,OAAO,EAAEC,IAAI,EAAE;EAC/C,IAAI;IACF,OAAOJ,EAAE,CAACK,KAAK,CAACF,OAAO,EAAEC,IAAI,CAAC;EAChC,CAAC,CAAC,OAAOE,CAAC,EAAE;IACVC,YAAY,CAACD,CAAC,CAAC;EACjB;AACF;AACO,SAASC,YAAYA,CAACD,CAAC,EAAE;EAC9BE,qBAAqB,CAACF,CAAC,CAAC;EACxB,IAAIf,uBAAuB,EAAE;IAC3B,IAAI;MACFA,uBAAuB,CAACe,CAAC,CAAC;IAC5B,CAAC,CAAC,OAAOA,CAAC,EAAE;MACVE,qBAAqB,CAACF,CAAC,CAAC;IAC1B;EACF;AACF;AACO,SAASE,qBAAqBA,CAAA,EAAG;EACtC,IAAIJ,IAAI,GAAG,EAAE,CAACK,KAAK,CAACC,IAAI,CAACR,SAAS,CAAC;EACnC;EACA,IAAIV,SAAS,EAAE;IACbmB,gBAAO,CAACC,KAAK,CAACP,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAACQ,MAAM,CAACT,IAAI,CAAC,CAAC;EACvD;AACF","ignoreList":[]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { computeStackTrace } from '../tracekit';
|
|
2
|
-
import { createHandlingStack, formatErrorMessage,
|
|
2
|
+
import { createHandlingStack, formatErrorMessage, computeRawError, isError } from '../helper/errorTools';
|
|
3
3
|
import { mergeObservables, Observable } from '../helper/observable';
|
|
4
4
|
import { find, map, clocksNow } from '../helper/tools';
|
|
5
5
|
import { jsonStringify } from '../helper/serialisation/jsonStringify';
|
|
6
6
|
import { ConsoleApiName } from '../helper/display';
|
|
7
7
|
import { callMonitored } from '../helper/monitor';
|
|
8
|
-
import { ErrorHandling } from '../helper/enums';
|
|
8
|
+
import { ErrorHandling, NonErrorPrefix } from '../helper/enums';
|
|
9
9
|
import { ErrorSource } from '../helper/errorTools';
|
|
10
|
+
import { sanitize } from '../helper/sanitize';
|
|
10
11
|
var consoleObservablesByApi = {};
|
|
11
12
|
export function initConsoleObservable(apis) {
|
|
12
13
|
var consoleObservables = map(apis, function (api) {
|
|
@@ -41,35 +42,40 @@ function buildConsoleLog(params, api, handlingStack) {
|
|
|
41
42
|
var message = map(params, function (param) {
|
|
42
43
|
return formatConsoleParameters(param);
|
|
43
44
|
}).join(' ');
|
|
44
|
-
var error;
|
|
45
45
|
if (api === ConsoleApiName.error) {
|
|
46
|
-
var firstErrorParam = find(params,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
error = {
|
|
50
|
-
stack: firstErrorParam ? toStackTraceString(computeStackTrace(firstErrorParam)) : undefined,
|
|
51
|
-
causes: firstErrorParam ? flattenErrorCauses(firstErrorParam, 'console') : undefined,
|
|
46
|
+
var firstErrorParam = find(params, isError);
|
|
47
|
+
var rawError = computeRawError({
|
|
48
|
+
originalError: firstErrorParam,
|
|
52
49
|
startClocks: clocksNow(),
|
|
53
50
|
message: message,
|
|
54
51
|
source: ErrorSource.CONSOLE,
|
|
55
52
|
handling: ErrorHandling.HANDLED,
|
|
53
|
+
handlingStack: handlingStack,
|
|
54
|
+
nonErrorPrefix: NonErrorPrefix.PROVIDED,
|
|
55
|
+
useFallbackStack: false
|
|
56
|
+
});
|
|
57
|
+
rawError.message = message;
|
|
58
|
+
return {
|
|
59
|
+
api: api,
|
|
60
|
+
message: message,
|
|
61
|
+
error: rawError,
|
|
56
62
|
handlingStack: handlingStack
|
|
57
63
|
};
|
|
58
64
|
}
|
|
59
65
|
return {
|
|
60
66
|
api: api,
|
|
61
67
|
message: message,
|
|
62
|
-
error:
|
|
68
|
+
error: undefined,
|
|
63
69
|
handlingStack: handlingStack
|
|
64
70
|
};
|
|
65
71
|
}
|
|
66
72
|
function formatConsoleParameters(param) {
|
|
67
73
|
if (typeof param === 'string') {
|
|
68
|
-
return param;
|
|
74
|
+
return sanitize(param);
|
|
69
75
|
}
|
|
70
|
-
if (param
|
|
76
|
+
if (isError(param)) {
|
|
71
77
|
return formatErrorMessage(computeStackTrace(param));
|
|
72
78
|
}
|
|
73
|
-
return jsonStringify(param, undefined, 2);
|
|
79
|
+
return jsonStringify(sanitize(param), undefined, 2);
|
|
74
80
|
}
|
|
75
81
|
//# sourceMappingURL=consoleObservable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleObservable.js","names":["computeStackTrace","createHandlingStack","formatErrorMessage","
|
|
1
|
+
{"version":3,"file":"consoleObservable.js","names":["computeStackTrace","createHandlingStack","formatErrorMessage","computeRawError","isError","mergeObservables","Observable","find","map","clocksNow","jsonStringify","ConsoleApiName","callMonitored","ErrorHandling","NonErrorPrefix","ErrorSource","sanitize","consoleObservablesByApi","initConsoleObservable","apis","consoleObservables","api","createConsoleObservable","apply","resetConsoleObservable","observable","originalConsoleApi","console","params","slice","call","arguments","handlingStack","notify","buildConsoleLog","message","param","formatConsoleParameters","join","error","firstErrorParam","rawError","originalError","startClocks","source","CONSOLE","handling","HANDLED","nonErrorPrefix","PROVIDED","useFallbackStack","undefined"],"sources":["../../src/console/consoleObservable.js"],"sourcesContent":["import { computeStackTrace } from '../tracekit'\nimport {\n createHandlingStack,\n formatErrorMessage,\n computeRawError,\n isError\n} from '../helper/errorTools'\nimport { mergeObservables, Observable } from '../helper/observable'\nimport { find, map, clocksNow } from '../helper/tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { ConsoleApiName } from '../helper/display'\nimport { callMonitored } from '../helper/monitor'\nimport { ErrorHandling, NonErrorPrefix } from '../helper/enums'\nimport { ErrorSource } from '../helper/errorTools'\nimport { sanitize } from '../helper/sanitize'\nvar consoleObservablesByApi = {}\n\nexport function initConsoleObservable(apis) {\n var consoleObservables = map(apis, function (api) {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api)\n }\n return consoleObservablesByApi[api]\n })\n\n return mergeObservables.apply(this, consoleObservables)\n}\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {}\n}\n/* eslint-disable no-console */\nfunction createConsoleObservable(api) {\n return new Observable(function (observable) {\n var originalConsoleApi = console[api]\n console[api] = function () {\n var params = [].slice.call(arguments)\n originalConsoleApi.apply(console, arguments)\n var handlingStack = createHandlingStack()\n callMonitored(function () {\n observable.notify(buildConsoleLog(params, api, handlingStack))\n })\n }\n return function () {\n console[api] = originalConsoleApi\n }\n })\n}\n\nfunction buildConsoleLog(params, api, handlingStack) {\n var message = map(params, function (param) {\n return formatConsoleParameters(param)\n }).join(' ')\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, isError)\n const rawError = computeRawError({\n originalError: firstErrorParam,\n startClocks: clocksNow(),\n message: message,\n source: ErrorSource.CONSOLE,\n handling: ErrorHandling.HANDLED,\n handlingStack: handlingStack,\n nonErrorPrefix: NonErrorPrefix.PROVIDED,\n useFallbackStack: false\n })\n rawError.message = message\n return {\n api: api,\n message: message,\n error: rawError,\n handlingStack: handlingStack\n }\n }\n\n return {\n api: api,\n message: message,\n error: undefined,\n handlingStack: handlingStack\n }\n}\n\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param)\n }\n if (isError(param)) {\n return formatErrorMessage(computeStackTrace(param))\n }\n return jsonStringify(sanitize(param), undefined, 2)\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,aAAa;AAC/C,SACEC,mBAAmB,EACnBC,kBAAkB,EAClBC,eAAe,EACfC,OAAO,QACF,sBAAsB;AAC7B,SAASC,gBAAgB,EAAEC,UAAU,QAAQ,sBAAsB;AACnE,SAASC,IAAI,EAAEC,GAAG,EAAEC,SAAS,QAAQ,iBAAiB;AACtD,SAASC,aAAa,QAAQ,uCAAuC;AACrE,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,aAAa,EAAEC,cAAc,QAAQ,iBAAiB;AAC/D,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,IAAIC,uBAAuB,GAAG,CAAC,CAAC;AAEhC,OAAO,SAASC,qBAAqBA,CAACC,IAAI,EAAE;EAC1C,IAAIC,kBAAkB,GAAGZ,GAAG,CAACW,IAAI,EAAE,UAAUE,GAAG,EAAE;IAChD,IAAI,CAACJ,uBAAuB,CAACI,GAAG,CAAC,EAAE;MACjCJ,uBAAuB,CAACI,GAAG,CAAC,GAAGC,uBAAuB,CAACD,GAAG,CAAC;IAC7D;IACA,OAAOJ,uBAAuB,CAACI,GAAG,CAAC;EACrC,CAAC,CAAC;EAEF,OAAOhB,gBAAgB,CAACkB,KAAK,CAAC,IAAI,EAAEH,kBAAkB,CAAC;AACzD;AACA,OAAO,SAASI,sBAAsBA,CAAA,EAAG;EACvCP,uBAAuB,GAAG,CAAC,CAAC;AAC9B;AACA;AACA,SAASK,uBAAuBA,CAACD,GAAG,EAAE;EACpC,OAAO,IAAIf,UAAU,CAAC,UAAUmB,UAAU,EAAE;IAC1C,IAAIC,kBAAkB,GAAGC,OAAO,CAACN,GAAG,CAAC;IACrCM,OAAO,CAACN,GAAG,CAAC,GAAG,YAAY;MACzB,IAAIO,MAAM,GAAG,EAAE,CAACC,KAAK,CAACC,IAAI,CAACC,SAAS,CAAC;MACrCL,kBAAkB,CAACH,KAAK,CAACI,OAAO,EAAEI,SAAS,CAAC;MAC5C,IAAIC,aAAa,GAAG/B,mBAAmB,CAAC,CAAC;MACzCW,aAAa,CAAC,YAAY;QACxBa,UAAU,CAACQ,MAAM,CAACC,eAAe,CAACN,MAAM,EAAEP,GAAG,EAAEW,aAAa,CAAC,CAAC;MAChE,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,YAAY;MACjBL,OAAO,CAACN,GAAG,CAAC,GAAGK,kBAAkB;IACnC,CAAC;EACH,CAAC,CAAC;AACJ;AAEA,SAASQ,eAAeA,CAACN,MAAM,EAAEP,GAAG,EAAEW,aAAa,EAAE;EACnD,IAAIG,OAAO,GAAG3B,GAAG,CAACoB,MAAM,EAAE,UAAUQ,KAAK,EAAE;IACzC,OAAOC,uBAAuB,CAACD,KAAK,CAAC;EACvC,CAAC,CAAC,CAACE,IAAI,CAAC,GAAG,CAAC;EACZ,IAAIjB,GAAG,KAAKV,cAAc,CAAC4B,KAAK,EAAE;IAChC,IAAIC,eAAe,GAAGjC,IAAI,CAACqB,MAAM,EAAExB,OAAO,CAAC;IAC3C,IAAMqC,QAAQ,GAAGtC,eAAe,CAAC;MAC/BuC,aAAa,EAAEF,eAAe;MAC9BG,WAAW,EAAElC,SAAS,CAAC,CAAC;MACxB0B,OAAO,EAAEA,OAAO;MAChBS,MAAM,EAAE7B,WAAW,CAAC8B,OAAO;MAC3BC,QAAQ,EAAEjC,aAAa,CAACkC,OAAO;MAC/Bf,aAAa,EAAEA,aAAa;MAC5BgB,cAAc,EAAElC,cAAc,CAACmC,QAAQ;MACvCC,gBAAgB,EAAE;IACpB,CAAC,CAAC;IACFT,QAAQ,CAACN,OAAO,GAAGA,OAAO;IAC1B,OAAO;MACLd,GAAG,EAAEA,GAAG;MACRc,OAAO,EAAEA,OAAO;MAChBI,KAAK,EAAEE,QAAQ;MACfT,aAAa,EAAEA;IACjB,CAAC;EACH;EAEA,OAAO;IACLX,GAAG,EAAEA,GAAG;IACRc,OAAO,EAAEA,OAAO;IAChBI,KAAK,EAAEY,SAAS;IAChBnB,aAAa,EAAEA;EACjB,CAAC;AACH;AAEA,SAASK,uBAAuBA,CAACD,KAAK,EAAE;EACtC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOpB,QAAQ,CAACoB,KAAK,CAAC;EACxB;EACA,IAAIhC,OAAO,CAACgC,KAAK,CAAC,EAAE;IAClB,OAAOlC,kBAAkB,CAACF,iBAAiB,CAACoC,KAAK,CAAC,CAAC;EACrD;EACA,OAAO1B,aAAa,CAACM,QAAQ,CAACoB,KAAK,CAAC,EAAEe,SAAS,EAAE,CAAC,CAAC;AACrD","ignoreList":[]}
|
package/esm/helper/errorTools.js
CHANGED
|
@@ -21,21 +21,22 @@ export function computeRawError(data) {
|
|
|
21
21
|
var nonErrorPrefix = data.nonErrorPrefix;
|
|
22
22
|
var source = data.source;
|
|
23
23
|
var handling = data.handling;
|
|
24
|
-
var
|
|
24
|
+
var useFallbackStack = data.useFallbackStack === undefined ? true : data.useFallbackStack;
|
|
25
|
+
var isErrorInstance = isError(originalError);
|
|
26
|
+
if (!stackTrace && isErrorInstance) {
|
|
27
|
+
stackTrace = computeStackTrace(originalError);
|
|
28
|
+
}
|
|
25
29
|
var message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError);
|
|
26
|
-
var stack = hasUsableStack(isErrorInstance, stackTrace) ? toStackTraceString(stackTrace) : NO_ERROR_STACK_PRESENT_MESSAGE;
|
|
27
|
-
var causes = isErrorInstance ? flattenErrorCauses(originalError, source) : undefined;
|
|
28
|
-
var type = stackTrace && stackTrace.name;
|
|
29
30
|
return {
|
|
30
31
|
startClocks: startClocks,
|
|
31
32
|
source: source,
|
|
32
33
|
handling: handling,
|
|
33
34
|
originalError: originalError,
|
|
34
35
|
message: message,
|
|
35
|
-
stack:
|
|
36
|
+
stack: stackTrace ? toStackTraceString(stackTrace) : useFallbackStack ? NO_ERROR_STACK_PRESENT_MESSAGE : undefined,
|
|
36
37
|
handlingStack: handlingStack,
|
|
37
|
-
type:
|
|
38
|
-
causes:
|
|
38
|
+
type: stackTrace ? stackTrace.name : undefined,
|
|
39
|
+
causes: isErrorInstance ? flattenErrorCauses(originalError, source) : undefined
|
|
39
40
|
};
|
|
40
41
|
}
|
|
41
42
|
function computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError) {
|
|
@@ -136,4 +137,7 @@ export function flattenErrorCauses(error, parentSource) {
|
|
|
136
137
|
}
|
|
137
138
|
return causes.length ? causes : undefined;
|
|
138
139
|
}
|
|
140
|
+
export function isError(error) {
|
|
141
|
+
return error instanceof Error || Object.prototype.toString.call(error) === '[object Error]';
|
|
142
|
+
}
|
|
139
143
|
//# sourceMappingURL=errorTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorTools.js","names":["each","noop","jsonStringify","computeStackTrace","callMonitored","sanitize","NO_ERROR_STACK_PRESENT_MESSAGE","ErrorSource","AGENT","CONSOLE","NETWORK","SOURCE","LOGGER","CUSTOM","REPORT","computeRawError","data","stackTrace","originalError","handlingStack","startClocks","nonErrorPrefix","source","handling","isErrorInstance","Error","message","computeMessage","stack","hasUsableStack","toStackTraceString","causes","flattenErrorCauses","undefined","type","name","length","url","formatUnknownError","errorObject","createHandlingStack","internalFramesToSkip","error","formattedStack","e","slice","result","formatErrorMessage","frame","func","args","join","line","column","getFileFromStackTraceString","execResult","exec","parentSource","currentError","cause","push"],"sources":["../../src/helper/errorTools.js"],"sourcesContent":["import { each, noop } from './tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { computeStackTrace } from '../tracekit'\nimport { callMonitored } from '../helper/monitor'\nimport { sanitize } from '../helper/sanitize'\nexport var NO_ERROR_STACK_PRESENT_MESSAGE =\n 'No stack, consider using an instance of Error'\nexport var ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n NETWORK: 'network',\n SOURCE: 'source',\n LOGGER: 'logger',\n CUSTOM: 'custom',\n REPORT: 'report'\n}\n\nexport function computeRawError(data) {\n var stackTrace = data.stackTrace\n var originalError = data.originalError\n var handlingStack = data.handlingStack\n var startClocks = data.startClocks\n var nonErrorPrefix = data.nonErrorPrefix\n var source = data.source\n var handling = data.handling\n var isErrorInstance = originalError instanceof Error\n var message = computeMessage(\n stackTrace,\n isErrorInstance,\n nonErrorPrefix,\n originalError\n )\n var stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE\n var causes = isErrorInstance\n ? flattenErrorCauses(originalError, source)\n : undefined\n var type = stackTrace && stackTrace.name\n\n return {\n startClocks: startClocks,\n source: source,\n handling: handling,\n originalError: originalError,\n message: message,\n stack: stack,\n handlingStack: handlingStack,\n type: type,\n causes: causes\n }\n}\nfunction computeMessage(\n stackTrace,\n isErrorInstance,\n nonErrorPrefix,\n originalError\n) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return stackTrace && stackTrace.message && stackTrace && stackTrace.name\n ? stackTrace.message\n : !isErrorInstance\n ? nonErrorPrefix + ' ' + jsonStringify(sanitize(originalError))\n : 'Empty message'\n}\nfunction hasUsableStack(isErrorInstance, stackTrace) {\n if (stackTrace === undefined) {\n return false\n }\n if (isErrorInstance) {\n return true\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return (\n stackTrace.stack.length > 0 &&\n (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined)\n )\n}\n\nexport function formatUnknownError(\n stackTrace,\n errorObject,\n nonErrorPrefix,\n handlingStack\n) {\n if (\n !stackTrace ||\n (stackTrace.message === undefined && !(errorObject instanceof Error))\n ) {\n return {\n message: nonErrorPrefix + '' + jsonStringify(errorObject),\n stack: 'No stack, consider using an instance of Error',\n handlingStack: handlingStack,\n type: stackTrace && stackTrace.name\n }\n }\n return {\n message: stackTrace.message || 'Empty message',\n stack: toStackTraceString(stackTrace),\n handlingStack: handlingStack,\n type: stackTrace.name\n }\n}\n/**\n Creates a stacktrace without SDK internal frames.\n \n Constraints:\n - Has to be called at the utmost position of the call stack.\n - No internal monitoring should encapsulate the function, that is why we need to use callMonitored inside of it.\n */\nexport function createHandlingStack() {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n var internalFramesToSkip = 2\n var error = new Error()\n var formattedStack\n\n // IE needs to throw the error to fill in the stack trace\n if (!error.stack) {\n try {\n throw error\n } catch (e) {\n noop()\n }\n }\n callMonitored(function () {\n var stackTrace = computeStackTrace(error)\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip)\n formattedStack = toStackTraceString(stackTrace)\n })\n\n return formattedStack\n}\nexport function toStackTraceString(stack) {\n var result = formatErrorMessage(stack)\n each(stack.stack, function (frame) {\n var func = frame.func === '?' ? '<anonymous>' : frame.func\n var args =\n frame.args && frame.args.length > 0\n ? '(' + frame.args.join(', ') + ')'\n : ''\n var line = frame.line ? ':' + frame.line : ''\n var column = frame.line && frame.column ? ':' + frame.column : ''\n result += '\\n at ' + func + args + ' @ ' + frame.url + line + column\n })\n return result\n}\nexport function formatErrorMessage(stack) {\n return (stack.name || 'Error') + ': ' + stack.message\n}\nexport function getFileFromStackTraceString(stack) {\n var execResult = /@ (.+)/.exec(stack)\n return execResult && execResult[1]\n}\nexport function flattenErrorCauses(error, parentSource) {\n var currentError = error\n var causes = []\n while (\n currentError &&\n currentError.cause instanceof Error &&\n causes.length < 10\n ) {\n var stackTrace = computeStackTrace(currentError.cause)\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace && stackTrace.name,\n stack: stackTrace && toStackTraceString(stackTrace)\n })\n currentError = currentError.cause\n }\n return causes.length ? causes : undefined\n}\n"],"mappings":"AAAA,SAASA,IAAI,EAAEC,IAAI,QAAQ,SAAS;AACpC,SAASC,aAAa,QAAQ,uCAAuC;AACrE,SAASC,iBAAiB,QAAQ,aAAa;AAC/C,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,OAAO,IAAIC,8BAA8B,GACvC,+CAA+C;AACjD,OAAO,IAAIC,WAAW,GAAG;EACvBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE;AACV,CAAC;AAED,OAAO,SAASC,eAAeA,CAACC,IAAI,EAAE;EACpC,IAAIC,UAAU,GAAGD,IAAI,CAACC,UAAU;EAChC,IAAIC,aAAa,GAAGF,IAAI,CAACE,aAAa;EACtC,IAAIC,aAAa,GAAGH,IAAI,CAACG,aAAa;EACtC,IAAIC,WAAW,GAAGJ,IAAI,CAACI,WAAW;EAClC,IAAIC,cAAc,GAAGL,IAAI,CAACK,cAAc;EACxC,IAAIC,MAAM,GAAGN,IAAI,CAACM,MAAM;EACxB,IAAIC,QAAQ,GAAGP,IAAI,CAACO,QAAQ;EAC5B,IAAIC,eAAe,GAAGN,aAAa,YAAYO,KAAK;EACpD,IAAIC,OAAO,GAAGC,cAAc,CAC1BV,UAAU,EACVO,eAAe,EACfH,cAAc,EACdH,aACF,CAAC;EACD,IAAIU,KAAK,GAAGC,cAAc,CAACL,eAAe,EAAEP,UAAU,CAAC,GACnDa,kBAAkB,CAACb,UAAU,CAAC,GAC9BX,8BAA8B;EAClC,IAAIyB,MAAM,GAAGP,eAAe,GACxBQ,kBAAkB,CAACd,aAAa,EAAEI,MAAM,CAAC,GACzCW,SAAS;EACb,IAAIC,IAAI,GAAGjB,UAAU,IAAIA,UAAU,CAACkB,IAAI;EAExC,OAAO;IACLf,WAAW,EAAEA,WAAW;IACxBE,MAAM,EAAEA,MAAM;IACdC,QAAQ,EAAEA,QAAQ;IAClBL,aAAa,EAAEA,aAAa;IAC5BQ,OAAO,EAAEA,OAAO;IAChBE,KAAK,EAAEA,KAAK;IACZT,aAAa,EAAEA,aAAa;IAC5Be,IAAI,EAAEA,IAAI;IACVH,MAAM,EAAEA;EACV,CAAC;AACH;AACA,SAASJ,cAAcA,CACrBV,UAAU,EACVO,eAAe,EACfH,cAAc,EACdH,aAAa,EACb;EACA;EACA;EACA,OAAOD,UAAU,IAAIA,UAAU,CAACS,OAAO,IAAIT,UAAU,IAAIA,UAAU,CAACkB,IAAI,GACpElB,UAAU,CAACS,OAAO,GAClB,CAACF,eAAe,GAChBH,cAAc,GAAG,GAAG,GAAGnB,aAAa,CAACG,QAAQ,CAACa,aAAa,CAAC,CAAC,GAC7D,eAAe;AACrB;AACA,SAASW,cAAcA,CAACL,eAAe,EAAEP,UAAU,EAAE;EACnD,IAAIA,UAAU,KAAKgB,SAAS,EAAE;IAC5B,OAAO,KAAK;EACd;EACA,IAAIT,eAAe,EAAE;IACnB,OAAO,IAAI;EACb;EACA;EACA;EACA,OACEP,UAAU,CAACW,KAAK,CAACQ,MAAM,GAAG,CAAC,KAC1BnB,UAAU,CAACW,KAAK,CAACQ,MAAM,GAAG,CAAC,IAAInB,UAAU,CAACW,KAAK,CAAC,CAAC,CAAC,CAACS,GAAG,KAAKJ,SAAS,CAAC;AAE1E;AAEA,OAAO,SAASK,kBAAkBA,CAChCrB,UAAU,EACVsB,WAAW,EACXlB,cAAc,EACdF,aAAa,EACb;EACA,IACE,CAACF,UAAU,IACVA,UAAU,CAACS,OAAO,KAAKO,SAAS,IAAI,EAAEM,WAAW,YAAYd,KAAK,CAAE,EACrE;IACA,OAAO;MACLC,OAAO,EAAEL,cAAc,GAAG,EAAE,GAAGnB,aAAa,CAACqC,WAAW,CAAC;MACzDX,KAAK,EAAE,+CAA+C;MACtDT,aAAa,EAAEA,aAAa;MAC5Be,IAAI,EAAEjB,UAAU,IAAIA,UAAU,CAACkB;IACjC,CAAC;EACH;EACA,OAAO;IACLT,OAAO,EAAET,UAAU,CAACS,OAAO,IAAI,eAAe;IAC9CE,KAAK,EAAEE,kBAAkB,CAACb,UAAU,CAAC;IACrCE,aAAa,EAAEA,aAAa;IAC5Be,IAAI,EAAEjB,UAAU,CAACkB;EACnB,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,mBAAmBA,CAAA,EAAG;EACpC;AACF;AACA;AACA;AACA;AACA;EACE,IAAIC,oBAAoB,GAAG,CAAC;EAC5B,IAAIC,KAAK,GAAG,IAAIjB,KAAK,CAAC,CAAC;EACvB,IAAIkB,cAAc;;EAElB;EACA,IAAI,CAACD,KAAK,CAACd,KAAK,EAAE;IAChB,IAAI;MACF,MAAMc,KAAK;IACb,CAAC,CAAC,OAAOE,CAAC,EAAE;MACV3C,IAAI,CAAC,CAAC;IACR;EACF;EACAG,aAAa,CAAC,YAAY;IACxB,IAAIa,UAAU,GAAGd,iBAAiB,CAACuC,KAAK,CAAC;IACzCzB,UAAU,CAACW,KAAK,GAAGX,UAAU,CAACW,KAAK,CAACiB,KAAK,CAACJ,oBAAoB,CAAC;IAC/DE,cAAc,GAAGb,kBAAkB,CAACb,UAAU,CAAC;EACjD,CAAC,CAAC;EAEF,OAAO0B,cAAc;AACvB;AACA,OAAO,SAASb,kBAAkBA,CAACF,KAAK,EAAE;EACxC,IAAIkB,MAAM,GAAGC,kBAAkB,CAACnB,KAAK,CAAC;EACtC5B,IAAI,CAAC4B,KAAK,CAACA,KAAK,EAAE,UAAUoB,KAAK,EAAE;IACjC,IAAIC,IAAI,GAAGD,KAAK,CAACC,IAAI,KAAK,GAAG,GAAG,aAAa,GAAGD,KAAK,CAACC,IAAI;IAC1D,IAAIC,IAAI,GACNF,KAAK,CAACE,IAAI,IAAIF,KAAK,CAACE,IAAI,CAACd,MAAM,GAAG,CAAC,GAC/B,GAAG,GAAGY,KAAK,CAACE,IAAI,CAACC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GACjC,EAAE;IACR,IAAIC,IAAI,GAAGJ,KAAK,CAACI,IAAI,GAAG,GAAG,GAAGJ,KAAK,CAACI,IAAI,GAAG,EAAE;IAC7C,IAAIC,MAAM,GAAGL,KAAK,CAACI,IAAI,IAAIJ,KAAK,CAACK,MAAM,GAAG,GAAG,GAAGL,KAAK,CAACK,MAAM,GAAG,EAAE;IACjEP,MAAM,IAAI,SAAS,GAAGG,IAAI,GAAGC,IAAI,GAAG,KAAK,GAAGF,KAAK,CAACX,GAAG,GAAGe,IAAI,GAAGC,MAAM;EACvE,CAAC,CAAC;EACF,OAAOP,MAAM;AACf;AACA,OAAO,SAASC,kBAAkBA,CAACnB,KAAK,EAAE;EACxC,OAAO,CAACA,KAAK,CAACO,IAAI,IAAI,OAAO,IAAI,IAAI,GAAGP,KAAK,CAACF,OAAO;AACvD;AACA,OAAO,SAAS4B,2BAA2BA,CAAC1B,KAAK,EAAE;EACjD,IAAI2B,UAAU,GAAG,QAAQ,CAACC,IAAI,CAAC5B,KAAK,CAAC;EACrC,OAAO2B,UAAU,IAAIA,UAAU,CAAC,CAAC,CAAC;AACpC;AACA,OAAO,SAASvB,kBAAkBA,CAACU,KAAK,EAAEe,YAAY,EAAE;EACtD,IAAIC,YAAY,GAAGhB,KAAK;EACxB,IAAIX,MAAM,GAAG,EAAE;EACf,OACE2B,YAAY,IACZA,YAAY,CAACC,KAAK,YAAYlC,KAAK,IACnCM,MAAM,CAACK,MAAM,GAAG,EAAE,EAClB;IACA,IAAInB,UAAU,GAAGd,iBAAiB,CAACuD,YAAY,CAACC,KAAK,CAAC;IACtD5B,MAAM,CAAC6B,IAAI,CAAC;MACVlC,OAAO,EAAEgC,YAAY,CAACC,KAAK,CAACjC,OAAO;MACnCJ,MAAM,EAAEmC,YAAY;MACpBvB,IAAI,EAAEjB,UAAU,IAAIA,UAAU,CAACkB,IAAI;MACnCP,KAAK,EAAEX,UAAU,IAAIa,kBAAkB,CAACb,UAAU;IACpD,CAAC,CAAC;IACFyC,YAAY,GAAGA,YAAY,CAACC,KAAK;EACnC;EACA,OAAO5B,MAAM,CAACK,MAAM,GAAGL,MAAM,GAAGE,SAAS;AAC3C","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"errorTools.js","names":["each","noop","jsonStringify","computeStackTrace","callMonitored","sanitize","NO_ERROR_STACK_PRESENT_MESSAGE","ErrorSource","AGENT","CONSOLE","NETWORK","SOURCE","LOGGER","CUSTOM","REPORT","computeRawError","data","stackTrace","originalError","handlingStack","startClocks","nonErrorPrefix","source","handling","useFallbackStack","undefined","isErrorInstance","isError","message","computeMessage","stack","toStackTraceString","type","name","causes","flattenErrorCauses","hasUsableStack","length","url","formatUnknownError","errorObject","Error","createHandlingStack","internalFramesToSkip","error","formattedStack","e","slice","result","formatErrorMessage","frame","func","args","join","line","column","getFileFromStackTraceString","execResult","exec","parentSource","currentError","cause","push","Object","prototype","toString","call"],"sources":["../../src/helper/errorTools.js"],"sourcesContent":["import { each, noop } from './tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { computeStackTrace } from '../tracekit'\nimport { callMonitored } from '../helper/monitor'\nimport { sanitize } from '../helper/sanitize'\nexport var NO_ERROR_STACK_PRESENT_MESSAGE =\n 'No stack, consider using an instance of Error'\nexport var ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n NETWORK: 'network',\n SOURCE: 'source',\n LOGGER: 'logger',\n CUSTOM: 'custom',\n REPORT: 'report'\n}\n\nexport function computeRawError(data) {\n var stackTrace = data.stackTrace\n var originalError = data.originalError\n var handlingStack = data.handlingStack\n var startClocks = data.startClocks\n var nonErrorPrefix = data.nonErrorPrefix\n var source = data.source\n var handling = data.handling\n var useFallbackStack =\n data.useFallbackStack === undefined ? true : data.useFallbackStack\n var isErrorInstance = isError(originalError)\n if (!stackTrace && isErrorInstance) {\n stackTrace = computeStackTrace(originalError)\n }\n var message = computeMessage(\n stackTrace,\n isErrorInstance,\n nonErrorPrefix,\n originalError\n )\n return {\n startClocks: startClocks,\n source: source,\n handling: handling,\n originalError: originalError,\n message: message,\n stack: stackTrace\n ? toStackTraceString(stackTrace)\n : useFallbackStack\n ? NO_ERROR_STACK_PRESENT_MESSAGE\n : undefined,\n handlingStack: handlingStack,\n type: stackTrace ? stackTrace.name : undefined,\n causes: isErrorInstance\n ? flattenErrorCauses(originalError, source)\n : undefined\n }\n}\nfunction computeMessage(\n stackTrace,\n isErrorInstance,\n nonErrorPrefix,\n originalError\n) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return stackTrace && stackTrace.message && stackTrace && stackTrace.name\n ? stackTrace.message\n : !isErrorInstance\n ? nonErrorPrefix + ' ' + jsonStringify(sanitize(originalError))\n : 'Empty message'\n}\nfunction hasUsableStack(isErrorInstance, stackTrace) {\n if (stackTrace === undefined) {\n return false\n }\n if (isErrorInstance) {\n return true\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return (\n stackTrace.stack.length > 0 &&\n (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined)\n )\n}\n\nexport function formatUnknownError(\n stackTrace,\n errorObject,\n nonErrorPrefix,\n handlingStack\n) {\n if (\n !stackTrace ||\n (stackTrace.message === undefined && !(errorObject instanceof Error))\n ) {\n return {\n message: nonErrorPrefix + '' + jsonStringify(errorObject),\n stack: 'No stack, consider using an instance of Error',\n handlingStack: handlingStack,\n type: stackTrace && stackTrace.name\n }\n }\n return {\n message: stackTrace.message || 'Empty message',\n stack: toStackTraceString(stackTrace),\n handlingStack: handlingStack,\n type: stackTrace.name\n }\n}\n/**\n Creates a stacktrace without SDK internal frames.\n \n Constraints:\n - Has to be called at the utmost position of the call stack.\n - No internal monitoring should encapsulate the function, that is why we need to use callMonitored inside of it.\n */\nexport function createHandlingStack() {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n var internalFramesToSkip = 2\n var error = new Error()\n var formattedStack\n\n // IE needs to throw the error to fill in the stack trace\n if (!error.stack) {\n try {\n throw error\n } catch (e) {\n noop()\n }\n }\n callMonitored(function () {\n var stackTrace = computeStackTrace(error)\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip)\n formattedStack = toStackTraceString(stackTrace)\n })\n\n return formattedStack\n}\nexport function toStackTraceString(stack) {\n var result = formatErrorMessage(stack)\n each(stack.stack, function (frame) {\n var func = frame.func === '?' ? '<anonymous>' : frame.func\n var args =\n frame.args && frame.args.length > 0\n ? '(' + frame.args.join(', ') + ')'\n : ''\n var line = frame.line ? ':' + frame.line : ''\n var column = frame.line && frame.column ? ':' + frame.column : ''\n result += '\\n at ' + func + args + ' @ ' + frame.url + line + column\n })\n return result\n}\nexport function formatErrorMessage(stack) {\n return (stack.name || 'Error') + ': ' + stack.message\n}\nexport function getFileFromStackTraceString(stack) {\n var execResult = /@ (.+)/.exec(stack)\n return execResult && execResult[1]\n}\nexport function flattenErrorCauses(error, parentSource) {\n var currentError = error\n var causes = []\n while (\n currentError &&\n currentError.cause instanceof Error &&\n causes.length < 10\n ) {\n var stackTrace = computeStackTrace(currentError.cause)\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace && stackTrace.name,\n stack: stackTrace && toStackTraceString(stackTrace)\n })\n currentError = currentError.cause\n }\n return causes.length ? causes : undefined\n}\n\nexport function isError(error) {\n return (\n error instanceof Error ||\n Object.prototype.toString.call(error) === '[object Error]'\n )\n}\n"],"mappings":"AAAA,SAASA,IAAI,EAAEC,IAAI,QAAQ,SAAS;AACpC,SAASC,aAAa,QAAQ,uCAAuC;AACrE,SAASC,iBAAiB,QAAQ,aAAa;AAC/C,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,OAAO,IAAIC,8BAA8B,GACvC,+CAA+C;AACjD,OAAO,IAAIC,WAAW,GAAG;EACvBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE;AACV,CAAC;AAED,OAAO,SAASC,eAAeA,CAACC,IAAI,EAAE;EACpC,IAAIC,UAAU,GAAGD,IAAI,CAACC,UAAU;EAChC,IAAIC,aAAa,GAAGF,IAAI,CAACE,aAAa;EACtC,IAAIC,aAAa,GAAGH,IAAI,CAACG,aAAa;EACtC,IAAIC,WAAW,GAAGJ,IAAI,CAACI,WAAW;EAClC,IAAIC,cAAc,GAAGL,IAAI,CAACK,cAAc;EACxC,IAAIC,MAAM,GAAGN,IAAI,CAACM,MAAM;EACxB,IAAIC,QAAQ,GAAGP,IAAI,CAACO,QAAQ;EAC5B,IAAIC,gBAAgB,GAClBR,IAAI,CAACQ,gBAAgB,KAAKC,SAAS,GAAG,IAAI,GAAGT,IAAI,CAACQ,gBAAgB;EACpE,IAAIE,eAAe,GAAGC,OAAO,CAACT,aAAa,CAAC;EAC5C,IAAI,CAACD,UAAU,IAAIS,eAAe,EAAE;IAClCT,UAAU,GAAGd,iBAAiB,CAACe,aAAa,CAAC;EAC/C;EACA,IAAIU,OAAO,GAAGC,cAAc,CAC1BZ,UAAU,EACVS,eAAe,EACfL,cAAc,EACdH,aACF,CAAC;EACD,OAAO;IACLE,WAAW,EAAEA,WAAW;IACxBE,MAAM,EAAEA,MAAM;IACdC,QAAQ,EAAEA,QAAQ;IAClBL,aAAa,EAAEA,aAAa;IAC5BU,OAAO,EAAEA,OAAO;IAChBE,KAAK,EAAEb,UAAU,GACbc,kBAAkB,CAACd,UAAU,CAAC,GAC9BO,gBAAgB,GAChBlB,8BAA8B,GAC9BmB,SAAS;IACbN,aAAa,EAAEA,aAAa;IAC5Ba,IAAI,EAAEf,UAAU,GAAGA,UAAU,CAACgB,IAAI,GAAGR,SAAS;IAC9CS,MAAM,EAAER,eAAe,GACnBS,kBAAkB,CAACjB,aAAa,EAAEI,MAAM,CAAC,GACzCG;EACN,CAAC;AACH;AACA,SAASI,cAAcA,CACrBZ,UAAU,EACVS,eAAe,EACfL,cAAc,EACdH,aAAa,EACb;EACA;EACA;EACA,OAAOD,UAAU,IAAIA,UAAU,CAACW,OAAO,IAAIX,UAAU,IAAIA,UAAU,CAACgB,IAAI,GACpEhB,UAAU,CAACW,OAAO,GAClB,CAACF,eAAe,GAChBL,cAAc,GAAG,GAAG,GAAGnB,aAAa,CAACG,QAAQ,CAACa,aAAa,CAAC,CAAC,GAC7D,eAAe;AACrB;AACA,SAASkB,cAAcA,CAACV,eAAe,EAAET,UAAU,EAAE;EACnD,IAAIA,UAAU,KAAKQ,SAAS,EAAE;IAC5B,OAAO,KAAK;EACd;EACA,IAAIC,eAAe,EAAE;IACnB,OAAO,IAAI;EACb;EACA;EACA;EACA,OACET,UAAU,CAACa,KAAK,CAACO,MAAM,GAAG,CAAC,KAC1BpB,UAAU,CAACa,KAAK,CAACO,MAAM,GAAG,CAAC,IAAIpB,UAAU,CAACa,KAAK,CAAC,CAAC,CAAC,CAACQ,GAAG,KAAKb,SAAS,CAAC;AAE1E;AAEA,OAAO,SAASc,kBAAkBA,CAChCtB,UAAU,EACVuB,WAAW,EACXnB,cAAc,EACdF,aAAa,EACb;EACA,IACE,CAACF,UAAU,IACVA,UAAU,CAACW,OAAO,KAAKH,SAAS,IAAI,EAAEe,WAAW,YAAYC,KAAK,CAAE,EACrE;IACA,OAAO;MACLb,OAAO,EAAEP,cAAc,GAAG,EAAE,GAAGnB,aAAa,CAACsC,WAAW,CAAC;MACzDV,KAAK,EAAE,+CAA+C;MACtDX,aAAa,EAAEA,aAAa;MAC5Ba,IAAI,EAAEf,UAAU,IAAIA,UAAU,CAACgB;IACjC,CAAC;EACH;EACA,OAAO;IACLL,OAAO,EAAEX,UAAU,CAACW,OAAO,IAAI,eAAe;IAC9CE,KAAK,EAAEC,kBAAkB,CAACd,UAAU,CAAC;IACrCE,aAAa,EAAEA,aAAa;IAC5Ba,IAAI,EAAEf,UAAU,CAACgB;EACnB,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASS,mBAAmBA,CAAA,EAAG;EACpC;AACF;AACA;AACA;AACA;AACA;EACE,IAAIC,oBAAoB,GAAG,CAAC;EAC5B,IAAIC,KAAK,GAAG,IAAIH,KAAK,CAAC,CAAC;EACvB,IAAII,cAAc;;EAElB;EACA,IAAI,CAACD,KAAK,CAACd,KAAK,EAAE;IAChB,IAAI;MACF,MAAMc,KAAK;IACb,CAAC,CAAC,OAAOE,CAAC,EAAE;MACV7C,IAAI,CAAC,CAAC;IACR;EACF;EACAG,aAAa,CAAC,YAAY;IACxB,IAAIa,UAAU,GAAGd,iBAAiB,CAACyC,KAAK,CAAC;IACzC3B,UAAU,CAACa,KAAK,GAAGb,UAAU,CAACa,KAAK,CAACiB,KAAK,CAACJ,oBAAoB,CAAC;IAC/DE,cAAc,GAAGd,kBAAkB,CAACd,UAAU,CAAC;EACjD,CAAC,CAAC;EAEF,OAAO4B,cAAc;AACvB;AACA,OAAO,SAASd,kBAAkBA,CAACD,KAAK,EAAE;EACxC,IAAIkB,MAAM,GAAGC,kBAAkB,CAACnB,KAAK,CAAC;EACtC9B,IAAI,CAAC8B,KAAK,CAACA,KAAK,EAAE,UAAUoB,KAAK,EAAE;IACjC,IAAIC,IAAI,GAAGD,KAAK,CAACC,IAAI,KAAK,GAAG,GAAG,aAAa,GAAGD,KAAK,CAACC,IAAI;IAC1D,IAAIC,IAAI,GACNF,KAAK,CAACE,IAAI,IAAIF,KAAK,CAACE,IAAI,CAACf,MAAM,GAAG,CAAC,GAC/B,GAAG,GAAGa,KAAK,CAACE,IAAI,CAACC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GACjC,EAAE;IACR,IAAIC,IAAI,GAAGJ,KAAK,CAACI,IAAI,GAAG,GAAG,GAAGJ,KAAK,CAACI,IAAI,GAAG,EAAE;IAC7C,IAAIC,MAAM,GAAGL,KAAK,CAACI,IAAI,IAAIJ,KAAK,CAACK,MAAM,GAAG,GAAG,GAAGL,KAAK,CAACK,MAAM,GAAG,EAAE;IACjEP,MAAM,IAAI,SAAS,GAAGG,IAAI,GAAGC,IAAI,GAAG,KAAK,GAAGF,KAAK,CAACZ,GAAG,GAAGgB,IAAI,GAAGC,MAAM;EACvE,CAAC,CAAC;EACF,OAAOP,MAAM;AACf;AACA,OAAO,SAASC,kBAAkBA,CAACnB,KAAK,EAAE;EACxC,OAAO,CAACA,KAAK,CAACG,IAAI,IAAI,OAAO,IAAI,IAAI,GAAGH,KAAK,CAACF,OAAO;AACvD;AACA,OAAO,SAAS4B,2BAA2BA,CAAC1B,KAAK,EAAE;EACjD,IAAI2B,UAAU,GAAG,QAAQ,CAACC,IAAI,CAAC5B,KAAK,CAAC;EACrC,OAAO2B,UAAU,IAAIA,UAAU,CAAC,CAAC,CAAC;AACpC;AACA,OAAO,SAAStB,kBAAkBA,CAACS,KAAK,EAAEe,YAAY,EAAE;EACtD,IAAIC,YAAY,GAAGhB,KAAK;EACxB,IAAIV,MAAM,GAAG,EAAE;EACf,OACE0B,YAAY,IACZA,YAAY,CAACC,KAAK,YAAYpB,KAAK,IACnCP,MAAM,CAACG,MAAM,GAAG,EAAE,EAClB;IACA,IAAIpB,UAAU,GAAGd,iBAAiB,CAACyD,YAAY,CAACC,KAAK,CAAC;IACtD3B,MAAM,CAAC4B,IAAI,CAAC;MACVlC,OAAO,EAAEgC,YAAY,CAACC,KAAK,CAACjC,OAAO;MACnCN,MAAM,EAAEqC,YAAY;MACpB3B,IAAI,EAAEf,UAAU,IAAIA,UAAU,CAACgB,IAAI;MACnCH,KAAK,EAAEb,UAAU,IAAIc,kBAAkB,CAACd,UAAU;IACpD,CAAC,CAAC;IACF2C,YAAY,GAAGA,YAAY,CAACC,KAAK;EACnC;EACA,OAAO3B,MAAM,CAACG,MAAM,GAAGH,MAAM,GAAGT,SAAS;AAC3C;AAEA,OAAO,SAASE,OAAOA,CAACiB,KAAK,EAAE;EAC7B,OACEA,KAAK,YAAYH,KAAK,IACtBsB,MAAM,CAACC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACtB,KAAK,CAAC,KAAK,gBAAgB;AAE9D","ignoreList":[]}
|
package/esm/helper/monitor.js
CHANGED
|
@@ -20,13 +20,16 @@ export function callMonitored(fn, context, args) {
|
|
|
20
20
|
try {
|
|
21
21
|
return fn.apply(context, args);
|
|
22
22
|
} catch (e) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
monitorError(e);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export function monitorError(e) {
|
|
27
|
+
displayIfDebugEnabled(e);
|
|
28
|
+
if (onMonitorErrorCollected) {
|
|
29
|
+
try {
|
|
30
|
+
onMonitorErrorCollected(e);
|
|
31
|
+
} catch (e) {
|
|
32
|
+
displayIfDebugEnabled(e);
|
|
30
33
|
}
|
|
31
34
|
}
|
|
32
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.js","names":["ConsoleApiName","display","onMonitorErrorCollected","debugMode","startMonitorErrorCollection","newOnMonitorErrorCollected","setDebugMode","newDebugMode","resetMonitor","undefined","monitor","fn","callMonitored","arguments","context","args","apply","e","displayIfDebugEnabled","slice","call","error","concat"],"sources":["../../src/helper/monitor.js"],"sourcesContent":["import { ConsoleApiName, display } from './display'\nvar onMonitorErrorCollected\nvar debugMode = false\n\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected\n}\n\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode\n}\n\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined\n debugMode = false\n}\n\nexport function monitor(fn) {\n return function () {\n return callMonitored(fn, this, arguments)\n }\n}\n\nexport function callMonitored(fn, context, args) {\n try {\n return fn.apply(context, args)\n } catch (e) {\n displayIfDebugEnabled(e)\n
|
|
1
|
+
{"version":3,"file":"monitor.js","names":["ConsoleApiName","display","onMonitorErrorCollected","debugMode","startMonitorErrorCollection","newOnMonitorErrorCollected","setDebugMode","newDebugMode","resetMonitor","undefined","monitor","fn","callMonitored","arguments","context","args","apply","e","monitorError","displayIfDebugEnabled","slice","call","error","concat"],"sources":["../../src/helper/monitor.js"],"sourcesContent":["import { ConsoleApiName, display } from './display'\nvar onMonitorErrorCollected\nvar debugMode = false\n\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected\n}\n\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode\n}\n\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined\n debugMode = false\n}\n\nexport function monitor(fn) {\n return function () {\n return callMonitored(fn, this, arguments)\n }\n}\n\nexport function callMonitored(fn, context, args) {\n try {\n return fn.apply(context, args)\n } catch (e) {\n monitorError(e)\n }\n}\nexport function monitorError(e) {\n displayIfDebugEnabled(e)\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e)\n } catch (e) {\n displayIfDebugEnabled(e)\n }\n }\n}\nexport function displayIfDebugEnabled() {\n var args = [].slice.call(arguments)\n // display.error.apply(null, ['[MONITOR]'].concat(args))\n if (debugMode) {\n display.error.apply(null, ['[MONITOR]'].concat(args))\n }\n}\n"],"mappings":"AAAA,SAASA,cAAc,EAAEC,OAAO,QAAQ,WAAW;AACnD,IAAIC,uBAAuB;AAC3B,IAAIC,SAAS,GAAG,KAAK;AAErB,OAAO,SAASC,2BAA2BA,CAACC,0BAA0B,EAAE;EACtEH,uBAAuB,GAAGG,0BAA0B;AACtD;AAEA,OAAO,SAASC,YAAYA,CAACC,YAAY,EAAE;EACzCJ,SAAS,GAAGI,YAAY;AAC1B;AAEA,OAAO,SAASC,YAAYA,CAAA,EAAG;EAC7BN,uBAAuB,GAAGO,SAAS;EACnCN,SAAS,GAAG,KAAK;AACnB;AAEA,OAAO,SAASO,OAAOA,CAACC,EAAE,EAAE;EAC1B,OAAO,YAAY;IACjB,OAAOC,aAAa,CAACD,EAAE,EAAE,IAAI,EAAEE,SAAS,CAAC;EAC3C,CAAC;AACH;AAEA,OAAO,SAASD,aAAaA,CAACD,EAAE,EAAEG,OAAO,EAAEC,IAAI,EAAE;EAC/C,IAAI;IACF,OAAOJ,EAAE,CAACK,KAAK,CAACF,OAAO,EAAEC,IAAI,CAAC;EAChC,CAAC,CAAC,OAAOE,CAAC,EAAE;IACVC,YAAY,CAACD,CAAC,CAAC;EACjB;AACF;AACA,OAAO,SAASC,YAAYA,CAACD,CAAC,EAAE;EAC9BE,qBAAqB,CAACF,CAAC,CAAC;EACxB,IAAIf,uBAAuB,EAAE;IAC3B,IAAI;MACFA,uBAAuB,CAACe,CAAC,CAAC;IAC5B,CAAC,CAAC,OAAOA,CAAC,EAAE;MACVE,qBAAqB,CAACF,CAAC,CAAC;IAC1B;EACF;AACF;AACA,OAAO,SAASE,qBAAqBA,CAAA,EAAG;EACtC,IAAIJ,IAAI,GAAG,EAAE,CAACK,KAAK,CAACC,IAAI,CAACR,SAAS,CAAC;EACnC;EACA,IAAIV,SAAS,EAAE;IACbF,OAAO,CAACqB,KAAK,CAACN,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAACO,MAAM,CAACR,IAAI,CAAC,CAAC;EACvD;AACF","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcare/browser-core",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.51",
|
|
4
4
|
"main": "cjs/index.js",
|
|
5
5
|
"module": "esm/index.js",
|
|
6
6
|
"types": "types/index.d.ts",
|
|
@@ -24,5 +24,5 @@
|
|
|
24
24
|
},
|
|
25
25
|
"author": "dataflux",
|
|
26
26
|
"license": "MIT",
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "aa9c48254a3fb856859d9844b47c0a940b363658"
|
|
28
28
|
}
|
|
@@ -2,16 +2,17 @@ import { computeStackTrace } from '../tracekit'
|
|
|
2
2
|
import {
|
|
3
3
|
createHandlingStack,
|
|
4
4
|
formatErrorMessage,
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
computeRawError,
|
|
6
|
+
isError
|
|
7
7
|
} from '../helper/errorTools'
|
|
8
8
|
import { mergeObservables, Observable } from '../helper/observable'
|
|
9
9
|
import { find, map, clocksNow } from '../helper/tools'
|
|
10
10
|
import { jsonStringify } from '../helper/serialisation/jsonStringify'
|
|
11
11
|
import { ConsoleApiName } from '../helper/display'
|
|
12
12
|
import { callMonitored } from '../helper/monitor'
|
|
13
|
-
import { ErrorHandling } from '../helper/enums'
|
|
13
|
+
import { ErrorHandling, NonErrorPrefix } from '../helper/enums'
|
|
14
14
|
import { ErrorSource } from '../helper/errorTools'
|
|
15
|
+
import { sanitize } from '../helper/sanitize'
|
|
15
16
|
var consoleObservablesByApi = {}
|
|
16
17
|
|
|
17
18
|
export function initConsoleObservable(apis) {
|
|
@@ -49,22 +50,23 @@ function buildConsoleLog(params, api, handlingStack) {
|
|
|
49
50
|
var message = map(params, function (param) {
|
|
50
51
|
return formatConsoleParameters(param)
|
|
51
52
|
}).join(' ')
|
|
52
|
-
var error
|
|
53
53
|
if (api === ConsoleApiName.error) {
|
|
54
|
-
var firstErrorParam = find(params,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
error = {
|
|
58
|
-
stack: firstErrorParam
|
|
59
|
-
? toStackTraceString(computeStackTrace(firstErrorParam))
|
|
60
|
-
: undefined,
|
|
61
|
-
causes: firstErrorParam
|
|
62
|
-
? flattenErrorCauses(firstErrorParam, 'console')
|
|
63
|
-
: undefined,
|
|
54
|
+
var firstErrorParam = find(params, isError)
|
|
55
|
+
const rawError = computeRawError({
|
|
56
|
+
originalError: firstErrorParam,
|
|
64
57
|
startClocks: clocksNow(),
|
|
65
58
|
message: message,
|
|
66
59
|
source: ErrorSource.CONSOLE,
|
|
67
60
|
handling: ErrorHandling.HANDLED,
|
|
61
|
+
handlingStack: handlingStack,
|
|
62
|
+
nonErrorPrefix: NonErrorPrefix.PROVIDED,
|
|
63
|
+
useFallbackStack: false
|
|
64
|
+
})
|
|
65
|
+
rawError.message = message
|
|
66
|
+
return {
|
|
67
|
+
api: api,
|
|
68
|
+
message: message,
|
|
69
|
+
error: rawError,
|
|
68
70
|
handlingStack: handlingStack
|
|
69
71
|
}
|
|
70
72
|
}
|
|
@@ -72,17 +74,17 @@ function buildConsoleLog(params, api, handlingStack) {
|
|
|
72
74
|
return {
|
|
73
75
|
api: api,
|
|
74
76
|
message: message,
|
|
75
|
-
error:
|
|
77
|
+
error: undefined,
|
|
76
78
|
handlingStack: handlingStack
|
|
77
79
|
}
|
|
78
80
|
}
|
|
79
81
|
|
|
80
82
|
function formatConsoleParameters(param) {
|
|
81
83
|
if (typeof param === 'string') {
|
|
82
|
-
return param
|
|
84
|
+
return sanitize(param)
|
|
83
85
|
}
|
|
84
|
-
if (param
|
|
86
|
+
if (isError(param)) {
|
|
85
87
|
return formatErrorMessage(computeStackTrace(param))
|
|
86
88
|
}
|
|
87
|
-
return jsonStringify(param, undefined, 2)
|
|
89
|
+
return jsonStringify(sanitize(param), undefined, 2)
|
|
88
90
|
}
|
package/src/helper/errorTools.js
CHANGED
|
@@ -23,31 +23,34 @@ export function computeRawError(data) {
|
|
|
23
23
|
var nonErrorPrefix = data.nonErrorPrefix
|
|
24
24
|
var source = data.source
|
|
25
25
|
var handling = data.handling
|
|
26
|
-
var
|
|
26
|
+
var useFallbackStack =
|
|
27
|
+
data.useFallbackStack === undefined ? true : data.useFallbackStack
|
|
28
|
+
var isErrorInstance = isError(originalError)
|
|
29
|
+
if (!stackTrace && isErrorInstance) {
|
|
30
|
+
stackTrace = computeStackTrace(originalError)
|
|
31
|
+
}
|
|
27
32
|
var message = computeMessage(
|
|
28
33
|
stackTrace,
|
|
29
34
|
isErrorInstance,
|
|
30
35
|
nonErrorPrefix,
|
|
31
36
|
originalError
|
|
32
37
|
)
|
|
33
|
-
var stack = hasUsableStack(isErrorInstance, stackTrace)
|
|
34
|
-
? toStackTraceString(stackTrace)
|
|
35
|
-
: NO_ERROR_STACK_PRESENT_MESSAGE
|
|
36
|
-
var causes = isErrorInstance
|
|
37
|
-
? flattenErrorCauses(originalError, source)
|
|
38
|
-
: undefined
|
|
39
|
-
var type = stackTrace && stackTrace.name
|
|
40
|
-
|
|
41
38
|
return {
|
|
42
39
|
startClocks: startClocks,
|
|
43
40
|
source: source,
|
|
44
41
|
handling: handling,
|
|
45
42
|
originalError: originalError,
|
|
46
43
|
message: message,
|
|
47
|
-
stack:
|
|
44
|
+
stack: stackTrace
|
|
45
|
+
? toStackTraceString(stackTrace)
|
|
46
|
+
: useFallbackStack
|
|
47
|
+
? NO_ERROR_STACK_PRESENT_MESSAGE
|
|
48
|
+
: undefined,
|
|
48
49
|
handlingStack: handlingStack,
|
|
49
|
-
type:
|
|
50
|
-
causes:
|
|
50
|
+
type: stackTrace ? stackTrace.name : undefined,
|
|
51
|
+
causes: isErrorInstance
|
|
52
|
+
? flattenErrorCauses(originalError, source)
|
|
53
|
+
: undefined
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
56
|
function computeMessage(
|
|
@@ -177,3 +180,10 @@ export function flattenErrorCauses(error, parentSource) {
|
|
|
177
180
|
}
|
|
178
181
|
return causes.length ? causes : undefined
|
|
179
182
|
}
|
|
183
|
+
|
|
184
|
+
export function isError(error) {
|
|
185
|
+
return (
|
|
186
|
+
error instanceof Error ||
|
|
187
|
+
Object.prototype.toString.call(error) === '[object Error]'
|
|
188
|
+
)
|
|
189
|
+
}
|
package/src/helper/monitor.js
CHANGED
|
@@ -25,17 +25,19 @@ export function callMonitored(fn, context, args) {
|
|
|
25
25
|
try {
|
|
26
26
|
return fn.apply(context, args)
|
|
27
27
|
} catch (e) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
monitorError(e)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function monitorError(e) {
|
|
32
|
+
displayIfDebugEnabled(e)
|
|
33
|
+
if (onMonitorErrorCollected) {
|
|
34
|
+
try {
|
|
35
|
+
onMonitorErrorCollected(e)
|
|
36
|
+
} catch (e) {
|
|
37
|
+
displayIfDebugEnabled(e)
|
|
35
38
|
}
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
|
-
|
|
39
41
|
export function displayIfDebugEnabled() {
|
|
40
42
|
var args = [].slice.call(arguments)
|
|
41
43
|
// display.error.apply(null, ['[MONITOR]'].concat(args))
|