문서로 건너뛰기
SDK

타입과 헬퍼

패키지가 그 밖에 내보내는 것들.

런타임 익스포트

익스포트무엇인가
`init`, `openemail`공유 클라이언트를 한 번 구성한 뒤 어디서든 openemail을 import하십시오. init을 실행하지 않았다면 클라이언트가 OPENEMAIL_API_KEY로 스스로를 구성합니다.
`getClient`, `resetClient`공유 클라이언트 자체와, 다음 호출이 새 클라이언트를 만들도록 기존 것을 버리는 방법입니다. 테스트에서 케이스 사이에 필요한 것이 바로 이것입니다.
`createOpenEmail`, `createClient`, `OpenEmail`별도의 클라이언트입니다. createOpenEmail은 지정하지 않은 값을 환경에서 읽고(createClient는 같은 함수입니다), new OpenEmail(기본 익스포트이기도 합니다)은 전달한 값만 사용합니다.
`createTempMail`API 키를 담지 않는 일회용 수신함 클라이언트이며, 이 패키지에서 브라우저에서 실행되는 유일한 부분입니다.
`OpenEmailApiError`, `OpenEmailNetworkError`두 가지 오류 클래스입니다.
`verifyWebhookSignature`재전송 허용 창을 둔 상수 시간 비교입니다. 파싱된 페이로드로 resolve되며 실패하면 예외를 던집니다.
`toBase64`첨부 파일 바이트를 위한 청크 단위 처리입니다.
`isApiKey`문자열이 oe_live_ 또는 oe_test_ 형태인지 확인합니다. 형태 검사일 뿐, 키가 아직 유효하다는 증거는 아닙니다.
`isSealed`, `MESSAGE_ENCRYPTION_FORMATS`메시지 본문이 암호문인지 여부와, 수신 처리가 지정할 수 있는 다섯 가지 봉투 형식입니다. 본문이 평문으로 도착한 두 가지 SIGNED 형식에서는 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`패키지 버전입니다.

타입

모든 요청과 응답에는 대응하는 타입이 있으며, 패키지 루트에서 내보냅니다. 깊은 경로 import가 없으므로 파일 구조는 메이저 버전 없이도 옮길 수 있는 구현 세부 사항으로 남습니다. …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.
  • 웹훅: 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()는 경로와 옵션을 받아 파싱된 본문으로 resolve하며, 클라이언트의 키, 기본 URL, 타임아웃, 재시도 정책이 그대로 적용됩니다.

escape-hatch.ts
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은 다른 모든 메서드에서와 똑같이 동작합니다.

의도적으로 하지 않는 것

  • 요청 본문을 검증하지 않습니다. 규칙의 사본은 서버 스키마 하나뿐이며, 여기에 두 번째 사본을 두면 언젠가는 2년 전에 고정해 둔 버전에서 최신 서버라면 받아들일 주소를 거부하게 됩니다.
  • zod를 포함하지 않으며, 런타임 의존성도 전혀 없습니다.
  • 응답의 형태를 바꾸는 것은 한 가지뿐입니다. 컬렉션의 data 배열을 봉투에서 꺼내는 것입니다. 페이지 목록은 이를 hasMore, nextCursor와 함께 items로, emails.sendBatchsent, failed와 함께 items로, tempMail.listMessagesexpiresAt과 함께 items로, addresses.listunrestricted, domains와 함께 addresses로 돌려줍니다. 그 밖의 곳에서는 모두 단순 배열입니다. 안에 들어 있는 리소스는 문서화된 HTTP 형태를 그대로 유지합니다.

패키지의 패리티 검사가 이를 정직하게 지켜 줍니다. 문서화된 작업에 메서드가 없거나, 메서드가 OpenAPI 문서에 없는 작업을 가리키거나 다른 요청을 보내거나, 메서드가 해당 작업이 요구하지 않는 스코프를 선언하면 빌드를 실패시킵니다.