sentry-javascript

Official Sentry SDKs for JavaScript

MIT License

Downloads
373.3M
Stars
7.9K
Committers
546

Bot releases are visible (Hide)

sentry-javascript - 7.46.0

Published by getsentry-bot over 1 year ago

Important Changes

  • feat(sveltekit): Add Performance Monitoring for SvelteKit
    • feat(sveltekit): Add meta tag for backend -> frontend (#7574)
    • fix(sveltekit): Explicitly export Node SDK exports (#7644)
    • fix(sveltekit): Handle nested server calls in sentryHandle (#7598)
    • ref(sveltekit): Split up universal and server load wrappers (#7652)

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 ignoreTransactions option (#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)
    • feat(nextjs): Add Undici integration automatically (#7648)
    • feat(sveltekit): Add Undici integration by default (#7650)

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/tracing package

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 LocalVariables integration (#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, decodedBodySize to 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 pageload transaction starts at timeOrigin (#7632)
  • fix(core): Remove abs_path from stack trace (reverting #7167) (#7623)
  • fix(nextjs): Add loading component type to server component wrapping (#7639)
  • fix(nextjs): Don't report NEXT_NOT_FOUND and NEXT_REDIRECT errors (#7642)
  • fix(nextjs): Rewrite abs_path frames (#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 beforeFiles in 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
sentry-javascript - 7.45.0

Published by getsentry-bot over 1 year ago

  • build(cdn): Ensure ES5 bundles do not use non-ES5 code (#7550)
  • feat(core): Add trace function (#7556)
  • feat(hub): Make scope always defined on the hub (#7551)
  • feat(replay): Add replay_id to transaction DSC (#7571)
  • feat(replay): Capture fetch body size for replay events (#7524)
  • feat(sveltekit): Add performance monitoring for client load (#7537)
  • feat(sveltekit): Add performance monitoring for server load (#7536)
  • feat(sveltekit): Add performance monitoring to Sveltekit server handle (#7532)
  • feat(sveltekit): Add SvelteKit routing instrumentation (#7565)
  • fix(browser): Ensure keepalive flag is correctly set for parallel requests (#7553)
  • fix(core): Ensure ignoreErrors only applies to error events (#7573)
  • fix(node): Consider tracing error handler for process exit (#7558)
  • fix(otel): Make sure we use correct hub on finish (#7577)
  • fix(react): Handle case where error.cause already defined (#7557)

Bundle size 📦

Path Size
@sentry/browser - ES5 CDN Bundle (gzipped + minified) 20.57 KB
@sentry/browser - ES5 CDN Bundle (minified) 64.2 KB
@sentry/browser - ES6 CDN Bundle (gzipped + minified) 19.13 KB
@sentry/browser - ES6 CDN Bundle (minified) 56.58 KB
@sentry/browser - Webpack (gzipped + minified) 21.59 KB
@sentry/browser - Webpack (minified) 71.66 KB
@sentry/react - Webpack (gzipped + minified) 21.61 KB
@sentry/nextjs Client - Webpack (gzipped + minified) 51.88 KB
@sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) 27.93 KB
@sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) 26.1 KB
@sentry/replay ES6 CDN Bundle (gzipped + minified) 44.33 KB
@sentry/replay - Webpack (gzipped + minified) 38.39 KB
@sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) 62.54 KB
@sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) 56.06 KB
sentry-javascript - 7.44.2

Published by getsentry-bot over 1 year ago

  • fix(cdn): Fix ES5 CDN bundles (#7544)
sentry-javascript - 7.44.1

Published by getsentry-bot over 1 year ago

  • ref(core): Move beforeEnvelope to client (#7527)
sentry-javascript - 7.44.0

Published by getsentry-bot over 1 year ago

This release introduces the first alpha version of @sentry/sveltekit, our newest JavaScript SDK for Sveltekit. Check out the README for usage instructions and what to expect from this alpha release.

  • feat(replay): Add request_body_size & response_body_size to fetch/xhr (#7407)
  • feat(replay): Add additional properties for UI clicks (#7395)
  • feat(replay): Reduce time limit before pausing a recording (#7356)
  • feat(replay): Upgrade rrweb and rrweb-player (#7508)
  • feat(replay): Use new afterSend hook to improve error linking (#7390)
  • feat(serverless): Publish lambda layer for Node 16/18 (#7483)
  • feat(sveltekit): Add wrapper for client load function (#7447)
  • feat(sveltekit): Add wrapper for server load function (#7416)
  • feat(sveltekit): Add server-side handleError wrapper (#7411)
  • feat(sveltekit): Introduce client-side handleError wrapper (#7406)
  • feat(sveltekit): Add SvelteKit client and server init functions (#7408)
  • feat(sveltekit): Inject Sentry.init calls into server and client bundles (#7391)
  • feat(tracing): Expose BrowserTracing in non-tracing bundles (#7479)
  • fix(core): Permanent idle timeout cancel finishes the transaction with the last finished child
  • fix(integrations): Handle lower-case prefix windows paths in RewriteFrames (#7506)
  • fix(next): Guard against missing serverSideProps (#7517)
  • fix(nextjs): Fix broken server component wrapping because of interrupted promise chain (#7456)
  • fix(nextjs): Fix runtime error for static pages (#7476)
  • fix(profiling): Catch sendProfile rejection (#7446)
  • fix(replay): Never capture file input changes (#7485)
  • fix(serverless): Explicitly export node package exports (#7457)
  • fix(vue): Do not depend on window.location for SSR environments (#7518)

Replay rrweb changes:

@sentry-internal/rrweb was updated from 1.105.0 to 1.106.0:

  • feat: Ensure password inputs are always masked (#78)
  • fix: Ensure text masking for updated attributes works (#83)
  • fix: Ensure unmaskTextSelector is used for masked attributes (#81)
  • fix: Mask values for selects & radio/checkbox value (#75)

Work in this release contributed by @woochanleee and @baked-dev. Thank you for your contribution!

sentry-javascript - 7.43.0

Published by getsentry-bot over 1 year ago

  • feat(nextjs): Run source map upload in Vercel develop and preview environments (#7436)
  • feat(types): Add profilesSampler option to node client type (#7385)
  • fix(core): Avoid using Array.findIndex() as it is ES5 incompatible (#7400)
  • fix(nextjs): Add better error messages for missing params during next build (#7434)
  • fix(nextjs): Don't crash build when auth token is missing
  • fix(node): Revert to dynamic require call to fix monkey patching (#7430)
  • fix(types): Fix node types & add E2E test (#7429)
sentry-javascript - 7.42.0

Published by getsentry-bot over 1 year ago

  • feat(core): Add lifecycle hooks (#7370)
  • feat(core): Emit hooks for transaction start/finish (#7387)
  • feat(nextjs): Connect traces for server components (#7320)
  • feat(replay): Attach an error cause to send exceptions (#7350)
  • feat(replay): Consider user input in form field as "user activity" (#7355)
  • feat(replay): Update rrweb to 1.105.0 & add breadcrumb when encountering large mutation (#7314)
  • feat(tracing): Expose cancelIdleTimeout and add option to make it permanent (#7236)
  • feat(tracing): Track PerformanceObserver interactions as spans (#7331)
  • fix(core): Ensure originalException has type unknown (#7361)
  • fix(core): Avoid using Object.values() (#7360)
  • fix(react): Make redux integration be configurable via normalizeDepth (#7379)
  • fix(tracing): Record LCP and CLS on transaction finish (#7386)
  • ref(browser): Improve type safety of breadcrumbs integration (#7382)
  • ref(node): Parallelize disk io when reading source files for context lines (#7374)
  • ref(node): Partially remove dynamic require calls (#7377)

Replay rrweb changes:

@sentry-internal/rrweb was updated from 1.104.1 to 1.105.0 (#7314):

  • feat: Add onMutation option to record (#70)
  • fix: Ensure <input type='submit' value='Btn text'> is masked (#69)
sentry-javascript - 7.41.0

Published by getsentry-bot over 1 year ago

  • feat: Ensure we use the same default environment everywhere (#7327)
  • feat(profiling): Add JS self profiling in the browser (#7273)
  • feat(vue): Allow to set routeLabel: 'path' to opt-out of using name (#7326)
  • fix(profiling): Guard from throwing if profiler constructor throws (#7328)
  • fix(react): Use namespace import for react router v6 (#7330)
  • fix(remix): Correctly parse X-Forwarded-For Http header (#7329)

Work in this release contributed by @OliverJAsh. Thank you for your contribution!

sentry-javascript - 7.40.0

Published by getsentry-bot over 1 year ago

  • feat(nextjs): Automatically resolve source of errors in dev mode (#7294)
  • feat(vue): Log errors to the console by default (#7310)
  • fix(ember): Disable performance in FastBoot (#7282)
  • fix(serverless): Capture custom tags in error events of GCP functions (#7298)
  • fix(serverless): Capture custom tags in GCP Background and CloudEvent function error events (#7301)
sentry-javascript - 7.39.0

Published by getsentry-bot over 1 year ago

This release adds a new package, @sentry/angular-ivy, which is our Angular SDK with full support for Angular's rendering engine, Ivy.

This release also adds a new enableTracing option, which can be used instead of tracesSampleRate for an easier setup.
Related to this, the hasTracingEnabled utility function was moved from @sentry/tracing to @sentry/core.
The old export from @sentry/tracing has been deprecated and will be removed in v8.

  • feat(angular): Add Ivy-compatible Angular SDK package (#7264)
  • feat(core): Add source map images to debug_meta (#7168)
  • feat(loader): Make lazy-loading configurable (#7232)
  • feat(nextjs): Add performance monitoring to server components (#7242)
  • feat(nextjs): Default to VERCEL_ENV as environment (#7227)
  • feat(replay): Add more default block filters (#7233)
  • feat(tracing): Add enableTracing option (#7238)
  • fix(core): Exclude client reports from offline queuing (#7226)
  • fix(nextjs): Export serverside data-fetcher wrappers from client (#7256)
  • fix(replay): Fix timestamps on LCP (#7225)

Replay rrweb changes:

@sentry-internal/rrweb was updated from 1.103.0 to 1.104.1 (#7238):

  • feat: Export typings/types (#60)
  • feat: Remove autoplay attribute from audio/video tags (#59)
  • fix: Exclude modulepreload as well (#52)
  • fix: Handle removed attributes (#65)
  • fix: Masking inputs on change when maskAllInputs:false (#61)
  • fix: More robust rootShadowHost check (#50)
  • fix: Textarea value is being duplicated (#62)
sentry-javascript - 7.38.0

Published by getsentry-bot over 1 year ago

  • feat: Put abs_path into stack frame object (#7167)
  • feat(integrations): Deprecate Offline integration (#7063)
  • feat(otel): Convert exception otel events to sentry errors (#7165)
  • feat(replay): Change LCP calculation (#7187)
  • feat(tracing): Support Apollo/GraphQL with NestJS (#7194)
  • feat(tracing): Track PerformanceResourceTiming.renderBlockingStatus (#7127)
  • feat(tracing|core): Remove transaction name change recording (#7197)
  • fix(browser): Ensure dedupe integration ignores non-errors (#7172)
  • fix(core): Skip empty integrations (#7204)
  • fix(nextjs): Fix faulty import in Next.js .d.ts (#7175)
  • fix(otel): Make otel.kind be a string (#7182)
  • fix(react): Make fallback render types more accurate (#7198)
  • fix(replay): Debounced flushes not respecting maxWait (#7207, #7208)
  • ref(replay): Improve logging for stopped replay (#7174)

Work in this release contributed by @lucas-zimermann. Thank you for your contribution!

Bundle size 📦

Path Size
@sentry/browser - ES5 CDN Bundle (gzipped + minified) 20.05 KB
@sentry/browser - ES5 CDN Bundle (minified) 62.14 KB
@sentry/browser - ES6 CDN Bundle (gzipped + minified) 18.68 KB
@sentry/browser - ES6 CDN Bundle (minified) 55.29 KB
@sentry/browser - Webpack (gzipped + minified) 20.41 KB
@sentry/browser - Webpack (minified) 66.73 KB
@sentry/react - Webpack (gzipped + minified) 20.44 KB
@sentry/nextjs Client - Webpack (gzipped + minified) 47.78 KB
@sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) 26.93 KB
@sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) 25.2 KB
@sentry/replay ES6 CDN Bundle (gzipped + minified) 42.57 KB
@sentry/replay - Webpack (gzipped + minified) 36.78 KB
@sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) 60.2 KB
@sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) 53.8 KB
sentry-javascript - 7.37.2

Published by getsentry-bot over 1 year ago

This release includes changes and fixes around text masking and blocking in Replay's rrweb dependency. See versions 1.102.0 and 1.103.0.

  • feat: Check blockSelector for blocking elements as well
  • feat: With maskAllText, mask the attributes: placeholder, title, aria-label
  • feat: fix masking on textarea
  • feat: Add maskAllText option

SDK Changes:

  • fix(replay): Fix svgs not getting unblocked (#7132)
sentry-javascript - 7.37.1

Published by getsentry-bot over 1 year ago

  • fix(browser): Support async in stack frame urls (#7131)
  • fix(nextjs): Make api route identifier stricter (#7126)
  • fix(node): Don't rely on this in http integration (#7135)
  • fix(replay): Fix missing fetch/xhr requests (#7134)
  • fix(tracing): Export defaultStackParser from tracing CDN bundles (#7116)
sentry-javascript - 7.37.0

Published by getsentry-bot over 1 year ago

  • feat: Add source map debug ids (#7068)
  • feat(browser): Add IndexedDb offline transport store (#6983)
  • feat(nextjs): Add auto-wrapping for server components (#6953)
  • feat(nextjs): Improve client stack traces (#7097)
  • feat(replay): Improve rrweb error ignoring (#7087 & #7094)
  • feat(replay): Send client_report when replay sending fails (#7093)
  • fix(node): LocalVariables, Improve frame matching for ESM (#7049)
  • fix(node): Add lru cache to http integration span map (#7064)
  • fix(replay): Export Replay from Sentry namespace in full CDN bundle (#7119)

Work in this release contributed by @JamesHenry. Thank you for your contribution!

sentry-javascript - 7.36.0

Published by getsentry-bot over 1 year ago

This Release re-introduces the accidentally removed but still deprecated maskInputOptions option for Session Replay.
Furthermore, replays are now stopped instead of paused when a rate limit is encountered.

  • feat(replay): Add back deprecated maskInputOptions (#6981)
  • feat(replay): Stop recording when hitting a rate limit (#7018)
  • fix(integrations): Report BaseClient integrations added after init (#7011)
  • fix(replay): Don't mangle private rrweb property (#7033)
  • fix(replay): Fix feature detection of PerformanceObserver (#7029)
sentry-javascript - 7.35.0

Published by getsentry-bot over 1 year ago

Session Replay is deprecating privacy options in favor of a more streamlined API. Please see the Replay migration guide for further information.
Additionally, the following configuration options will no longer be configurable: slimDOMOptions, recordCanvas, inlineStylesheet, collectFonts, inlineImages.

  • feat(browser): Track if cdn or npm bundle (#6976)
  • feat(core): Add aria label to breadcrumb attributes (#6955)
  • feat(core): Add Offline Transport wrapper (#6884)
  • feat(loader): Add SENTRY_SDK_SOURCE to track loader stats (#6985)
  • feat(loader): Sync loader with Sentry template (#7001)
  • feat(replay): Deprecate privacy options in favor of a new API, remove some recording options (#6645)
  • feat(replay): Move sample rate tags into event context (#6659)
  • fix(nextjs): Add isomorphic versions of ErrorBoundary, withErrorBoundary and showReportDialog (#6987)
  • fix(nextjs): Don't modify require calls in wrapping loader (#6979)
  • fix(nextjs): Don't share I/O resources in between requests (#6980)
  • fix(nextjs): Inject client config into _app instead of main (#7009)
  • fix(nextjs): Use Proxies to wrap to preserve static methods (#7002)
  • fix(replay): Catch style mutation handling & null events in rrweb (#7010)
  • fix(replay): Handle compression failures more robustly (#6988)
  • fix(replay): Only call scope.getLastBreadcrumb if available (#6969)
  • fix(utils): Account for null prototype during normalization (#6925)
  • ref(replay): Log warning if sample rates are all undefined (#6959)

Work in this release contributed by @boblauer. Thank you for your contribution!

sentry-javascript - 7.34.0

Published by getsentry-bot over 1 year ago

This release adds automatic injection of the Next.js SDK into serverside app directory bundles, allowing users to call the Sentry SDK in server components.

  • feat(nextjs): Add SDK to serverside app directory (#6927)
  • fix(replay): Do not renew session in error mode (#6948)
  • fix(replay): Handle compression worker errors more gracefully (#6936)
  • fix(replay): fix path separator substitution to replay all \ (#6932)
  • fix(replay): ignore errors in CSSStyleSheetObserver (getsentry/rrweb#16)

Work in this release contributed by @mdtro. Thank you for your contribution!

sentry-javascript - 7.34.0-beta.0

Published by getsentry-bot over 1 year ago

This release is a preview build to test out SDK support for the server-side Next.js app directory.

sentry-javascript - 7.33.0

Published by getsentry-bot over 1 year ago

With this release, the sample rate for Session Replays will default to 0. We recommend explicitly setting the sample rate via the replaysSessionSampleRate and replaysOnErrorSampleRate options.

  • feat(replay): Remove default sample rates for replay (#6878)
  • feat(replay): try/catch around stopRecording (#6856)
  • fix(nextjs): Mark multiplexer targets as entrypoints (#6919)
sentry-javascript - 7.32.1

Published by getsentry-bot over 1 year ago

  • fix(nextjs): Make SDK multiplexer more resilient (#6905)