SDK
चेंजलॉग
पैकेज का हर रिलीज़, नवीनतम पहले।
0.1.0
दूसरा रिलीज़। Contacts लिखे जा सकते हैं और ऑडियंस में समूहित किए जा सकते हैं, कोई domain अपने ख़ुद के tracking और files नाम रख सकता है, और key ख़ुद को rotate कर सकती है। एक बदलाव मौजूदा कोड तोड़ता है, और वह उसके नीचे सूचीबद्ध है।
openemail.audiencesनया है: contacts की नामित सूचियाँ,list,get,create,update,delete,listContacts,addContactऔरremoveContactके साथ। हर वर्कस्पेस में एक डिफ़ॉल्ट ऑडियंस होती है — वही जिसकाbuiltindefaultहै — जो हर contact रखती है और हटाई नहीं जा सकती।openemail.contactsअब लिख सकता है।create,updateऔरdeletelistतथा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 लेती और लौटाती हैं।
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.listarray के बजायPage<ContactResource>लौटाता है। पंक्तियाँpage.itemsसे पढ़ें और जब तकpage.hasMoretrue है तब तक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 अब पुस्तिका के ऊपर नहीं कूदता।
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 पर।