Skip to content

Commit c3c8dda

Browse files
authored
Merge branch 'develop' into onur/fastify-otel-migration
2 parents c7782e5 + e4f4597 commit c3c8dda

File tree

131 files changed

+3981
-346
lines changed

Some content is hidden

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

131 files changed

+3981
-346
lines changed

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,17 @@ body:
3232
options:
3333
- '@sentry/browser'
3434
- '@sentry/node'
35+
- '@sentry/node - express'
36+
- '@sentry/node - fastify'
37+
- '@sentry/node - koa'
38+
- '@sentry/node - hapi'
39+
- '@sentry/node - connect'
3540
- '@sentry/angular'
3641
- '@sentry/astro'
3742
- '@sentry/aws-serverless'
3843
- '@sentry/bun'
3944
- '@sentry/cloudflare'
45+
- '@sentry/cloudflare - hono'
4046
- '@sentry/deno'
4147
- '@sentry/ember'
4248
- '@sentry/gatsby'
@@ -45,6 +51,7 @@ body:
4551
- '@sentry/nextjs'
4652
- '@sentry/nuxt'
4753
- '@sentry/react'
54+
- '@sentry/react-router'
4855
- '@sentry/remix'
4956
- '@sentry/solid'
5057
- '@sentry/solidstart'

.github/workflows/issue-package-label.yml

