itd-api 0.0.4 → 0.0.5

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.
@@ -1556,7 +1556,7 @@ var AuthManager = class {
1556
1556
  }
1557
1557
  if (credentials.turnstileToken) return credentials.turnstileToken;
1558
1558
  throw new ItdConfigError(
1559
- "\u0412\u0445\u043E\u0434 \u043F\u043E email \u0438 \u043F\u0430\u0440\u043E\u043B\u044E \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u043E\u043A\u0435\u043D \u043A\u0430\u043F\u0447\u0438 Cloudflare Turnstile: \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u0441\u0435\u0440\u0432\u0435\u0440 \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 422. \u041F\u0435\u0440\u0435\u0434\u0430\u0439\u0442\u0435 auth.getTurnstileToken (\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A \u0441\u0432\u0435\u0436\u0435\u0433\u043E \u0442\u043E\u043A\u0435\u043D\u0430) \u043B\u0438\u0431\u043E \u0440\u0430\u0437\u043E\u0432\u044B\u0439 auth.turnstileToken. \u041A\u043B\u044E\u0447 \u0432\u0438\u0434\u0436\u0435\u0442\u0430 \u2014 TURNSTILE_SITE_KEY."
1559
+ "\u0412\u0445\u043E\u0434 \u043F\u043E email \u0438 \u043F\u0430\u0440\u043E\u043B\u044E \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u043E\u043A\u0435\u043D \u043A\u0430\u043F\u0447\u0438 Cloudflare Turnstile: \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u0441\u0435\u0440\u0432\u0435\u0440 \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 422. \u041F\u0435\u0440\u0435\u0434\u0430\u0439\u0442\u0435 auth.getTurnstileToken (\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A \u0441\u0432\u0435\u0436\u0435\u0433\u043E \u0442\u043E\u043A\u0435\u043D\u0430) \u043B\u0438\u0431\u043E \u0440\u0430\u0437\u043E\u0432\u044B\u0439 auth.turnstileToken. \u041A\u043B\u044E\u0447 \u0432\u0438\u0434\u0436\u0435\u0442\u0430 \u2014 TURNSTILE_SITE_KEY. \u0412 Node \u0442\u043E\u043A\u0435\u043D \u0443\u043C\u0435\u0435\u0442 \u0434\u043E\u0431\u044B\u0432\u0430\u0442\u044C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0430\u043A\u0435\u0442: npm i itd-api-turnstile, \u0437\u0430\u0442\u0435\u043C getTurnstileToken: createTurnstileSolver()."
1560
1560
  );
1561
1561
  }
1562
1562
  async #performSignIn(credentials) {
@@ -1698,7 +1698,7 @@ function normalizeBaseUrl(baseUrl) {
1698
1698
  // src/core/config.ts
1699
1699
  var DEFAULT_BASE_URL = "https://xn--d1ah4a.com";
1700
1700
  var DEFAULT_TIMEOUT = 3e4;
1701
- var LIBRARY_VERSION = "0.0.4";
1701
+ var LIBRARY_VERSION = "0.0.5";
1702
1702
  var DEFAULT_USER_AGENT = `Mozilla/5.0 (compatible; itd-api/${LIBRARY_VERSION}; +https://github.com/KiowDev/itd-api)`;
1703
1703
  var DEFAULT_RATE_LIMIT_DELAYS = Object.freeze([1e3, 5e3, 3e4, 6e4, 9e4]);
1704
1704
  function requirePositive(value, name) {
@@ -4477,7 +4477,16 @@ var PostsResource = class extends BaseResource {
4477
4477
  });
4478
4478
  return pickArray(body, "posts");
4479
4479
  }
