@itd-api/crypto / crypt
Function: crypt()
function crypt(options?): CryptPlugin;Defined in: packages/crypto/src/plugin.ts:99
Создаёт плагин шифрования текстовых полей.
При отправке плагин находит crypto-разметку, проверяет диапазоны, кодирует целое поле без обёртки либо заменяет отдельные участки транспортными контейнерами и пересчитывает обычные spans. После получения ответа он оставляет поля сервера без изменений и добавляет готовый текст в decoded.
Плагин ставится снаружи @itd-api/cache, поэтому расшифрованное представление строится одинаково для сетевого ответа и попадания в кэш, не изменяя сохранённый объект.
Parameters
options?
CryptOptions = {}
Returns
Examples
Зашифровать отдельный участок поста
import { ItdClient } from 'itd-api';
import { crypt } from '@itd-api/crypto';
const itd = new ItdClient({ auth: token });
itd.use(crypt());
const post = await itd.posts.create({
content: 'видно секрет видно',
spans: [
{ type: 'bold', offset: 6, length: 6 },
{ type: 'crypto', cipher: 'invisible', offset: 6, length: 6 },
],
});
console.log(post.decoded?.content?.text); // 'видно секрет видно'Зашифровать все переданные поля профиля целиком
await itd.users.updateMe(
{ displayName: 'Имя', bio: 'Подпись' },
{ extensions: { crypto: { encrypt: 'beecrypt' } } },
);Throws
CryptError при некорректном реестре шифров или запросе, который нельзя безопасно преобразовать до отправки