Skip to content

Commit 069731b

Browse files
author
Luca Forstner
authored
Merge branch 'develop' into lforst-connected-traces-servercomponents
2 parents ca8a250 + cf430fe commit 069731b

File tree

118 files changed

+2354
-291
lines changed

Some content is hidden

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

118 files changed

+2354
-291
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,17 @@
44

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

7+
## 7.41.0
8+
9+
- feat: Ensure we use the same default `environment` everywhere (#7327)
10+
- feat(profiling): Add JS self profiling in the browser (#7273)
11+
- feat(vue): Allow to set `routeLabel: 'path'` to opt-out of using name (#7326)
12+
- fix(profiling): Guard from throwing if profiler constructor throws (#7328)
13+
- fix(react): Use namespace import for react router v6 (#7330)
14+
- fix(remix): Correctly parse `X-Forwarded-For` Http header (#7329)
15+
16+
Work in this release contributed by @OliverJAsh. Thank you for your contribution!
17+
718
## 7.40.0
819

920
- feat(nextjs): Automatically resolve source of errors in dev mode (#7294)

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ package. Please refer to the README and instructions of those SDKs for more deta
5252
integrations for Express
5353
- [`@sentry/angular`](https://github.com/getsentry/sentry-javascript/tree/master/packages/angular): Browser SDK with
5454
Angular integration enabled
55+
- [`@sentry/angular-ivy`](https://github.com/getsentry/sentry-javascript/tree/master/packages/angular-ivy): Browser SDK with
56+
Angular integration enabled including native support for Angular's Ivy rendering engine.
5557
- [`@sentry/ember`](https://github.com/getsentry/sentry-javascript/tree/master/packages/ember): Browser SDK with Ember
5658
integration enabled
5759
- [`@sentry/react`](https://github.com/getsentry/sentry-javascript/tree/master/packages/react): Browser SDK with React

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
3-
"version": "7.40.0",
3+
"version": "7.41.0",
44
"npmClient": "yarn",
55
"useWorkspaces": true
66
}

packages/angular-ivy/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66

77
# Official Sentry SDK for Angular with Ivy Compatibility
88

9+
[![npm version](https://img.shields.io/npm/v/@sentry/angular-ivy.svg)](https://www.npmjs.com/package/@sentry/angular-ivy)
10+
[![npm dm](https://img.shields.io/npm/dm/@sentry/angular-ivy.svg)](https://www.npmjs.com/package/@sentry/angular-ivy)
11+
[![npm dt](https://img.shields.io/npm/dt/@sentry/angular-ivy.svg)](https://www.npmjs.com/package/@sentry/angular-ivy)
12+
913
## Links
1014

1115
- [Official SDK Docs](https://docs.sentry.io/platforms/javascript/angular/)
1216

1317
## Angular Version Compatibility
1418

15-
**Note**: This SDK is still experimental and not yet stable.
16-
We do not yet make guarantees in terms of breaking changes, version compatibilities or semver.
17-
Please open a Github issue if you experience bugs or would like to share feedback.
18-
1919
This SDK officially supports Angular 12-15 with Angular's new rendering engine, Ivy.
2020

2121
If you're using Angular 10, 11 or a newer Angular version with View Engine instead of Ivy, please use [`@sentry/angular`](https://github.com/getsentry/sentry-javascript/blob/develop/packages/angular/README.md).

packages/angular-ivy/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry/angular-ivy",
3-
"version": "7.40.0",
3+
"version": "7.41.0",
44
"description": "Official Sentry SDK for Angular with full Ivy Support",
55
"repository": "git://github.com/getsentry/sentry-javascript.git",
66
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/angular-ivy",
@@ -21,9 +21,9 @@
2121
"rxjs": "^6.5.5 || ^7.x"
2222
},
2323
"dependencies": {
24-
"@sentry/browser": "7.40.0",
25-
"@sentry/types": "7.40.0",
26-
"@sentry/utils": "7.40.0",
24+
"@sentry/browser": "7.41.0",
25+
"@sentry/types": "7.41.0",
26+
"@sentry/utils": "7.41.0",
2727
"tslib": "^2.3.0"
2828
},
2929
"devDependencies": {

packages/angular/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66

77
# Official Sentry SDK for Angular
88

9+
[![npm version](https://img.shields.io/npm/v/@sentry/angular.svg)](https://www.npmjs.com/package/@sentry/angular)
10+
[![npm dm](https://img.shields.io/npm/dm/@sentry/angular.svg)](https://www.npmjs.com/package/@sentry/angular)
11+
[![npm dt](https://img.shields.io/npm/dt/@sentry/angular.svg)](https://www.npmjs.com/package/@sentry/angular)
12+
913
## Links
1014

1115
- [Official SDK Docs](https://docs.sentry.io/platforms/javascript/angular/)

packages/angular/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry/angular",
3-
"version": "7.40.0",
3+
"version": "7.41.0",
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,9 +21,9 @@
2121
"rxjs": "^6.5.5 || ^7.x"
2222
},
2323
"dependencies": {
24-
"@sentry/browser": "7.40.0",
25-
"@sentry/types": "7.40.0",
26-
"@sentry/utils": "7.40.0",
24+
"@sentry/browser": "7.41.0",
25+
"@sentry/types": "7.41.0",
26+
"@sentry/utils": "7.41.0",
2727
"tslib": "^2.0.0"
2828
},
2929
"devDependencies": {

packages/browser/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry/browser",
3-
"version": "7.40.0",
3+
"version": "7.41.0",
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",
@@ -16,10 +16,10 @@
1616
"access": "public"
1717
},
1818
"dependencies": {
19-
"@sentry/core": "7.40.0",
20-
"@sentry/replay": "7.40.0",
21-
"@sentry/types": "7.40.0",
22-
"@sentry/utils": "7.40.0",
19+
"@sentry/core": "7.41.0",
20+
"@sentry/replay": "7.41.0",
21+
"@sentry/types": "7.41.0",
22+
"@sentry/utils": "7.41.0",
2323
"tslib": "^1.9.3"
2424
},
2525
"devDependencies": {

packages/browser/src/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,8 @@ export { Replay } from '@sentry/replay';
3232
// __ROLLUP_EXCLUDE_OFFLINE_FROM_BUNDLES_BEGIN__
3333
export { makeBrowserOfflineTransport } from './transports/offline';
3434
// __ROLLUP_EXCLUDE_OFFLINE_FROM_BUNDLES_END__
35+
36+
// __ROLLUP_EXCLUDE_BROWSER_PROFILING_FROM_BUNDLES_BEGIN__
37+
export { onProfilingStartRouteTransaction } from './profiling/hubextensions';
38+
export { BrowserProfilingIntegration } from './profiling/integration';
39+
// __ROLLUP_EXCLUDE_BROWSER_PROFILING_FROM_BUNDLES_END__
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import type { Event } from '@sentry/types';
2+
3+
/**
4+
* Creates a cache that evicts keys in fifo order
5+
* @param size {Number}
6+
*/
7+
export function makeProfilingCache<Key extends string, Value extends Event>(
8+
size: number,
9+
): {
10+
get: (key: Key) => Value | undefined;
11+
add: (key: Key, value: Value) => void;
12+
delete: (key: Key) => boolean;
13+
clear: () => void;
14+
size: () => number;
15+
} {
16+
// Maintain a fifo queue of keys, we cannot rely on Object.keys as the browser may not support it.
17+
let evictionOrder: Key[] = [];
18+
let cache: Record<string, Value> = {};
19+
20+
return {
21+
add(key: Key, value: Value) {
22+
while (evictionOrder.length >= size) {
23+
// shift is O(n) but this is small size and only happens if we are
24+
// exceeding the cache size so it should be fine.
25+
const evictCandidate = evictionOrder.shift();
26+
27+
if (evictCandidate !== undefined) {
28+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
29+
delete cache[evictCandidate];
30+
}
31+
}
32+
33+
// in case we have a collision, delete the old key.
34+
if (cache[key]) {
35+
this.delete(key);
36+
}
37+
38+
evictionOrder.push(key);
39+
cache[key] = value;
40+
},
41+
clear() {
42+
cache = {};
43+
evictionOrder = [];
44+
},
45+
get(key: Key): Value | undefined {
46+
return cache[key];
47+
},
48+
size() {
49+
return evictionOrder.length;
50+
},
51+
// Delete cache key and return true if it existed, false otherwise.
52+
delete(key: Key): boolean {
53+
if (!cache[key]) {
54+
return false;
55+
}
56+
57+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
58+
delete cache[key];
59+
60+
for (let i = 0; i < evictionOrder.length; i++) {
61+
if (evictionOrder[i] === key) {
62+
evictionOrder.splice(i, 1);
63+
break;
64+
}
65+
}
66+
67+
return true;
68+
},
69+
};
70+
}
71+
72+
export const PROFILING_EVENT_CACHE = makeProfilingCache<string, Event>(20);

0 commit comments

Comments
 (0)