@proappstore/sdk 1.16.81 → 1.16.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -3
- package/dist/actions.d.ts +18 -2
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +66 -13
- package/dist/actions.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -4
- package/dist/index.js.map +1 -1
- package/dist/logs.d.ts +97 -3
- package/dist/logs.d.ts.map +1 -1
- package/dist/logs.js +315 -25
- package/dist/logs.js.map +1 -1
- package/dist/rooms.d.ts +21 -2
- package/dist/rooms.d.ts.map +1 -1
- package/dist/rooms.js +53 -3
- package/dist/rooms.js.map +1 -1
- package/dist/sdk-version.js +1 -1
- package/dist/shell-resilience.d.ts.map +1 -1
- package/dist/shell-resilience.js +3 -7
- package/dist/shell-resilience.js.map +1 -1
- package/dist/telemetry-transport.d.ts +17 -0
- package/dist/telemetry-transport.d.ts.map +1 -1
- package/dist/telemetry-transport.js +23 -9
- package/dist/telemetry-transport.js.map +1 -1
- package/package.json +1 -1
package/dist/logs.js
CHANGED
|
@@ -15,13 +15,17 @@
|
|
|
15
15
|
* SSR-safe.
|
|
16
16
|
* - **Silent.** No throw path, ever. A logger that breaks the app it observes is
|
|
17
17
|
* worse than no logger.
|
|
18
|
-
* - **Backs off instead of retrying.** The server answers 202 when an
|
|
19
|
-
* its budget;
|
|
18
|
+
* - **Backs off instead of retrying into a flood.** The server answers 202 when an
|
|
19
|
+
* app is over its budget; the SDK goes quiet (see `COOLDOWN_MS`). Only a
|
|
20
|
+
* transient failure (network, timeout, 5xx) is retried, a few times with
|
|
21
|
+
* backoff and within a TTL (#392); offline, the queue waits for `online`.
|
|
22
|
+
* - **Best effort.** The queue is bounded and lives in memory: a closed tab, a
|
|
23
|
+
* long outage or an over-budget app loses entries. `health()` says how many.
|
|
20
24
|
* - **Not a replacement for usage telemetry.** `app.usage` is unchanged; the two
|
|
21
25
|
* share only the transport.
|
|
22
26
|
*/
|
|
23
27
|
import { SDK_VERSION } from './sdk-version.js';
|
|
24
|
-
import {
|
|
28
|
+
import { sendTelemetry } from './telemetry-transport.js';
|
|
25
29
|
const AUTH_CATEGORIES = new Set(['auth.session_lost', 'auth.hydration_failure']);
|
|
26
30
|
const AUTH_REASONS = new Set(['api_401', 'explicit_sign_out', 'legacy_session_rejected', 'http_error', 'network_error']);
|
|
27
31
|
const AUTH_PHASES = new Set(['api_request', 'cookie_hydration', 'legacy_hydration', 'explicit_sign_out']);
|
|
@@ -48,6 +52,7 @@ function envelopeFields(ctx) {
|
|
|
48
52
|
out.durationMs = ctx.durationMs;
|
|
49
53
|
return out;
|
|
50
54
|
}
|
|
55
|
+
const BREADCRUMB_CATEGORIES = new Set(['navigation', 'ui', 'network', 'room', 'auth', 'action']);
|
|
51
56
|
const FLUSH_INTERVAL_MS = 10_000;
|
|
52
57
|
/** Matches the server's per-request cap; a full queue flushes immediately. */
|
|
53
58
|
const MAX_BATCH = 100;
|
|
@@ -56,6 +61,23 @@ const MAX_QUEUE = 200;
|
|
|
56
61
|
/** How long to stay quiet after the server says we are over budget. */
|
|
57
62
|
const COOLDOWN_MS = 60_000;
|
|
58
63
|
const MESSAGE_MAX = 4096;
|
|
64
|
+
/** Backoff before each retry of a batch that failed transiently. */
|
|
65
|
+
const RETRY_DELAYS_MS = [1_000, 2_000, 4_000];
|
|
66
|
+
/** A batch still failing this long after its first failure is dropped, not retried. */
|
|
67
|
+
const RETRY_TTL_MS = 60_000;
|
|
68
|
+
const MAX_BREADCRUMBS = 50;
|
|
69
|
+
/** The most recent breadcrumbs attached to an error entry. */
|
|
70
|
+
const ATTACHED_BREADCRUMBS = 20;
|
|
71
|
+
const BREADCRUMB_MESSAGE_MAX = 200;
|
|
72
|
+
const BREADCRUMB_VALUE_MAX = 120;
|
|
73
|
+
const BREADCRUMB_DATA_KEYS = 8;
|
|
74
|
+
/** An identical entry among the last few queued is folded into it (`repeats`). */
|
|
75
|
+
const DEDUPE_WINDOW = 5;
|
|
76
|
+
/** Ingest keeps `data` up to 4 KB of JSON; leave room for its redaction. */
|
|
77
|
+
const DATA_BUDGET = 3500;
|
|
78
|
+
const STACK_MAX = 2500;
|
|
79
|
+
const MAX_CAUSE_DEPTH = 5;
|
|
80
|
+
const CAUSE_LINES = 4;
|
|
59
81
|
const CLIENT_ID_KEY = 'pas:client-id';
|
|
60
82
|
const LEVEL_ORDER = { debug: 0, info: 1, warn: 2, error: 3 };
|
|
61
83
|
/**
|
|
@@ -112,8 +134,7 @@ export function readOrCreateClientId() {
|
|
|
112
134
|
return null;
|
|
113
135
|
}
|
|
114
136
|
}
|
|
115
|
-
|
|
116
|
-
export function describeError(value) {
|
|
137
|
+
function describeOne(value) {
|
|
117
138
|
if (value instanceof Error) {
|
|
118
139
|
return { message: `${value.name}: ${value.message}`, stack: value.stack ?? undefined };
|
|
119
140
|
}
|
|
@@ -126,6 +147,61 @@ export function describeError(value) {
|
|
|
126
147
|
return { message: String(value) };
|
|
127
148
|
}
|
|
128
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Serialize an unknown thrown value into a message + stack. An Error's `cause`
|
|
152
|
+
* chain (#392, up to five levels) is appended to the stack as `Caused by:`
|
|
153
|
+
* sections, so a wrapped failure keeps its root. Bounded; never throws.
|
|
154
|
+
*/
|
|
155
|
+
export function describeError(value) {
|
|
156
|
+
const head = describeOne(value);
|
|
157
|
+
const causes = [];
|
|
158
|
+
try {
|
|
159
|
+
const seen = new Set([value]);
|
|
160
|
+
let cause = value instanceof Error ? value.cause : undefined;
|
|
161
|
+
for (let depth = 0; cause !== undefined && cause !== null && depth < MAX_CAUSE_DEPTH && !seen.has(cause); depth++) {
|
|
162
|
+
seen.add(cause);
|
|
163
|
+
const described = describeOne(cause);
|
|
164
|
+
// The message and the top frames: enough to place the root, small enough to keep every level.
|
|
165
|
+
causes.push(`Caused by: ${(described.stack ?? described.message).split('\n').slice(0, CAUSE_LINES).join('\n')}`);
|
|
166
|
+
cause = cause instanceof Error ? cause.cause : undefined;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
// A hostile `cause` getter: keep what we have.
|
|
171
|
+
}
|
|
172
|
+
if (!head.stack && causes.length === 0)
|
|
173
|
+
return { message: head.message };
|
|
174
|
+
const tail = causes.join('\n').slice(0, STACK_MAX);
|
|
175
|
+
// The outer stack gives way first, so the root cause always survives the cap.
|
|
176
|
+
const outer = head.stack ? head.stack.slice(0, Math.max(0, STACK_MAX - tail.length - 1)) : '';
|
|
177
|
+
return { message: head.message, stack: [outer, tail].filter(Boolean).join('\n') };
|
|
178
|
+
}
|
|
179
|
+
/** Category of a render error a React error boundary caught. */
|
|
180
|
+
export const REACT_ERROR_CATEGORY = 'react.error-boundary';
|
|
181
|
+
/**
|
|
182
|
+
* The entry for a render error a React error boundary caught: the message and
|
|
183
|
+
* stack (with causes), the component stack and the path. Shared by ProShell's
|
|
184
|
+
* boundary and {@link Logs.captureReactError}, so both read the same.
|
|
185
|
+
*/
|
|
186
|
+
export function describeReactError(error, componentStack) {
|
|
187
|
+
const described = describeError(error);
|
|
188
|
+
return {
|
|
189
|
+
message: described.message,
|
|
190
|
+
data: {
|
|
191
|
+
stack: described.stack,
|
|
192
|
+
componentStack: componentStack ? componentStack.slice(0, STACK_MAX) : undefined,
|
|
193
|
+
path: typeof window === 'undefined' ? undefined : window.location?.pathname,
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
function isOffline() {
|
|
198
|
+
return typeof navigator !== 'undefined' && navigator.onLine === false;
|
|
199
|
+
}
|
|
200
|
+
function isPlainObject(value) {
|
|
201
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
202
|
+
}
|
|
203
|
+
/** The logger that owns auto-capture for each app id, so a second init does not double it. */
|
|
204
|
+
const activeLoggers = new Map();
|
|
129
205
|
export class Logs {
|
|
130
206
|
appId;
|
|
131
207
|
apiBase;
|
|
@@ -145,6 +221,18 @@ export class Logs {
|
|
|
145
221
|
/** Guards against an error raised inside our own handler re-entering. */
|
|
146
222
|
capturing = false;
|
|
147
223
|
minLevel;
|
|
224
|
+
onOnline = null;
|
|
225
|
+
/** In-memory only, never persisted (#392). */
|
|
226
|
+
breadcrumbs = [];
|
|
227
|
+
/** Errors already recorded, so a caught-then-rethrown error is one event. */
|
|
228
|
+
reported = new WeakSet();
|
|
229
|
+
stats = { sent: 0, dropped: 0, duplicates: 0 };
|
|
230
|
+
/** A non-unload send is in flight: the next one waits for it. */
|
|
231
|
+
sending = false;
|
|
232
|
+
retryAttempt = 0;
|
|
233
|
+
retryStartedAt = 0;
|
|
234
|
+
retryAt = 0;
|
|
235
|
+
retryTimer = null;
|
|
148
236
|
constructor(appId, apiBase, auth, options = {}) {
|
|
149
237
|
this.appId = appId;
|
|
150
238
|
this.apiBase = apiBase;
|
|
@@ -156,9 +244,19 @@ export class Logs {
|
|
|
156
244
|
start() {
|
|
157
245
|
if (this.running || !hasBrowser())
|
|
158
246
|
return;
|
|
247
|
+
// A second init for the same app (StrictMode, HMR, a re-created instance)
|
|
248
|
+
// takes over auto-capture rather than registering every handler twice.
|
|
249
|
+
const previous = activeLoggers.get(this.appId);
|
|
250
|
+
if (previous && previous !== this) {
|
|
251
|
+
previous.flush();
|
|
252
|
+
previous.stop();
|
|
253
|
+
}
|
|
254
|
+
activeLoggers.set(this.appId, this);
|
|
159
255
|
this.running = true;
|
|
160
256
|
this.clientId = readOrCreateClientId();
|
|
161
257
|
this.onError = (event) => {
|
|
258
|
+
if (this.alreadyReported(event.error))
|
|
259
|
+
return;
|
|
162
260
|
const described = event.error
|
|
163
261
|
? describeError(event.error)
|
|
164
262
|
: { message: event.message || 'unknown error' };
|
|
@@ -170,6 +268,8 @@ export class Logs {
|
|
|
170
268
|
};
|
|
171
269
|
window.addEventListener('error', this.onError);
|
|
172
270
|
this.onRejection = (event) => {
|
|
271
|
+
if (this.alreadyReported(event.reason))
|
|
272
|
+
return;
|
|
173
273
|
const described = describeError(event.reason);
|
|
174
274
|
this.capture('error', 'unhandledrejection', described.message, {
|
|
175
275
|
stack: described.stack,
|
|
@@ -178,6 +278,12 @@ export class Logs {
|
|
|
178
278
|
window.addEventListener('unhandledrejection', this.onRejection);
|
|
179
279
|
this.onPageHide = () => this.flush();
|
|
180
280
|
window.addEventListener('pagehide', this.onPageHide);
|
|
281
|
+
// Offline, `send` holds the queue; back online, deliver it now.
|
|
282
|
+
this.onOnline = () => {
|
|
283
|
+
this.retryAt = 0;
|
|
284
|
+
void this.send(false);
|
|
285
|
+
};
|
|
286
|
+
window.addEventListener('online', this.onOnline);
|
|
181
287
|
this.timer = setInterval(() => {
|
|
182
288
|
void this.send(false);
|
|
183
289
|
}, FLUSH_INTERVAL_MS);
|
|
@@ -187,10 +293,16 @@ export class Logs {
|
|
|
187
293
|
if (!this.running)
|
|
188
294
|
return;
|
|
189
295
|
this.running = false;
|
|
296
|
+
if (activeLoggers.get(this.appId) === this)
|
|
297
|
+
activeLoggers.delete(this.appId);
|
|
190
298
|
if (this.timer) {
|
|
191
299
|
clearInterval(this.timer);
|
|
192
300
|
this.timer = null;
|
|
193
301
|
}
|
|
302
|
+
if (this.retryTimer) {
|
|
303
|
+
clearTimeout(this.retryTimer);
|
|
304
|
+
this.retryTimer = null;
|
|
305
|
+
}
|
|
194
306
|
if (hasBrowser()) {
|
|
195
307
|
if (this.onError)
|
|
196
308
|
window.removeEventListener('error', this.onError);
|
|
@@ -198,10 +310,13 @@ export class Logs {
|
|
|
198
310
|
window.removeEventListener('unhandledrejection', this.onRejection);
|
|
199
311
|
if (this.onPageHide)
|
|
200
312
|
window.removeEventListener('pagehide', this.onPageHide);
|
|
313
|
+
if (this.onOnline)
|
|
314
|
+
window.removeEventListener('online', this.onOnline);
|
|
201
315
|
}
|
|
202
316
|
this.onError = null;
|
|
203
317
|
this.onRejection = null;
|
|
204
318
|
this.onPageHide = null;
|
|
319
|
+
this.onOnline = null;
|
|
205
320
|
}
|
|
206
321
|
debug(message, data) {
|
|
207
322
|
this.capture('debug', 'app', message, data);
|
|
@@ -251,6 +366,54 @@ export class Logs {
|
|
|
251
366
|
get pending() {
|
|
252
367
|
return this.queue.length;
|
|
253
368
|
}
|
|
369
|
+
/** Delivery health: queued, sent and dropped entries, breadcrumbs, backpressure. */
|
|
370
|
+
health() {
|
|
371
|
+
return {
|
|
372
|
+
queued: this.queue.length,
|
|
373
|
+
sent: this.stats.sent,
|
|
374
|
+
dropped: this.stats.dropped,
|
|
375
|
+
duplicates: this.stats.duplicates,
|
|
376
|
+
breadcrumbs: this.breadcrumbs.length,
|
|
377
|
+
disabled: this.disabled,
|
|
378
|
+
quietUntil: this.quietUntil > Date.now() ? this.quietUntil : null,
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Record a breadcrumb (#392): a short, redacted note of what happened before a
|
|
383
|
+
* failure. Kept in a bounded in-memory buffer (the newest 50) and attached to
|
|
384
|
+
* the next error entries; never persisted and never sent on its own. Only the
|
|
385
|
+
* listed categories are kept, and `data` keeps up to eight primitive values —
|
|
386
|
+
* do not pass form text, DOM content, tokens or user data.
|
|
387
|
+
*/
|
|
388
|
+
addBreadcrumb(category, message, data) {
|
|
389
|
+
try {
|
|
390
|
+
if (!BREADCRUMB_CATEGORIES.has(category))
|
|
391
|
+
return;
|
|
392
|
+
const crumb = { ts: Date.now(), category, message: redactClient(String(message)).slice(0, BREADCRUMB_MESSAGE_MAX) };
|
|
393
|
+
if (isPlainObject(data)) {
|
|
394
|
+
const clean = {};
|
|
395
|
+
for (const key of Object.keys(data).slice(0, BREADCRUMB_DATA_KEYS)) {
|
|
396
|
+
const value = data[key];
|
|
397
|
+
if (typeof value === 'string')
|
|
398
|
+
clean[key] = redactClient(value).slice(0, BREADCRUMB_VALUE_MAX);
|
|
399
|
+
else if ((typeof value === 'number' && Number.isFinite(value)) || typeof value === 'boolean' || value === null)
|
|
400
|
+
clean[key] = value;
|
|
401
|
+
}
|
|
402
|
+
if (Object.keys(clean).length)
|
|
403
|
+
crumb.data = clean;
|
|
404
|
+
}
|
|
405
|
+
this.breadcrumbs.push(crumb);
|
|
406
|
+
if (this.breadcrumbs.length > MAX_BREADCRUMBS)
|
|
407
|
+
this.breadcrumbs.splice(0, this.breadcrumbs.length - MAX_BREADCRUMBS);
|
|
408
|
+
}
|
|
409
|
+
catch {
|
|
410
|
+
// Never let capture throw into app code.
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
/** Forget every breadcrumb. The SDK calls this when the signed-in user changes. */
|
|
414
|
+
clearBreadcrumbs() {
|
|
415
|
+
this.breadcrumbs = [];
|
|
416
|
+
}
|
|
254
417
|
/**
|
|
255
418
|
* Queue one entry.
|
|
256
419
|
*
|
|
@@ -266,12 +429,27 @@ export class Logs {
|
|
|
266
429
|
return;
|
|
267
430
|
this.capturing = true;
|
|
268
431
|
try {
|
|
432
|
+
const redactedMessage = redactClient(String(message)).slice(0, MESSAGE_MAX);
|
|
433
|
+
// An error loop repeats one fault: fold it into the queued entry. Not for
|
|
434
|
+
// request-correlated entries — each failed call keeps its own trace.
|
|
435
|
+
if (!context?.spanId) {
|
|
436
|
+
const twin = this.queue.slice(-DEDUPE_WINDOW).find((e) => !e.spanId && e.level === level && e.category === category && e.message === redactedMessage);
|
|
437
|
+
if (twin && (twin.data === undefined || isPlainObject(twin.data))) {
|
|
438
|
+
const prior = isPlainObject(twin.data) && typeof twin.data.repeats === 'number' ? twin.data.repeats : 1;
|
|
439
|
+
twin.data = { ...twin.data, repeats: prior + 1 };
|
|
440
|
+
this.stats.duplicates++;
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
let payload = data === undefined ? undefined : this.safeData(data);
|
|
445
|
+
if (level === 'error')
|
|
446
|
+
payload = this.withBreadcrumbs(payload);
|
|
269
447
|
const entry = {
|
|
270
448
|
ts: Date.now(),
|
|
271
449
|
level,
|
|
272
450
|
category,
|
|
273
|
-
message:
|
|
274
|
-
data:
|
|
451
|
+
message: redactedMessage,
|
|
452
|
+
data: payload,
|
|
275
453
|
build: this.options.build,
|
|
276
454
|
traceId: typeof context?.traceId === 'string' && CORRELATION_ID_RE.test(context.traceId) && !/^0+$/.test(context.traceId)
|
|
277
455
|
? context.traceId.toLowerCase()
|
|
@@ -281,10 +459,7 @@ export class Logs {
|
|
|
281
459
|
...envelopeFields(context),
|
|
282
460
|
};
|
|
283
461
|
this.queue.push(entry);
|
|
284
|
-
|
|
285
|
-
// the same fault, while the first entries include what preceded it.
|
|
286
|
-
if (this.queue.length > MAX_QUEUE)
|
|
287
|
-
this.queue.splice(0, this.queue.length - MAX_QUEUE);
|
|
462
|
+
this.trimQueue();
|
|
288
463
|
if (this.queue.length >= MAX_BATCH)
|
|
289
464
|
void this.send(false);
|
|
290
465
|
}
|
|
@@ -302,6 +477,9 @@ export class Logs {
|
|
|
302
477
|
*/
|
|
303
478
|
captureException(error, context) {
|
|
304
479
|
try {
|
|
480
|
+
if (this.alreadyReported(error))
|
|
481
|
+
return;
|
|
482
|
+
this.markReported(error);
|
|
305
483
|
const described = describeError(error);
|
|
306
484
|
const { category, ...rest } = context ?? {};
|
|
307
485
|
this.capture('error', category ?? 'exception', described.message, described.stack ? { stack: described.stack } : undefined, { result: 'error', ...rest });
|
|
@@ -310,6 +488,25 @@ export class Logs {
|
|
|
310
488
|
// Never let capture throw into app code.
|
|
311
489
|
}
|
|
312
490
|
}
|
|
491
|
+
/**
|
|
492
|
+
* Record a render error your own React error boundary caught (#392). React
|
|
493
|
+
* does not pass a caught error to `window.onerror`, so call this from
|
|
494
|
+
* `componentDidCatch(error, info)`: `app.logs.captureReactError(error,
|
|
495
|
+
* info.componentStack)`. Same entry as ProShell's boundary (category
|
|
496
|
+
* `react.error-boundary`, stack with causes, component stack, path).
|
|
497
|
+
*/
|
|
498
|
+
captureReactError(error, componentStack) {
|
|
499
|
+
try {
|
|
500
|
+
if (this.alreadyReported(error))
|
|
501
|
+
return;
|
|
502
|
+
this.markReported(error);
|
|
503
|
+
const { message, data } = describeReactError(error, componentStack);
|
|
504
|
+
this.capture('error', REACT_ERROR_CATEGORY, message, data, { result: 'error' });
|
|
505
|
+
}
|
|
506
|
+
catch {
|
|
507
|
+
// Never let capture throw into app code.
|
|
508
|
+
}
|
|
509
|
+
}
|
|
313
510
|
/** Fire-and-forget flush, safe on the unload path. */
|
|
314
511
|
flush() {
|
|
315
512
|
void this.send(true);
|
|
@@ -318,6 +515,35 @@ export class Logs {
|
|
|
318
515
|
async flushAsync() {
|
|
319
516
|
await this.send(false);
|
|
320
517
|
}
|
|
518
|
+
alreadyReported(error) {
|
|
519
|
+
return error !== null && typeof error === 'object' && this.reported.has(error);
|
|
520
|
+
}
|
|
521
|
+
markReported(error) {
|
|
522
|
+
if (error !== null && typeof error === 'object')
|
|
523
|
+
this.reported.add(error);
|
|
524
|
+
}
|
|
525
|
+
/** The newest breadcrumbs that fit the ingest size budget, on an object payload only. */
|
|
526
|
+
withBreadcrumbs(payload) {
|
|
527
|
+
if (this.breadcrumbs.length === 0 || (payload !== undefined && !isPlainObject(payload)))
|
|
528
|
+
return payload;
|
|
529
|
+
const recent = this.breadcrumbs.slice(-ATTACHED_BREADCRUMBS);
|
|
530
|
+
while (recent.length) {
|
|
531
|
+
const candidate = { ...payload, breadcrumbs: recent };
|
|
532
|
+
if (JSON.stringify(candidate).length <= DATA_BUDGET)
|
|
533
|
+
return candidate;
|
|
534
|
+
recent.shift();
|
|
535
|
+
}
|
|
536
|
+
return payload;
|
|
537
|
+
}
|
|
538
|
+
/** Drop the OLDEST on overflow: during a loop the newest entries are all the
|
|
539
|
+
* same fault, while the first entries include what preceded it. */
|
|
540
|
+
trimQueue() {
|
|
541
|
+
if (this.queue.length <= MAX_QUEUE)
|
|
542
|
+
return;
|
|
543
|
+
const excess = this.queue.length - MAX_QUEUE;
|
|
544
|
+
this.queue.splice(0, excess);
|
|
545
|
+
this.stats.dropped += excess;
|
|
546
|
+
}
|
|
321
547
|
safeData(data) {
|
|
322
548
|
try {
|
|
323
549
|
return JSON.parse(redactClient(JSON.stringify(data) ?? 'null'));
|
|
@@ -345,34 +571,98 @@ export class Logs {
|
|
|
345
571
|
return;
|
|
346
572
|
if (Date.now() < this.quietUntil)
|
|
347
573
|
return;
|
|
574
|
+
// Offline: keep the queue; the `online` listener resumes.
|
|
575
|
+
if (isOffline())
|
|
576
|
+
return;
|
|
577
|
+
// The unload path goes regardless: it is the last chance.
|
|
578
|
+
if (!keepalive && (this.sending || Date.now() < this.retryAt))
|
|
579
|
+
return;
|
|
348
580
|
const batch = this.queue.slice(0, MAX_BATCH);
|
|
349
|
-
// Remove before sending: a retry loop is worse than losing a log line, and
|
|
350
|
-
// the entries most likely to be dropped are duplicates of a fault we already
|
|
351
|
-
// reported.
|
|
352
581
|
this.queue = this.queue.slice(batch.length);
|
|
353
582
|
const body = JSON.stringify({
|
|
354
583
|
entries: batch,
|
|
355
584
|
...(this.clientId ? { clientId: this.clientId } : {}),
|
|
356
585
|
});
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
586
|
+
if (!keepalive)
|
|
587
|
+
this.sending = true;
|
|
588
|
+
try {
|
|
589
|
+
const result = await sendTelemetry(this.auth, this.apiBase, `/v1/apps/${this.appId}/logs`, body, {
|
|
590
|
+
keepalive,
|
|
591
|
+
// A beacon cannot carry the bearer token, so only use it where the
|
|
592
|
+
// same-origin cookie speaks for us. In legacy-bearer mode a keepalive
|
|
593
|
+
// fetch still attaches the token and still survives unload in practice.
|
|
594
|
+
beacon: this.auth.usesPlatformCookie === true,
|
|
595
|
+
});
|
|
596
|
+
this.settle(batch, result, keepalive);
|
|
597
|
+
}
|
|
598
|
+
finally {
|
|
599
|
+
if (!keepalive)
|
|
600
|
+
this.sending = false;
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
settle(batch, result, keepalive) {
|
|
604
|
+
if (result.kind === 'beacon') {
|
|
605
|
+
this.stats.sent += batch.length;
|
|
606
|
+
return;
|
|
607
|
+
}
|
|
608
|
+
if (result.kind === 'failed' || result.response.status >= 500) {
|
|
609
|
+
this.retryLater(batch, keepalive);
|
|
365
610
|
return;
|
|
366
|
-
|
|
611
|
+
}
|
|
612
|
+
const { status } = result.response;
|
|
613
|
+
if (status === 404) {
|
|
367
614
|
// Unknown app id — a misconfigured `appId` will never succeed, so stop
|
|
368
615
|
// rather than retry every ten seconds for the life of the page.
|
|
369
616
|
this.disabled = true;
|
|
617
|
+
this.stats.dropped += batch.length + this.queue.length;
|
|
618
|
+
this.queue = [];
|
|
370
619
|
return;
|
|
371
620
|
}
|
|
372
|
-
if (
|
|
373
|
-
// Over budget. Go quiet; the server is still counting the spike
|
|
621
|
+
if (status === 202 || status === 429) {
|
|
622
|
+
// Over budget. Go quiet; the server is still counting the spike, and the
|
|
623
|
+
// batch was not stored.
|
|
374
624
|
this.quietUntil = Date.now() + COOLDOWN_MS;
|
|
625
|
+
this.stats.dropped += batch.length;
|
|
626
|
+
return;
|
|
627
|
+
}
|
|
628
|
+
this.resetRetry();
|
|
629
|
+
if (result.response.ok)
|
|
630
|
+
this.stats.sent += batch.length;
|
|
631
|
+
else
|
|
632
|
+
this.stats.dropped += batch.length; // a 4xx will not succeed on retry
|
|
633
|
+
}
|
|
634
|
+
/**
|
|
635
|
+
* A transient failure: put the batch back and retry with backoff, a bounded
|
|
636
|
+
* number of times within {@link RETRY_TTL_MS}. Offline is a pause, not a
|
|
637
|
+
* failed attempt. One timer at most, so a failing endpoint cannot cause a
|
|
638
|
+
* retry storm, and the transport never logs, so it cannot recurse.
|
|
639
|
+
*/
|
|
640
|
+
retryLater(batch, keepalive) {
|
|
641
|
+
if (!keepalive && !isOffline()) {
|
|
642
|
+
const now = Date.now();
|
|
643
|
+
if (this.retryAttempt === 0)
|
|
644
|
+
this.retryStartedAt = now;
|
|
645
|
+
if (this.retryAttempt >= RETRY_DELAYS_MS.length || now - this.retryStartedAt > RETRY_TTL_MS) {
|
|
646
|
+
this.stats.dropped += batch.length;
|
|
647
|
+
this.resetRetry();
|
|
648
|
+
return;
|
|
649
|
+
}
|
|
650
|
+
const delay = RETRY_DELAYS_MS[this.retryAttempt++];
|
|
651
|
+
this.retryAt = now + delay;
|
|
652
|
+
if (this.running && !this.retryTimer) {
|
|
653
|
+
this.retryTimer = setTimeout(() => {
|
|
654
|
+
this.retryTimer = null;
|
|
655
|
+
void this.send(false);
|
|
656
|
+
}, delay);
|
|
657
|
+
}
|
|
375
658
|
}
|
|
659
|
+
this.queue = batch.concat(this.queue);
|
|
660
|
+
this.trimQueue();
|
|
661
|
+
}
|
|
662
|
+
resetRetry() {
|
|
663
|
+
this.retryAttempt = 0;
|
|
664
|
+
this.retryStartedAt = 0;
|
|
665
|
+
this.retryAt = 0;
|
|
376
666
|
}
|
|
377
667
|
}
|
|
378
668
|
//# sourceMappingURL=logs.js.map
|
package/dist/logs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"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"}
|
package/dist/rooms.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { Auth } from './auth.js';
|
|
2
2
|
import type { Unsubscribe } from './base-types.js';
|
|
3
|
+
import type { Logs } from './logs.js';
|
|
4
|
+
/** The logger surface rooms report through (#392). */
|
|
5
|
+
type RoomLogger = Pick<Logs, 'addBreadcrumb' | 'capture'>;
|
|
3
6
|
/**
|
|
4
7
|
* Light realtime room — Durable-Object-backed WebSocket fan-out.
|
|
5
8
|
*
|
|
@@ -73,7 +76,8 @@ export declare class Rooms {
|
|
|
73
76
|
private readonly appId;
|
|
74
77
|
private readonly apiBase;
|
|
75
78
|
private readonly auth;
|
|
76
|
-
|
|
79
|
+
private readonly logger?;
|
|
80
|
+
constructor(appId: string, apiBase: string, auth: Auth, logger?: RoomLogger | undefined);
|
|
77
81
|
join(roomId: string): Room;
|
|
78
82
|
}
|
|
79
83
|
export declare class Room {
|
|
@@ -81,6 +85,7 @@ export declare class Room {
|
|
|
81
85
|
private readonly apiBase;
|
|
82
86
|
private readonly auth;
|
|
83
87
|
private readonly roomId;
|
|
88
|
+
private readonly logger?;
|
|
84
89
|
private socket;
|
|
85
90
|
private listeners;
|
|
86
91
|
private eventListeners;
|
|
@@ -95,9 +100,13 @@ export declare class Room {
|
|
|
95
100
|
private reconnectAttempt;
|
|
96
101
|
private reconnectTimer;
|
|
97
102
|
private explicitlyClosed;
|
|
103
|
+
/** A dropped connection is being restored; cleared by the first frame after a reconnect. */
|
|
104
|
+
private recovering;
|
|
105
|
+
/** One error event per outage: set once a failed recovery is reported. */
|
|
106
|
+
private recoveryReported;
|
|
98
107
|
/** Enable to log all WebSocket traffic to console. */
|
|
99
108
|
debug: boolean;
|
|
100
|
-
constructor(appId: string, apiBase: string, auth: Auth, roomId: string);
|
|
109
|
+
constructor(appId: string, apiBase: string, auth: Auth, roomId: string, logger?: RoomLogger | undefined);
|
|
101
110
|
/** Current connection state. */
|
|
102
111
|
get state(): ConnectionState;
|
|
103
112
|
/** Underlying WebSocket readyState (or -1 if no socket). */
|
|
@@ -136,9 +145,19 @@ export declare class Room {
|
|
|
136
145
|
close(): void;
|
|
137
146
|
private connect;
|
|
138
147
|
private scheduleReconnect;
|
|
148
|
+
private breadcrumb;
|
|
149
|
+
/**
|
|
150
|
+
* One error event when recovery fails (#392): the reconnects ran out of
|
|
151
|
+
* useful retries, or the server refused one. The client keeps its own retry
|
|
152
|
+
* behaviour; this only reports, once per outage.
|
|
153
|
+
*/
|
|
154
|
+
private reportRecoveryFailure;
|
|
155
|
+
/** The room id without the uid a `user:<uid>` room carries. */
|
|
156
|
+
private roomLabel;
|
|
139
157
|
private isAuthenticated;
|
|
140
158
|
private legacyBearerUrl;
|
|
141
159
|
private platformCookieUrl;
|
|
142
160
|
private setState;
|
|
143
161
|
}
|
|
162
|
+
export {};
|
|
144
163
|
//# sourceMappingURL=rooms.d.ts.map
|
package/dist/rooms.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../src/rooms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../src/rooms.ts"],"names":[],"mappings":"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"}
|