@torrow/sdk-client 0.10.0 → 0.11.1

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 CHANGED
@@ -60,6 +60,12 @@ Network failures use `TorrowSdkError`: `category` is independent of the outcome
60
60
 
61
61
  Selected composite methods provide optional `detail`, `operation`, `failureAt` and immutable `effects`. Missing `effects` means no description is supplied. Local builder/ID/constructor errors retain their existing exception types. Errors do not authorize automatic retry.
62
62
 
63
+ `publicMessage?: string` is an optional explanation for people or AI clients. The eight item `patch` methods supply short Russian messages from SDK templates; other methods may omit it. Use `error.publicMessage ?? "Не удалось выполнить операцию."` for display and `category`/`effects` for decisions. Wording is not a stable machine code and does not prove whether a write happened. Applications can replace it with their own localized text. The standard `Error.message` stays generic.
64
+
65
+ The constructor accepts nonblank strings of at most 512 UTF-16 code units and preserves them unchanged. Invalid values become `undefined` without throwing, coercing or truncating. This checks shape, not confidentiality: callers creating errors or using `withContext` must supply safe text. SDK patch never forwards server/callback messages or item data into this field.
66
+
67
+ `toJSON()` includes the explanation. `withContext({})` preserves it, `withContext({ publicMessage: undefined })` clears it, and a supplied string replaces it under the same validation. The original error and sensitive diagnostics remain intact. Unknown server codes, status and correlation metadata remain available through `http`; raw data stays behind `getSensitiveDetails()`.
68
+
63
69
 
64
70
  ## Частичное обновление item
65
71
 
