Tipos e utilitários
O que mais o pacote exporta.
Exportações em runtime
| Exportação | O que é |
|---|---|
| `init`, `openemail` | Configure uma vez o cliente partilhado e depois importe openemail em qualquer lado. Constrói-se a partir de OPENEMAIL_API_KEY se init nunca correu. |
| `getClient`, `resetClient` | O próprio cliente partilhado, e uma forma de o largar para que a chamada seguinte construa um novo, que é o que um teste quer entre casos. |
| `createOpenEmail`, `createClient`, `OpenEmail` | Um cliente separado. createOpenEmail lê o ambiente para tudo o que deixar de fora (createClient é a mesma função), e new OpenEmail (também a exportação por omissão) recebe apenas o que lhe passar. |
| `createTempMail` | Um cliente de caixas descartáveis que não transporta chave de API, e a única parte do pacote que corre num browser. |
| `OpenEmailApiError`, `OpenEmailNetworkError` | As duas classes de erro. |
| `verifyWebhookSignature` | Em tempo constante, com uma janela de repetição. Resolve para o payload analisado e lança exceção em qualquer falha. |
| `toBase64` | Em blocos, para os bytes dos anexos. |
| `isApiKey` | Se uma string tem a forma oe_live_ ou oe_test_. Uma verificação de forma, não prova de que a chave ainda funciona. |
| `isSealed`, `MESSAGE_ENCRYPTION_FORMATS` | Se o corpo de uma mensagem é texto cifrado, e os cinco envelopes que a ingestão pode nomear. isSealed é false para os dois formatos SIGNED, cujos corpos chegaram em claro, e é por isso que vem no pacote em vez de ser deixado a quem chama para derivar da união. |
| `LANGUAGES`, `resolveLanguage`, `languageByCode`, `isRtlLanguage` | A tabela de idiomas incluída, e as procuras de que um seletor de idioma precisa. |
| `API_SCOPES` | O vocabulário de âmbitos, para um ecrã de criação de chaves. |
| `WEBHOOK_EVENTS`, `WEBHOOK_SIGNATURE_HEADERS` | Os eventos que um endpoint pode subscrever, e os nomes dos cabeçalhos que uma entrega transporta. |
| `RULE_FIELDS`, `RULE_OPERATORS`, `RULE_ACTIONS` | O vocabulário a partir do qual as condições e as ações de uma regra são construídas. |
| `PAGE_LIMITS` | O maior valor e o valor por omissão de limit numa lista paginada: 100 e 25. |
| `ERROR_TYPES` | O vocabulário de erros congelado. |
| `VERSION` | A versão do pacote. |
Tipos
Cada pedido e cada resposta tem um, e são exportados a partir da raiz do pacote. Não há importações profundas, por isso a disposição dos ficheiros continua a ser um detalhe de implementação que pode mudar sem uma versão major. …Resource é o que a API devolve, …Create, …Patch, …Input e …Send são o que passa, e …Options contém filtros e opções por chamada.
- Cliente:
ClientOptions,TempMailOptions,TransportOptions,RequestOptions,RequestScope,SendScope,InboxScope,ListOptions,Page,ApiKeyMode,FetchLike. - Erros:
ErrorType,ApiErrorPayload,ApiErrorProps. - Emails:
EmailSend,EmailListOptions,EmailTranslate,EmailResource,SentEmailResource,EmailRecipientResource,EmailEventResource,EmailStatus,EmailSource,EmailTransport,EmailTrackingSummary,EmailTranslationResource,TranslationResource,RecipientStatus,BatchItemResource,BatchResultResource. - Templates:
TemplateCreate,TemplatePatch,TemplateContent,TemplateListOptions,TemplatePreviewInput,TemplateSend,TemplateResource,TemplateDetailResource,TemplateVersionResource,TemplatePreviewResource,SentTemplateEmailResource,DeletedTemplateResource,TemplateEngine,TemplateProp,TemplateSlot,TemplateStatus,TemplateValueKind. - Monitorização:
TrackingListOptions,TrackingStatsOptions,TrackingHitOptions,TrackingResource,TrackingSummary,TrackingRecipientResource,TrackingLinkResource,TrackingOpenResource,TrackingClickResource,TrackingStatsResource,TrackingGrain. - Threads e rascunhos:
ThreadListOptions,ThreadPatch,ThreadResource,ThreadSummaryResource,UpdatedThreadResource,TrashedThreadResource,SnoozedThreadResource,DraftInput,DraftListOptions,DraftResource,DraftSummaryResource,SavedDraftResource,DeletedDraftResource. - Etiquetas, contactos, domínios e endereços:
LabelInput,LabelColor,LabelResource,SavedLabelResource,DeletedLabelResource,ContactCreate,ContactPatch,ContactListOptions,ContactSource,ContactResource,ContactDetailResource,ContactAudienceResource,DeletedContactResource,DomainPatch,DomainResource,DomainDetailResource,DomainSendingState,DomainTracking,DomainTrackingState,AddressBookResource,AddressResource,SendableDomainResource. - Regras:
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. - Calendário e definições:
CalendarRangeOptions,CalendarOccurrenceResource,CalendarEventResource,CalendarAttendeeResource,SettingsPatch,SettingsResource. - Papéis, membros e chaves:
RoleCreate,RolePatch,RoleDeleteOptions,RoleResource,DeletedRoleResource,PermissionResource,MemberAdd,MemberPatch,MemberAddressGrant,MemberResource,MemberAddressResource,RemovedMemberResource,MemberAccess,KeyResource,PingResource. - Caixas descartáveis:
TempInboxCreate,TempMessageListOptions,TempInboxResource,CreatedTempInboxResource,DeletedTempInboxResource,TempDomainResource,TempMessageResource,TempMessagesResource,TempMessageDetailResource,DeletedTempMessageResource. - Partilhados:
RecipientInput,AttachmentInput,AttachmentResource,MessageResource,MessageEncryption,MessageEncryptionFormat,TrackingRequest,TranslateOptions,SendTranslateOptions,LanguageResource,ApiScope,Permission,BuiltinRole,HitKind.
Um endpoint que isto ainda não envolve
Uma versão do SDK nunca deve ser o que se interpõe entre si e um endpoint que já funciona. openemail.raw.request() recebe um caminho e opções e resolve para o corpo analisado, com a chave, o URL base, o timeout e a política de repetição do cliente aplicados.
const result = await openemail.raw.request<Whatever>('/something-new', { method: 'POST', query: { dryRun: true }, body: { name: 'Invoices' }, repeatable: true,})Um GET é repetido como qualquer outra leitura. Qualquer outro método é enviado uma só vez a menos que passe repeatable: true, que é a sua afirmação de que pode ser enviado duas vezes. query ignora valores undefined, e signal funciona como em todos os outros métodos.
O que deliberadamente não faz
- Não valida nenhum corpo de pedido. O esquema do servidor é a única cópia das regras, e uma segunda cópia aqui acabaria por recusar um endereço que um servidor mais recente aceita, numa versão que alguém fixou há dois anos.
- Não traz zod nem qualquer dependência em runtime.
- Remodela uma resposta de uma única forma: o array
datade uma coleção é retirado do seu envelope. Uma lista paginada devolve-o comoitemsao lado dehasMoreenextCursor,emails.sendBatchcomoitemsao lado desentefailed,tempMail.listMessagescomoitemsao lado deexpiresAt, eaddresses.listcomoaddressesao lado deunrestrictededomains. Em todo o resto é um array simples. Cada recurso lá dentro mantém a forma HTTP documentada.
A verificação de paridade do pacote mantém isto honesto. Falha o build quando uma operação documentada não tem método, quando um método aponta para uma operação que o documento OpenAPI não tem ou envia um pedido diferente, e quando um método declara âmbitos que a operação não exige.