दस्तावेज़ पर जाएँ
SDK

चेंजलॉग

पैकेज का हर रिलीज़, नवीनतम पहले।

0.1.0

दूसरा रिलीज़। Contacts लिखे जा सकते हैं और ऑडियंस में समूहित किए जा सकते हैं, कोई domain अपने ख़ुद के tracking और files नाम रख सकता है, और key ख़ुद को rotate कर सकती है। एक बदलाव मौजूदा कोड तोड़ता है, और वह उसके नीचे सूचीबद्ध है।

  • openemail.audiences नया है: contacts की नामित सूचियाँ, list, get, create, update, delete, listContacts, addContact और removeContact के साथ। हर वर्कस्पेस में एक डिफ़ॉल्ट ऑडियंस होती है — वही जिसका builtin default है — जो हर contact रखती है और हटाई नहीं जा सकती।
  • openemail.contacts अब लिख सकता है। create, update और delete list तथा get के साथ जुड़ गए हैं, और हर एक ईमेल पते को id के रूप में लेता है।
  • openemail.domains.update() किसी domain का अपना tracking नाम और files नाम सेट या साफ़ करता है, और DomainResource.tracking तथा DomainResource.storage बताते हैं कि हर एक कहाँ खड़ा है।
  • openemail.me.rotate() कॉल करने वाली key का सीक्रेट बदल देता है और पूरी नई key के साथ resolve होता है। कोई ओवरलैप विंडो नहीं है, इसलिए कॉल लौटते ही पुराना सीक्रेट काम करना बंद कर देता है।
  • KeyResource.domainAllowlist किसी key को पूरे domains तक सीमित करता है, addressAllowlist में दिए अलग-अलग पतों के साथ-साथ। एक domain उस पर मौजूद हर पते को ढकता है, उन्हें भी जो key बनने के बाद बने।
  • अटैचमेंट सन्दर्भ से भेजे जा सकते हैं। { fileId } inline रूप के साथ खड़ा है, और attachmentDelivery चुनता है कि फ़ाइलें संदेश के भीतर ले जानी हैं, उन्हें डाउनलोड लिंक से बदलना है, या उनके आकार को यह तय करने देना है।
  • दस और webhook इवेंट, कुल बीस: उत्तर, डिलीवरी, देरी, suppressions, डाउनलोड, और तीन domain इवेंट।
  • email.downloaded तब चलता है जब कोई व्यक्ति वह फ़ाइल लाता है जो डाउनलोड लिंक के रूप में गई थी। एक ही लिंक उन सबके काम आता है जिन्हें संदेश गया था, इसलिए इवेंट किसी प्राप्तकर्ता का नाम नहीं लेता।
  • चार नए scopes: contacts:write, audiences:read, audiences:write और keys:write
  • नौ फ़ील्ड जो पहले ढीली strings थीं, अब नामित प्रकार रखती हैं, जिनमें RecipientKind, ContactSource, RuleMatchMode और WebhookDeliveryStatus शामिल हैं। वे पहले जैसी ही strings लेती और लौटाती हैं।
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]' })

0.1.0 में क्या टूटता है

  • contacts.list array के बजाय Page<ContactResource> लौटाता है। पंक्तियाँ page.items से पढ़ें और जब तक page.hasMore true है तब तक page.nextCursor का पीछा करें। पता-पुस्तिका असीमित है, और पुरानी array बिना बताए 200 पंक्तियों पर रुक जाती थी।
  • API_SCOPES, ERROR_TYPES, MESSAGE_ENCRYPTION_FORMATS, RULE_ACTIONS, RULE_FIELDS, RULE_OPERATORS और WEBHOOK_EVENTS अब arrays नहीं बल्कि keyed objects हैं, इसलिए हर सदस्य का एक नाम है जिससे उसे पुकारा जा सके। मान अपरिवर्तित हैं।
  • contacts.list उन contacts को, जिन्हें कभी मेल नहीं की गई, पहले के बजाय आख़िर में रखता है, इसलिए अभी-अभी बनाया गया contact अब पुस्तिका के ऊपर नहीं कूदता।
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)

जो कोड केवल व्युत्पन्न प्रकारों का उपयोग करता था, वह बिना छेड़े काम करता रहता है। ApiScope, WebhookEvent और बाक़ी वही प्रकार हैं जो थे।

0.0.1

पहला रिलीज़: हर एंडपॉइंट के लिए एक टाइप्ड मेथड, और कोई रनटाइम निर्भरता नहीं।

  • भेजना: एक संदेश, बैच, निर्धारित sends, एक undo विंडो, और प्राप्तकर्ता जिस भाषा में पढ़ता है उसमें अनुवाद।
  • टेम्पलेट: बनाना, संस्करण बनाना, प्रकाशित करना, पूर्वावलोकन और भेजना।
  • ट्रैकिंग: opens, clicks, और हर संदेश के लिए एक सारांश।
  • मेलबॉक्स: थ्रेड, ड्राफ़्ट, labels, contacts और नियम।
  • वर्कस्पेस: domains, पते, सदस्य, भूमिकाएँ और सेटिंग्स।
  • Webhooks, एक हस्ताक्षर सत्यापक के साथ जो हर उस जगह चलता है जहाँ WebCrypto चलता है।
  • कैलेंडर इवेंट, ICS फ़ाइल सहित।
  • डिस्पोज़ेबल इनबॉक्स, वह एक हिस्सा जो ब्राउज़र में भी चलता है।
  • हर सूची पर cursor पेजिंग, listAll और iterate के ज़रिए।
  • दो एरर क्लास, और ऐसे retries जो किसी send की नक़ल नहीं बना सकते।
  • ESM और CommonJS, Node 20+, Bun, Deno तथा Cloudflare Workers पर।