itd-api 0.9.2 → 0.9.3
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/events/index.cjs +2 -2
- package/dist/events/index.d.cts +2 -2
- package/dist/events/index.d.ts +2 -2
- package/dist/events/index.js +2 -2
- package/dist/index.cjs +87 -53
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -10
- package/dist/index.d.ts +8 -10
- package/dist/index.js +87 -53
- package/dist/index.js.map +1 -1
- package/dist/rest/index.cjs +2 -2
- package/dist/rest/index.d.cts +2 -2
- package/dist/rest/index.d.ts +2 -2
- package/dist/rest/index.js +2 -2
- package/dist/shared/{events-BCn5LRnT.d.cts → events-BPxBF0gQ.d.cts} +2 -2
- package/dist/shared/{events-BIBO2Jif.js → events-BzjI6pn5.js} +2 -2
- package/dist/shared/{events-BIBO2Jif.js.map → events-BzjI6pn5.js.map} +1 -1
- package/dist/shared/{events-BsRm_Fba.cjs → events-C1FudmSe.cjs} +2 -2
- package/dist/shared/{events-BsRm_Fba.cjs.map → events-C1FudmSe.cjs.map} +1 -1
- package/dist/shared/{events-t1uGgpkf.d.ts → events-DnwfcLxS.d.ts} +2 -2
- package/dist/shared/{render-DA83gS0f.d.cts → render-C1F_QWYD.d.cts} +2 -14
- package/dist/shared/{render--ZXmYEf-.js → render-CtOpp9Pm.js} +2 -30
- package/dist/shared/render-CtOpp9Pm.js.map +1 -0
- package/dist/shared/{render-DqVzx68r.cjs → render-Omy1drH1.cjs} +2 -30
- package/dist/shared/render-Omy1drH1.cjs.map +1 -0
- package/dist/shared/{render-BdnBV-aT.d.ts → render-uFW2kDxp.d.ts} +2 -14
- package/dist/shared/{url-i2f-X1hX.js → url-3Ts6EEHQ.js} +32 -15
- package/dist/shared/url-3Ts6EEHQ.js.map +1 -0
- package/dist/shared/{url-Doc0XXW_.cjs → url-D6wsXm1T.cjs} +32 -15
- package/dist/shared/url-D6wsXm1T.cjs.map +1 -0
- package/dist/shared/{url-Dbj6V6fk.d.ts → url-DubjkRR9.d.cts} +8 -16
- package/dist/shared/{url-Dbj6V6fk.d.cts → url-DubjkRR9.d.ts} +8 -16
- package/package.json +3 -3
- package/dist/shared/render--ZXmYEf-.js.map +0 -1
- package/dist/shared/render-DqVzx68r.cjs.map +0 -1
- package/dist/shared/url-Doc0XXW_.cjs.map +0 -1
- package/dist/shared/url-i2f-X1hX.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $ as isItdStateError, $t as DEFAULT_RATE_LIMIT_BUCKET, A as ItdErrorKind, At as RequestOptions, B as ItdStateError, Bt as RuntimeMode, C as ItdApiError, Ct as PaginationOptions, D as ItdConfigError, Dt as RawRequestOptions, E as ItdAuthError, Et as RateLimitOptions, F as ItdNetworkError, Ft as RuntimeOptions, G as isItdConflictError, Gt as ItdOperationDefinition, H as ItdValidationError, Ht as systemClock, I as ItdNotFoundError, It as QueryParams, J as isItdForbiddenError, Jt as isBuiltInOperationId, K as isItdError, Kt as OPERATIONS, L as ItdPhoneVerificationError, Lt as QueryValue, M as ItdFileError, Mt as RetryContext, N as ItdFileErrorReason, Nt as RetryDecisionContext, O as ItdConflictError, Ot as RequestContext, P as ItdForbiddenError, Pt as RetryOptions, Q as isItdServerError, Qt as BUCKET_LIMITS, R as ItdRateLimitError, Rt as ServiceDefinition, S as ItdAbortError, Sn as WallAccess, St as OperationRequestOptions, T as ItdApiErrorKind, Tt as RateLimitBucketOverride, U as isItdApiError, Ut as BuiltInOperationId, V as ItdTimeoutError, Vt as ItdClock, W as isItdAuthError, Wt as CustomOperationId, X as isItdPhoneVerificationError, Xt as operationMethod, Y as isItdNotFoundError, Yt as operationBucket, Z as isItdRateLimitError, Zt as operationRetrySafety, _ as PrivacySettings, _n as ReportTargetType, _t as OperationMethod, a as NotificationEvent, an as AccessType, b as SubscriptionState, bn as ViewReason, bt as ErrorContextHook, c as NotificationSettings, cn as EventChannelStatus, ct as Listener, d as AuthUser, dn as InteractionType, dt as STATUS_SERVICE, en as RateLimitBucket, et as isItdValidationError, f as Author, fn as ItdErrorCode, ft as LIBRARY_VERSION, g as PinsResult, gn as ReportReason, gt as OperationMetadata, h as Pin, hn as NotificationType, i as formatNotificationText, in as UserRef, j as ItdFieldErrors, jt as ResponseContext, k as ItdError, kt as RequestExtensions, l as Actor, ln as FeedTab, lt as Unsubscribe, m as MyProfile, mn as Loose, mt as OperationAnnotations, n as canonicalNotificationType, nn as Span, nt as AuthIdentity, o as normalizeNotification, on as AttachmentType, p as FollowResult, pn as LikesVisibility, pt as FeatureOperationId, q as isItdFileError, qt as OperationId, r as isKnownNotificationType, rn as UserId, rt as AuthProvider, s as Notification, sn as CommentSort, st as Emitter, t as resolveNotificationUrl, tn as IsoDate, tt as ClientConnection, u as AuthState, un as IncidentKind, ut as DEFAULT_BASE_URL, v as Profile, vn as ServiceState, vt as RetrySafety, w as ItdApiErrorInit, wt as RateLimitBucketContext, x as UserSummary, xn as ViewSource, xt as Logger, y as PublicProfile, yn as SpanType, yt as ClientHooks, z as ItdServerError, zt as RateLimitPacing } from "./shared/url-
|
|
2
|
-
import { $ as ShopConsentContext, $n as PaginationMode, $t as markup, A as DwellEntry, An as Post, At as report, B as ViewTrackerInput, Bn as CreatePollInput, Bt as PollBuilder, C as fromStream, Cn as CommentReplyTo, Cr as OperationExtensions, Ct as ShopSizeChart, D as UpdateProfileInput, Dn as PinPostResult, Dr as PluginTeardown, Dt as ReportsResource, E as UpdatePrivacyInput, En as LikeResult, Er as PluginApi, Et as SearchResult, F as TelemetryClock, Fn as comment, Ft as CreatePostInput, G as ShopConsentsResource, Gn as Session, Gt as parseMarkdown, H as SubscriptionResource, Hn as CreateReportInput, Ht as poll, I as TelemetryOptions, In as BuilderInput, It as PostBuilder, J as ShopOrdersResource, Jn as NotificationsResource, Jt as MarkupContent, K as ShopDeliveryResource, Kn as Subscription, Kt as AutoSpansOptions, L as TelemetryResource, Ln as ItdBuilder, Lt as PostInput, M as PhotoOpenInput, Mn as PostUpdateResult, Mt as FeedParams, N as TelemetryBatch, Nn as CommentBuilder, Nt as PostsResource, O as UserListParams, On as Poll, Or as CookieJar, Ot as ReportBuilder, P as TelemetryBatchOptions, Pn as CommentInput, Pt as UserPostsParams, Q as ShopConsent, Qn as PageState, Qt as autoSpans, R as VideoProgressInput, Rn as isBuilder, Rt as PostUpdateInput, S as VideoMimeType, Sn as Comment, Sr as ClientPlugin, St as ShopRecipient, T as VerificationResource, Tn as Hashtag, Tr as OperationTransformer, Tt as SearchResource, U as CreateShopOrderOptions, Un as UpdatePostInput, Ut as ParseMarkupOptions, V as ViewTrackerOptions, Vn as CreatePostData, Vt as PollInput, W as PayShopOrderOptions, Wn as PaymentMethod, Wt as parseHtml, X as ShopResource, Xn as BaseResource, Xt as MarkupSpan, Y as ShopProductsResource, Yn as UpdateNotificationSettingsInput, Yt as MarkupInput, Z as CreateShopOrderInput, Zn as Page, Zt as TextMarkup, _ as AllowedMimeType, _n as UploadOptions, _r as HttpClient, _t as ShopProduct, a as ShopFeatureOptions, an as StatusDay, ar as FeatureBucketDefinition, at as ShopDeliveryDestination, b as ImageMimeType, bn as RepliesParams, br as AttemptInterceptor, bt as ShopProductSpec, c as ShopOrderAccessStorage, cn as AnnouncementButton, cr as FeatureOperationDefinition, ct as ShopOrderAccessSession, d as statusDays, dn as Portal, dr as FileResolver, dt as ShopOrderItem, en as PlatformClientVersion, er as Paginator, et as ShopConsentKind, f as isMyProfile, fn as Report, fr as PreparedBufferSource, ft as ShopOrderItemInput, g as AUDIO_MIME_TYPES, gn as FilesResource, gr as ResolveFileOptions, gt as ShopPayment, h as ALLOWED_MIME_TYPES, hn as HashtagsResource, hr as ResolveFileContext, ht as ShopOrderSupport, i as ShopFeatureApi, in as ServiceStatus, ir as ClientFeature, it as ShopDeliveryCountry, j as InteractionEntry, jn as PostStats, jt as CommentsParams, k as UsersResource, kn as PollOption, kt as ReportInput, l as ShopOrderAccessStorageAdapterOptions, ln as ChangelogEntry, lr as FeatureRequestOptions, lt as ShopOrderAccessVerification, m as utcStampToIso, mn as HashtagPostsParams, mr as PreparedStreamSource, mt as ShopOrderSummary, n as SpanRenderFormat, nn as PlatformVersions, nr as mapPage, nt as ShopDeliveryCalculation, o as createShopFeature, on as StatusIncidentLine, or as FeatureContext, ot as ShopDeliveryPoint, p as toDate, pn as VerificationStatus, pr as PreparedFileSource, pt as ShopOrderStatus, q as ShopOrderRequestOptions, qn as NotificationListParams, qt as MarkupBuilder, r as renderSpans, rn as PlatformStatus, rr as RateLimitBucketState, rt as ShopDeliveryCity, s as MemoryShopOrderAccessStorage, sn as Announcement, sr as FeatureInstallation, st as ShopOrder, t as RenderSpansOptions, tn as PlatformResource, tr as PaginatorOptions, tt as ShopCreatedOrder, u as createShopOrderAccessStorage, un as Clan, ur as ManagedClientResource, ut as ShopOrderDelivery, v as AudioMimeType, vn as UploadedFile, vr as AttemptContext, vt as ShopProductCategory, w as fromUrl, wn as CommentUpdateResult, wr as OperationTransformContext, wt as ShopSizeChartRow, x as VIDEO_MIME_TYPES, xn as Attachment, xr as AttemptNext, xt as ShopProductStatus, y as IMAGE_MIME_TYPES, yn as CommentsResource, yr as AttemptExtensions, yt as ShopProductColor, z as ViewTracker, zn as CreateCommentInput, zt as post } from "./shared/render-
|
|
3
|
-
import { $ as EventTransportContext, A as EventHandler, B as NotificationEventContext, C as EventChannelDeps, D as EventSession, E as EventEnqueueOptions, F as EventSequentializer, G as NotificationOfType, H as NotificationEventOfType, I as EventTypeGuard, J as NotificationUpdateOrigin, K as NotificationUpdate, L as runEventMiddleware, M as EventMiddlewareObject, N as EventNext, O as EventSyncReason, P as EventPredicate, Q as EventTransport, R as EventContext, S as EventChannel, T as EventChannelOptions, U as NotificationEventSelector, V as NotificationEventFilter, W as NotificationEventsUpdate, X as UnknownNotificationUpdate, Y as NotificationUpdateType, Z as UnreadCountUpdate, _ as createNotificationEventsClient, a as WebSocketTransportOptions, b as NotificationEventsOptions, c as EventErrorContext, d as EventMiddlewareLike, et as EventTransportFrame, f as EventRouteTable, g as NotificationEventsClientOptions, h as NotificationEventsClient, i as WebSocketTransport, j as EventMiddleware, k as ReconnectOptions, l as EventFilter, m as EventRouter, n as WebSocketLike, o as EventComposer, p as EventRouteSelector, q as NotificationUpdateOfType, r as WebSocketOpenFailureClassifier, s as EventErrorBoundary, t as WebSocketImplementationOptions, tt as UnauthorizedStreamError, u as EventMiddlewareGroup, v as NotificationEvents, w as EventChannelEvents, x as NotificationEventsTransport, y as NotificationEventsMap, z as NotificationContext } from "./shared/events-
|
|
1
|
+
import { $ as isItdStateError, $t as DEFAULT_RATE_LIMIT_BUCKET, A as ItdErrorKind, At as RequestOptions, B as ItdStateError, Bt as RuntimeMode, C as ItdApiError, Ct as PaginationOptions, D as ItdConfigError, Dt as RawRequestOptions, E as ItdAuthError, Et as RateLimitOptions, F as ItdNetworkError, Ft as RuntimeOptions, G as isItdConflictError, Gt as ItdOperationDefinition, H as ItdValidationError, Ht as systemClock, I as ItdNotFoundError, It as QueryParams, J as isItdForbiddenError, Jt as isBuiltInOperationId, K as isItdError, Kt as OPERATIONS, L as ItdPhoneVerificationError, Lt as QueryValue, M as ItdFileError, Mt as RetryContext, N as ItdFileErrorReason, Nt as RetryDecisionContext, O as ItdConflictError, Ot as RequestContext, P as ItdForbiddenError, Pt as RetryOptions, Q as isItdServerError, Qt as BUCKET_LIMITS, R as ItdRateLimitError, Rt as ServiceDefinition, S as ItdAbortError, Sn as WallAccess, St as OperationRequestOptions, T as ItdApiErrorKind, Tt as RateLimitBucketOverride, U as isItdApiError, Ut as BuiltInOperationId, V as ItdTimeoutError, Vt as ItdClock, W as isItdAuthError, Wt as CustomOperationId, X as isItdPhoneVerificationError, Xt as operationMethod, Y as isItdNotFoundError, Yt as operationBucket, Z as isItdRateLimitError, Zt as operationRetrySafety, _ as PrivacySettings, _n as ReportTargetType, _t as OperationMethod, a as NotificationEvent, an as AccessType, b as SubscriptionState, bn as ViewReason, bt as ErrorContextHook, c as NotificationSettings, cn as EventChannelStatus, ct as Listener, d as AuthUser, dn as InteractionType, dt as STATUS_SERVICE, en as RateLimitBucket, et as isItdValidationError, f as Author, fn as ItdErrorCode, ft as LIBRARY_VERSION, g as PinsResult, gn as ReportReason, gt as OperationMetadata, h as Pin, hn as NotificationType, i as formatNotificationText, in as UserRef, j as ItdFieldErrors, jt as ResponseContext, k as ItdError, kt as RequestExtensions, l as Actor, ln as FeedTab, lt as Unsubscribe, m as MyProfile, mn as Loose, mt as OperationAnnotations, n as canonicalNotificationType, nn as Span, nt as AuthIdentity, o as normalizeNotification, on as AttachmentType, p as FollowResult, pn as LikesVisibility, pt as FeatureOperationId, q as isItdFileError, qt as OperationId, r as isKnownNotificationType, rn as UserId, rt as AuthProvider, s as Notification, sn as CommentSort, st as Emitter, t as resolveNotificationUrl, tn as IsoDate, tt as ClientConnection, u as AuthState, un as IncidentKind, ut as DEFAULT_BASE_URL, v as Profile, vn as ServiceState, vt as RetrySafety, w as ItdApiErrorInit, wt as RateLimitBucketContext, x as UserSummary, xn as ViewSource, xt as Logger, y as PublicProfile, yn as SpanType, yt as ClientHooks, z as ItdServerError, zt as RateLimitPacing } from "./shared/url-DubjkRR9.cjs";
|
|
2
|
+
import { $ as ShopConsentContext, $n as PaginationMode, $t as markup, A as DwellEntry, An as Post, At as report, B as ViewTrackerInput, Bn as CreatePollInput, Bt as PollBuilder, C as fromStream, Cn as CommentReplyTo, Cr as OperationExtensions, Ct as ShopSizeChart, D as UpdateProfileInput, Dn as PinPostResult, Dr as PluginTeardown, Dt as ReportsResource, E as UpdatePrivacyInput, En as LikeResult, Er as PluginApi, Et as SearchResult, F as TelemetryClock, Fn as comment, Ft as CreatePostInput, G as ShopConsentsResource, Gn as Session, Gt as parseMarkdown, H as SubscriptionResource, Hn as CreateReportInput, Ht as poll, I as TelemetryOptions, In as BuilderInput, It as PostBuilder, J as ShopOrdersResource, Jn as NotificationsResource, Jt as MarkupContent, K as ShopDeliveryResource, Kn as Subscription, Kt as AutoSpansOptions, L as TelemetryResource, Ln as ItdBuilder, Lt as PostInput, M as PhotoOpenInput, Mn as PostUpdateResult, Mt as FeedParams, N as TelemetryBatch, Nn as CommentBuilder, Nt as PostsResource, O as UserListParams, On as Poll, Or as CookieJar, Ot as ReportBuilder, P as TelemetryBatchOptions, Pn as CommentInput, Pt as UserPostsParams, Q as ShopConsent, Qn as PageState, Qt as autoSpans, R as VideoProgressInput, Rn as isBuilder, Rt as PostUpdateInput, S as VideoMimeType, Sn as Comment, Sr as ClientPlugin, St as ShopRecipient, T as VerificationResource, Tn as Hashtag, Tr as OperationTransformer, Tt as SearchResource, U as CreateShopOrderOptions, Un as UpdatePostInput, Ut as ParseMarkupOptions, V as ViewTrackerOptions, Vn as CreatePostData, Vt as PollInput, W as PayShopOrderOptions, Wn as PaymentMethod, Wt as parseHtml, X as ShopResource, Xn as BaseResource, Xt as MarkupSpan, Y as ShopProductsResource, Yn as UpdateNotificationSettingsInput, Yt as MarkupInput, Z as CreateShopOrderInput, Zn as Page, Zt as TextMarkup, _ as AllowedMimeType, _n as UploadOptions, _r as HttpClient, _t as ShopProduct, a as ShopFeatureOptions, an as StatusDay, ar as FeatureBucketDefinition, at as ShopDeliveryDestination, b as ImageMimeType, bn as RepliesParams, br as AttemptInterceptor, bt as ShopProductSpec, c as ShopOrderAccessStorage, cn as AnnouncementButton, cr as FeatureOperationDefinition, ct as ShopOrderAccessSession, d as statusDays, dn as Portal, dr as FileResolver, dt as ShopOrderItem, en as PlatformClientVersion, er as Paginator, et as ShopConsentKind, f as isMyProfile, fn as Report, fr as PreparedBufferSource, ft as ShopOrderItemInput, g as AUDIO_MIME_TYPES, gn as FilesResource, gr as ResolveFileOptions, gt as ShopPayment, h as ALLOWED_MIME_TYPES, hn as HashtagsResource, hr as ResolveFileContext, ht as ShopOrderSupport, i as ShopFeatureApi, in as ServiceStatus, ir as ClientFeature, it as ShopDeliveryCountry, j as InteractionEntry, jn as PostStats, jt as CommentsParams, k as UsersResource, kn as PollOption, kt as ReportInput, l as ShopOrderAccessStorageAdapterOptions, ln as ChangelogEntry, lr as FeatureRequestOptions, lt as ShopOrderAccessVerification, m as utcStampToIso, mn as HashtagPostsParams, mr as PreparedStreamSource, mt as ShopOrderSummary, n as SpanRenderFormat, nn as PlatformVersions, nr as mapPage, nt as ShopDeliveryCalculation, o as createShopFeature, on as StatusIncidentLine, or as FeatureContext, ot as ShopDeliveryPoint, p as toDate, pn as VerificationStatus, pr as PreparedFileSource, pt as ShopOrderStatus, q as ShopOrderRequestOptions, qn as NotificationListParams, qt as MarkupBuilder, r as renderSpans, rn as PlatformStatus, rr as RateLimitBucketState, rt as ShopDeliveryCity, s as MemoryShopOrderAccessStorage, sn as Announcement, sr as FeatureInstallation, st as ShopOrder, t as RenderSpansOptions, tn as PlatformResource, tr as PaginatorOptions, tt as ShopCreatedOrder, u as createShopOrderAccessStorage, un as Clan, ur as ManagedClientResource, ut as ShopOrderDelivery, v as AudioMimeType, vn as UploadedFile, vr as AttemptContext, vt as ShopProductCategory, w as fromUrl, wn as CommentUpdateResult, wr as OperationTransformContext, wt as ShopSizeChartRow, x as VIDEO_MIME_TYPES, xn as Attachment, xr as AttemptNext, xt as ShopProductStatus, y as IMAGE_MIME_TYPES, yn as CommentsResource, yr as AttemptExtensions, yt as ShopProductColor, z as ViewTracker, zn as CreateCommentInput, zt as post } from "./shared/render-C1F_QWYD.cjs";
|
|
3
|
+
import { $ as EventTransportContext, A as EventHandler, B as NotificationEventContext, C as EventChannelDeps, D as EventSession, E as EventEnqueueOptions, F as EventSequentializer, G as NotificationOfType, H as NotificationEventOfType, I as EventTypeGuard, J as NotificationUpdateOrigin, K as NotificationUpdate, L as runEventMiddleware, M as EventMiddlewareObject, N as EventNext, O as EventSyncReason, P as EventPredicate, Q as EventTransport, R as EventContext, S as EventChannel, T as EventChannelOptions, U as NotificationEventSelector, V as NotificationEventFilter, W as NotificationEventsUpdate, X as UnknownNotificationUpdate, Y as NotificationUpdateType, Z as UnreadCountUpdate, _ as createNotificationEventsClient, a as WebSocketTransportOptions, b as NotificationEventsOptions, c as EventErrorContext, d as EventMiddlewareLike, et as EventTransportFrame, f as EventRouteTable, g as NotificationEventsClientOptions, h as NotificationEventsClient, i as WebSocketTransport, j as EventMiddleware, k as ReconnectOptions, l as EventFilter, m as EventRouter, n as WebSocketLike, o as EventComposer, p as EventRouteSelector, q as NotificationUpdateOfType, r as WebSocketOpenFailureClassifier, s as EventErrorBoundary, t as WebSocketImplementationOptions, tt as UnauthorizedStreamError, u as EventMiddlewareGroup, v as NotificationEvents, w as EventChannelEvents, x as NotificationEventsTransport, y as NotificationEventsMap, z as NotificationContext } from "./shared/events-BPxBF0gQ.cjs";
|
|
4
4
|
import { a as FileStreamOptions, c as LazyFile, d as UrlFileOptions, i as FileStreamContent, l as StreamFile, n as FileContext, o as FileTransferMode, r as FileInput, s as FromStreamOptions, t as FileContent, u as UrlFile } from "./shared/contracts-BoT7msmq.cjs";
|
|
5
5
|
import { a as KeyValueStoreResult, c as createKeyValueStore, d as withCodec, f as withNamespace, i as KeyValueStoreKeys, l as createRecordKeyValueStore, n as KeyValueCodec, o as MemoryKeyValueStore, r as KeyValueStore, s as RecordKeyValueStoreSource, t as EnumerableKeyValueStore, u as isEnumerableKeyValueStore } from "./shared/key-value-store-COZaNHZS.cjs";
|
|
6
6
|
import { a as createTokenStorage, i as TokenStorageAdapterOptions, n as MemoryTokenStorage, r as TokenStorage, t as ItdSession } from "./shared/storage-BQrtKon9.cjs";
|
|
@@ -66,7 +66,8 @@ interface SessionOptions {
|
|
|
66
66
|
/** Где хранить сессию. По умолчанию {@link MemoryTokenStorage}. */
|
|
67
67
|
storage?: TokenStorage | undefined;
|
|
68
68
|
/**
|
|
69
|
-
* Обновлять токен
|
|
69
|
+
* Обновлять токен перед истечением и восстанавливать сессию при ответе `401`.
|
|
70
|
+
* По умолчанию `true`.
|
|
70
71
|
*
|
|
71
72
|
* При `false` библиотека просто пробросит {@link ItdAuthError}, а обновлением
|
|
72
73
|
* вы управляете сами через `itd.auth.refresh()`.
|
|
@@ -233,12 +234,9 @@ declare class AuthManager implements AuthProvider {
|
|
|
233
234
|
* ответ был бы `false` даже при полностью рабочей сохранённой сессии.
|
|
234
235
|
*/
|
|
235
236
|
hasRefreshSession(): Promise<boolean>;
|
|
236
|
-
/**
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
* Загрузка хранилища, внешний источник токена и отложенный вход асинхронны, поэтому
|
|
240
|
-
* обязаны завершиться до захвата слота очереди.
|
|
241
|
-
*/
|
|
237
|
+
/** Готовит внутреннюю сессию до retry исходного запроса. */
|
|
238
|
+
preflight(allowRefresh: boolean): Promise<void>;
|
|
239
|
+
/** Перед каждой попыткой перечитывает внешний источник токена. */
|
|
242
240
|
prepare(): Promise<void>;
|
|
243
241
|
/**
|
|
244
242
|
* Заголовки уже подготовленной авторизации без чтения storage или вызова внешнего источника.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $ as isItdStateError, $t as DEFAULT_RATE_LIMIT_BUCKET, A as ItdErrorKind, At as RequestOptions, B as ItdStateError, Bt as RuntimeMode, C as ItdApiError, Ct as PaginationOptions, D as ItdConfigError, Dt as RawRequestOptions, E as ItdAuthError, Et as RateLimitOptions, F as ItdNetworkError, Ft as RuntimeOptions, G as isItdConflictError, Gt as ItdOperationDefinition, H as ItdValidationError, Ht as systemClock, I as ItdNotFoundError, It as QueryParams, J as isItdForbiddenError, Jt as isBuiltInOperationId, K as isItdError, Kt as OPERATIONS, L as ItdPhoneVerificationError, Lt as QueryValue, M as ItdFileError, Mt as RetryContext, N as ItdFileErrorReason, Nt as RetryDecisionContext, O as ItdConflictError, Ot as RequestContext, P as ItdForbiddenError, Pt as RetryOptions, Q as isItdServerError, Qt as BUCKET_LIMITS, R as ItdRateLimitError, Rt as ServiceDefinition, S as ItdAbortError, Sn as WallAccess, St as OperationRequestOptions, T as ItdApiErrorKind, Tt as RateLimitBucketOverride, U as isItdApiError, Ut as BuiltInOperationId, V as ItdTimeoutError, Vt as ItdClock, W as isItdAuthError, Wt as CustomOperationId, X as isItdPhoneVerificationError, Xt as operationMethod, Y as isItdNotFoundError, Yt as operationBucket, Z as isItdRateLimitError, Zt as operationRetrySafety, _ as PrivacySettings, _n as ReportTargetType, _t as OperationMethod, a as NotificationEvent, an as AccessType, b as SubscriptionState, bn as ViewReason, bt as ErrorContextHook, c as NotificationSettings, cn as EventChannelStatus, ct as Listener, d as AuthUser, dn as InteractionType, dt as STATUS_SERVICE, en as RateLimitBucket, et as isItdValidationError, f as Author, fn as ItdErrorCode, ft as LIBRARY_VERSION, g as PinsResult, gn as ReportReason, gt as OperationMetadata, h as Pin, hn as NotificationType, i as formatNotificationText, in as UserRef, j as ItdFieldErrors, jt as ResponseContext, k as ItdError, kt as RequestExtensions, l as Actor, ln as FeedTab, lt as Unsubscribe, m as MyProfile, mn as Loose, mt as OperationAnnotations, n as canonicalNotificationType, nn as Span, nt as AuthIdentity, o as normalizeNotification, on as AttachmentType, p as FollowResult, pn as LikesVisibility, pt as FeatureOperationId, q as isItdFileError, qt as OperationId, r as isKnownNotificationType, rn as UserId, rt as AuthProvider, s as Notification, sn as CommentSort, st as Emitter, t as resolveNotificationUrl, tn as IsoDate, tt as ClientConnection, u as AuthState, un as IncidentKind, ut as DEFAULT_BASE_URL, v as Profile, vn as ServiceState, vt as RetrySafety, w as ItdApiErrorInit, wt as RateLimitBucketContext, x as UserSummary, xn as ViewSource, xt as Logger, y as PublicProfile, yn as SpanType, yt as ClientHooks, z as ItdServerError, zt as RateLimitPacing } from "./shared/url-
|
|
2
|
-
import { $ as ShopConsentContext, $n as PaginationMode, $t as markup, A as DwellEntry, An as Post, At as report, B as ViewTrackerInput, Bn as CreatePollInput, Bt as PollBuilder, C as fromStream, Cn as CommentReplyTo, Cr as OperationExtensions, Ct as ShopSizeChart, D as UpdateProfileInput, Dn as PinPostResult, Dr as PluginTeardown, Dt as ReportsResource, E as UpdatePrivacyInput, En as LikeResult, Er as PluginApi, Et as SearchResult, F as TelemetryClock, Fn as comment, Ft as CreatePostInput, G as ShopConsentsResource, Gn as Session, Gt as parseMarkdown, H as SubscriptionResource, Hn as CreateReportInput, Ht as poll, I as TelemetryOptions, In as BuilderInput, It as PostBuilder, J as ShopOrdersResource, Jn as NotificationsResource, Jt as MarkupContent, K as ShopDeliveryResource, Kn as Subscription, Kt as AutoSpansOptions, L as TelemetryResource, Ln as ItdBuilder, Lt as PostInput, M as PhotoOpenInput, Mn as PostUpdateResult, Mt as FeedParams, N as TelemetryBatch, Nn as CommentBuilder, Nt as PostsResource, O as UserListParams, On as Poll, Or as CookieJar, Ot as ReportBuilder, P as TelemetryBatchOptions, Pn as CommentInput, Pt as UserPostsParams, Q as ShopConsent, Qn as PageState, Qt as autoSpans, R as VideoProgressInput, Rn as isBuilder, Rt as PostUpdateInput, S as VideoMimeType, Sn as Comment, Sr as ClientPlugin, St as ShopRecipient, T as VerificationResource, Tn as Hashtag, Tr as OperationTransformer, Tt as SearchResource, U as CreateShopOrderOptions, Un as UpdatePostInput, Ut as ParseMarkupOptions, V as ViewTrackerOptions, Vn as CreatePostData, Vt as PollInput, W as PayShopOrderOptions, Wn as PaymentMethod, Wt as parseHtml, X as ShopResource, Xn as BaseResource, Xt as MarkupSpan, Y as ShopProductsResource, Yn as UpdateNotificationSettingsInput, Yt as MarkupInput, Z as CreateShopOrderInput, Zn as Page, Zt as TextMarkup, _ as AllowedMimeType, _n as UploadOptions, _r as HttpClient, _t as ShopProduct, a as ShopFeatureOptions, an as StatusDay, ar as FeatureBucketDefinition, at as ShopDeliveryDestination, b as ImageMimeType, bn as RepliesParams, br as AttemptInterceptor, bt as ShopProductSpec, c as ShopOrderAccessStorage, cn as AnnouncementButton, cr as FeatureOperationDefinition, ct as ShopOrderAccessSession, d as statusDays, dn as Portal, dr as FileResolver, dt as ShopOrderItem, en as PlatformClientVersion, er as Paginator, et as ShopConsentKind, f as isMyProfile, fn as Report, fr as PreparedBufferSource, ft as ShopOrderItemInput, g as AUDIO_MIME_TYPES, gn as FilesResource, gr as ResolveFileOptions, gt as ShopPayment, h as ALLOWED_MIME_TYPES, hn as HashtagsResource, hr as ResolveFileContext, ht as ShopOrderSupport, i as ShopFeatureApi, in as ServiceStatus, ir as ClientFeature, it as ShopDeliveryCountry, j as InteractionEntry, jn as PostStats, jt as CommentsParams, k as UsersResource, kn as PollOption, kt as ReportInput, l as ShopOrderAccessStorageAdapterOptions, ln as ChangelogEntry, lr as FeatureRequestOptions, lt as ShopOrderAccessVerification, m as utcStampToIso, mn as HashtagPostsParams, mr as PreparedStreamSource, mt as ShopOrderSummary, n as SpanRenderFormat, nn as PlatformVersions, nr as mapPage, nt as ShopDeliveryCalculation, o as createShopFeature, on as StatusIncidentLine, or as FeatureContext, ot as ShopDeliveryPoint, p as toDate, pn as VerificationStatus, pr as PreparedFileSource, pt as ShopOrderStatus, q as ShopOrderRequestOptions, qn as NotificationListParams, qt as MarkupBuilder, r as renderSpans, rn as PlatformStatus, rr as RateLimitBucketState, rt as ShopDeliveryCity, s as MemoryShopOrderAccessStorage, sn as Announcement, sr as FeatureInstallation, st as ShopOrder, t as RenderSpansOptions, tn as PlatformResource, tr as PaginatorOptions, tt as ShopCreatedOrder, u as createShopOrderAccessStorage, un as Clan, ur as ManagedClientResource, ut as ShopOrderDelivery, v as AudioMimeType, vn as UploadedFile, vr as AttemptContext, vt as ShopProductCategory, w as fromUrl, wn as CommentUpdateResult, wr as OperationTransformContext, wt as ShopSizeChartRow, x as VIDEO_MIME_TYPES, xn as Attachment, xr as AttemptNext, xt as ShopProductStatus, y as IMAGE_MIME_TYPES, yn as CommentsResource, yr as AttemptExtensions, yt as ShopProductColor, z as ViewTracker, zn as CreateCommentInput, zt as post } from "./shared/render-
|
|
3
|
-
import { $ as EventTransportContext, A as EventHandler, B as NotificationEventContext, C as EventChannelDeps, D as EventSession, E as EventEnqueueOptions, F as EventSequentializer, G as NotificationOfType, H as NotificationEventOfType, I as EventTypeGuard, J as NotificationUpdateOrigin, K as NotificationUpdate, L as runEventMiddleware, M as EventMiddlewareObject, N as EventNext, O as EventSyncReason, P as EventPredicate, Q as EventTransport, R as EventContext, S as EventChannel, T as EventChannelOptions, U as NotificationEventSelector, V as NotificationEventFilter, W as NotificationEventsUpdate, X as UnknownNotificationUpdate, Y as NotificationUpdateType, Z as UnreadCountUpdate, _ as createNotificationEventsClient, a as WebSocketTransportOptions, b as NotificationEventsOptions, c as EventErrorContext, d as EventMiddlewareLike, et as EventTransportFrame, f as EventRouteTable, g as NotificationEventsClientOptions, h as NotificationEventsClient, i as WebSocketTransport, j as EventMiddleware, k as ReconnectOptions, l as EventFilter, m as EventRouter, n as WebSocketLike, o as EventComposer, p as EventRouteSelector, q as NotificationUpdateOfType, r as WebSocketOpenFailureClassifier, s as EventErrorBoundary, t as WebSocketImplementationOptions, tt as UnauthorizedStreamError, u as EventMiddlewareGroup, v as NotificationEvents, w as EventChannelEvents, x as NotificationEventsTransport, y as NotificationEventsMap, z as NotificationContext } from "./shared/events-
|
|
1
|
+
import { $ as isItdStateError, $t as DEFAULT_RATE_LIMIT_BUCKET, A as ItdErrorKind, At as RequestOptions, B as ItdStateError, Bt as RuntimeMode, C as ItdApiError, Ct as PaginationOptions, D as ItdConfigError, Dt as RawRequestOptions, E as ItdAuthError, Et as RateLimitOptions, F as ItdNetworkError, Ft as RuntimeOptions, G as isItdConflictError, Gt as ItdOperationDefinition, H as ItdValidationError, Ht as systemClock, I as ItdNotFoundError, It as QueryParams, J as isItdForbiddenError, Jt as isBuiltInOperationId, K as isItdError, Kt as OPERATIONS, L as ItdPhoneVerificationError, Lt as QueryValue, M as ItdFileError, Mt as RetryContext, N as ItdFileErrorReason, Nt as RetryDecisionContext, O as ItdConflictError, Ot as RequestContext, P as ItdForbiddenError, Pt as RetryOptions, Q as isItdServerError, Qt as BUCKET_LIMITS, R as ItdRateLimitError, Rt as ServiceDefinition, S as ItdAbortError, Sn as WallAccess, St as OperationRequestOptions, T as ItdApiErrorKind, Tt as RateLimitBucketOverride, U as isItdApiError, Ut as BuiltInOperationId, V as ItdTimeoutError, Vt as ItdClock, W as isItdAuthError, Wt as CustomOperationId, X as isItdPhoneVerificationError, Xt as operationMethod, Y as isItdNotFoundError, Yt as operationBucket, Z as isItdRateLimitError, Zt as operationRetrySafety, _ as PrivacySettings, _n as ReportTargetType, _t as OperationMethod, a as NotificationEvent, an as AccessType, b as SubscriptionState, bn as ViewReason, bt as ErrorContextHook, c as NotificationSettings, cn as EventChannelStatus, ct as Listener, d as AuthUser, dn as InteractionType, dt as STATUS_SERVICE, en as RateLimitBucket, et as isItdValidationError, f as Author, fn as ItdErrorCode, ft as LIBRARY_VERSION, g as PinsResult, gn as ReportReason, gt as OperationMetadata, h as Pin, hn as NotificationType, i as formatNotificationText, in as UserRef, j as ItdFieldErrors, jt as ResponseContext, k as ItdError, kt as RequestExtensions, l as Actor, ln as FeedTab, lt as Unsubscribe, m as MyProfile, mn as Loose, mt as OperationAnnotations, n as canonicalNotificationType, nn as Span, nt as AuthIdentity, o as normalizeNotification, on as AttachmentType, p as FollowResult, pn as LikesVisibility, pt as FeatureOperationId, q as isItdFileError, qt as OperationId, r as isKnownNotificationType, rn as UserId, rt as AuthProvider, s as Notification, sn as CommentSort, st as Emitter, t as resolveNotificationUrl, tn as IsoDate, tt as ClientConnection, u as AuthState, un as IncidentKind, ut as DEFAULT_BASE_URL, v as Profile, vn as ServiceState, vt as RetrySafety, w as ItdApiErrorInit, wt as RateLimitBucketContext, x as UserSummary, xn as ViewSource, xt as Logger, y as PublicProfile, yn as SpanType, yt as ClientHooks, z as ItdServerError, zt as RateLimitPacing } from "./shared/url-DubjkRR9.js";
|
|
2
|
+
import { $ as ShopConsentContext, $n as PaginationMode, $t as markup, A as DwellEntry, An as Post, At as report, B as ViewTrackerInput, Bn as CreatePollInput, Bt as PollBuilder, C as fromStream, Cn as CommentReplyTo, Cr as OperationExtensions, Ct as ShopSizeChart, D as UpdateProfileInput, Dn as PinPostResult, Dr as PluginTeardown, Dt as ReportsResource, E as UpdatePrivacyInput, En as LikeResult, Er as PluginApi, Et as SearchResult, F as TelemetryClock, Fn as comment, Ft as CreatePostInput, G as ShopConsentsResource, Gn as Session, Gt as parseMarkdown, H as SubscriptionResource, Hn as CreateReportInput, Ht as poll, I as TelemetryOptions, In as BuilderInput, It as PostBuilder, J as ShopOrdersResource, Jn as NotificationsResource, Jt as MarkupContent, K as ShopDeliveryResource, Kn as Subscription, Kt as AutoSpansOptions, L as TelemetryResource, Ln as ItdBuilder, Lt as PostInput, M as PhotoOpenInput, Mn as PostUpdateResult, Mt as FeedParams, N as TelemetryBatch, Nn as CommentBuilder, Nt as PostsResource, O as UserListParams, On as Poll, Or as CookieJar, Ot as ReportBuilder, P as TelemetryBatchOptions, Pn as CommentInput, Pt as UserPostsParams, Q as ShopConsent, Qn as PageState, Qt as autoSpans, R as VideoProgressInput, Rn as isBuilder, Rt as PostUpdateInput, S as VideoMimeType, Sn as Comment, Sr as ClientPlugin, St as ShopRecipient, T as VerificationResource, Tn as Hashtag, Tr as OperationTransformer, Tt as SearchResource, U as CreateShopOrderOptions, Un as UpdatePostInput, Ut as ParseMarkupOptions, V as ViewTrackerOptions, Vn as CreatePostData, Vt as PollInput, W as PayShopOrderOptions, Wn as PaymentMethod, Wt as parseHtml, X as ShopResource, Xn as BaseResource, Xt as MarkupSpan, Y as ShopProductsResource, Yn as UpdateNotificationSettingsInput, Yt as MarkupInput, Z as CreateShopOrderInput, Zn as Page, Zt as TextMarkup, _ as AllowedMimeType, _n as UploadOptions, _r as HttpClient, _t as ShopProduct, a as ShopFeatureOptions, an as StatusDay, ar as FeatureBucketDefinition, at as ShopDeliveryDestination, b as ImageMimeType, bn as RepliesParams, br as AttemptInterceptor, bt as ShopProductSpec, c as ShopOrderAccessStorage, cn as AnnouncementButton, cr as FeatureOperationDefinition, ct as ShopOrderAccessSession, d as statusDays, dn as Portal, dr as FileResolver, dt as ShopOrderItem, en as PlatformClientVersion, er as Paginator, et as ShopConsentKind, f as isMyProfile, fn as Report, fr as PreparedBufferSource, ft as ShopOrderItemInput, g as AUDIO_MIME_TYPES, gn as FilesResource, gr as ResolveFileOptions, gt as ShopPayment, h as ALLOWED_MIME_TYPES, hn as HashtagsResource, hr as ResolveFileContext, ht as ShopOrderSupport, i as ShopFeatureApi, in as ServiceStatus, ir as ClientFeature, it as ShopDeliveryCountry, j as InteractionEntry, jn as PostStats, jt as CommentsParams, k as UsersResource, kn as PollOption, kt as ReportInput, l as ShopOrderAccessStorageAdapterOptions, ln as ChangelogEntry, lr as FeatureRequestOptions, lt as ShopOrderAccessVerification, m as utcStampToIso, mn as HashtagPostsParams, mr as PreparedStreamSource, mt as ShopOrderSummary, n as SpanRenderFormat, nn as PlatformVersions, nr as mapPage, nt as ShopDeliveryCalculation, o as createShopFeature, on as StatusIncidentLine, or as FeatureContext, ot as ShopDeliveryPoint, p as toDate, pn as VerificationStatus, pr as PreparedFileSource, pt as ShopOrderStatus, q as ShopOrderRequestOptions, qn as NotificationListParams, qt as MarkupBuilder, r as renderSpans, rn as PlatformStatus, rr as RateLimitBucketState, rt as ShopDeliveryCity, s as MemoryShopOrderAccessStorage, sn as Announcement, sr as FeatureInstallation, st as ShopOrder, t as RenderSpansOptions, tn as PlatformResource, tr as PaginatorOptions, tt as ShopCreatedOrder, u as createShopOrderAccessStorage, un as Clan, ur as ManagedClientResource, ut as ShopOrderDelivery, v as AudioMimeType, vn as UploadedFile, vr as AttemptContext, vt as ShopProductCategory, w as fromUrl, wn as CommentUpdateResult, wr as OperationTransformContext, wt as ShopSizeChartRow, x as VIDEO_MIME_TYPES, xn as Attachment, xr as AttemptNext, xt as ShopProductStatus, y as IMAGE_MIME_TYPES, yn as CommentsResource, yr as AttemptExtensions, yt as ShopProductColor, z as ViewTracker, zn as CreateCommentInput, zt as post } from "./shared/render-uFW2kDxp.js";
|
|
3
|
+
import { $ as EventTransportContext, A as EventHandler, B as NotificationEventContext, C as EventChannelDeps, D as EventSession, E as EventEnqueueOptions, F as EventSequentializer, G as NotificationOfType, H as NotificationEventOfType, I as EventTypeGuard, J as NotificationUpdateOrigin, K as NotificationUpdate, L as runEventMiddleware, M as EventMiddlewareObject, N as EventNext, O as EventSyncReason, P as EventPredicate, Q as EventTransport, R as EventContext, S as EventChannel, T as EventChannelOptions, U as NotificationEventSelector, V as NotificationEventFilter, W as NotificationEventsUpdate, X as UnknownNotificationUpdate, Y as NotificationUpdateType, Z as UnreadCountUpdate, _ as createNotificationEventsClient, a as WebSocketTransportOptions, b as NotificationEventsOptions, c as EventErrorContext, d as EventMiddlewareLike, et as EventTransportFrame, f as EventRouteTable, g as NotificationEventsClientOptions, h as NotificationEventsClient, i as WebSocketTransport, j as EventMiddleware, k as ReconnectOptions, l as EventFilter, m as EventRouter, n as WebSocketLike, o as EventComposer, p as EventRouteSelector, q as NotificationUpdateOfType, r as WebSocketOpenFailureClassifier, s as EventErrorBoundary, t as WebSocketImplementationOptions, tt as UnauthorizedStreamError, u as EventMiddlewareGroup, v as NotificationEvents, w as EventChannelEvents, x as NotificationEventsTransport, y as NotificationEventsMap, z as NotificationContext } from "./shared/events-DnwfcLxS.js";
|
|
4
4
|
import { a as FileStreamOptions, c as LazyFile, d as UrlFileOptions, i as FileStreamContent, l as StreamFile, n as FileContext, o as FileTransferMode, r as FileInput, s as FromStreamOptions, t as FileContent, u as UrlFile } from "./shared/contracts-BoT7msmq.js";
|
|
5
5
|
import { a as KeyValueStoreResult, c as createKeyValueStore, d as withCodec, f as withNamespace, i as KeyValueStoreKeys, l as createRecordKeyValueStore, n as KeyValueCodec, o as MemoryKeyValueStore, r as KeyValueStore, s as RecordKeyValueStoreSource, t as EnumerableKeyValueStore, u as isEnumerableKeyValueStore } from "./shared/key-value-store-COZaNHZS.js";
|
|
6
6
|
import { a as createTokenStorage, i as TokenStorageAdapterOptions, n as MemoryTokenStorage, r as TokenStorage, t as ItdSession } from "./shared/storage-CTRGT5wF.js";
|
|
@@ -66,7 +66,8 @@ interface SessionOptions {
|
|
|
66
66
|
/** Где хранить сессию. По умолчанию {@link MemoryTokenStorage}. */
|
|
67
67
|
storage?: TokenStorage | undefined;
|
|
68
68
|
/**
|
|
69
|
-
* Обновлять токен
|
|
69
|
+
* Обновлять токен перед истечением и восстанавливать сессию при ответе `401`.
|
|
70
|
+
* По умолчанию `true`.
|
|
70
71
|
*
|
|
71
72
|
* При `false` библиотека просто пробросит {@link ItdAuthError}, а обновлением
|
|
72
73
|
* вы управляете сами через `itd.auth.refresh()`.
|
|
@@ -233,12 +234,9 @@ declare class AuthManager implements AuthProvider {
|
|
|
233
234
|
* ответ был бы `false` даже при полностью рабочей сохранённой сессии.
|
|
234
235
|
*/
|
|
235
236
|
hasRefreshSession(): Promise<boolean>;
|
|
236
|
-
/**
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
* Загрузка хранилища, внешний источник токена и отложенный вход асинхронны, поэтому
|
|
240
|
-
* обязаны завершиться до захвата слота очереди.
|
|
241
|
-
*/
|
|
237
|
+
/** Готовит внутреннюю сессию до retry исходного запроса. */
|
|
238
|
+
preflight(allowRefresh: boolean): Promise<void>;
|
|
239
|
+
/** Перед каждой попыткой перечитывает внешний источник токена. */
|
|
242
240
|
prepare(): Promise<void>;
|
|
243
241
|
/**
|
|
244
242
|
* Заголовки уже подготовленной авторизации без чтения storage или вызова внешнего источника.
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { $ as orderPluginDefinitions, A as ITD_CATALOG, C as ReportReason, D as ViewReason, E as SpanType, F as operationMethod, G as pickString, I as operationRetrySafety, K as RetrySafety, L as BUCKET_LIMITS, M as defineBuiltInOperation, N as isBuiltInOperationId, O as ViewSource, P as operationBucket, Q as assertPluginRemovable, R as DEFAULT_RATE_LIMIT_BUCKET, S as NotificationType, T as ServiceState, V as pickArray, Z as RequestQueuePool, _ as FeedTab, at as isRecord, b as ItdErrorCode, c as normalizeNotification, d as canonicalNotificationType, et as DEFAULT_BASE_URL, f as isKnownNotificationType, g as EventChannelStatus, h as CommentSort, it as LIBRARY_VERSION, j as OPERATIONS, k as WallAccess, lt as systemClock, m as AttachmentType, n as formatNotificationText, nt as STATUS_SERVICE, o as passthroughOperation, ot as requireOptionalBoolean, p as AccessType, rt as resolveRateLimit, s as voidOperation, st as RateLimitPacing, t as resolveNotificationUrl, ut as installAsyncDisposeFallback, v as IncidentKind, w as ReportTargetType, x as LikesVisibility, y as InteractionType, z as createClientRuntime } from "./shared/url-
|
|
1
|
+
import { $ as orderPluginDefinitions, A as ITD_CATALOG, C as ReportReason, D as ViewReason, E as SpanType, F as operationMethod, G as pickString, I as operationRetrySafety, K as RetrySafety, L as BUCKET_LIMITS, M as defineBuiltInOperation, N as isBuiltInOperationId, O as ViewSource, P as operationBucket, Q as assertPluginRemovable, R as DEFAULT_RATE_LIMIT_BUCKET, S as NotificationType, T as ServiceState, V as pickArray, Z as RequestQueuePool, _ as FeedTab, at as isRecord, b as ItdErrorCode, c as normalizeNotification, d as canonicalNotificationType, et as DEFAULT_BASE_URL, f as isKnownNotificationType, g as EventChannelStatus, h as CommentSort, it as LIBRARY_VERSION, j as OPERATIONS, k as WallAccess, lt as systemClock, m as AttachmentType, n as formatNotificationText, nt as STATUS_SERVICE, o as passthroughOperation, ot as requireOptionalBoolean, p as AccessType, rt as resolveRateLimit, s as voidOperation, st as RateLimitPacing, t as resolveNotificationUrl, ut as installAsyncDisposeFallback, v as IncidentKind, w as ReportTargetType, x as LikesVisibility, y as InteractionType, z as createClientRuntime } from "./shared/url-3Ts6EEHQ.js";
|
|
2
2
|
import { A as isItdStateError, C as isItdError, D as isItdPhoneVerificationError, E as isItdNotFoundError, O as isItdRateLimitError, S as isItdConflictError, T as isItdForbiddenError, _ as ItdStateError, a as ItdConfigError, b as isItdApiError, c as ItdErrorKind, d as ItdForbiddenError, f as ItdNetworkError, g as ItdServerError, h as ItdRateLimitError, i as ItdAuthError, j as isItdValidationError, k as isItdServerError, l as ItdFileError, m as ItdPhoneVerificationError, n as ItdApiError, o as ItdConflictError, p as ItdNotFoundError, r as ItdApiErrorKind, s as ItdError, t as ItdAbortError, u as ItdFileErrorReason, v as ItdTimeoutError, w as isItdFileError, x as isItdAuthError, y as ItdValidationError } from "./shared/errors-GI10kZxk.js";
|
|
3
3
|
import { c as REFRESH_COOKIE, l as REFRESH_COOKIE_PATH, s as CookieJar, u as isSerializedCookieEntry, v as RuntimeMode, y as createDeviceId } from "./shared/redact-DJV0XM3n.js";
|
|
4
|
-
import { A as utcStampToIso, C as AUDIO_MIME_TYPES, D as isBuilder, E as comment, F as mapPage, I as createFeatureHost, L as ExtensibleOperationCatalog, M as BaseResource, N as PaginationMode, O as createStatusFeature, P as Paginator, S as ALLOWED_MIME_TYPES, T as VIDEO_MIME_TYPES, _ as poll, a as createShopOrderAccessStorage, b as parseHtml, c as ShopOrderStatus, d as isMyProfile, f as fromStream, g as post, h as report, i as MemoryShopOrderAccessStorage, j as NotificationsResource, k as toDate, l as ShopProductCategory, m as createResources, n as renderSpans, o as statusDays, p as fromUrl, r as createShopFeature, s as ShopConsentKind, t as SpanRenderFormat, u as ShopProductStatus, v as autoSpans, w as IMAGE_MIME_TYPES, x as parseMarkdown, y as markup } from "./shared/render
|
|
4
|
+
import { A as utcStampToIso, C as AUDIO_MIME_TYPES, D as isBuilder, E as comment, F as mapPage, I as createFeatureHost, L as ExtensibleOperationCatalog, M as BaseResource, N as PaginationMode, O as createStatusFeature, P as Paginator, S as ALLOWED_MIME_TYPES, T as VIDEO_MIME_TYPES, _ as poll, a as createShopOrderAccessStorage, b as parseHtml, c as ShopOrderStatus, d as isMyProfile, f as fromStream, g as post, h as report, i as MemoryShopOrderAccessStorage, j as NotificationsResource, k as toDate, l as ShopProductCategory, m as createResources, n as renderSpans, o as statusDays, p as fromUrl, r as createShopFeature, s as ShopConsentKind, t as SpanRenderFormat, u as ShopProductStatus, v as autoSpans, w as IMAGE_MIME_TYPES, x as parseMarkdown, y as markup } from "./shared/render-CtOpp9Pm.js";
|
|
5
5
|
import { c as FileTransferMode } from "./shared/options-i4LrKfqx.js";
|
|
6
|
-
import { _ as reportListenerError, a as WebSocketTransport, c as NotificationEventsTransport, d as NotificationUpdateOrigin, f as NotificationUpdateType, g as Emitter, h as runEventMiddleware, i as createNotificationEventsClient, l as resolveNotificationEventsOptions, m as UnauthorizedStreamError, n as EventRouter, o as EVENT_OPERATIONS, p as EventChannel, r as NotificationEventsClient, s as NotificationEvents, t as EventComposer, u as setNotificationEventsConnectGuard } from "./shared/events-
|
|
6
|
+
import { _ as reportListenerError, a as WebSocketTransport, c as NotificationEventsTransport, d as NotificationUpdateOrigin, f as NotificationUpdateType, g as Emitter, h as runEventMiddleware, i as createNotificationEventsClient, l as resolveNotificationEventsOptions, m as UnauthorizedStreamError, n as EventRouter, o as EVENT_OPERATIONS, p as EventChannel, r as NotificationEventsClient, s as NotificationEvents, t as EventComposer, u as setNotificationEventsConnectGuard } from "./shared/events-BzjI6pn5.js";
|
|
7
7
|
import { a as isEnumerableKeyValueStore, i as createRecordKeyValueStore, o as withCodec, r as createKeyValueStore, s as withNamespace, t as MemoryKeyValueStore } from "./shared/key-value-store-Bt2PSMxY.js";
|
|
8
8
|
import { n as copySession, r as createTokenStorage, t as MemoryTokenStorage } from "./shared/storage-DiDe0PZM.js";
|
|
9
9
|
import { a as scopedTokenStorage, i as isRestorableSession, n as controlledTokenStorage, r as createMultiTokenStorage, t as MemoryMultiTokenStorage } from "./shared/multi-storage-C3Ngtop1.js";
|
|
@@ -74,38 +74,34 @@ function decodeBase64Url(segment) {
|
|
|
74
74
|
const bytes = Uint8Array.from(binary, (char) => char.charCodeAt(0));
|
|
75
75
|
return new TextDecoder().decode(bytes);
|
|
76
76
|
}
|
|
77
|
-
/**
|
|
78
|
-
|
|
79
|
-
*
|
|
80
|
-
* Подпись не проверяется — ключа для проверки у клиента нет. Прочитанные значения служат
|
|
81
|
-
* лишь метками для разделения локального состояния и не дают доступа: его определяет сервер.
|
|
82
|
-
*/
|
|
83
|
-
function readTokenIdentity(token) {
|
|
77
|
+
/** Читает полезную нагрузку JWT без проверки подписи. */
|
|
78
|
+
function readTokenPayload(token) {
|
|
84
79
|
try {
|
|
85
80
|
const payload = token.split(".")[1];
|
|
86
|
-
if (!payload) return
|
|
81
|
+
if (!payload) return void 0;
|
|
87
82
|
const parsed = JSON.parse(decodeBase64Url(payload));
|
|
88
|
-
if (typeof parsed !== "object" || parsed === null) return
|
|
89
|
-
|
|
90
|
-
return {
|
|
91
|
-
...typeof sub === "string" && sub.length > 0 ? { subject: sub } : {},
|
|
92
|
-
...typeof sid === "string" && sid.length > 0 ? { sessionId: sid } : {}
|
|
93
|
-
};
|
|
83
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) return void 0;
|
|
84
|
+
return parsed;
|
|
94
85
|
} catch {
|
|
95
|
-
return
|
|
86
|
+
return;
|
|
96
87
|
}
|
|
97
88
|
}
|
|
98
|
-
/**
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
89
|
+
/** Читает используемые клиентом поля JWT за один раз. */
|
|
90
|
+
function readTokenMetadata(token) {
|
|
91
|
+
const payload = readTokenPayload(token);
|
|
92
|
+
if (!payload) return {};
|
|
93
|
+
const { sub, sid, exp } = payload;
|
|
94
|
+
const expiresAt = typeof exp === "number" && Number.isFinite(exp) ? exp * 1e3 : void 0;
|
|
95
|
+
return {
|
|
96
|
+
...typeof sub === "string" && sub.length > 0 ? { subject: sub } : {},
|
|
97
|
+
...typeof sid === "string" && sid.length > 0 ? { sessionId: sid } : {},
|
|
98
|
+
...expiresAt !== void 0 && Number.isFinite(expiresAt) ? { expiresAt } : {}
|
|
99
|
+
};
|
|
106
100
|
}
|
|
107
101
|
//#endregion
|
|
108
102
|
//#region src/session/auth.ts
|
|
103
|
+
/** Запас до истечения токена на очередь и выполнение запроса. */
|
|
104
|
+
const ACCESS_TOKEN_REFRESH_LEEWAY_MS = 3e4;
|
|
109
105
|
/**
|
|
110
106
|
* Проверяет форму `auth` и сообщает о типичных ошибках понятным текстом.
|
|
111
107
|
*
|
|
@@ -305,7 +301,7 @@ var AuthManager = class {
|
|
|
305
301
|
* старте читают хранилище один раз и не заводят каждый свой `deviceId`.
|
|
306
302
|
*/
|
|
307
303
|
#loading = null;
|
|
308
|
-
/**
|
|
304
|
+
/** Текущее обновление: к нему присоединяются запросы той же ревизии. */
|
|
309
305
|
#refreshing = null;
|
|
310
306
|
/** Общий промис входа по логину и паролю. */
|
|
311
307
|
#signingIn = null;
|
|
@@ -315,6 +311,7 @@ var AuthManager = class {
|
|
|
315
311
|
#externalToken;
|
|
316
312
|
/** Идентификаторы последнего токена внешнего источника для синхронных потребителей. */
|
|
317
313
|
#externalIdentity;
|
|
314
|
+
#tokenMetadata;
|
|
318
315
|
/**
|
|
319
316
|
* Идентификатор устройства.
|
|
320
317
|
*
|
|
@@ -328,9 +325,7 @@ var AuthManager = class {
|
|
|
328
325
|
* Счётчик смен владельца авторизации.
|
|
329
326
|
*
|
|
330
327
|
* Растёт при каждой операции, которая заменяет или очищает сессию извне: `clear`,
|
|
331
|
-
* `setSession`, `setAccessToken`, вход.
|
|
332
|
-
* сетевым запросом и сверяет перед записью — иначе запоздавший ответ обновления мог бы
|
|
333
|
-
* воскресить уже очищенную сессию поверх `signOut`.
|
|
328
|
+
* `setSession`, `setAccessToken`, вход. Refresh сверяет снимок до и после сетевого запроса.
|
|
334
329
|
*/
|
|
335
330
|
#authEpoch = 0;
|
|
336
331
|
#externalReadGeneration = 0;
|
|
@@ -363,6 +358,7 @@ var AuthManager = class {
|
|
|
363
358
|
this.#disposed = true;
|
|
364
359
|
this.#externalReadGeneration += 1;
|
|
365
360
|
this.#invalidateInFlight();
|
|
361
|
+
this.#tokenMetadata = void 0;
|
|
366
362
|
this.#emitter.removeAllListeners();
|
|
367
363
|
}
|
|
368
364
|
/**
|
|
@@ -423,12 +419,25 @@ var AuthManager = class {
|
|
|
423
419
|
return this.#session?.accessToken ?? null;
|
|
424
420
|
}
|
|
425
421
|
#identityForToken(accessToken) {
|
|
426
|
-
const token =
|
|
422
|
+
const token = this.#metadataForToken(accessToken);
|
|
427
423
|
return {
|
|
428
424
|
...token.subject ? { userId: token.subject } : {},
|
|
429
425
|
...token.sessionId ? { sessionId: token.sessionId } : {}
|
|
430
426
|
};
|
|
431
427
|
}
|
|
428
|
+
#metadataForToken(accessToken) {
|
|
429
|
+
if (!accessToken) {
|
|
430
|
+
this.#tokenMetadata = void 0;
|
|
431
|
+
return {};
|
|
432
|
+
}
|
|
433
|
+
if (this.#tokenMetadata?.accessToken === accessToken) return this.#tokenMetadata.value;
|
|
434
|
+
const value = readTokenMetadata(accessToken);
|
|
435
|
+
this.#tokenMetadata = {
|
|
436
|
+
accessToken,
|
|
437
|
+
value
|
|
438
|
+
};
|
|
439
|
+
return value;
|
|
440
|
+
}
|
|
432
441
|
async #readExternalToken(getToken) {
|
|
433
442
|
this.#assertActive();
|
|
434
443
|
const generation = ++this.#externalReadGeneration;
|
|
@@ -475,15 +484,33 @@ var AuthManager = class {
|
|
|
475
484
|
if (this.#jar.has("is_auth", this.#config.baseUrl)) return true;
|
|
476
485
|
return Boolean(this.#session?.refreshToken);
|
|
477
486
|
}
|
|
478
|
-
/**
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
487
|
+
/** Готовит внутреннюю сессию до retry исходного запроса. */
|
|
488
|
+
async preflight(allowRefresh) {
|
|
489
|
+
this.#assertActive();
|
|
490
|
+
let accessToken = (await this.#loadSession())?.accessToken;
|
|
491
|
+
if (!accessToken) {
|
|
492
|
+
const auth = this.#config.auth;
|
|
493
|
+
if (typeof auth === "object" && auth !== null && "email" in auth) accessToken = await this.#signInWithCredentials(auth) ?? void 0;
|
|
494
|
+
}
|
|
495
|
+
if (!accessToken || !allowRefresh || !this.#config.autoRefresh) return;
|
|
496
|
+
const expiresAt = this.#metadataForToken(accessToken).expiresAt;
|
|
497
|
+
if (expiresAt === void 0 || expiresAt > this.#config.clock.now() + ACCESS_TOKEN_REFRESH_LEEWAY_MS || !this.#hasRefreshSession()) return;
|
|
498
|
+
try {
|
|
499
|
+
await this.#refreshDeduplicated({
|
|
500
|
+
epoch: this.#authEpoch,
|
|
501
|
+
accessToken
|
|
502
|
+
});
|
|
503
|
+
} catch (error) {
|
|
504
|
+
this.#emitter.emit("authError", { error });
|
|
505
|
+
throw error;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
/** Перед каждой попыткой перечитывает внешний источник токена. */
|
|
484
509
|
async prepare() {
|
|
485
510
|
this.#assertActive();
|
|
486
|
-
await this
|
|
511
|
+
if ((await this.#loadSession())?.accessToken) return;
|
|
512
|
+
const auth = this.#config.auth;
|
|
513
|
+
if (typeof auth === "object" && auth !== null && "getToken" in auth) await this.#readExternalToken(() => auth.getToken());
|
|
487
514
|
}
|
|
488
515
|
/**
|
|
489
516
|
* Заголовки уже подготовленной авторизации без чтения storage или вызова внешнего источника.
|
|
@@ -630,7 +657,7 @@ var AuthManager = class {
|
|
|
630
657
|
async getUserId() {
|
|
631
658
|
this.#assertActive();
|
|
632
659
|
const session = await this.#loadSession();
|
|
633
|
-
return session?.accessToken ?
|
|
660
|
+
return session?.accessToken ? this.#identityForToken(session.accessToken).userId : void 0;
|
|
634
661
|
}
|
|
635
662
|
/** Заменяет сессию и связанные с ней cookie целиком. */
|
|
636
663
|
async setSession(session) {
|
|
@@ -733,24 +760,30 @@ var AuthManager = class {
|
|
|
733
760
|
this.#persistence = pending.catch(() => {});
|
|
734
761
|
return pending;
|
|
735
762
|
}
|
|
736
|
-
/**
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
const promise = this.#performRefresh().finally(() => {
|
|
744
|
-
this.#refreshing = null;
|
|
763
|
+
/** Дедуплицирует refresh одной ревизии; следующая ждёт завершения предыдущей. */
|
|
764
|
+
#refreshDeduplicated(expectation = { epoch: this.#authEpoch }) {
|
|
765
|
+
const current = this.#refreshing;
|
|
766
|
+
if (current) {
|
|
767
|
+
if (current.epoch === expectation.epoch) return current.promise;
|
|
768
|
+
return current.promise.then(() => this.#refreshDeduplicated(expectation), () => this.#refreshDeduplicated(expectation));
|
|
769
|
+
}
|
|
770
|
+
const promise = this.#performRefresh(expectation).finally(() => {
|
|
771
|
+
if (this.#refreshing?.promise === promise) this.#refreshing = null;
|
|
745
772
|
});
|
|
746
|
-
this.#refreshing =
|
|
773
|
+
this.#refreshing = {
|
|
774
|
+
epoch: expectation.epoch,
|
|
775
|
+
promise
|
|
776
|
+
};
|
|
747
777
|
return promise;
|
|
748
778
|
}
|
|
749
|
-
|
|
779
|
+
#matchesRefreshExpectation(expectation) {
|
|
780
|
+
return this.#authEpoch === expectation.epoch && (expectation.accessToken === void 0 || this.#session?.accessToken === expectation.accessToken);
|
|
781
|
+
}
|
|
782
|
+
async #performRefresh(expectation) {
|
|
750
783
|
this.#assertActive();
|
|
751
784
|
await this.#loadSession();
|
|
785
|
+
if (!this.#matchesRefreshExpectation(expectation)) return this.#currentAccessToken();
|
|
752
786
|
if (!this.#hasRefreshSession()) return this.#reloginOrNull();
|
|
753
|
-
const epoch = this.#authEpoch;
|
|
754
787
|
const flowCookies = this.#jar.clone();
|
|
755
788
|
try {
|
|
756
789
|
const accessToken = await this.#http.execute(AUTH_REFRESH, {
|
|
@@ -759,7 +792,7 @@ var AuthManager = class {
|
|
|
759
792
|
skipAuthRefresh: true,
|
|
760
793
|
cookieJar: flowCookies
|
|
761
794
|
});
|
|
762
|
-
if (this.#
|
|
795
|
+
if (!this.#matchesRefreshExpectation(expectation)) return this.#session?.accessToken ?? null;
|
|
763
796
|
this.#jar.replaceWith(flowCookies);
|
|
764
797
|
const rotated = this.#jar.getValue(REFRESH_COOKIE, this.#config.baseUrl + REFRESH_COOKIE_PATH);
|
|
765
798
|
this.#transitionAuth(accessToken, false);
|
|
@@ -771,10 +804,11 @@ var AuthManager = class {
|
|
|
771
804
|
});
|
|
772
805
|
this.#emitter.emit("tokens", { accessToken });
|
|
773
806
|
await saved;
|
|
807
|
+
if (this.#authEpoch !== expectation.epoch) return this.#currentAccessToken();
|
|
774
808
|
return accessToken;
|
|
775
809
|
} catch (error) {
|
|
810
|
+
if (this.#authEpoch !== expectation.epoch) return this.#currentAccessToken();
|
|
776
811
|
if (error instanceof ItdAuthError) {
|
|
777
|
-
if (this.#authEpoch !== epoch) return this.#session?.accessToken ?? null;
|
|
778
812
|
this.#invalidateInFlight();
|
|
779
813
|
const clearedRevision = this.#authEpoch;
|
|
780
814
|
this.#transitionAuth(void 0);
|