Skip to content

Commit 19db478

Browse files
author
cod1k
committed
Merge branch 'develop' of github.com:getsentry/sentry-javascript into fix/17514
2 parents 6b98743 + b29c880 commit 19db478

File tree

368 files changed

+7763
-2770
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

368 files changed

+7763
-2770
lines changed

CHANGELOG.md

Lines changed: 188 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,153 @@
22

33
## Unreleased
44

5+
- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott
6+
7+
## 10.15.0
8+
9+
### Important Changes
10+
11+
- **feat(cloudflare): Add honoIntegration with error-filtering function ([#17743](https://github.com/getsentry/sentry-javascript/pull/17743))**
12+
13+
This release adds a `honoIntegration` to `@sentry/cloudflare`, which exposes a `shouldHandleError` function that lets you define which errors in `onError` should be captured.
14+
By default, Sentry captures exceptions with `error.status >= 500 || error.status <= 299`.
15+
16+
The integration is added by default, and it's possible to modify this behavior like this:
17+
18+
```js
19+
integrations: [
20+
honoIntegration({
21+
shouldHandleError: (err) => true; // always capture exceptions in onError
22+
})
23+
]
24+
```
25+
26+
- **feat(node): Add instrumentation for hono handler ([#17428](https://github.com/getsentry/sentry-javascript/pull/17428))**
27+
28+
This PR enhances the Hono integration by adding comprehensive handler instrumentation, error handling capabilities.
29+
30+
- **feat(aws): Enable Lambda extension by default when using the Lamba layer ([#17684](https://github.com/getsentry/sentry-javascript/pull/17684))**
31+
32+
- **feat(browser): Add `setActiveSpanInBrowser` to set an active span in the browser ([#17714](https://github.com/getsentry/sentry-javascript/pull/17714))**
33+
34+
This PR adds a feature to the browser SDKs only: Making an inactive span active. We do this to enable use cases where having a span only being active in the callback is not practical.
35+
36+
### Other Changes
37+
38+
- fix(browser): Improve handling of `0` and `undefined` resource timing values ([#17751](https://github.com/getsentry/sentry-javascript/pull/17751))
39+
- ref(nextjs): Display build compatibility warning for webpack ([#17746](https://github.com/getsentry/sentry-javascript/pull/17746))
40+
41+
<details>
42+
<summary> <strong>Internal Changes</strong> </summary>
43+
44+
- docs: Reword changelog for google gen ai instrumentation ([#17753](https://github.com/getsentry/sentry-javascript/pull/17753))
45+
- build: Add `@typescript-eslint/no-unnecessary-type-assertion` rule ([#17728](https://github.com/getsentry/sentry-javascript/pull/17728))
46+
- build: Update TS target to `es2020` everywhere ([#17709](https://github.com/getsentry/sentry-javascript/pull/17709))
47+
- chore: Add external contributor to CHANGELOG.md ([#17745](https://github.com/getsentry/sentry-javascript/pull/17745))
48+
49+
</details>
50+
51+
Work in this release was contributed by @Karibash. Thank you for your contribution!
52+
53+
## 10.14.0
54+
55+
### Important Changes
56+
57+
- **feat(cloudflare,vercel-edge): Add support for Google Gen AI instrumentation ([#17723](https://github.com/getsentry/sentry-javascript/pull/17723))**
58+
59+
The SDK now supports manually instrumenting Google's Generative AI operations in Cloudflare Workers and Vercel Edge Runtime environments, providing insights into your AI operations. You can use `const wrappedClient = Sentry.instrumentGoogleGenAIClient(genAiClient)` to get an instrumented client.
60+
61+
### Other Changes
62+
63+
- fix(nextjs): Display updated turbopack warnings ([#17737](https://github.com/getsentry/sentry-javascript/pull/17737))
64+
- ref(core): Wrap isolationscope in `WeakRef` when storing it on spans ([#17712](https://github.com/getsentry/sentry-javascript/pull/17712))
65+
66+
<details>
67+
<summary> <strong>Internal Changes</strong> </summary>
68+
69+
- test(node): Avoid using specific port for node-integration-tests ([#17729](https://github.com/getsentry/sentry-javascript/pull/17729))
70+
- test(nuxt): Update Nuxt version and add Nitro $fetch test ([#17713](https://github.com/getsentry/sentry-javascript/pull/17713))
71+
72+
</details>
73+
74+
## 10.13.0
75+
76+
### Important Changes
77+
78+
- **feat(browser): Add option to explicitly end pageload span via `reportPageLoaded()` ([#17697](https://github.com/getsentry/sentry-javascript/pull/17697))**
79+
80+
With this release you can take manual control of ending the pageload span. Usually this span is ended automatically by the SDK, based on a period of inactivity after the initial page was loaded in the browser. If you want full control over the pageload duration, you can tell Sentry, when your page was fully loaded:
81+
82+
```js
83+
Sentry.init({
84+
//...
85+
integrations: [
86+
// 1. Enable manual pageload reporting
87+
Sentry.browserTracingIntegration({ enableReportPageLoaded: true }),
88+
],
89+
});
90+
91+
// 2. Whenever you decide the page is loaded, call:
92+
Sentry.reportPageLoaded();
93+
```
94+
95+
Note that if `Sentry.reportPageLoaded()` is not called within 30 seconds of the initial pageload (or whatever value the `finalTimeout` option is set to), the pageload span will be ended automatically.
96+
97+
- **feat(core,node): Add instrumentation for `GoogleGenerativeAI` ([#17625](https://github.com/getsentry/sentry-javascript/pull/17625))**
98+
99+
The SDK now automatically instruments the `@google/generative-ai` package to provide insights into your AI operations.
100+
101+
- **feat(nextjs): Promote `useRunAfterProductionCompileHook` to non-experimental build option ([#17721](https://github.com/getsentry/sentry-javascript/pull/17721))**
102+
103+
The `useRunAfterProductionCompileHook` option is no longer experimental and is now a stable build option for Next.js projects.
104+
105+
- **feat(nextjs): Use `afterProductionCompile` hook for webpack builds ([#17655](https://github.com/getsentry/sentry-javascript/pull/17655))**
106+
107+
Next.js projects using webpack can opt-in to use the `useRunAfterProductionCompileHook` hook for source map uploads.
108+
109+
- **feat(nextjs): Flip default value for `useRunAfterProductionCompileHook` for Turbopack builds ([#17722](https://github.com/getsentry/sentry-javascript/pull/17722))**
110+
111+
The `useRunAfterProductionCompileHook` option is now enabled by default for Turbopack builds, enabling automated source map uploads.
112+
113+
- **feat(node): Do not drop 300 and 304 status codes by default ([#17686](https://github.com/getsentry/sentry-javascript/pull/17686))**
114+
115+
HTTP transactions with 300 and 304 status codes are now captured by default, providing better visibility into redirect and caching behavior.
116+
117+
### Other Changes
118+
119+
- feat(core): Add logger to core and allow scope to be passed log methods ([#17698](https://github.com/getsentry/sentry-javascript/pull/17698))
120+
- feat(core): Allow to pass `onSuccess` to `handleCallbackErrors` ([#17679](https://github.com/getsentry/sentry-javascript/pull/17679))
121+
- feat(core): Create template attributes in `consoleLoggingIntegration` ([#17703](https://github.com/getsentry/sentry-javascript/pull/17703))
122+
- feat(deps): bump @sentry/cli from 2.52.0 to 2.53.0 ([#17652](https://github.com/getsentry/sentry-javascript/pull/17652))
123+
- feat(node): Add extra platforms to `os` context ([#17720](https://github.com/getsentry/sentry-javascript/pull/17720))
124+
- fix(browser): Ensure idle span duration is adjusted when child spans are ignored ([#17700](https://github.com/getsentry/sentry-javascript/pull/17700))
125+
- fix(core): Ensure builtin stack frames don't affect `thirdPartyErrorFilterIntegration` ([#17693](https://github.com/getsentry/sentry-javascript/pull/17693))
126+
- fix(core): Fix client hook edge cases around multiple callbacks ([#17706](https://github.com/getsentry/sentry-javascript/pull/17706))
127+
- fix(nextjs): Enable fetch span when OTel setup is skipped ([#17699](https://github.com/getsentry/sentry-javascript/pull/17699))
128+
- fix(node): Fix `this` context for vercel AI instrumentation ([#17681](https://github.com/getsentry/sentry-javascript/pull/17681))
129+
130+
<details>
131+
<summary> <strong>Internal Changes</strong> </summary>
132+
133+
- chore: Add external contributor to CHANGELOG.md ([#17725](https://github.com/getsentry/sentry-javascript/pull/17725))
134+
- chore: Add link to build and test icon in readme ([#17719](https://github.com/getsentry/sentry-javascript/pull/17719))
135+
- chore(nuxt): Bump Vite and Rollup plugins ([#17671](https://github.com/getsentry/sentry-javascript/pull/17671))
136+
- chore(repo): Add changelog entry for `reportPageLoaded` ([#17724](https://github.com/getsentry/sentry-javascript/pull/17724))
137+
- ci: Fix lookup of changed E2E test apps ([#17707](https://github.com/getsentry/sentry-javascript/pull/17707))
138+
- ci(test-matrix): Add logs for `getTestMatrix` ([#17673](https://github.com/getsentry/sentry-javascript/pull/17673))
139+
- ref: Avoid some usage of `SyncPromise` where not needed ([#17641](https://github.com/getsentry/sentry-javascript/pull/17641))
140+
- ref(core): Add debug log when dropping a span via `ignoreSpans` ([#17692](https://github.com/getsentry/sentry-javascript/pull/17692))
141+
- ref(core): Avoid looking up anthropic-ai integration options ([#17694](https://github.com/getsentry/sentry-javascript/pull/17694))
142+
- ref(core): Streamline `module_metadata` assignment and cleanup functions ([#17696](https://github.com/getsentry/sentry-javascript/pull/17696))
143+
- ref(remix): Avoid unnecessary error wrapping `HandleDocumentRequestFunction` ([#17680](https://github.com/getsentry/sentry-javascript/pull/17680))
144+
- Revert "[Gitflow] Merge master into develop"
145+
146+
</details>
147+
148+
Work in this release was contributed by @Olexandr88. Thank you for your contribution!
149+
150+
## 10.12.0
151+
5152
### Important Changes
6153

7154
- **ref: Add and Adjust error event `mechanism` values**
@@ -49,10 +196,6 @@
49196

50197
</details>
51198

52-
- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott
53-
54-
### Important Changes
55-
56199
- **feat(node) Ensure `prismaIntegration` works with Prisma 5 ([#17595](https://github.com/getsentry/sentry-javascript/pull/17595))**
57200

58201
We used to require to pass in the v5 version of `@prisma/instrumentation` into `prismaIntegration({ prismaInstrumentation: new PrismaInstrumentation() })`, if you wanted to get full instrumentation for Prisma v5. However, it turns out this does not work on v10 of the SDK anymore, because `@prisma/instrumentation@5` requires OTEL v1.
@@ -91,6 +234,47 @@ With this release, we dropped the requirement to configure anything to get v5 su
91234
- @opentelemetry/instrumentation-undici bumped to ^0.15.0
92235
- @prisma/instrumentation bumped to 6.15.0
93236

237+
### Other Changes
238+
239+
- feat(browser): Add timing and status atttributes to resource spans ([#17562](https://github.com/getsentry/sentry-javascript/pull/17562))
240+
- feat(cloudflare,vercel-edge): Add support for Anthropic AI instrumentation ([#17571](https://github.com/getsentry/sentry-javascript/pull/17571))
241+
- feat(core): Add Consola integration ([#17435](https://github.com/getsentry/sentry-javascript/pull/17435))
242+
- feat(deps): Update OpenTelemetry dependencies ([#17569](https://github.com/getsentry/sentry-javascript/pull/17569))
243+
- feat(core): Export `TracesSamplerSamplingContext` type ([#17523](https://github.com/getsentry/sentry-javascript/pull/17523))
244+
- feat(deno): Add OpenTelemetry support and vercelAI integration ([#17445](https://github.com/getsentry/sentry-javascript/pull/17445))
245+
- feat(node-core): Remove experimental note from winston api ([#17626](https://github.com/getsentry/sentry-javascript/pull/17626))
246+
- feat(node): Ensure `prismaIntegration` works with Prisma v5 ([#17595](https://github.com/getsentry/sentry-javascript/pull/17595))
247+
- feat(node): Tidy existing ESM loader hook ([#17566](https://github.com/getsentry/sentry-javascript/pull/17566))
248+
- feat(sveltekit): Align build time options with shared type ([#17413](https://github.com/getsentry/sentry-javascript/pull/17413))
249+
- fix(core): Fix error handling when sending envelopes ([#17662](https://github.com/getsentry/sentry-javascript/pull/17662))
250+
- fix(browser): Always start navigation as root span ([#17648](https://github.com/getsentry/sentry-javascript/pull/17648))
251+
- fix(browser): Ensure propagated `parentSpanId` stays consistent during trace in TwP mode ([#17526](https://github.com/getsentry/sentry-javascript/pull/17526))
252+
- fix(cloudflare): Initialize once per workflow run and preserve scope for `step.do` ([#17582](https://github.com/getsentry/sentry-javascript/pull/17582))
253+
- fix(nextjs): Add edge polyfills for nextjs-13 in dev mode ([#17488](https://github.com/getsentry/sentry-javascript/pull/17488))
254+
- fix(nitro): Support nested `_platform` properties in Nitro 2.11.7+ ([#17596](https://github.com/getsentry/sentry-javascript/pull/17596))
255+
- fix(node): Preserve synchronous return behavior for streamText and other methods for AI ([#17580](https://github.com/getsentry/sentry-javascript/pull/17580))
256+
- ref(node): Inline types imported from `shimmer` ([#17597](https://github.com/getsentry/sentry-javascript/pull/17597)) - ref(nuxt): Add and adjust `mechanism.type` in error events ([#17599](https://github.com/getsentry/sentry-javascript/pull/17599))
257+
- ref(browser): Improve `fetchTransport` error handling ([#17661](https://github.com/getsentry/sentry-javascript/pull/17661))
258+
259+
<details>
260+
<summary> <strong>Internal Changes</strong> </summary>
261+
262+
- chore: Add changelog note about mechanism changes ([#17632](https://github.com/getsentry/sentry-javascript/pull/17632))
263+
- chore(aws): Update README.md ([#17601](https://github.com/getsentry/sentry-javascript/pull/17601))
264+
- chore(deps): bump hono from 4.7.10 to 4.9.7 in /dev-packages/e2e-tests/test-applications/cloudflare-hono ([#17630](https://github.com/getsentry/sentry-javascript/pull/17630))
265+
- chore(deps): bump next from 14.2.25 to 14.2.32 in /dev-packages/e2e-tests/test-applications/nextjs-app-dir ([#17627](https://github.com/getsentry/sentry-javascript/pull/17627))
266+
- chore(deps): bump next from 14.2.25 to 14.2.32 in /dev-packages/e2e-tests/test-applications/nextjs-pages-dir ([#17620](https://github.com/getsentry/sentry-javascript/pull/17620))
267+
- chore(deps): bump next from 14.2.29 to 14.2.32 in /dev-packages/e2e-tests/test-applications/nextjs-orpc ([#17494](https://github.com/getsentry/sentry-javascript/pull/17494))
268+
- chore(deps): bump next from 14.2.30 to 14.2.32 in /dev-packages/e2e-tests/test-applications/nextjs-14 ([#17628](https://github.com/getsentry/sentry-javascript/pull/17628))
269+
- chore(repo): Rename `.claude/settings.local.json` to `.claude/settings.json` ([#17591](https://github.com/getsentry/sentry-javascript/pull/17591))
270+
- docs(issue-template): Add note about prioritization ([#17590](https://github.com/getsentry/sentry-javascript/pull/17590))
271+
- ref(core): Streamline event processor handling ([#17634](https://github.com/getsentry/sentry-javascript/pull/17634))
272+
- test(angular): Bump TS version to 5.9.0 in Angular 20 e2e test ([#17605](https://github.com/getsentry/sentry-javascript/pull/17605))
273+
- test(nextjs): Remove Next 13 and pin Next 14 canary and latest tests ([#17577](https://github.com/getsentry/sentry-javascript/pull/17577))
274+
- test(react-router): Unflake `flushIfServerless` test ([#17610](https://github.com/getsentry/sentry-javascript/pull/17610))
275+
276+
</details>
277+
94278
## 10.11.0
95279

96280
### Important Changes

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ _Bad software is everywhere, and we're tired of it. Sentry is on a mission to he
88
faster, so we can get back to enjoying technology. If you want to join us
99
[<kbd>**Check out our open positions**</kbd>](https://sentry.io/careers/)_
1010

11-
![Build & Test](https://github.com/getsentry/sentry-javascript/workflows/CI:%20Build%20&%20Test/badge.svg)
11+
[![Build & Test](https://github.com/getsentry/sentry-javascript/workflows/CI:%20Build%20&%20Test/badge.svg)](https://github.com/getsentry/sentry-javascript/actions)
1212
[![codecov](https://codecov.io/gh/getsentry/sentry-javascript/branch/develop/graph/badge.svg)](https://codecov.io/gh/getsentry/sentry-javascript)
1313
[![npm version](https://img.shields.io/npm/v/@sentry/core.svg)](https://www.npmjs.com/package/@sentry/core)
1414
[![Discord](https://img.shields.io/discord/621778831602221064)](https://discord.gg/Ww9hbqr)

dev-packages/browser-integration-tests/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry-internal/browser-integration-tests",
3-
"version": "10.11.0",
3+
"version": "10.15.0",
44
"main": "index.js",
55
"license": "MIT",
66
"engines": {
@@ -43,7 +43,7 @@
4343
"@babel/preset-typescript": "^7.16.7",
4444
"@playwright/test": "~1.53.2",
4545
"@sentry-internal/rrweb": "2.34.0",
46-
"@sentry/browser": "10.11.0",
46+
"@sentry/browser": "10.15.0",
4747
"@supabase/supabase-js": "2.49.3",
4848
"axios": "1.8.2",
4949
"babel-loader": "^8.2.2",

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/fetch/get/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ sentryTest('captures Breadcrumb for basic GET request', async ({ getLocalTestUrl
2323
expect(eventData.exception?.values).toHaveLength(1);
2424

2525
expect(eventData?.breadcrumbs?.length).toBe(1);
26-
expect(eventData!.breadcrumbs![0]).toEqual({
26+
expect(eventData.breadcrumbs![0]).toEqual({
2727
timestamp: expect.any(Number),
2828
category: 'fetch',
2929
type: 'http',

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/fetch/getWithRequestObj/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ sentryTest('captures Breadcrumb for basic GET request that uses request object',
2323
expect(eventData.exception?.values).toHaveLength(1);
2424

2525
expect(eventData?.breadcrumbs?.length).toBe(1);
26-
expect(eventData!.breadcrumbs![0]).toEqual({
26+
expect(eventData.breadcrumbs![0]).toEqual({
2727
timestamp: expect.any(Number),
2828
category: 'fetch',
2929
type: 'http',

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/fetch/post/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ sentryTest('captures Breadcrumb for POST request', async ({ getLocalTestUrl, pag
2323
expect(eventData.exception?.values).toHaveLength(1);
2424

2525
expect(eventData?.breadcrumbs?.length).toBe(1);
26-
expect(eventData!.breadcrumbs![0]).toEqual({
26+
expect(eventData.breadcrumbs![0]).toEqual({
2727
timestamp: expect.any(Number),
2828
category: 'fetch',
2929
type: 'http',

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/fetch/statusCode/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ sentryTest('captures Breadcrumb with log level for 4xx response code', async ({
1919
expect(eventData.exception?.values).toHaveLength(1);
2020

2121
expect(eventData?.breadcrumbs?.length).toBe(1);
22-
expect(eventData!.breadcrumbs![0]).toEqual({
22+
expect(eventData.breadcrumbs![0]).toEqual({
2323
timestamp: expect.any(Number),
2424
category: 'fetch',
2525
type: 'http',
@@ -56,7 +56,7 @@ sentryTest('captures Breadcrumb with log level for 5xx response code', async ({
5656
expect(eventData.exception?.values).toHaveLength(1);
5757

5858
expect(eventData?.breadcrumbs?.length).toBe(1);
59-
expect(eventData!.breadcrumbs![0]).toEqual({
59+
expect(eventData.breadcrumbs![0]).toEqual({
6060
timestamp: expect.any(Number),
6161
category: 'fetch',
6262
type: 'http',

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/xhr/get/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ sentryTest('captures Breadcrumb for basic GET request', async ({ getLocalTestUrl
2424
expect(eventData.exception?.values).toHaveLength(1);
2525

2626
expect(eventData?.breadcrumbs?.length).toBe(1);
27-
expect(eventData!.breadcrumbs![0]).toEqual({
27+
expect(eventData.breadcrumbs![0]).toEqual({
2828
timestamp: expect.any(Number),
2929
category: 'xhr',
3030
type: 'http',

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/xhr/post/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ sentryTest('captures Breadcrumb for POST request', async ({ getLocalTestUrl, pag
2323
expect(eventData.exception?.values).toHaveLength(1);
2424

2525
expect(eventData?.breadcrumbs?.length).toBe(1);
26-
expect(eventData!.breadcrumbs![0]).toEqual({
26+
expect(eventData.breadcrumbs![0]).toEqual({
2727
timestamp: expect.any(Number),
2828
category: 'xhr',
2929
type: 'http',

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/xhr/statusCode/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ sentryTest('captures Breadcrumb with log level for 4xx response code', async ({
1919
expect(eventData.exception?.values).toHaveLength(1);
2020

2121
expect(eventData?.breadcrumbs?.length).toBe(1);
22-
expect(eventData!.breadcrumbs![0]).toEqual({
22+
expect(eventData.breadcrumbs![0]).toEqual({
2323
timestamp: expect.any(Number),
2424
category: 'xhr',
2525
type: 'http',
@@ -56,7 +56,7 @@ sentryTest('captures Breadcrumb with log level for 5xx response code', async ({
5656
expect(eventData.exception?.values).toHaveLength(1);
5757

5858
expect(eventData?.breadcrumbs?.length).toBe(1);
59-
expect(eventData!.breadcrumbs![0]).toEqual({
59+
expect(eventData.breadcrumbs![0]).toEqual({
6060
timestamp: expect.any(Number),
6161
category: 'xhr',
6262
type: 'http',

0 commit comments

Comments
 (0)