itd-api 0.8.0 → 0.9.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.
Files changed (80) hide show
  1. package/README.md +63 -18
  2. package/dist/events/index.cjs +3 -3
  3. package/dist/events/index.d.cts +2 -2
  4. package/dist/events/index.d.ts +2 -2
  5. package/dist/events/index.js +3 -3
  6. package/dist/index.cjs +26 -13
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.d.cts +9 -6
  9. package/dist/index.d.ts +9 -6
  10. package/dist/index.js +13 -8
  11. package/dist/index.js.map +1 -1
  12. package/dist/node/index.cjs +5 -4
  13. package/dist/node/index.cjs.map +1 -1
  14. package/dist/node/index.d.cts +2 -2
  15. package/dist/node/index.d.ts +2 -2
  16. package/dist/node/index.js +4 -3
  17. package/dist/node/index.js.map +1 -1
  18. package/dist/rest/index.cjs +16 -4
  19. package/dist/rest/index.cjs.map +1 -1
  20. package/dist/rest/index.d.cts +5 -3
  21. package/dist/rest/index.d.ts +5 -3
  22. package/dist/rest/index.js +9 -5
  23. package/dist/rest/index.js.map +1 -1
  24. package/dist/shared/{events-TfhKh26b.js → events-C5wnTXPT.js} +3 -3
  25. package/dist/shared/{events-TfhKh26b.js.map → events-C5wnTXPT.js.map} +1 -1
  26. package/dist/shared/{events-QyhQZrnC.d.ts → events-CqtkP65d.d.ts} +2 -2
  27. package/dist/shared/{events-Br2r7coi.d.cts → events-DGAWlCaI.d.cts} +2 -2
  28. package/dist/shared/{events-iTteVsd_.cjs → events-FZfnEez0.cjs} +3 -3
  29. package/dist/shared/{events-iTteVsd_.cjs.map → events-FZfnEez0.cjs.map} +1 -1
  30. package/dist/shared/{storage-BLmXmzKF.cjs → key-value-store-B5GYVEYZ.cjs} +1 -85
  31. package/dist/shared/key-value-store-B5GYVEYZ.cjs.map +1 -0
  32. package/dist/shared/{storage-CCxn0Kkv.js → key-value-store-Bt2PSMxY.js} +2 -68
  33. package/dist/shared/key-value-store-Bt2PSMxY.js.map +1 -0
  34. package/dist/shared/key-value-store-COZaNHZS.d.cts +69 -0
  35. package/dist/shared/key-value-store-COZaNHZS.d.ts +69 -0
  36. package/dist/shared/{multi-storage-DccjD7Ww.d.ts → multi-storage-BEL7tcKn.d.cts} +3 -2
  37. package/dist/shared/{multi-storage-CCUgkqvI.cjs → multi-storage-CDKLa956.cjs} +8 -7
  38. package/dist/shared/{multi-storage-CCUgkqvI.cjs.map → multi-storage-CDKLa956.cjs.map} +1 -1
  39. package/dist/shared/{multi-storage-CjAPB5Kq.d.cts → multi-storage-LkljOSzA.d.ts} +3 -2
  40. package/dist/shared/{multi-storage-1AEZTczk.js → multi-storage-SoW05uzO.js} +4 -3
  41. package/dist/shared/{multi-storage-1AEZTczk.js.map → multi-storage-SoW05uzO.js.map} +1 -1
  42. package/dist/shared/{options-BUfoHE9G.cjs → options-DOJYtoti.cjs} +2 -2
  43. package/dist/shared/{options-BUfoHE9G.cjs.map → options-DOJYtoti.cjs.map} +1 -1
  44. package/dist/shared/{options-BNP633A5.js → options-DhgGg7Ms.js} +2 -2
  45. package/dist/shared/{options-BNP633A5.js.map → options-DhgGg7Ms.js.map} +1 -1
  46. package/dist/shared/{redact-DB9EMGJx.cjs → redact-BP00URmQ.cjs} +15 -4
  47. package/dist/shared/{redact-DB9EMGJx.cjs.map → redact-BP00URmQ.cjs.map} +1 -1
  48. package/dist/shared/{redact-FNK29Fv-.js → redact-Ba5iSVYZ.js} +15 -4
  49. package/dist/shared/{redact-FNK29Fv-.js.map → redact-Ba5iSVYZ.js.map} +1 -1
  50. package/dist/shared/{render-DVB7T8pm.d.ts → render-B4qis7Sb.d.ts} +348 -3
  51. package/dist/shared/{render-BszcKF7S.d.cts → render-DDwy2Ame.d.cts} +348 -3
  52. package/dist/shared/{render-DNTESBSl.cjs → render-Dqi8Owqk.cjs} +457 -4
  53. package/dist/shared/render-Dqi8Owqk.cjs.map +1 -0
  54. package/dist/shared/{render-CiL1VS0b.js → render-hiWFh2s4.js} +411 -6
  55. package/dist/shared/render-hiWFh2s4.js.map +1 -0
  56. package/dist/shared/storage-BQrtKon9.d.cts +86 -0
  57. package/dist/shared/storage-CTRGT5wF.d.ts +86 -0
  58. package/dist/shared/storage-CfHKzVHf.js +71 -0
  59. package/dist/shared/storage-CfHKzVHf.js.map +1 -0
  60. package/dist/shared/storage-QNVxzpDB.cjs +88 -0
  61. package/dist/shared/storage-QNVxzpDB.cjs.map +1 -0
  62. package/dist/shared/{url-CFN1sT9S.cjs → url-Bsb3xE5U.cjs} +83 -4
  63. package/dist/shared/{url-CFN1sT9S.cjs.map → url-Bsb3xE5U.cjs.map} +1 -1
  64. package/dist/shared/{url-B3ocFlHj.js → url-DP33mp3s.js} +78 -5
  65. package/dist/shared/{url-B3ocFlHj.js.map → url-DP33mp3s.js.map} +1 -1
  66. package/dist/shared/{url-Be9jlWRv.d.ts → url-XBsMdAcv.d.cts} +75 -2
  67. package/dist/shared/{url-Be9jlWRv.d.cts → url-XBsMdAcv.d.ts} +75 -2
  68. package/dist/web/index.cjs +4 -3
  69. package/dist/web/index.cjs.map +1 -1
  70. package/dist/web/index.d.cts +1 -1
  71. package/dist/web/index.d.ts +1 -1
  72. package/dist/web/index.js +2 -1
  73. package/dist/web/index.js.map +1 -1
  74. package/package.json +1 -1
  75. package/dist/shared/render-CiL1VS0b.js.map +0 -1
  76. package/dist/shared/render-DNTESBSl.cjs.map +0 -1
  77. package/dist/shared/storage-BLmXmzKF.cjs.map +0 -1
  78. package/dist/shared/storage-CCxn0Kkv.js.map +0 -1
  79. package/dist/shared/storage-C_eICCep.d.cts +0 -152
  80. package/dist/shared/storage-C_eICCep.d.ts +0 -152
