8000
We read every piece of feedback, and take your input very seriously.
2 parents 6930d84 + 754b082 commit 8c6ea3fCopy full SHA for 8c6ea3f
.craft.yml
@@ -1,6 +1,11 @@
1
minVersion: '0.23.1'
2
changelogPolicy: simple
3
preReleaseCommand: bash scripts/craft-pre-release.sh
4
+statusProvider:
5
+ name: github
6
+ config:
7
+ contexts:
8
+ - All required tests passed or skipped
9
targets:
10
# NPM Targets
11
## 1. Base Packages, node or browser SDKs depend on
CHANGELOG.md
@@ -4,6 +4,22 @@
- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott
+## 7.61.1
+
+- feat(nextjs): Add `AsyncLocalStorage` async context strategy to edge SDK (#8720)
+- fix(core): Filter internal API frames for synthetic frames (#8710)
+- fix(integrations): Capture exception if any arg to console method is an error (#8671)
12
+- fix(node-experimental): Update auto integration lookup & readme (#8690)
13
+- fix(node): Add availablility check on current hub to Node `ContextLines` integration (#8715)
14
+- fix(replay): Ensure buffer sessions end after capturing an error (#8713)
15
+- fix(replay): Ensure buffer->session switch is reliable (#8712)
16
+- fix(replay): Ensure we debounce flush if replay too short (#8716)
17
+- fix(replay): Improve capture of errorIds/traceIds (#8678)
18
+- fix(tracing): Set correct parent span id on fetch sentry-trace header (#8687)
19
+- fix(utils): Avoid `pre_context` and `context_line` overlap if frame lineno is out of bounds (#8722)
20
+- ref(replay): Improve status logging (#8709)
21
+- ref(nextjs): Allow withSentryConfig to accept async config function (#8721)
22
23
## 7.61.0
24
25
### Important Changes
packages/angular/src/errorhandler.ts
@@ -83,9 +83,11 @@ class SentryErrorHandler implements AngularErrorHandler {
83
protected readonly _options: ErrorHandlerOptions;
84
85
/* indicates if we already registered our the afterSendEvent handler */
86
- private _registeredAfterSendEventHandler = false;
+ private _registeredAfterSendEventHandler;
87
88
public constructor(@Inject('errorHandlerOptions') options?: ErrorHandlerOptions) {
89
+ this._registeredAfterSendEventHandler = false;
90
91
this._options = {
92
logErrors: true,
93
...options,
packages/angular/src/tracing.ts
@@ -145,11 +145,14 @@ export class TraceService implements OnDestroy {
145
}),
146
);
147
148
- private _routingSpan: Span | null = null;
+ private _routingSpan: Span | null;
149
150
- private _subscription: Subscription = new Subscription();
+ private _subscription: Subscription;
151
152
public constructor(private readonly _router: Router) {
153
+ this._routingSpan = null;
154
+ this._subscription = new Subscription();
155
156
this._subscription.add(this.navStart$.subscribe());
157
this._subscription.add(this.resEnd$.subscribe());
158
this._subscription.add(this.navEnd$.subscribe());
packages/browser-integration-tests/suites/replay/customEvents/template.html
@@ -4,7 +4,7 @@
<meta charset="utf-8" />
</head>
<body>
- <div role="button" id="error" class="btn btn-error" aria-label="An Error">An Error</div>
+ <div role="button" id="error" class="btn btn-error" aria-label="An Error in aria-label">An Error</div>
<button title="Button title">
<img id="img" alt="Alt Text" />
</button>
packages/browser-integration-tests/suites/replay/customEvents/test.ts
@@ -112,12 +112,12 @@ sentryTest(
112
expect.arrayContaining([
113
{
114
...expectedClickBreadcrumb,
115
- message: 'body > div#error.btn.btn-error[aria-label="An Error"]',
+ message: 'body > div#error.btn.btn-error[aria-label="An Error in aria-label"]',
116
data: {
117
nodeId: expect.any(Number),
118
node: {
119
attributes: {
120
- 'aria-label': '** *****',
+ 'aria-label': '** ***** ** **********',
121
class: 'btn btn-error',
122
id: 'error',
123
role: 'button',
packages/browser-integration-tests/suites/replay/privacyBlock/template.html
@@ -11,6 +11,9 @@
<input placeholder="Placeholder should be masked" />
<div title="Title should be masked">Title should be masked</div>
<svg style="width:200px;height:200px" viewBox="0 0 80 80"><path d=""/><area /><rect /></svg>
+ <div data-sentry-block>
+ <div>This should be blocked</div>
+ </div>
<svg style="width:200px;height:200px" viewBox="0 0 80 80" data-sentry-unblock><path d=""/><area /><rect /></svg>
<img style="width:100px;height:100px" src="file:///none.png" />
<img data-sentry-unblock style="width:100px;height:100px" src="file:///none.png" />
packages/browser-integration-tests/suites/replay/privacyBlock/test.ts-snapshots/privacy-chromium.json
@@ -194,6 +194,21 @@
194
"textContent": "\n ",
195
"id": 28
196
},
197
+ {
198
+ "type": 2,
199
+ "tagName": "div",
200
+ "attributes": {
201
+ "rr_width": "[1250-1300]px",
202
+ "rr_height": "[0-50]px"
203
+ },
204
+ "childNodes" 10000 : [],
205
+ "id": 29
206
207
208
+ "type": 3,
209
+ "textContent": "\n ",
210
+ "id": 30
211
212
213
"type": 2,
214
"tagName": "svg",
@@ -211,32 +226,32 @@
226
227
"childNodes": [],
228
"isSVG": true,
- "id": 30
229
+ "id": 32
215
230
216
231
217
232
218
233
"tagName": "area",
219
234
"attributes": {},
220
235
221
236
222
- "id": 31
237
+ "id": 33
223
238
224
239
225
240
241
"tagName": "rect",
242
243
244
- "id": 32
245
+ "id": 34
246
}
247
],
248
- "id": 29
249
+ "id": 31
250
251
252
"type": 3,
253
- "id": 33
254
+ "id": 35
255
256
257
@@ -246,12 +261,12 @@
261
"src": "file:///none.png"
262
263
- "id": 34
264
+ "id": 36
265
266
267
268
- "id": 35
269
+ "id": 37
270
271
272
@@ -262,12 +277,12 @@
277
278
279
- "id": 36
280
+ "id": 38
281
282
283
284
- "id": 37
285
+ "id": 39
286
287
273
288
@@ -277,12 +292,12 @@
292
"rr_height": "[0-50]px"
293
294
- "id": 38
295
+ "id": 40
296
297
298
299
- "id": 39
300
+ "id": 41
301
302
303
@@ -293,17 +308,17 @@
308
309
310
- "id": 40
311
+ "id": 42
312
313
314
315
- "id": 41
316
+ "id": 43
317
318
304
319
305
320
"textContent": "\n\n",
306
- "id": 42
321
+ "id": 44
307
322
323
324
"id": 8
packages/browser-integration-tests/suites/replay/privacyBlock/test.ts-snapshots/privacy-webkit.json
+ "childNodes": [],
"tagName": 10000 "svg",
packages/browser-integration-tests/suites/replay/privacyDefault/template.html
@@ -9,6 +9,7 @@
<div>This should be masked by default</div>
<div data-sentry-unmask>This should be unmasked due to data attribute</div>
+ <input data-sentry-unmask placeholder="Placeholder can be unmasked" />