fui-material 2.8.15 → 2.8.16

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.
@@ -1,4 +1,4 @@
1
1
  export { default as FLibraryProvider, useFLibraryContext, useFLibraryContextOptional, LibraryContext } from "./FLibraryProvider";
2
2
  export type { ILibApiService, LibraryConfig, FLibraryProviderProps } from "./FLibraryProvider";
3
- export type { FRequestOutcome, FRequestErrorCategory, FRequestObservation, FRequestObserver, FRequestErrorResponse, } from "./requestObserver";
3
+ export type { FRequestOutcome, FRequestErrorCategory, FRequestObservation, FRequestObserver, FRequestErrorResponse, FRequestErrorBody, } from "./requestObserver";
4
4
  export { getRequestNow, calcDurationMs, classifyRequestError, notifyRequestObserver, observeRequest, } from "./requestObserver";
@@ -17,14 +17,22 @@ export interface FRequestErrorResponse {
17
17
  traceId?: string;
18
18
  requestId?: string;
19
19
  timestamp?: string;
20
+ exception?: string;
21
+ path?: string;
20
22
  }
21
23
  /** Extracts only bounded, top-level scalar fields from an error response. */
22
24
  export declare function normalizeRequestErrorResponse(data: unknown): FRequestErrorResponse | undefined;
23
25
  /** Safely extracts and normalizes an HTTP error response for observer metadata. */
24
26
  export declare function getRequestErrorResponse(error: unknown): FRequestErrorResponse | undefined;
27
+ /** Bounded, redacted JSON; never the original request object. */
28
+ export type FRequestErrorBody = string | number | boolean | null | FRequestErrorBody[] | {
29
+ [key: string]: FRequestErrorBody;
30
+ };
31
+ /** Internal failure-only extraction shared by provider observation and useFApi. */
32
+ export declare function getRequestErrorBody(observer: FRequestObserver | undefined, method: string, outcome: FRequestOutcome, error: unknown, requestData?: unknown): FRequestErrorBody | undefined;
25
33
  /**
26
34
  * Событие наблюдения жизненного цикла завершенного HTTP-запроса.
27
- * Не содержит тел запроса/ответа, заголовков или чувствительных данных.
35
+ * По умолчанию содержит только метаданные; тело ошибочного запроса доступно после маскирования и явного включения.
28
36
  */
29
37
  export interface FRequestObservation {
30
38
  /** HTTP-метод (GET, POST, PUT, DELETE и т.д.) в верхнем регистре */
@@ -41,11 +49,15 @@ export interface FRequestObservation {
41
49
  errorCategory?: FRequestErrorCategory;
42
50
  /** Ограниченная сводка тела HTTP-ошибки; отсутствует для успеха, отмены и сетевых ошибок без response */
43
51
  errorResponse?: FRequestErrorResponse;
52
+ /** Очищенный JSON для неуспешных POST/PATCH; только при captureErrorRequestBody. */
53
+ errorRequestBody?: FRequestErrorBody;
44
54
  }
45
55
  /**
46
56
  * Интерфейс наблюдателя жизненного цикла запросов библиотеки.
47
57
  */
48
58
  export interface FRequestObserver {
59
+ /** Включает ограниченный очищенный JSON для ошибок POST/PATCH. По умолчанию false. */
60
+ captureErrorRequestBody?: boolean;
49
61
  /**
50
62
  * Вызывается однократно при завершении выполнения запроса (успех, сбой или отмена).
51
63
  * Любые исключения внутри данного метода изолируются и не влияют на работу приложения.
@@ -76,4 +88,4 @@ export declare function notifyRequestObserver(observer: FRequestObserver | undef
76
88
  /**
77
89
  * Обёртка для выполнения асинхронной функции запроса с фиксацией наблюдения.
78
90
  */
79
- export declare function observeRequest<T>(observer: FRequestObserver | undefined, requestFn: () => Promise<T>, method: string, url: string): Promise<T>;
91
+ export declare function observeRequest<T>(observer: FRequestObserver | undefined, requestFn: () => Promise<T>, method: string, url: string, requestData?: unknown): Promise<T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fui-material",
3
- "version": "2.8.15",
3
+ "version": "2.8.16",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",