Skip to content

Latest commit

 

History

History
128 lines (88 loc) · 4.1 KB

README-RU.md

File metadata and controls

128 lines (88 loc) · 4.1 KB

jmap-yacl

GitHub Actions npm en ru

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

Установка

Установка в Bun:

bun add 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. Запустите сборку:

    3.0. Полная сборка:

    bun build:bun

    3.1. Если вы хотите собрать только typescript типы:

    bun  build:declaration

    3.2. Если вы хотите собрать только typebox типы:

    bun build:typebox
  2. Установите pre-commit хук:

    bun prepare

Тесты

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

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

bun test