@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.
@@ -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, function (param) {
53
- return param instanceof Error;
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: 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 (param instanceof Error) {
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","error","ConsoleApiName","firstErrorParam","find","Error","stack","toStackTraceString","computeStackTrace","undefined","causes","flattenErrorCauses","startClocks","clocksNow","source","ErrorSource","CONSOLE","handling","ErrorHandling","HANDLED","formatErrorMessage","jsonStringify"],"sources":["../../src/console/consoleObservable.js"],"sourcesContent":["import { computeStackTrace } from '../tracekit'\nimport {\n createHandlingStack,\n formatErrorMessage,\n toStackTraceString,\n flattenErrorCauses\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 } from '../helper/enums'\nimport { ErrorSource } from '../helper/errorTools'\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 var error\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, function (param) {\n return param instanceof Error\n })\n error = {\n stack: firstErrorParam\n ? toStackTraceString(computeStackTrace(firstErrorParam))\n : undefined,\n causes: firstErrorParam\n ? flattenErrorCauses(firstErrorParam, 'console')\n : undefined,\n startClocks: clocksNow(),\n message: message,\n source: ErrorSource.CONSOLE,\n handling: ErrorHandling.HANDLED,\n handlingStack: handlingStack\n }\n }\n\n return {\n api: api,\n message: message,\n error: error,\n handlingStack: handlingStack\n }\n}\n\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return param\n }\n if (param instanceof Error) {\n return formatErrorMessage(computeStackTrace(param))\n }\n return jsonStringify(param, undefined, 2)\n}\n"],"mappings":"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","ignoreList":[]}
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":[]}
@@ -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 isErrorInstance = originalError instanceof Error;
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: stack,
50
+ stack: stackTrace ? toStackTraceString(stackTrace) : useFallbackStack ? NO_ERROR_STACK_PRESENT_MESSAGE : undefined,
49
51
  handlingStack: handlingStack,
50
- type: type,
51
- causes: 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":[]}
@@ -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
- displayIfDebugEnabled(e);
35
- if (onMonitorErrorCollected) {
36
- try {
37
- onMonitorErrorCollected(e);
38
- } catch (e) {
39
- displayIfDebugEnabled(e);
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 if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e)\n } catch (e) {\n displayIfDebugEnabled(e)\n }\n }\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,qBAAqB,CAACD,CAAC,CAAC;IACxB,IAAIf,uBAAuB,EAAE;MAC3B,IAAI;QACFA,uBAAuB,CAACe,CAAC,CAAC;MAC5B,CAAC,CAAC,OAAOA,CAAC,EAAE;QACVC,qBAAqB,CAACD,CAAC,CAAC;MAC1B;IACF;EACF;AACF;AAEO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAIH,IAAI,GAAG,EAAE,CAACI,KAAK,CAACC,IAAI,CAACP,SAAS,CAAC;EACnC;EACA,IAAIV,SAAS,EAAE;IACbkB,gBAAO,CAACC,KAAK,CAACN,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAACO,MAAM,CAACR,IAAI,CAAC,CAAC;EACvD;AACF","ignoreList":[]}
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, toStackTraceString, flattenErrorCauses } from '../helper/errorTools';
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, function (param) {
47
- return param instanceof Error;
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: 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 instanceof Error) {
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","toStackTraceString","flattenErrorCauses","mergeObservables","Observable","find","map","clocksNow","jsonStringify","ConsoleApiName","callMonitored","ErrorHandling","ErrorSource","consoleObservablesByApi","initConsoleObservable","apis","consoleObservables","api","createConsoleObservable","apply","resetConsoleObservable","observable","originalConsoleApi","console","params","slice","call","arguments","handlingStack","notify","buildConsoleLog","message","param","formatConsoleParameters","join","error","firstErrorParam","Error","stack","undefined","causes","startClocks","source","CONSOLE","handling","HANDLED"],"sources":["../../src/console/consoleObservable.js"],"sourcesContent":["import { computeStackTrace } from '../tracekit'\nimport {\n createHandlingStack,\n formatErrorMessage,\n toStackTraceString,\n flattenErrorCauses\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 } from '../helper/enums'\nimport { ErrorSource } from '../helper/errorTools'\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 var error\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, function (param) {\n return param instanceof Error\n })\n error = {\n stack: firstErrorParam\n ? toStackTraceString(computeStackTrace(firstErrorParam))\n : undefined,\n causes: firstErrorParam\n ? flattenErrorCauses(firstErrorParam, 'console')\n : undefined,\n startClocks: clocksNow(),\n message: message,\n source: ErrorSource.CONSOLE,\n handling: ErrorHandling.HANDLED,\n handlingStack: handlingStack\n }\n }\n\n return {\n api: api,\n message: message,\n error: error,\n handlingStack: handlingStack\n }\n}\n\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return param\n }\n if (param instanceof Error) {\n return formatErrorMessage(computeStackTrace(param))\n }\n return jsonStringify(param, undefined, 2)\n}\n"],"mappings":"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","ignoreList":[]}
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":"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","ignoreList":[]}
@@ -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 isErrorInstance = originalError instanceof Error;
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: stack,
36
+ stack: stackTrace ? toStackTraceString(stackTrace) : useFallbackStack ? NO_ERROR_STACK_PRESENT_MESSAGE : undefined,
36
37
  handlingStack: handlingStack,
