Saltar para a documentação
SDK

Tipos e utilitários

O que mais o pacote exporta.

Exportações em runtime

ExportaçãoO 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.

escape-hatch.ts
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 data de uma coleção é retirado do seu envelope. Uma lista paginada devolve-o como items ao lado de hasMore e nextCursor, emails.sendBatch como items ao lado de sent e failed, tempMail.listMessages como items ao lado de expiresAt, e addresses.list como addresses ao lado de unrestricted e domains. 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.