Skip to content

Commit 1bc2897

Browse files
authored
Merge branch 'develop' into onur/supabase-integration
2 parents 33c2a66 + f3b9067 commit 1bc2897

File tree

60 files changed

+488
-370
lines changed

Some content is hidden

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

60 files changed

+488
-370
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010

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

13+
## 9.10.1
14+
15+
- fix: Correct @sentry-internal/feedback docs to match the code ([#15874](https://github.com/getsentry/sentry-javascript/pull/15874))
16+
- deps: Bump bundler plugins to version `3.2.4` ([#15909](https://github.com/getsentry/sentry-javascript/pull/15909))
17+
1318
## 9.10.0
1419

1520
### Important Changes

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry-internal/browser-integration-tests",
3-
"version": "9.10.0",
3+
"version": "9.10.1",
44
"main": "index.js",
55
"license": "MIT",
66
"engines": {

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry-internal/bundle-analyzer-scenarios",
3-
"version": "9.10.0",
3+
"version": "9.10.1",
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",

dev-packages/clear-cache-gh-action/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@sentry-internal/clear-cache-gh-action",
33
"description": "An internal Github Action to clear GitHub caches.",
4-
"version": "9.10.0",
4+
"version": "9.10.1",
55
"license": "MIT",
66
"engines": {
77
"node": ">=18"

dev-packages/e2e-tests/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry-internal/e2e-tests",
3-
"version": "9.10.0",
3+
"version": "9.10.1",
44
"license": "MIT",
55
"private": true,
66
"scripts": {

dev-packages/external-contributor-gh-action/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@sentry-internal/external-contributor-gh-action",
33
"description": "An internal Github Action to add external contributors to the CHANGELOG.md file.",
4-
"version": "9.10.0",
4+
"version": "9.10.1",
55
"license": "MIT",
66
"engines": {
77
"node": ">=18"

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry-internal/node-integration-tests",
3-
"version": "9.10.0",
3+
"version": "9.10.1",
44
"license": "MIT",
55
"engines": {
66
"node": ">=18"
@@ -30,9 +30,9 @@
3030
"@nestjs/common": "10.4.6",
3131
"@nestjs/core": "10.4.6",
3232
"@nestjs/platform-express": "10.4.6",
33-
"@sentry/aws-serverless": "9.10.0",
34-
"@sentry/core": "9.10.0",
35-
"@sentry/node": "9.10.0",
33+
"@sentry/aws-serverless": "9.10.1",
34+
"@sentry/core": "9.10.1",
35+
"@sentry/node": "9.10.1",
3636
"@types/mongodb": "^3.6.20",
3737
"@types/mysql": "^2.15.21",
3838
"@types/pg": "^8.6.5",

dev-packages/rollup-utils/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry-internal/rollup-utils",
3-
"version": "9.10.0",
3+
"version": "9.10.1",
44
"description": "Rollup utilities used at Sentry for the Sentry JavaScript SDK",
55
"repository": "git://github.com/getsentry/sentry-javascript.git",
66
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/rollup-utils",

dev-packages/size-limit-gh-action/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@sentry-internal/size-limit-gh-action",
33
"description": "An internal Github Action to compare the current size of a PR against the one on develop.",
4-
"version": "9.10.0",
4+
"version": "9.10.1",
55
"license": "MIT",
66
"engines": {
77
"node": ">=18"

dev-packages/test-utils/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"private": true,
3-
"version": "9.10.0",
3+
"version": "9.10.1",
44
"name": "@sentry-internal/test-utils",
55
"author": "Sentry",
66
"license": "MIT",
@@ -45,7 +45,7 @@
4545
},
4646
"devDependencies": {
4747
"@playwright/test": "~1.50.0",
48-
"@sentry/core": "9.10.0"
48+
"@sentry/core": "9.10.1"
4949
},
5050
"volta": {
5151
"extends": "../../package.json"

lerna.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
3-
"version": "9.10.0",
3+
"version": "9.10.1",
44
"npmClient": "yarn"
55
}

packages/angular/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry/angular",
3-
"version": "9.10.0",
3+
"version": "9.10.1",
44
"description": "Official Sentry SDK for Angular",
55
"repository": "git://github.com/getsentry/sentry-javascript.git",
66
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/angular",
@@ -21,8 +21,8 @@
2121
"rxjs": "^6.5.5 || ^7.x"
2222
},
2323
"dependencies": {
24-
"@sentry/browser": "9.10.0",
25-
"@sentry/core": "9.10.0",
24+
"@sentry/browser": "9.10.1",
25+
"@sentry/core": "9.10.1",
2626
"tslib": "^2.4.1"
2727
},
2828
"devDependencies": {

packages/astro/package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry/astro",
3-
"version": "9.10.0",
3+
"version": "9.10.1",
44
"description": "Official Sentry SDK for Astro",
55
"repository": "git://github.com/getsentry/sentry-javascript.git",
66
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/astro",
@@ -56,9 +56,9 @@
5656
"astro": ">=3.x || >=4.0.0-beta || >=5.x"
5757
},
5858
"dependencies": {
59-
"@sentry/browser": "9.10.0",
60-
"@sentry/core": "9.10.0",
61-
"@sentry/node": "9.10.0",
59+
"@sentry/browser": "9.10.1",
60+
"@sentry/core": "9.10.1",
61+
"@sentry/node": "9.10.1",
6262
"@sentry/vite-plugin": "^2.22.6"
6363
},
6464
"devDependencies": {

packages/aws-serverless/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry/aws-serverless",
3-
"version": "9.10.0",
3+
"version": "9.10.1",
44
"description": "Official Sentry SDK for AWS Lambda and AWS Serverless Environments",
55
"repository": "git://github.com/getsentry/sentry-javascript.git",
66
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/serverless",
@@ -68,8 +68,8 @@
6868
"@opentelemetry/instrumentation": "^0.57.2",
6969
"@opentelemetry/instrumentation-aws-lambda": "0.50.3",
7070
"@opentelemetry/instrumentation-aws-sdk": "0.49.1",
71-
"@sentry/core": "9.10.0",
72-
"@sentry/node": "9.10.0",
71+
"@sentry/core": "9.10.1",
72+
"@sentry/node": "9.10.1",
7373
"@types/aws-lambda": "^8.10.62"
7474
},
7575
"devDependencies": {

packages/browser-utils/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry-internal/browser-utils",
3-
"version": "9.10.0",
3+
"version": "9.10.1",
44
"description": "Browser Utilities for all Sentry JavaScript SDKs",
55
"repository": "git://github.com/getsentry/sentry-javascript.git",
66
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/browser-utils",
@@ -39,7 +39,7 @@
3939
"access": "public"
4040
},
4141
"dependencies": {
42-
"@sentry/core": "9.10.0"
42+
"@sentry/core": "9.10.1"
4343
},
4444
"scripts": {
4545
"build": "run-p build:transpile build:types",

packages/browser/package.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry/browser",
3-
"version": "9.10.0",
3+
"version": "9.10.1",
44
"description": "Official Sentry SDK for browsers",
55
"repository": "git://github.com/getsentry/sentry-javascript.git",
66
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/browser",
@@ -39,14 +39,14 @@
3939
"access": "public"
4040
},
4141
"dependencies": {
42-
"@sentry-internal/browser-utils": "9.10.0",
43-
"@sentry-internal/feedback": "9.10.0",
44-
"@sentry-internal/replay": "9.10.0",
45-
"@sentry-internal/replay-canvas": "9.10.0",
46-
"@sentry/core": "9.10.0"
42+
"@sentry-internal/browser-utils": "9.10.1",
43+
"@sentry-internal/feedback": "9.10.1",
44+
"@sentry-internal/replay": "9.10.1",
45+
"@sentry-internal/replay-canvas": "9.10.1",
46+
"@sentry/core": "9.10.1"
4747
},
4848
"devDependencies": {
49-
"@sentry-internal/integration-shims": "9.10.0",
49+
"@sentry-internal/integration-shims": "9.10.1",
5050
"fake-indexeddb": "^4.0.1"
5151
},
5252
"scripts": {

packages/browser/src/client.ts

+31-3
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,14 @@ import {
1515
addAutoIpAddressToUser,
1616
applySdkMetadata,
1717
getSDKSource,
18+
_INTERNAL_flushLogsBuffer,
1819
} from '@sentry/core';
1920
import { eventFromException, eventFromMessage } from './eventbuilder';
2021
import { WINDOW } from './helpers';
2122
import type { BrowserTransportOptions } from './transports/types';
2223

24+
const DEFAULT_FLUSH_INTERVAL = 5000;
25+
2326
/**
2427
* Configuration options for the Sentry Browser SDK.
2528
* @see @sentry/core Options for more information.
@@ -65,6 +68,7 @@ export type BrowserClientOptions = ClientOptions<BrowserTransportOptions> &
6568
* @see SentryClient for usage documentation.
6669
*/
6770
export class BrowserClient extends Client<BrowserClientOptions> {
71+
private _logFlushIdleTimeout: ReturnType<typeof setTimeout> | undefined;
6872
/**
6973
* Creates a new Browser SDK instance.
7074
*
@@ -81,17 +85,41 @@ export class BrowserClient extends Client<BrowserClientOptions> {
8185

8286
super(opts);
8387

88+
// eslint-disable-next-line @typescript-eslint/no-this-alias
89+
const client = this;
90+
const { sendDefaultPii, _experiments } = client._options;
91+
const enableLogs = _experiments?.enableLogs;
92+
8493
if (opts.sendClientReports && WINDOW.document) {
8594
WINDOW.document.addEventListener('visibilitychange', () => {
8695
if (WINDOW.document.visibilityState === 'hidden') {
8796
this._flushOutcomes();
97+
if (enableLogs) {
98+
_INTERNAL_flushLogsBuffer(client);
99+
}
88100
}
89101
});
90102
}
91103

92-
if (this._options.sendDefaultPii) {
93-
this.on('postprocessEvent', addAutoIpAddressToUser);
94-
this.on('beforeSendSession', addAutoIpAddressToSession);
104+
if (enableLogs) {
105+
client.on('flush', () => {
106+
_INTERNAL_flushLogsBuffer(client);
107+
});
108+
109+
client.on('afterCaptureLog', () => {
110+
if (client._logFlushIdleTimeout) {
111+
clearTimeout(client._logFlushIdleTimeout);
112+
}
113+
114+
client._logFlushIdleTimeout = setTimeout(() => {
115+
_INTERNAL_flushLogsBuffer(client);
116+
}, DEFAULT_FLUSH_INTERVAL);
117+
});
118+
}
119+
120+
if (sendDefaultPii) {
121+
client.on('postprocessEvent', addAutoIpAddressToUser);
122+
client.on('beforeSendSession', addAutoIpAddressToSession);
95123
}
96124
}
97125

packages/browser/src/log.ts

+3-58
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,5 @@
1-
import type { LogSeverityLevel, Log, Client, ParameterizedString } from '@sentry/core';
2-
import { getClient, _INTERNAL_captureLog, _INTERNAL_flushLogsBuffer } from '@sentry/core';
3-
4-
import { WINDOW } from './helpers';
5-
6-
/**
7-
* TODO: Make this configurable
8-
*/
9-
const DEFAULT_FLUSH_INTERVAL = 5000;
10-
11-
let timeout: ReturnType<typeof setTimeout> | undefined;
12-
13-
/**
14-
* This is a global timeout that is used to flush the logs buffer.
15-
* It is used to ensure that logs are flushed even if the client is not flushed.
16-
*/
17-
function startFlushTimeout(client: Client): void {
18-
if (timeout) {
19-
clearTimeout(timeout);
20-
}
21-
22-
timeout = setTimeout(() => {
23-
_INTERNAL_flushLogsBuffer(client);
24-
}, DEFAULT_FLUSH_INTERVAL);
25-
}
26-
27-
let isClientListenerAdded = false;
28-
/**
29-
* This is a function that is used to add a flush listener to the client.
30-
* It is used to ensure that the logger buffer is flushed when the client is flushed.
31-
*/
32-
function addFlushingListeners(client: Client): void {
33-
if (isClientListenerAdded || !client.getOptions()._experiments?.enableLogs) {
34-
return;
35-
}
36-
37-
isClientListenerAdded = true;
38-
39-
if (WINDOW.document) {
40-
WINDOW.document.addEventListener('visibilitychange', () => {
41-
if (WINDOW.document.visibilityState === 'hidden') {
42-
_INTERNAL_flushLogsBuffer(client);
43-
}
44-
});
45-
}
46-
47-
client.on('flush', () => {
48-
_INTERNAL_flushLogsBuffer(client);
49-
});
50-
}
1+
import type { LogSeverityLevel, Log, ParameterizedString } from '@sentry/core';
2+
import { _INTERNAL_captureLog } from '@sentry/core';
513

524
/**
535
* Capture a log with the given level.
@@ -63,14 +15,7 @@ function captureLog(
6315
attributes?: Log['attributes'],
6416
severityNumber?: Log['severityNumber'],
6517
): void {
66-
const client = getClient();
67-
if (client) {
68-
addFlushingListeners(client);
69-
70-
startFlushTimeout(client);
71-
}
72-
73-
_INTERNAL_captureLog({ level, message, attributes, severityNumber }, client, undefined);
18+
_INTERNAL_captureLog({ level, message, attributes, severityNumber });
7419
}
7520

7621
/**

0 commit comments

Comments
 (0)