Releases: getsentry/sentry-javascript
7.52.1
- feat(replay): Capture slow clicks (experimental) (#8052)
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser - ES5 CDN Bundle (gzipped + minified) | 21.03 KB |
| @sentry/browser - ES5 CDN Bundle (minified) | 65.63 KB |
| @sentry/browser - ES6 CDN Bundle (gzipped + minified) | 19.57 KB |
| @sentry/browser - ES6 CDN Bundle (minified) | 58.09 KB |
| @sentry/browser - Webpack (gzipped + minified) | 21.17 KB |
| @sentry/browser - Webpack (minified) | 69.04 KB |
| @sentry/react - Webpack (gzipped + minified) | 21.19 KB |
| @sentry/nextjs Client - Webpack (gzipped + minified) | 49.12 KB |
| @sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) | 28.65 KB |
| @sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) | 26.89 KB |
| @sentry/replay ES6 CDN Bundle (gzipped + minified) | 48.13 KB |
| @sentry/replay - Webpack (gzipped + minified) | 42.02 KB |
| @sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 67.09 KB |
| @sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 59.99 KB |
7.52.0
Important Next.js SDK changes:
This release adds support Vercel Cron Jobs in the Next.js SDK.
The SDK will automatically create Sentry Cron Monitors for your Vercel Cron Jobs configured via vercel.json when deployed on Vercel.
You can opt out of this functionality by setting the automaticVercelMonitors option to false:
// next.config.js
const nextConfig = {
sentry: {
automaticVercelMonitors: false,
},
};(Note: Sentry Cron Monitoring is currently in beta and subject to change. Help us make it better by letting us know what you think. Respond on GitHub or write to us at [email protected])
- feat(nextjs): Add API method to wrap API routes with crons instrumentation (#8084)
- feat(nextjs): Add automatic monitors for Vercel Cron Jobs (#8088)
Other changes
- feat(replay): Capture keyboard presses for special characters (#8051)
- fix(build): Don't mangle away global debug ID map (#8096)
- fix(core): Return checkin id from client (#8116)
- fix(core): Use last error for
ignoreErrorscheck (#8089) - fix(docs): Change to
addTracingExtensionswas not documented in MIGRATION.md (#8101) - fix(replay): Check relative URLs correctly (#8024)
- fix(tracing-internal): Avoid classifying protocol-relative URLs as same-origin urls (#8114)
- ref: Hoist
createCheckinEnvelopeto core package (#8082)
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser - ES5 CDN Bundle (gzipped + minified) | 21.03 KB |
| @sentry/browser - ES5 CDN Bundle (minified) | 65.63 KB |
| @sentry/browser - ES6 CDN Bundle (gzipped + minified) | 19.57 KB |
| @sentry/browser - ES6 CDN Bundle (minified) | 58.09 KB |
| @sentry/browser - Webpack (gzipped + minified) | 21.17 KB |
| @sentry/browser - Webpack (minified) | 69.04 KB |
| @sentry/react - Webpack (gzipped + minified) | 21.19 KB |
| @sentry/nextjs Client - Webpack (gzipped + minified) | 49.12 KB |
| @sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) | 28.65 KB |
| @sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) | 26.89 KB |
| @sentry/replay ES6 CDN Bundle (gzipped + minified) | 47.7 KB |
| @sentry/replay - Webpack (gzipped + minified) | 41.57 KB |
| @sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 66.6 KB |
| @sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 59.48 KB |
7.51.2
- fix(nextjs): Continue traces in data fetchers when there is an already active transaction on the hub (#8073)
- fix(sveltekit): Avoid creating the Sentry Vite plugin in dev mode (#8065)
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser - ES5 CDN Bundle (gzipped + minified) | 21.02 KB |
| @sentry/browser - ES5 CDN Bundle (minified) | 65.62 KB |
| @sentry/browser - ES6 CDN Bundle (gzipped + minified) | 19.55 KB |
| @sentry/browser - ES6 CDN Bundle (minified) | 58.08 KB |
| @sentry/browser - Webpack (gzipped + minified) | 21.16 KB |
| @sentry/browser - Webpack (minified) | 69.03 KB |
| @sentry/react - Webpack (gzipped + minified) | 21.18 KB |
| @sentry/nextjs Client - Webpack (gzipped + minified) | 49.09 KB |
| @sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) | 28.64 KB |
| @sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) | 26.87 KB |
| @sentry/replay ES6 CDN Bundle (gzipped + minified) | 47.35 KB |
| @sentry/replay - Webpack (gzipped + minified) | 41.13 KB |
| @sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 66.3 KB |
| @sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 59.18 KB |
7.51.1
- feat(replay): Add event to capture options on checkouts (#8011)
- feat(replay): Improve click target detection (#8026)
- fix(node): Make sure we use same ID for checkIns (#8050)
- fix(replay: Keep session active on key press (#8037)
- fix(replay): Move error sampling to before send (#8057)
- fix(sveltekit): Wrap
loadwhen typed explicitly (#8049)
Replay rrweb changes:
@sentry-internal/rrweb was updated from 1.106.0 to 1.108.0:
- fix: Fix some input masking (esp for radio buttons) (#85)
- fix: Unescaped
:in CSS rule from Safari (#86) - feat: Define custom elements (web components) (#87)
Work in this release contributed by @sreetamdas. Thank you for your contribution!
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser - ES5 CDN Bundle (gzipped + minified) | 21.01 KB |
| @sentry/browser - ES5 CDN Bundle (minified) | 65.62 KB |
| @sentry/browser - ES6 CDN Bundle (gzipped + minified) | 19.55 KB |
| @sentry/browser - ES6 CDN Bundle (minified) | 58.08 KB |
| @sentry/browser - Webpack (gzipped + minified) | 21.16 KB |
| @sentry/browser - Webpack (minified) | 69.03 KB |
| @sentry/react - Webpack (gzipped + minified) | 21.18 KB |
| @sentry/nextjs Client - Webpack (gzipped + minified) | 49.09 KB |
| @sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) | 28.64 KB |
| @sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) | 26.86 KB |
| @sentry/replay ES6 CDN Bundle (gzipped + minified) | 47.35 KB |
| @sentry/replay - Webpack (gzipped + minified) | 41.13 KB |
| @sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 66.3 KB |
| @sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 59.18 KB |
7.51.0
Important Changes
- feat(sveltekit): Auto-wrap
loadfunctions with proxy module (#7994)
@sentry/sveltekit now auto-wraps load functions in
+(page|layout).(ts|js)files (universal loads)+(page|layout).server.(ts|js)files (server-only loads)
This means that you don't have to manually add the wrapLoadWithSentry and wrapServerLoadWithSentry functions around your load functions. The SDK will not interfere with already wrapped load functions.
For more details, take a look at the Readme
- chore(angular): Upgrade
peerDependenciesto Angular 16 (#8035)
We now officially support Angular 16 in @sentry/angular-ivy.
Note that @sentry/angular does not support Angular 16.
- feat(node): Add ability to send cron monitor check ins (#8039)
Note: This release contains a bug with generating cron monitors. We recommend you wait till the next release of the JS SDK to use cron monitoring functionality
This release adds Sentry cron monitoring support to the Node SDK.
To monitor your cron jobs, send check-ins everytime you execute your cron jobs to Sentry. You can do this with the captureCheckIn method exported from the SDK. First you must send an in_progress, checkin, then you can send one with status ok or error based on what happened with your cron job.
const Sentry = require('@sentry/node');
// ...
Sentry.captureCheckIn({
// make sure this is the same slug as what you set up your
// Sentry cron monitor with.
monitorSlug: 'dailyEmail',
status: 'in_progress',
});
const startTime = timeInSeconds();
runTask();
Sentry.captureCheckIn({
monitorSlug: 'dailyEmail',
status: 'ok',
duration: timeInSeconds() - startTime,
});Additional Features and Fixes
- feat(browser): Export makeMultiplexedTransport from browser SDK (#8012)
- feat(node): Add
http.methodto node http spans (#7991) - feat(tracing): add body size for fetch requests (#7935)
- feat(tracing): Use http.method for span data (#7990)
- fix(integrations): Handle windows paths with no prefix or backslash prefix in
RewriteFrames(#7995) - fix(node): Mark stack frames with url protocol as in-app frames (#8008)
- fix(remix): Export
Integrationtype declaration as union type (#8016) - fix(replay): Do not add replay_id to DSC while buffering (#8020)
- fix(tracing): Don't set method multiple times (#8014)
- fix(utils): Normalize
undefinedtoundefinedinstead of"[undefined]"(#8017)
Work in this release contributed by @srubin and @arjenbrandenburgh. Thank you for your contributions!
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser - ES5 CDN Bundle (gzipped + minified) | 21.01 KB |
| @sentry/browser - ES5 CDN Bundle (minified) | 65.62 KB |
| @sentry/browser - ES6 CDN Bundle (gzipped + minified) | 19.55 KB |
| @sentry/browser - ES6 CDN Bundle (minified) | 58.08 KB |
| @sentry/browser - Webpack (gzipped + minified) | 21.16 KB |
| @sentry/browser - Webpack (minified) | 69.03 KB |
| @sentry/react - Webpack (gzipped + minified) | 21.18 KB |
| @sentry/nextjs Client - Webpack (gzipped + minified) | 49.09 KB |
| @sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) | 28.64 KB |
| @sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) | 26.86 KB |
| @sentry/replay ES6 CDN Bundle (gzipped + minified) | 46.86 KB |
| @sentry/replay - Webpack (gzipped + minified) | 40.67 KB |
| @sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 65.74 KB |
| @sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 58.63 KB |
7.50.0
Important Changes
- doc(sveltekit): Promote the SDK to beta state (#7976)
- feat(sveltekit): Convert
sentryHandleto a factory function (#7975)
- feat(sveltekit): Convert
With this release, the Sveltekit SDK (@sentry/sveltekit) is promoted to Beta.
This means that we do not expect any more breaking changes.
The final breaking change is that sentryHandle is now a function.
So in order to update to 7.50.0, you have to update your hooks.server.js file:
// hooks.server.js
// Old:
export const handle = sentryHandle;
// New:
export const handle = sentryHandle();- feat(replay): Allow to configure URLs to capture network bodies/headers (#7953)
You can now capture request/response bodies & headers of network requests in Replay.
You have to define an allowlist of URLs you want to capture additional information for:
new Replay({
networkDetailAllowUrls: ['https://sentry.io/api'],
});By default, we will capture request/response bodies, as well as the request/response headers content-type, content-length and accept.
You can configure this with some additional configuration:
new Replay({
networkDetailAllowUrls: ['https://sentry.io/api'],
// opt-out of capturing bodies
networkCaptureBodies: false,
// These headers are captured _in addition to_ the default headers
networkRequestHeaders: ['X-Custom-Header'],
networkResponseHeaders: ['X-Custom-Header', 'X-Custom-Header-2']
});Note that bodies will be truncated to a max length of ~150k characters.
- feat(replay): Changes of sampling behavior & public API
- feat(replay): Change the behavior of error-based sampling (#7768)
- feat(replay): Change
flush()API to record current event buffer (#7743) - feat(replay): Change
stop()to flush and remove current session (#7741)
We have changed the behavior of error-based sampling, as well as adding & adjusting APIs a bit to be more aligned with expectations.
See Sampling for details.
We've also revamped some public APIs in order to be better aligned with expectations. See Stoping & Starting Replays manually for details.
- feat(core): Add multiplexed transport (#7926)
We added a new transport to support multiplexing.
With this, you can configure Sentry to send events to different DSNs, depending on a logic of your choosing:
import { makeMultiplexedTransport } from '@sentry/core';
import { init, captureException, makeFetchTransport } from '@sentry/browser';
function dsnFromFeature({ getEvent }) {
const event = getEvent();
switch(event?.tags?.feature) {
case 'cart':
return ['__CART_DSN__'];
case 'gallery':
return ['__GALLERY_DSN__'];
}
return []
}
init({
dsn: '__FALLBACK_DSN__',
transport: makeMultiplexedTransport(makeFetchTransport, dsnFromFeature)
});Additional Features and Fixes
- feat(nextjs): Add
disableLoggeroption that automatically tree shakes logger statements (#7908) - feat(node): Make Undici a default integration. (#7967)
- feat(replay): Extend session idle time until expire to 15min (#7955)
- feat(tracing): Add
db.systemspan data to DB spans (#7952) - fix(core): Avoid crash when Function.prototype is frozen (#7899)
- fix(nextjs): Fix inject logic for Next.js 13.3.1 canary (#7921)
- fix(replay): Ensure console breadcrumb args are truncated (#7917)
- fix(replay): Ensure we do not set replayId on dsc if replay is disabled (#7939)
- fix(replay): Ensure we still truncate large bodies if they are failed JSON (#7923)
- fix(utils): default normalize() to a max. of 100 levels deep instead of Inifnity (#7957)
Work in this release contributed by @Jack-Works. Thank you for your contribution!
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser - ES5 CDN Bundle (gzipped + minified) | 21.02 KB |
| @sentry/browser - ES5 CDN Bundle (minified) | 65.66 KB |
| @sentry/browser - ES6 CDN Bundle (gzipped + minified) | 19.56 KB |
| @sentry/browser - ES6 CDN Bundle (minified) | 58.12 KB |
| @sentry/browser - Webpack (gzipped + minified) | 21.17 KB |
| @sentry/browser - Webpack (minified) | 69.07 KB |
| @sentry/react - Webpack (gzipped + minified) | 21.19 KB |
| @sentry/nextjs Client - Webpack (gzipped + minified) | 49.03 KB |
| @sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) | 28.59 KB |
| @sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) | 26.82 KB |
| @sentry/replay ES6 CDN Bundle (gzipped + minified) | 46.81 KB |
| @sentry/replay - Webpack (gzipped + minified) | 40.59 KB |
| @sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 65.62 KB |
| @sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 58.57 KB |
7.49.0
Important Changes
- feat(sveltekit): Read adapter output directory from
svelte.config.js(#7863)
Our source maps upload plugin is now able to read svelte.config.js. This is necessary to automatically find the output directory that users can specify when setting up the Node adapter.
- fix(replay): Ensure we normalize scope breadcrumbs to max. depth to avoid circular ref (#7915)
This release fixes a potential problem with how Replay captures console logs.
Any objects logged will now be cut off after a maximum depth of 10, as well as cutting off any properties after the 1000th.
This should ensure we do not accidentally capture massive console logs, where a stringified object could reach 100MB or more.
- fix(utils): Normalize HTML elements as string (#7916)
We used to normalize references to HTML elements as POJOs.
This is both not very easily understandable, as well as potentially large, as HTML elements may have properties attached to them.
With this change, we now normalize them to e.g. [HTMLElement: HTMLInputElement].
Additional Features and Fixes
- feat(browser): Simplify stack parsers (#7897)
- feat(node): Add monitor upsert types (#7914)
- feat(replay): Truncate network bodies to max size (#7875)
- fix(gatsby): Don't crash build when auth token is missing (#7858)
- fix(gatsby): Use
importforgatsby-browser.jsinstead ofrequire(#7889) - fix(nextjs): Handle braces in stack frame URLs (#7900)
- fix(nextjs): Mark value injection loader result as uncacheable (#7870)
- fix(node): Correct typo in trpc integration transaciton name (#7871)
- fix(node): reduce deepReadDirSync runtime complexity (#7910)
- fix(sveltekit): Avoid capturing "Not Found" errors in server
handleErrorwrapper (#7898) - fix(sveltekit): Detect sentry release before creating the Vite plugins (#7902)
- fix(sveltekit): Use
sentry.propertiesfile when uploading source maps (#7890) - fix(tracing): Ensure we use s instead of ms for startTimestamp (#7877)
- ref(deprecate): Deprecate
timestampWithMs(#7878) - ref(nextjs): Don't use Sentry Webpack Plugin in dev mode (#7901)
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser - ES5 CDN Bundle (gzipped + minified) | 21.02 KB |
| @sentry/browser - ES5 CDN Bundle (minified) | 65.65 KB |
| @sentry/browser - ES6 CDN Bundle (gzipped + minified) | 19.56 KB |
| @sentry/browser - ES6 CDN Bundle (minified) | 58.1 KB |
| @sentry/browser - Webpack (gzipped + minified) | 21.16 KB |
| @sentry/browser - Webpack (minified) | 69.06 KB |
| @sentry/react - Webpack (gzipped + minified) | 21.18 KB |
| @sentry/nextjs Client - Webpack (gzipped + minified) | 49.03 KB |
| @sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) | 28.59 KB |
| @sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) | 26.82 KB |
| @sentry/replay ES6 CDN Bundle (gzipped + minified) | 46.05 KB |
| @sentry/replay - Webpack (gzipped + minified) | 39.92 KB |
| @sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 64.91 KB |
| @sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 57.89 KB |
7.48.0
Important Changes
- feat(node): Add
AsyncLocalStorageimplementation ofAsyncContextStrategy(#7800)- feat(core): Extend
AsyncContextStrategyto allow reuse of existing context (#7778) - feat(core): Make
runWithAsyncContextpublic API (#7817) - feat(core): Add async context abstraction (#7753)
- feat(node): Adds
domainimplementation ofAsyncContextStrategy(#7767) - feat(node): Auto-select best
AsyncContextStrategyfor Node.js version (#7804) - feat(node): Migrate to domains used through
AsyncContextStrategy(#7779)
- feat(core): Extend
This release switches the SDK to use AsyncLocalStorage as the async context isolation mechanism in the SDK for Node 14+. For Node 10 - 13, we continue to use the Node domain standard library, since AsyncLocalStorage is not supported there. Preliminary testing showed a 30% improvement in latency and rps when making the switch from domains to AsyncLocalStorage on Node 16.
If you want to manually add async context isolation to your application, you can use the new runWithAsyncContext API.
import * as Sentry from '@sentry/node';
const requestHandler = (ctx, next) => {
return new Promise((resolve) => {
Sentry.runWithAsyncContext(async () => {
const hub = Sentry.getCurrentHub();
hub.configureScope(scope =>
scope.addEventProcessor(event =>
Sentry.addRequestDataToEvent(event, ctx.request, {
include: {
user: false,
},
})
)
);
await next();
resolve();
});
});
};If you're manually using domains to isolate Sentry data, we strongly recommend switching to this API!
In addition to exporting runWithAsyncContext publicly, the SDK also uses it internally where we previously used domains.
- feat(sveltekit): Remove
withSentryViteConfig(#7789)- feat(sveltekit): Remove SDK initialization via dedicated files (#7791)
This release removes our withSentryViteConfig wrapper we previously instructed you to add to your vite.config.js file. It is replaced Vite plugins which you simply add to your Vite config, just like the sveltekit() Vite plugins. We believe this is a more transparent and Vite/SvelteKit-native way of applying build time modifications. Here's how to use the plugins:
// vite.config.js
import { sveltekit } from '@sveltejs/kit/vite';
import { sentrySvelteKit } from '@sentry/sveltekit';
export default {
plugins: [sentrySvelteKit(), sveltekit()],
// ... rest of your Vite config
};Take a look at the README for updated instructions!
Furthermore, with this transition, we removed the possibility to intialize the SDK in dedicated sentry.(client|server).config.js files. Please use SvelteKit's hooks files to initialize the SDK.
Please note that these are breaking changes! We're sorry for the inconvenience but the SvelteKit SDK is still in alpha stage and we want to establish a clean and SvelteKit-friendly API before making the SDK stable. You have been warned ;)
- feat(sveltekit): Add Sentry Vite Plugin to upload source maps (#7811)
This release adds automatic upload of source maps to the SvelteKit SDK. No need to configure anything other than adding our Vite plugins to your SDK. The example above shows you how to do this.
Please make sure to follow the README to specify your Sentry auth token, as well as org and project slugs.
- feat(replay): Capture request & response headers (#7816)
Replay now captures the content-length, content-type, and accept headers from requests and responses automatically.
Additional Features and Fixes
- feat(browser): Export request instrumentation options (#7818)
- feat(core): Add async context abstraction (#7753)
- feat(core): Add DSC to all outgoing envelopes (#7820)
- feat(core): Cache processed stacks for debug IDs (#7825)
- feat(node): Add checkin envelope types (#7777)
- feat(replay): Add
getReplayId()method (#7822) - fix(browser): Adjust
BrowserTransportOptionsto support offline transport options (#7775) - fix(browser): DOMException SecurityError stacktrace parsing bug (#7821)
- fix(core): Log warning when tracing extensions are missing (#7601)
- fix(core): Only call
applyDebugMetadatafor error events (#7824) - fix(integrations): Ensure httpclient integration works with Request (#7786)
- fix(node):
reuseExistingdoes not need to call bind on domain (#7780) - fix(node): Fix domain scope inheritance (#7799)
- fix(node): Make
trpcMiddlewarefactory synchronous (#7802) - fix(serverless): Account when transaction undefined (#7829)
- fix(utils): Make xhr instrumentation independent of parallel running SDK versions (#7836)
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser - ES5 CDN Bundle (gzipped + minified) | 21.04 KB |
| @sentry/browser - ES5 CDN Bundle (minified) | 65.66 KB |
| @sentry/browser - ES6 CDN Bundle (gzipped + minified) | 19.59 KB |
| @sentry/browser - ES6 CDN Bundle (minified) | 58.12 KB |
| @sentry/browser - Webpack (gzipped + minified) | 21.19 KB |
| @sentry/browser - Webpack (minified) | 69.07 KB |
| @sentry/react - Webpack (gzipped + minified) | 21.21 KB |
| @sentry/nextjs Client - Webpack (gzipped + minified) | 49.06 KB |
| @sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) | 28.61 KB |
| @sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) | 26.85 KB |
| @sentry/replay ES6 CDN Bundle (gzipped + minified) | 45.35 KB |
| @sentry/replay - Webpack (gzipped + minified) | 39.28 KB |
| @sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 64.28 KB |
| @sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 57.26 KB |
7.47.0
Important Changes
- feat(browser): Add captureUserFeedback (#7729)
This release adds a new API, Sentry.captureUserFeedback, to browser-side SDKs that allows you to send user feedback to Sentry without loading and opening Sentry's user feedback dialog. This allows you to obtain user feedback however and whenever you want to and simply send it to Sentry using the SDK.
For instance, you can collect feedback, whenever convenient as shown in this example:
const eventId = Sentry.captureMessage('User Feedback');
const user = Sentry.getCurrentHub().getScope().getUser();
const userFeedback = {
event_id: eventId;
email: user.email
name: user.username
comments: 'I really like your App, thanks!'
}
Sentry.captureUserFeedback(userFeedback);Note that feedback needs to be coupled to an event but as in the example above, you can just use Sentry.captureMessage to generate one.
You could also collect feedback in a custom way if an error happens and use the SDK to send it along:
Sentry.init({
dsn: '__DSN__',
beforeSend: event => {
const userFeedback = collectYourUserFeedback();
const feedback = {
...userFeedback,
event_id: event.event_id.
}
Sentry.captureUserFeedback(feedback);
return event;
}
})- feat(tracing): Deprecate
@sentry/tracingexports (#7611)
With this release, we officially deprecate all exports from the @sentry/tracing package, in favour of using them directly from the main SDK package. The @sentry/tracing package will be removed in a future major release.
Please take a look at the Migration docs for more details.
Additional Features and Fixes
- feat(sveltekit): Add partial instrumentation for client-side
fetch(#7626) - fix(angular): Handle routes with empty path (#7686)
- fix(angular): Only open report dialog if error was sent (#7750)
- fix(core): Determine debug ID paths from the top of the stack (#7722)
- fix(ember): Ensure only one client is created & Replay works (#7712)
- fix(integrations): Ensure HttpClient integration works with Axios (#7714)
- fix(loader): Ensure JS loader works with tracing & add tests (#7662)
- fix(nextjs): Restore tree shaking capabilities (#7710)
- fix(node): Disable
LocalVariablesintegration on Node < v18 (#7748) - fix(node): Redact URL authority only in breadcrumbs and spans (#7740)
- fix(react): Only show report dialog if event was sent to Sentry (#7754)
- fix(remix): Remove unnecessary dependencies (#7708)
- fix(replay): Ensure circular references are handled (#7752)
- fix(sveltekit): Don't capture thrown
Redirects as exceptions (#7731) - fix(sveltekit): Log error to console by default in
handleErrorWithSentry(#7674) - fix(tracing): Make sure idle transaction does not override other transactions (#7725)
Work in this release contributed by @de-don and @TrySound. Thank you for your contributions!
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser - ES5 CDN Bundle (gzipped + minified) | 20.89 KB |
| @sentry/browser - ES5 CDN Bundle (minified) | 65.29 KB |
| @sentry/browser - ES6 CDN Bundle (gzipped + minified) | 19.44 KB |
| @sentry/browser - ES6 CDN Bundle (minified) | 57.75 KB |
| @sentry/browser - Webpack (gzipped + minified) | 21.06 KB |
| @sentry/browser - Webpack (minified) | 68.73 KB |
| @sentry/react - Webpack (gzipped + minified) | 21.09 KB |
| @sentry/nextjs Client - Webpack (gzipped + minified) | 48.87 KB |
| @sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) | 28.45 KB |
| @sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) | 26.68 KB |
| @sentry/replay ES6 CDN Bundle (gzipped + minified) | 44.88 KB |
| @sentry/replay - Webpack (gzipped + minified) | 38.87 KB |
| @sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 63.77 KB |
| @sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 56.8 KB |
7.46.0
Important Changes
- feat(sveltekit): Add Performance Monitoring for SvelteKit
This release adds support for Performance Monitoring in our SvelteKit SDK for the client/server. We've also changed how you should initialize your SDK. Please read our updated SvelteKit README instructions for more details.
- feat(core): Add
ignoreTransactionsoption (#7594)
You can now easily filter out certain transactions from being sent to Sentry based on their name.
Sentry.init({
ignoreTransactions: ['/api/healthcheck', '/ping'],
})- feat(node): Undici integration (#7582)
We've added an integration that automatically instruments Undici and Node server side fetch. This supports Undici v4.7.0 or higher and requires Node v16.7.0 or higher. After adding the integration outgoing requests made by Undici will have associated spans and breadcrumbs in Sentry.
Sentry.init({
integrations: [new Sentry.Integrations.Undici()],
})In our Next.js and SvelteKit SDKs, this integration is automatically added.
- feat(node): Add Sentry tRPC middleware (#7511)
We've added a new middleware for trpc that automatically adds TRPC information to Sentry transactions. This middleware is meant to be used in combination with a Sentry server integration (Next.js, Express, etc).
import { initTRPC } from '@trpc/server';
import * as Sentry from '@sentry/node';
const t = initTRPC.context().create();
const sentryMiddleware = t.middleware(
Sentry.Handlers.trpcMiddleware({
attachRpcInput: true,
}),
);
const sentrifiedProcedure = t.procedure.use(sentryMiddleware);- feat(tracing): Remove requirement for
@sentry/tracingpackage
With 7.46.0 you no longer require the @sentry/tracing package to use tracing and performance monitoring with the Sentry JavaScript SDKs. The @sentry/tracing package will be removed in a future major release, but can still be used with no changes.
Please see the Migration docs for more details.
- fix(node): Convert debugging code to callbacks to fix memory leak in
LocalVariablesintegration (#7637)
This fixes a memory leak in the opt-in LocalVariables integration, which adds local variables to the stacktraces sent to Sentry. The minimum recommended version to use the LocalVariables is now 7.46.0.
Additional Features and Fixes
- feat(node): Auto discovery only returns integrations where dependency loads (#7603)
- feat(node): Sanitize URLs in Span descriptions and breadcrumbs (PII) (#7667)
- feat(replay): Add
responseStatus,decodedBodySizeto perf entries (#7613) - feat(replay): Add experiment to capture request/response bodies (#7589)
- feat(replay): Capture replay mutation breadcrumbs & add experiment (#7568)
- feat(tracing): Ensure
pageloadtransaction starts at timeOrigin (#7632) - fix(core): Remove
abs_pathfrom stack trace (reverting #7167) (#7623) - fix(nextjs): Add loading component type to server component wrapping (#7639)
- fix(nextjs): Don't report
NEXT_NOT_FOUNDandNEXT_REDIRECTerrors (#7642) - fix(nextjs): Rewrite
abs_pathframes (#7619) - fix(nextjs): Show errors and warnings only once during build (#7651)
- fix(nextjs): Use Next.js internal AsyncStorage (#7630)
- fix(nextjs): Gracefully handle undefined
beforeFilesin rewrites (#7649)
Work in this release contributed by @aldenquimby and @bertho-zero. Thank you for your contributions!
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser - ES5 CDN Bundle (gzipped + minified) | 20.62 KB |
| @sentry/browser - ES5 CDN Bundle (minified) | 64.4 KB |
| @sentry/browser - ES6 CDN Bundle (gzipped + minified) | 19.15 KB |
| @sentry/browser - ES6 CDN Bundle (minified) | 56.78 KB |
| @sentry/browser - Webpack (gzipped + minified) | 21.53 KB |
| @sentry/browser - Webpack (minified) | 72 KB |
| @sentry/react - Webpack (gzipped + minified) | 21.55 KB |
| @sentry/nextjs Client - Webpack (gzipped + minified) | 52.05 KB |
| @sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) | 28.21 KB |
| @sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) | 26.41 KB |
| @sentry/replay ES6 CDN Bundle (gzipped + minified) | 44.74 KB |
| @sentry/replay - Webpack (gzipped + minified) | 38.86 KB |
| @sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 63.46 KB |
| @sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) | 56.49 KB |