fix(angular): Filter out TryCatch integration by default - #8367

Merged
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch
Jun 20, 2023
Merged

fix(angular): Filter out TryCatch integration by default#8367
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch

Conversation

@Lms24

Copy link
Copy Markdown
Member

As explained in #5417 (comment), the TryCatch default integration interferes with the SentryErrorHander error handler of the Angular(-Ivy) SDKs by catching certain errors too early, before the Angular SDK-specific error handler can catch them. This caused missing data on the event in some or duplicated errors in other cases.

This PR filters out the TryCatch by default, as long as users didn't set defaultIntegrations in their SDK init. Therefore, it makes the previously provided workaround obsolete.

The fix isn't ideal for two reasons but IMO we should nevertheless do this now to fix a long lasting problem and clean things up in v8:

  • If users did not set up SentryErrorHandler as documented, certain errors might not be caught anymore. However, I don't think we should degrade the Sentry experience for everyone who set up the SDK correctly to account for this edge case.
  • We cannot remove the TryCatch integration from the exported defaultIntegrations array of the SDK as this would be a breaking change. This also means that the integration will be bundled and only filtered at runtime for now. I've added the removal of the integration to our v8 deprecation/removals list (JS SDK v8 Deprecations List #5194).

closes#2744
ref #5417

@Lms24
Lms24 requested review from a team, lforst and mydea and removed request for a teamJune 20, 2023 08:45
@Lms24
Lms24 marked this pull request as draft June 20, 2023 08:57
@Lms24

Copy link
Copy Markdown
MemberAuthor

We discussed another approach to this, namely deactivating the TryCatch integration when the error handler is initialized. The advantage of this approach would be that incomplete SDK setups would not be impacted by the fix and errors would still be caught by the TryCatch integration for in this case. However, after evaluating two possible implementations, I believe this isn't worth the effort:

  • Angular-SDK-specific TryCatch integration
    • Extending TryCatch in the Angular SDK doesn't work because we already patch the timer functions in TryCatch during setupOnce. At this point, the Angular SDK cannot yet deactivate the integration because the error handler isn't yet initialized. So the only option would be to completely duplicate the TryCatch integration with a disable logic which IMO is unnecessary overhead and an increased maintenance burden for the edge case we want to account for.
  • Changing the Browser SDK's TryCatch integration
    • Adding a disabling method to the original TryCatch integration unnecessarily increases bundle size as well as complexity for all other Browser-based SDKs, which I'd argue doesn't justify the minimal value this change would provide.

If we ever encounter a TryCatch problem like the one in the Angular SDK's case, we can/should revisit this and think about option two but for now I'd argue we move forward with filtering out TryCatch as proposed in this PR.

@Lms24
Lms24 marked this pull request as ready for review June 20, 2023 09:23

@AbhiPrasadAbhiPrasad left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather we take the approach to add a custom TryCatch specific to Angular, we can do this easily by refactoring the original TryCatch integration to add some additional protected methods that can be overriden.

Unfortunately this might be breaking because of people relying on the TryCatch class instance for things, so I think this solution works best.

@Lms24Lms24 mentioned this pull request Jun 20, 2023
@Lms24

Copy link
Copy Markdown
MemberAuthor

@AbhiPrasad yes I was also thinking about adding a protected field to the original TryCatch that the Angular specific one could override. I added this under "Up for Discussion" in #5194 for v8.

