@ryuzaki13/react-foundation-lib 2.12.1 → 2.13.0
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/dist/error-report/breadcrumbs.d.ts.map +1 -1
- package/dist/error-report/captureOptions.d.ts +26 -0
- package/dist/error-report/captureOptions.d.ts.map +1 -0
- package/dist/error-report/dataPreview.d.ts +7 -0
- package/dist/error-report/dataPreview.d.ts.map +1 -0
- package/dist/error-report/diagnostics.d.ts +4 -2
- package/dist/error-report/diagnostics.d.ts.map +1 -1
- package/dist/error-report/drafts.d.ts.map +1 -1
- package/dist/error-report/errorInfo.d.ts +2 -1
- package/dist/error-report/errorInfo.d.ts.map +1 -1
- package/dist/error-report/index.d.ts +1 -0
- package/dist/error-report/index.d.ts.map +1 -1
- package/dist/error-report/index.js +683 -403
- package/dist/error-report/index.js.map +1 -1
- package/dist/error-report/payload.d.ts +1 -0
- package/dist/error-report/payload.d.ts.map +1 -1
- package/dist/error-report/safeValue.d.ts.map +1 -1
- package/dist/error-report/schema.d.ts.map +1 -1
- package/dist/error-report/transport.d.ts +2 -0
- package/dist/error-report/transport.d.ts.map +1 -1
- package/dist/error-report/types.d.ts +12 -0
- package/dist/error-report/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/error-report/README.mdx +32 -13
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ErrorReportPayload } from "./types";
|
|
2
2
|
export declare const ERROR_REPORT_PAYLOAD_VERSION: 1;
|
|
3
3
|
export declare const ERROR_REPORT_PAYLOAD_MAX_BYTES: number;
|
|
4
|
+
export declare const ERROR_REPORT_VERBATIM_MESSAGE_MAX_BYTES: number;
|
|
4
5
|
export declare const ERROR_REPORT_STACK_TRACE_MAX_BYTES: number;
|
|
5
6
|
/** Возвращает точный UTF-8 размер JSON-формы, которую получит transport. */
|
|
6
7
|
export declare function getErrorReportPayloadSize(payload: ErrorReportPayload): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/error-report/payload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/error-report/payload.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAIX,kBAAkB,EAGlB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,4BAA4B,EAAG,CAAU,CAAC;AACvD,eAAO,MAAM,8BAA8B,QAAc,CAAC;AAC1D,eAAO,MAAM,uCAAuC,QAAc,CAAC;AACnE,eAAO,MAAM,kCAAkC,QAAa,CAAC;AAyG7D,4EAA4E;AAC5E,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,kBAAkB,UAEpE;AAgID;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB,CAiJrF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safeValue.d.ts","sourceRoot":"","sources":["../../src/error-report/safeValue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"safeValue.d.ts","sourceRoot":"","sources":["../../src/error-report/safeValue.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAmD1G;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAA+B,UAmB7F;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,UAE5C;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAgC1E;AAwDD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,oBAAoB,CAKrF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,oBAAoB,CAsB/E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,oBAAoB,GAAG,SAAS,QAElF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,8BAA8B,EACvC,eAAe,SAA+B,oCAoB9C;AAED,wBAAgB,cAAc,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC3C,OAAO,GAAE,8BAAqD,GAC5D,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,SAAS,CAOlD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/error-report/schema.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAwB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/error-report/schema.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAwB,MAAM,SAAS,CAAC;AAkN1F;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,kCASrD;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,gCASnD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,sBAMpD"}
|
|
@@ -2,6 +2,8 @@ export type ErrorReportTransportHtmlSummary = {
|
|
|
2
2
|
length: number;
|
|
3
3
|
formCount?: number;
|
|
4
4
|
inputNames?: string[];
|
|
5
|
+
sample?: string;
|
|
6
|
+
truncated?: boolean;
|
|
5
7
|
};
|
|
6
8
|
export type ErrorReportTransportErrorContext = {
|
|
7
9
|
source: "fetch.parseResponse" | "fetch.buildHttpError";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/error-report/transport.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,+BAA+B,GAAG;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/error-report/transport.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,+BAA+B,GAAG;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC9C,MAAM,EAAE,qBAAqB,GAAG,sBAAsB,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,+BAA+B,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAgClI;;;;GAIG;AACH,wBAAgB,oCAAoC,CAAC,QAAQ,EAAE,iCAAiC,GAAG,SAAS,QAG3G;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,WAE7D;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,QAI1D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,QAiB3F"}
|
|
@@ -5,6 +5,11 @@ export type ErrorReportPayloadVersion = 1;
|
|
|
5
5
|
export type ErrorReportSafeValue = string | number | boolean | null | ErrorReportSafeValue[] | {
|
|
6
6
|
[key: string]: ErrorReportSafeValue;
|
|
7
7
|
};
|
|
8
|
+
/** Ограниченный валидный JSON-снимок данных; `truncated` отмечает утрату хвоста. */
|
|
9
|
+
export type ErrorReportDataPreview = {
|
|
10
|
+
json: string;
|
|
11
|
+
truncated: boolean;
|
|
12
|
+
};
|
|
8
13
|
export type ErrorReportErrorInfo = {
|
|
9
14
|
name: string;
|
|
10
15
|
message: string;
|
|
@@ -33,6 +38,7 @@ export type ErrorReportQueryDiagnostics = {
|
|
|
33
38
|
observersCount?: number;
|
|
34
39
|
meta?: Record<string, ErrorReportSafeValue>;
|
|
35
40
|
dataShape?: ErrorReportSafeValue;
|
|
41
|
+
dataPreview?: ErrorReportDataPreview;
|
|
36
42
|
error?: ErrorReportErrorInfo;
|
|
37
43
|
};
|
|
38
44
|
export type ErrorReportMutationDiagnostics = {
|
|
@@ -41,6 +47,7 @@ export type ErrorReportMutationDiagnostics = {
|
|
|
41
47
|
failureCount?: number;
|
|
42
48
|
submittedAt?: number;
|
|
43
49
|
meta?: Record<string, ErrorReportSafeValue>;
|
|
50
|
+
variablesPreview?: ErrorReportDataPreview;
|
|
44
51
|
error?: ErrorReportErrorInfo;
|
|
45
52
|
};
|
|
46
53
|
export type ErrorReportPersistedQueryDiagnostics = {
|
|
@@ -52,6 +59,7 @@ export type ErrorReportPersistedQueryDiagnostics = {
|
|
|
52
59
|
dataUpdatedAt?: number;
|
|
53
60
|
errorUpdatedAt?: number;
|
|
54
61
|
failureCount?: number;
|
|
62
|
+
dataPreview?: ErrorReportDataPreview;
|
|
55
63
|
error?: ErrorReportErrorInfo;
|
|
56
64
|
};
|
|
57
65
|
export type ErrorReportPayload = {
|
|
@@ -75,6 +83,8 @@ export type ErrorReportPayload = {
|
|
|
75
83
|
location?: {
|
|
76
84
|
pathname: string;
|
|
77
85
|
origin?: string;
|
|
86
|
+
search?: string;
|
|
87
|
+
hash?: string;
|
|
78
88
|
};
|
|
79
89
|
viewport?: {
|
|
80
90
|
width: number;
|
|
@@ -89,6 +99,8 @@ export type ErrorReportPayload = {
|
|
|
89
99
|
queryClient?: {
|
|
90
100
|
queries: ErrorReportQueryDiagnostics[];
|
|
91
101
|
mutations: ErrorReportMutationDiagnostics[];
|
|
102
|
+
omittedQueries?: number;
|
|
103
|
+
omittedMutations?: number;
|
|
92
104
|
};
|
|
93
105
|
persistedQueries?: ErrorReportPersistedQueryDiagnostics[];
|
|
94
106
|
breadcrumbs: ErrorReportBreadcrumb[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/error-report/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/error-report/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -12,7 +12,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
|
|
|
12
12
|
- сведения о browser/build;
|
|
13
13
|
- URL и viewport;
|
|
14
14
|
- последние действия пользователя — breadcrumbs;
|
|
15
|
-
- состояние TanStack Query
|
|
15
|
+
- состояние TanStack Query и, при явном включении, ограниченные снимки данных;
|
|
16
16
|
- технические сведения о persisted queries;
|
|
17
17
|
- контекст React/runtime/transport;
|
|
18
18
|
- локальный draft lifecycle: `pending`, `sending`, `sent`, `failed`;
|
|
@@ -38,6 +38,7 @@ import {
|
|
|
38
38
|
createErrorInfo,
|
|
39
39
|
installErrorReportBrowserBreadcrumbs,
|
|
40
40
|
setErrorReportRuntimeErrorReporter,
|
|
41
|
+
setErrorReportCaptureOptions,
|
|
41
42
|
setErrorReportSanitizer,
|
|
42
43
|
type ErrorReportDraft
|
|
43
44
|
} from "@ryuzaki13/react-foundation-lib/error-report";
|
|
@@ -170,7 +171,7 @@ type ErrorReportErrorInfo = {
|
|
|
170
171
|
};
|
|
171
172
|
```
|
|
172
173
|
|
|
173
|
-
Для обычного `Error` сохраняются `name`, непустой `message` и `stack` до 64 KiB.
|
|
174
|
+
Для обычного `Error` сохраняются `name`, непустой `message` и `stack` до 64 KiB. В `verbatim`-режиме сообщение допускается до 128 KiB; превышение отмечается в самом тексте.
|
|
174
175
|
|
|
175
176
|
```ts
|
|
176
177
|
createErrorInfo(new Error("Не удалось сохранить"));
|
|
@@ -223,6 +224,21 @@ setErrorReportSanitizer((value, context) => {
|
|
|
223
224
|
|
|
224
225
|
Callback должен быть чистым и идемпотентным: capture может повторно применить его к уже подготовленной секции перед storage write. Если callback бросает исключение, рискованная секция удаляется. При teardown/hot reload вызовите `setErrorReportSanitizer(undefined)`.
|
|
225
226
|
|
|
227
|
+
### `setErrorReportCaptureOptions(options?)`
|
|
228
|
+
|
|
229
|
+
По умолчанию действуют прежняя built-in redaction и отсутствие снимков query data. Приложение, которое контролирует канал доступа к отчётам и хочет видеть фактические диагностические значения, может включить режим `verbatim`:
|
|
230
|
+
|
|
231
|
+
```ts
|
|
232
|
+
setErrorReportCaptureOptions({
|
|
233
|
+
valuePolicy: "verbatim",
|
|
234
|
+
dataPreviewBytes: { query: 2_048, persistedQuery: 512, mutation: 2_048 }
|
|
235
|
+
});
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
В этом режиме foundation сохраняет исходные значения message, stack, query/mutation keys, meta, context и URL с search/hash. Диагностический `queryHash` вычисляется из исходного TanStack hash до ограничения длинного ключа, поэтому остаётся различимым при одинаково усечённых `queryKey`. Ограничения глубины, размера строк, количества записей и общего payload продолжают действовать. В приложении не следует регистрировать удаляющий значения `setErrorReportSanitizer`, если нужны полные диагностические значения: app callback применяется и в `verbatim`-режиме.
|
|
239
|
+
|
|
240
|
+
`dataPreviewBytes` задаёт предел одного JSON-снимка в UTF-8 байтах, максимум 16 KiB на запись. При усечении `dataPreview.truncated` или `variablesPreview.truncated` становится `true`; поле `json` остаётся валидным JSON. В `verbatim`-режиме строковые части ключей сохраняются до 8192 символов, остальные диагностические строки — до их локального предела. Усечение строки, массива, объекта или глубины отмечается непосредственно в значении. Снимки включаются только в `verbatim`-режиме и только для указанных положительных бюджетов. В teardown вызовите `setErrorReportCaptureOptions(undefined)`, чтобы вернуть режим по умолчанию.
|
|
241
|
+
|
|
226
242
|
### `sanitizeDetail(detail)`
|
|
227
243
|
|
|
228
244
|
Применяет `createDiagnosticValue` к первым 40 полям объекта. Для `undefined` или пустого объекта возвращает `undefined`.
|
|
@@ -311,29 +327,29 @@ uninstallBreadcrumbs();
|
|
|
311
327
|
|
|
312
328
|
Собирает:
|
|
313
329
|
|
|
314
|
-
-
|
|
330
|
+
- по умолчанию hash уже очищенного query key; в `verbatim`-режиме hash исходного TanStack `queryHash` и фактический bounded key;
|
|
315
331
|
- status/fetchStatus;
|
|
316
332
|
- timestamps обновления data/error;
|
|
317
333
|
- failure count, invalidation и observer count;
|
|
318
334
|
- meta;
|
|
319
|
-
- `dataShape`
|
|
335
|
+
- `dataShape`, а при включённом `dataPreviewBytes.query` — ограниченный `dataPreview`;
|
|
320
336
|
- нормализованную query error.
|
|
321
337
|
|
|
322
338
|
Значения `queryKey` и `meta` проходят built-in redaction и app sanitizer. Предметные персональные идентификаторы всё равно должны удаляться policy приложения.
|
|
323
339
|
|
|
324
340
|
### `collectMutationDiagnostics(mutation)`
|
|
325
341
|
|
|
326
|
-
Собирает mutation key, status, failure count, submitted timestamp, meta и error.
|
|
342
|
+
Собирает mutation key, status, failure count, submitted timestamp, meta и error. При включённом `dataPreviewBytes.mutation` добавляет ограниченный `variablesPreview`; результат мутации не копируется.
|
|
327
343
|
|
|
328
344
|
### `collectQueryClientDiagnostics(queryClient)`
|
|
329
345
|
|
|
330
|
-
Возвращает последние 40 query и последние 40 mutations из соответствующих cache. Это синхронный snapshot текущего QueryClient.
|
|
346
|
+
Возвращает последние 40 query и последние 40 mutations из соответствующих cache. Поля `omittedQueries` и `omittedMutations` показывают, сколько более старых записей не вошло в snapshot. Это синхронный snapshot текущего QueryClient.
|
|
331
347
|
|
|
332
348
|
### `collectPersistedQueryDiagnostics()`
|
|
333
349
|
|
|
334
350
|
Асинхронно читает IndexedDB persistence из `/query-client` и возвращает максимум 40 записей.
|
|
335
351
|
|
|
336
|
-
|
|
352
|
+
По умолчанию сохраняются buster, очищенные hash/key, statuses, timestamps, failure count и error. В `verbatim`-режиме диагностический hash вычисляется из сохранённого исходного `queryHash`, а bounded key остаётся читаемым; `dataPreviewBytes.persistedQuery` дополнительно включает ограниченный снимок `state.data`. IndexedDB storage key не копируется.
|
|
337
353
|
|
|
338
354
|
Если IndexedDB/persistence недоступны или чтение бросает ошибку, возвращается пустой массив — сбор отчёта не падает.
|
|
339
355
|
|
|
@@ -432,7 +448,7 @@ parseErrorReportDrafts(value);
|
|
|
432
448
|
|
|
433
449
|
### Bounded payload
|
|
434
450
|
|
|
435
|
-
`limitErrorReportPayload(payload)` сначала повторно применяет
|
|
451
|
+
`limitErrorReportPayload(payload)` сначала повторно применяет выбранную policy, затем проверяет UTF-8 размер `JSON.stringify`. Предел — `ERROR_REPORT_PAYLOAD_MAX_BYTES` (256 KiB). При превышении сначала уменьшаются data previews, затем число старых записей cache, и только после этого удаляются optional sections. Каждый сокращённый preview получает `truncated: true`, а `payload.truncation` фиксирует исходный размер, limit и список удалённых секций. `getErrorReportPayloadSize(payload)` возвращает фактический сериализованный размер в байтах.
|
|
436
452
|
|
|
437
453
|
### Хранение
|
|
438
454
|
|
|
@@ -591,7 +607,7 @@ setErrorReportTransportErrorReporter(async (error, context) => {
|
|
|
591
607
|
|
|
592
608
|
### `reportTransportError(error, context)`
|
|
593
609
|
|
|
594
|
-
Context имеет source `fetch.parseResponse` или `fetch.buildHttpError` и может содержать URL, method, SAP client, status/content type, redirect/response type и
|
|
610
|
+
Context имеет source `fetch.parseResponse` или `fetch.buildHttpError` и может содержать URL, method, SAP client, status/content type, redirect/response type и техническое summary HTML-response. Транспорт может передать `html.sample` и `html.truncated` как ограниченный фрагмент ответа при явно включённом `verbatim`-режиме; по умолчанию содержимое response body не собирается.
|
|
595
611
|
|
|
596
612
|
Вызов планирует reporter через 250 мс. Задержка позволяет TanStack Query перехватить тот же `Error` и создать более полезный query/mutation report.
|
|
597
613
|
|
|
@@ -644,9 +660,9 @@ export function installErrorReporting(queryClient: QueryClient) {
|
|
|
644
660
|
|
|
645
661
|
### Что намеренно не сохраняется
|
|
646
662
|
|
|
647
|
-
- полное `query.state.data
|
|
648
|
-
- persisted `state.data
|
|
649
|
-
- mutation variables;
|
|
663
|
+
- полное `query.state.data` (при явном включении доступен только bounded preview);
|
|
664
|
+
- полное persisted `state.data` (при явном включении доступен только bounded preview);
|
|
665
|
+
- полные mutation variables (при явном включении доступен только bounded preview);
|
|
650
666
|
- значения input при автоматическом click breadcrumb;
|
|
651
667
|
- тела transport-запросов.
|
|
652
668
|
|
|
@@ -655,7 +671,7 @@ export function installErrorReporting(queryClient: QueryClient) {
|
|
|
655
671
|
- queryKey и mutationKey;
|
|
656
672
|
- query/mutation meta;
|
|
657
673
|
- `context.detail`;
|
|
658
|
-
- pathname без search/hash
|
|
674
|
+
- pathname без search/hash по умолчанию; в `verbatim`-режиме search/hash сохраняются;
|
|
659
675
|
- error message/stack;
|
|
660
676
|
- app-provided context, если policy ошибочно разрешила предметные данные;
|
|
661
677
|
- user agent, language, timezone;
|
|
@@ -680,6 +696,8 @@ Capture только создаёт draft. Приложение должно enq
|
|
|
680
696
|
|
|
681
697
|
Foundation удаляет известные secret-like keys и email, но не умеет надёжно распознавать ФИО, телефоны и предметные IDs. Настройте app sanitizer по allow-list.
|
|
682
698
|
|
|
699
|
+
В `verbatim`-режиме built-in redaction отключена намеренно. Контролируйте доступ к endpoint, хранилищу и странице отчётов в приложении.
|
|
700
|
+
|
|
683
701
|
### Вызывать production capture в development и ждать draft
|
|
684
702
|
|
|
685
703
|
По контракту вернётся `undefined`.
|
|
@@ -705,6 +723,7 @@ Foundation удаляет известные secret-like keys и email, но н
|
|
|
705
723
|
| Группа | Экспорты |
|
|
706
724
|
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
|
707
725
|
| Capture | `captureQueryErrorReport`, `captureMutationErrorReport`, `captureRuntimeErrorReport`, `captureErrorReportDraft` |
|
|
726
|
+
| Capture options | `setErrorReportCaptureOptions` |
|
|
708
727
|
| Errors | `createErrorInfo` |
|
|
709
728
|
| Safe values | `createDiagnosticValue`, `createDataShape`, `sanitizeDetail`, `sanitizeErrorReportValue`, `setErrorReportSanitizer` |
|
|
710
729
|
| Payload contract | `ERROR_REPORT_PAYLOAD_VERSION`, `ERROR_REPORT_PAYLOAD_MAX_BYTES`, `limitErrorReportPayload`, `getErrorReportPayloadSize`, parsers |
|