@@ -312,6 +312,7 @@ declare const ItdErrorCode: Readonly<{
312
312
  readonly SESSION_NOT_FOUND: "SESSION_NOT_FOUND";
313
313
  readonly MISSING_FLOW_TOKEN: "MISSING_FLOW_TOKEN";
314
314
  readonly PROFILE_USERNAME_TAKEN: "PROFILE_USERNAME_TAKEN";
315
+ readonly PROFILE_USERNAME_RESERVED: "PROFILE_USERNAME_RESERVED";
315
316
  readonly PROFILE_RESTRICTION_ACTIVE: "PROFILE_RESTRICTION_ACTIVE";
316
317
  readonly PROFILE_MODIFICATION_RESTRICTED: "PROFILE_MODIFICATION_RESTRICTED";
317
318
  readonly CONTENT_MODERATION_FAILED: "CONTENT_MODERATION_FAILED";
@@ -403,6 +404,15 @@ declare const BUCKET_LIMITS: Readonly<{
403
404
  readonly 'users.updateMe': 3;
404
405
  readonly 'reports.create': 3;
405
406
  readonly 'verification.submit': 3;
407
+ readonly shop: 150;
408
+ readonly 'shop.delivery.cities': 60;
409
+ readonly 'shop.delivery.calculate': 45;
410
+ readonly 'shop.delivery.points': 30;
411
+ readonly 'shop.consents.record': 15;
412
+ readonly 'shop.orders.pay': 13;
413
+ readonly 'shop.orders.verifyAccessCode': 13;
414
+ readonly 'shop.orders.create': 12;
415
+ readonly 'shop.orders.requestAccessCode': 4;
406
416
  }>;
407
417
  /** Имя встроенного бакета. */
408
418
  type RateLimitBucket = keyof typeof BUCKET_LIMITS;
@@ -845,6 +855,69 @@ declare const OPERATIONS: Readonly<{
845
855
  readonly method: "POST";
846
856
  readonly retrySafety: "unsafe";
847
857
  }>;
858
+ readonly 'shop.products.list': Readonly<{
859
+ readonly method: "GET";
860
+ readonly retrySafety: "safe";
861
+ readonly bucket: "shop";
862
+ }>;
863
+ readonly 'shop.products.get': Readonly<{
864
+ readonly method: "GET";
865
+ readonly retrySafety: "safe";
866
+ readonly bucket: "shop";
867
+ }>;
868
+ readonly 'shop.delivery.countries': Readonly<{
869
+ readonly method: "GET";
870
+ readonly retrySafety: "safe";
871
+ readonly bucket: "shop";
872
+ }>;
873
+ readonly 'shop.delivery.cities': Readonly<{
874
+ readonly method: "GET";
875
+ readonly retrySafety: "safe";
876
+ readonly bucket: "shop.delivery.cities";
877
+ }>;
878
+ readonly 'shop.delivery.points': Readonly<{
879
+ readonly method: "GET";
880
+ readonly retrySafety: "safe";
881
+ readonly bucket: "shop.delivery.points";
882
+ }>;
883
+ readonly 'shop.delivery.calculate': Readonly<{
884
+ readonly method: "POST";
885
+ readonly retrySafety: "safe";
886
+ readonly bucket: "shop.delivery.calculate";
887
+ }>;
888
+ readonly 'shop.orders.create': Readonly<{
889
+ readonly method: "POST";
890
+ readonly retrySafety: "idempotent";
891
+ readonly bucket: "shop.orders.create";
892
+ }>;
893
+ readonly 'shop.orders.list': Readonly<{
894
+ readonly method: "GET";
895
+ readonly retrySafety: "safe";
896
+ }>;
897
+ readonly 'shop.orders.get': Readonly<{
898
+ readonly method: "GET";
899
+ readonly retrySafety: "safe";
900
+ }>;
901
+ readonly 'shop.orders.pay': Readonly<{
902
+ readonly method: "POST";
903
+ readonly retrySafety: "unsafe";
904
+ readonly bucket: "shop.orders.pay";
905
+ }>;
906
+ readonly 'shop.orders.requestAccessCode': Readonly<{
907
+ readonly method: "POST";
908
+ readonly retrySafety: "unsafe";
909
+ readonly bucket: "shop.orders.requestAccessCode";
910
+ }>;
911
+ readonly 'shop.orders.verifyAccessCode': Readonly<{
912
+ readonly method: "POST";
913
+ readonly retrySafety: "unsafe";
914
+ readonly bucket: "shop.orders.verifyAccessCode";
915
+ }>;
916
+ readonly 'shop.consents.record': Readonly<{
917
+ readonly method: "POST";
918
+ readonly retrySafety: "unsafe";
919
+ readonly bucket: "shop.consents.record";
920
+ }>;
848
921
  }>;
849
922
  /** Стабильный ID встроенной операции. */
850
923
  type BuiltInOperationId = keyof typeof OPERATIONS;
