Skip to content

Commit aff106d

Browse files
authored
Merge branch 'develop' into sig/astro-waitUntil
2 parents 27e4a18 + bcdc345 commit aff106d

File tree

161 files changed

+1371
-1858
lines changed

Some content is hidden

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

161 files changed

+1371
-1858
lines changed

.github/workflows/codeql-analysis.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ name: 'CI: CodeQL'
1414
on:
1515
push:
1616
branches: [develop]
17-
branches-ignore:
18-
# Ignore dependabot branches
19-
- "dependabot/**"
2017
pull_request:
2118
# The branches below must be a subset of the branches above
2219
branches: [develop]
@@ -36,6 +33,8 @@ jobs:
3633
analyze:
3734
name: Analyze
3835
runs-on: ubuntu-latest
36+
# Skip for pushes from dependabot, which is not supported
37+
if: github.event_name == 'pull_request' || github.actor != 'dependabot[bot]'
3938

4039
strategy:
4140
fail-fast: false
@@ -51,7 +50,7 @@ jobs:
5150

5251
# Initializes the CodeQL tools for scanning.
5352
- name: Initialize CodeQL
54-
uses: github/codeql-action/init@v2
53+
uses: github/codeql-action/init@v3
5554
with:
5655
config-file: ./.github/codeql/codeql-config.yml
5756
queries: security-extended
@@ -64,7 +63,7 @@ jobs:
6463
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
6564
# If this step fails, then you should remove it and run the build manually (see below)
6665
- name: Autobuild
67-
uses: github/codeql-action/autobuild@v2
66+
uses: github/codeql-action/autobuild@v3
6867

6968
# ℹ️ Command-line programs to run using the OS shell.
7069
# 📚 https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
@@ -78,4 +77,4 @@ jobs:
7877
# make release
7978

8079
- name: Perform CodeQL Analysis
81-
uses: github/codeql-action/analyze@v2
80+
uses: github/codeql-action/analyze@v3

CHANGELOG.md

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

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

