الأنواع والمساعدات
ما تصدّره الحزمة أيضًا.
الصادرات في وقت التشغيل
| الصادر | ما هو |
|---|---|
| `init`، `openemail` | هيّئ العميل المشترك مرة واحدة، ثم استورد openemail في أي مكان. ويبني نفسه من OPENEMAIL_API_KEY إن لم يُنفَّذ init قط. |
| `getClient`، `resetClient` | العميل المشترك نفسه، وطريقة لإسقاطه كي يبني النداء التالي عميلًا جديدًا، وهو ما يريده الاختبار بين الحالات. |
| `createOpenEmail`، `createClient`، `OpenEmail` | عميل منفصل. يقرأ createOpenEmail البيئة بحثًا عن كل ما تغفله (وcreateClient هو الدالة نفسها)، أما new OpenEmail (وهو أيضًا الصادر الافتراضي) فلا يأخذ إلا ما تمرّره. |
| `createTempMail` | عميل لصندوق وارد مؤقت لا يحمل مفتاح API، وهو الجزء الوحيد من الحزمة الذي يعمل في متصفح. |
| `OpenEmailApiError`، `OpenEmailNetworkError` | صنفا الأخطاء. |
| `verifyWebhookSignature` | مقارنة بزمن ثابت، مع نافذة إعادة تشغيل. يُحَل إلى الحمولة المحلَّلة ويرمي استثناءً عند أي إخفاق. |
| `toBase64` | على دفعات، لبايتات المرفقات. |
| `isApiKey` | ما إذا كانت سلسلة تحمل شكل oe_live_ أو oe_test_. وهو فحص شكل، لا دليل على أن المفتاح ما زال يعمل. |
| `isSealed`، `MESSAGE_ENCRYPTION_FORMATS` | ما إذا كان متن الرسالة نصًا مشفَّرًا، والأغلفة الخمسة التي يمكن للاستقبال تسميتها. وتكون isSealed بقيمة false للصيغتين الموقَّعتين اللتين وصل متنهما مكشوفًا، ولهذا تُشحن بدل أن يُترك اشتقاقها من الاتحاد إلى من يناديها. |
| `LANGUAGES`، `resolveLanguage`، `languageByCode`، `isRtlLanguage` | جدول اللغات المرفق، وعمليات البحث التي يحتاجها منتقي اللغة. |
| `API_SCOPES` | مفردات النطاقات، من أجل شاشة إنشاء مفتاح. |
| `WEBHOOK_EVENTS`، `WEBHOOK_SIGNATURE_HEADERS` | الأحداث التي يمكن لنقطة نهاية الاشتراك فيها، وأسماء الترويسات التي يحملها التسليم. |
| `RULE_FIELDS`، `RULE_OPERATORS`، `RULE_ACTIONS` | المفردات التي تُبنى منها شروط القاعدة وإجراءاتها. |
| `PAGE_LIMITS` | أكبر قيمة والقيمة الافتراضية لـlimit في قائمة مقسَّمة إلى صفحات: 100 و25. |
| `ERROR_TYPES` | مفردات الأخطاء المجمَّدة. |
| `VERSION` | إصدار الحزمة. |
الأنواع
لكل طلب واستجابة نوعه، وكلها مصدَّرة من جذر الحزمة. ولا توجد استيرادات عميقة، فيبقى تخطيط الملفات تفصيلًا تنفيذيًا يمكن تحريكه دون إصدار رئيسي جديد. فـ…Resource هو ما يعيده API، و…Create و…Patch و…Input و…Send هي ما تمرّره، و…Options يحمل المرشّحات وخيارات كل نداء.
- العميل:
ClientOptions,TempMailOptions,TransportOptions,RequestOptions,RequestScope,SendScope,InboxScope,ListOptions,Page,ApiKeyMode,FetchLike. - الأخطاء:
ErrorType,ApiErrorPayload,ApiErrorProps. - الرسائل:
EmailSend,EmailListOptions,EmailTranslate,EmailResource,SentEmailResource,EmailRecipientResource,EmailEventResource,EmailStatus,EmailSource,EmailTransport,EmailTrackingSummary,EmailTranslationResource,TranslationResource,RecipientStatus,BatchItemResource,BatchResultResource. - القوالب:
TemplateCreate,TemplatePatch,TemplateContent,TemplateListOptions,TemplatePreviewInput,TemplateSend,TemplateResource,TemplateDetailResource,TemplateVersionResource,TemplatePreviewResource,SentTemplateEmailResource,DeletedTemplateResource,TemplateEngine,TemplateProp,TemplateSlot,TemplateStatus,TemplateValueKind. - التتبع:
TrackingListOptions,TrackingStatsOptions,TrackingHitOptions,TrackingResource,TrackingSummary,TrackingRecipientResource,TrackingLinkResource,TrackingOpenResource,TrackingClickResource,TrackingStatsResource,TrackingGrain. - المحادثات والمسودات:
ThreadListOptions,ThreadPatch,ThreadResource,ThreadSummaryResource,UpdatedThreadResource,TrashedThreadResource,SnoozedThreadResource,DraftInput,DraftListOptions,DraftResource,DraftSummaryResource,SavedDraftResource,DeletedDraftResource. - التسميات وجهات الاتصال والنطاقات والعناوين:
LabelInput,LabelColor,LabelResource,SavedLabelResource,DeletedLabelResource,ContactCreate,ContactPatch,ContactListOptions,ContactSource,ContactResource,ContactDetailResource,ContactAudienceResource,DeletedContactResource,DomainPatch,DomainResource,DomainDetailResource,DomainSendingState,DomainTracking,DomainTrackingState,AddressBookResource,AddressResource,SendableDomainResource. - القواعد:
RuleCreate,RulePatch,RuleListOptions,RuleRunListOptions,RuleTestInput,RuleResource,RuleRunResource,RuleTestResource,DeletedRuleResource,RuleCondition,RuleConditionInput,RuleAction,RuleActionType,RuleField,RuleOperator. - Webhooks:
WebhookCreate,WebhookPatch,WebhookResource,CreatedWebhookResource,DeletedWebhookResource,WebhookDeliveryResource,WebhookTestResource,WebhookEvent,WebhookPayload,EmailOpenedData,EmailClickedData,EmailDownloadedData,VerifyWebhookProps,WebhookSignatureHeaders. - التقويم والإعدادات:
CalendarRangeOptions,CalendarOccurrenceResource,CalendarEventResource,CalendarAttendeeResource,SettingsPatch,SettingsResource. - الأدوار والأعضاء والمفاتيح:
RoleCreate,RolePatch,RoleDeleteOptions,RoleResource,DeletedRoleResource,PermissionResource,MemberAdd,MemberPatch,MemberAddressGrant,MemberResource,MemberAddressResource,RemovedMemberResource,MemberAccess,KeyResource,PingResource. - صناديق الوارد المؤقتة:
TempInboxCreate,TempMessageListOptions,TempInboxResource,CreatedTempInboxResource,DeletedTempInboxResource,TempDomainResource,TempMessageResource,TempMessagesResource,TempMessageDetailResource,DeletedTempMessageResource. - المشترَك:
RecipientInput,AttachmentInput,AttachmentResource,MessageResource,MessageEncryption,MessageEncryptionFormat,TrackingRequest,TranslateOptions,SendTranslateOptions,LanguageResource,ApiScope,Permission,BuiltinRole,HitKind.
نقطة نهاية لا تغلّفها الحزمة بعد
لا ينبغي أبدًا أن يكون إصدار SDK هو الحائل بينك وبين نقطة نهاية تعمل أصلًا. يأخذ openemail.raw.request() مسارًا وخيارات ويُحَل إلى المتن المحلَّل، مع تطبيق مفتاح العميل وعنوان URL الأساسي والمهلة وسياسة إعادة المحاولة.
const result = await openemail.raw.request<Whatever>('/something-new', { method: 'POST', query: { dryRun: true }, body: { name: 'Invoices' }, repeatable: true,})يُعاد طلب GET كأي قراءة أخرى. أما أي أسلوب آخر فيُرسل مرة واحدة ما لم تمرّر repeatable: true، وهو إقرارك بأنه يجوز إرساله مرتين. ويتخطى query القيم التي هي undefined، ويعمل signal كما يعمل في كل تابع آخر.
ما لا تفعله عن قصد
- لا تتحقق من أي متن طلب. فمخطط الخادم هو النسخة الوحيدة من القواعد، ونسخة ثانية هنا كانت ستنتهي إلى رفض عنوان يقبله خادم أحدث، في إصدار ثبّته أحدهم قبل عامين.
- لا تشحن zod ولا أي اعتماديات وقت تشغيل إطلاقًا.
- تعيد تشكيل الاستجابة بطريقة واحدة فقط: تُرفع مصفوفة
dataالخاصة بالمجموعة من غلافها. فالقائمة المقسَّمة إلى صفحات تعيدها باسمitemsإلى جانبhasMoreوnextCursor، وemails.sendBatchباسمitemsإلى جانبsentوfailed، وtempMail.listMessagesباسمitemsإلى جانبexpiresAt، وaddresses.listباسمaddressesإلى جانبunrestrictedوdomains. وفي كل موضع آخر تكون مصفوفة عادية. ويحتفظ كل مورد بداخلها بشكل HTTP الموثَّق.
وفحص التكافؤ في الحزمة يبقي هذا صادقًا. فهو يُفشل البناء حين لا يكون لعملية موثَّقة تابع، وحين يشير تابع إلى عملية لا يحتويها مستند OpenAPI أو يرسل طلبًا مختلفًا، وحين يعلن تابع نطاقات لا تشترطها العملية.