Ga direct naar de documentatie
SDK

Changelog

Elke release van het package, nieuwste eerst.

0.1.0

De tweede release. Contacten kunnen worden geschreven en in audiences worden gegroepeerd, een domein kan zijn eigen tracking- en bestandsnamen dragen, en een sleutel kan zichzelf roteren. Eén wijziging breekt bestaande code, en die staat eronder vermeld.

  • openemail.audiences is nieuw: benoemde lijsten met contacten, met list, get, create, update, delete, listContacts, addContact en removeContact. Elke workspace heeft één standaardaudience, die waarvan builtin default is, die elk contact bevat en niet kan worden verwijderd.
  • openemail.contacts kan schrijven. create, update en delete komen naast list en get, en elk ervan neemt het e-mailadres als id.
  • openemail.domains.update() zet of wist de eigen trackingnaam en bestandsnaam van een domein, en DomainResource.tracking en DomainResource.storage melden hoe elk ervan ervoor staat.
  • openemail.me.rotate() vervangt het secret van de aanroepende sleutel en levert de nieuwe sleutel volledig op. Er is geen overlapvenster, dus het oude secret stopt met werken zodra de aanroep terugkeert.
  • KeyResource.domainAllowlist versmalt een sleutel tot hele domeinen, naast de afzonderlijke adressen in addressAllowlist. Een domein dekt elk adres erop, ook adressen die na de sleutel zijn aangemaakt.
  • Bijlagen kunnen per verwijzing worden verstuurd. { fileId } staat naast de inline vorm, en attachmentDelivery kiest tussen bestanden in het bericht meedragen, ze vervangen door downloadlinks, of hun omvang laten beslissen.
  • Tien extra webhook-events, twintig in totaal: antwoorden, afleveringen, vertragingen, onderdrukkingen, downloads en de drie domeinevents.
  • email.downloaded vuurt wanneer iemand een bestand ophaalt dat als downloadlink is meegegaan. Eén link bedient iedereen naar wie het bericht ging, dus het event noemt geen ontvanger.
  • Vier nieuwe scopes: contacts:write, audiences:read, audiences:write en keys:write.
  • Negen velden die losse strings waren hebben nu benoemde types, waaronder RecipientKind, ContactSource, RuleMatchMode en WebhookDeliveryStatus. Ze accepteren en geven dezelfde strings terug als voorheen.
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]' })

Wat er breekt in 0.1.0

  • contacts.list geeft Page<ContactResource> terug in plaats van een array. Lees de rijen uit page.items en volg page.nextCursor zolang page.hasMore true is. Het adresboek is onbegrensd, en de oude array stopte bij 200 rijen zonder dat te zeggen.
  • API_SCOPES, ERROR_TYPES, MESSAGE_ENCRYPTION_FORMATS, RULE_ACTIONS, RULE_FIELDS, RULE_OPERATORS en WEBHOOK_EVENTS zijn objecten met sleutels in plaats van arrays, zodat elk lid een naam heeft om bij te noemen. De waarden zijn ongewijzigd.
  • contacts.list sorteert contacten die nooit zijn gemaild als laatste in plaats van als eerste, zodat een contact dat je net hebt aangemaakt niet langer bovenaan het boek springt.
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)

Code die alleen de afgeleide types gebruikte blijft onaangeroerd werken. ApiScope, WebhookEvent en de rest zijn dezelfde types die ze waren.

0.0.1

De eerste release: één getypeerde methode voor elk endpoint, en geen runtime-afhankelijkheden.

  • Versturen: één bericht, batches, geplande verzendingen, een ongedaan-maken-venster, en vertaling naar de taal die de ontvanger leest.
  • Templates: aanmaken, versioneren, publiceren, bekijken en versturen.
  • Tracking: opens, kliks, en een samenvatting per bericht.
  • Mailbox: threads, concepten, labels, contacten en regels.
  • Workspace: domeinen, adressen, leden, rollen en instellingen.
  • Webhooks, met een handtekeningverificatie die overal draait waar WebCrypto draait.
  • Agenda-afspraken, inclusief het ICS-bestand.
  • Wegwerpinboxen, het enige deel dat ook in een browser draait.
  • Cursorpaginering op elke lijst, via listAll en iterate.
  • Twee foutklassen, en herhaalpogingen die een verzending niet kunnen dupliceren.
  • ESM en CommonJS, op Node 20+, Bun, Deno en Cloudflare Workers.