@@ -1289,7 +1362,7 @@ interface OperationDefinition extends OperationMetadata {
1289
1362
  //#endregion
1290
1363
  //#region src/core/version.d.ts
1291
1364
  /** Версия библиотеки. Попадает в `User-Agent`. */
1292
- declare const LIBRARY_VERSION = "0.8.0";
1365
+ declare const LIBRARY_VERSION = "0.9.0";
1293
1366
  //#endregion
1294
1367
  //#region src/core/config.d.ts
1295
1368
  /** Базовый URL API итд.com. Домен записан в punycode: `итд.com`. */
@@ -2118,4 +2191,4 @@ declare function isKnownNotificationType(type: string): boolean;
2118
2191
  declare function resolveNotificationUrl(notification: Notification): string;
2119
2192
  //#endregion
2120
2193
  export { isItdValidationError as $, RateLimitBucket as $t, ItdFieldErrors as A, ResponseContext as At, ItdTimeoutError as B, ItdClock as Bt, ItdApiErrorInit as C, RateLimitBucketContext as Ct, ItdConflictError as D, RequestContext as Dt, ItdConfigError as E, RawRequestOptions as Et, ItdNotFoundError as F, QueryParams as Ft, isItdError as G, OPERATIONS as Gt, isItdApiError as H, BuiltInOperationId as Ht, ItdPhoneVerificationError as I, QueryValue as It, isItdNotFoundError as J, operationBucket as Jt, isItdFileError as K, OperationId as Kt, ItdRateLimitError as L, ServiceDefinition as Lt, ItdFileErrorReason as M, RetryDecisionContext as Mt, ItdForbiddenError as N, RetryOptions as Nt, ItdError as O, RequestExtensions as Ot, ItdNetworkError as P, RuntimeOptions as Pt, isItdStateError as Q, DEFAULT_RATE_LIMIT_BUCKET as Qt, ItdServerError as R, RateLimitPacing as Rt, ItdApiError as S, PaginationOptions as St, ItdAuthError as T, RateLimitOptions as Tt, isItdAuthError as U, CustomOperationId as Ut, ItdValidationError as V, systemClock as Vt, isItdConflictError as W, ItdOperationDefinition as Wt, isItdRateLimitError as X, operationRetrySafety as Xt, isItdPhoneVerificationError as Y, operationMethod as Yt, isItdServerError as Z, BUCKET_LIMITS as Zt, Profile as _, ServiceState as _n, RetrySafety as _t, NotificationEvent as a, AttachmentType as an, tokenProvider as at, UserSummary as b, ViewSource as bn, Logger as bt, NotificationSettings as c, FeedTab as cn, Unsubscribe as ct, Author as d, ItdErrorCode as dn, LIBRARY_VERSION as dt, IsoDate as en, ClientConnection as et, FollowResult as f, LikesVisibility as fn, FeatureOperationId as ft, PrivacySettings as g, ReportTargetType as gn, OperationMethod as gt, PinsResult as h, ReportReason as hn, OperationMetadata as ht, formatNotificationText as i, AccessType as in, bearerToken as it, ItdFileError as j, RetryContext as jt, ItdErrorKind as k, RequestOptions as kt, Actor as l, IncidentKind as ln, DEFAULT_BASE_URL as lt, Pin as m, NotificationType as mn, OperationContract as mt, canonicalNotificationType as n, UserId as nn, AuthProvider as nt, normalizeNotification as o, CommentSort as on, Emitter as ot, MyProfile as p, Loose as pn, OperationAnnotations as pt, isItdForbiddenError as q, isBuiltInOperationId as qt, isKnownNotificationType as r, UserRef as rn, anonymousAuth as rt, Notification as s, EventChannelStatus as sn, Listener as st, resolveNotificationUrl as t, Span as tn, AuthIdentity as tt, AuthState as u, InteractionType as un, STATUS_SERVICE as ut, PublicProfile as v, SpanType as vn, ClientHooks as vt, ItdApiErrorKind as w, RateLimitBucketOverride as wt, ItdAbortError as x, WallAccess as xn, OperationRequestOptions as xt, SubscriptionState as y, ViewReason as yn, ErrorContextHook as yt, ItdStateError as z, RuntimeMode as zt };
2121
- //# sourceMappingURL=url-Be9jlWRv.d.ts.map
2194
+ //# sourceMappingURL=url-XBsMdAcv.d.cts.map
@@ -312,6 +312,7 @@ declare const ItdErrorCode: Readonly<{
312
312
  readonly SESSION_NOT_FOUND: "SESSION_NOT_FOUND";
313
313
  readonly MISSING_FLOW_TOKEN: "MISSING_FLOW_TOKEN";
314
314
  readonly PROFILE_USERNAME_TAKEN: "PROFILE_USERNAME_TAKEN";
315
+ readonly PROFILE_USERNAME_RESERVED: "PROFILE_USERNAME_RESERVED";
315
316
  readonly PROFILE_RESTRICTION_ACTIVE: "PROFILE_RESTRICTION_ACTIVE";
316
317
  readonly PROFILE_MODIFICATION_RESTRICTED: "PROFILE_MODIFICATION_RESTRICTED";
317
318
  readonly CONTENT_MODERATION_FAILED: "CONTENT_MODERATION_FAILED";
@@ -403,6 +404,15 @@ declare const BUCKET_LIMITS: Readonly<{
403
404
  readonly 'users.updateMe': 3;
404
405
  readonly 'reports.create': 3;
405
406
  readonly 'verification.submit': 3;
407
+ readonly shop: 150;
408
+ readonly 'shop.delivery.cities': 60;
409
+ readonly 'shop.delivery.calculate': 45;
410
+ readonly 'shop.delivery.points': 30;
411
+ readonly 'shop.consents.record': 15;
412
+ readonly 'shop.orders.pay': 13;
413
+ readonly 'shop.orders.verifyAccessCode': 13;
414
+ readonly 'shop.orders.create': 12;
415
+ readonly 'shop.orders.requestAccessCode': 4;
406
416
  }>;
407
417
  /** Имя встроенного бакета. */
408
418
  type RateLimitBucket = keyof typeof BUCKET_LIMITS;
@@ -845,6 +855,69 @@ declare const OPERATIONS: Readonly<{
845
855
  readonly method: "POST";
846
856
  readonly retrySafety: "unsafe";
847
857
  }>;
858
+ readonly 'shop.products.list': Readonly<{
859
+ readonly method: "GET";
860
+ readonly retrySafety: "safe";
861
+ readonly bucket: "shop";
862
+ }>;
863
+ readonly 'shop.products.get': Readonly<{
864
+ readonly method: "GET";
865
+ readonly retrySafety: "safe";
866
+ readonly bucket: "shop";
867
+ }>;
868
+ readonly 'shop.delivery.countries': Readonly<{
869
+ readonly method: "GET";
870
+ readonly retrySafety: "safe";
871
+ readonly bucket: "shop";
872
+ }>;
873
+ readonly 'shop.delivery.cities': Readonly<{
874
+ readonly method: "GET";
875
+ readonly retrySafety: "safe";
876
+ readonly bucket: "shop.delivery.cities";
877
+ }>;
878
+ readonly 'shop.delivery.points': Readonly<{
879
+ readonly method: "GET";
880
+ readonly retrySafety: "safe";
881
+ readonly bucket: "shop.delivery.points";
882
+ }>;
883
+ readonly 'shop.delivery.calculate': Readonly<{
884
+ readonly method: "POST";
885
+ readonly retrySafety: "safe";
886
+ readonly bucket: "shop.delivery.calculate";
887
+ }>;
888
+ readonly 'shop.orders.create': Readonly<{
889
+ readonly method: "POST";
890
+ readonly retrySafety: "idempotent";
891
+ readonly bucket: "shop.orders.create";
892
+ }>;
893
+ readonly 'shop.orders.list': Readonly<{
894
+ readonly method: "GET";
895
+ readonly retrySafety: "safe";
896
+ }>;
897
+ readonly 'shop.orders.get': Readonly<{
898
+ readonly method: "GET";
899
+ readonly retrySafety: "safe";
900
+ }>;
901
+ readonly 'shop.orders.pay': Readonly<{
902
+ readonly method: "POST";
903
+ readonly retrySafety: "unsafe";
904
+ readonly bucket: "shop.orders.pay";
905
+ }>;
906
+ readonly 'shop.orders.requestAccessCode': Readonly<{
907
+ readonly method: "POST";
908
+ readonly retrySafety: "unsafe";
909
+ readonly bucket: "shop.orders.requestAccessCode";
910
+ }>;
911
+ readonly 'shop.orders.verifyAccessCode': Readonly<{
912
+ readonly method: "POST";
913
+ readonly retrySafety: "unsafe";
914
+ readonly bucket: "shop.orders.verifyAccessCode";
915
+ }>;
916
+ readonly 'shop.consents.record': Readonly<{
917
+ readonly method: "POST";
918
+ readonly retrySafety: "unsafe";
919
+ readonly bucket: "shop.consents.record";
920
+ }>;
848
921
  }>;
849
922
  /** Стабильный ID встроенной операции. */
850
923
  type BuiltInOperationId = keyof typeof OPERATIONS;
@@ -1289,7 +1362,7 @@ interface OperationDefinition extends OperationMetadata {
1289
1362
  //#endregion
1290
1363
  //#region src/core/version.d.ts
1291
1364
  /** Версия библиотеки. Попадает в `User-Agent`. */
1292
- declare const LIBRARY_VERSION = "0.8.0";
1365
+ declare const LIBRARY_VERSION = "0.9.0";
1293
1366
  //#endregion
1294
1367
  //#region src/core/config.d.ts
1295
1368
  /** Базовый URL API итд.com. Домен записан в punycode: `итд.com`. */
@@ -2118,4 +2191,4 @@ declare function isKnownNotificationType(type: string): boolean;
2118
2191
  declare function resolveNotificationUrl(notification: Notification): string;
2119
2192
  //#endregion
2120
2193
  export { isItdValidationError as $, RateLimitBucket as $t, ItdFieldErrors as A, ResponseContext as At, ItdTimeoutError as B, ItdClock as Bt, ItdApiErrorInit as C, RateLimitBucketContext as Ct, ItdConflictError as D, RequestContext as Dt, ItdConfigError as E, RawRequestOptions as Et, ItdNotFoundError as F, QueryParams as Ft, isItdError as G, OPERATIONS as Gt, isItdApiError as H, BuiltInOperationId as Ht, ItdPhoneVerificationError as I, QueryValue as It, isItdNotFoundError as J, operationBucket as Jt, isItdFileError as K, OperationId as Kt, ItdRateLimitError as L, ServiceDefinition as Lt, ItdFileErrorReason as M, RetryDecisionContext as Mt, ItdForbiddenError as N, RetryOptions as Nt, ItdError as O, RequestExtensions as Ot, ItdNetworkError as P, RuntimeOptions as Pt, isItdStateError as Q, DEFAULT_RATE_LIMIT_BUCKET as Qt, ItdServerError as R, RateLimitPacing as Rt, ItdApiError as S, PaginationOptions as St, ItdAuthError as T, RateLimitOptions as Tt, isItdAuthError as U, CustomOperationId as Ut, ItdValidationError as V, systemClock as Vt, isItdConflictError as W, ItdOperationDefinition as Wt, isItdRateLimitError as X, operationRetrySafety as Xt, isItdPhoneVerificationError as Y, operationMethod as Yt, isItdServerError as Z, BUCKET_LIMITS as Zt, Profile as _, ServiceState as _n, RetrySafety as _t, NotificationEvent as a, AttachmentType as an, tokenProvider as at, UserSummary as b, ViewSource as bn, Logger as bt, NotificationSettings as c, FeedTab as cn, Unsubscribe as ct, Author as d, ItdErrorCode as dn, LIBRARY_VERSION as dt, IsoDate as en, ClientConnection as et, FollowResult as f, LikesVisibility as fn, FeatureOperationId as ft, PrivacySettings as g, ReportTargetType as gn, OperationMethod as gt, PinsResult as h, ReportReason as hn, OperationMetadata as ht, formatNotificationText as i, AccessType as in, bearerToken as it, ItdFileError as j, RetryContext as jt, ItdErrorKind as k, RequestOptions as kt, Actor as l, IncidentKind as ln, DEFAULT_BASE_URL as lt, Pin as m, NotificationType as mn, OperationContract as mt, canonicalNotificationType as n, UserId as nn, AuthProvider as nt, normalizeNotification as o, CommentSort as on, Emitter as ot, MyProfile as p, Loose as pn, OperationAnnotations as pt, isItdForbiddenError as q, isBuiltInOperationId as qt, isKnownNotificationType as r, UserRef as rn, anonymousAuth as rt, Notification as s, EventChannelStatus as sn, Listener as st, resolveNotificationUrl as t, Span as tn, AuthIdentity as tt, AuthState as u, InteractionType as un, STATUS_SERVICE as ut, PublicProfile as v, SpanType as vn, ClientHooks as vt, ItdApiErrorKind as w, RateLimitBucketOverride as wt, ItdAbortError as x, WallAccess as xn, OperationRequestOptions as xt, SubscriptionState as y, ViewReason as yn, ErrorContextHook as yt, ItdStateError as z, RuntimeMode as zt };
2121
- //# sourceMappingURL=url-Be9jlWRv.d.cts.map
2194
+ //# sourceMappingURL=url-XBsMdAcv.d.ts.map
@@ -1,6 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_errors = require("../shared/errors-BmP3TKoW.cjs");
3
- const require_storage = require("../shared/storage-BLmXmzKF.cjs");
3
+ const require_key_value_store = require("../shared/key-value-store-B5GYVEYZ.cjs");
4
+ const require_storage = require("../shared/storage-QNVxzpDB.cjs");
4
5
  //#region src/web.ts
5
6
  /**
6
7
  * `itd-api/web` — хранилища для браузера.
@@ -31,7 +32,7 @@ function getWebStorage(property) {
31
32
  }
32
33
  /** Общая реализация Web Storage; публичные классы ниже фиксируют его вид. */
33
34
  var WebStorageKeyValueStore = class {
34
- #fallback = new require_storage.MemoryKeyValueStore();
35
+ #fallback = new require_key_value_store.MemoryKeyValueStore();
35
36
  #storage;
36
37
  #property;
37
38
  constructor(property) {
@@ -88,7 +89,7 @@ var WebStorageKeyValueStore = class {
88
89
  }
89
90
  #degrade() {
90
91
  this.#storage = void 0;
91
- this.#fallback = new require_storage.MemoryKeyValueStore();
92
+ this.#fallback = new require_key_value_store.MemoryKeyValueStore();
92
93
  }
93
94
  };
94
95
  /** JSON key-value backend поверх браузерного `localStorage` с откатом в память. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["MemoryKeyValueStore","#property","#storage","#fallback","#degrade","ItdConfigError","#inner","createTokenStorage"],"sources":["../../src/web.ts"],"sourcesContent":["/**\n * `itd-api/web` — хранилища для браузера.\n *\n * Здесь лежит только то, что рассчитано на браузерное окружение. Клиент, аккаунты,\n * билдеры, типы и всё остальное берутся из `itd-api` — одинаково на всех платформах.\n *\n * Отдельная точка входа нужна не сборщику, а вам: браузерные хранилища при\n * недоступном Web Storage молча работают в памяти, и такое поведение стоит выбирать\n * осознанно, а не получать вместе с общим импортом.\n *\n * @example\n * ```ts\n * import { ItdClient } from 'itd-api';\n * import { LocalStorageTokenStorage } from 'itd-api/web';\n *\n * const itd = new ItdClient({ storage: new LocalStorageTokenStorage() });\n * ```\n *\n * @packageDocumentation\n */\n\nimport { ItdConfigError } from './core/errors.js';\nimport { MemoryKeyValueStore } from './core/key-value-store.js';\nimport { createTokenStorage, type ItdSession, type TokenStorage } from './session/storage.js';\n\ntype WebStorageProperty = 'localStorage' | 'sessionStorage';\n\nfunction getWebStorage(property: WebStorageProperty): Storage | undefined {\n try {\n return globalThis[property] ?? undefined;\n } catch {\n return undefined;\n }\n}\n\n/** Общая реализация Web Storage; публичные классы ниже фиксируют его вид. */\nclass WebStorageKeyValueStore<T> {\n #fallback = new MemoryKeyValueStore<T>();\n #storage: Storage | undefined;\n readonly #property: WebStorageProperty;\n\n constructor(property: WebStorageProperty) {\n this.#property = property;\n this.#storage = getWebStorage(property);\n }\n\n get(key: string): T | undefined {\n if (!this.#storage) return this.#fallback.get(key);\n let raw: string | null;\n try {\n raw = this.#storage.getItem(key);\n } catch {\n this.#degrade();\n return this.#fallback.get(key);\n }\n if (raw === null) return undefined;\n try {\n return JSON.parse(raw) as T;\n } catch (error) {\n throw new ItdConfigError(`Повреждён JSON в ${this.#property} по ключу «${key}»`, {\n cause: error,\n });\n }\n }\n\n set(key: string, value: T): void {\n if (this.#storage) {\n try {\n this.#storage.setItem(key, JSON.stringify(value));\n return;\n } catch {\n this.#degrade();\n }\n }\n this.#fallback.set(key, value);\n }\n\n delete(key: string): void {\n if (this.#storage) {\n try {\n this.#storage.removeItem(key);\n return;\n } catch {\n this.#degrade();\n }\n }\n this.#fallback.delete(key);\n }\n\n keys(prefix = ''): Iterable<string> | AsyncIterable<string> {\n if (!this.#storage) return this.#fallback.keys(prefix);\n try {\n const keys: string[] = [];\n for (let index = 0; index < this.#storage.length; index += 1) {\n const key = this.#storage.key(index);\n if (key?.startsWith(prefix)) keys.push(key);\n }\n return keys;\n } catch {\n this.#degrade();\n return this.#fallback.keys(prefix);\n }\n }\n\n #degrade(): void {\n this.#storage = undefined;\n this.#fallback = new MemoryKeyValueStore<T>();\n }\n}\n\n/** JSON key-value backend поверх браузерного `localStorage` с откатом в память. */\nexport class LocalStorageKeyValueStore<T> {\n readonly #inner = new WebStorageKeyValueStore<T>('localStorage');\n\n get(key: string): T | undefined {\n return this.#inner.get(key);\n }\n\n set(key: string, value: T): void {\n this.#inner.set(key, value);\n }\n\n delete(key: string): void {\n this.#inner.delete(key);\n }\n\n keys(prefix = ''): Iterable<string> | AsyncIterable<string> {\n return this.#inner.keys(prefix);\n }\n}\n\n/** JSON key-value backend поверх браузерного `sessionStorage` с откатом в память. */\nexport class SessionStorageKeyValueStore<T> {\n readonly #inner = new WebStorageKeyValueStore<T>('sessionStorage');\n\n get(key: string): T | undefined {\n return this.#inner.get(key);\n }\n\n set(key: string, value: T): void {\n this.#inner.set(key, value);\n }\n\n delete(key: string): void {\n this.#inner.delete(key);\n }\n\n keys(prefix = ''): Iterable<string> | AsyncIterable<string> {\n return this.#inner.keys(prefix);\n }\n}\n\n/**\n * Хранилище поверх `localStorage` браузера.\n *\n * Если `localStorage` недоступен (приватный режим, серверный рендеринг), молча работает\n * как хранилище в памяти — библиотека не должна падать из-за настроек браузера. Сессия\n * в этом случае теряется при перезагрузке страницы; когда это неприемлемо, проверьте\n * доступность сами или возьмите своё хранилище через `createTokenStorage`.\n *\n * Помните, что `localStorage` доступен любому скрипту на странице: не используйте его,\n * если для вашего приложения это неприемлемый риск.\n *\n * Повреждённый JSON считается ошибкой, а не отсутствующей сессией. После ошибки доступа,\n * записи или удаления хранилище переключается на память до конца\n * своего жизненного цикла.\n */\nexport class LocalStorageTokenStorage implements TokenStorage {\n readonly #inner: TokenStorage;\n\n /** @param key ключ в `localStorage`. По умолчанию `itd-api:session`. */\n constructor(key = 'itd-api:session') {\n this.#inner = createTokenStorage(new LocalStorageKeyValueStore<ItdSession>(), { key });\n }\n\n get(): ItdSession | null {\n return this.#inner.get() as ItdSession | null;\n }\n\n set(session: ItdSession): void {\n void this.#inner.set(session);\n }\n\n clear(): void {\n void this.#inner.clear();\n }\n}\n\n/**\n * Хранилище сессии поверх браузерного `sessionStorage`.\n *\n * Данные переживают перезагрузку страницы, но существуют только в пределах текущей\n * browser page session. Если `sessionStorage` недоступен, экземпляр молча работает\n * в памяти; после ошибки доступа, записи или удаления он также остаётся в памяти до конца\n * своего жизненного цикла.\n * Повреждённый JSON считается ошибкой, а не отсутствующей сессией.\n *\n * Как и `localStorage`, это хранилище доступно скриптам страницы и не защищает сессию\n * от XSS. Выбирайте его ради более короткого срока жизни, а не ради изоляции секрета.\n */\nexport class SessionStorageTokenStorage implements TokenStorage {\n readonly #inner: TokenStorage;\n\n /** @param key ключ в `sessionStorage`. По умолчанию `itd-api:session`. */\n constructor(key = 'itd-api:session') {\n this.#inner = createTokenStorage(new SessionStorageKeyValueStore<ItdSession>(), { key });\n }\n\n get(): ItdSession | null {\n return this.#inner.get() as ItdSession | null;\n }\n\n set(session: ItdSession): void {\n void this.#inner.set(session);\n }\n\n clear(): void {\n void this.#inner.clear();\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["MemoryKeyValueStore","#property","#storage","#fallback","#degrade","ItdConfigError","#inner","createTokenStorage"],"sources":["../../src/web.ts"],"sourcesContent":["/**\n * `itd-api/web` — хранилища для браузера.\n *\n * Здесь лежит только то, что рассчитано на браузерное окружение. Клиент, аккаунты,\n * билдеры, типы и всё остальное берутся из `itd-api` — одинаково на всех платформах.\n *\n * Отдельная точка входа нужна не сборщику, а вам: браузерные хранилища при\n * недоступном Web Storage молча работают в памяти, и такое поведение стоит выбирать\n * осознанно, а не получать вместе с общим импортом.\n *\n * @example\n * ```ts\n * import { ItdClient } from 'itd-api';\n * import { LocalStorageTokenStorage } from 'itd-api/web';\n *\n * const itd = new ItdClient({ storage: new LocalStorageTokenStorage() });\n * ```\n *\n * @packageDocumentation\n */\n\nimport { ItdConfigError } from './core/errors.js';\nimport { MemoryKeyValueStore } from './core/key-value-store.js';\nimport { createTokenStorage, type ItdSession, type TokenStorage } from './session/storage.js';\n\ntype WebStorageProperty = 'localStorage' | 'sessionStorage';\n\nfunction getWebStorage(property: WebStorageProperty): Storage | undefined {\n try {\n return globalThis[property] ?? undefined;\n } catch {\n return undefined;\n }\n}\n\n/** Общая реализация Web Storage; публичные классы ниже фиксируют его вид. */\nclass WebStorageKeyValueStore<T> {\n #fallback = new MemoryKeyValueStore<T>();\n #storage: Storage | undefined;\n readonly #property: WebStorageProperty;\n\n constructor(property: WebStorageProperty) {\n this.#property = property;\n this.#storage = getWebStorage(property);\n }\n\n get(key: string): T | undefined {\n if (!this.#storage) return this.#fallback.get(key);\n let raw: string | null;\n try {\n raw = this.#storage.getItem(key);\n } catch {\n this.#degrade();\n return this.#fallback.get(key);\n }\n if (raw === null) return undefined;\n try {\n return JSON.parse(raw) as T;\n } catch (error) {\n throw new ItdConfigError(`Повреждён JSON в ${this.#property} по ключу «${key}»`, {\n cause: error,\n });\n }\n }\n\n set(key: string, value: T): void {\n if (this.#storage) {\n try {\n this.#storage.setItem(key, JSON.stringify(value));\n return;\n } catch {\n this.#degrade();\n }\n }\n this.#fallback.set(key, value);\n }\n\n delete(key: string): void {\n if (this.#storage) {\n try {\n this.#storage.removeItem(key);\n return;\n } catch {\n this.#degrade();\n }\n }\n this.#fallback.delete(key);\n }\n\n keys(prefix = ''): Iterable<string> | AsyncIterable<string> {\n if (!this.#storage) return this.#fallback.keys(prefix);\n try {\n const keys: string[] = [];\n for (let index = 0; index < this.#storage.length; index += 1) {\n const key = this.#storage.key(index);\n if (key?.startsWith(prefix)) keys.push(key);\n }\n return keys;\n } catch {\n this.#degrade();\n return this.#fallback.keys(prefix);\n }\n }\n\n #degrade(): void {\n this.#storage = undefined;\n this.#fallback = new MemoryKeyValueStore<T>();\n }\n}\n\n/** JSON key-value backend поверх браузерного `localStorage` с откатом в память. */\nexport class LocalStorageKeyValueStore<T> {\n readonly #inner = new WebStorageKeyValueStore<T>('localStorage');\n\n get(key: string): T | undefined {\n return this.#inner.get(key);\n }\n\n set(key: string, value: T): void {\n this.#inner.set(key, value);\n }\n\n delete(key: string): void {\n this.#inner.delete(key);\n }\n\n keys(prefix = ''): Iterable<string> | AsyncIterable<string> {\n return this.#inner.keys(prefix);\n }\n}\n\n/** JSON key-value backend поверх браузерного `sessionStorage` с откатом в память. */\nexport class SessionStorageKeyValueStore<T> {\n readonly #inner = new WebStorageKeyValueStore<T>('sessionStorage');\n\n get(key: string): T | undefined {\n return this.#inner.get(key);\n }\n\n set(key: string, value: T): void {\n this.#inner.set(key, value);\n }\n\n delete(key: string): void {\n this.#inner.delete(key);\n }\n\n keys(prefix = ''): Iterable<string> | AsyncIterable<string> {\n return this.#inner.keys(prefix);\n }\n}\n\n/**\n * Хранилище поверх `localStorage` браузера.\n *\n * Если `localStorage` недоступен (приватный режим, серверный рендеринг), молча работает\n * как хранилище в памяти — библиотека не должна падать из-за настроек браузера. Сессия\n * в этом случае теряется при перезагрузке страницы; когда это неприемлемо, проверьте\n * доступность сами или возьмите своё хранилище через `createTokenStorage`.\n *\n * Помните, что `localStorage` доступен любому скрипту на странице: не используйте его,\n * если для вашего приложения это неприемлемый риск.\n *\n * Повреждённый JSON считается ошибкой, а не отсутствующей сессией. После ошибки доступа,\n * записи или удаления хранилище переключается на память до конца\n * своего жизненного цикла.\n */\nexport class LocalStorageTokenStorage implements TokenStorage {\n readonly #inner: TokenStorage;\n\n /** @param key ключ в `localStorage`. По умолчанию `itd-api:session`. */\n constructor(key = 'itd-api:session') {\n this.#inner = createTokenStorage(new LocalStorageKeyValueStore<ItdSession>(), { key });\n }\n\n get(): ItdSession | null {\n return this.#inner.get() as ItdSession | null;\n }\n\n set(session: ItdSession): void {\n void this.#inner.set(session);\n }\n\n clear(): void {\n void this.#inner.clear();\n }\n}\n\n/**\n * Хранилище сессии поверх браузерного `sessionStorage`.\n *\n * Данные переживают перезагрузку страницы, но существуют только в пределах текущей\n * browser page session. Если `sessionStorage` недоступен, экземпляр молча работает\n * в памяти; после ошибки доступа, записи или удаления он также остаётся в памяти до конца\n * своего жизненного цикла.\n * Повреждённый JSON считается ошибкой, а не отсутствующей сессией.\n *\n * Как и `localStorage`, это хранилище доступно скриптам страницы и не защищает сессию\n * от XSS. Выбирайте его ради более короткого срока жизни, а не ради изоляции секрета.\n */\nexport class SessionStorageTokenStorage implements TokenStorage {\n readonly #inner: TokenStorage;\n\n /** @param key ключ в `sessionStorage`. По умолчанию `itd-api:session`. */\n constructor(key = 'itd-api:session') {\n this.#inner = createTokenStorage(new SessionStorageKeyValueStore<ItdSession>(), { key });\n }\n\n get(): ItdSession | null {\n return this.#inner.get() as ItdSession | null;\n }\n\n set(session: ItdSession): void {\n void this.#inner.set(session);\n }\n\n clear(): void {\n void this.#inner.clear();\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { r as TokenStorage, t as ItdSession } from "../shared/storage-C_eICCep.cjs";
1
+ import { r as TokenStorage, t as ItdSession } from "../shared/storage-BQrtKon9.cjs";
2
2
  //#region src/web.d.ts
3
3
  /** JSON key-value backend поверх браузерного `localStorage` с откатом в память. */
4
4
  declare class LocalStorageKeyValueStore<T> {
@@ -1,4 +1,4 @@
1
- import { r as TokenStorage, t as ItdSession } from "../shared/storage-C_eICCep.js";
1
+ import { r as TokenStorage, t as ItdSession } from "../shared/storage-CTRGT5wF.js";
2
2
  //#region src/web.d.ts
3
3
  /** JSON key-value backend поверх браузерного `localStorage` с откатом в память. */
4
4
  declare class LocalStorageKeyValueStore<T> {
package/dist/web/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { a as ItdConfigError } from "../shared/errors-GI10kZxk.js";
2
- import { i as MemoryKeyValueStore, r as createTokenStorage } from "../shared/storage-CCxn0Kkv.js";
2
+ import { t as MemoryKeyValueStore } from "../shared/key-value-store-Bt2PSMxY.js";
3
+ import { r as createTokenStorage } from "../shared/storage-CfHKzVHf.js";
3
4
  //#region src/web.ts
4
5
  /**
5
6
  * `itd-api/web` — хранилища для браузера.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["#property","#storage","#fallback","#degrade","#inner"],"sources":["../../src/web.ts"],"sourcesContent":["/**\n * `itd-api/web` — хранилища для браузера.\n *\n * Здесь лежит только то, что рассчитано на браузерное окружение. Клиент, аккаунты,\n * билдеры, типы и всё остальное берутся из `itd-api` — одинаково на всех платформах.\n *\n * Отдельная точка входа нужна не сборщику, а вам: браузерные хранилища при\n * недоступном Web Storage молча работают в памяти, и такое поведение стоит выбирать\n * осознанно, а не получать вместе с общим импортом.\n *\n * @example\n * ```ts\n * import { ItdClient } from 'itd-api';\n * import { LocalStorageTokenStorage } from 'itd-api/web';\n *\n * const itd = new ItdClient({ storage: new LocalStorageTokenStorage() });\n * ```\n *\n * @packageDocumentation\n */\n\nimport { ItdConfigError } from './core/errors.js';\nimport { MemoryKeyValueStore } from './core/key-value-store.js';\nimport { createTokenStorage, type ItdSession, type TokenStorage } from './session/storage.js';\n\ntype WebStorageProperty = 'localStorage' | 'sessionStorage';\n\nfunction getWebStorage(property: WebStorageProperty): Storage | undefined {\n try {\n return globalThis[property] ?? undefined;\n } catch {\n return undefined;\n }\n}\n\n/** Общая реализация Web Storage; публичные классы ниже фиксируют его вид. */\nclass WebStorageKeyValueStore<T> {\n #fallback = new MemoryKeyValueStore<T>();\n #storage: Storage | undefined;\n readonly #property: WebStorageProperty;\n\n constructor(property: WebStorageProperty) {\n this.#property = property;\n this.#storage = getWebStorage(property);\n }\n\n get(key: string): T | undefined {\n if (!this.#storage) return this.#fallback.get(key);\n let raw: string | null;\n try {\n raw = this.#storage.getItem(key);\n } catch {\n this.#degrade();\n return this.#fallback.get(key);\n }\n if (raw === null) return undefined;\n try {\n return JSON.parse(raw) as T;\n } catch (error) {\n throw new ItdConfigError(`Повреждён JSON в ${this.#property} по ключу «${key}»`, {\n cause: error,\n });\n }\n }\n\n set(key: string, value: T): void {\n if (this.#storage) {\n try {\n this.#storage.setItem(key, JSON.stringify(value));\n return;\n } catch {\n this.#degrade();\n }\n }\n this.#fallback.set(key, value);\n }\n\n delete(key: string): void {\n if (this.#storage) {\n try {\n this.#storage.removeItem(key);\n return;\n } catch {\n this.#degrade();\n }\n }\n this.#fallback.delete(key);\n }\n\n keys(prefix = ''): Iterable<string> | AsyncIterable<string> {\n if (!this.#storage) return this.#fallback.keys(prefix);\n try {\n const keys: string[] = [];\n for (let index = 0; index < this.#storage.length; index += 1) {\n const key = this.#storage.key(index);\n if (key?.startsWith(prefix)) keys.push(key);\n }\n return keys;\n } catch {\n this.#degrade();\n return this.#fallback.keys(prefix);\n }\n }\n\n #degrade(): void {\n this.#storage = undefined;\n this.#fallback = new MemoryKeyValueStore<T>();\n }\n}\n\n/** JSON key-value backend поверх браузерного `localStorage` с откатом в память. */\nexport class LocalStorageKeyValueStore<T> {\n readonly #inner = new WebStorageKeyValueStore<T>('localStorage');\n\n get(key: string): T | undefined {\n return this.#inner.get(key);\n }\n\n set(key: string, value: T): void {\n this.#inner.set(key, value);\n }\n\n delete(key: string): void {\n this.#inner.delete(key);\n }\n\n keys(prefix = ''): Iterable<string> | AsyncIterable<string> {\n return this.#inner.keys(prefix);\n }\n}\n\n/** JSON key-value backend поверх браузерного `sessionStorage` с откатом в память. */\nexport class SessionStorageKeyValueStore<T> {\n readonly #inner = new WebStorageKeyValueStore<T>('sessionStorage');\n\n get(key: string): T | undefined {\n return this.#inner.get(key);\n }\n\n set(key: string, value: T): void {\n this.#inner.set(key, value);\n }\n\n delete(key: string): void {\n this.#inner.delete(key);\n }\n\n keys(prefix = ''): Iterable<string> | AsyncIterable<string> {\n return this.#inner.keys(prefix);\n }\n}\n\n/**\n * Хранилище поверх `localStorage` браузера.\n *\n * Если `localStorage` недоступен (приватный режим, серверный рендеринг), молча работает\n * как хранилище в памяти — библиотека не должна падать из-за настроек браузера. Сессия\n * в этом случае теряется при перезагрузке страницы; когда это неприемлемо, проверьте\n * доступность сами или возьмите своё хранилище через `createTokenStorage`.\n *\n * Помните, что `localStorage` доступен любому скрипту на странице: не используйте его,\n * если для вашего приложения это неприемлемый риск.\n *\n * Повреждённый JSON считается ошибкой, а не отсутствующей сессией. После ошибки доступа,\n * записи или удаления хранилище переключается на память до конца\n * своего жизненного цикла.\n */\nexport class LocalStorageTokenStorage implements TokenStorage {\n readonly #inner: TokenStorage;\n\n /** @param key ключ в `localStorage`. По умолчанию `itd-api:session`. */\n constructor(key = 'itd-api:session') {\n this.#inner = createTokenStorage(new LocalStorageKeyValueStore<ItdSession>(), { key });\n }\n\n get(): ItdSession | null {\n return this.#inner.get() as ItdSession | null;\n }\n\n set(session: ItdSession): void {\n void this.#inner.set(session);\n }\n\n clear(): void {\n void this.#inner.clear();\n }\n}\n\n/**\n * Хранилище сессии поверх браузерного `sessionStorage`.\n *\n * Данные переживают перезагрузку страницы, но существуют только в пределах текущей\n * browser page session. Если `sessionStorage` недоступен, экземпляр молча работает\n * в памяти; после ошибки доступа, записи или удаления он также остаётся в памяти до конца\n * своего жизненного цикла.\n * Повреждённый JSON считается ошибкой, а не отсутствующей сессией.\n *\n * Как и `localStorage`, это хранилище доступно скриптам страницы и не защищает сессию\n * от XSS. Выбирайте его ради более короткого срока жизни, а не ради изоляции секрета.\n */\nexport class SessionStorageTokenStorage implements TokenStorage {\n readonly #inner: TokenStorage;\n\n /** @param key ключ в `sessionStorage`. По умолчанию `itd-api:session`. */\n constructor(key = 'itd-api:session') {\n this.#inner = createTokenStorage(new SessionStorageKeyValueStore<ItdSession>(), { key });\n }\n\n get(): ItdSession | null {\n return this.#inner.get() as ItdSession | null;\n }\n\n set(session: ItdSession): void {\n void this.#inner.set(session);\n }\n\n clear(): void {\n void this.#inner.clear();\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["#property","#storage","#fallback","#degrade","#inner"],"sources":["../../src/web.ts"],"sourcesContent":["/**\n * `itd-api/web` — хранилища для браузера.\n *\n * Здесь лежит только то, что рассчитано на браузерное окружение. Клиент, аккаунты,\n * билдеры, типы и всё остальное берутся из `itd-api` — одинаково на всех платформах.\n *\n * Отдельная точка входа нужна не сборщику, а вам: браузерные хранилища при\n * недоступном Web Storage молча работают в памяти, и такое поведение стоит выбирать\n * осознанно, а не получать вместе с общим импортом.\n *\n * @example\n * ```ts\n * import { ItdClient } from 'itd-api';\n * import { LocalStorageTokenStorage } from 'itd-api/web';\n *\n * const itd = new ItdClient({ storage: new LocalStorageTokenStorage() });\n * ```\n *\n * @packageDocumentation\n */\n\nimport { ItdConfigError } from './core/errors.js';\nimport { MemoryKeyValueStore } from './core/key-value-store.js';\nimport { createTokenStorage, type ItdSession, type TokenStorage } from './session/storage.js';\n\ntype WebStorageProperty = 'localStorage' | 'sessionStorage';\n\nfunction getWebStorage(property: WebStorageProperty): Storage | undefined {\n try {\n return globalThis[property] ?? undefined;\n } catch {\n return undefined;\n }\n}\n\n/** Общая реализация Web Storage; публичные классы ниже фиксируют его вид. */\nclass WebStorageKeyValueStore<T> {\n #fallback = new MemoryKeyValueStore<T>();\n #storage: Storage | undefined;\n readonly #property: WebStorageProperty;\n\n constructor(property: WebStorageProperty) {\n this.#property = property;\n this.#storage = getWebStorage(property);\n }\n\n get(key: string): T | undefined {\n if (!this.#storage) return this.#fallback.get(key);\n let raw: string | null;\n try {\n raw = this.#storage.getItem(key);\n } catch {\n this.#degrade();\n return this.#fallback.get(key);\n }\n if (raw === null) return undefined;\n try {\n return JSON.parse(raw) as T;\n } catch (error) {\n throw new ItdConfigError(`Повреждён JSON в ${this.#property} по ключу «${key}»`, {\n cause: error,\n });\n }\n }\n\n set(key: string, value: T): void {\n if (this.#storage) {\n try {\n this.#storage.setItem(key, JSON.stringify(value));\n return;\n } catch {\n this.#degrade();\n }\n }\n this.#fallback.set(key, value);\n }\n\n delete(key: string): void {\n if (this.#storage) {\n try {\n this.#storage.removeItem(key);\n return;\n } catch {\n this.#degrade();\n }\n }\n this.#fallback.delete(key);\n }\n\n keys(prefix = ''): Iterable<string> | AsyncIterable<string> {\n if (!this.#storage) return this.#fallback.keys(prefix);\n try {\n const keys: string[] = [];\n for (let index = 0; index < this.#storage.length; index += 1) {\n const key = this.#storage.key(index);\n if (key?.startsWith(prefix)) keys.push(key);\n }\n return keys;\n } catch {\n this.#degrade();\n return this.#fallback.keys(prefix);\n }\n }\n\n #degrade(): void {\n this.#storage = undefined;\n this.#fallback = new MemoryKeyValueStore<T>();\n }\n}\n\n/** JSON key-value backend поверх браузерного `localStorage` с откатом в память. */\nexport class LocalStorageKeyValueStore<T> {\n readonly #inner = new WebStorageKeyValueStore<T>('localStorage');\n\n get(key: string): T | undefined {\n return this.#inner.get(key);\n }\n\n set(key: string, value: T): void {\n this.#inner.set(key, value);\n }\n\n delete(key: string): void {\n this.#inner.delete(key);\n }\n\n keys(prefix = ''): Iterable<string> | AsyncIterable<string> {\n return this.#inner.keys(prefix);\n }\n}\n\n/** JSON key-value backend поверх браузерного `sessionStorage` с откатом в память. */\nexport class SessionStorageKeyValueStore<T> {\n readonly #inner = new WebStorageKeyValueStore<T>('sessionStorage');\n\n get(key: string): T | undefined {\n return this.#inner.get(key);\n }\n\n set(key: string, value: T): void {\n this.#inner.set(key, value);\n }\n\n delete(key: string): void {\n this.#inner.delete(key);\n }\n\n keys(prefix = ''): Iterable<string> | AsyncIterable<string> {\n return this.#inner.keys(prefix);\n }\n}\n\n/**\n * Хранилище поверх `localStorage` браузера.\n *\n * Если `localStorage` недоступен (приватный режим, серверный рендеринг), молча работает\n * как хранилище в памяти — библиотека не должна падать из-за настроек браузера. Сессия\n * в этом случае теряется при перезагрузке страницы; когда это неприемлемо, проверьте\n * доступность сами или возьмите своё хранилище через `createTokenStorage`.\n *\n * Помните, что `localStorage` доступен любому скрипту на странице: не используйте его,\n * если для вашего приложения это неприемлемый риск.\n *\n * Повреждённый JSON считается ошибкой, а не отсутствующей сессией. После ошибки доступа,\n * записи или удаления хранилище переключается на память до конца\n * своего жизненного цикла.\n */\nexport class LocalStorageTokenStorage implements TokenStorage {\n readonly #inner: TokenStorage;\n\n /** @param key ключ в `localStorage`. По умолчанию `itd-api:session`. */\n constructor(key = 'itd-api:session') {\n this.#inner = createTokenStorage(new LocalStorageKeyValueStore<ItdSession>(), { key });\n }\n\n get(): ItdSession | null {\n return this.#inner.get() as ItdSession | null;\n }\n\n set(session: ItdSession): void {\n void this.#inner.set(session);\n }\n\n clear(): void {\n void this.#inner.clear();\n }\n}\n\n/**\n * Хранилище сессии поверх браузерного `sessionStorage`.\n *\n * Данные переживают перезагрузку страницы, но существуют только в пределах текущей\n * browser page session. Если `sessionStorage` недоступен, экземпляр молча работает\n * в памяти; после ошибки доступа, записи или удаления он также остаётся в памяти до конца\n * своего жизненного цикла.\n * Повреждённый JSON считается ошибкой, а не отсутствующей сессией.\n *\n * Как и `localStorage`, это хранилище доступно скриптам страницы и не защищает сессию\n * от XSS. Выбирайте его ради более короткого срока жизни, а не ради изоляции секрета.\n */\nexport class SessionStorageTokenStorage implements TokenStorage {\n readonly #inner: TokenStorage;\n\n /** @param key ключ в `sessionStorage`. По умолчанию `itd-api:session`. */\n constructor(key = 'itd-api:session') {\n this.#inner = createTokenStorage(new SessionStorageKeyValueStore<ItdSession>(), { key });\n }\n\n get(): ItdSession | null {\n return this.#inner.get() as ItdSession | null;\n }\n\n set(session: ItdSession): void {\n void this.#inner.set(session);\n }\n\n clear(): void {\n void this.#inner.clear();\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itd-api",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "JS/TS SDK & API клиент для соцсети ИТД (итд.com)",
5
5
  "repository": {
6
6
  "type": "git",