Ugrás a dokumentációra
SDK

Változásnapló

A csomag összes kiadása, a legújabbtól kezdve.

0.1.0

A második kiadás. A névjegyek írhatók és célközönségekbe rendezhetők, a domainek saját követési és fájlnevet kaphatnak, a kulcs pedig cserélheti önmagát. Egy változás megtöri a meglévő kódot, és az alatta van felsorolva.

  • Az openemail.audiences új: névjegyek elnevezett listái, list, get, create, update, delete, listContacts, addContact és removeContact metódusokkal. Minden munkaterületen van egy alapértelmezett célközönség – az, amelynek a builtin értéke default –, amely minden névjegyet tartalmaz, és nem törölhető.
  • Az openemail.contacts már írni is tud. A list és a get mellé belép a create, az update és a delete, és mindegyik az e-mail-címet veszi azonosítónak.
  • Az openemail.domains.update() beállítja vagy törli a domain saját követési nevét és fájlnevét, a DomainResource.tracking és a DomainResource.storage pedig megmutatja, hol tart mindkettő.
  • Az openemail.me.rotate() lecseréli a hívó kulcs titkos értékét, és a teljes új kulccsal tér vissza. Nincs átfedési ablak, tehát a régi titok abban a pillanatban érvénytelenné válik, amikor a hívás visszatér.
  • A KeyResource.domainAllowlist teljes domainekre szűkíti a kulcsot, az addressAllowlist egyedi címei mellett. A domain minden rajta lévő címet lefed, azokat is, amelyek a kulcs után jöttek létre.
  • A mellékletek hivatkozással is küldhetők. A { fileId } a beágyazott forma mellett áll, az attachmentDelivery pedig eldönti, hogy a fájlok az üzenetben utazzanak, letöltési linkekké alakuljanak, vagy a méretük döntsön.
  • Tíz további webhookesemény, összesen húsz: válaszok, kézbesítések, késések, letiltások, letöltések és a három domainesemény.
  • Az email.downloaded akkor indul, amikor valaki letölt egy olyan fájlt, amely letöltési linkként ment ki. Egy link mindenkit kiszolgál, akinek az üzenet ment, ezért az esemény nem nevez meg címzettet.
  • Négy új hatókör: contacts:write, audiences:read, audiences:write és keys:write.
  • Kilenc mező, amely korábban laza sztring volt, mostantól nevesített típusú, köztük a RecipientKind, a ContactSource, a RuleMatchMode és a WebhookDeliveryStatus. Ugyanazokat a sztringeket fogadják el és adják vissza, mint eddig.
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]' })

Mi törik el a 0.1.0-ban

  • A contacts.list tömb helyett Page<ContactResource> értéket ad vissza. A sorokat a page.items mezőből olvasd, és kövesd a page.nextCursor értékét, amíg a page.hasMore igaz. A címjegyzék korlátlan, a régi tömb pedig 200 sornál megállt anélkül, hogy szólt volna.
  • Az API_SCOPES, az ERROR_TYPES, a MESSAGE_ENCRYPTION_FORMATS, a RULE_ACTIONS, a RULE_FIELDS, a RULE_OPERATORS és a WEBHOOK_EVENTS tömb helyett kulcsolt objektum, így minden tagnak van neve, amelyen hivatkozni lehet rá. Az értékek változatlanok.
  • A contacts.list azokat a névjegyeket, amelyeknek soha nem küldtek levelet, hátulra rendezi, nem előre, így a frissen létrehozott névjegy többé nem ugrik a címjegyzék tetejére.
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)

Az a kód, amely csak a származtatott típusokat használta, változtatás nélkül működik tovább. Az ApiScope, a WebhookEvent és a többi ugyanaz a típus, ami eddig volt.

0.0.1

Az első kiadás: minden végponthoz egy tipizált metódus, futásidejű függőségek nélkül.

  • Küldés: egyetlen üzenet, kötegek, ütemezett küldések, visszavonási ablak, és fordítás arra a nyelvre, amelyen a címzett olvas.
  • Sablonok: létrehozás, verziózás, publikálás, előnézet és küldés.
  • Követés: megnyitások, kattintások és üzenetenkénti összesítés.
  • Postafiók: beszélgetések, piszkozatok, címkék, névjegyek és szabályok.
  • Munkaterület: domainek, címek, tagok, szerepkörök és beállítások.
  • Webhookok, aláírás-ellenőrzővel, amely mindenhol fut, ahol a WebCrypto is.
  • Naptáresemények, az ICS-fájllal együtt.
  • Eldobható postafiókok – az egyetlen rész, amely böngészőben is fut.
  • Kurzoros lapozás minden listán, a listAll és az iterate segítségével.
  • Két hibaosztály, és olyan újrapróbálkozások, amelyek nem duplikálhatnak küldést.
  • ESM és CommonJS, Node 20+, Bun, Deno és Cloudflare Workers alatt.