Skip to content

Latest commit

 

History

History
109 lines (75 loc) · 3.76 KB

README-RU.md

File metadata and controls

109 lines (75 loc) · 3.76 KB

jmap-yacl

GitHub Actions npm en ru

Еще одна легковестная клиентская библиотека для работы с JMAP, которая поддерживает работу с JavaScript, TypeScript, а так же имеет встроенные типы для Typebox.

Установка

Установка через Bun:

bun install jmap-yacl

Установка через NPM:

npm install jmap-yacl

Информация

Библиотека разрабатывалась и тестировалась с использованием stalwart mail-server, работа с другими JMAP серверами не гарантирована (в теории должна быть из-за соответствия RFC). Поддерживается только базовая аутентификация (username + password).

Реализовано:

  • стандарт JMAP согласно RFC 8620 (без Push)
  • стандарт JMAP Mail согласно RFC 8621

Вдохновение:

Соответствие стандартам:

Начало работы

Для начала работы с 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 вы можете использовать два вида запросов:

  1. Готовые методы для простых одиночных запросов к серверу
  2. "Сырые" запросы, если хотите сделать сложный запрос к серверу
  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",
    ],
  });

Сборка

  1. Установите Bun

  2. Установите зависимости:

bun install
  1. Запустите сборку:
bun build:bun

Тесты

Библиотека имеет минимальное покрытие тестами для проверки ее работоспособности.

Запустить тесты:

bun test