getsentry/sentry-javascript (@sentry/node)
### [`v7.70.0`](https://togithub.com/getsentry/sentry-javascript/releases/tag/7.70.0)
[Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.69.0...7.70.0)
##### Important Changes
- **feat: Add Bun SDK ([#9029](https://togithub.com/getsentry/sentry-javascript/issues/9029))**
This release contains the beta version of `@sentry/bun`, our SDK for the [Bun JavaScript runtime](https://bun.sh/)! For details on how to use it, please see the [README](./packages/bun/README.md). Any feedback/bug reports are greatly appreciated, please [reach out on GitHub](https://togithub.com/getsentry/sentry-javascript/discussions/7979).
Note that as of now the Bun runtime does not support global error handlers. This is being actively worked on, see [the tracking issue in Bun's GitHub repo](https://togithub.com/oven-sh/bun/issues/5091).
- **feat(remix): Add Remix 2.x release support. ([#8940](https://togithub.com/getsentry/sentry-javascript/issues/8940))**
The Sentry Remix SDK now officially supports Remix v2! See [our Remix docs for more details](https://docs.sentry.io/platforms/javascript/guides/remix/).
##### Other Changes
- chore(node): Upgrade cookie to ^0.5.0 ([#9013](https://togithub.com/getsentry/sentry-javascript/issues/9013))
- feat(core): Introduce `processEvent` hook on `Integration` ([#9017](https://togithub.com/getsentry/sentry-javascript/issues/9017))
- feat(node): Improve non-error messages ([#9026](https://togithub.com/getsentry/sentry-javascript/issues/9026))
- feat(vercel-edge): Add Vercel Edge Runtime package ([#9041](https://togithub.com/getsentry/sentry-javascript/issues/9041))
- fix(remix): Use `React.ComponentType` instead of `React.FC` as `withSentry`'s generic type. ([#9043](https://togithub.com/getsentry/sentry-javascript/issues/9043))
- fix(replay): Ensure replay events go through `preprocessEvent` hook ([#9034](https://togithub.com/getsentry/sentry-javascript/issues/9034))
- fix(replay): Fix typo in Replay types ([#9028](https://togithub.com/getsentry/sentry-javascript/issues/9028))
- fix(sveltekit): Adjust `handleErrorWithSentry` type ([#9054](https://togithub.com/getsentry/sentry-javascript/issues/9054))
- fix(utils): Try-catch monkeypatching to handle frozen objects/functions ([#9031](https://togithub.com/getsentry/sentry-javascript/issues/9031))
Work in this release contributed by [@Dima-Dim](https://togithub.com/Dima-Dim), [@krist7599555](https://togithub.com/krist7599555) and [@lifeiscontent](https://togithub.com/lifeiscontent). Thank you for your contributions!
Special thanks for [@isaacharrisholt](https://togithub.com/isaacharrisholt) for helping us implement a Vercel Edge Runtime SDK which we use under the hood for our Next.js SDK.
#### Bundle size 📦
| Path | Size |
| ---------------------------------------------------------------------------------- | ----------------- |
| [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing, Replay) - Webpack (gzipped) | 75.58 KB |
| [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing) - Webpack (gzipped) | 31.49 KB |
| [@sentry/browser](https://togithub.com/sentry/browser) - Webpack (gzipped) | 22.09 KB |
| [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped) | 70.27 KB |
| [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing) - ES6 CDN Bundle (gzipped) | 28.59 KB |
| [@sentry/browser](https://togithub.com/sentry/browser) - ES6 CDN Bundle (gzipped) | 20.66 KB |
| [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed) | 222.15 KB |
| [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing) - ES6 CDN Bundle (minified & uncompressed) | 86.64 KB |
| [@sentry/browser](https://togithub.com/sentry/browser) - ES6 CDN Bundle (minified & uncompressed) | 61.49 KB |
| [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing) - ES5 CDN Bundle (gzipped) | 31.46 KB |
| [@sentry/react](https://togithub.com/sentry/react) (incl. Tracing, Replay) - Webpack (gzipped) | 75.61 KB |
| [@sentry/react](https://togithub.com/sentry/react) - Webpack (gzipped) | 22.12 KB |
| [@sentry/nextjs](https://togithub.com/sentry/nextjs) Client (incl. Tracing, Replay) - Webpack (gzipped) | 93.49 KB |
| [@sentry/nextjs](https://togithub.com/sentry/nextjs) Client - Webpack (gzipped) | 51.07 KB |
### [`v7.69.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7690)
[Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.68.0...7.69.0)
##### Important Changes
- **New Performance APIs**
- feat: Update span performance API names ([#8971](https://togithub.com/getsentry/sentry-javascript/issues/8971))
- feat(core): Introduce startSpanManual ([#8913](https://togithub.com/getsentry/sentry-javascript/issues/8913))
This release introduces a new set of top level APIs for the Performance Monitoring SDKs. These aim to simplify creating spans and reduce the boilerplate needed for performance instrumentation. The three new methods introduced are `Sentry.startSpan`, `Sentry.startInactiveSpan`, and `Sentry.startSpanManual`. These methods are available in the browser and node SDKs.
`Sentry.startSpan` wraps a callback in a span. The span is automatically finished when the callback returns. This is the recommended way to create spans.
```js
// Start a span that tracks the duration of expensiveFunction
const result = Sentry.startSpan({ name: 'important function' }, () => {
return expensiveFunction();
});
// You can also mutate the span wrapping the callback to set data or status
Sentry.startSpan({ name: 'important function' }, (span) => {
// span is undefined if performance monitoring is turned off or if
// the span was not sampled. This is done to reduce overhead.
span?.setData('version', '1.0.0');
return expensiveFunction();
});
```
If you don't want the span to finish when the callback returns, use `Sentry.startSpanManual` to control when the span is finished. This is useful for event emitters or similar.
```js
// Start a span that tracks the duration of middleware
function middleware(_req, res, next) {
return Sentry.startSpanManual({ name: 'middleware' }, (span, finish) => {
res.once('finish', () => {
span?.setHttpStatus(res.status);
finish();
});
return next();
});
}
```
`Sentry.startSpan` and `Sentry.startSpanManual` create a span and make it active for the duration of the callback. Any spans created while this active span is running will be added as a child span to it. If you want to create a span without making it active, use `Sentry.startInactiveSpan`. This is useful for creating parallel spans that are not related to each other.
```js
const span1 = Sentry.startInactiveSpan({ name: 'span1' });
someWork();
const span2 = Sentry.startInactiveSpan({ name: 'span2' });
moreWork();
const span3 = Sentry.startInactiveSpan({ name: 'span3' });
evenMoreWork();
span1?.finish();
span2?.finish();
span3?.finish();
```
##### Other Changes
- feat(core): Export `BeforeFinishCallback` type ([#8999](https://togithub.com/getsentry/sentry-javascript/issues/8999))
- build(eslint): Enforce that ts-expect-error is used ([#8987](https://togithub.com/getsentry/sentry-javascript/issues/8987))
- feat(integration): Ensure `LinkedErrors` integration runs before all event processors ([#8956](https://togithub.com/getsentry/sentry-javascript/issues/8956))
- feat(node-experimental): Keep breadcrumbs on transaction ([#8967](https://togithub.com/getsentry/sentry-javascript/issues/8967))
- feat(redux): Add 'attachReduxState' option ([#8953](https://togithub.com/getsentry/sentry-javascript/issues/8953))
- feat(remix): Accept `org`, `project` and `url` as args to upload script ([#8985](https://togithub.com/getsentry/sentry-javascript/issues/8985))
- fix(utils): Prevent iterating over VueViewModel ([#8981](https://togithub.com/getsentry/sentry-javascript/issues/8981))
- fix(utils): uuidv4 fix for cloudflare ([#8968](https://togithub.com/getsentry/sentry-javascript/issues/8968))
- fix(core): Always use event message and exception values for `ignoreErrors` ([#8986](https://togithub.com/getsentry/sentry-javascript/issues/8986))
- fix(nextjs): Add new potential location for Next.js request AsyncLocalStorage ([#9006](https://togithub.com/getsentry/sentry-javascript/issues/9006))
- fix(node-experimental): Ensure we only create HTTP spans when outgoing ([#8966](https://togithub.com/getsentry/sentry-javascript/issues/8966))
- fix(node-experimental): Ignore OPTIONS & HEAD requests ([#9001](https://togithub.com/getsentry/sentry-javascript/issues/9001))
- fix(node-experimental): Ignore outgoing Sentry requests ([#8994](https://togithub.com/getsentry/sentry-javascript/issues/8994))
- fix(node-experimental): Require parent span for `pg` spans ([#8993](https://togithub.com/getsentry/sentry-javascript/issues/8993))
- fix(node-experimental): Use Sentry logger as Otel logger ([#8960](https://togithub.com/getsentry/sentry-javascript/issues/8960))
- fix(node-otel): Refactor OTEL span reference cleanup ([#9000](https://togithub.com/getsentry/sentry-javascript/issues/9000))
- fix(react): Switch to props in `useRoutes` ([#8998](https://togithub.com/getsentry/sentry-javascript/issues/8998))
- fix(remix): Add `glob` to Remix SDK dependencies. ([#8963](https://togithub.com/getsentry/sentry-javascript/issues/8963))
- fix(replay): Ensure `handleRecordingEmit` aborts when event is not added ([#8938](https://togithub.com/getsentry/sentry-javascript/issues/8938))
- fix(replay): Fully stop & restart session when it expires ([#8834](https://togithub.com/getsentry/sentry-javascript/issues/8834))
Work in this release contributed by [@Duncanxyz](https://togithub.com/Duncanxyz) and [@malay44](https://togithub.com/malay44). Thank you for your contributions!
### [`v7.68.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7680)
[Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.67.0...7.68.0)
- feat(browser): Add `BroadcastChannel` and `SharedWorker` to TryCatch EventTargets ([#8943](https://togithub.com/getsentry/sentry-javascript/issues/8943))
- feat(core): Add `name` to `Span` ([#8949](https://togithub.com/getsentry/sentry-javascript/issues/8949))
- feat(core): Add `ServerRuntimeClient` ([#8930](https://togithub.com/getsentry/sentry-javascript/issues/8930))
- fix(node-experimental): Ensure `span.finish()` works as expected ([#8947](https://togithub.com/getsentry/sentry-javascript/issues/8947))
- fix(remix): Add new sourcemap-upload script files to prepack assets. ([#8948](https://togithub.com/getsentry/sentry-javascript/issues/8948))
- fix(publish): Publish downleveled TS3.8 types and fix types path ([#8954](https://togithub.com/getsentry/sentry-javascript/issues/8954))
### [`v7.67.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7670)
[Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.66.0...7.67.0)
##### Important Changes
- **feat: Mark errors caught by the SDK as unhandled**
- feat(browser): Mark errors caught from `TryCatch` integration as unhandled ([#8890](https://togithub.com/getsentry/sentry-javascript/issues/8890))
- feat(integrations): Mark errors caught from `HttpClient` and `CaptureConsole` integrations as unhandled ([#8891](https://togithub.com/getsentry/sentry-javascript/issues/8891))
- feat(nextjs): Mark errors caught from NextJS wrappers as unhandled ([#8893](https://togithub.com/getsentry/sentry-javascript/issues/8893))
- feat(react): Mark errors captured from ErrorBoundary as unhandled ([#8914](https://togithub.com/getsentry/sentry-javascript/issues/8914))
- feat(remix): Add debugid injection and map deletion to sourcemaps script ([#8814](https://togithub.com/getsentry/sentry-javascript/issues/8814))
- feat(remix): Mark errors caught from Remix instrumentation as unhandled ([#8894](https://togithub.com/getsentry/sentry-javascript/issues/8894))
- feat(serverless): Mark errors caught in Serverless handlers as unhandled ([#8907](https://togithub.com/getsentry/sentry-javascript/issues/8907))
- feat(vue): Mark errors caught by Vue wrappers as unhandled ([#8905](https://togithub.com/getsentry/sentry-javascript/issues/8905))
This release fixes inconsistent behaviour of when our SDKs classify captured errors as unhandled.
Previously, some of our instrumentations correctly set unhandled, while others set handled.
Going forward, all errors caught automatically from our SDKs will be marked as unhandled.
If you manually capture errors (e.g. by calling `Sentry.captureException`), your errors will continue to be reported as handled.
This change might lead to a decrease in reported crash-free sessions and consequently in your release health score.
If you have concerns about this, feel free to open an issue.
##### Other Changes
- feat(node-experimental): Implement new performance APIs ([#8911](https://togithub.com/getsentry/sentry-javascript/issues/8911))
- feat(node-experimental): Sync OTEL context with Sentry AsyncContext ([#8797](https://togithub.com/getsentry/sentry-javascript/issues/8797))
- feat(replay): Allow to configure `maxReplayDuration` ([#8769](https://togithub.com/getsentry/sentry-javascript/issues/8769))
- fix(browser): Add replay and profiling options to `BrowserClientOptions` ([#8921](https://togithub.com/getsentry/sentry-javascript/issues/8921))
- fix(browser): Check for existence of instrumentation targets ([#8939](https://togithub.com/getsentry/sentry-javascript/issues/8939))
- fix(nextjs): Don't re-export default in route handlers ([#8924](https://togithub.com/getsentry/sentry-javascript/issues/8924))
- fix(node): Improve mysql integration ([#8923](https://togithub.com/getsentry/sentry-javascript/issues/8923))
- fix(remix): Guard against missing default export for server instrument ([#8909](https://togithub.com/getsentry/sentry-javascript/issues/8909))
- ref(browser): Deprecate top-level `wrap` function ([#8927](https://togithub.com/getsentry/sentry-javascript/issues/8927))
- ref(node-otel): Avoid exporting internals & refactor attribute adding ([#8920](https://togithub.com/getsentry/sentry-javascript/issues/8920))
Work in this release contributed by [@SorsOps](https://togithub.com/SorsOps). Thank you for your contribution!
### [`v7.66.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7660)
[Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.65.0...7.66.0)
- fix: Defer tracing decision to downstream SDKs when using SDK without performance ([#8839](https://togithub.com/getsentry/sentry-javascript/issues/8839))
- fix(nextjs): Fix `package.json` exports ([#8895](https://togithub.com/getsentry/sentry-javascript/issues/8895))
- fix(sveltekit): Ensure target file exists before applying auto instrumentation ([#8881](https://togithub.com/getsentry/sentry-javascript/issues/8881))
- ref: Use consistent console instrumentation ([#8879](https://togithub.com/getsentry/sentry-javascript/issues/8879))
- ref(browser): Refactor sentry breadcrumb to use hook ([#8892](https://togithub.com/getsentry/sentry-javascript/issues/8892))
- ref(tracing): Add `origin` to spans ([#8765](https://togithub.com/getsentry/sentry-javascript/issues/8765))
### [`v7.65.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7650)
[Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.64.0...7.65.0)
- build: Remove build-specific polyfills ([#8809](https://togithub.com/getsentry/sentry-javascript/issues/8809))
- build(deps): bump protobufjs from 6.11.3 to 6.11.4 ([#8822](https://togithub.com/getsentry/sentry-javascript/issues/8822))
- deps(sveltekit): Bump `@sentry/vite-plugin` ([#8877](https://togithub.com/getsentry/sentry-javascript/issues/8877))
- feat(core): Introduce `Sentry.startActiveSpan` and `Sentry.startSpan` ([#8803](https://togithub.com/getsentry/sentry-javascript/issues/8803))
- fix: Memoize `AsyncLocalStorage` instance ([#8831](https://togithub.com/getsentry/sentry-javascript/issues/8831))
- fix(nextjs): Check for validity of API route handler signature ([#8811](https://togithub.com/getsentry/sentry-javascript/issues/8811))
- fix(nextjs): Fix `requestAsyncStorageShim` path resolution on windows ([#8875](https://togithub.com/getsentry/sentry-javascript/issues/8875))
- fix(node): Log entire error object in `OnUncaughtException` ([#8876](https://togithub.com/getsentry/sentry-javascript/issues/8876))
- fix(node): More relevant warning message when tracing extensions are missing ([#8820](https://togithub.com/getsentry/sentry-javascript/issues/8820))
- fix(replay): Streamline session creation/refresh ([#8813](https://togithub.com/getsentry/sentry-javascript/issues/8813))
- fix(sveltekit): Avoid invalidating data on route changes in `wrapServerLoadWithSentry` ([#8801](https://togithub.com/getsentry/sentry-javascript/issues/8801))
- fix(tracing): Better guarding for performance observer ([#8872](https://togithub.com/getsentry/sentry-javascript/issues/8872))
- ref(sveltekit): Remove custom client fetch instrumentation and use default instrumentation ([#8802](https://togithub.com/getsentry/sentry-javascript/issues/8802))
- ref(tracing-internal): Deprecate `tracePropagationTargets` in `BrowserTracing` ([#8874](https://togithub.com/getsentry/sentry-javascript/issues/8874))
### [`v7.64.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7640)
[Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.63.0...7.64.0)
- feat(core): Add setMeasurement export ([#8791](https://togithub.com/getsentry/sentry-javascript/issues/8791))
- fix(nextjs): Check for existence of default export when wrapping pages ([#8794](https://togithub.com/getsentry/sentry-javascript/issues/8794))
- fix(nextjs): Ensure imports are valid relative paths ([#8799](https://togithub.com/getsentry/sentry-javascript/issues/8799))
- fix(nextjs): Only re-export default export if it exists ([#8800](https://togithub.com/getsentry/sentry-javascript/issues/8800))
### [`v7.63.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7630)
[Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.62.0...7.63.0)
- build(deps): bump [@opentelemetry/instrumentation](https://togithub.com/opentelemetry/instrumentation) from 0.41.0 to 0.41.2
- feat(eventbuilder): Export `exceptionFromError` for use in hybrid SDKs ([#8766](https://togithub.com/getsentry/sentry-javascript/issues/8766))
- feat(node-experimental): Re-export from node ([#8786](https://togithub.com/getsentry/sentry-javascript/issues/8786))
- feat(tracing): Add db connection attributes for mysql spans ([#8775](https://togithub.com/getsentry/sentry-javascript/issues/8775))
- feat(tracing): Add db connection attributes for postgres spans ([#8778](https://togithub.com/getsentry/sentry-javascript/issues/8778))
- feat(tracing): Improve data collection for mongodb spans ([#8774](https://togithub.com/getsentry/sentry-javascript/issues/8774))
- fix(nextjs): Execute sentry config independently of `autoInstrumentServerFunctions` and `autoInstrumentAppDirectory` ([#8781](https://togithub.com/getsentry/sentry-javascript/issues/8781))
- fix(replay): Ensure we do not flush if flush took too long ([#8784](https://togithub.com/getsentry/sentry-javascript/issues/8784))
- fix(replay): Ensure we do not try to flush when we force stop replay ([#8783](https://togithub.com/getsentry/sentry-javascript/issues/8783))
- fix(replay): Fix `hasCheckout` handling ([#8782](https://togithub.com/getsentry/sentry-javascript/issues/8782))
- fix(replay): Handle multiple clicks in a short time ([#8773](https://togithub.com/getsentry/sentry-javascript/issues/8773))
- ref(replay): Skip events being added too long after initial segment ([#8768](https://togithub.com/getsentry/sentry-javascript/issues/8768))
### [`v7.62.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7620)
[Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.61.1...7.62.0)
##### Important Changes
- **feat(integrations): Add `ContextLines` integration for html-embedded JS stack frames ([#8699](https://togithub.com/getsentry/sentry-javascript/issues/8699))**
This release adds the `ContextLines` integration as an optional integration for the Browser SDKs to `@sentry/integrations`.
This integration adds source code from inline JavaScript of the current page's HTML (e.g. JS in ` Githubissues.
Githubissues is a development platform for aggregating issues.
This PR contains the following updates:
7.61.1
->7.70.0
Release Notes
getsentry/sentry-javascript (@sentry/node)
### [`v7.70.0`](https://togithub.com/getsentry/sentry-javascript/releases/tag/7.70.0) [Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.69.0...7.70.0) ##### Important Changes - **feat: Add Bun SDK ([#9029](https://togithub.com/getsentry/sentry-javascript/issues/9029))** This release contains the beta version of `@sentry/bun`, our SDK for the [Bun JavaScript runtime](https://bun.sh/)! For details on how to use it, please see the [README](./packages/bun/README.md). Any feedback/bug reports are greatly appreciated, please [reach out on GitHub](https://togithub.com/getsentry/sentry-javascript/discussions/7979). Note that as of now the Bun runtime does not support global error handlers. This is being actively worked on, see [the tracking issue in Bun's GitHub repo](https://togithub.com/oven-sh/bun/issues/5091). - **feat(remix): Add Remix 2.x release support. ([#8940](https://togithub.com/getsentry/sentry-javascript/issues/8940))** The Sentry Remix SDK now officially supports Remix v2! See [our Remix docs for more details](https://docs.sentry.io/platforms/javascript/guides/remix/). ##### Other Changes - chore(node): Upgrade cookie to ^0.5.0 ([#9013](https://togithub.com/getsentry/sentry-javascript/issues/9013)) - feat(core): Introduce `processEvent` hook on `Integration` ([#9017](https://togithub.com/getsentry/sentry-javascript/issues/9017)) - feat(node): Improve non-error messages ([#9026](https://togithub.com/getsentry/sentry-javascript/issues/9026)) - feat(vercel-edge): Add Vercel Edge Runtime package ([#9041](https://togithub.com/getsentry/sentry-javascript/issues/9041)) - fix(remix): Use `React.ComponentType` instead of `React.FC` as `withSentry`'s generic type. ([#9043](https://togithub.com/getsentry/sentry-javascript/issues/9043)) - fix(replay): Ensure replay events go through `preprocessEvent` hook ([#9034](https://togithub.com/getsentry/sentry-javascript/issues/9034)) - fix(replay): Fix typo in Replay types ([#9028](https://togithub.com/getsentry/sentry-javascript/issues/9028)) - fix(sveltekit): Adjust `handleErrorWithSentry` type ([#9054](https://togithub.com/getsentry/sentry-javascript/issues/9054)) - fix(utils): Try-catch monkeypatching to handle frozen objects/functions ([#9031](https://togithub.com/getsentry/sentry-javascript/issues/9031)) Work in this release contributed by [@Dima-Dim](https://togithub.com/Dima-Dim), [@krist7599555](https://togithub.com/krist7599555) and [@lifeiscontent](https://togithub.com/lifeiscontent). Thank you for your contributions! Special thanks for [@isaacharrisholt](https://togithub.com/isaacharrisholt) for helping us implement a Vercel Edge Runtime SDK which we use under the hood for our Next.js SDK. #### Bundle size 📦 | Path | Size | | ---------------------------------------------------------------------------------- | ----------------- | | [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing, Replay) - Webpack (gzipped) | 75.58 KB | | [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing) - Webpack (gzipped) | 31.49 KB | | [@sentry/browser](https://togithub.com/sentry/browser) - Webpack (gzipped) | 22.09 KB | | [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped) | 70.27 KB | | [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing) - ES6 CDN Bundle (gzipped) | 28.59 KB | | [@sentry/browser](https://togithub.com/sentry/browser) - ES6 CDN Bundle (gzipped) | 20.66 KB | | [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed) | 222.15 KB | | [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing) - ES6 CDN Bundle (minified & uncompressed) | 86.64 KB | | [@sentry/browser](https://togithub.com/sentry/browser) - ES6 CDN Bundle (minified & uncompressed) | 61.49 KB | | [@sentry/browser](https://togithub.com/sentry/browser) (incl. Tracing) - ES5 CDN Bundle (gzipped) | 31.46 KB | | [@sentry/react](https://togithub.com/sentry/react) (incl. Tracing, Replay) - Webpack (gzipped) | 75.61 KB | | [@sentry/react](https://togithub.com/sentry/react) - Webpack (gzipped) | 22.12 KB | | [@sentry/nextjs](https://togithub.com/sentry/nextjs) Client (incl. Tracing, Replay) - Webpack (gzipped) | 93.49 KB | | [@sentry/nextjs](https://togithub.com/sentry/nextjs) Client - Webpack (gzipped) | 51.07 KB | ### [`v7.69.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7690) [Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.68.0...7.69.0) ##### Important Changes - **New Performance APIs** - feat: Update span performance API names ([#8971](https://togithub.com/getsentry/sentry-javascript/issues/8971)) - feat(core): Introduce startSpanManual ([#8913](https://togithub.com/getsentry/sentry-javascript/issues/8913)) This release introduces a new set of top level APIs for the Performance Monitoring SDKs. These aim to simplify creating spans and reduce the boilerplate needed for performance instrumentation. The three new methods introduced are `Sentry.startSpan`, `Sentry.startInactiveSpan`, and `Sentry.startSpanManual`. These methods are available in the browser and node SDKs. `Sentry.startSpan` wraps a callback in a span. The span is automatically finished when the callback returns. This is the recommended way to create spans. ```js // Start a span that tracks the duration of expensiveFunction const result = Sentry.startSpan({ name: 'important function' }, () => { return expensiveFunction(); }); // You can also mutate the span wrapping the callback to set data or status Sentry.startSpan({ name: 'important function' }, (span) => { // span is undefined if performance monitoring is turned off or if // the span was not sampled. This is done to reduce overhead. span?.setData('version', '1.0.0'); return expensiveFunction(); }); ``` If you don't want the span to finish when the callback returns, use `Sentry.startSpanManual` to control when the span is finished. This is useful for event emitters or similar. ```js // Start a span that tracks the duration of middleware function middleware(_req, res, next) { return Sentry.startSpanManual({ name: 'middleware' }, (span, finish) => { res.once('finish', () => { span?.setHttpStatus(res.status); finish(); }); return next(); }); } ``` `Sentry.startSpan` and `Sentry.startSpanManual` create a span and make it active for the duration of the callback. Any spans created while this active span is running will be added as a child span to it. If you want to create a span without making it active, use `Sentry.startInactiveSpan`. This is useful for creating parallel spans that are not related to each other. ```js const span1 = Sentry.startInactiveSpan({ name: 'span1' }); someWork(); const span2 = Sentry.startInactiveSpan({ name: 'span2' }); moreWork(); const span3 = Sentry.startInactiveSpan({ name: 'span3' }); evenMoreWork(); span1?.finish(); span2?.finish(); span3?.finish(); ``` ##### Other Changes - feat(core): Export `BeforeFinishCallback` type ([#8999](https://togithub.com/getsentry/sentry-javascript/issues/8999)) - build(eslint): Enforce that ts-expect-error is used ([#8987](https://togithub.com/getsentry/sentry-javascript/issues/8987)) - feat(integration): Ensure `LinkedErrors` integration runs before all event processors ([#8956](https://togithub.com/getsentry/sentry-javascript/issues/8956)) - feat(node-experimental): Keep breadcrumbs on transaction ([#8967](https://togithub.com/getsentry/sentry-javascript/issues/8967)) - feat(redux): Add 'attachReduxState' option ([#8953](https://togithub.com/getsentry/sentry-javascript/issues/8953)) - feat(remix): Accept `org`, `project` and `url` as args to upload script ([#8985](https://togithub.com/getsentry/sentry-javascript/issues/8985)) - fix(utils): Prevent iterating over VueViewModel ([#8981](https://togithub.com/getsentry/sentry-javascript/issues/8981)) - fix(utils): uuidv4 fix for cloudflare ([#8968](https://togithub.com/getsentry/sentry-javascript/issues/8968)) - fix(core): Always use event message and exception values for `ignoreErrors` ([#8986](https://togithub.com/getsentry/sentry-javascript/issues/8986)) - fix(nextjs): Add new potential location for Next.js request AsyncLocalStorage ([#9006](https://togithub.com/getsentry/sentry-javascript/issues/9006)) - fix(node-experimental): Ensure we only create HTTP spans when outgoing ([#8966](https://togithub.com/getsentry/sentry-javascript/issues/8966)) - fix(node-experimental): Ignore OPTIONS & HEAD requests ([#9001](https://togithub.com/getsentry/sentry-javascript/issues/9001)) - fix(node-experimental): Ignore outgoing Sentry requests ([#8994](https://togithub.com/getsentry/sentry-javascript/issues/8994)) - fix(node-experimental): Require parent span for `pg` spans ([#8993](https://togithub.com/getsentry/sentry-javascript/issues/8993)) - fix(node-experimental): Use Sentry logger as Otel logger ([#8960](https://togithub.com/getsentry/sentry-javascript/issues/8960)) - fix(node-otel): Refactor OTEL span reference cleanup ([#9000](https://togithub.com/getsentry/sentry-javascript/issues/9000)) - fix(react): Switch to props in `useRoutes` ([#8998](https://togithub.com/getsentry/sentry-javascript/issues/8998)) - fix(remix): Add `glob` to Remix SDK dependencies. ([#8963](https://togithub.com/getsentry/sentry-javascript/issues/8963)) - fix(replay): Ensure `handleRecordingEmit` aborts when event is not added ([#8938](https://togithub.com/getsentry/sentry-javascript/issues/8938)) - fix(replay): Fully stop & restart session when it expires ([#8834](https://togithub.com/getsentry/sentry-javascript/issues/8834)) Work in this release contributed by [@Duncanxyz](https://togithub.com/Duncanxyz) and [@malay44](https://togithub.com/malay44). Thank you for your contributions! ### [`v7.68.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7680) [Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.67.0...7.68.0) - feat(browser): Add `BroadcastChannel` and `SharedWorker` to TryCatch EventTargets ([#8943](https://togithub.com/getsentry/sentry-javascript/issues/8943)) - feat(core): Add `name` to `Span` ([#8949](https://togithub.com/getsentry/sentry-javascript/issues/8949)) - feat(core): Add `ServerRuntimeClient` ([#8930](https://togithub.com/getsentry/sentry-javascript/issues/8930)) - fix(node-experimental): Ensure `span.finish()` works as expected ([#8947](https://togithub.com/getsentry/sentry-javascript/issues/8947)) - fix(remix): Add new sourcemap-upload script files to prepack assets. ([#8948](https://togithub.com/getsentry/sentry-javascript/issues/8948)) - fix(publish): Publish downleveled TS3.8 types and fix types path ([#8954](https://togithub.com/getsentry/sentry-javascript/issues/8954)) ### [`v7.67.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7670) [Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.66.0...7.67.0) ##### Important Changes - **feat: Mark errors caught by the SDK as unhandled** - feat(browser): Mark errors caught from `TryCatch` integration as unhandled ([#8890](https://togithub.com/getsentry/sentry-javascript/issues/8890)) - feat(integrations): Mark errors caught from `HttpClient` and `CaptureConsole` integrations as unhandled ([#8891](https://togithub.com/getsentry/sentry-javascript/issues/8891)) - feat(nextjs): Mark errors caught from NextJS wrappers as unhandled ([#8893](https://togithub.com/getsentry/sentry-javascript/issues/8893)) - feat(react): Mark errors captured from ErrorBoundary as unhandled ([#8914](https://togithub.com/getsentry/sentry-javascript/issues/8914)) - feat(remix): Add debugid injection and map deletion to sourcemaps script ([#8814](https://togithub.com/getsentry/sentry-javascript/issues/8814)) - feat(remix): Mark errors caught from Remix instrumentation as unhandled ([#8894](https://togithub.com/getsentry/sentry-javascript/issues/8894)) - feat(serverless): Mark errors caught in Serverless handlers as unhandled ([#8907](https://togithub.com/getsentry/sentry-javascript/issues/8907)) - feat(vue): Mark errors caught by Vue wrappers as unhandled ([#8905](https://togithub.com/getsentry/sentry-javascript/issues/8905)) This release fixes inconsistent behaviour of when our SDKs classify captured errors as unhandled. Previously, some of our instrumentations correctly set unhandled, while others set handled. Going forward, all errors caught automatically from our SDKs will be marked as unhandled. If you manually capture errors (e.g. by calling `Sentry.captureException`), your errors will continue to be reported as handled. This change might lead to a decrease in reported crash-free sessions and consequently in your release health score. If you have concerns about this, feel free to open an issue. ##### Other Changes - feat(node-experimental): Implement new performance APIs ([#8911](https://togithub.com/getsentry/sentry-javascript/issues/8911)) - feat(node-experimental): Sync OTEL context with Sentry AsyncContext ([#8797](https://togithub.com/getsentry/sentry-javascript/issues/8797)) - feat(replay): Allow to configure `maxReplayDuration` ([#8769](https://togithub.com/getsentry/sentry-javascript/issues/8769)) - fix(browser): Add replay and profiling options to `BrowserClientOptions` ([#8921](https://togithub.com/getsentry/sentry-javascript/issues/8921)) - fix(browser): Check for existence of instrumentation targets ([#8939](https://togithub.com/getsentry/sentry-javascript/issues/8939)) - fix(nextjs): Don't re-export default in route handlers ([#8924](https://togithub.com/getsentry/sentry-javascript/issues/8924)) - fix(node): Improve mysql integration ([#8923](https://togithub.com/getsentry/sentry-javascript/issues/8923)) - fix(remix): Guard against missing default export for server instrument ([#8909](https://togithub.com/getsentry/sentry-javascript/issues/8909)) - ref(browser): Deprecate top-level `wrap` function ([#8927](https://togithub.com/getsentry/sentry-javascript/issues/8927)) - ref(node-otel): Avoid exporting internals & refactor attribute adding ([#8920](https://togithub.com/getsentry/sentry-javascript/issues/8920)) Work in this release contributed by [@SorsOps](https://togithub.com/SorsOps). Thank you for your contribution! ### [`v7.66.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7660) [Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.65.0...7.66.0) - fix: Defer tracing decision to downstream SDKs when using SDK without performance ([#8839](https://togithub.com/getsentry/sentry-javascript/issues/8839)) - fix(nextjs): Fix `package.json` exports ([#8895](https://togithub.com/getsentry/sentry-javascript/issues/8895)) - fix(sveltekit): Ensure target file exists before applying auto instrumentation ([#8881](https://togithub.com/getsentry/sentry-javascript/issues/8881)) - ref: Use consistent console instrumentation ([#8879](https://togithub.com/getsentry/sentry-javascript/issues/8879)) - ref(browser): Refactor sentry breadcrumb to use hook ([#8892](https://togithub.com/getsentry/sentry-javascript/issues/8892)) - ref(tracing): Add `origin` to spans ([#8765](https://togithub.com/getsentry/sentry-javascript/issues/8765)) ### [`v7.65.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7650) [Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.64.0...7.65.0) - build: Remove build-specific polyfills ([#8809](https://togithub.com/getsentry/sentry-javascript/issues/8809)) - build(deps): bump protobufjs from 6.11.3 to 6.11.4 ([#8822](https://togithub.com/getsentry/sentry-javascript/issues/8822)) - deps(sveltekit): Bump `@sentry/vite-plugin` ([#8877](https://togithub.com/getsentry/sentry-javascript/issues/8877)) - feat(core): Introduce `Sentry.startActiveSpan` and `Sentry.startSpan` ([#8803](https://togithub.com/getsentry/sentry-javascript/issues/8803)) - fix: Memoize `AsyncLocalStorage` instance ([#8831](https://togithub.com/getsentry/sentry-javascript/issues/8831)) - fix(nextjs): Check for validity of API route handler signature ([#8811](https://togithub.com/getsentry/sentry-javascript/issues/8811)) - fix(nextjs): Fix `requestAsyncStorageShim` path resolution on windows ([#8875](https://togithub.com/getsentry/sentry-javascript/issues/8875)) - fix(node): Log entire error object in `OnUncaughtException` ([#8876](https://togithub.com/getsentry/sentry-javascript/issues/8876)) - fix(node): More relevant warning message when tracing extensions are missing ([#8820](https://togithub.com/getsentry/sentry-javascript/issues/8820)) - fix(replay): Streamline session creation/refresh ([#8813](https://togithub.com/getsentry/sentry-javascript/issues/8813)) - fix(sveltekit): Avoid invalidating data on route changes in `wrapServerLoadWithSentry` ([#8801](https://togithub.com/getsentry/sentry-javascript/issues/8801)) - fix(tracing): Better guarding for performance observer ([#8872](https://togithub.com/getsentry/sentry-javascript/issues/8872)) - ref(sveltekit): Remove custom client fetch instrumentation and use default instrumentation ([#8802](https://togithub.com/getsentry/sentry-javascript/issues/8802)) - ref(tracing-internal): Deprecate `tracePropagationTargets` in `BrowserTracing` ([#8874](https://togithub.com/getsentry/sentry-javascript/issues/8874)) ### [`v7.64.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7640) [Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.63.0...7.64.0) - feat(core): Add setMeasurement export ([#8791](https://togithub.com/getsentry/sentry-javascript/issues/8791)) - fix(nextjs): Check for existence of default export when wrapping pages ([#8794](https://togithub.com/getsentry/sentry-javascript/issues/8794)) - fix(nextjs): Ensure imports are valid relative paths ([#8799](https://togithub.com/getsentry/sentry-javascript/issues/8799)) - fix(nextjs): Only re-export default export if it exists ([#8800](https://togithub.com/getsentry/sentry-javascript/issues/8800)) ### [`v7.63.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7630) [Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.62.0...7.63.0) - build(deps): bump [@opentelemetry/instrumentation](https://togithub.com/opentelemetry/instrumentation) from 0.41.0 to 0.41.2 - feat(eventbuilder): Export `exceptionFromError` for use in hybrid SDKs ([#8766](https://togithub.com/getsentry/sentry-javascript/issues/8766)) - feat(node-experimental): Re-export from node ([#8786](https://togithub.com/getsentry/sentry-javascript/issues/8786)) - feat(tracing): Add db connection attributes for mysql spans ([#8775](https://togithub.com/getsentry/sentry-javascript/issues/8775)) - feat(tracing): Add db connection attributes for postgres spans ([#8778](https://togithub.com/getsentry/sentry-javascript/issues/8778)) - feat(tracing): Improve data collection for mongodb spans ([#8774](https://togithub.com/getsentry/sentry-javascript/issues/8774)) - fix(nextjs): Execute sentry config independently of `autoInstrumentServerFunctions` and `autoInstrumentAppDirectory` ([#8781](https://togithub.com/getsentry/sentry-javascript/issues/8781)) - fix(replay): Ensure we do not flush if flush took too long ([#8784](https://togithub.com/getsentry/sentry-javascript/issues/8784)) - fix(replay): Ensure we do not try to flush when we force stop replay ([#8783](https://togithub.com/getsentry/sentry-javascript/issues/8783)) - fix(replay): Fix `hasCheckout` handling ([#8782](https://togithub.com/getsentry/sentry-javascript/issues/8782)) - fix(replay): Handle multiple clicks in a short time ([#8773](https://togithub.com/getsentry/sentry-javascript/issues/8773)) - ref(replay): Skip events being added too long after initial segment ([#8768](https://togithub.com/getsentry/sentry-javascript/issues/8768)) ### [`v7.62.0`](https://togithub.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#7620) [Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/7.61.1...7.62.0) ##### Important Changes - **feat(integrations): Add `ContextLines` integration for html-embedded JS stack frames ([#8699](https://togithub.com/getsentry/sentry-javascript/issues/8699))** This release adds the `ContextLines` integration as an optional integration for the Browser SDKs to `@sentry/integrations`. This integration adds source code from inline JavaScript of the current page's HTML (e.g. JS in ` Githubissues.