itd-api 0.1.0 → 0.3.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.
- package/README.md +121 -495
- package/dist/index.cjs +9212 -412
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5176 -1
- package/dist/index.d.ts +5176 -1
- package/dist/index.js +9118 -2
- package/dist/index.js.map +1 -1
- package/dist/multi-storage-BhcA2Izn.d.ts +198 -0
- package/dist/multi-storage-CyMe404l.js +805 -0
- package/dist/multi-storage-CyMe404l.js.map +1 -0
- package/dist/multi-storage-D1keK2Op.cjs +930 -0
- package/dist/multi-storage-D1keK2Op.cjs.map +1 -0
- package/dist/multi-storage-NDqzRQcD.d.cts +198 -0
- package/dist/node.cjs +225 -548
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.cts +46 -59
- package/dist/node.d.ts +46 -59
- package/dist/node.js +223 -126
- package/dist/node.js.map +1 -1
- package/dist/runtime-CFEsf-jD.cjs +185 -0
- package/dist/runtime-CFEsf-jD.cjs.map +1 -0
- package/dist/runtime-DHxDn8gf.js +126 -0
- package/dist/runtime-DHxDn8gf.js.map +1 -0
- package/dist/storage-BjNRlkbE.d.cts +82 -0
- package/dist/storage-BjNRlkbE.d.ts +82 -0
- package/dist/storage-D9tfHx7Z.js +424 -0
- package/dist/storage-D9tfHx7Z.js.map +1 -0
- package/dist/storage-ycBqLBRB.cjs +615 -0
- package/dist/storage-ycBqLBRB.cjs.map +1 -0
- package/dist/web.cjs +87 -0
- package/dist/web.cjs.map +1 -0
- package/dist/web.d.cts +27 -0
- package/dist/web.d.ts +27 -0
- package/dist/web.js +86 -0
- package/dist/web.js.map +1 -0
- package/package.json +34 -14
- package/dist/chunk-6FB4HTKH.js +0 -7763
- package/dist/chunk-6FB4HTKH.js.map +0 -1
- package/dist/chunk-73CISRBG.cjs +0 -7873
- package/dist/chunk-73CISRBG.cjs.map +0 -1
- package/dist/index-BZF4K90s.d.cts +0 -4961
- package/dist/index-BZF4K90s.d.ts +0 -4961
- package/guides/README.md +0 -24
- package/guides/authentication/README.md +0 -176
- package/guides/authentication/examples/bot-with-session.mjs +0 -98
- package/guides/authentication/examples/turnstile-login.mjs +0 -56
- package/guides/integrations/README.md +0 -62
- package/guides/integrations/examples/proxy.mjs +0 -26
- package/guides/multi-accounts/README.md +0 -143
- package/guides/multi-accounts/examples/multi-accounts.mjs +0 -71
- package/guides/plugins/README.md +0 -253
- package/guides/plugins/examples/cache.mjs +0 -33
- package/guides/plugins/examples/crypto.mjs +0 -54
- package/guides/quickstart/README.md +0 -124
- package/guides/quickstart/examples/quick-start.mjs +0 -44
- package/guides/quickstart/examples/typescript.ts +0 -90
- package/guides/realtime/README.md +0 -109
- package/guides/realtime/examples/notifications.mjs +0 -62
- package/guides/reference/README.md +0 -67
- package/guides/reference/accounts.md +0 -101
- package/guides/reference/auth.md +0 -141
- package/guides/reference/builders.md +0 -135
- package/guides/reference/client.md +0 -184
- package/guides/reference/comments.md +0 -58
- package/guides/reference/discovery.md +0 -81
- package/guides/reference/enums.md +0 -103
- package/guides/reference/errors.md +0 -107
- package/guides/reference/files.md +0 -73
- package/guides/reference/models.md +0 -448
- package/guides/reference/notifications.md +0 -77
- package/guides/reference/pagination.md +0 -82
- package/guides/reference/platform.md +0 -47
- package/guides/reference/posts.md +0 -157
- package/guides/reference/realtime.md +0 -78
- package/guides/reference/reports.md +0 -28
- package/guides/reference/subscription.md +0 -41
- package/guides/reference/users.md +0 -146
- package/guides/reference/verification.md +0 -24
- package/guides/text-markup/README.md +0 -214
- package/guides/text-markup/examples/create-post.mjs +0 -64
package/dist/web.cjs
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_storage = require("./storage-ycBqLBRB.cjs");
|
|
3
|
+
const require_runtime = require("./runtime-CFEsf-jD.cjs");
|
|
4
|
+
//#region src/web.ts
|
|
5
|
+
/**
|
|
6
|
+
* `itd-api/web` — хранилище сессии для браузера.
|
|
7
|
+
*
|
|
8
|
+
* Здесь лежит только то, что рассчитано на браузерное окружение. Клиент, аккаунты,
|
|
9
|
+
* билдеры, типы и всё остальное берутся из `itd-api` — одинаково на всех платформах.
|
|
10
|
+
*
|
|
11
|
+
* Отдельная точка входа нужна не сборщику, а вам: {@link LocalStorageTokenStorage}
|
|
12
|
+
* при недоступном `localStorage` молча работает как хранилище в памяти, и такое
|
|
13
|
+
* поведение стоит выбирать осознанно, а не получать вместе с общим импортом.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { ItdClient } from 'itd-api';
|
|
18
|
+
* import { LocalStorageTokenStorage } from 'itd-api/web';
|
|
19
|
+
*
|
|
20
|
+
* const itd = new ItdClient({ storage: new LocalStorageTokenStorage() });
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @packageDocumentation
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Хранилище поверх `localStorage` браузера.
|
|
27
|
+
*
|
|
28
|
+
* Если `localStorage` недоступен (приватный режим, серверный рендеринг), молча работает
|
|
29
|
+
* как хранилище в памяти — библиотека не должна падать из-за настроек браузера. Сессия
|
|
30
|
+
* в этом случае теряется при перезагрузке страницы; когда это неприемлемо, проверьте
|
|
31
|
+
* доступность сами или возьмите своё хранилище через `createTokenStorage`.
|
|
32
|
+
*
|
|
33
|
+
* Помните, что `localStorage` доступен любому скрипту на странице: не используйте его,
|
|
34
|
+
* если для вашего приложения это неприемлемый риск.
|
|
35
|
+
*
|
|
36
|
+
* После ошибки записи или удаления хранилище переключается на память до конца
|
|
37
|
+
* своего жизненного цикла.
|
|
38
|
+
*/
|
|
39
|
+
var LocalStorageTokenStorage = class {
|
|
40
|
+
#key;
|
|
41
|
+
#fallback = new require_storage.MemoryTokenStorage();
|
|
42
|
+
/** Доступен ли `localStorage` для дальнейших операций. */
|
|
43
|
+
#available;
|
|
44
|
+
/** @param key ключ в `localStorage`. По умолчанию `itd-api:session`. */
|
|
45
|
+
constructor(key = "itd-api:session") {
|
|
46
|
+
this.#key = key;
|
|
47
|
+
this.#available = require_runtime.hasLocalStorage();
|
|
48
|
+
}
|
|
49
|
+
get() {
|
|
50
|
+
if (!this.#available) return this.#fallback.get();
|
|
51
|
+
try {
|
|
52
|
+
const raw = globalThis.localStorage.getItem(this.#key);
|
|
53
|
+
if (!raw) return null;
|
|
54
|
+
const parsed = JSON.parse(raw);
|
|
55
|
+
return typeof parsed === "object" && parsed !== null ? parsed : null;
|
|
56
|
+
} catch {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
set(session) {
|
|
61
|
+
if (this.#available) try {
|
|
62
|
+
globalThis.localStorage.setItem(this.#key, JSON.stringify(session));
|
|
63
|
+
return;
|
|
64
|
+
} catch {
|
|
65
|
+
this.#degrade();
|
|
66
|
+
}
|
|
67
|
+
this.#fallback.set(session);
|
|
68
|
+
}
|
|
69
|
+
clear() {
|
|
70
|
+
if (this.#available) try {
|
|
71
|
+
globalThis.localStorage.removeItem(this.#key);
|
|
72
|
+
return;
|
|
73
|
+
} catch {
|
|
74
|
+
this.#degrade();
|
|
75
|
+
}
|
|
76
|
+
this.#fallback.clear();
|
|
77
|
+
}
|
|
78
|
+
/** Переводит хранилище в память без переноса прежнего значения. */
|
|
79
|
+
#degrade() {
|
|
80
|
+
this.#available = false;
|
|
81
|
+
this.#fallback.clear();
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
//#endregion
|
|
85
|
+
exports.LocalStorageTokenStorage = LocalStorageTokenStorage;
|
|
86
|
+
|
|
87
|
+
//# sourceMappingURL=web.cjs.map
|
package/dist/web.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web.cjs","names":["#key","#fallback","MemoryTokenStorage","#available","hasLocalStorage","#degrade"],"sources":["../src/web.ts"],"sourcesContent":["/**\n * `itd-api/web` — хранилище сессии для браузера.\n *\n * Здесь лежит только то, что рассчитано на браузерное окружение. Клиент, аккаунты,\n * билдеры, типы и всё остальное берутся из `itd-api` — одинаково на всех платформах.\n *\n * Отдельная точка входа нужна не сборщику, а вам: {@link LocalStorageTokenStorage}\n * при недоступном `localStorage` молча работает как хранилище в памяти, и такое\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 { hasLocalStorage } from './core/runtime.js';\nimport { type ItdSession, MemoryTokenStorage, type TokenStorage } from './core/storage.js';\n\n/**\n * Хранилище поверх `localStorage` браузера.\n *\n * Если `localStorage` недоступен (приватный режим, серверный рендеринг), молча работает\n * как хранилище в памяти — библиотека не должна падать из-за настроек браузера. Сессия\n * в этом случае теряется при перезагрузке страницы; когда это неприемлемо, проверьте\n * доступность сами или возьмите своё хранилище через `createTokenStorage`.\n *\n * Помните, что `localStorage` доступен любому скрипту на странице: не используйте его,\n * если для вашего приложения это неприемлемый риск.\n *\n * После ошибки записи или удаления хранилище переключается на память до конца\n * своего жизненного цикла.\n */\nexport class LocalStorageTokenStorage implements TokenStorage {\n readonly #key: string;\n readonly #fallback = new MemoryTokenStorage();\n /** Доступен ли `localStorage` для дальнейших операций. */\n #available: boolean;\n\n /** @param key ключ в `localStorage`. По умолчанию `itd-api:session`. */\n constructor(key = 'itd-api:session') {\n this.#key = key;\n this.#available = hasLocalStorage();\n }\n\n get(): ItdSession | null {\n if (!this.#available) return this.#fallback.get();\n\n try {\n const raw = globalThis.localStorage.getItem(this.#key);\n if (!raw) return null;\n const parsed: unknown = JSON.parse(raw);\n return typeof parsed === 'object' && parsed !== null ? (parsed as ItdSession) : null;\n } catch {\n // Повреждённое значение — ведём себя так, будто сессии нет.\n return null;\n }\n }\n\n set(session: ItdSession): void {\n if (this.#available) {\n try {\n globalThis.localStorage.setItem(this.#key, JSON.stringify(session));\n return;\n } catch {\n this.#degrade();\n }\n }\n\n this.#fallback.set(session);\n }\n\n clear(): void {\n if (this.#available) {\n try {\n globalThis.localStorage.removeItem(this.#key);\n return;\n } catch {\n this.#degrade();\n }\n }\n\n this.#fallback.clear();\n }\n\n /** Переводит хранилище в память без переноса прежнего значения. */\n #degrade(): void {\n this.#available = false;\n this.#fallback.clear();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,IAAa,2BAAb,MAA8D;CAC5D;CACA,YAAqB,IAAIE,gBAAAA,mBAAmB;;CAE5C;;CAGA,YAAY,MAAM,mBAAmB;EACnC,KAAKF,OAAO;EACZ,KAAKG,aAAaC,gBAAAA,gBAAgB;CACpC;CAEA,MAAyB;EACvB,IAAI,CAAC,KAAKD,YAAY,OAAO,KAAKF,UAAU,IAAI;EAEhD,IAAI;GACF,MAAM,MAAM,WAAW,aAAa,QAAQ,KAAKD,IAAI;GACrD,IAAI,CAAC,KAAK,OAAO;GACjB,MAAM,SAAkB,KAAK,MAAM,GAAG;GACtC,OAAO,OAAO,WAAW,YAAY,WAAW,OAAQ,SAAwB;EAClF,QAAQ;GAEN,OAAO;EACT;CACF;CAEA,IAAI,SAA2B;EAC7B,IAAI,KAAKG,YACP,IAAI;GACF,WAAW,aAAa,QAAQ,KAAKH,MAAM,KAAK,UAAU,OAAO,CAAC;GAClE;EACF,QAAQ;GACN,KAAKK,SAAS;EAChB;EAGF,KAAKJ,UAAU,IAAI,OAAO;CAC5B;CAEA,QAAc;EACZ,IAAI,KAAKE,YACP,IAAI;GACF,WAAW,aAAa,WAAW,KAAKH,IAAI;GAC5C;EACF,QAAQ;GACN,KAAKK,SAAS;EAChB;EAGF,KAAKJ,UAAU,MAAM;CACvB;;CAGA,WAAiB;EACf,KAAKE,aAAa;EAClB,KAAKF,UAAU,MAAM;CACvB;AACF"}
|
package/dist/web.d.cts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { r as TokenStorage, t as ItdSession } from "./storage-BjNRlkbE.cjs";
|
|
2
|
+
//#region src/web.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Хранилище поверх `localStorage` браузера.
|
|
5
|
+
*
|
|
6
|
+
* Если `localStorage` недоступен (приватный режим, серверный рендеринг), молча работает
|
|
7
|
+
* как хранилище в памяти — библиотека не должна падать из-за настроек браузера. Сессия
|
|
8
|
+
* в этом случае теряется при перезагрузке страницы; когда это неприемлемо, проверьте
|
|
9
|
+
* доступность сами или возьмите своё хранилище через `createTokenStorage`.
|
|
10
|
+
*
|
|
11
|
+
* Помните, что `localStorage` доступен любому скрипту на странице: не используйте его,
|
|
12
|
+
* если для вашего приложения это неприемлемый риск.
|
|
13
|
+
*
|
|
14
|
+
* После ошибки записи или удаления хранилище переключается на память до конца
|
|
15
|
+
* своего жизненного цикла.
|
|
16
|
+
*/
|
|
17
|
+
declare class LocalStorageTokenStorage implements TokenStorage {
|
|
18
|
+
#private;
|
|
19
|
+
/** @param key ключ в `localStorage`. По умолчанию `itd-api:session`. */
|
|
20
|
+
constructor(key?: string);
|
|
21
|
+
get(): ItdSession | null;
|
|
22
|
+
set(session: ItdSession): void;
|
|
23
|
+
clear(): void;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { LocalStorageTokenStorage };
|
|
27
|
+
//# sourceMappingURL=web.d.cts.map
|
package/dist/web.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { r as TokenStorage, t as ItdSession } from "./storage-BjNRlkbE.js";
|
|
2
|
+
//#region src/web.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Хранилище поверх `localStorage` браузера.
|
|
5
|
+
*
|
|
6
|
+
* Если `localStorage` недоступен (приватный режим, серверный рендеринг), молча работает
|
|
7
|
+
* как хранилище в памяти — библиотека не должна падать из-за настроек браузера. Сессия
|
|
8
|
+
* в этом случае теряется при перезагрузке страницы; когда это неприемлемо, проверьте
|
|
9
|
+
* доступность сами или возьмите своё хранилище через `createTokenStorage`.
|
|
10
|
+
*
|
|
11
|
+
* Помните, что `localStorage` доступен любому скрипту на странице: не используйте его,
|
|
12
|
+
* если для вашего приложения это неприемлемый риск.
|
|
13
|
+
*
|
|
14
|
+
* После ошибки записи или удаления хранилище переключается на память до конца
|
|
15
|
+
* своего жизненного цикла.
|
|
16
|
+
*/
|
|
17
|
+
declare class LocalStorageTokenStorage implements TokenStorage {
|
|
18
|
+
#private;
|
|
19
|
+
/** @param key ключ в `localStorage`. По умолчанию `itd-api:session`. */
|
|
20
|
+
constructor(key?: string);
|
|
21
|
+
get(): ItdSession | null;
|
|
22
|
+
set(session: ItdSession): void;
|
|
23
|
+
clear(): void;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { LocalStorageTokenStorage };
|
|
27
|
+
//# sourceMappingURL=web.d.ts.map
|
package/dist/web.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { t as MemoryTokenStorage } from "./storage-D9tfHx7Z.js";
|
|
2
|
+
import { i as hasLocalStorage } from "./runtime-DHxDn8gf.js";
|
|
3
|
+
//#region src/web.ts
|
|
4
|
+
/**
|
|
5
|
+
* `itd-api/web` — хранилище сессии для браузера.
|
|
6
|
+
*
|
|
7
|
+
* Здесь лежит только то, что рассчитано на браузерное окружение. Клиент, аккаунты,
|
|
8
|
+
* билдеры, типы и всё остальное берутся из `itd-api` — одинаково на всех платформах.
|
|
9
|
+
*
|
|
10
|
+
* Отдельная точка входа нужна не сборщику, а вам: {@link LocalStorageTokenStorage}
|
|
11
|
+
* при недоступном `localStorage` молча работает как хранилище в памяти, и такое
|
|
12
|
+
* поведение стоит выбирать осознанно, а не получать вместе с общим импортом.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { ItdClient } from 'itd-api';
|
|
17
|
+
* import { LocalStorageTokenStorage } from 'itd-api/web';
|
|
18
|
+
*
|
|
19
|
+
* const itd = new ItdClient({ storage: new LocalStorageTokenStorage() });
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @packageDocumentation
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Хранилище поверх `localStorage` браузера.
|
|
26
|
+
*
|
|
27
|
+
* Если `localStorage` недоступен (приватный режим, серверный рендеринг), молча работает
|
|
28
|
+
* как хранилище в памяти — библиотека не должна падать из-за настроек браузера. Сессия
|
|
29
|
+
* в этом случае теряется при перезагрузке страницы; когда это неприемлемо, проверьте
|
|
30
|
+
* доступность сами или возьмите своё хранилище через `createTokenStorage`.
|
|
31
|
+
*
|
|
32
|
+
* Помните, что `localStorage` доступен любому скрипту на странице: не используйте его,
|
|
33
|
+
* если для вашего приложения это неприемлемый риск.
|
|
34
|
+
*
|
|
35
|
+
* После ошибки записи или удаления хранилище переключается на память до конца
|
|
36
|
+
* своего жизненного цикла.
|
|
37
|
+
*/
|
|
38
|
+
var LocalStorageTokenStorage = class {
|
|
39
|
+
#key;
|
|
40
|
+
#fallback = new MemoryTokenStorage();
|
|
41
|
+
/** Доступен ли `localStorage` для дальнейших операций. */
|
|
42
|
+
#available;
|
|
43
|
+
/** @param key ключ в `localStorage`. По умолчанию `itd-api:session`. */
|
|
44
|
+
constructor(key = "itd-api:session") {
|
|
45
|
+
this.#key = key;
|
|
46
|
+
this.#available = hasLocalStorage();
|
|
47
|
+
}
|
|
48
|
+
get() {
|
|
49
|
+
if (!this.#available) return this.#fallback.get();
|
|
50
|
+
try {
|
|
51
|
+
const raw = globalThis.localStorage.getItem(this.#key);
|
|
52
|
+
if (!raw) return null;
|
|
53
|
+
const parsed = JSON.parse(raw);
|
|
54
|
+
return typeof parsed === "object" && parsed !== null ? parsed : null;
|
|
55
|
+
} catch {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
set(session) {
|
|
60
|
+
if (this.#available) try {
|
|
61
|
+
globalThis.localStorage.setItem(this.#key, JSON.stringify(session));
|
|
62
|
+
return;
|
|
63
|
+
} catch {
|
|
64
|
+
this.#degrade();
|
|
65
|
+
}
|
|
66
|
+
this.#fallback.set(session);
|
|
67
|
+
}
|
|
68
|
+
clear() {
|
|
69
|
+
if (this.#available) try {
|
|
70
|
+
globalThis.localStorage.removeItem(this.#key);
|
|
71
|
+
return;
|
|
72
|
+
} catch {
|
|
73
|
+
this.#degrade();
|
|
74
|
+
}
|
|
75
|
+
this.#fallback.clear();
|
|
76
|
+
}
|
|
77
|
+
/** Переводит хранилище в память без переноса прежнего значения. */
|
|
78
|
+
#degrade() {
|
|
79
|
+
this.#available = false;
|
|
80
|
+
this.#fallback.clear();
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
//#endregion
|
|
84
|
+
export { LocalStorageTokenStorage };
|
|
85
|
+
|
|
86
|
+
//# sourceMappingURL=web.js.map
|
package/dist/web.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web.js","names":["#key","#fallback","#available","#degrade"],"sources":["../src/web.ts"],"sourcesContent":["/**\n * `itd-api/web` — хранилище сессии для браузера.\n *\n * Здесь лежит только то, что рассчитано на браузерное окружение. Клиент, аккаунты,\n * билдеры, типы и всё остальное берутся из `itd-api` — одинаково на всех платформах.\n *\n * Отдельная точка входа нужна не сборщику, а вам: {@link LocalStorageTokenStorage}\n * при недоступном `localStorage` молча работает как хранилище в памяти, и такое\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 { hasLocalStorage } from './core/runtime.js';\nimport { type ItdSession, MemoryTokenStorage, type TokenStorage } from './core/storage.js';\n\n/**\n * Хранилище поверх `localStorage` браузера.\n *\n * Если `localStorage` недоступен (приватный режим, серверный рендеринг), молча работает\n * как хранилище в памяти — библиотека не должна падать из-за настроек браузера. Сессия\n * в этом случае теряется при перезагрузке страницы; когда это неприемлемо, проверьте\n * доступность сами или возьмите своё хранилище через `createTokenStorage`.\n *\n * Помните, что `localStorage` доступен любому скрипту на странице: не используйте его,\n * если для вашего приложения это неприемлемый риск.\n *\n * После ошибки записи или удаления хранилище переключается на память до конца\n * своего жизненного цикла.\n */\nexport class LocalStorageTokenStorage implements TokenStorage {\n readonly #key: string;\n readonly #fallback = new MemoryTokenStorage();\n /** Доступен ли `localStorage` для дальнейших операций. */\n #available: boolean;\n\n /** @param key ключ в `localStorage`. По умолчанию `itd-api:session`. */\n constructor(key = 'itd-api:session') {\n this.#key = key;\n this.#available = hasLocalStorage();\n }\n\n get(): ItdSession | null {\n if (!this.#available) return this.#fallback.get();\n\n try {\n const raw = globalThis.localStorage.getItem(this.#key);\n if (!raw) return null;\n const parsed: unknown = JSON.parse(raw);\n return typeof parsed === 'object' && parsed !== null ? (parsed as ItdSession) : null;\n } catch {\n // Повреждённое значение — ведём себя так, будто сессии нет.\n return null;\n }\n }\n\n set(session: ItdSession): void {\n if (this.#available) {\n try {\n globalThis.localStorage.setItem(this.#key, JSON.stringify(session));\n return;\n } catch {\n this.#degrade();\n }\n }\n\n this.#fallback.set(session);\n }\n\n clear(): void {\n if (this.#available) {\n try {\n globalThis.localStorage.removeItem(this.#key);\n return;\n } catch {\n this.#degrade();\n }\n }\n\n this.#fallback.clear();\n }\n\n /** Переводит хранилище в память без переноса прежнего значения. */\n #degrade(): void {\n this.#available = false;\n this.#fallback.clear();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,IAAa,2BAAb,MAA8D;CAC5D;CACA,YAAqB,IAAI,mBAAmB;;CAE5C;;CAGA,YAAY,MAAM,mBAAmB;EACnC,KAAKA,OAAO;EACZ,KAAKE,aAAa,gBAAgB;CACpC;CAEA,MAAyB;EACvB,IAAI,CAAC,KAAKA,YAAY,OAAO,KAAKD,UAAU,IAAI;EAEhD,IAAI;GACF,MAAM,MAAM,WAAW,aAAa,QAAQ,KAAKD,IAAI;GACrD,IAAI,CAAC,KAAK,OAAO;GACjB,MAAM,SAAkB,KAAK,MAAM,GAAG;GACtC,OAAO,OAAO,WAAW,YAAY,WAAW,OAAQ,SAAwB;EAClF,QAAQ;GAEN,OAAO;EACT;CACF;CAEA,IAAI,SAA2B;EAC7B,IAAI,KAAKE,YACP,IAAI;GACF,WAAW,aAAa,QAAQ,KAAKF,MAAM,KAAK,UAAU,OAAO,CAAC;GAClE;EACF,QAAQ;GACN,KAAKG,SAAS;EAChB;EAGF,KAAKF,UAAU,IAAI,OAAO;CAC5B;CAEA,QAAc;EACZ,IAAI,KAAKC,YACP,IAAI;GACF,WAAW,aAAa,WAAW,KAAKF,IAAI;GAC5C;EACF,QAAQ;GACN,KAAKG,SAAS;EAChB;EAGF,KAAKF,UAAU,MAAM;CACvB;;CAGA,WAAiB;EACf,KAAKC,aAAa;EAClB,KAAKD,UAAU,MAAM;CACvB;AACF"}
|
package/package.json
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "itd-api",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Клиент REST и realtime API социальной сети итд.com для JavaScript и TypeScript",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/KiowDev/itd-api.git"
|
|
8
8
|
},
|
|
9
|
-
"homepage": "https://github.
|
|
9
|
+
"homepage": "https://kiowdev.github.io/itd-api/",
|
|
10
10
|
"bugs": {
|
|
11
11
|
"url": "https://github.com/KiowDev/itd-api/issues"
|
|
12
12
|
},
|
|
13
13
|
"author": "Kiow",
|
|
14
14
|
"keywords": [
|
|
15
15
|
"itd",
|
|
16
|
+
"итд",
|
|
16
17
|
"api",
|
|
18
|
+
"rest-api",
|
|
17
19
|
"client",
|
|
18
20
|
"sdk",
|
|
21
|
+
"realtime",
|
|
19
22
|
"social",
|
|
20
23
|
"typescript"
|
|
21
24
|
],
|
|
@@ -27,7 +30,6 @@
|
|
|
27
30
|
},
|
|
28
31
|
"files": [
|
|
29
32
|
"dist",
|
|
30
|
-
"guides",
|
|
31
33
|
"NOTICE",
|
|
32
34
|
"LICENSE",
|
|
33
35
|
"README.md"
|
|
@@ -36,10 +38,7 @@
|
|
|
36
38
|
"access": "public"
|
|
37
39
|
},
|
|
38
40
|
"workspaces": [
|
|
39
|
-
"
|
|
40
|
-
"crypto",
|
|
41
|
-
"proxy",
|
|
42
|
-
"cache"
|
|
41
|
+
"packages/*"
|
|
43
42
|
],
|
|
44
43
|
"main": "./dist/index.cjs",
|
|
45
44
|
"module": "./dist/index.js",
|
|
@@ -48,6 +47,9 @@
|
|
|
48
47
|
"*": {
|
|
49
48
|
"node": [
|
|
50
49
|
"./dist/node.d.ts"
|
|
50
|
+
],
|
|
51
|
+
"web": [
|
|
52
|
+
"./dist/web.d.ts"
|
|
51
53
|
]
|
|
52
54
|
}
|
|
53
55
|
},
|
|
@@ -72,21 +74,36 @@
|
|
|
72
74
|
"default": "./dist/node.cjs"
|
|
73
75
|
}
|
|
74
76
|
},
|
|
77
|
+
"./web": {
|
|
78
|
+
"import": {
|
|
79
|
+
"types": "./dist/web.d.ts",
|
|
80
|
+
"default": "./dist/web.js"
|
|
81
|
+
},
|
|
82
|
+
"require": {
|
|
83
|
+
"types": "./dist/web.d.cts",
|
|
84
|
+
"default": "./dist/web.cjs"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
75
87
|
"./package.json": "./package.json"
|
|
76
88
|
},
|
|
77
89
|
"scripts": {
|
|
78
90
|
"sync-version": "node scripts/sync-version.mjs",
|
|
79
91
|
"prebuild": "npm run sync-version",
|
|
80
|
-
"build": "
|
|
81
|
-
"dev": "
|
|
92
|
+
"build": "tsdown",
|
|
93
|
+
"dev": "tsdown --watch",
|
|
82
94
|
"test": "vitest run",
|
|
83
95
|
"test:all": "npm run test && npm run test --workspaces --if-present",
|
|
84
96
|
"test:watch": "vitest",
|
|
85
97
|
"test:coverage": "vitest run --coverage",
|
|
86
98
|
"typecheck": "tsc --noEmit",
|
|
87
|
-
"lint": "biome check src test
|
|
88
|
-
"lint:fix": "biome check --write src test
|
|
89
|
-
"docs": "
|
|
99
|
+
"lint": "biome check src test packages",
|
|
100
|
+
"lint:fix": "biome check --write src test packages",
|
|
101
|
+
"docs": "npm run docs:build",
|
|
102
|
+
"docs:api": "node scripts/build-docs.mjs",
|
|
103
|
+
"docs:dev": "npm run docs:api && vitepress dev guides",
|
|
104
|
+
"docs:build": "npm run docs:api && vitepress build guides",
|
|
105
|
+
"docs:preview": "vitepress preview guides",
|
|
106
|
+
"docs:check": "npm run docs:build",
|
|
90
107
|
"check:pack": "publint && attw --pack .",
|
|
91
108
|
"version": "npm run sync-version && git add src/core/version.ts",
|
|
92
109
|
"prepublishOnly": "npm run typecheck && npm run test && npm run build && npm run check:pack"
|
|
@@ -97,11 +114,14 @@
|
|
|
97
114
|
"@types/node": "^26.1.1",
|
|
98
115
|
"@vitest/coverage-v8": "^4.1.10",
|
|
99
116
|
"eventsource-parser": "^3.1.0",
|
|
100
|
-
"publint": "^0.3.
|
|
117
|
+
"publint": "^0.3.22",
|
|
101
118
|
"set-cookie-parser": "^3.1.2",
|
|
102
|
-
"
|
|
119
|
+
"tsdown": "^0.22.14",
|
|
103
120
|
"typedoc": "^0.28.20",
|
|
121
|
+
"typedoc-plugin-markdown": "^4.12.0",
|
|
122
|
+
"typedoc-vitepress-theme": "^1.1.3",
|
|
104
123
|
"typescript": "^5.9.3",
|
|
124
|
+
"vitepress": "^1.6.4",
|
|
105
125
|
"vitest": "^4.1.10"
|
|
106
126
|
}
|
|
107
127
|
}
|