Skip to content

Commit d4efe82

Browse files
authored
Merge branch 'develop' into cg/JS-1501/nextjs-add-option-to-suppress-could-not-determine-source-map-reference
2 parents 916b2ad + 80b4705 commit d4efe82

File tree

114 files changed

+1860
-548
lines changed

Some content is hidden

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

114 files changed

+1860
-548
lines changed

.size-limit.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ module.exports = [
3838
path: 'packages/browser/build/npm/esm/prod/index.js',
3939
import: createImport('init', 'browserTracingIntegration'),
4040
gzip: true,
41-
limit: '42 KB',
41+
limit: '43 KB',
4242
},
4343
{
4444
name: '@sentry/browser (incl. Tracing, Profiling)',
@@ -287,7 +287,7 @@ module.exports = [
287287
import: createImport('init'),
288288
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
289289
gzip: true,
290-
limit: '164 KB',
290+
limit: '166 KB',
291291
},
292292
{
293293
name: '@sentry/node - without tracing',

CHANGELOG.md

Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,39 @@
44

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

7+
- **feat(tanstackstart-react): Auto-instrument global middleware in `sentryTanstackStart` Vite plugin ([#18884](https://github.com/getsentry/sentry-javascript/pull/18844))**
8+
9+
The `sentryTanstackStart` Vite plugin now automatically instruments `requestMiddleware` and `functionMiddleware` arrays in `createStart()`. This captures performance data without requiring manual wrapping.
10+
11+
Auto-instrumentation is enabled by default. To disable it:
12+
13+
```ts
14+
// vite.config.ts
15+
sentryTanstackStart({
16+
authToken: process.env.SENTRY_AUTH_TOKEN,
17+
org: 'your-org',
18+
project: 'your-project',
19+
autoInstrumentMiddleware: false,
20+
});
21+
```
22+
723
### Other Changes
824

9-
- feat(deps): Bump OpenTelemetry dependencies
10-
- Bump @opentelemetry/context-async-hooks from 2.2.0 to 2.4.0
11-
- Bump @opentelemetry/core from 2.2.0 to 2.4.0
12-
- Bump @opentelemetry/resources from 2.2.0 to 2.4.0
13-
- Bump @opentelemetry/sdk-trace-base from 2.2.0 to 2.4.0
14-
- Bump @opentelemetry/sdk-trace-node from 2.2.0 to 2.4.0
15-
- Bump @opentelemetry/instrumentation from 0.208.0 to 0.210.0
16-
- Bump @opentelemetry/instrumentation-amqplib from 0.55.0 to 0.57.0
17-
- Bump @opentelemetry/instrumentation-connect from 0.52.0 to 0.53.0
18-
- Bump @opentelemetry/instrumentation-dataloader from 0.26.0 to 0.27.0
19-
- Bump @opentelemetry/instrumentation-express from 0.57.0 to 0.58.0
20-
- Bump @opentelemetry/instrumentation-fs from 0.28.0 to 0.29.0
21-
- Bump @opentelemetry/instrumentation-generic-pool from 0.52.0 to 0.53.0
22-
- Bump @opentelemetry/instrumentation-graphql from 0.56.0 to 0.57.0
23-
- Bump @opentelemetry/instrumentation-hapi from 0.55.0 to 0.56.0
24-
- Bump @opentelemetry/instrumentation-http from 0.208.0 to 0.210.0
25-
- Bump @opentelemetry/instrumentation-ioredis from 0.56.0 to 0.58.0
26-
- Bump @opentelemetry/instrumentation-kafkajs from 0.18.0 to 0.19.0
27-
- Bump @opentelemetry/instrumentation-knex from 0.53.0 to 0.54.0
28-
- Bump @opentelemetry/instrumentation-koa from 0.57.0 to 0.58.0
29-
- Bump @opentelemetry/instrumentation-lru-memoizer from 0.53.0 to 0.54.0
30-
- Bump @opentelemetry/instrumentation-mongodb from 0.61.0 to 0.63.0
31-
- Bump @opentelemetry/instrumentation-mongoose from 0.55.0 to 0.56.0
32-
- Bump @opentelemetry/instrumentation-mysql from 0.54.0 to 0.56.0
33-
- Bump @opentelemetry/instrumentation-mysql2 from 0.55.0 to 0.56.0
34-
- Bump @opentelemetry/instrumentation-nestjs-core from 0.55.0 to 0.56.0
35-
- Bump @opentelemetry/instrumentation-pg from 0.61.0 to 0.62.0
36-
- Bump @opentelemetry/instrumentation-redis from 0.57.0 to 0.58.0
37-
- Bump @opentelemetry/instrumentation-tedious from 0.27.0 to 0.29.0
38-
- Bump @opentelemetry/instrumentation-undici from 0.19.0 to 0.20.0
39-
- Bump @opentelemetry/instrumentation-aws-sdk from 0.64.0 to 0.65.0
40-
- Bump @opentelemetry/sdk-node from 0.208.0 to 0.210.0
41-
- Bump @opentelemetry/exporter-trace-otlp-http from 0.208.0 to 0.210.0
25+
## 10.36.0
26+
27+
- feat(node): Add Prisma v7 support ([#18908](https://github.com/getsentry/sentry-javascript/pull/18908))
28+
- feat(opentelemetry): Support `db.system.name` attribute for database spans ([#18902](https://github.com/getsentry/sentry-javascript/pull/18902))
29+
- feat(deps): Bump OpenTelemetry dependencies ([#18878](https://github.com/getsentry/sentry-javascript/pull/18878))
30+
- fix(core): Sanitize data URLs in `http.client` spans ([#18896](https://github.com/getsentry/sentry-javascript/pull/18896))
31+
- fix(nextjs): Add ALS runner fallbacks for serverless environments ([#18889](https://github.com/getsentry/sentry-javascript/pull/18889))
32+
- fix(node): Profiling debug ID matching
33+
34+
<details>
35+
<summary><strong>Internal Changes</strong></summary>
36+
37+
- chore(deps-dev): bump @remix-run/server-runtime from 2.15.2 to 2.17.3 in /packages/remix ([#18750](https://github.com/getsentry/sentry-javascript/pull/18750))
38+
39+
</details>
4240

4341
## 10.35.0
4442

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.35.0",
3+
"version": "10.36.0",
44
"main": "index.js",
55
"license": "MIT",
66
"engines": {
@@ -49,7 +49,7 @@
4949
"@babel/preset-typescript": "^7.16.7",
5050
"@playwright/test": "~1.56.0",
5151
"@sentry-internal/rrweb": "2.34.0",
52-
"@sentry/browser": "10.35.0",
52+
"@sentry/browser": "10.36.0",
5353
"@supabase/supabase-js": "2.49.3",
5454
"axios": "^1.12.2",
5555
"babel-loader": "^8.2.2",
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import * as Sentry from '@sentry/browser';
2+
3+
window.Sentry = Sentry;
4+
5+
Sentry.init({
6+
dsn: 'https://public@dsn.ingest.sentry.io/1337',
7+
integrations: [Sentry.browserTracingIntegration()],
8+
tracesSampleRate: 1,
9+
autoSessionTracking: false,
10+
});
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Fetch a data URL to verify that the span name and attributes are sanitized
2+
// Data URLs are used for inline resources, e.g., Web Workers with inline scripts
3+
const dataUrl = 'data:text/plain;base64,SGVsbG8gV29ybGQh';
4+
fetch(dataUrl).catch(() => {
5+
// Data URL fetch might fail in some browsers, but the span should still be created
6+
});
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { expect } from '@playwright/test';
2+
import { sentryTest } from '../../../../utils/fixtures';
3+
import {
4+
envelopeRequestParser,
5+
shouldSkipTracingTest,
6+
waitForTransactionRequestOnUrl,
7+
} from '../../../../utils/helpers';
8+
9+
sentryTest('sanitizes data URLs in fetch span name and attributes', async ({ getLocalTestUrl, page }) => {
10+
if (shouldSkipTracingTest()) {
11+
sentryTest.skip();
12+
}
13+
14+
const url = await getLocalTestUrl({ testDir: __dirname });
15+
16+
const req = await waitForTransactionRequestOnUrl(page, url);
17+
const transactionEvent = envelopeRequestParser(req);
18+
19+
const requestSpans = transactionEvent.spans?.filter(({ op }) => op === 'http.client');
20+
21+
expect(requestSpans).toHaveLength(1);
22+
23+
const span = requestSpans?.[0];
24+
25+
const sanitizedUrl = 'data:text/plain,base64,SGVsbG8gV2... [truncated]';
26+
expect(span?.description).toBe(`GET ${sanitizedUrl}`);
27+
28+
expect(span?.data).toMatchObject({
29+
'http.method': 'GET',
30+
url: sanitizedUrl,
31+
type: 'fetch',
32+
});
33+
34+
expect(span?.data?.['http.url']).toBe(sanitizedUrl);
35+
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import * as Sentry from '@sentry/browser';
2+
3+
window.Sentry = Sentry;
4+
5+
Sentry.init({
6+
dsn: 'https://public@dsn.ingest.sentry.io/1337',
7+
integrations: [Sentry.browserTracingIntegration()],
8+
tracesSampleRate: 1,
9+
autoSessionTracking: false,
10+
});
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// XHR request to a data URL to verify that the span name and attributes are sanitized
2+
const dataUrl = 'data:text/plain;base64,SGVsbG8gV29ybGQh';
3+
const xhr = new XMLHttpRequest();
4+
xhr.open('GET', dataUrl);
5+
xhr.send();
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { expect } from '@playwright/test';
2+
import type { Event } from '@sentry/core';
3+
import { sentryTest } from '../../../../utils/fixtures';
4+
import { getFirstSentryEnvelopeRequest, shouldSkipTracingTest } from '../../../../utils/helpers';
5+
6+
sentryTest('sanitizes data URLs in XHR span name and attributes', async ({ getLocalTestUrl, page }) => {
7+
if (shouldSkipTracingTest()) {
8+
sentryTest.skip();
9+
}
10+
11+
const url = await getLocalTestUrl({ testDir: __dirname });
12+
13+
const eventData = await getFirstSentryEnvelopeRequest<Event>(page, url);
14+
const requestSpans = eventData.spans?.filter(({ op }) => op === 'http.client');
15+
16+
expect(requestSpans).toHaveLength(1);
17+
18+
const span = requestSpans?.[0];
19+
20+
const sanitizedUrl = 'data:text/plain,base64,SGVsbG8gV2... [truncated]';
21+
expect(span?.description).toBe(`GET ${sanitizedUrl}`);
22+
23+
expect(span?.data).toMatchObject({
24+
'http.method': 'GET',
25+
url: sanitizedUrl,
26+
type: 'xhr',
27+
});
28+
29+
expect(span?.data?.['http.url']).toBe(sanitizedUrl);
30+
});

dev-packages/bundle-analyzer-scenarios/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry-internal/bundle-analyzer-scenarios",
3-
"version": "10.35.0",
3+
"version": "10.36.0",
44
"description": "Scenarios to test bundle analysis with",
55
"repository": "git://github.com/getsentry/sentry-javascript.git",
66
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/dev-packages/bundle-analyzer-scenarios",

0 commit comments

Comments
 (0)