13+
## 8.36.0
14+
15+
### Important Changes
16+
17+
- **feat(nuxt): Add Sentry Pinia plugin ([#14047](https://github.com/getsentry/sentry-javascript/pull/14047))**
18+
19+
The Nuxt SDK now allows you to track Pinia state for captured errors. To enable the Pinia plugin, set the `trackPinia` option to `true` in your client config:
20+
21+
```ts
22+
// sentry.client.config.ts
23+
24+
Sentry.init({
25+
trackPinia: true,
26+
});
27+
```
28+
29+
Read more about the Pinia plugin in the [Sentry Pinia Documentation](https://docs.sentry.io/platforms/javascript/guides/nuxt/features/pinia/).
30+
31+
- **feat(nextjs/vercel-edge/cloudflare): Switch to OTEL for performance monitoring ([#13889](https://github.com/getsentry/sentry-javascript/pull/13889))**
32+
33+
With this release, the Sentry Next.js, and Cloudflare SDKs will now capture performance data based on OpenTelemetry.
34+
Some exceptions apply in cases where Next.js captures inaccurate data itself.
35+
36+
NOTE: You may experience minor differences in transaction names in Sentry.
37+
Most importantly transactions for serverside pages router invocations will now be named `GET /[param]/my/route` instead of `/[param]/my/route`.
38+
This means that those transactions are now better aligned with the OpenTelemetry semantic conventions.
39+
40+
### Other Changes
41+
42+
- deps: Bump bundler plugins and CLI to 2.22.6 and 2.37.0 respectively ([#14050](https://github.com/getsentry/sentry-javascript/pull/14050))
43+
- feat(deps): bump @opentelemetry/instrumentation-aws-sdk from 0.44.0 to 0.45.0 ([#14099](https://github.com/getsentry/sentry-javascript/pull/14099))
44+
- feat(deps): bump @opentelemetry/instrumentation-connect from 0.39.0 to 0.40.0 ([#14101](https://github.com/getsentry/sentry-javascript/pull/14101))
45+
- feat(deps): bump @opentelemetry/instrumentation-express from 0.43.0 to 0.44.0 ([#14102](https://github.com/getsentry/sentry-javascript/pull/14102))
46+
- feat(deps): bump @opentelemetry/instrumentation-fs from 0.15.0 to 0.16.0 ([#14098](https://github.com/getsentry/sentry-javascript/pull/14098))
47+
- feat(deps): bump @opentelemetry/instrumentation-kafkajs from 0.3.0 to 0.4.0 ([#14100](https://github.com/getsentry/sentry-javascript/pull/14100))
48+
- feat(nextjs): Add method and url to route handler request data ([#14084](https://github.com/getsentry/sentry-javascript/pull/14084))
49+
- feat(node): Add breadcrumbs for `child_process` and `worker_thread` ([#13896](https://github.com/getsentry/sentry-javascript/pull/13896))
50+
- fix(core): Ensure standalone spans are not sent if SDK is disabled ([#14088](https://github.com/getsentry/sentry-javascript/pull/14088))
51+
- fix(nextjs): Await flush in api handlers ([#14023](https://github.com/getsentry/sentry-javascript/pull/14023))
52+
- fix(nextjs): Don't leak webpack types into exports ([#14116](https://github.com/getsentry/sentry-javascript/pull/14116))
53+
- fix(nextjs): Fix matching logic for file convention type for root level components ([#14038](https://github.com/getsentry/sentry-javascript/pull/14038))
54+
- fix(nextjs): Respect directives in value injection loader ([#14083](https://github.com/getsentry/sentry-javascript/pull/14083))
55+
- fix(nuxt): Only wrap `.mjs` entry files in rollup ([#14060](https://github.com/getsentry/sentry-javascript/pull/14060))
56+
- fix(nuxt): Re-export all exported bindings ([#14086](https://github.com/getsentry/sentry-javascript/pull/14086))
57+
- fix(nuxt): Server-side setup in readme ([#14049](https://github.com/getsentry/sentry-javascript/pull/14049))
58+
- fix(profiling-node): Always warn when running on incompatible major version of Node.js ([#14043](https://github.com/getsentry/sentry-javascript/pull/14043))
59+
- fix(replay): Fix `onError` callback ([#14002](https://github.com/getsentry/sentry-javascript/pull/14002))
60+
- perf(otel): Only calculate current timestamp once ([#14094](https://github.com/getsentry/sentry-javascript/pull/14094))
61+
- test(browser-integration): Add sentry DSN route handler by default ([#14095](https://github.com/getsentry/sentry-javascript/pull/14095))
62+
1363
## 8.35.0
1464

1565
### Beta release of the official Nuxt Sentry SDK

dev-packages/browser-integration-tests/loader-suites/loader/noOnLoad/replay/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,6 @@ sentryTest('should capture a replay', async ({ getLocalTestUrl, page }) => {
1111
sentryTest.skip();
1212
}
1313

14-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
15-
return route.fulfill({
16-
status: 200,
17-
contentType: 'application/json',
18-
body: JSON.stringify({ id: 'test-id' }),
19-
});
20-
});
21-
2214
const req = waitForReplayRequest(page);
2315

2416
const url = await getLocalTestUrl({ testDir: __dirname });

dev-packages/browser-integration-tests/loader-suites/loader/noOnLoad/replayError/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,6 @@ sentryTest('should capture a replay & attach an error', async ({ getLocalTestUrl
99
sentryTest.skip();
1010
}
1111

12-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
13-
return route.fulfill({
14-
status: 200,
15-
contentType: 'application/json',
16-
body: JSON.stringify({ id: 'test-id' }),
17-
});
18-
});
19-
2012
const req = waitForReplayRequest(page);
2113

2214
const url = await getLocalTestUrl({ testDir: __dirname });

dev-packages/browser-integration-tests/loader-suites/loader/noOnLoad/sdkLoadedInMeanwhile/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ sentryTest('it does not download the SDK if the SDK was loaded in the meanwhile'
2828
});
2929
});
3030

31-
const tmpDir = await getLocalTestUrl({ testDir: __dirname, skipRouteHandler: true });
31+
const tmpDir = await getLocalTestUrl({ testDir: __dirname, skipRouteHandler: true, skipDsnRouteHandler: true });
3232

3333
await page.route(`${TEST_HOST}/*.*`, route => {
3434
const file = route.request().url().split('/').pop();

dev-packages/browser-integration-tests/loader-suites/loader/onLoad/captureExceptionInOnLoad/test.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,6 @@ import { sentryTest } from '../../../../utils/fixtures';
44
import { envelopeRequestParser, waitForErrorRequestOnUrl } from '../../../../utils/helpers';
55

66
sentryTest('captureException works inside of onLoad', async ({ getLocalTestUrl, page }) => {
7-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
8-
return route.fulfill({
9-
status: 200,
10-
contentType: 'application/json',
11-
body: JSON.stringify({ id: 'test-id' }),
12-
});
13-
});
14-
157
const url = await getLocalTestUrl({ testDir: __dirname });
168
const req = await waitForErrorRequestOnUrl(page, url);
179

@@ -21,14 +13,6 @@ sentryTest('captureException works inside of onLoad', async ({ getLocalTestUrl,
2113
});
2214

2315
sentryTest('should set SENTRY_SDK_SOURCE value', async ({ getLocalTestUrl, page }) => {
24-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
25-
return route.fulfill({
26-
status: 200,
27-
contentType: 'application/json',
28-
body: JSON.stringify({ id: 'test-id' }),
29-
});
30-
});
31-
3216
const url = await getLocalTestUrl({ testDir: __dirname });
3317
const req = await waitForErrorRequestOnUrl(page, url);
3418

dev-packages/browser-integration-tests/loader-suites/loader/onLoad/customInit/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,6 @@ const bundle = process.env.PW_BUNDLE || '';
77
const isLazy = LOADER_CONFIGS[bundle]?.lazy;
88

99
sentryTest('always calls onLoad init correctly', async ({ getLocalTestUrl, page }) => {
10-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
11-
return route.fulfill({
12-
status: 200,
13-
contentType: 'application/json',
14-
body: JSON.stringify({ id: 'test-id' }),
15-
});
16-
});
17-
1810
const url = await getLocalTestUrl({ testDir: __dirname });
1911

2012
await page.goto(url);

dev-packages/browser-integration-tests/loader-suites/loader/onLoad/customIntegrations/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,6 @@ sentryTest('should handle custom added integrations & default integrations', asy
88
const shouldHaveReplay = !shouldSkipReplayTest();
99
const shouldHaveBrowserTracing = !shouldSkipTracingTest();
1010

11-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
12-
return route.fulfill({
13-
status: 200,
14-
contentType: 'application/json',
15-
body: JSON.stringify({ id: 'test-id' }),
16-
});
17-
});
18-
1911
const url = await getLocalTestUrl({ testDir: __dirname });
2012
await page.goto(url);
2113

dev-packages/browser-integration-tests/loader-suites/loader/onLoad/customIntegrationsFunction/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,6 @@ import { sentryTest } from '../../../../utils/fixtures';
55
sentryTest(
66
'should not add default integrations if integrations function is provided',
77
async ({ getLocalTestUrl, page }) => {
8-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
9-
return route.fulfill({
10-
status: 200,
11-
contentType: 'application/json',
12-
body: JSON.stringify({ id: 'test-id' }),
13-
});
14-
});
15-
168
const url = await getLocalTestUrl({ testDir: __dirname });
179
await page.goto(url);
1810

dev-packages/browser-integration-tests/loader-suites/loader/onLoad/customReplay/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,6 @@ sentryTest('should handle custom added Replay integration', async ({ getLocalTes
88
sentryTest.skip();
99
}
1010

11-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
12-
return route.fulfill({
13-
status: 200,
14-
contentType: 'application/json',
15-
body: JSON.stringify({ id: 'test-id' }),
16-
});
17-
});
18-
1911
const req = waitForReplayRequest(page);
2012

2113
const url = await getLocalTestUrl({ testDir: __dirname });

dev-packages/browser-integration-tests/loader-suites/loader/onLoad/keepSentryGlobal/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,6 @@ import { sentryTest } from '../../../../utils/fixtures';
44
import { envelopeRequestParser, waitForErrorRequestOnUrl } from '../../../../utils/helpers';
55

66
sentryTest('keeps data on window.Sentry intact', async ({ getLocalTestUrl, page }) => {
7-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
8-
return route.fulfill({
9-
status: 200,
10-
contentType: 'application/json',
11-
body: JSON.stringify({ id: 'test-id' }),
12-
});
13-
});
14-
157
const url = await getLocalTestUrl({ testDir: __dirname });
168
const req = await waitForErrorRequestOnUrl(page, url);
179

dev-packages/browser-integration-tests/loader-suites/loader/onLoad/onLoadLate/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,6 @@ import { sentryTest } from '../../../../utils/fixtures';
44
import { envelopeRequestParser, waitForErrorRequestOnUrl } from '../../../../utils/helpers';
55

66
sentryTest('late onLoad call is handled', async ({ getLocalTestUrl, page }) => {
7-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
8-
return route.fulfill({
9-
status: 200,
10-
contentType: 'application/json',
11-
body: JSON.stringify({ id: 'test-id' }),
12-
});
13-
});
14-
157
const url = await getLocalTestUrl({ testDir: __dirname });
168
const req = await waitForErrorRequestOnUrl(page, url);
179

dev-packages/browser-integration-tests/loader-suites/loader/onLoad/replay/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,6 @@ sentryTest('should capture a replay', async ({ getLocalTestUrl, page }) => {
88
sentryTest.skip();
99
}
1010

11-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
12-
return route.fulfill({
13-
status: 200,
14-
contentType: 'application/json',
15-
body: JSON.stringify({ id: 'test-id' }),
16-
});
17-
});
18-
1911
const req = waitForReplayRequest(page);
2012

2113
const url = await getLocalTestUrl({ testDir: __dirname });

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@
4444
"@playwright/test": "^1.44.1",
4545
"@sentry-internal/rrweb": "2.11.0",
4646
"@sentry/browser": "8.35.0",
47-
"axios": "1.6.7",
47+
"axios": "1.7.7",
4848
"babel-loader": "^8.2.2",
4949
"html-webpack-plugin": "^5.5.0",
5050
"pako": "^2.1.0",
51-
"webpack": "^5.94.0"
51+
"webpack": "^5.95.0"
5252
},
5353
"devDependencies": {
5454
"@types/glob": "8.0.0",

dev-packages/browser-integration-tests/playwright.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const config: PlaywrightTestConfig = {
3030
},
3131
],
3232

33-
reporter: process.env.CI ? [['line'], ['junit', { outputFile: 'results.junit.xml' }]] : 'list',
33+
reporter: process.env.CI ? [['list'], ['junit', { outputFile: 'results.junit.xml' }]] : 'list',
3434

3535
globalSetup: require.resolve('./playwright.setup.ts'),
3636
globalTeardown: require.resolve('./playwright.teardown.ts'),

dev-packages/browser-integration-tests/suites/feedback/attachTo/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,6 @@ sentryTest('should capture feedback with custom button', async ({ getLocalTestUr
2323
}
2424
});
2525

26-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
27-
return route.fulfill({
28-
status: 200,
29-
contentType: 'application/json',
30-
body: JSON.stringify({ id: 'test-id' }),
31-
});
32-
});
33-
3426
const url = await getLocalTestUrl({ testDir: __dirname });
3527

3628
await page.goto(url);

dev-packages/browser-integration-tests/suites/feedback/captureFeedback/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,6 @@ sentryTest('should capture feedback', async ({ getLocalTestUrl, page }) => {
2323
}
2424
});
2525

26-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
27-
return route.fulfill({
28-
status: 200,
29-
contentType: 'application/json',
30-
body: JSON.stringify({ id: 'test-id' }),
31-
});
32-
});
33-
3426
const url = await getLocalTestUrl({ testDir: __dirname });
3527

3628
await page.goto(url);

dev-packages/browser-integration-tests/suites/feedback/captureFeedbackAndReplay/hasSampling/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,6 @@ sentryTest('should capture feedback', async ({ forceFlushReplay, getLocalTestUrl
3131
}
3232
});
3333

34-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
35-
return route.fulfill({
36-
status: 200,
37-
contentType: 'application/json',
38-
body: JSON.stringify({ id: 'test-id' }),
39-
});
40-
});
41-
4234
const url = await getLocalTestUrl({ testDir: __dirname });
4335

4436
await Promise.all([page.goto(url), page.getByText('Report a Bug').click(), reqPromise0]);

dev-packages/browser-integration-tests/suites/feedback/captureFeedbackCsp/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,6 @@ sentryTest('should capture feedback', async ({ getLocalTestUrl, page }) => {
2323
}
2424
});
2525

26-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
27-
return route.fulfill({
28-
status: 200,
29-
contentType: 'application/json',
30-
body: JSON.stringify({ id: 'test-id' }),
31-
});
32-
});
33-
3426
const url = await getLocalTestUrl({ testDir: __dirname });
3527

3628
await page.goto(url);

dev-packages/browser-integration-tests/suites/feedback/logger/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,6 @@ sentryTest('should log error correctly', async ({ getLocalTestUrl, page }) => {
1919
messages.push(message.text());
2020
});
2121

22-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
23-
return route.fulfill({
24-
status: 200,
25-
contentType: 'application/json',
26-
body: JSON.stringify({ id: 'test-id' }),
27-
});
28-
});
29-
3022
const url = await getLocalTestUrl({ testDir: __dirname });
3123

3224
await page.goto(url);

dev-packages/browser-integration-tests/suites/integrations/captureConsole/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,6 @@ import { getMultipleSentryEnvelopeRequests } from '../../../utils/helpers';
77
sentryTest('it captures console messages correctly', async ({ getLocalTestUrl, page }) => {
88
const url = await getLocalTestUrl({ testDir: __dirname });
99

10-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
11-
return route.fulfill({
12-
status: 200,
13-
contentType: 'application/json',
14-
body: JSON.stringify({ id: 'test-id' }),
15-
});
16-
});
17-
1810
const [, events] = await Promise.all([page.goto(url), getMultipleSentryEnvelopeRequests<Event>(page, 7)]);
1911

2012
expect(events).toHaveLength(7);

0 commit comments

Comments
 (0)