4480
- /** Загружает страницу постов пользователя (его стену). */
4480
+ /**
4481
+ * Загружает страницу стены пользователя.
4482
+ *
4483
+ * Это **не только его собственные посты**: сюда попадают и записи, которые другие
4484
+ * оставили на его стене — у них `author` чужой, а `wallRecipient` указывает на владельца
4485
+ * стены. Поэтому число записей обычно больше, чем `postsCount` из профиля; чтобы
4486
+ * получить только авторские посты, отфильтруйте по `post.author.id`.
4487
+ *
4488
+ * Принимает и UUID, и имя пользователя.
4489
+ */
4481
4490
  async byUser(user, params = {}) {
4482
4491
  const body = await this.http.request({
4483
4492
  method: "GET",
@@ -4492,7 +4501,7 @@ var PostsResource = class extends BaseResource {
4492
4501
  });
4493
4502
  return readCursorPage(body, "posts");
4494
4503
  }
4495
- /** Перебирает посты пользователя. */
4504
+ /** Перебирает стену пользователя. Что именно в неё входит — см. {@link byUser}. */
4496
4505
  iterateByUser(user, params = {}) {
4497
4506
  const path = `/api/posts/user/${encodePathSegment(user, "user")}`;
4498
4507
  return this.paginate(
@@ -4735,19 +4744,34 @@ var UsersResource = class extends BaseResource {
4735
4744
  ...this.requestOptions(options)
4736
4745
  });
4737
4746
  }
4738
- /** Загружает страницу подписчиков. */
4747
+ /**
4748
+ * Загружает подписчиков пользователя.
4749
+ *
4750
+ * ⚠️ **Сервер этот список не листает.** Возвращаются первые 20 записей и только они:
4751
+ * параметр `page` игнорируется (любая страница отдаёт те же записи и `pagination.page: 1`),
4752
+ * `limit` больше 20 молча уменьшается, а `hasMore` всегда `false`. Последнее честно —
4753
+ * получить продолжение нечем.
4754
+ *
4755
+ * Числу `total` доверять тоже не стоит: оно расходится с `followersCount` из профиля —
4756
+ * на проверенных аккаунтах занижено примерно на 1–4%.
4757
+ */
4739
4758
  followers(user, params = {}) {
4740
4759
  return this.#userPage(`/api/users/${encodePathSegment(user, "user")}/followers`, params);
4741
4760
  }
4742
- /** Перебирает подписчиков. */
4761
+ /**
4762
+ * Перебирает подписчиков.
4763
+ *
4764
+ * ⚠️ Перебор закончится после первых 20 записей: сервер список не листает —
4765
+ * см. {@link followers}. Метод оставлен на случай, если пагинацию починят.
4766
+ */
4743
4767
  iterateFollowers(user, params = {}) {
4744
4768
  return this.#userPaginator(`/api/users/${encodePathSegment(user, "user")}/followers`, params);
4745
4769
  }
4746
- /** Загружает страницу подписок. */
4770
+ /** Загружает подписки пользователя. Ограничения те же, что у {@link followers}. */
4747
4771
  following(user, params = {}) {
4748
4772
  return this.#userPage(`/api/users/${encodePathSegment(user, "user")}/following`, params);
4749
4773
  }
4750
- /** Перебирает подписки. */
4774
+ /** Перебирает подписки. Закончится после первых 20 записей — см. {@link followers}. */
4751
4775
  iterateFollowing(user, params = {}) {
4752
4776
  return this.#userPaginator(`/api/users/${encodePathSegment(user, "user")}/following`, params);
4753
4777
  }
@@ -4787,11 +4811,11 @@ var UsersResource = class extends BaseResource {
4787
4811
  ...this.requestOptions(options)
4788
4812
  });
4789
4813
  }
4790
- /** Загружает страницу заблокированных пользователей. */
4814
+ /** Загружает заблокированных пользователей. Ограничения те же, что у {@link followers}. */
4791
4815
  blocked(params = {}) {
4792
4816
  return this.#userPage("/api/users/me/blocked", params);
4793
4817
  }
4794
- /** Перебирает заблокированных пользователей. */
4818
+ /** Перебирает заблокированных. Закончится после первых 20 записей — см. {@link followers}. */
4795
4819
  iterateBlocked(params = {}) {
4796
4820
  return this.#userPaginator("/api/users/me/blocked", params);
4797
4821
  }
@@ -4852,6 +4876,9 @@ var UsersResource = class extends BaseResource {
4852
4876
  * Имена полей перечислены с запасом: списки подписчиков и заблокированных приходят
4853
4877
  * под `users`, но альтернативное имя ничего не стоит и спасает, если эндпоинт назовёт
4854
4878
  * список по-своему.
4879
+ *
4880
+ * `page` уходит в запрос, хотя сервер его сейчас не читает (см. {@link followers}):
4881
+ * когда пагинацию починят, работать начнёт само.
4855
4882
  */
4856
4883
  async #loadUserPage(path, params, state) {
4857
4884
  const body = await this.http.request({
@@ -5274,5 +5301,5 @@ exports.readUnreadCountEvent = readUnreadCountEvent;
5274
5301
  exports.report = report;
5275
5302
  exports.resolveNotificationUrl = resolveNotificationUrl;
5276
5303
  exports.toDate = toDate;
5277
- //# sourceMappingURL=chunk-XG43KEYF.cjs.map
5278
- //# sourceMappingURL=chunk-XG43KEYF.cjs.map
5304
+ //# sourceMappingURL=chunk-YM2YUO4D.cjs.map
5305
+ //# sourceMappingURL=chunk-YM2YUO4D.cjs.map