package/dist/index.d.ts CHANGED
@@ -37576,6 +37576,20 @@ type VerifyCommunicationCodeRespDto = components["schemas"]["VerifyCommunication
37576
37576
  type ViewInfoDto = components["schemas"]["ViewInfo"];
37577
37577
  type WorkloadPeriodDto = components["schemas"]["WorkloadPeriod"];
37578
37578
 
37579
+ /**
37580
+ * Поддерживаемая публичность SDK. Private временно исключён из-за серверного дефекта;
37581
+ * Undefined исключён по решению контракта. Ответы с обоими значениями читаются как Personal.
37582
+ * Возврат Private требует подтверждённого исправления сервера, Undefined — отдельного решения.
37583
+ */
37584
+ type PublicityType = Exclude<PublicityTypeDto, "Private" | "Undefined">;
37585
+ /**
37586
+ * Публичная проекция серверной модели: сужает объявленное publicityType, включая вложенные DTO.
37587
+ * Сохраняет optional/null, даты, массивы и непрозрачные пользовательские данные unknown.
37588
+ */
37589
+ type NormalizedPublicity<T> = T extends Date ? T : T extends object ? {
37590
+ [K in keyof T]: K extends "publicityType" ? Exclude<T[K], "Private" | "Undefined"> : NormalizedPublicity<T[K]>;
37591
+ } : T;
37592
+
37579
37593
  type SolutionData = OpenApiSchemas["SolutionData"];
37580
37594
  type PersonalSolutionData = OpenApiSchemas["PersonalSolutionData"];
37581
37595
  type Metrics = OpenApiSchemas["Metrics"];
@@ -37648,12 +37662,12 @@ type TorrowObject = TorrowObjectDto;
37648
37662
  /**
37649
37663
  * Общие поля item: схема `TorrowItem` + явное пересечение с `TorrowObject`, чтобы тип оставался подтипом `TorrowObject`.
37650
37664
  */
37651
- type TorrowItem = TorrowItemDto & TorrowObject;
37665
+ type TorrowItem = NormalizedPublicity<TorrowItemDto> & TorrowObject;
37652
37666
  /**
37653
37667
  * Публичный item-тип из доменного OpenAPI-DTO: пересечение с **`TorrowItem`**, чтобы в типах явно
37654
37668
  * участвовали общие поля item и связь с **`TorrowObject`** (после codegen даты уже **`Date`** в DTO).
37655
37669
  */
37656
- type TorrowItemFromDto<D extends object> = D & TorrowItem;
37670
+ type TorrowItemFromDto<D extends object> = NormalizedPublicity<D> & TorrowItem;
37657
37671
  /**
37658
37672
  * Ключи, которые не должны попадать в тело create/update: профиль и дискриминатор,
37659
37673
  * поля социального слоя с отдельными эндпоинтами (`TorrowItemCoreFacade` / `TorrowItemFacade`),
@@ -37674,9 +37688,9 @@ type TorrowItemForCreateOrUpdate<T extends TorrowItem> = Omit<T, TorrowItemKeysE
37674
37688
  * Сгенерировано: `node scripts/build-sdk-shared-public-types.mjs`
37675
37689
  */
37676
37690
 
37677
- type AccountingTransaction = AccountingTransactionDto;
37691
+ type AccountingTransaction = NormalizedPublicity<AccountingTransactionDto>;
37678
37692
  type AccountingTransactionState = AccountingTransactionStateDto;
37679
- type AddProfileResp = AddProfileRespDto;
37693
+ type AddProfileResp = NormalizedPublicity<AddProfileRespDto>;
37680
37694
  type BalanceValue = BalanceValueDto;
37681
37695
  type DeleteResponse = DeleteResponseDto;
37682
37696
  type DictionarySortCondition = DictionarySortConditionDto;
@@ -37693,17 +37707,17 @@ type ObjectInfo = ObjectInfoDto;
37693
37707
  type ObjectSortCondition = ObjectSortConditionDto;
37694
37708
  type ParticipantState = ParticipantStateDto;
37695
37709
  type ParticipantType = ParticipantTypeDto;
37696
- type ParticipantView = ParticipantViewDto;
37710
+ type ParticipantView = NormalizedPublicity<ParticipantViewDto>;
37697
37711
  type Participation = ParticipationDto;
37698
37712
  type ParticipationResp = ParticipationRespDto;
37699
37713
  type PutUrlResp = PutUrlRespDto;
37700
- type ResourceView = ResourceViewDto;
37714
+ type ResourceView = NormalizedPublicity<ResourceViewDto>;
37701
37715
  type SaveItemToMindMapReq = SaveItemToMindMapReqDto;
37702
37716
  type SendLinkOfItemReq = SendLinkOfItemReqDto;
37703
37717
  type SendLinkOfItemResp = SendLinkOfItemRespDto;
37704
37718
  type SetGroupItemReq = SetGroupItemReqDto;
37705
37719
  type ShareItemReq = ShareItemReqDto;
37706
- type TimetableCase = TimetableCaseDto;
37720
+ type TimetableCase = NormalizedPublicity<TimetableCaseDto>;
37707
37721
  type TimetableDetailsVisibility = TimetableDetailsVisibilityDto;
37708
37722
  type TimetableFilter = TimetableFilterDto;
37709
37723
  type TorrowObjectType = TorrowObjectTypeDto;
@@ -37807,8 +37821,8 @@ type UpdateContactPropertiesResp = UpdateContactPropertiesRespDto;
37807
37821
  type UpdateMasterInfoReq = UpdateMasterInfoReqDto;
37808
37822
  type FeedbackOptions = FeedbackOptionsDto;
37809
37823
  type PersonalReminder = PersonalReminderDto;
37810
- type PublicityType = PublicityTypeDto;
37811
- type GroupStatus = GroupStatusDto;
37824
+
37825
+ type GroupStatus = NormalizedPublicity<GroupStatusDto>;
37812
37826
  type UpdateItemAccountsReq = UpdateItemAccountsReqDto;
37813
37827
  type UpdateItemGroupsReq = UpdateItemGroupsReqDto;
37814
37828
  type UpdatePersonalListOrderReq = UpdatePersonalListOrderReqDto;
@@ -37963,7 +37977,7 @@ declare const ImagePreviewSizeValues: {
37963
37977
  readonly MediumSlider: "MediumSlider";
37964
37978
  readonly LargeSlider: "LargeSlider";
37965
37979
  };
37966
- /** Explicit publicity on create; meta.version on update preserves optimistic concurrency. */
37980
+ /** Публичность create/update: Personal, PublicWithRequest, PublicAvailable или Link; без значения при create — Personal. Поле meta.version сохраняет optimistic concurrency при update. Серверные Private/Undefined читаются как Personal. */
37967
37981
  type NoteItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<NoteItem> & Pick<NoteItem, "publicityType" | "meta">;
37968
37982
  /** Частичное изменение заметки; общие name/image описаны в TorrowItemPatchFields. */
37969
37983
  interface NoteItemPatch extends TorrowItemPatchFields {
@@ -38073,7 +38087,7 @@ declare abstract class TorrowItemCoreFacade<TItem, TParticipantsQuery = ContactC
38073
38087
  generateFileId(ownerTorrowId: string): string;
38074
38088
  /** Id item этого домена до `create` / upload (клиентская генерация, без запроса к API). */
38075
38089
  protected generateItemId(ownerTorrowId: string): string;
38076
- /** `PUT /api/v1/{domain}/{torrowId}/publicity` */
38090
+ /** `PUT /api/v1/{domain}/{torrowId}/publicity`: только Personal, PublicWithRequest, PublicAvailable или Link. */
38077
38091
  updatePublicity(torrowId: string, body: PublicityType, options?: TorrowOptions): Promise<TorrowObject>;
38078
38092
  /** `PUT /api/v1/{domain}/{torrowId}/image/id` — тело: JSON-string **`fileId`**. */
38079
38093
  updateImageId(torrowId: string, fileId: string, options?: TorrowOptions): Promise<UpdateFileIdResp>;
@@ -38513,17 +38527,17 @@ interface ServiceBehaviorSettingsUpdateOptions {
38513
38527
  signal?: AbortSignal;
38514
38528
  }
38515
38529
 
38516
- type ServiceItemApi = ServiceItemApiDto;
38530
+ type ServiceItemApi = NormalizedPublicity<ServiceItemApiDto>;
38517
38531
  type ResourceGroup = NonNullable<ServiceItemApi["resourceGroupList"]>[number];
38518
38532
  type BookingProperties = NonNullable<ResourceGroup["bookingProperties"]>;
38519
38533
  type CreateOrderReq = CreateOrderReqDto;
38520
- type OrderResp = OrderRespDto;
38534
+ type OrderResp = NormalizedPublicity<OrderRespDto>;
38521
38535
  type SearchServiceResourcesReq = SearchServiceResourcesReqDto;
38522
- type SearchServiceResourcesResp = SearchServiceResourcesRespDto;
38536
+ type SearchServiceResourcesResp = NormalizedPublicity<SearchServiceResourcesRespDto>;
38523
38537
  type StepDescription = StepDescriptionDto;
38524
38538
  type SessionDurationProperties = SessionDurationPropertiesDto;
38525
38539
  type GetServiceWorkloadInfoRequest = GetServiceWorkloadInfoRequestDto;
38526
- type GetServiceWorkloadInfoResp = GetServiceWorkloadInfoRespDto;
38540
+ type GetServiceWorkloadInfoResp = NormalizedPublicity<GetServiceWorkloadInfoRespDto>;
38527
38541
  type GetTimetableStatisticsRequest = GetTimetableStatisticsRequestDto;
38528
38542
  type TimetableStatisticsResp = TimetableStatisticsRespDto;
38529
38543
  type GetCheckInScheduleReq = GetCheckInScheduleReqDto;
@@ -38835,7 +38849,7 @@ type CaseItemPatch = TorrowItemPatchFields & ItemPricePatchFields & {
38835
38849
  /** Правила начислений лояльности целиком; []/null очищают список. */
38836
38850
  loyaltyTransactionPropertiesList?: CaseItem["loyaltyTransactionPropertiesList"];
38837
38851
  };
38838
- type CreateCaseReq = CreateCaseReqDto;
38852
+ type CreateCaseReq = NormalizedPublicity<CreateCaseReqDto>;
38839
38853
  type AvailabilityTime = AvailabilityTimeDto;
38840
38854
  type CaseParticipantType = CaseParticipantTypeDto;
38841
38855
  /**
@@ -38846,7 +38860,7 @@ type CaseParticipantType = CaseParticipantTypeDto;
38846
38860
  * Проверка против живого API — отдельно (integration / ручные тесты).
38847
38861
  */
38848
38862
  type CaseParticipant = CaseParticipantDto;
38849
- type CaseParticipantView = CaseParticipantViewDto;
38863
+ type CaseParticipantView = NormalizedPublicity<CaseParticipantViewDto>;
38850
38864
  type CaseParticipantFields = CaseParticipantFieldsDto;
38851
38865
  type GetCaseParticipationCountResp = GetCaseParticipationCountRespDto;
38852
38866
  type CheckInReq = CheckInReqDto;
@@ -39479,16 +39493,16 @@ type ResourcePaymentPatchProperties = PaymentPatchConfiguration<PaymentProviderT
39479
39493
  /** Предметные параметры всех ветвей payment patch; paymentProviderType выбирает класс, text/beforePayMessage/afterPayMessage — общие сообщения, остальные атрибуты относятся к выбранному провайдеру в ResourcePaymentPatchProperties. */
39480
39494
  type ResourcePaymentPatchParameters = NonNullable<ResourcePaymentPatchProperties["parameters"]>;
39481
39495
 
39482
- type ResourceItemApi = ResourceItemApiDto;
39496
+ type ResourceItemApi = NormalizedPublicity<ResourceItemApiDto>;
39483
39497
  type ServiceDescription = NonNullable<ResourceItemApi["serviceDescriptions"]>[number];
39484
39498
  type UsageCondition = NonNullable<ResourceItemApi["usageCondition"]>;
39485
39499
  /** Дополнительные и исключающие условия; отсутствие условия и неизвестный sentinel сюда не входят. */
39486
39500
  type ResourceUsageConditionType = Exclude<UsageConditionType, `${UsageConditionTypeWireValues.Unknown | UsageConditionTypeWireValues.None}`>;
39487
39501
  type WorkloadPeriod = WorkloadPeriodDto;
39488
39502
  type PickOrderReq = PickOrderReqDto;
39489
- type PickOrderResp = PickOrderRespDto;
39503
+ type PickOrderResp = NormalizedPublicity<PickOrderRespDto>;
39490
39504
  type ReturnOrderReq = ReturnOrderReqDto;
39491
- type ReturnOrderResp = ReturnOrderRespDto;
39505
+ type ReturnOrderResp = NormalizedPublicity<ReturnOrderRespDto>;
39492
39506
  type ResourceItem = TorrowItemFromDto<ResourceItemApi> & {
39493
39507
  behaviorSettings?: ResourceBehaviorSettings;
39494
39508
  };
@@ -39977,9 +39991,9 @@ declare class AuthFacade {
39977
39991
  }
39978
39992
 
39979
39993
  /** @see components.schemas.ProfileListResp */
39980
- type ProfileListResp = ProfileListRespDto;
39994
+ type ProfileListResp = NormalizedPublicity<ProfileListRespDto>;
39981
39995
  /** @see components.schemas.RemoveProfileResp */
39982
- type RemoveProfileResp = RemoveProfileRespDto;
39996
+ type RemoveProfileResp = NormalizedPublicity<RemoveProfileRespDto>;
39983
39997
  /** @see components.schemas.UpdateProfilePropertiesResp */
39984
39998
  type UpdateProfilePropertiesResp = UpdateProfilePropertiesRespDto;
39985
39999
  /** @see components.schemas.ProfileProperties */
@@ -40094,15 +40108,15 @@ declare function isTorrowItemType(value: string): value is TorrowItemType;
40094
40108
 
40095
40109
  /** Представление узла в mind map / персональном списке под родителем — тип зависит от `TorrowItemType`. */
40096
40110
  type TorrowItemViewByTypeMap = {
40097
- Contact: OpenApiSchemas["ContactView"];
40098
- Note: OpenApiSchemas["NoteView"];
40099
- Context: OpenApiSchemas["ContextView"];
40100
- Resource: OpenApiSchemas["ResourceView"];
40101
- Service: OpenApiSchemas["ServiceView"];
40102
- Case: OpenApiSchemas["CaseView"];
40103
- Calendar: OpenApiSchemas["CalendarView"];
40104
- LoyaltyCard: OpenApiSchemas["LoyaltyCardView"];
40105
- LoyaltySystem: OpenApiSchemas["LoyaltySystemView"];
40111
+ Contact: NormalizedPublicity<OpenApiSchemas["ContactView"]>;
40112
+ Note: NormalizedPublicity<OpenApiSchemas["NoteView"]>;
40113
+ Context: NormalizedPublicity<OpenApiSchemas["ContextView"]>;
40114
+ Resource: NormalizedPublicity<OpenApiSchemas["ResourceView"]>;
40115
+ Service: NormalizedPublicity<OpenApiSchemas["ServiceView"]>;
40116
+ Case: NormalizedPublicity<OpenApiSchemas["CaseView"]>;
40117
+ Calendar: NormalizedPublicity<OpenApiSchemas["CalendarView"]>;
40118
+ LoyaltyCard: NormalizedPublicity<OpenApiSchemas["LoyaltyCardView"]>;
40119
+ LoyaltySystem: NormalizedPublicity<OpenApiSchemas["LoyaltySystemView"]>;
40106
40120
  };
40107
40121
  type TorrowItemView = TorrowItemViewByTypeMap[TorrowItemType];
40108
40122
  type ViewListQuery = {
@@ -40129,16 +40143,16 @@ type ViewOrderInput = {
40129
40143
  order: number;
40130
40144
  };
40131
40145
  type ViewInfo = ViewInfoDto;
40132
- type ContactView = ContactViewDto;
40133
- type NoteView = NoteViewDto;
40134
- type ContextView = ContextViewDto;
40146
+ type ContactView = NormalizedPublicity<ContactViewDto>;
40147
+ type NoteView = NormalizedPublicity<NoteViewDto>;
40148
+ type ContextView = NormalizedPublicity<ContextViewDto>;
40135
40149
  /** Представление ресурса в mind map (та же схема `ResourceView`, что в поиске ресурсов услуги). */
40136
- type ResourceMindMapView = ResourceMindMapViewDto;
40137
- type ServiceView = ServiceViewDto;
40138
- type CaseView = CaseViewDto;
40139
- type CalendarView = CalendarViewDto;
40140
- type LoyaltyCardView = LoyaltyCardViewDto;
40141
- type LoyaltySystemView = LoyaltySystemViewDto;
40150
+ type ResourceMindMapView = NormalizedPublicity<ResourceMindMapViewDto>;
40151
+ type ServiceView = NormalizedPublicity<ServiceViewDto>;
40152
+ type CaseView = NormalizedPublicity<CaseViewDto>;
40153
+ type CalendarView = NormalizedPublicity<CalendarViewDto>;
40154
+ type LoyaltyCardView = NormalizedPublicity<LoyaltyCardViewDto>;
40155
+ type LoyaltySystemView = NormalizedPublicity<LoyaltySystemViewDto>;
40142
40156
 
40143
40157
  /** Закреплённые представления (`views/pinned`). */
40144
40158
  declare class PinnedViewsFacade {
@@ -40323,7 +40337,7 @@ declare class SearchFacade {
40323
40337
  /** `GET /api/v1/search/adviseditems` — `NearLocation` (гео) / `Recommendation`. */
40324
40338
  advisedItems(query?: AdvisedItemsSearchQuery, options?: {
40325
40339
  signal?: AbortSignal;
40326
- }): Promise<TorrowItemDto[]>;
40340
+ }): Promise<TorrowItem[]>;
40327
40341
  /**
40328
40342
  * `PUT /api/v1/search/{torrowId}/orders` — заказы (события-заказы) под элементом с фильтром.
40329
40343
  * Тело **`OrderFilter`**; см. также **`examples/node/raw/search-orders-raw.ts`** (сырой `raw.put`).
@@ -40395,7 +40409,7 @@ declare class SearchFacade {
40395
40409
  }): Promise<ServiceView[]>;
40396
40410
  }
40397
40411
 
40398
- type ActionHistoryInfo = ActionHistoryInfoDto;
40412
+ type ActionHistoryInfo = NormalizedPublicity<ActionHistoryInfoDto>;
40399
40413
  type ActionHistoryType = ActionHistoryTypeDto;
40400
40414
  type ActionHistoryState = ActionHistoryStateDto;
40401
40415
  /**
@@ -40493,7 +40507,7 @@ declare class AccountingTransactionsFacade {
40493
40507
  }): Promise<AccountingTransaction[]>;
40494
40508
  }
40495
40509
 
40496
- type AnnouncementInfo = AnnouncementInfoDto;
40510
+ type AnnouncementInfo = NormalizedPublicity<AnnouncementInfoDto>;
40497
40511
  type AnnouncementState = AnnouncementStateDto;
40498
40512
  type UpdateAnnouncementStateReq = UpdateAnnouncementStateReqDto;
40499
40513
  /**
@@ -40534,8 +40548,8 @@ declare class AnnouncementsFacade {
40534
40548
  }
40535
40549
 
40536
40550
  type ExportRequest = ExportRequestDto;
40537
- type ExportGraph = ExportGraphDto;
40538
- type ImportByFileRequest = ImportByFileRequestDto;
40551
+ type ExportGraph = NormalizedPublicity<ExportGraphDto>;
40552
+ type ImportByFileRequest = NormalizedPublicity<ImportByFileRequestDto>;
40539
40553
  type ImportByUniqueNameRequest = ImportByUniqueNameRequestDto;
40540
40554
 
40541
40555
  /**
@@ -41019,7 +41033,7 @@ type DeviceSettingsInfo = {
41019
41033
  };
41020
41034
  type UserDeliveryWay = UserDeliveryWayDto;
41021
41035
  type DeliveryChannel = DeliveryChannelDto;
41022
- type RegistrationUserInfo = RegistrationUserInfoDto;
41036
+ type RegistrationUserInfo = NormalizedPublicity<RegistrationUserInfoDto>;
41023
41037
  type RegisterUserForAccountResp = RegisterUserForAccountRespDto;
41024
41038
  type UserCalendar = UserCalendarDto;
41025
41039
  type InitDeletingUserResp = InitDeletingUserRespDto;
@@ -41052,7 +41066,7 @@ declare class UserFacade {
41052
41066
  /** `GET /api/v1/user/loyaltycard` */
41053
41067
  getLoyaltyCard(options?: {
41054
41068
  signal?: AbortSignal;
41055
- }): Promise<LoyaltyCardItemDto>;
41069
+ }): Promise<LoyaltyCardItem>;
41056
41070
  /** `GET /api/v1/user/accounts` */
41057
41071
  listAccounts(query?: UserAccountsQuery, options?: {
41058
41072
  signal?: AbortSignal;
@@ -41277,9 +41291,9 @@ declare class IntegrationsFacade {
41277
41291
  delete(integrationId: string, options?: TorrowOptions): Promise<number>;
41278
41292
  }
41279
41293
 
41280
- type Feedback = FeedbackDto;
41281
- type ItemFeedback = ItemFeedbackDto;
41282
- type UserFeedback = UserFeedbackDto;
41294
+ type Feedback = NormalizedPublicity<FeedbackDto>;
41295
+ type ItemFeedback = NormalizedPublicity<ItemFeedbackDto>;
41296
+ type UserFeedback = NormalizedPublicity<UserFeedbackDto>;
41283
41297
 
41284
41298
  /**
41285
41299
  * Кросс-доменные операции **Item** (отзывы, шаринг-сессия, uniquename).
@@ -41638,6 +41652,7 @@ interface TorrowSdkSensitiveDetails {
41638
41652
  /** Безопасный снимок ошибки. Отсутствие effects не доказывает отсутствие изменений. */
41639
41653
  interface TorrowSdkErrorInfo {
41640
41654
  /** Общая причина отказа. */ readonly category: TorrowSdkErrorCategory;
41655
+ /** Необязательное пояснение для человека, не для ветвления. Передающий текст отвечает за его безопасность. */ readonly publicMessage?: string;
41641
41656
  /** Метаданные HTTP, если они известны. */ readonly http?: TorrowSdkHttpDetails;
41642
41657
  /** Предметное уточнение выбранного домена. */ readonly detail?: TorrowSdkErrorDetail;
41643
41658
  /** Начало fetch соответствующего запроса. */ readonly request?: TorrowSdkRequestState;
@@ -41653,6 +41668,7 @@ interface TorrowSdkErrorInit extends TorrowSdkErrorInfo {
41653
41668
  declare class TorrowSdkError extends Error implements TorrowSdkErrorInfo {
41654
41669
  #private;
41655
41670
  /** Общая причина отказа. */ readonly category: TorrowSdkErrorCategory;
41671
+ /** Пояснение без изменения исходной строки: до 512 UTF-16 единиц, не пустое после trim; иначе undefined. */ readonly publicMessage?: string;
41656
41672
  /** Безопасные метаданные ответа. */ readonly http?: TorrowSdkHttpDetails;
41657
41673
  /** Неизменяемое предметное уточнение. */ readonly detail?: TorrowSdkErrorDetail;
41658
41674
  /** Начало fetch; не доставка. */ readonly request?: TorrowSdkRequestState;