37
- type: type,
38
- causes: 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":"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","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":"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","ignoreList":[]}
@@ -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
- displayIfDebugEnabled(e);
24
- if (onMonitorErrorCollected) {
25
- try {
26
- onMonitorErrorCollected(e);
27
- } catch (e) {
28
- displayIfDebugEnabled(e);
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 if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e)\n } catch (e) {\n displayIfDebugEnabled(e)\n }\n }\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,qBAAqB,CAACD,CAAC,CAAC;IACxB,IAAIf,uBAAuB,EAAE;MAC3B,IAAI;QACFA,uBAAuB,CAACe,CAAC,CAAC;MAC5B,CAAC,CAAC,OAAOA,CAAC,EAAE;QACVC,qBAAqB,CAACD,CAAC,CAAC;MAC1B;IACF;EACF;AACF;AAEA,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAIH,IAAI,GAAG,EAAE,CAACI,KAAK,CAACC,IAAI,CAACP,SAAS,CAAC;EACnC;EACA,IAAIV,SAAS,EAAE;IACbF,OAAO,CAACoB,KAAK,CAACL,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAACM,MAAM,CAACP,IAAI,CAAC,CAAC;EACvD;AACF","ignoreList":[]}
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.48",
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": "24c6a541872274c0454f3bf281e0655a429651ba"
27
+ "gitHead": "aa9c48254a3fb856859d9844b47c0a940b363658"
28
28
  }
@@ -2,16 +2,17 @@ import { computeStackTrace } from '../tracekit'
2
2
  import {
3
3
  createHandlingStack,
4
4
  formatErrorMessage,
5
- toStackTraceString,
6
- flattenErrorCauses
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, function (param) {
55
- return param instanceof Error
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: 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 instanceof Error) {
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
  }
@@ -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 isErrorInstance = originalError instanceof Error
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: stack,
44
+ stack: stackTrace
45
+ ? toStackTraceString(stackTrace)
46
+ : useFallbackStack
47
+ ? NO_ERROR_STACK_PRESENT_MESSAGE
48
+ : undefined,
48
49
  handlingStack: handlingStack,
49
- type: type,
50
- causes: 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
+ }
@@ -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
- displayIfDebugEnabled(e)
29
- if (onMonitorErrorCollected) {
30
- try {
31
- onMonitorErrorCollected(e)
32
- } catch (e) {
33
- displayIfDebugEnabled(e)
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))