- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott
- fix(browser): Use getGlobalObject for document check (#3996)
- misc(all): Disallow direct usage of globals (#3999)
- fix(browser): Check for document when sending outcomes (#3993)
- feat(browser): Client Report Support (#3955)
- feat(perf): Add experimental option to improve LCP collection (#3879)
- fix(browser): Make sure that
document.headordocument.bodyexists forinjectReportDialog(#3972) - fix(browser): Parse frames-only
safari(-web)-extensionstack (#3929) - fix(ember): Move
ember-sourcetodevDependencies(#3962) - fix(hub): Don't set
lastEventIDfor transactions (#3966) - fix(nextjs): Include nextjs config's
basePathonurlPrefix(#3922) - fix(node): Add protocol detection for get/request calls without explict protocol (#3950)
- fix(node): Disable
autoSessionTrackingif dsn undefined (#3954) - fix(vue): Check for matched route existence before starting transaction (#3973)
- ref(browser): Migrate unit tests from Chai and Karma to Jest (#3965)
- ref(nextjs): Exclude cross-platform tracing code from bundles (#3978)
- ref(tracing): Idle transaction refactoring (#3988)
- fix(nextjs): Differentiate between webpack 4 and 5 in server builds (#3878)
- fix(core): Skip native frames while searching frame URLs. (#3897)
- fix(vue): Attach props only if VM is available (#3902)
- feat(tracing): Add pg-native support to Postgres integration. (#3894)
- ref(ember): Update addon to support Ember 4.0.0 (beta) (#3915)
- feat(react): Make Profiler _mountSpan attribute protected (#3904)
- fix(ember): allow ember-beta to fail (#3910)
- fix(tracing): Prevent metrics erroring module load in web workers (#3941)
- misc(browser): Log when event is dropped by Dedupe integration (#3943)
- feat(nextjs): Allow for TypeScript user config files (#3847)
- fix(browser): Make sure handler exists for LinkedErrors Integration (#3861)
- fix(core): Skip anonymous callbacks while searching frame URLs. (#3842)
- fix(core): Stop rejecting in
flushandclosewhen client undefined (#3846) - fix(nextjs): Stop
SentryWebpackPluginfrom uploading unnecessary files (#3845) - fix(react): Require ReactElement in ErrorBoundary props and render (#3857)
- fix(tests): Allow tests to run on Windows without WSL (#3813)
- fix(utils): Fix false-positive circular references when normalizing
Eventobjects (#3864) - fix(vue): Make Router.name type optional to match VueRouter (#3843)
- ref(core): Prevent redundant setup work (#3862)
- ref(nextjs): Stop reinitializing the server SDK unnecessarily (#3860)
- feat(vue): Rework tracing and add support for
Vue 3(#3804) - feat(tracing): Upgrade to
web-vitals 2.1.0(#3781) - fix(ember): Make argument to
InitSentryForEmberoptional (#3802) - fix(nextjs): Do not start a navigation if the from URL is the same (#3814)
- fix(nextjs): Let
flushfinish in API routes (#3811) - fix(nextjs): Use
domainsto prevent scope bleed (#3788) - fix(react): Make
Routetyping more generic (#3809) - ref(tracing): Update span op for outgoing HTTP requests (#3821)
- ref(tracing): Remove updated CLS from web-vitals (#3822)
- feat(browser): Use scope data in report dialog (#3792)
- feat(core): Add
ensureNoCircularStructuresexperiment to help debug serialization bugs (#3776) - feat(nextjs): Add options to disable webpack plugin (#3771)
- feat(react): Support render props in
ErrorBoundary(#3793) - fix(ember): Correctly cache ember types from prepublish hook (#3749)
- fix(ember): Fix runtime config options not being merged (#3791)
- fix(metrics): Check for cls entry sources (#3775)
- fix(nextjs): Make
withSentryConfigreturn type match given config type (#3760) - fix(node): Check if
captureRequestSessionis available before its called (#3773) - fix(node): Enable
autoSessionTrackingcorrectly (#3758) - fix(react):
allRoutescannot triple equal a new array instance (#3779) - fix(tracing): Add check for
document.scriptsin metrics (#3766) - fix(types): Update
ExtractedNodeRequestDatato include validquery_paramsfortracesSampler(#3715) - ref(gatsby): Default release to empty string (#3759)
- ref(nextjs): Inject init code in
_appand API routes (#3786) - ref(nextjs): Pre-disable-plugin-option config cleanup (#3770)
- ref(nextjs): Stop setting redundant
productionBrowserSourceMapsin config (#3765)
- [browser] feat: Enable serialization of multiple DOM attributes for breadcrumbs. (#3755)
- [browser] feat: Make dedupe integration default for browser (#3730)
- [core] fix: Correctly limit Buffer requests (#3736)
- [ember] ref: Allow initing Ember without config entry (#3745)
- [serverless] fix: wrapEventFunction does not await for async code (#3740)
- [core] fix: Do not track sessions if not enabled (#3686)
- [core] fix: Prevent sending terminal status session updates (#3701)
- [core] ref: Make
beforeSendmore strict (#3713) - [browser] ref: Log which request type has been limited (#3687)
- [nextjs] feat: Auto enable node http integration on server (#3675)
- [nextjs] fix: Correctly handle functional next config in
withSentryConfig(#3698) - [nextjs] fix: Fix conflict with other libraries modifying webpack
entryproperty (#3703) - [nextjs] fix: Update @sentry/webpack-plugin to 1.15.1 in @sentry/nextjs to resolve build timeouts issue (#3708)
- [nextjs] ref: Split up config code and add tests (#3693)
- [core] fix: Add event type to item header when envelopes are forced (#3676)
- [core] fix: Include DSN in envelope header for sessions (#3680)
- [core] fix: Prevent scope from storing more than 100 breadcrumbs at the time (#3677)
- [node] ref: Remove default http(s) import from http-module (#3681)
- [nextjs] feat: Add body data to transaction
requestcontext (#3672)
- [core] feat: Add
tunneloption to support request tunneling for dealing with ad-blockers (#3521)
- [node] feat: Allow for overriding custom
UrlParserin Node.js transports (#3612) - [browser] feat: Add
serializeAttributeoption to DOM breadcrumbs. (#3620) - [nextjs] fix:
Improve NextConfigExportscompatibility (#3592) - [nextjs] fix: Use correct abs path for server init (#3649)
- [angular] fix: Do not run change detection when capturing the exception (#3618)
- [angular] fix: Do not run change detection when finishing transaction (#3622)
- [angular] fix: Provide a single compilation unit for the
tracedirective (#3617) - [utils] fix: Check for
performance.nowwhen calculating browser timing (#3657) - [integrations] fix: Run rewriting for both
exceptionandstacktraceevents (#3653) - [node] ref: Replace old-style
require(console)with a global object (#3623) - [node] ref: Make
HTTPModulemore abstract to be able to use it in non-Node.JS environments (#3655) - [nextjs] ref: Export
BrowserTracingintegration directly from@sentry/nextjs(#3647)
- [nextjs] fix: Prevent webpack 5 from crashing server (#3642)
- [eslint] build: Upgrade to eslint 7.27.0 (#3639)
- [nextjs] test: Add nextjs integration tests for Server and Browser (#3632)
- [browser] ref: Don't send session duration in browser environments (#3616)
- [hub] fix: Correctly compute session durations (#3616)
- [angular] fix: prevent memory leak when the root view is removed (#3594)
- [browser] fix: Do not trigger session on meaningless navigation (#3608)
- [nextjs] feat: Frontend + withSentry Performance Monitoring (#3580)
- [react] fix: Use history object for init transaction name (#3609)
- [ember] ref: Fix merging of runtime config with environment config. (#3563)
- [angular] ref: Allow angular v12 as a peer dependency. (#3569)
- [tracing] fix: Avoid browser tracing initialization on node environment (#3548)
- [react] ref: Make RouteProps typing more generic (#3570)
- [tracing] fix: Correctly handle pg.Cursor in pg query method (#3567)
- [types] fix: Add attachment to SentryRequestType (#3561)
- [nextjs] ref: Disable node session for next.js (#3558)
- [eslint] feat: Add new eslint rules (#3545)
- [core] feat: initialScope in SDK Options (#3544)
- [node] feat: Release Health for Node (Session Aggregates) (#3319)
- [node] feat: Autoload Database Integrations in Node environment (#3483)
- [react] feat: Add support for React 17 Error Boundaries (#3532)
- [tracing] fix: Generate TTFB (Time to first byte) from span data (#3515)
- [nextjs] fix: Fix error logging (#3512)
- [nextjs] fix: Add environment automatically (#3495)
- [node] feat: Implement category based rate limiting (#3435)
- [node] fix: Set handled to false when it is a crash (#3493)
- [tracing] fix: Mark tracing distributables as side effects (#3519)
- [nextjs] fix: Add tslib dependecy; change inject order (#3487)
- [nextjs] fix: API routes logging (#3479)
- [nextjs] fix: User server types (#3471)
- [nextjs] ref: Remove next.js plugin (#3462)
- [core] fix: Prevent InboundFilters mergeOptions method from breaking users code (#3458)
- [angular] fix: Make SentryErrorHandler extensible and export it publicly (#3438)
- [browser] feat: Capture information about the LCP element culprit (#3427)
- [core] fix: Correctly attach installed integrations to sdkinfo (#3447)
- [ember] fix: Add guards to ensure marks exist (#3436)
- [nextjs] fix: Fix incomplete merging of user config with Sentry config (#3434)
- [nextjs] ref: Use resolved paths for
requirecalls in config code (#3426) - [node] fix: Fix for manual tests in node (#3428)
- [transports] feat: Honor no_proxy env variable (#3412)
- [browser] feat: Parse safari-extension and safari-web-extension errors (#3374)
- [browser] fix: Provide better descriptions for the performance navigation timing spans (#3245)
- [browser] test: Replace Authorization with Accept header (#3400)
- [ci] ci: Add CodeQL scanning
- [core] Drop session if release is not a string or is missing and log (#3396)
- [docs] Document how to publish a new release (#3361)
- [gatsby] fix: Specify gatsby peer dep (#3385)
- [gatsby] chore(docs): Update @sentry/gatsby README (#3384)
- [integrations] feat(integrations): add prefix support for RewriteFrames (#3416)
- [integrations] ref: Use esm imports with localforage and add esModuleInterop (#3403)
- [nextjs] feat: Next.js SDK + Plugin (#3301)
- [node] fix: Generate a Sentry Release string from env if its not provided (#3393)
- [tracing] fix: Replace performance.timeOrigin in favour of browserPerformanceTimeOrigin (#3397)
- [tracing] fix: Mark span as failed when fetch API call fails (#3351)
- [utils] fix: Use the more reliable timeOrigin (#3398)
- [utils] fix: Wrap oldOnPopState.apply call in try/catch to prevent Firefox from crashing (#3377)
- [utils] fix: Avoid performance.timeOrigin if too skewed (#3356)
- [browser] fix: Add
SentryRequestTypetoRateLimitingCategorymapping (#3328) - [browser] ref: Add fast-path to
fetchImpland cleanup redundant iframe (#3341) - [node] fix: Fallback to empty string if
req.baseUrlis empty (#3329) - [node] ref: Remove circular dependency in
@sentry/node(#3335) - [tracing] fix: Attach mysql tracing to
Connection.createQueryinstead ofConnection.prototype.query(#3353) - [tracing] ref: Clarify naming in
BrowserTracingintegration (#3338) - [ember] ref: Fix tests to be forward compatible with component changes (#3347)
- [ember] ref: Silence deprecation warnings in beta (#3346)
- [gatsby] fix: Update Vercel environment variables to match their current system variables (#3337)
- [hub] fix: Only create sessions if the correct methods are defined (#3281)
- [core] fix: Don't override SDK metadata (#3304)
- [browser] fix: Prevent fetch errors loops with invalid fetch implementations (#3318)
- [serverless] ref: Add compatible runtime nodejs14.x to building awslambda layer (#3303)
- [ember] fix: Keep route hook context when performance-wrapping (#3274)
- [integrations] fix: Normalized Event before caching. (#3305)
- [core] fix: Moves SDK metadata-setting into the
NodeClient/BrowserClientto protect it from being overwritten by other classes extendingBaseClientlike @sentry/serverless (#3279)
- [tracing] feat: Mongoose tracing support added to MongoDB (#3252)
- [tracing] fix: Add missing
findmethod from mongo tracing list (#3253) - [tracing] fix: Create
spanRecorderwhenever transactions are sampled (#3255) - [node] fix: Parse ESM based frames with
file://protocol (#3264) - [react] fix: Remove react-dom peer dependency for RN (#3250)
- [ember] fix: Fixing fetching config during build step (#3246)
- [serverless]: fix: Handle incoming
sentry-traceheader (#3261)
We updated the way how we calculate errored and crashed sessions with this update. Please be aware that some numbers might change for you and they now should reflect the actual reality. Visit our docs for more information.
- [browser] feat: Rework how we track sessions (#3224)
- [hub] ref: Simplify getting hub from active domain (#3227)
- [core] ref: Rename
usertopublicKeyinDsntype and class (#3225) - [ember] fix: Fix backwards compatibility with Embroider changes (#3230)
- [browser] fix: Don't break when function call context is undefined (#3222)
- [tracing] fix: Set default sampling context data where
startTransactionis called (#3210) - [tracing] fix: Remove stray sampling data tags (#3197)
- [tracing] fix: Clear activeTransaction from the scope and always start idle timers (#3215)
- [angular] ref: Add Angular 11 to possible peerDependencies list (#3201)
- [vue] ref: Add
vue-routerto peerDependencies list (#3214)
- [tracing] ref: feat(tracing): Add context update methods to Span and Transaction (#3192)
- [node] ref: Make ExpressRequest not extend http.IncomingMessage anymore (#3211)
- [browser] deps: Allow for LocalForage >=1.8.1 (#3205)
- [ember] fix(ember): Fix location url for 'hash' location type (#3195)
- [ember] fix(ember): Fix Ember to work with Embroider and Fastboot (#3181)
- [browser] fix: Disable session tracking in non-browser environments (#3194)
- [vue] fix: Make sure that error is present before logging it in Vue (#3183)
- [serverless] fix: Fix issue when
/distdidn't exist before building (#3190)
This major version release doesn't contain any breaking API/code changes. Starting from the version 6.0.0, all SDKs
that support sending sessions data will do so by default. See our
Release Health docs to learn more. As of this version, it applies to
all Browser SDKs (Browser, React, Angular, Vue, Gatsby etc.). Node.js and other related Server SDKs will follow soon
after, in the minor 6.x release. You can opt-out of this behavior by setting autoSessionTracking: false option
during SDK initialization.
- [wasm] feat: Introduce a
@sentry/wasmpackage (#3080) - [tracing] feat: Turn Sessions Tracking on by default (#3099)
- [tracing] feat: Create session on history change (#3179)
- [core] feat: Attach SDK metadata to options and pass it to the API and transports (#3177)
- [build] feat: AWS Lambda layer target config for Craft (#3175)
- [tracing] fix: Make sure that mongo method is thenable before calling it (#3173)
- [node] fix: esbuild warning dynamic require (#3164)
- [tracing] ref: Expose required things for React Native auto tracing (#3144)
- [ember] fix: rootURL breaking route recognition (#3166)
- [serverless] feat: Zip serverless dependencies for AWS Lambda (#3110)
- [build] feat: Target to deploy on AWS Lambda (#3165)
- [build] ref: Remove TravisCI (#3149)
- [build] ref: Upgrade action-prepare-release to latest version
- Fix version
- [types] ref: Loosen tag types, create new
Primitivetype (#3108) - [tracing] feat: Send sample rate and type in transaction item header in envelope (#3068)
- [tracing] fix(web-vitals): Fix TTFB capture in Safari (#3106)
- [tracing] feat: MongoDB Tracing Support (#3072)
- [tracing] feat: MySQL Tracing Support (#3088)
- [tracing] feat: PostgreSQL Tracing Support (#3064)
- [tracing] fix: Add
sentry-traceheader to outgoing http(s) requests in node (#3053) - [node] fix: Revert express tracing integration type to use any (#3093)
- [browser] fix: Handle expo file dir stack frames (#3070)
- [vue] feat: @sentry/vue (#2953)
- [node] ref: Revamp express route info extraction (#3084)
- [browser] fix: Dont append dsn twice to report dialog calls (#3079)
- [ember] fix: Use correct import from
@sentry/browser(#3077) - [node] ref: Express integration span name change and path unification (#3078)
- [hub] fix: Don't invoke scope updates in scope listeners
- [hub] fix: Sync ScopeListeners (#3065)
- [tracing] fix: Typo in constant name in @sentry/tracing (#3058)
- [core] fix: Remove globalThis usage (#3033)
- [react] ref: Add React 17.x to peerDependencies (#3034)
- [tracing] fix: Express transaction name (#3048)
- [serverless] fix: AWS Execution duration (#3032)
- [serverless] fix: Add
optionalparameter to AWSServices integration (#3030) - [serverless] fix: Wrap google cloud functions with a Proxy(). (#3035)
- [hub] fix: stop using @types/node in @sentry/hub (#3050)
- [hub] fix: Make sure that
getSessionexists before calling it (#3017) - [browser] feat: Add
DOMException.codeas tag if it exists (#3018) - [browser] fix: Call
removeEventListenertwice only when necessary (#3016) - [tracing] fix: Schedule the execution of the finish to let all the spans being closed first (#3022)
- [tracing] fix: Adjust some web vitals to be relative to fetchStart and some other improvements (#3019)
- [tracing] fix: Add transaction name as tag on error events (#3024)
- [apm] ref: Delete sentry/apm package (#2990)
- [types] fix: make requestHandler options an own type (#2995)
- [core] fix: Use 'production' as default value for environment key (#3013)
- [hub] fix: Preserve original user data for explicitly updated scopes (#2991)
- [ember] fix: prevent unexpected errors on transition (#2988)
- [browser] feat: Sessions Health Tracking (#2973)
- [core] fix: Correct
processingflag inBaseClient(#2983) - [node] feat: use
req.cookiesif available instead of parsing (#2985) - [core] ref: Use SentryError for
prepareEventrejections (#2973) - [core] ref: Errors handling in
prepareEventpipeline (#2987) - [serverless] feat: Implement tracing of Google Cloud Requests (#2981)
- [serverless] ref: Set global event processor and pass scope data for transactions (#2975)
- [tracing] feat: Add secure connect navigation timing (#2980)
- [tracing] feat: Capture time spent redirecting before loading the current page (#2986)
- [tracing] feat: Capture browser navigator information (#2966)
- [tracing] feat: Express router methods tracing (#2972)
- [tracing] ref: Only report FCP or FP if the page wasn't hidden prior to their instrumentation (#2979)
- [serverless] feat: Implement error handling and tracing for
Google Cloud Functions(#2945) - [serverless] feat: Enable tracing for
AWSLambda(#2945) - [serverless] feat: Add
AWSResourcesintegration (#2945) - [browser] feat: Implement
X-Sentry-Rate-Limitshandling for transports (#2962) - [tracing] feat: Add measurements support and web vitals (#2909)
- [tracing] feat: Add web vitals: CLS and TTFB (#2964)
- [angular] ref: Make
@angular/commona peerDependency instead of dependency (#2961) - [ember] feat: Add more render instrumentation (#2902)
- [ember] ref: Use
@embroider/macrosinstead ofrunInDebug(#2873) - [hub] ref: Do not allow for popping last layer and unify getter methods (#2955)
- [tracing] fix: Expose
startTransactionin CDN bundle (#2938) - [tracing] fix: Allow unsampled transactions to be findable by
getTransaction()(#2952) - [tracing] fix: Reimplement timestamp computation (#2947)
- [tracing] ref: Clean up sampling decision inheritance (#2921) (#2944)
- [react] fix: Makes
normalizeTransactionNametake a callback function in router-v3 (#2946) - [ember] feat: Add more render instrumentation to @sentry/ember (#2902)
- [types] ref: Use correct types for
event.contextand allow for context removal (#2910) - [types] ref: Make name required on transaction class (#2949)
- [build] feat: Update to use extends w. Volta (#2930)
- [utils] fix: Check that performance is available before calling it in RN (#2924)
- [types] fix: Remove Location type to avoid dom lib dependency (#2922)
- [angular] fix: Make sure that message exist before returning it in angular error handler (#2903)
- [integrations] feat: Add referrer to data collected by UserAgent integration (#2912)
- [core] fix: Make sure that body is not exposed in the breadcrumb by default (#2911)
- [core] feat: Give access to XHR requests body in breadcrumb hint (#2904)
- [core] fix: Add a wrapper around performance for React Native (#2915)
- [integrations] fix: Make Vue tracing options optional (#2897)
- [integrations] ref: Remove unnecessary eventID check in offline integration (#2890)
- [tracing] feat: Add hook for trace sampling function to SDK options (#2820)
- [serverless] feat: Introduce
@sentry/serverlesswithAWSLambdasupport (#2886) - [ember] feat: Add performance instrumentation for routes (#2784)
- [node] ref: Remove query strings from transaction and span names (#2857)
- [angular] ref: Strip query and fragment from Angular tracing URLs (#2874)
- [tracing] ref: Simplify
shouldCreateSpanForRequest(#2867)
- [integrations] fix: Window type (#2864)
- [integrations] fix: localforage typing (#2861)
- [integrations] fix: Add localforage typing (#2856)
- [tracing] fix: Make sure BrowserTracing is exported in CDN correctly (#2855)
- [browser] ref: Recognize
Capacitorscheme asGecko(#2836) - [node]: fix: Save
stringexception as a message forsyntheticException(#2837) - [tracing] feat: Add
builddir in npm package (#2846) - [tracing] fix: Fix typo in
addPerformanceEntriesmethod name (#2847) - [apm] ref: Deprecate
@sentry/apmpackage (#2844) - [angular] fix: Allow for empty DSN/disabling with
AngularJSintegration (#2842) - [gatsby] ref: Make
@sentry/tracingmandatory + add tests (#2841) - [integrations] feat: Add integration for offline support (#2778)
- [utils] ref: Revert the usage of
globalThisforgetGlobalObjectutil (#2851) - [build] fix: Lock in
TypeScriptto3.7.5(#2848) - [build] misc: Upgrade
Prettierto1.19.0(#2850)
- [ci] fix: Actually release correct code
- [tracing] feat: Track span status for fetch requests (#2835)
- [react] fix: Return an any from createReduxEnhancer to avoid type conflicts (#2834)
- [react] fix: Make sure profiler is typed with any (#2838)
- [tracing] fix: Normalize transaction names for express methods to match those of other SDKs (#2832)
- [tracing] feat: Change resource span op name and add data (#2816)
- [tracing] ref: Make sure error status is set on transactions (#2818)
- [apm/tracing] fix: Make sure Performance Observer takeRecords() is defined (#2825)
- [ember] fix: Make the package public and fix the build by bumping TypeScript to v3.9 (#2811)
- [eslint] test: Don't test eslint config/plugin on Node <= v8
- [all] feat: Convert
sentry-javascripttoESLint(#2786) - [internal/eslint] feat: Add
@sentry-internal/eslint-config-sdk(#2807) - [ember] feat: Add
@sentry/ember(#2739) - [angular] feat: Add
@sentry/angular(#2787) - [react] feat: Add routing instrumentation for
React Router v4/v5(#2780) - [gatsby] feat: support
process.env.SENTRY_RELEASE(#2776) - [apm/tracing] feat: Export
addExtensionMethodsfor SDKs to use (#2805) - [apm/tracing] ref: Remove
expresstyping (#2803) - [node] fix:
Retry-Afterheader in node should be lower-case (#2779)
- [core] ref: Expose sentry request for electron (#2774)
- [browser] fix: Make sure that DSN is always passed to report dialog (#2770)
- [apm/tracing] fix: Make sure fetch requests are being timed correctly (#2772)
- [apm/tracing] fix: Make sure pageload transactions start timestamps are correctly generated (#2773)
- [react] feat: Add instrumentation for React Router v3 (#2759)
- [react] ref: Use inline types to avoid redux dependency. (#2768)
- [node] fix: Set transaction on scope in node for request (#2769)
- [browser] feat: Make
@sentry/browsermore treeshakeable (#2747) - [browser] fix: Make sure that handler exists in
LinkedErrorsintegration (#2742) - [tracing] feat: Introduce
@sentry/tracing(#2719) - [tracing] ref: Use
idleTimoutif no activities occur in idle transaction (#2752) - [react] feat: Export
createReduxEnhancerto log redux actions as breadcrumbs, and attach state as an extra. (#2717) - [react] feat: Add
beforeCaptureoption to ErrorBoundary (#2753) - [react] fix: Change import of
hoist-non-react-statics(#2755) - [gatsby] fix: Make
@sentry/apmoptional in@sentry/gatsbypackage (#2752)
- [gatsby] fix: Include correct gatsby files in npm tarball (#2731)
- [browser] fix: Correctly detach event listeners (#2737)
- [browser] fix: Drop initial frame for production react errors (#2728)
- [node] chore: Upgrade https-proxy-agent to v5 (#2702)
- [types] ref: Define type for Extra(s) (#2727)
- [browser] fix: Correctly remove all event listeners (#2725)
- [tracing] fix: APM CDN bundle expose startTransaction (#2726)
- [tracing] fix: Add manual
DOMStringListtyping (#2718)
- [react] feat: Expose eventId on ErrorBoundary component (#2704)
- [node] fix: Extract transaction from nested express paths correctly (#2714)
- [tracing] feat: Pick up sentry-trace in JS tag (#2703)
- [tracing] fix: Respect fetch headers (#2712) (#2713)
- [tracing] fix: Check if performance.getEntries() exists (#2710)
- [tracing] fix: Add manual Location typing (#2700)
- [tracing] fix: Respect sample decision when continuing trace from header in node (#2703)
- [tracing] fix: All options of adding fetch headers (#2712)
- [gatsby] fix: Add gatsby SDK identifier (#2709)
- [gatsby] fix: Package gatsby files properly (#2711)
- [react] feat: Update peer dependencies for
reactandreact-dom(#2694) - [react] ref: Change Profiler prop names (#2699)
- [core] ref: Rename
whitelistUrls/blacklistUrlstoallowUrls/denyUrls(#2671) - [core] feat: Export
makeMain(#2665) - [core] fix: Call
bindClientwhen creating newHubto make integrations work automatically (#2665) - [react] feat: Add @sentry/react package (#2631)
- [react] feat: Add Error Boundary component (#2647)
- [react] feat: Add useProfiler hook (#2659)
- [react] ref: Refactor Profiler to account for update and render (#2677)
- [gatsby] feat: Add @sentry/gatsby package (#2652)
- [apm] feat: Add ability to get span from activity using
getActivitySpan(#2677) - [apm] fix: Check if
performance.markexists before calling it (#2680) - [tracing] feat: Add
scope.getTransactionto return a Transaction if it exists (#2668) - [tracing] ref: Deprecate
scope.setTransactionin favor ofscope.setTransactionName(#2668) - [tracing] feat: Add
beforeNavigateoption (#2691) - [tracing] ref: Create navigation transactions using
window.location.pathnameinstead ofwindow.location.href(#2691)
- [browser] feat: Support
fetchParameters(#2567) - [apm] feat: Report LCP metric on pageload transactions (#2624)
- [core] fix: Normalize Transaction and Span consistently (#2655)
- [core] fix: Handle DSN qs and show better error messages (#2639)
- [browser] fix: Change XHR instrumentation order to handle
onreadystatechangebreadcrumbs correctly (#2643) - [apm] fix: Re-add TraceContext for all events (#2656)
- [integrations] fix: Change Vue interface to be inline with the original types (#2634)
- [apm] ref: Use startTransaction where appropriate (#2644)
- [node] fix: Requests to old
/storeendpoint need thex-sentry-authheader in node (#2637)
If you are a @sentry/apm and did manual instrumentation using hub.startSpan please be aware of the changes we did
to the API. The recommended entry point for manual instrumentation now is Sentry.startTransaction and creating child
Span by calling startChild on it. We have internal workarounds in place so the old code should still work but will be
removed in the future. If you are only using the Tracing integration there is no need for action.
- [core] feat: Send transactions in envelopes (#2553)
- [core] fix: Send event timestamp (#2575)
- [browser] feat: Allow for configuring TryCatch integration (#2601)
- [browser] fix: Call wrapped
RequestAnimationFramewith correct context (#2570) - [node] fix: Prevent reading the same source file multiple times (#2569)
- [integrations] feat: Vue performance monitoring (#2571)
- [apm] fix: Use proper type name for op (#2584)
- [core] fix: sent_at for envelope headers to use same clock (#2597)
- [apm] fix: Improve bundle size by moving span status to @sentry/apm (#2589)
- [apm] feat: No longer discard transactions instead mark them deadline exceeded (#2588)
- [apm] feat: Introduce
Sentry.startTransactionandTransaction.startChild(#2600) - [apm] feat: Transactions no longer go through
beforeSend(#2600) - [browser] fix: Emit Sentry Request breadcrumbs from inside the client (#2615)
- [apm] fix: No longer debounce IdleTransaction (#2618)
- [apm] feat: Add pageload transaction option + fixes (#2623)
- [minimal/core] feat: Allow for explicit scope through 2nd argument to
captureException/captureMessage(#2627)
- [browser/node] Add missing
BreadcrumbHintandEventHinttypes exports (#2545) - [utils] fix: Prevent
isMatchingPatternfrom failing on invalid input (#2543)
- [node] fix: Path domain onto global extension method to not use require (#2527)
- [hub] fix: Restore dynamicRequire, but for
perf_hooksonly (#2524)
- [hub] fix: Remove dynamicRequire, Fix require call (#2521)
- [browser] fix: Prevent crash for react native instrumenting fetch (#2510)
- [node] fix: Remove the no longer required dynamicRequire hack to fix scope memory leak (#2515)
- [node] fix: Guard against invalid req.user input (#2512)
- [node] ref: Move node version to runtime context (#2507)
- [utils] fix: Make sure that SyncPromise handler is called only once (#2511)
- [apm] fix: Sampling of traces work now only depending on the client option
tracesSampleRate(#2500) - [apm] fix: Remove internal
forceNoChildparameter fromhub.startSpan(#2500) - [apm] fix: Made constructor of
Spaninternal, only usehub.startSpan(#2500) - [apm] ref: Remove status from tags in transaction (#2497)
- [browser] fix: Respect breadcrumbs sentry:false option (#2499)
- [node] ref: Skip body parsing for GET/HEAD requests (#2504)
- [apm] fix: Use Performance API for timings when available, including Web Workers (#2492)
- [apm] fix: Remove Performance references (#2495)
- [apm] fix: Set
opin node http.server transaction (#2496)
- [apm] fix: Check for performance.timing in webworkers (#2491)
- [apm] ref: Remove performance clear entry calls (#2490)
- [apm] feat: Add a simple heartbeat check, if activities don't change in 3 beats, finish the transaction (#2478)
- [apm] feat: Make use of the
performancebrowser API to provide better instrumentation (#2474) - [browser] ref: Move global error handler + unhandled promise rejection to instrument (#2475)
- [apm] ref: Always use monotonic clock for time calculations (#2485)
- [apm] fix: Add trace context to all events (#2486)
- [apm] feat: Add
discardBackgroundSpansto discard background spans by default
- [node] fix: Restore engines back to
>= 6
- [apm] feat: Add
options.autoPopAfterparameter topushActivityto prevent never-ending spans (#2459) - [apm] fix: Use monotonic clock to compute durations (#2441)
- [core] ref: Remove unused
sentry_timestampheader (#2458) - [node] ref: Drop Node v6, add Node v12 to test matrix, move all scripts to Node v12 (#2455)
- [utils] ref: Prevent instantiating unnecessary Date objects in
timestampWithMs(#2442) - [browser] fix: Mark transactions as event.transaction in breadcrumbs correctly
- [browser] ref: Mark transactions as event.transaction in breadcrumbs (#2450)
- [node] fix: Dont overwrite servername in requestHandler (#2449)
- [utils] ref: Move creation of iframe into try/catch in fetch support check (#2447)
- [browser] ref: Rework XHR wrapping logic to make sure it always triggers (#2438)
- [browser] fix: Handle PromiseRejectionEvent-like CustomEvents (#2429)
- [core] ref: Notify user when event failed to deliver because of digestion pipeline issue (#2416)
- [node] fix: Improve incorrect
ParseRequesttyping (#2433) - [apm] fix: Remove auto unknown_error transaction status (#2440)
- [apm] fix: Properly remove undefined keys from apm payload (#2414)
- [apm] fix: Remove undefined keys from trace.context (#2413)
- [apm] ref: Check if Tracing integration is enabled before dropping transaction
- [apm] ref: If
maxTransactionTimeout=0there is no timeout (#2410) - [apm] fix: Make sure that the
maxTransactionTimeoutis always enforced on transaction events (#2410) - [browser] fix: Support for Hermes stacktraces (#2406)
- [core] feat: Provide
normalizeDepthoption and sensible default for scope methods (#2404) - [browser] fix: Export
EventHinttype (#2407)
- [apm] fix: Add new option to
TracingmaxTransactionTimeoutdetermines the max length of a transaction (#2399) - [hub] ref: Always also set transaction name on the top span in the scope
- [core] fix: Use
event_idfrom hint given by top-level hub calls
- [apm] feat: Add build bundle including @sentry/browser + @sentry/apm
- [utils] ref: Extract adding source context incl. tests
- [apm] fix: Always attach
contexts.traceto finished transaction (#2353) - [integrations] fix: Make RewriteFrame integration process all exceptions (#2362)
- [node] ref: Update agent-base to 5.0 to remove http/s patching (#2355)
- [browser] feat: Set headers from options in XHR/fetch transport (#2363)
- [browser] fix: Always trigger default browser onerror handler (#2348)
- [browser] fix: Restore correct
functionToStringbehavior for updatedfillmethod (#2346) - [integrations] ref: Allow for backslashes in unix paths (#2319)
- [integrations] feat: Support Windows-style path in RewriteFrame iteratee (#2319)
- [apm] fix: Sent correct span id with outgoing requests (#2341)
- [utils] fix: Make
fillandwrapwork nicely together to prevent double-triggering instrumentations (#2343) - [node] ref: Require
https-proxy-agentonly when actually needed (#2334)
- [hub] feat: Update
spanimplementation (#2161) - [apm] feat: Add
@sentry/apmpackage - [integrations] feat: Change
Tracingintegration (#2161) - [utils] feat: Introduce
instrumentutil to allow for custom handlers - [utils] Optimize
supportsNativeFetchwith a fast path that avoids DOM I/O (#2326) - [utils] feat: Add
isInstanceOfutil for safety reasons
- [browser] ref: Fix regression with bundle size
- [node] feat: Added
modeoption forOnUnhandledRejectionintegration that changes how we log errors and what we do with the process itself - [browser] ref: Both global handlers now always return
trueto call default implementations (error logging)
- [browser/node] feat: 429 http code handling in node/browser transports (#2300)
- [core] feat: Make sure that Debug integration is always setup as the last one (#2285)
- [browser] fix: Gracefuly handle incorrect input from onerror (#2302)
- [utils] fix: Safer normalizing for input with
domainkey (#2305) - [utils] ref: Remove dom references from utils for old TS and env interop (#2303)
- [core] ref: Use the smallest possible interface for our needs -
PromiseLike(#2273) - [utils] fix: Add TS dom reference to make sure its in place for compilation (#2274)
- [core] ref: Use
Promiseas the interface, butSyncPromiseas the implementation in all the places we needthenableAPI - [browser] fix: Capture only failed
console.assertcalls - [browser] ref: Major
TraceKitandGlobalHandlersrefactor - [browser] ref: Remove all required IE10-11 polyfills
- [browser] ref: Remove
Object.assignmethod usage - [browser] ref: Remove
Number.isNaNmethod usage - [browser] ref: Remove
includesmethod usage - [browser] ref: Improve usage of types in
addEventListenerbreadcrumbs wrapper - [browser] ci: Use Galaxy S9 Plus for Android 9
- [browser] ci: Increase timeouts and retries between Travis and BrowserStack
- [node] fix: Update https-proxy-agent to 3.0.0 for security reasons (#2262)
- [node] feat: Extract prototyped data in
extractUserData(#2247) - [node] ref: Use domain Hub detection only in Node environment
- [integrations] feat: Use
contextsto handle ExtraErrorData (#2208) - [integrations] ref: Remove
process.env.NODE_ENVfrom Vue integration (#2263) - [types] fix: Breadcrumb
dataneeds to be an object - [utils] ref: Make
Eventinstances somewhat serializeable
- [browser] fix: Don't capture our own XHR events that somehow bubbled-up to global handler
- [browser] feat: Use framesToPop for InvaliantViolations in React errors (#2204)
- [browser] fix: Apply crossorigin attribute with setAttribute tag for userReport dialog (#2196)
- [browser] fix: Make sure that falsy values are captured in unhandledrejections (#2207)
- [loader] fix: Loader should also retrigger falsy values as errors (#2207)
- [core] fix: Correctly detect when client is enabled before installing integrations (#2193)
- [browser] ref: Loosen typings in
wrapmethod
- [core] fix: When using enabled:false integrations shouldnt be installed (#2181)
- [browser] feat: Add support for custom schemes to Tracekit
- [browser] ref: Return function call result from
wrapmethod - [browser] ref: Better UnhandledRejection messages (#2185)
- [browser] test: Complete rewrite of Browser Integration Tests (#2176)
- [node] feat: Add cookies as an optional property in the request handler (#2167)
- [node] ref: Unify method name casing in breadcrumbs (#2183)
- [integrations] feat: Add logErrors option to Vue integration (#2182)
- [core] fix: Store processing state for each
flushcall separately (#2143) - [scope] feat: Generate hint if not provided in the Hub calls (#2142)
- [browser] feat: Read
window.SENTRY_RELEASEto set release by default (#2132) - [browser] fix: Don't call
fn.handleEvent.bindiffn.handleEventdoes not exist (#2138) - [browser] fix: Correctly handle events that utilize
handleEventobject (#2149) - [node] feat: Provide optional
shouldHandleErroroption for nodeerrorHandler(#2146) - [node] fix: Remove unsafe
anyfromNodeOptionstype (#2111) - [node] fix: Merge
transportOptionscorrectly (#2151) - [utils] fix: Add polyfill for
Object.setPrototypeOf(#2127) - [integrations] feat:
SessionDurationintegration (#2150)
- [core] feat: Expose
Spanclass - [node] fix: Don't overwrite transaction on event in express handler
- [core] fix: Allow Integration constructor to have arguments
- [browser] fix: Vue breadcrumb recording missing in payload
- [node] fix: Force agent-base to be at version 4.3.0 to fix various issues. Fix #1762, fix #2085
- [integrations] fix: Tracing integration fetch headers bug where trace header is not attached if there are no options.
- [utils] fix: Better native
fetchdetection via iframes. Fix #1601
- [integrations] fix: Tracing integration fetch headers bug.
- [global] feat: Exposed new simplified scope API.
Sentry.setTag,Sentry.setTags,Sentry.setExtra,Sentry.setExtras,Sentry.setUser,Sentry.setContext
- [integrations] fix: Tracing integration CDN build.
- [browser] fix: Remove
use_strictfrom@sentry/browser - [utils] fix: Guard string check in
truncate - [browser] fix: TraceKit fix for eval frames
- [browser] feat: Expose
wrapfunction in@sentry/browser - [browser] feat: Added
onLoadcallback toshowReportDialog - [browser] fix: Use 'native code' as a filename for some frames
- [opentracing] ref: Removed opentracing package
- [integrations] feat: Add tracing integration
- [hub] feat: Add tracing related function to scope and hub (
Scope.startSpan,Scope.setSpan,Hub.traceHeaders) - [hub] feat: Add new function to Scope
setContext - [hub] feat: Add new function to Scope
setTransaction - [integrations] fix: Update ember integration to include original error in
hintinbeforeSend - [integrations] fix: Ember/Vue fix integration
- [browser] fix: GlobalHandler integration sometimes receives Event objects as message: Fix #1949
- [browser] fix: Fixed a bug if Sentry was initialized multiple times: Fix #2043
- [browser] ref: Mangle more stuff, reduce bundle size
- [browser] fix: Support for ram bundle frames
- [node] fix: Expose lastEventId method
- [browser] fix: Breadcrumb Integration: Fix #2034
- [hub] feat: Add
setContexton the scope - [browser] fix: Breacrumb integration ui clicks
- [node] feat: Add
flushTimeouttorequestHandlerto auto flush requests
- [core] fix: Don't disable client before flushing
- [utils] fix: Remove node types
- [hub] fix: Make sure all breadcrumbs have a timestamp
- [hub] fix: Merge event with scope breadcrumbs instead of only using event breadcrumbs
- [utils] ref: Move
htmlTreeAsStringto@sentry/browser - [utils] ref: Remove
WindowtypehintgetGlobalObject - [core] fix: Make sure that flush/close works as advertised
- [integrations] feat: Added
CaptureConsoleintegration
- [utils]: Change how we use
utilsand exposeesmbuild - [utils]: Remove
storeandfsclasses -> moved to @sentry/electron where this is used - [hub]: Allow to pass
nulltosetUserto reset it
- [esm]:
moduleinpackage.jsonnow provides aes5build instead ofes2015
- [integrations] fix: Not requiring angular types
- [hub] fix: Don't reset registry when there is no hub on the carrier #1969
- [integrations] fix: Export dedupe integration
- [browser] fix: Remove
browserfield frompackage.json
- [browser] fix: Add missing types
This major bump brings a lot of internal improvements. Also, we extracted some integrations out of the SDKs and put them
in their own package called @sentry/integrations. For a detailed guide how to upgrade from 4.x to 5.x refer to our
migration guide.
Migration from v4
If you were using the SDKs high level API, the way we describe it in the docs, you should be fine without any code changes. This is a breaking release since we removed some methods from the public API and removed some classes from the default export.
- breaking [node] fix: Events created from exception shouldn't have top-level message attribute
- [utils] ref: Update wrap method to hide internal sentry flags
- [utils] fix: Make internal Sentry flags non-enumerable in fill utils
- [utils] ref: Move
SentryError+PromiseBufferto utils - breaking [core] ref: Use
SyncPromiseinternally, this reduces memory pressure by a lot. - ref: Move internal
ExtendedErrorto a types package - breaking [browser] ref: Removed
BrowserBackendfrom default export. - breaking [node] ref: Removed
BrowserBackendfrom default export. - breaking [core] feat: Disable client once flushed using
closemethod - breaking [core] ref: Pass
EventtosendEventinstead of already stringified data - [utils] feat: Introduce
isSyntheticEventutil - breaking [utils] ref: remove
isArrayutil in favor ofArray.isArray - breaking [utils] ref: Remove
isNaNutil in favor ofNumber.isNaN - breaking [utils] ref: Remove
isFunctionutil in favor oftypeof === 'function' - breaking [utils] ref: Remove
isUndefinedutil in favor of=== void 0 - breaking [utils] ref: Remove
assignutil in favor ofObject.assign - breaking [utils] ref: Remove
includesutil in favor of nativeincludes - breaking [utils] ref: Rename
serializeKeysToEventMessagetokeysToEventMessage - breaking [utils] ref: Rename
limitObjectDepthToSizetonormalizeToSizeand rewrite its internals - breaking [utils] ref: Rename
safeNormalizetonormalizeand rewrite its internals - breaking [utils] ref: Remove
serialize,deserialize,cloneandserializeObjectfunctions - breaking [utils] ref: Rewrite normalization functions by removing most of them and leaving just
normalizeandnormalizeToSize - breaking [core] ref: Extract all pluggable integrations into a separate
@sentry/integrationspackage - breaking [core] ref: Move
extraErrorDataintegration to@sentry/integrationspackage - [core] feat: Add
maxValueLengthoption to adjust max string length for values, default is 250. - [hub] feat: Introduce
setExtras,setTags,clearBreadcrumbs. - breaking [all] feat: Move
MechanismtoException - [browser/node] feat: Add
synthetictoMechanismin exception. - [browser/node] fix: Use
addExceptionTypeValuein helpers - [browser] ref: Remove unused TraceKit code
- breaking [all] build: Expose
moduleinpackage.jsonas entry point for esm builds. - breaking [all] build: Use
es6target instead of esnext for ESM builds - [all] feat: Prefix all private methods with
_ - [all] build: Use terser instead of uglify
- [opentracing] feat: Introduce
@sentry/opentracingproviding functions to attach opentracing data to Sentry Events - breaking [core] ref:
DedupeIntegration is now optional, it is no longer enabled by default. - breaking [core] ref: Removed default client fingerprinting for messages
- [node] ref: Remove stack-trace dependencies
- breaking [core] ref: Transport function
captureEventwas renamed tosendEvent - [node] fix: Check if buffer isReady before sending/creating Promise for request.
- [browser] fix: Remove beacon transport.
- [browser] fix: Don't mangle names starting with two
__ - [utils] fix: Ensure only one logger instance
- [node] feat: Add esm build
- [integrations] feat: Fix build and prepare upload to cdn
- [integrations] fix: Bug in vue integration with
attachProps - breaking [core] ref: Remove SDK information integration
- breaking [core] ref: Remove
installfunction on integration interface - [node] feat: Add esm build
- [integrations] feat: Fix build and prepare upload to cdn
- [integrations] fix: Bug in vue integration with
attachProps
- [browser] fix: Don't mangle names starting with two
__ - [utils] fix: Ensure only one logger instance
- [browser] fix: Remove beacon transport.
- [node] fix: Check if buffer isReady before sending/creating Promise for request.
- Fix: Tag npm release with
nextto not make it latest
- Fix: NPM release
Migration from v4
This major bump brings a lot of internal improvements. This is a breaking release since we removed some methods from the public API and removed some classes from the default export.
- breaking [node] fix: Events created from exception shouldn't have top-level message attribute
- [utils] ref: Update wrap method to hide internal sentry flags
- [utils] fix: Make internal Sentry flags non-enumerable in fill utils
- [utils] ref: Move
SentryError+PromiseBufferto utils - breaking [core] ref: Use
SyncPromiseinternally, this reduces memory pressure by a lot. - breaking [browser] ref: Removed
BrowserBackendfrom default export. - breaking [node] ref: Removed
BrowserBackendfrom default export. - breaking [core] feat: Disable client once flushed using
closemethod - ref: Move internal
ExtendedErrorto a types package - breaking [core] ref: Pass
EventtosendEventinstead of already stringified data - [utils] feat: Introduce
isSyntheticEventutil - breaking [utils] ref: remove
isArrayutil in favor ofArray.isArray - breaking [utils] ref: Remove
isNaNutil in favor ofNumber.isNaN - breaking [utils] ref: Remove
isFunctionutil in favor oftypeof === 'function' - breaking [utils] ref: Remove
isUndefinedutil in favor of=== void 0 - breaking [utils] ref: Remove
assignutil in favor ofObject.assign - breaking [utils] ref: Remove
includesutil in favor of nativeincludes - breaking [utils] ref: Rename
serializeKeysToEventMessagetokeysToEventMessage - breaking [utils] ref: Rename
limitObjectDepthToSizetonormalizeToSizeand rewrite its internals - breaking [utils] ref: Rename
safeNormalizetonormalizeand rewrite its internals - breaking [utils] ref: Remove
serialize,deserialize,cloneandserializeObjectfunctions - breaking [utils] ref: Rewrite normalization functions by removing most of them and leaving just
normalizeandnormalizeToSize - breaking [core] ref: Extract all pluggable integrations into a separate
@sentry/integrationspackage - breaking [core] ref: Move
extraErrorDataintegration to@sentry/integrationspackage - [core] feat: Add
maxValueLengthoption to adjust max string length for values, default is 250. - [hub] feat: Introduce
setExtras,setTags,clearBreadcrumbs. - breaking [all] feat: Move
MechanismtoException - [browser/node] feat: Add
synthetictoMechanismin exception. - [browser/node] fix: Use
addExceptionTypeValuein helpers - [browser] ref: Remove unused TraceKit code
- breaking [all] build: Expose
moduleinpackage.jsonas entry point for esm builds. - breaking [all] build: Use
es6target instead of esnext for ESM builds - [all] feat: Prefix all private methods with
_ - [all] build: Use terser instead of uglify
- [opentracing] feat: Introduce
@sentry/opentracingproviding functions to attach opentracing data to Sentry Events - breaking [core] ref:
DedupeIntegration is now optional, it is no longer enabled by default. - breaking [core] ref: Removed default client fingerprinting for messages
- [node] ref: Remove stack-trace dependencies
- breaking [core] ref: Transport function
captureEventwas renamed tosendEvent
- [utils] fix: Prevent decycling from referencing original objects
- [utils] fix: Preserve correct name when wrapping
- [raven-node] test: Update raven-node tests for new node version
- [utils] fix: Normalize value before recursively walking down the tree
- [browser] ref: Check whether client is enabled for reportDialog and log instead of throw
- [utils] fix: Preserve function prototype when filling
- [utils] fix: use a static object as fallback of the global object
- [node] feat: Read from
SENTRY_RELEASEandSENTRY_ENVIRONMENTif present
- [utils] fix: Patch
tslib_1__defaultregression and add additional tests around it
- [loader] fix: Detect if
inithas been called in an onload callback - [core] fix: Use correct frame for
inboundFiltermethods - [core] ref: Multiple
initcalls have been changed to "latest wins" instead of "ignore all after first" - [core] feat: Introduce
flushmethod which currently is an alias forclose - [node] feat: If
options.dsnis undefined when callinginitwe try to load it fromprocess.env.SENTRY_DSN - [node] feat: Expose
flushandcloseonSentry.* - [node] feat: Add
sentryto express error handler response which contains theevent_idof the error
- [browser] fix:
DOMErrorandDOMExceptionshould be error level events - [browser] ref: Log error if Ember/Vue instances are not provided
- [utils] fix: Dont mutate original input in
decycleutil function - [utils] fix: Skip non-enumerable properties in
decycleutil function - [utils] ref: Update
wrapmethod to hide internal Sentry flags - [utils] fix: Make internal Sentry flags non-enumerable in
fillutil
- [browser]: fix: Fix UnhandledPromise: [object Object]
- [core]: fix: Error in extraErrorData integration where event would not be send in case of non assignable object property.
- [hub]: feat: Support non async event processors
- [utils] fix: Decycling for objects to no produce an endless loop
- [browser] fix: event for unhandledRejection
- [loader] fix: Handle unhandledRejection the same way as it would be thrown
- [utils] fix: Don't npm ignore esm for utils
- [core] feat: Deprecate
captureEvent, prefersendEventfor transports.sendEventnow takes a string (body) instead ofEventobject. - [core] feat: Use correct buffer for requests in transports
- [core] feat: (beta) provide esm build
- [core] ref: Change way how transports are initialized
- [core] ref: Rename
RequestBuffertoPromiseBuffer, also introduce limit - [core] ref: Make sure that captureMessage input is a primitive
- [core] fix: Check if value is error object in extraErrorData integration
- [browser] fix: Prevent empty exception values
- [browser] fix: Permission denied to access property name
- [node] feat: Add file cache for providing pre/post context in frames
- [node] feat: New option
frameContextLines, if set to0we do not provide source code pre/post context, default is7lines pre/post - [utils] fix: Use custom serializer inside
serializemethod to prevent circular references
- [node] Port memory-leak tests from raven-node
- [core] feat: ExtraErrorData integration
- [hub] ref: use safeNormalize on any data we store on Scope
- [utils] feat: Introduce safeNormalize util method to unify stored data
- [loader] Support multiple onLoad callbacks
- [core] Bump dependencies to remove flatmap-stream
- [node] HTTP(S) Proxy support
- [node] Expose lastEventId method
- [browser] Correctly detect and remove wrapped function frames
- [utils] fix: Broken tslib import - Fixes #1757
- [build] ref: Dont emit TypeScript helpers in every file separately
- [node] fix: Move stacktrace types from devDeps to deps as its exposed
- [browser] misc: Added browser examples page
- [browser] fix: Typings for npm package
- [browser] ref: Breadcrumbs will now be logged only to a max object depth of 2
- [core] feat: Filter internal Sentry errors from transports/sdk
- [core] ref: Better fingerprint handling
- [node] ref: Expose Parsers functions
- [browser]: Move
ReportingObserverintegration to "pluggable" making it an opt-in integration - [utils]: Use node internal
path/fsforstore.ts
- [browser]: Use
withScopeinEmberintegration instead of manualpushPop/popScopecalls - [browser] fix: rethrow errors in testing mode with
Emberintegration (#1696) - [browser/node]: Fix
LinkedErrorsintegration to send exceptions in correct order and take main exception into thelimitcount - [browser/node] ref: Re-export
addGlobalEventProcessor - [core]: Fix
InboundFiltersintegration so that it reads and merge configuration from theinitcall as well
- [utils]:
bundlerSafeRequirerenamed todynamicRequirenow takes two arguments, first is should bemodule, secondrequest/moduleName.
- [core]: Several internal fixes regarding integration, exports and domain.
- [core]: "De-deprecate" name of
Integrationinterface. - [node]: Export
parseRequestonHandlers.
- [core] Invert logger logic the explicitly enable it.
- [hub] Require
domainingetCurrentHubin try/catch - Fixed #1670 - [hub] Removed exposed getter on the Scope.
- [browser] fix: Make
addBreadcrumbsync internally,beforeBreadcrumbis now only sync - [browser] fix: Remove internal
consoleguard inbeforeBreadcrumb - [core] feat: Integrations now live on the
Client. This means that when binding a new Client to theHubthe client itself can decide which integration should run. - [node] ref: Simplify Node global handlers code
- [browser] fix: Use our own path utils instead of node built-ins
- [node] fix: Add colon to node base protocol to follow http module
- [utils] feat: Create internal path module
- [browser] feat: Better mechanism detection in TraceKit
- [browser] fix: Change loader to use getAttribute instead of dataset
- [browser] fix: Remove trailing commas from loader for IE10/11
- [browser] ref: Include md5 lib and transcript it to TypeScript
- [browser] ref: Remove all trailing commas from integration tests cuz IE10/11
- [browser] ref: Remove default transaction from browser
- [browser] ref: Remove redundant debug.ts file from browser integrations
- [browser] test: Fix all integration tests in IE10/11 and Android browsers
- [browser] test: Run integration tests on SauceLabs
- [browser] test: Stop running raven-js saucelabs tests in favour of @sentry/browser
- [browser] test: Store breadcrumbs in the global variable in integration tests
- [browser] test: Update polyfills for integration tests
- [build] ref: Use Mocha v4 instead of v5, as it's not supporting IE10
- [core] feat: Introduce stringify and debugger options in Debug integration
- [core] feat: RewriteFrames pluggable integration
- [core] feat: getRequestheaders should handle legacy DSNs
- [core] fix: correct sampleRate behaviour
- [core] misc: Warn user when beforeSend doesnt return an event or null
- [core] ref: Check for node-env first and return more accurate global object
- [core] ref: Remove Repo interface and repos attribute from Event
- [core] ref: Rewrite RequestBuffer using Array instead of Set for IE10/11
- [hub] fix: Scope level overwrites level on the event
- [hub] fix: Correctly store and retrieve Hub from domain when one is active
- [hub] fix: Copy over user data when cloning scope
- [node] feat: Allow requestHandler to be configured
- [node] feat: Allow pick any user attributes from requestHandler
- [node] feat: Make node transactions a pluggable integration with tests
- [node] feat: Transactions handling for RequestHandler in Express/Hapi
- [node] fix: Dont wrap native modules more than once to prevent leaks
- [node] fix: Add the same protocol as dsn to base transport option
- [node] fix: Use getCurrentHub to retrieve correct hub in requestHandler
- [utils] ref: implemented includes, assign and isNaN polyfills
- [browser] fix: Fallback to Error object when rejection
reasonis not available - [browser] feat: Support Bluebird's
detail.reasonfor promise rejections - [types] fix: Use correct type for event's repos attribute
- [browser] ref: Expose
ReportDialogOptions - [browser] ref: Use better default message for ReportingObserver
- [browser] feat: Capture wrapped function arguments as extra
- [browser] ref: Unify integrations options and set proper defaults
- [browser] fix: Array.from is not available in old mobile browsers
- [browser] fix: Check for anonymous function before getting its name for mechanism
- [browser] test: Add loader + integration tests
- [core] ref: Move SDKInformation integration into core prepareEvent method
- [core] ref: Move debug initialization as the first step
- [node] fix: Make handlers types compatibile with Express
- [utils] fix: Dont break when non-string is passed to truncate
- [hub] feat: Add
runfunction that makesthishub the current global one
- [browser] feat: Add
forceLoadandonLoadfunction to be compatible with loader API
- [browser] feat: Better dedupe integration event description
- [core] ref: Move Dedupe, FunctionString, InboundFilters and SdkInformation integrations to the core package
- [core] feat: Provide correct platform and make a place to override event internals
- [browser] feat: UserAgent integration
- [browser] fix: Dont filter captured messages when they have no stacktraces
- [browser] feat: Show dropped event url in
blacklistUrl/whitelistUrldebug mode - [browser] feat: Use better event description instead of
event_idfor user-facing logs - [core] ref: Create common integrations that are exposed on
@sentry/coreand reexposed throughbrowser/node - [core] feat: Debug integration
- [browser] ref: Port TraceKit to TypeScript and disable TraceKit's remote fetching for now
This is the release of our new SDKs, @sentry/browser, @sentry/node. While there are too many changes to list for
this release, we will keep a consistent changelog for upcoming new releases. raven-js (our legacy JavaScript/Browser
SDK) and raven (our legacy Node.js SDK) will still reside in this repo, but they will receive their own changelog.
We generally guide people to use our new SDKs from this point onward. The migration should be straightforward if you were only using the basic features of our previous SDKs.
raven-js and raven will both still receive bugfixes but all the new features implemented will only work in the new
SDKs. The new SDKs are completely written in TypeScript, which means all functions, classes and properties are typed.
Here are some examples of how the new SDKs work. Please note that the API for all JavaScript SDKs is the same.
Old:
Raven.config('___PUBLIC_DSN___', {
release: '1.3.0',
}).install();New:
Sentry.init({
dsn: '___PUBLIC_DSN___',
release: '1.3.0',
});Old:
Raven.setTagsContext({ key: 'value' });New:
Sentry.configureScope((scope) => {
scope.setTag('key', 'value');
});Old:
try {
throwingFunction();
} catch (e) {
Raven.captureException(e, { extra: { debug: false } });
}New:
try {
throwingFunction();
} catch (e) {
Sentry.withScope((scope) => {
scope.setExtra('debug', false);
Sentry.captureException(e);
});
}Old:
Raven.captureMessage('test', 'info', { extra: { debug: false } });New:
Sentry.withScope((scope) => {
scope.setExtra('debug', false);
Sentry.captureMessage('test', 'info');
});Old:
Raven.captureBreadcrumb({
message: 'Item added to shopping cart',
category: 'action',
data: {
isbn: '978-1617290541',
cartSize: '3',
},
});New:
Sentry.addBreadcrumb({
message: 'Item added to shopping cart',
category: 'action',
data: {
isbn: '978-1617290541',
cartSize: '3',
},
});