Еще одна легковестная клиентская библиотека для работы с JMAP, которая поддерживает работу с JavaScript, TypeScript, а так же имеет встроенные типы для Typebox.
Установка в Bun:
bun add jmap-yacl
Установка в NPM:
npm install jmap-yacl
Библиотека разрабатывалась и тестировалась с использованием stalwart mail-server, работа с другими JMAP серверами не гарантирована (но в теории должна быть из-за соответствия RFC). Поддерживается только базовая аутентификация (username + password).
Реализовано:
Вдохновение:
Соответствие стандартам:
- RFC 8620 - The JSON Meta Application Protocol (JMAP)
- RFC 8621 - The JSON Meta Application Protocol (JMAP) for Mail
- RFC 7807 - Problem Details in HTTP APIs
Для начала работы с API необходимо создать JMAP Client и авторизовать его. Это можно сделать с помощью нескольких строчек представленных ниже:
const client = new JMAPClient({
username: process.env.JMAP_USERNAME,
password: process.env.JMAP_PASSWORD,
});
await client.connect("https://YOURDOMAIN/.well-known/jmap");
Для того, чтобы сделать запрос к JMAP вы можете использовать два вида запросов:
- Готовые методы для простых одиночных запросов к серверу
- "Сырые" запросы, если хотите сделать сложный запрос к серверу
const client = ...
// ready methods
const identityResponse = await client.identity.get({
accountId: "abc",
});
// raw requests
const identityResponse = await client.request<
JMAP.GetResponse<JMAPMail.Identity[]>
>("/jmap", {
using: [JMAP.Using.mail],
invocation: [
"Identity/get",
{
accountId: "abc",
},
"a",
],
});
-
Установите Bun
-
Установите зависимости:
bun install
-
Запустите сборку:
3.0. Полная сборка:
bun build:bun
3.1. Если вы хотите собрать только typescript типы:
bun build:declaration
3.2. Если вы хотите собрать только typebox типы:
bun build:typebox
-
Установите pre-commit хук:
bun prepare
Библиотека имеет минимальное покрытие тестами для проверки ее работоспособности.
Запустить тесты:
bun test