Přejít na dokumentaci
SDK

Seznam změn

Všechna vydání balíčku, od nejnovějšího.

0.1.0

Druhé vydání. Kontakty lze zapisovat a seskupovat do publik, doména může nést vlastní názvy pro tracking a pro soubory a klíč se umí sám rotovat. Jedna změna rozbíjí existující kód a je uvedená pod tímto seznamem.

  • openemail.audiences je nové: pojmenované seznamy kontaktů, s list, get, create, update, delete, listContacts, addContact a removeContact. Každý pracovní prostor má jedno výchozí publikum, to, jehož builtin je default, které drží všechny kontakty a nelze ho smazat.
  • openemail.contacts umí zapisovat. K list a get přibyly create, update a delete a každá z nich bere jako id e-mailovou adresu.
  • openemail.domains.update() nastavuje nebo maže vlastní název domény pro tracking a pro soubory a DomainResource.tracking a DomainResource.storage hlásí, jak na tom každý z nich je.
  • openemail.me.rotate() nahradí tajemství volajícího klíče a vyhodnotí se na celý nový klíč. Neexistuje žádné překryvné okno, takže staré tajemství přestane fungovat v okamžiku, kdy se volání vrátí.
  • KeyResource.domainAllowlist zužuje klíč na celé domény, vedle jednotlivých adres v addressAllowlist. Doména pokrývá každou adresu na ní, včetně těch, které vznikly až po klíči.
  • Přílohy lze posílat odkazem. { fileId } stojí vedle vložené podoby a attachmentDelivery volí mezi nesením souborů uvnitř zprávy, jejich nahrazením odkazy ke stažení, nebo ponecháním rozhodnutí na jejich velikosti.
  • Deset dalších webhookových událostí, celkem dvacet: odpovědi, doručení, zpoždění, potlačení, stažení a tři události domény.
  • email.downloaded se spustí, když si člověk stáhne soubor, který odešel jako odkaz ke stažení. Jeden odkaz slouží všem, komu zpráva odešla, takže událost nejmenuje žádného příjemce.
  • Čtyři nové scopy: contacts:write, audiences:read, audiences:write a keys:write.
  • Devět polí, která byla volnými řetězci, má nyní pojmenované typy, mezi nimi RecipientKind, ContactSource, RuleMatchMode a WebhookDeliveryStatus. Přijímají a vracejí stejné řetězce jako dřív.
audiences.ts
const audience = await openemail.audiences.create({ name: 'Product updates' }) await openemail.contacts.create({ email: '[email protected]', name: 'Grace Hopper' })await openemail.audiences.addContact(audience.id, { email: '[email protected]' })

Co se ve verzi 0.1.0 rozbije

  • contacts.list vrací Page<ContactResource> místo pole. Řádky čtěte z page.items a následujte page.nextCursor, dokud je page.hasMore true. Adresář je neomezený a staré pole se bez upozornění zastavilo na 200 řádcích.
  • API_SCOPES, ERROR_TYPES, MESSAGE_ENCRYPTION_FORMATS, RULE_ACTIONS, RULE_FIELDS, RULE_OPERATORS a WEBHOOK_EVENTS jsou klíčované objekty, ne pole, takže každý člen má jméno, kterým ho lze oslovit. Hodnoty se nemění.
  • contacts.list řadí kontakty, kterým nikdy nic neodešlo, na konec místo na začátek, takže kontakt, který jste právě vytvořili, už neskočí na začátek adresáře.
migrate.ts
import { API_SCOPES, WEBHOOK_EVENTS } from '@openemail/sdk' const scopes = Object.values(API_SCOPES)const subscribable = new Set<string>(Object.values(WEBHOOK_EVENTS)) const page = await openemail.contacts.list()for (const contact of page.items) send(contact.email)

Kód, který používal jen odvozené typy, funguje beze změny dál. ApiScope, WebhookEvent a ostatní jsou stále tytéž typy.

0.0.1

První vydání: jedna typovaná metoda pro každý endpoint a žádné runtime závislosti.

  • Odesílání: jedna zpráva, dávky, naplánovaná odeslání, okno pro vrácení akce a překlad do jazyka, kterým příjemce čte.
  • Šablony: vytvoření, verzování, publikování, náhled a odeslání.
  • Sledování: otevření, kliknutí a souhrn pro každou zprávu.
  • Schránka: vlákna, koncepty, štítky, kontakty a pravidla.
  • Pracovní prostor: domény, adresy, členové, role a nastavení.
  • Webhooky, s ověřovačem podpisu, který běží všude, kde běží WebCrypto.
  • Kalendářové události, včetně souboru ICS.
  • Jednorázové schránky, jediná část, která běží i v prohlížeči.
  • Stránkování kurzorem u každého seznamu, přes listAll a iterate.
  • Dvě třídy chyb a opakované pokusy, které nemohou zdvojit odeslání.
  • ESM a CommonJS, na Node 20+, Bun, Deno a Cloudflare Workers.