@sentry/browser 6.17.6 → 6.17.7

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.
@@ -1,4 +1,4 @@
1
- /*! @sentry/browser 6.17.6 (4b4faec) | https://github.com/getsentry/sentry-javascript */
1
+ /*! @sentry/browser 6.17.7 (635dfc2) | https://github.com/getsentry/sentry-javascript */
2
2
  var Sentry = (function (exports) {
3
3
  /**
4
4
  * TODO(v7): Remove this enum and replace with SeverityLevel
@@ -707,16 +707,18 @@ var Sentry = (function (exports) {
707
707
  source[name] = wrapped;
708
708
  }
709
709
  /**
710
- * Defines a non enumerable property. This creates a non enumerable property on an object.
710
+ * Defines a non-enumerable property on the given object.
711
711
  *
712
- * @param func The function to set a property to
713
- * @param name the name of the special sentry property
714
- * @param value the property to define
712
+ * @param obj The object on which to set the property
713
+ * @param name The name of the property to be set
714
+ * @param value The value to which to set the property
715
715
  */
716
- // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
717
- function addNonEnumerableProperty(func, name, value) {
718
- Object.defineProperty(func, name, {
716
+ function addNonEnumerableProperty(obj, name, value) {
717
+ Object.defineProperty(obj, name, {
718
+ // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it
719
719
  value: value,
720
+ writable: true,
721
+ configurable: true,
720
722
  });
721
723
  }
722
724
  /**
@@ -1212,12 +1214,12 @@ var Sentry = (function (exports) {
1212
1214
  if (!(level in global$2.console)) {
1213
1215
  return;
1214
1216
  }
1215
- fill(global$2.console, level, function (originalConsoleLevel) {
1217
+ fill(global$2.console, level, function (originalConsoleMethod) {
1216
1218
  return function (...args) {
1217
1219
  triggerHandlers('console', { args, level });
1218
1220
  // this fails for some browsers. :(
1219
- if (originalConsoleLevel) {
1220
- Function.prototype.apply.call(originalConsoleLevel, global$2.console, args);
1221
+ if (originalConsoleMethod) {
1222
+ originalConsoleMethod.call(global$2.console, args);
1221
1223
  }
1222
1224
  };
1223
1225
  });
@@ -4261,7 +4263,7 @@ var Sentry = (function (exports) {
4261
4263
  hub.bindClient(client);
4262
4264
  }
4263
4265
 
4264
- const SDK_VERSION = '6.17.6';
4266
+ const SDK_VERSION = '6.17.7';
4265
4267
 
4266
4268
  let originalFunctionToString;
4267
4269
  /** Patch toString calls to return proper name for wrapped functions */
@@ -4499,7 +4501,7 @@ var Sentry = (function (exports) {
4499
4501
  // global reference to slice
4500
4502
  const UNKNOWN_FUNCTION = '?';
4501
4503
  // Chromium based browsers: Chrome, Brave, new Opera, new Edge
4502
- const chrome = /^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
4504
+ const chrome = /^\s*at (?:(.*?) ?\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
4503
4505
  // gecko regex: `(?:bundle|\d+\.js)`: `bundle` is for react native, `\d+\.js` also but specifically for ram bundles because it
4504
4506
  // generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js
4505
4507
  // We need this specific case for now because we want no other regex to match.
@@ -4562,9 +4564,8 @@ var Sentry = (function (exports) {
4562
4564
  let submatch;
4563
4565
  let parts;
4564
4566
  let element;
4565
- for (let i = 0; i < lines.length; ++i) {
4566
- if ((parts = chrome.exec(lines[i]))) {
4567
- const isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line
4567
+ for (const line of lines) {
4568
+ if ((parts = chrome.exec(line))) {
4568
4569
  isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line
4569
4570
  if (isEval && (submatch = chromeEval.exec(parts[2]))) {
4570
4571
  // throw out eval line/column and use top-most line/column number
@@ -4572,31 +4573,25 @@ var Sentry = (function (exports) {
4572
4573
  parts[3] = submatch[2]; // line
4573
4574
  parts[4] = submatch[3]; // column
4574
4575
  }
4575
- // Arpad: Working with the regexp above is super painful. it is quite a hack, but just stripping the `address at `
4576
- // prefix here seems like the quickest solution for now.
4577
- let url = parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2];
4578
4576
  // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now
4579
4577
  // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)
4580
- let func = parts[1] || UNKNOWN_FUNCTION;
4581
- [func, url] = extractSafariExtensionDetails(func, url);
4578
+ const [func, url] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);
4582
4579
  element = {
4583
4580
  url,
4584
4581
  func,
4585
- args: isNative ? [parts[2]] : [],
4586
4582
  line: parts[3] ? +parts[3] : null,
4587
4583
  column: parts[4] ? +parts[4] : null,
4588
4584
  };
4589
4585
  }
4590
- else if ((parts = winjs.exec(lines[i]))) {
4586
+ else if ((parts = winjs.exec(line))) {
4591
4587
  element = {
4592
4588
  url: parts[2],
4593
4589
  func: parts[1] || UNKNOWN_FUNCTION,
4594
- args: [],
4595
4590
  line: +parts[3],
4596
4591
  column: parts[4] ? +parts[4] : null,
4597
4592
  };
4598
4593
  }
4599
- else if ((parts = gecko.exec(lines[i]))) {
4594
+ else if ((parts = gecko.exec(line))) {
4600
4595
  isEval = parts[3] && parts[3].indexOf(' > eval') > -1;
4601
4596
  if (isEval && (submatch = geckoEval.exec(parts[3]))) {
4602
4597
  // throw out eval line/column and use top-most line number
@@ -4605,20 +4600,12 @@ var Sentry = (function (exports) {
4605
4600
  parts[4] = submatch[2];
4606
4601
  parts[5] = ''; // no column when eval
4607
4602
  }
4608
- else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {
4609
- // FireFox uses this awesome columnNumber property for its top frame
4610
- // Also note, Firefox's column number is 0-based and everything else expects 1-based,
4611
- // so adding 1
4612
- // NOTE: this hack doesn't work if top-most frame is eval
4613
- stack[0].column = ex.columnNumber + 1;
4614
- }
4615
4603
  let url = parts[3];
4616
4604
  let func = parts[1] || UNKNOWN_FUNCTION;
4617
4605
  [func, url] = extractSafariExtensionDetails(func, url);
4618
4606
  element = {
4619
4607
  url,
4620
4608
  func,
4621
- args: parts[2] ? parts[2].split(',') : [],
4622
4609
  line: parts[4] ? +parts[4] : null,
4623
4610
  column: parts[5] ? +parts[5] : null,
4624
4611
  };
@@ -4626,9 +4613,6 @@ var Sentry = (function (exports) {
4626
4613
  else {
4627
4614
  continue;
4628
4615
  }
4629
- if (!element.func && element.line) {
4630
- element.func = UNKNOWN_FUNCTION;
4631
- }
4632
4616
  stack.push(element);
4633
4617
  }
4634
4618
  if (!stack.length) {
@@ -4651,7 +4635,7 @@ var Sentry = (function (exports) {
4651
4635
  // reliably in other circumstances.
4652
4636
  const stacktrace = ex.stacktrace;
4653
4637
  const opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
4654
- const opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\((.*)\))? in (.*):\s*$/i;
4638
+ const opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i;
4655
4639
  const lines = stacktrace.split('\n');
4656
4640
  const stack = [];
4657
4641
  let parts;
@@ -4661,16 +4645,14 @@ var Sentry = (function (exports) {
4661
4645
  element = {
4662
4646
  url: parts[2],
4663
4647
  func: parts[3],
4664
- args: [],
4665
4648
  line: +parts[1],
4666
4649
  column: null,
4667
4650
  };
4668
4651
  }
4669
4652
  else if ((parts = opera11Regex.exec(lines[line]))) {
4670
4653
  element = {
4671
- url: parts[6],
4654
+ url: parts[5],
4672
4655
  func: parts[3] || parts[4],
4673
- args: parts[5] ? parts[5].split(',') : [],
4674
4656
  line: +parts[1],
4675
4657
  column: +parts[2],
4676
4658
  };