Lines changed: 75 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -30,76 +30,100 @@ jobs:
3030
map: |
3131
{
3232
"@sentry.angular": {
33-
"label": "Package: angular"
33+
"label": "Angular"
3434
},
3535
"@sentry.astro": {
36-
"label": "Package: astro"
36+
"label": "Astro"
3737
},
3838
"@sentry.aws-serverless": {
39-
"label": "Package: aws-serverless"
39+
"label": "AWS Lambda"
4040
},
4141
"@sentry.browser": {
42-
"label": "Package: browser"
42+
"label": "Browser"
4343
},
4444
"@sentry.bun": {
45-
"label": "Package: bun"
45+
"label": "Bun"
46+
},
47+
"@sentry.cloudflare.-.hono": {
48+
"label": "Hono"
4649
},
4750
"@sentry.cloudflare": {
48-
"label": "Package: cloudflare"
51+
"label": "Cloudflare Workers"
4952
},
5053
"@sentry.deno": {
51-
"label": "Package: deno"
54+
"label": "Deno"
5255
},
5356
"@sentry.ember": {
54-
"label": "Package: ember"
57+
"label": "Ember"
5558
},
5659
"@sentry.gatsby": {
57-
"label": "Package: gatbsy"
60+
"label": "Gatbsy"
5861
},
5962
"@sentry.google-cloud-serverless": {
60-
"label": "Package: google-cloud-serverless"
63+
"label": "Google Cloud Functions"
6164
},
6265
"@sentry.nestjs": {
63-
"label": "Package: nestjs"
66+
"label": "Nest.js"
6467
},
6568
"@sentry.nextjs": {
66-
"label": "Package: nextjs"
69+
"label": "Next.js"
70+
},
71+
"@sentry.node.-.express": {
72+
"label": "Express"
73+
},
74+
"@sentry.node.-.fastify": {
75+
"label": "Fastify"
76+
},
77+
"@sentry.node.-.koa": {
78+
"label": "Koa"
79+
},
80+
"@sentry.node.-.hapi": {
81+
"label": "Hapi"
82+
},
83+
"@sentry.node.-.connect": {
84+
"label": "Connect"
6785
},
6886
"@sentry.node": {
69-
"label": "Package: node"
87+
"label": "Node.js"
7088
},
7189
"@sentry.nuxt": {
72-
"label": "Package: nuxt"
90+
"label": "Nuxt"
91+
},
92+
"@sentry.react-router": {
93+
"label": "React Router Framework"
7394
},
7495
"@sentry.react": {
75-
"label": "Package: react"
96+
"label": "React"
7697
},
7798
"@sentry.remix": {
78-
"label": "Package: remix"
99+
"label": "Remix"
79100
},
80101
"@sentry.solid": {
81-
"label": "Package: solid"
102+
"label": "Solid"
82103
},
83-
"@sentry.solid": {
84-
"label": "Package: solidstart"
104+
"@sentry.solidstart": {
105+
"label": "SolidStart"
85106
},
86107
"@sentry.sveltekit": {
87-
"label": "Package: sveltekit"
108+
"label": "SvelteKit"
88109
},
89110
"@sentry.svelte": {
90-
"label": "Package: svelte"
111+
"label": "Svelte"
91112
},
92113
"@sentry.vue": {
93-
"label": "Package: vue"
114+
"label": "Vue"
115+
},
116+
"@sentry.tanstackstart-react": {
117+
"label": "Tanstack Start React"
94118
},
95119
"@sentry.wasm": {
96-
"label": "Package: wasm"
120+
"label": "WASM"
97121
},
98122
"Sentry.Browser.Loader": {
99-
"label": "Package-Meta: Loader"
123+
"label": "Browser"
100124
},
101125
"Sentry.Browser.CDN.bundle": {
102-
"label": "Package-Meta: CDN"
126+
"label": "Browser"
103127
}
104128
}
105129
export_to: output
@@ -110,3 +134,29 @@ jobs:
110134
uses: actions-ecosystem/action-add-labels@v1
111135
with:
112136
labels: ${{ steps.packageLabel.outputs.label }}
137+
138+
- name: Map additional to issue label
139+
# https://github.com/kanga333/variable-mapper
140+
uses: kanga333/variable-mapper@v0.3.0
141+
id: additionalLabel
142+
if: steps.packageName.outputs.match != ''
143+
with:
144+
key: '${{ steps.packageName.outputs.group1 }}'
145+
# Note: Since this is handled as a regex, and JSON parse wrangles slashes /, we just use `.` instead
146+
map: |
147+
{
148+
"Sentry.Browser.Loader": {
149+
"label": "Loader Script"
150+
},
151+
"Sentry.Browser.CDN.bundle": {
152+
"label": "CDN Bundle"
153+
}
154+
}
155+
export_to: output
156+
157+
- name: Add additional label if applicable
158+
# Note: We only add the label if the issue is still open
159+
if: steps.additionalLabel.outputs.label != ''
160+
uses: actions-ecosystem/action-add-labels@v1
161+
with:
162+
labels: ${{ steps.additionalLabel.outputs.label }}

CHANGELOG.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,65 @@
1010

1111
- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott
1212

13+
## 9.13.0
14+
15+
### Important Changes
16+
17+
- **feat(node): Add support for winston logger ([#15983](https://github.com/getsentry/sentry-javascript/pull/15983))**
18+
19+
Sentry is adding support for [structured logging](https://github.com/getsentry/sentry-javascript/discussions/15916). In this release we've added support for sending logs to Sentry via the [winston](https://github.com/winstonjs/winston) logger to the Sentry Node SDK (and SDKs that use the Node SDK under the hood like `@sentry/nestjs`). The Logging APIs in the Sentry SDK are still experimental and subject to change.
20+
21+
```js
22+
const winston = require('winston');
23+
const Transport = require('winston-transport');
24+
25+
const transport = Sentry.createSentryWinstonTransport(Transport);
26+
27+
const logger = winston.createLogger({
28+
transports: [transport],
29+
});
30+
```
31+
32+
- **feat(core): Add `wrapMcpServerWithSentry` to instrument MCP servers from `@modelcontextprotocol/sdk` ([#16032](https://github.com/getsentry/sentry-javascript/pull/16032))**
33+
34+
The Sentry SDK now supports instrumenting MCP servers from the `@modelcontextprotocol/sdk` package. Compatible with versions `^1.9.0` of the `@modelcontextprotocol/sdk` package.
35+
36+
```js
37+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
38+
39+
// Create an MCP server
40+
const server = new McpServer({
41+
name: 'Demo',
42+
version: '1.0.0',
43+
});
44+
45+
// Use the instrumented server in your application
46+
const instrumentedServer = Sentry.wrapMcpServerWithSentry(server);
47+
```
48+
49+
- **feat(core): Move console integration into core and add to cloudflare/vercel-edge ([#16024](https://github.com/getsentry/sentry-javascript/pull/16024))**
50+
51+
Console instrumentation has been added to `@sentry/cloudflare` and `@sentry/nextjs` Edge Runtime and is enabled by default. Now calls to the console object will be captured as breadcrumbs for those SDKs.
52+
53+
- **feat(bun): Support new `Bun.serve` APIs ([#16035](https://github.com/getsentry/sentry-javascript/pull/16035))**
54+
55+
Bun `1.2.6` and above have a new `Bun.serve` API, which the Bun SDK now supports. The SDK instruments the new routes object that can be used to define routes for the server.
56+
57+
Thanks to @Jarred-Sumner for helping us get this supported!
58+
59+
### Other Changes
60+
61+
- feat(browser): Warn on duplicate `browserTracingIntegration` ([#16042](https://github.com/getsentry/sentry-javascript/pull/16042))
62+
- feat(core): Allow delayed sending with offline transport ([#15937](https://github.com/getsentry/sentry-javascript/pull/15937))
63+
- feat(deps): Bump @sentry/webpack-plugin from 3.2.4 to 3.3.1 ([#16057](https://github.com/getsentry/sentry-javascript/pull/16057))
64+
- feat(vue): Apply stateTransformer to attachments in Pinia Plugin ([#16034](https://github.com/getsentry/sentry-javascript/pull/16034))
65+
- fix(core): Run `beforeSendLog` after we process log ([#16019](https://github.com/getsentry/sentry-javascript/pull/16019))
66+
- fix(nextjs): Don't show turbopack warning for newer Next.js canaries ([#16065](https://github.com/getsentry/sentry-javascript/pull/16065))
67+
- fix(nextjs): Include patch version 0 for min supported 15.3.0 ([#16026](https://github.com/getsentry/sentry-javascript/pull/16026))
68+
- fix(node): Ensure late init works with all integrations ([#16016](https://github.com/getsentry/sentry-javascript/pull/16016))
69+
- fix(react-router): Pass `unstable_sentryVitePluginOptions` to cli instance ([#16033](https://github.com/getsentry/sentry-javascript/pull/16033))
70+
- fix(serverless-aws): Overwrite root span name with GraphQL if set ([#16010](https://github.com/getsentry/sentry-javascript/pull/16010))
71+
1372
## 9.12.0
1473

1574
### Important Changes

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

Lines changed: 3 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": "9.12.0",
3+
"version": "9.13.0",
44
"main": "index.js",
55
"license": "MIT",
66
"engines": {
@@ -42,7 +42,8 @@
4242
"@babel/preset-typescript": "^7.16.7",
4343
"@playwright/test": "~1.50.0",
4444
"@sentry-internal/rrweb": "2.34.0",
45-
"@sentry/browser": "9.12.0",
45+
"@sentry/browser": "9.13.0",
46+
"@supabase/supabase-js": "2.49.3",
4647
"axios": "1.8.2",
4748
"babel-loader": "^8.2.2",
4849
"fflate": "0.8.2",
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import * as Sentry from '@sentry/browser';
2+
3+
import { createClient } from '@supabase/supabase-js';
4+
window.Sentry = Sentry;
5+
6+
const supabaseClient = createClient('https://test.supabase.co', 'test-key');
7+
8+
Sentry.init({
9+
dsn: 'https://public@dsn.ingest.sentry.io/1337',
10+
integrations: [Sentry.browserTracingIntegration(), Sentry.supabaseIntegration({ supabaseClient })],
11+
tracesSampleRate: 1.0,
12+
});
13+
14+
// Simulate authentication operations
15+
async function performAuthenticationOperations() {
16+
await supabaseClient.auth.signInWithPassword({
17+
email: 'test@example.com',
18+
password: 'test-password',
19+
});
20+
21+
await supabaseClient.auth.signOut();
22+
}
23+
24+
performAuthenticationOperations();

0 commit comments

Comments
 (0)