@Lms24
Lms24 merged commit e5e6a6b into developJun 20, 2023
@Lms24
Lms24 deleted the lms/fix-angular-trycatch branch June 20, 2023 14:27
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/browser from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI0MzczZjBlYi1iMTUyLTQ3Y2QtOTkxNi0yMzQ5NzY5NDIxZTIiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjQzNzNmMGViLWIxNTItNDdjZC05OTE2LTIzNDk3Njk0MjFlMiJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"4373f0eb-b152-47cd-9916-2349769421e2","prPublicId":"4373f0eb-b152-47cd-9916-2349769421e2","dependencies":[{"name":"@sentry/browser","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.479Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/tracing from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/tracing</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/tracing
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI3NzRmZmVjZC03ZmJkLTRlZTEtYTI0Mi1hMWMzNTBkMjNmYTMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijc3NGZmZWNkLTdmYmQtNGVlMS1hMjQyLWExYzM1MGQyM2ZhMyJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/tracing&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","prPublicId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","dependencies":[{"name":"@sentry/tracing","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.555Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Angular - errors are reported multiple times

3 participants

@Lms24@lforst@AbhiPrasad
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(angular): Filter out TryCatch integration by default - #8367

Merged
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch
Jun 20, 2023
Merged

fix(angular): Filter out TryCatch integration by default#8367
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch

Conversation

@Lms24

Copy link
Copy Markdown
Member

As explained in #5417 (comment), the TryCatch default integration interferes with the SentryErrorHander error handler of the Angular(-Ivy) SDKs by catching certain errors too early, before the Angular SDK-specific error handler can catch them. This caused missing data on the event in some or duplicated errors in other cases.

This PR filters out the TryCatch by default, as long as users didn't set defaultIntegrations in their SDK init. Therefore, it makes the previously provided workaround obsolete.

The fix isn't ideal for two reasons but IMO we should nevertheless do this now to fix a long lasting problem and clean things up in v8:

  • If users did not set up SentryErrorHandler as documented, certain errors might not be caught anymore. However, I don't think we should degrade the Sentry experience for everyone who set up the SDK correctly to account for this edge case.
  • We cannot remove the TryCatch integration from the exported defaultIntegrations array of the SDK as this would be a breaking change. This also means that the integration will be bundled and only filtered at runtime for now. I've added the removal of the integration to our v8 deprecation/removals list (JS SDK v8 Deprecations List #5194).

closes#2744
ref #5417

@Lms24
Lms24 requested review from a team, lforst and mydea and removed request for a teamJune 20, 2023 08:45
@Lms24
Lms24 marked this pull request as draft June 20, 2023 08:57
@Lms24

Copy link
Copy Markdown
MemberAuthor

We discussed another approach to this, namely deactivating the TryCatch integration when the error handler is initialized. The advantage of this approach would be that incomplete SDK setups would not be impacted by the fix and errors would still be caught by the TryCatch integration for in this case. However, after evaluating two possible implementations, I believe this isn't worth the effort:

  • Angular-SDK-specific TryCatch integration
    • Extending TryCatch in the Angular SDK doesn't work because we already patch the timer functions in TryCatch during setupOnce. At this point, the Angular SDK cannot yet deactivate the integration because the error handler isn't yet initialized. So the only option would be to completely duplicate the TryCatch integration with a disable logic which IMO is unnecessary overhead and an increased maintenance burden for the edge case we want to account for.
  • Changing the Browser SDK's TryCatch integration
    • Adding a disabling method to the original TryCatch integration unnecessarily increases bundle size as well as complexity for all other Browser-based SDKs, which I'd argue doesn't justify the minimal value this change would provide.

If we ever encounter a TryCatch problem like the one in the Angular SDK's case, we can/should revisit this and think about option two but for now I'd argue we move forward with filtering out TryCatch as proposed in this PR.

@Lms24
Lms24 marked this pull request as ready for review June 20, 2023 09:23

@AbhiPrasadAbhiPrasad left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather we take the approach to add a custom TryCatch specific to Angular, we can do this easily by refactoring the original TryCatch integration to add some additional protected methods that can be overriden.

Unfortunately this might be breaking because of people relying on the TryCatch class instance for things, so I think this solution works best.

@Lms24Lms24 mentioned this pull request Jun 20, 2023
@Lms24

Copy link
Copy Markdown
MemberAuthor

@AbhiPrasad yes I was also thinking about adding a protected field to the original TryCatch that the Angular specific one could override. I added this under "Up for Discussion" in #5194 for v8.

@Lms24
Lms24 merged commit e5e6a6b into developJun 20, 2023
@Lms24
Lms24 deleted the lms/fix-angular-trycatch branch June 20, 2023 14:27
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/browser from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI0MzczZjBlYi1iMTUyLTQ3Y2QtOTkxNi0yMzQ5NzY5NDIxZTIiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjQzNzNmMGViLWIxNTItNDdjZC05OTE2LTIzNDk3Njk0MjFlMiJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"4373f0eb-b152-47cd-9916-2349769421e2","prPublicId":"4373f0eb-b152-47cd-9916-2349769421e2","dependencies":[{"name":"@sentry/browser","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.479Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/tracing from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/tracing</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/tracing
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI3NzRmZmVjZC03ZmJkLTRlZTEtYTI0Mi1hMWMzNTBkMjNmYTMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijc3NGZmZWNkLTdmYmQtNGVlMS1hMjQyLWExYzM1MGQyM2ZhMyJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/tracing&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","prPublicId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","dependencies":[{"name":"@sentry/tracing","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.555Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Angular - errors are reported multiple times

3 participants

@Lms24@lforst@AbhiPrasad
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(angular): Filter out TryCatch integration by default - #8367

Merged
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch
Jun 20, 2023
Merged

fix(angular): Filter out TryCatch integration by default#8367
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch

Conversation

@Lms24

Copy link
Copy Markdown
Member

As explained in #5417 (comment), the TryCatch default integration interferes with the SentryErrorHander error handler of the Angular(-Ivy) SDKs by catching certain errors too early, before the Angular SDK-specific error handler can catch them. This caused missing data on the event in some or duplicated errors in other cases.

This PR filters out the TryCatch by default, as long as users didn't set defaultIntegrations in their SDK init. Therefore, it makes the previously provided workaround obsolete.

The fix isn't ideal for two reasons but IMO we should nevertheless do this now to fix a long lasting problem and clean things up in v8:

  • If users did not set up SentryErrorHandler as documented, certain errors might not be caught anymore. However, I don't think we should degrade the Sentry experience for everyone who set up the SDK correctly to account for this edge case.
  • We cannot remove the TryCatch integration from the exported defaultIntegrations array of the SDK as this would be a breaking change. This also means that the integration will be bundled and only filtered at runtime for now. I've added the removal of the integration to our v8 deprecation/removals list (JS SDK v8 Deprecations List #5194).

closes#2744
ref #5417

@Lms24
Lms24 requested review from a team, lforst and mydea and removed request for a teamJune 20, 2023 08:45
@Lms24
Lms24 marked this pull request as draft June 20, 2023 08:57
@Lms24

Copy link
Copy Markdown
MemberAuthor

We discussed another approach to this, namely deactivating the TryCatch integration when the error handler is initialized. The advantage of this approach would be that incomplete SDK setups would not be impacted by the fix and errors would still be caught by the TryCatch integration for in this case. However, after evaluating two possible implementations, I believe this isn't worth the effort:

  • Angular-SDK-specific TryCatch integration
    • Extending TryCatch in the Angular SDK doesn't work because we already patch the timer functions in TryCatch during setupOnce. At this point, the Angular SDK cannot yet deactivate the integration because the error handler isn't yet initialized. So the only option would be to completely duplicate the TryCatch integration with a disable logic which IMO is unnecessary overhead and an increased maintenance burden for the edge case we want to account for.
  • Changing the Browser SDK's TryCatch integration
    • Adding a disabling method to the original TryCatch integration unnecessarily increases bundle size as well as complexity for all other Browser-based SDKs, which I'd argue doesn't justify the minimal value this change would provide.

If we ever encounter a TryCatch problem like the one in the Angular SDK's case, we can/should revisit this and think about option two but for now I'd argue we move forward with filtering out TryCatch as proposed in this PR.

@Lms24
Lms24 marked this pull request as ready for review June 20, 2023 09:23

@AbhiPrasadAbhiPrasad left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather we take the approach to add a custom TryCatch specific to Angular, we can do this easily by refactoring the original TryCatch integration to add some additional protected methods that can be overriden.

Unfortunately this might be breaking because of people relying on the TryCatch class instance for things, so I think this solution works best.

@Lms24Lms24 mentioned this pull request Jun 20, 2023
@Lms24

Copy link
Copy Markdown
MemberAuthor

@AbhiPrasad yes I was also thinking about adding a protected field to the original TryCatch that the Angular specific one could override. I added this under "Up for Discussion" in #5194 for v8.

@Lms24
Lms24 merged commit e5e6a6b into developJun 20, 2023
@Lms24
Lms24 deleted the lms/fix-angular-trycatch branch June 20, 2023 14:27
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/browser from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI0MzczZjBlYi1iMTUyLTQ3Y2QtOTkxNi0yMzQ5NzY5NDIxZTIiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjQzNzNmMGViLWIxNTItNDdjZC05OTE2LTIzNDk3Njk0MjFlMiJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"4373f0eb-b152-47cd-9916-2349769421e2","prPublicId":"4373f0eb-b152-47cd-9916-2349769421e2","dependencies":[{"name":"@sentry/browser","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.479Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/tracing from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/tracing</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/tracing
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI3NzRmZmVjZC03ZmJkLTRlZTEtYTI0Mi1hMWMzNTBkMjNmYTMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijc3NGZmZWNkLTdmYmQtNGVlMS1hMjQyLWExYzM1MGQyM2ZhMyJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/tracing&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","prPublicId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","dependencies":[{"name":"@sentry/tracing","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.555Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Angular - errors are reported multiple times

3 participants

@Lms24@lforst@AbhiPrasad
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(angular): Filter out TryCatch integration by default - #8367

Merged
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch
Jun 20, 2023
Merged

fix(angular): Filter out TryCatch integration by default#8367
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch

Conversation

@Lms24

Copy link
Copy Markdown
Member

As explained in #5417 (comment), the TryCatch default integration interferes with the SentryErrorHander error handler of the Angular(-Ivy) SDKs by catching certain errors too early, before the Angular SDK-specific error handler can catch them. This caused missing data on the event in some or duplicated errors in other cases.

This PR filters out the TryCatch by default, as long as users didn't set defaultIntegrations in their SDK init. Therefore, it makes the previously provided workaround obsolete.

The fix isn't ideal for two reasons but IMO we should nevertheless do this now to fix a long lasting problem and clean things up in v8:

  • If users did not set up SentryErrorHandler as documented, certain errors might not be caught anymore. However, I don't think we should degrade the Sentry experience for everyone who set up the SDK correctly to account for this edge case.
  • We cannot remove the TryCatch integration from the exported defaultIntegrations array of the SDK as this would be a breaking change. This also means that the integration will be bundled and only filtered at runtime for now. I've added the removal of the integration to our v8 deprecation/removals list (JS SDK v8 Deprecations List #5194).

closes#2744
ref #5417

@Lms24
Lms24 requested review from a team, lforst and mydea and removed request for a teamJune 20, 2023 08:45
@Lms24
Lms24 marked this pull request as draft June 20, 2023 08:57
@Lms24

Copy link
Copy Markdown
MemberAuthor

We discussed another approach to this, namely deactivating the TryCatch integration when the error handler is initialized. The advantage of this approach would be that incomplete SDK setups would not be impacted by the fix and errors would still be caught by the TryCatch integration for in this case. However, after evaluating two possible implementations, I believe this isn't worth the effort:

  • Angular-SDK-specific TryCatch integration
    • Extending TryCatch in the Angular SDK doesn't work because we already patch the timer functions in TryCatch during setupOnce. At this point, the Angular SDK cannot yet deactivate the integration because the error handler isn't yet initialized. So the only option would be to completely duplicate the TryCatch integration with a disable logic which IMO is unnecessary overhead and an increased maintenance burden for the edge case we want to account for.
  • Changing the Browser SDK's TryCatch integration
    • Adding a disabling method to the original TryCatch integration unnecessarily increases bundle size as well as complexity for all other Browser-based SDKs, which I'd argue doesn't justify the minimal value this change would provide.

If we ever encounter a TryCatch problem like the one in the Angular SDK's case, we can/should revisit this and think about option two but for now I'd argue we move forward with filtering out TryCatch as proposed in this PR.

@Lms24
Lms24 marked this pull request as ready for review June 20, 2023 09:23

@AbhiPrasadAbhiPrasad left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather we take the approach to add a custom TryCatch specific to Angular, we can do this easily by refactoring the original TryCatch integration to add some additional protected methods that can be overriden.

Unfortunately this might be breaking because of people relying on the TryCatch class instance for things, so I think this solution works best.

@Lms24Lms24 mentioned this pull request Jun 20, 2023
@Lms24

Copy link
Copy Markdown
MemberAuthor

@AbhiPrasad yes I was also thinking about adding a protected field to the original TryCatch that the Angular specific one could override. I added this under "Up for Discussion" in #5194 for v8.

@Lms24
Lms24 merged commit e5e6a6b into developJun 20, 2023
@Lms24
Lms24 deleted the lms/fix-angular-trycatch branch June 20, 2023 14:27
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/browser from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI0MzczZjBlYi1iMTUyLTQ3Y2QtOTkxNi0yMzQ5NzY5NDIxZTIiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjQzNzNmMGViLWIxNTItNDdjZC05OTE2LTIzNDk3Njk0MjFlMiJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"4373f0eb-b152-47cd-9916-2349769421e2","prPublicId":"4373f0eb-b152-47cd-9916-2349769421e2","dependencies":[{"name":"@sentry/browser","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.479Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/tracing from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/tracing</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/tracing
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI3NzRmZmVjZC03ZmJkLTRlZTEtYTI0Mi1hMWMzNTBkMjNmYTMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijc3NGZmZWNkLTdmYmQtNGVlMS1hMjQyLWExYzM1MGQyM2ZhMyJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/tracing&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","prPublicId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","dependencies":[{"name":"@sentry/tracing","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.555Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Angular - errors are reported multiple times

3 participants

@Lms24@lforst@AbhiPrasad
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(angular): Filter out TryCatch integration by default - #8367

Merged
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch
Jun 20, 2023
Merged

fix(angular): Filter out TryCatch integration by default#8367
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch

Conversation

@Lms24

Copy link
Copy Markdown
Member

As explained in #5417 (comment), the TryCatch default integration interferes with the SentryErrorHander error handler of the Angular(-Ivy) SDKs by catching certain errors too early, before the Angular SDK-specific error handler can catch them. This caused missing data on the event in some or duplicated errors in other cases.

This PR filters out the TryCatch by default, as long as users didn't set defaultIntegrations in their SDK init. Therefore, it makes the previously provided workaround obsolete.

The fix isn't ideal for two reasons but IMO we should nevertheless do this now to fix a long lasting problem and clean things up in v8:

  • If users did not set up SentryErrorHandler as documented, certain errors might not be caught anymore. However, I don't think we should degrade the Sentry experience for everyone who set up the SDK correctly to account for this edge case.
  • We cannot remove the TryCatch integration from the exported defaultIntegrations array of the SDK as this would be a breaking change. This also means that the integration will be bundled and only filtered at runtime for now. I've added the removal of the integration to our v8 deprecation/removals list (JS SDK v8 Deprecations List #5194).

closes#2744
ref #5417

@Lms24
Lms24 requested review from a team, lforst and mydea and removed request for a teamJune 20, 2023 08:45
@Lms24
Lms24 marked this pull request as draft June 20, 2023 08:57
@Lms24

Copy link
Copy Markdown
MemberAuthor

We discussed another approach to this, namely deactivating the TryCatch integration when the error handler is initialized. The advantage of this approach would be that incomplete SDK setups would not be impacted by the fix and errors would still be caught by the TryCatch integration for in this case. However, after evaluating two possible implementations, I believe this isn't worth the effort:

  • Angular-SDK-specific TryCatch integration
    • Extending TryCatch in the Angular SDK doesn't work because we already patch the timer functions in TryCatch during setupOnce. At this point, the Angular SDK cannot yet deactivate the integration because the error handler isn't yet initialized. So the only option would be to completely duplicate the TryCatch integration with a disable logic which IMO is unnecessary overhead and an increased maintenance burden for the edge case we want to account for.
  • Changing the Browser SDK's TryCatch integration
    • Adding a disabling method to the original TryCatch integration unnecessarily increases bundle size as well as complexity for all other Browser-based SDKs, which I'd argue doesn't justify the minimal value this change would provide.

If we ever encounter a TryCatch problem like the one in the Angular SDK's case, we can/should revisit this and think about option two but for now I'd argue we move forward with filtering out TryCatch as proposed in this PR.

@Lms24
Lms24 marked this pull request as ready for review June 20, 2023 09:23

@AbhiPrasadAbhiPrasad left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather we take the approach to add a custom TryCatch specific to Angular, we can do this easily by refactoring the original TryCatch integration to add some additional protected methods that can be overriden.

Unfortunately this might be breaking because of people relying on the TryCatch class instance for things, so I think this solution works best.

@Lms24Lms24 mentioned this pull request Jun 20, 2023
@Lms24

Copy link
Copy Markdown
MemberAuthor

@AbhiPrasad yes I was also thinking about adding a protected field to the original TryCatch that the Angular specific one could override. I added this under "Up for Discussion" in #5194 for v8.

@Lms24
Lms24 merged commit e5e6a6b into developJun 20, 2023
@Lms24
Lms24 deleted the lms/fix-angular-trycatch branch June 20, 2023 14:27
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/browser from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI0MzczZjBlYi1iMTUyLTQ3Y2QtOTkxNi0yMzQ5NzY5NDIxZTIiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjQzNzNmMGViLWIxNTItNDdjZC05OTE2LTIzNDk3Njk0MjFlMiJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"4373f0eb-b152-47cd-9916-2349769421e2","prPublicId":"4373f0eb-b152-47cd-9916-2349769421e2","dependencies":[{"name":"@sentry/browser","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.479Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/tracing from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/tracing</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/tracing
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI3NzRmZmVjZC03ZmJkLTRlZTEtYTI0Mi1hMWMzNTBkMjNmYTMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijc3NGZmZWNkLTdmYmQtNGVlMS1hMjQyLWExYzM1MGQyM2ZhMyJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/tracing&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","prPublicId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","dependencies":[{"name":"@sentry/tracing","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.555Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Angular - errors are reported multiple times

3 participants

@Lms24@lforst@AbhiPrasad
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(angular): Filter out TryCatch integration by default - #8367

Merged
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch
Jun 20, 2023
Merged

fix(angular): Filter out TryCatch integration by default#8367
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch

Conversation

@Lms24

Copy link
Copy Markdown
Member

As explained in #5417 (comment), the TryCatch default integration interferes with the SentryErrorHander error handler of the Angular(-Ivy) SDKs by catching certain errors too early, before the Angular SDK-specific error handler can catch them. This caused missing data on the event in some or duplicated errors in other cases.

This PR filters out the TryCatch by default, as long as users didn't set defaultIntegrations in their SDK init. Therefore, it makes the previously provided workaround obsolete.

The fix isn't ideal for two reasons but IMO we should nevertheless do this now to fix a long lasting problem and clean things up in v8:

  • If users did not set up SentryErrorHandler as documented, certain errors might not be caught anymore. However, I don't think we should degrade the Sentry experience for everyone who set up the SDK correctly to account for this edge case.
  • We cannot remove the TryCatch integration from the exported defaultIntegrations array of the SDK as this would be a breaking change. This also means that the integration will be bundled and only filtered at runtime for now. I've added the removal of the integration to our v8 deprecation/removals list (JS SDK v8 Deprecations List #5194).

closes#2744
ref #5417

@Lms24
Lms24 requested review from a team, lforst and mydea and removed request for a teamJune 20, 2023 08:45
@Lms24
Lms24 marked this pull request as draft June 20, 2023 08:57
@Lms24

Copy link
Copy Markdown
MemberAuthor

We discussed another approach to this, namely deactivating the TryCatch integration when the error handler is initialized. The advantage of this approach would be that incomplete SDK setups would not be impacted by the fix and errors would still be caught by the TryCatch integration for in this case. However, after evaluating two possible implementations, I believe this isn't worth the effort:

  • Angular-SDK-specific TryCatch integration
    • Extending TryCatch in the Angular SDK doesn't work because we already patch the timer functions in TryCatch during setupOnce. At this point, the Angular SDK cannot yet deactivate the integration because the error handler isn't yet initialized. So the only option would be to completely duplicate the TryCatch integration with a disable logic which IMO is unnecessary overhead and an increased maintenance burden for the edge case we want to account for.
  • Changing the Browser SDK's TryCatch integration
    • Adding a disabling method to the original TryCatch integration unnecessarily increases bundle size as well as complexity for all other Browser-based SDKs, which I'd argue doesn't justify the minimal value this change would provide.

If we ever encounter a TryCatch problem like the one in the Angular SDK's case, we can/should revisit this and think about option two but for now I'd argue we move forward with filtering out TryCatch as proposed in this PR.

@Lms24
Lms24 marked this pull request as ready for review June 20, 2023 09:23

@AbhiPrasadAbhiPrasad left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather we take the approach to add a custom TryCatch specific to Angular, we can do this easily by refactoring the original TryCatch integration to add some additional protected methods that can be overriden.

Unfortunately this might be breaking because of people relying on the TryCatch class instance for things, so I think this solution works best.

@Lms24Lms24 mentioned this pull request Jun 20, 2023
@Lms24

Copy link
Copy Markdown
MemberAuthor

@AbhiPrasad yes I was also thinking about adding a protected field to the original TryCatch that the Angular specific one could override. I added this under "Up for Discussion" in #5194 for v8.

@Lms24
Lms24 merged commit e5e6a6b into developJun 20, 2023
@Lms24
Lms24 deleted the lms/fix-angular-trycatch branch June 20, 2023 14:27
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/browser from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI0MzczZjBlYi1iMTUyLTQ3Y2QtOTkxNi0yMzQ5NzY5NDIxZTIiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjQzNzNmMGViLWIxNTItNDdjZC05OTE2LTIzNDk3Njk0MjFlMiJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"4373f0eb-b152-47cd-9916-2349769421e2","prPublicId":"4373f0eb-b152-47cd-9916-2349769421e2","dependencies":[{"name":"@sentry/browser","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.479Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/tracing from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/tracing</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/tracing
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI3NzRmZmVjZC03ZmJkLTRlZTEtYTI0Mi1hMWMzNTBkMjNmYTMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijc3NGZmZWNkLTdmYmQtNGVlMS1hMjQyLWExYzM1MGQyM2ZhMyJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/tracing&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","prPublicId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","dependencies":[{"name":"@sentry/tracing","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.555Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Angular - errors are reported multiple times

3 participants

@Lms24@lforst@AbhiPrasad
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(angular): Filter out TryCatch integration by default - #8367

Merged
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch
Jun 20, 2023
Merged

fix(angular): Filter out TryCatch integration by default#8367
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch

Conversation

@Lms24

Copy link
Copy Markdown
Member

As explained in #5417 (comment), the TryCatch default integration interferes with the SentryErrorHander error handler of the Angular(-Ivy) SDKs by catching certain errors too early, before the Angular SDK-specific error handler can catch them. This caused missing data on the event in some or duplicated errors in other cases.

This PR filters out the TryCatch by default, as long as users didn't set defaultIntegrations in their SDK init. Therefore, it makes the previously provided workaround obsolete.

The fix isn't ideal for two reasons but IMO we should nevertheless do this now to fix a long lasting problem and clean things up in v8:

  • If users did not set up SentryErrorHandler as documented, certain errors might not be caught anymore. However, I don't think we should degrade the Sentry experience for everyone who set up the SDK correctly to account for this edge case.
  • We cannot remove the TryCatch integration from the exported defaultIntegrations array of the SDK as this would be a breaking change. This also means that the integration will be bundled and only filtered at runtime for now. I've added the removal of the integration to our v8 deprecation/removals list (JS SDK v8 Deprecations List #5194).

closes#2744
ref #5417

@Lms24
Lms24 requested review from a team, lforst and mydea and removed request for a teamJune 20, 2023 08:45
@Lms24
Lms24 marked this pull request as draft June 20, 2023 08:57
@Lms24

Copy link
Copy Markdown
MemberAuthor

We discussed another approach to this, namely deactivating the TryCatch integration when the error handler is initialized. The advantage of this approach would be that incomplete SDK setups would not be impacted by the fix and errors would still be caught by the TryCatch integration for in this case. However, after evaluating two possible implementations, I believe this isn't worth the effort:

  • Angular-SDK-specific TryCatch integration
    • Extending TryCatch in the Angular SDK doesn't work because we already patch the timer functions in TryCatch during setupOnce. At this point, the Angular SDK cannot yet deactivate the integration because the error handler isn't yet initialized. So the only option would be to completely duplicate the TryCatch integration with a disable logic which IMO is unnecessary overhead and an increased maintenance burden for the edge case we want to account for.
  • Changing the Browser SDK's TryCatch integration
    • Adding a disabling method to the original TryCatch integration unnecessarily increases bundle size as well as complexity for all other Browser-based SDKs, which I'd argue doesn't justify the minimal value this change would provide.

If we ever encounter a TryCatch problem like the one in the Angular SDK's case, we can/should revisit this and think about option two but for now I'd argue we move forward with filtering out TryCatch as proposed in this PR.

@Lms24
Lms24 marked this pull request as ready for review June 20, 2023 09:23

@AbhiPrasadAbhiPrasad left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather we take the approach to add a custom TryCatch specific to Angular, we can do this easily by refactoring the original TryCatch integration to add some additional protected methods that can be overriden.

Unfortunately this might be breaking because of people relying on the TryCatch class instance for things, so I think this solution works best.

@Lms24Lms24 mentioned this pull request Jun 20, 2023
@Lms24

Copy link
Copy Markdown
MemberAuthor

@AbhiPrasad yes I was also thinking about adding a protected field to the original TryCatch that the Angular specific one could override. I added this under "Up for Discussion" in #5194 for v8.

@Lms24
Lms24 merged commit e5e6a6b into developJun 20, 2023
@Lms24
Lms24 deleted the lms/fix-angular-trycatch branch June 20, 2023 14:27
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/browser from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI0MzczZjBlYi1iMTUyLTQ3Y2QtOTkxNi0yMzQ5NzY5NDIxZTIiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjQzNzNmMGViLWIxNTItNDdjZC05OTE2LTIzNDk3Njk0MjFlMiJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"4373f0eb-b152-47cd-9916-2349769421e2","prPublicId":"4373f0eb-b152-47cd-9916-2349769421e2","dependencies":[{"name":"@sentry/browser","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.479Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/tracing from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/tracing</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/tracing
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI3NzRmZmVjZC03ZmJkLTRlZTEtYTI0Mi1hMWMzNTBkMjNmYTMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijc3NGZmZWNkLTdmYmQtNGVlMS1hMjQyLWExYzM1MGQyM2ZhMyJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/tracing&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","prPublicId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","dependencies":[{"name":"@sentry/tracing","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.555Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Angular - errors are reported multiple times

3 participants

@Lms24@lforst@AbhiPrasad
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(angular): Filter out TryCatch integration by default - #8367

Merged
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch
Jun 20, 2023
Merged

fix(angular): Filter out TryCatch integration by default#8367
Lms24 merged 1 commit into
developfrom
lms/fix-angular-trycatch

Conversation

@Lms24

Copy link
Copy Markdown
Member

As explained in #5417 (comment), the TryCatch default integration interferes with the SentryErrorHander error handler of the Angular(-Ivy) SDKs by catching certain errors too early, before the Angular SDK-specific error handler can catch them. This caused missing data on the event in some or duplicated errors in other cases.

This PR filters out the TryCatch by default, as long as users didn't set defaultIntegrations in their SDK init. Therefore, it makes the previously provided workaround obsolete.

The fix isn't ideal for two reasons but IMO we should nevertheless do this now to fix a long lasting problem and clean things up in v8:

  • If users did not set up SentryErrorHandler as documented, certain errors might not be caught anymore. However, I don't think we should degrade the Sentry experience for everyone who set up the SDK correctly to account for this edge case.
  • We cannot remove the TryCatch integration from the exported defaultIntegrations array of the SDK as this would be a breaking change. This also means that the integration will be bundled and only filtered at runtime for now. I've added the removal of the integration to our v8 deprecation/removals list (JS SDK v8 Deprecations List #5194).

closes#2744
ref #5417

@Lms24
Lms24 requested review from a team, lforst and mydea and removed request for a teamJune 20, 2023 08:45
@Lms24
Lms24 marked this pull request as draft June 20, 2023 08:57
@Lms24

Copy link
Copy Markdown
MemberAuthor

We discussed another approach to this, namely deactivating the TryCatch integration when the error handler is initialized. The advantage of this approach would be that incomplete SDK setups would not be impacted by the fix and errors would still be caught by the TryCatch integration for in this case. However, after evaluating two possible implementations, I believe this isn't worth the effort:

  • Angular-SDK-specific TryCatch integration
    • Extending TryCatch in the Angular SDK doesn't work because we already patch the timer functions in TryCatch during setupOnce. At this point, the Angular SDK cannot yet deactivate the integration because the error handler isn't yet initialized. So the only option would be to completely duplicate the TryCatch integration with a disable logic which IMO is unnecessary overhead and an increased maintenance burden for the edge case we want to account for.
  • Changing the Browser SDK's TryCatch integration
    • Adding a disabling method to the original TryCatch integration unnecessarily increases bundle size as well as complexity for all other Browser-based SDKs, which I'd argue doesn't justify the minimal value this change would provide.

If we ever encounter a TryCatch problem like the one in the Angular SDK's case, we can/should revisit this and think about option two but for now I'd argue we move forward with filtering out TryCatch as proposed in this PR.

@Lms24
Lms24 marked this pull request as ready for review June 20, 2023 09:23

@AbhiPrasadAbhiPrasad left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather we take the approach to add a custom TryCatch specific to Angular, we can do this easily by refactoring the original TryCatch integration to add some additional protected methods that can be overriden.

Unfortunately this might be breaking because of people relying on the TryCatch class instance for things, so I think this solution works best.

@Lms24Lms24 mentioned this pull request Jun 20, 2023
@Lms24

Copy link
Copy Markdown
MemberAuthor

@AbhiPrasad yes I was also thinking about adding a protected field to the original TryCatch that the Angular specific one could override. I added this under "Up for Discussion" in #5194 for v8.

@Lms24
Lms24 merged commit e5e6a6b into developJun 20, 2023
@Lms24
Lms24 deleted the lms/fix-angular-trycatch branch June 20, 2023 14:27
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/browser from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI0MzczZjBlYi1iMTUyLTQ3Y2QtOTkxNi0yMzQ5NzY5NDIxZTIiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjQzNzNmMGViLWIxNTItNDdjZC05OTE2LTIzNDk3Njk0MjFlMiJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"4373f0eb-b152-47cd-9916-2349769421e2","prPublicId":"4373f0eb-b152-47cd-9916-2349769421e2","dependencies":[{"name":"@sentry/browser","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.479Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
n1k0 pushed a commit to MTES-MCT/ecobalyse that referenced this pull request Jul 21, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
@sentry/tracing from 7.56.0 to 7.57.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-06-28.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/tracing</b></summary>
<ul>
<li>
<b>7.57.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0">2023-06-28</a></br><h3>Important
Changes</h3>
<ul>
<li><strong>build: Update typescript from 3.8.3 to 4.9.5 (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1732343050" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255">#8255</a>)</strong></li>
</ul>
<p>This release version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact,<br>
but if you still encounter issues please let us know.</p>
<ul>
<li><strong>feat(types): Add tracePropagationTargets to top level
options (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1771501713" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8395"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8395/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8395">#8395</a>)</strong></li>
</ul>
<p>Instead of passing <code>tracePropagationTargets</code> to the
<code>BrowserTracing</code> integration, you can now define them on the
top level:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
tracePropagationTargets: ['api.site.com'],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">tracePropagationTargets</span>: <span
class="pl-kos">[</span><span class="pl-s">'api.site.com'</span><span
class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<ul>
<li><strong>fix(angular): Filter out <code>TryCatch</code> integration
by default (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1764938256" data-permission-text="Title is
private"
data-url="getsentry/sentry-javascript#8367"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8367/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8367">#8367</a>)</strong></li>
</ul>
<p>The Angular and Angular-ivy SDKs will not install the TryCatch
integration anymore by default.<br>
This integration conflicted with the <code>SentryErrorHander</code>,
sometimes leading to duplicated errors and/or missing data on
events.</p>
<ul>
<li><strong>feat(browser): Better event name handling for non-Error
objects (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1767863342" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8374"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8374/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8374">#8374</a>)</strong></li>
</ul>
<p>When capturing non-errors via <code>Sentry.captureException()</code>,
e.g. <code>Sentry.captureException({ prop: "custom object"
})</code>,<br>
we now generate a more helpful value for the synthetic exception.
Instead of e.g. <code>Non-Error exception captured with keys:
currentTarget, isTrusted, target, type</code>, you'll now get messages
like:</p>
<div class="snippet-clipboard-content notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Object captured as
exception with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script
error.`"><pre class="notranslate"><code>Object captured as exception
with keys: prop1, prop2
Event `MouseEvent` (type=click) captured as exception
Event `ErrorEvent` captured as exception with message `Script error.`
</code></pre></div>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Send profiles in same envelope as transactions (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1767979830" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8375"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8375/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8375">#8375</a>)</li>
<li>feat(profiling): Collect timings on profiler stop calls (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1777004306" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8409"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8409/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8409">#8409</a>)</li>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
<li>feat(tracing): Add experiment to capture http timings (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1765573137" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8371"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8371/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8371">#8371</a>)</li>
<li>feat(tracing): Add <code>http.response.status_code</code> to
<code>span.data</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1764892325"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8366"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8366/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8366">#8366</a>)</li>
<li>fix(angular): Stop routing spans on navigation cancel and error
events (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1765286148" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8369"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8369/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8369">#8369</a>)</li>
<li>fix(core): Only start spans in <code>trace</code> if tracing is
enabled (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1763395305" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8357"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8357/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8357">#8357</a>)</li>
<li>fix(nextjs): Inject init calls via loader instead of via entrypoints
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1764971073" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8368"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8368/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8368">#8368</a>)</li>
<li>fix(replay): Mark ui.slowClickDetected <code>clickCount</code> as
optional (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="1768099155" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8376"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8376/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8376">#8376</a>)</li>
<li>fix(serverless): Export
<code>autoDiscoverNodePerformanceMonitoringIntegrations</code> from SDK
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769506334" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8382"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8382/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8382">#8382</a>)</li>
<li>fix(sveltekit): Check for cached requests in client-side fetch
instrumentation (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1770104495"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8391"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8391/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8391">#8391</a>)</li>
<li>fix(sveltekit): Only instrument SvelteKit <code>fetch</code> if the
SDK client is valid (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1769261512"
data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8381"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8381/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8381">#8381</a>)</li>
<li>fix(tracing): Instrument Prisma client in constructor of integration
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1769565969" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8383"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8383/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8383">#8383</a>)</li>
<li>ref(replay): More graceful <code>sessionStorage</code> check (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1770880521" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8394"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8394/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8394">#8394</a>)</li>
<li>ref(replay): Remove circular dep in replay eventBuffer (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1769990964" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8389"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8389/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8389">#8389</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.59 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.9 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.87 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.46 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.81 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.39 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.48 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.82 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.38 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.57.0-beta.0</b> - <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases/tag/7.57.0-beta.0">2023-06-21</a></br><p>This
beta version <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8255"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8255/hovercard">bumps
the internally used typescript version from 3.8.x to 4.9.x</a>.<br>
We use ds-downlevel to generate two versions of our types, one for
&gt;=3.8, one for &gt;=4.9.<br>
This means that this change should be fully backwards compatible and not
have any noticable user impact.</p>
<p>However, since this touches the whole code base, we decided to
release this as a beta first in order to ensure this is fully
stable.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(replay): Do not capture replays &lt; 5 seconds (GA) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1736970479" data-permission-text="Title is private"
data-url="getsentry/sentry-javascript#8277"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/8277/hovercard"
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/pull/8277">#8277</a>)</li>
</ul>
<h2>Bundle size <g-emoji class="g-emoji" alias="package"
fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png">📦</g-emoji></h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (gzipped + minified)</td>
<td>21.38 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES5 CDN Bundle (minified)</td>
<td>67.24 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (gzipped + minified)</td>
<td>19.72 KB</td>
</tr>
<tr>
<td>@ sentry/browser - ES6 CDN Bundle (minified)</td>
<td>58.61 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (gzipped + minified)</td>
<td>21.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser - Webpack (minified)</td>
<td>69.53 KB</td>
</tr>
<tr>
<td>@ sentry/react - Webpack (gzipped + minified)</td>
<td>21.37 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs Client - Webpack (gzipped + minified)</td>
<td>49.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES5 CDN Bundle (gzipped +
minified)</td>
<td>29.03 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing - ES6 CDN Bundle (gzipped +
minified)</td>
<td>27.04 KB</td>
</tr>
<tr>
<td>@ sentry/replay ES6 CDN Bundle (gzipped + minified)</td>
<td>49.34 KB</td>
</tr>
<tr>
<td>@ sentry/replay - Webpack (gzipped + minified)</td>
<td>43.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/tracing + @ sentry/replay - ES6 CDN
Bundle (gzipped + minified)</td>
<td>68.37 KB</td>
</tr>
<tr>
<td>@ sentry/browser + @ sentry/replay - ES6 CDN Bundle (gzipped +
minified)</td>
<td>61.27 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>7.56.0</b> - 2023-06-19
</li>
</ul>
from <a
href="https://snyk.io/redirect/github/getsentry/sentry-javascript/releases">@sentry/tracing
GitHub release notes</a>
</details>
</details>
<hr/>
**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*
For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI3NzRmZmVjZC03ZmJkLTRlZTEtYTI0Mi1hMWMzNTBkMjNmYTMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijc3NGZmZWNkLTdmYmQtNGVlMS1hMjQyLWExYzM1MGQyM2ZhMyJ9fQ=="
width="0" height="0"/>
🧐 [View latest project
report](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6/settings/integration?pkg&#x3D;@sentry/tracing&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
<!---
(snyk:metadata:{"prId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","prPublicId":"774ffecd-7fbd-4ee1-a242-a1c350d23fa3","dependencies":[{"name":"@sentry/tracing","from":"7.56.0","to":"7.57.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/mtes-mct/project/8a1190df-0364-4a9a-93bd-a9f28b54daf6?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"8a1190df-0364-4a9a-93bd-a9f28b54daf6","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2023-06-28T15:27:04.555Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Angular - errors are reported multiple times

3 participants

@Lms24@lforst@AbhiPrasad