resend 6.12.4 → 6.13.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -25,7 +25,7 @@ let postal_mime = require("postal-mime");
25
25
  postal_mime = __toESM(postal_mime);
26
26
  let standardwebhooks = require("standardwebhooks");
27
27
  //#region package.json
28
- var version = "6.12.4";
28
+ var version = "6.13.0-canary.0";
29
29
  //#endregion
30
30
  //#region src/common/utils/build-pagination-query.ts
31
31
  /**
@@ -411,6 +411,51 @@ var ContactProperties = class {
411
411
  }
412
412
  };
413
413
  //#endregion
414
+ //#region src/contacts/imports/contact-imports.ts
415
+ var ContactImports = class {
416
+ constructor(resend) {
417
+ this.resend = resend;
418
+ }
419
+ async create(payload, options = {}) {
420
+ const formData = this.buildCreateFormData(payload);
421
+ return this.resend.post("/contacts/imports", formData, options);
422
+ }
423
+ async list(options = {}) {
424
+ const searchParams = new URLSearchParams(buildPaginationQuery(options));
425
+ if (options.status !== void 0) searchParams.set("status", options.status);
426
+ const queryString = searchParams.toString();
427
+ const url = queryString ? `/contacts/imports?${queryString}` : "/contacts/imports";
428
+ return this.resend.get(url);
429
+ }
430
+ async get(id) {
431
+ return this.resend.get(`/contacts/imports/${id}`);
432
+ }
433
+ buildCreateFormData(payload) {
434
+ const formData = new FormData();
435
+ formData.append("file", payload.file);
436
+ this.appendField(formData, "column_map", this.buildColumnMap(payload.columnMap ?? null));
437
+ this.appendField(formData, "on_conflict", payload.onConflict ?? null);
438
+ this.appendField(formData, "on_error", payload.onError ?? null);
439
+ this.appendField(formData, "segments", payload.segments ?? null);
440
+ this.appendField(formData, "topics", payload.topics ?? null);
441
+ return formData;
442
+ }
443
+ buildColumnMap(columnMap) {
444
+ if (columnMap === null) return null;
445
+ return {
446
+ email: columnMap.email,
447
+ first_name: columnMap.firstName,
448
+ last_name: columnMap.lastName,
449
+ unsubscribed: columnMap.unsubscribed,
450
+ properties: columnMap.properties
451
+ };
452
+ }
453
+ appendField(formData, name, value) {
454
+ if (value === null) return;
455
+ formData.append(name, typeof value === "string" ? value : JSON.stringify(value));
456
+ }
457
+ };
458
+ //#endregion
414
459
  //#region src/contacts/segments/contact-segments.ts
415
460
  var ContactSegments = class {
416
461
  constructor(resend) {
@@ -498,6 +543,7 @@ var ContactTopics = class {
498
543
  var Contacts = class {
499
544
  constructor(resend) {
500
545
  this.resend = resend;
546
+ this.imports = new ContactImports(this.resend);
501
547
  this.topics = new ContactTopics(this.resend);
502
548
  this.segments = new ContactSegments(this.resend);
503
549
  }
@@ -1150,11 +1196,13 @@ var Resend = class {
1150
1196
  }
1151
1197
  async post(path, entity, options = {}) {
1152
1198
  const headers = new Headers(this.headers);
1199
+ const isFormData = typeof FormData !== "undefined" && entity instanceof FormData;
1200
+ if (isFormData) headers.delete("Content-Type");
1153
1201
  if (options.headers) for (const [key, value] of new Headers(options.headers).entries()) headers.set(key, value);
1154
1202
  if (options.idempotencyKey) headers.set("Idempotency-Key", options.idempotencyKey);
1155
1203
  const requestOptions = {
1156
1204
  method: "POST",
1157
- body: JSON.stringify(entity),
1205
+ body: isFormData ? entity : JSON.stringify(entity),
1158
1206
  ...options,
1159
1207
  headers
1160
1208
  };
package/dist/index.d.cts CHANGED
@@ -946,6 +946,72 @@ type UpdateContactPropertyResponseSuccess = Pick<ContactProperty, 'id'> & {
946
946
  };
947
947
  type UpdateContactPropertyResponse = Response<UpdateContactPropertyResponseSuccess>;
948
948
  //#endregion
949
+ //#region src/contacts/imports/interfaces/contact-import.interface.d.ts
950
+ type ContactImportStatus = 'queued' | 'in_progress' | 'completed' | 'failed';
951
+ interface ContactImportCounts {
952
+ total: number;
953
+ created: number;
954
+ updated: number;
955
+ skipped: number;
956
+ failed: number;
957
+ }
958
+ interface ContactImport {
959
+ object: 'contact_import';
960
+ id: string;
961
+ status: ContactImportStatus;
962
+ created_at: string;
963
+ completed_at: string | null;
964
+ counts: ContactImportCounts;
965
+ }
966
+ //#endregion
967
+ //#region src/contacts/imports/interfaces/create-contact-import.interface.d.ts
968
+ type ContactImportOnConflict = 'upsert' | 'skip';
969
+ type ContactImportOnError = 'continue' | 'abort';
970
+ type ContactImportPropertyType = 'string' | 'number' | 'boolean';
971
+ interface ContactImportPropertyMapping {
972
+ column: string;
973
+ type?: ContactImportPropertyType;
974
+ }
975
+ interface ContactImportColumnMap {
976
+ email?: string;
977
+ firstName?: string;
978
+ lastName?: string;
979
+ unsubscribed?: string;
980
+ properties?: Record<string, ContactImportPropertyMapping>;
981
+ }
982
+ interface ContactImportSegment {
983
+ id: string;
984
+ }
985
+ interface ContactImportTopic {
986
+ id: string;
987
+ subscription: 'opt_in' | 'opt_out';
988
+ }
989
+ interface CreateContactImportOptions {
990
+ file: Blob;
991
+ columnMap?: ContactImportColumnMap;
992
+ onConflict?: ContactImportOnConflict;
993
+ onError?: ContactImportOnError;
994
+ segments?: ContactImportSegment[];
995
+ topics?: ContactImportTopic[];
996
+ }
997
+ interface CreateContactImportRequestOptions extends PostOptions {}
998
+ interface CreateContactImportResponseSuccess {
999
+ object: 'contact_import';
1000
+ id: string;
1001
+ }
1002
+ type CreateContactImportResponse = Response<CreateContactImportResponseSuccess>;
1003
+ //#endregion
1004
+ //#region src/contacts/imports/interfaces/get-contact-import.interface.d.ts
1005
+ type GetContactImportResponseSuccess = ContactImport;
1006
+ type GetContactImportResponse = Response<GetContactImportResponseSuccess>;
1007
+ //#endregion
1008
+ //#region src/contacts/imports/interfaces/list-contact-imports.interface.d.ts
1009
+ type ListContactImportsOptions = PaginationOptions & {
1010
+ status?: ContactImportStatus;
1011
+ };
1012
+ type ListContactImportsResponseSuccess = PaginatedData<ContactImport[]>;
1013
+ type ListContactImportsResponse = Response<ListContactImportsResponseSuccess>;
1014
+ //#endregion
949
1015
  //#region src/contacts/interfaces/contact.d.ts
950
1016
  interface Contact {
951
1017
  created_at: string;
@@ -1529,6 +1595,18 @@ declare class ContactProperties {
1529
1595
  remove(id: string): Promise<RemoveContactPropertyResponse>;
1530
1596
  }
1531
1597
  //#endregion
1598
+ //#region src/contacts/imports/contact-imports.d.ts
1599
+ declare class ContactImports {
1600
+ private readonly resend;
1601
+ constructor(resend: Resend);
1602
+ create(payload: CreateContactImportOptions, options?: CreateContactImportRequestOptions): Promise<CreateContactImportResponse>;
1603
+ list(options?: ListContactImportsOptions): Promise<ListContactImportsResponse>;
1604
+ get(id: string): Promise<GetContactImportResponse>;
1605
+ private buildCreateFormData;
1606
+ private buildColumnMap;
1607
+ private appendField;
1608
+ }
1609
+ //#endregion
1532
1610
  //#region src/contacts/segments/contact-segments.d.ts
1533
1611
  declare class ContactSegments {
1534
1612
  private readonly resend;
@@ -1549,6 +1627,7 @@ declare class ContactTopics {
1549
1627
  //#region src/contacts/contacts.d.ts
1550
1628
  declare class Contacts {
1551
1629
  private readonly resend;
1630
+ readonly imports: ContactImports;
1552
1631
  readonly topics: ContactTopics;
1553
1632
  readonly segments: ContactSegments;
1554
1633
  constructor(resend: Resend);
@@ -2149,4 +2228,4 @@ declare class Resend {
2149
2228
  delete<T>(path: string, query?: unknown, options?: DeleteOptions): Promise<Response<T>>;
2150
2229
  }
2151
2230
  //#endregion
2152
- export { AddContactSegmentOptions, AddContactSegmentResponse, AddContactSegmentResponseSuccess, AddToSegmentStepConfig, ApiContactProperty, ApiKey, Attachment, AttachmentData, Automation, AutomationConnection, AutomationConnectionType, AutomationResponseConnection, AutomationResponseStep, AutomationRun, AutomationRunItem, AutomationRunStatus, AutomationRunStep, AutomationRunStepStatus, AutomationStatus, AutomationStep, AutomationStepType, Broadcast, CancelEmailResponse, CancelEmailResponseSuccess, ConditionRule, ConditionStepConfig, Contact, ContactCreatedEvent, ContactDeleteStepConfig, ContactDeletedEvent, ContactProperty, ContactSegmentsBaseOptions, ContactTopic, ContactUpdateStepConfig, ContactUpdatedEvent, CreateApiKeyOptions, CreateApiKeyRequestOptions, CreateApiKeyResponse, CreateApiKeyResponseSuccess, CreateAutomationOptions, CreateAutomationResponse, CreateAutomationResponseSuccess, CreateBatchEmailOptions, CreateBatchOptions, CreateBatchRequestOptions, CreateBatchResponse, CreateBatchSuccessResponse, CreateBroadcastOptions, CreateBroadcastRequestOptions, CreateBroadcastResponse, CreateBroadcastResponseSuccess, CreateContactOptions, CreateContactPropertyApiOptions, CreateContactPropertyOptions, CreateContactPropertyResponse, CreateContactPropertyResponseSuccess, CreateContactRequestOptions, CreateContactResponse, CreateContactResponseSuccess, CreateDomainOptions, CreateDomainRequestOptions, CreateDomainResponse, CreateDomainResponseSuccess, CreateEmailOptions, CreateEmailRequestOptions, CreateEmailResponse, CreateEmailResponseSuccess, CreateEventOptions, CreateEventResponse, CreateEventResponseSuccess, CreateSegmentOptions, CreateSegmentRequestOptions, CreateSegmentResponse, CreateSegmentResponseSuccess, CreateTemplateOptions, CreateTemplateRequestOptions, CreateTemplateResponse, CreateTemplateResponseSuccess, CreateTopicOptions, CreateTopicResponse, CreateTopicResponseSuccess, CreateWebhookOptions, CreateWebhookRequestOptions, CreateWebhookResponse, CreateWebhookResponseSuccess, DelayStepConfig, DeleteOptions, Domain, DomainApiOptions, DomainCapabilities, DomainCapabilityStatus, DomainCreatedEvent, DomainDeletedEvent, DomainDkimRecord, DomainNameservers, DomainRecordStatus, DomainRecords, DomainRegion, DomainSpfRecord, DomainStatus, DomainUpdatedEvent, DuplicateTemplateResponse, DuplicateTemplateResponseSuccess, EmailApiAttachment, EmailApiOptions, EmailBouncedEvent, EmailClickedEvent, EmailComplainedEvent, EmailDeliveredEvent, EmailDeliveryDelayedEvent, EmailFailedEvent, EmailOpenedEvent, EmailReceivedEvent, EmailScheduledEvent, EmailSentEvent, EmailSuppressedEvent, type ErrorResponse, Event, EventSchemaMap, EventSchemaType, ForwardReceivingEmailOptions, ForwardReceivingEmailResponse, ForwardReceivingEmailResponseSuccess, GetAttachmentOptions, GetAttachmentResponse, GetAttachmentResponseSuccess, GetAutomationResponse, GetAutomationResponseSuccess, GetAutomationRunOptions, GetAutomationRunResponse, GetAutomationRunResponseSuccess, GetBroadcastResponse, GetBroadcastResponseSuccess, GetContactOptions, GetContactPropertyResponse, GetContactPropertyResponseSuccess, GetContactResponse, GetContactResponseSuccess, GetDomainResponse, GetDomainResponseSuccess, GetEmailResponse, GetEmailResponseSuccess, GetEventResponse, GetEventResponseSuccess, GetLogResponse, GetLogResponseSuccess, GetOptions, GetReceivingEmailResponse, GetReceivingEmailResponseSuccess, GetSegmentResponse, GetSegmentResponseSuccess, GetTemplateResponse, GetTemplateResponseSuccess, GetTopicOptions, GetTopicResponse, GetTopicResponseSuccess, GetWebhookResponse, GetWebhookResponseSuccess, IdempotentRequest, InboundAttachment, LegacyCreateContactOptions, ListApiKeysOptions, ListApiKeysResponse, ListApiKeysResponseSuccess, ListAttachmentsOptions, ListAttachmentsResponse, ListAttachmentsResponseSuccess, ListAutomationRunsOptions, ListAutomationRunsResponse, ListAutomationRunsResponseSuccess, ListAutomationsOptions, ListAutomationsResponse, ListAutomationsResponseSuccess, ListBroadcastsOptions, ListBroadcastsResponse, ListBroadcastsResponseSuccess, ListContactPropertiesOptions, ListContactPropertiesResponse, ListContactPropertiesResponseSuccess, ListContactSegmentsOptions, ListContactSegmentsResponse, ListContactSegmentsResponseSuccess, ListContactTopicsOptions, ListContactTopicsRequestOptions, ListContactTopicsResponse, ListContactTopicsResponseSuccess, ListContactsOptions, ListContactsResponse, ListContactsResponseSuccess, ListDomainsOptions, ListDomainsResponse, ListDomainsResponseSuccess, ListEmail, ListEmailsOptions, ListEmailsResponse, ListEmailsResponseSuccess, ListEventsOptions, ListEventsResponse, ListEventsResponseSuccess, ListLogsOptions, ListLogsResponse, ListLogsResponseSuccess, ListReceivingEmail, ListReceivingEmailsOptions, ListReceivingEmailsResponse, ListReceivingEmailsResponseSuccess, ListSegmentsOptions, ListSegmentsResponse, ListSegmentsResponseSuccess, ListTemplatesOptions, ListTemplatesResponse, ListTemplatesResponseSuccess, ListTopicsResponse, ListTopicsResponseSuccess, ListWebhooksOptions, ListWebhooksResponse, ListWebhooksResponseSuccess, Log, PaginatedData, PaginationOptions, PatchOptions, PostOptions, PublishTemplateResponse, PublishTemplateResponseSuccess, PutOptions, ReceivingRecord, RemoveApiKeyResponse, RemoveApiKeyResponseSuccess, RemoveAutomationResponse, RemoveAutomationResponseSuccess, RemoveBroadcastResponse, RemoveBroadcastResponseSuccess, RemoveContactOptions, RemoveContactPropertyResponse, RemoveContactPropertyResponseSuccess, RemoveContactSegmentOptions, RemoveContactSegmentResponse, RemoveContactSegmentResponseSuccess, RemoveContactsResponse, RemoveContactsResponseSuccess, RemoveDomainsResponse, RemoveDomainsResponseSuccess, RemoveEventResponse, RemoveEventResponseSuccess, RemoveSegmentResponse, RemoveSegmentResponseSuccess, RemoveTemplateResponse, RemoveTemplateResponseSuccess, RemoveTopicResponse, RemoveTopicResponseSuccess, RemoveWebhookResponse, RemoveWebhookResponseSuccess, RequireAtLeastOne, Resend, type ResendOptions, type Response, Segment, SelectingField, SendBroadcastOptions, SendBroadcastRequestOptions, SendBroadcastResponse, SendBroadcastResponseSuccess, SendEmailStepConfig, SendEventOptions, SendEventResponse, SendEventResponseSuccess, StopAutomationResponse, StopAutomationResponseSuccess, Tag, Template, TemplateVariable, TemplateVariableValue, Topic, TrackingCaaRecord, TrackingRecord, TriggerStepConfig, UpdateAutomationOptions, UpdateAutomationResponse, UpdateAutomationResponseSuccess, UpdateBroadcastOptions, UpdateBroadcastResponse, UpdateBroadcastResponseSuccess, UpdateContactOptions, UpdateContactPropertyApiOptions, UpdateContactPropertyOptions, UpdateContactPropertyResponse, UpdateContactPropertyResponseSuccess, UpdateContactResponse, UpdateContactResponseSuccess, UpdateContactTopicsOptions, UpdateContactTopicsRequestOptions, UpdateContactTopicsResponse, UpdateContactTopicsResponseSuccess, UpdateDomainsOptions, UpdateDomainsResponse, UpdateDomainsResponseSuccess, UpdateEmailOptions, UpdateEmailResponse, UpdateEmailResponseSuccess, UpdateEventOptions, UpdateEventResponse, UpdateEventResponseSuccess, UpdateTemplateOptions, UpdateTemplateResponse, UpdateTemplateResponseSuccess, UpdateTopicOptions, UpdateTopicResponse, UpdateTopicResponseSuccess, UpdateWebhookOptions, UpdateWebhookResponse, UpdateWebhookResponseSuccess, VerifyDomainsResponse, VerifyDomainsResponseSuccess, WaitForEventStepConfig, Webhook, WebhookEvent, WebhookEventPayload };
2231
+ export { AddContactSegmentOptions, AddContactSegmentResponse, AddContactSegmentResponseSuccess, AddToSegmentStepConfig, ApiContactProperty, ApiKey, Attachment, AttachmentData, Automation, AutomationConnection, AutomationConnectionType, AutomationResponseConnection, AutomationResponseStep, AutomationRun, AutomationRunItem, AutomationRunStatus, AutomationRunStep, AutomationRunStepStatus, AutomationStatus, AutomationStep, AutomationStepType, Broadcast, CancelEmailResponse, CancelEmailResponseSuccess, ConditionRule, ConditionStepConfig, Contact, ContactCreatedEvent, ContactDeleteStepConfig, ContactDeletedEvent, ContactImport, ContactImportColumnMap, ContactImportCounts, ContactImportOnConflict, ContactImportOnError, ContactImportPropertyMapping, ContactImportPropertyType, ContactImportSegment, ContactImportStatus, ContactImportTopic, ContactProperty, ContactSegmentsBaseOptions, ContactTopic, ContactUpdateStepConfig, ContactUpdatedEvent, CreateApiKeyOptions, CreateApiKeyRequestOptions, CreateApiKeyResponse, CreateApiKeyResponseSuccess, CreateAutomationOptions, CreateAutomationResponse, CreateAutomationResponseSuccess, CreateBatchEmailOptions, CreateBatchOptions, CreateBatchRequestOptions, CreateBatchResponse, CreateBatchSuccessResponse, CreateBroadcastOptions, CreateBroadcastRequestOptions, CreateBroadcastResponse, CreateBroadcastResponseSuccess, CreateContactImportOptions, CreateContactImportRequestOptions, CreateContactImportResponse, CreateContactImportResponseSuccess, CreateContactOptions, CreateContactPropertyApiOptions, CreateContactPropertyOptions, CreateContactPropertyResponse, CreateContactPropertyResponseSuccess, CreateContactRequestOptions, CreateContactResponse, CreateContactResponseSuccess, CreateDomainOptions, CreateDomainRequestOptions, CreateDomainResponse, CreateDomainResponseSuccess, CreateEmailOptions, CreateEmailRequestOptions, CreateEmailResponse, CreateEmailResponseSuccess, CreateEventOptions, CreateEventResponse, CreateEventResponseSuccess, CreateSegmentOptions, CreateSegmentRequestOptions, CreateSegmentResponse, CreateSegmentResponseSuccess, CreateTemplateOptions, CreateTemplateRequestOptions, CreateTemplateResponse, CreateTemplateResponseSuccess, CreateTopicOptions, CreateTopicResponse, CreateTopicResponseSuccess, CreateWebhookOptions, CreateWebhookRequestOptions, CreateWebhookResponse, CreateWebhookResponseSuccess, DelayStepConfig, DeleteOptions, Domain, DomainApiOptions, DomainCapabilities, DomainCapabilityStatus, DomainCreatedEvent, DomainDeletedEvent, DomainDkimRecord, DomainNameservers, DomainRecordStatus, DomainRecords, DomainRegion, DomainSpfRecord, DomainStatus, DomainUpdatedEvent, DuplicateTemplateResponse, DuplicateTemplateResponseSuccess, EmailApiAttachment, EmailApiOptions, EmailBouncedEvent, EmailClickedEvent, EmailComplainedEvent, EmailDeliveredEvent, EmailDeliveryDelayedEvent, EmailFailedEvent, EmailOpenedEvent, EmailReceivedEvent, EmailScheduledEvent, EmailSentEvent, EmailSuppressedEvent, type ErrorResponse, Event, EventSchemaMap, EventSchemaType, ForwardReceivingEmailOptions, ForwardReceivingEmailResponse, ForwardReceivingEmailResponseSuccess, GetAttachmentOptions, GetAttachmentResponse, GetAttachmentResponseSuccess, GetAutomationResponse, GetAutomationResponseSuccess, GetAutomationRunOptions, GetAutomationRunResponse, GetAutomationRunResponseSuccess, GetBroadcastResponse, GetBroadcastResponseSuccess, GetContactImportResponse, GetContactImportResponseSuccess, GetContactOptions, GetContactPropertyResponse, GetContactPropertyResponseSuccess, GetContactResponse, GetContactResponseSuccess, GetDomainResponse, GetDomainResponseSuccess, GetEmailResponse, GetEmailResponseSuccess, GetEventResponse, GetEventResponseSuccess, GetLogResponse, GetLogResponseSuccess, GetOptions, GetReceivingEmailResponse, GetReceivingEmailResponseSuccess, GetSegmentResponse, GetSegmentResponseSuccess, GetTemplateResponse, GetTemplateResponseSuccess, GetTopicOptions, GetTopicResponse, GetTopicResponseSuccess, GetWebhookResponse, GetWebhookResponseSuccess, IdempotentRequest, InboundAttachment, LegacyCreateContactOptions, ListApiKeysOptions, ListApiKeysResponse, ListApiKeysResponseSuccess, ListAttachmentsOptions, ListAttachmentsResponse, ListAttachmentsResponseSuccess, ListAutomationRunsOptions, ListAutomationRunsResponse, ListAutomationRunsResponseSuccess, ListAutomationsOptions, ListAutomationsResponse, ListAutomationsResponseSuccess, ListBroadcastsOptions, ListBroadcastsResponse, ListBroadcastsResponseSuccess, ListContactImportsOptions, ListContactImportsResponse, ListContactImportsResponseSuccess, ListContactPropertiesOptions, ListContactPropertiesResponse, ListContactPropertiesResponseSuccess, ListContactSegmentsOptions, ListContactSegmentsResponse, ListContactSegmentsResponseSuccess, ListContactTopicsOptions, ListContactTopicsRequestOptions, ListContactTopicsResponse, ListContactTopicsResponseSuccess, ListContactsOptions, ListContactsResponse, ListContactsResponseSuccess, ListDomainsOptions, ListDomainsResponse, ListDomainsResponseSuccess, ListEmail, ListEmailsOptions, ListEmailsResponse, ListEmailsResponseSuccess, ListEventsOptions, ListEventsResponse, ListEventsResponseSuccess, ListLogsOptions, ListLogsResponse, ListLogsResponseSuccess, ListReceivingEmail, ListReceivingEmailsOptions, ListReceivingEmailsResponse, ListReceivingEmailsResponseSuccess, ListSegmentsOptions, ListSegmentsResponse, ListSegmentsResponseSuccess, ListTemplatesOptions, ListTemplatesResponse, ListTemplatesResponseSuccess, ListTopicsResponse, ListTopicsResponseSuccess, ListWebhooksOptions, ListWebhooksResponse, ListWebhooksResponseSuccess, Log, PaginatedData, PaginationOptions, PatchOptions, PostOptions, PublishTemplateResponse, PublishTemplateResponseSuccess, PutOptions, ReceivingRecord, RemoveApiKeyResponse, RemoveApiKeyResponseSuccess, RemoveAutomationResponse, RemoveAutomationResponseSuccess, RemoveBroadcastResponse, RemoveBroadcastResponseSuccess, RemoveContactOptions, RemoveContactPropertyResponse, RemoveContactPropertyResponseSuccess, RemoveContactSegmentOptions, RemoveContactSegmentResponse, RemoveContactSegmentResponseSuccess, RemoveContactsResponse, RemoveContactsResponseSuccess, RemoveDomainsResponse, RemoveDomainsResponseSuccess, RemoveEventResponse, RemoveEventResponseSuccess, RemoveSegmentResponse, RemoveSegmentResponseSuccess, RemoveTemplateResponse, RemoveTemplateResponseSuccess, RemoveTopicResponse, RemoveTopicResponseSuccess, RemoveWebhookResponse, RemoveWebhookResponseSuccess, RequireAtLeastOne, Resend, type ResendOptions, type Response, Segment, SelectingField, SendBroadcastOptions, SendBroadcastRequestOptions, SendBroadcastResponse, SendBroadcastResponseSuccess, SendEmailStepConfig, SendEventOptions, SendEventResponse, SendEventResponseSuccess, StopAutomationResponse, StopAutomationResponseSuccess, Tag, Template, TemplateVariable, TemplateVariableValue, Topic, TrackingCaaRecord, TrackingRecord, TriggerStepConfig, UpdateAutomationOptions, UpdateAutomationResponse, UpdateAutomationResponseSuccess, UpdateBroadcastOptions, UpdateBroadcastResponse, UpdateBroadcastResponseSuccess, UpdateContactOptions, UpdateContactPropertyApiOptions, UpdateContactPropertyOptions, UpdateContactPropertyResponse, UpdateContactPropertyResponseSuccess, UpdateContactResponse, UpdateContactResponseSuccess, UpdateContactTopicsOptions, UpdateContactTopicsRequestOptions, UpdateContactTopicsResponse, UpdateContactTopicsResponseSuccess, UpdateDomainsOptions, UpdateDomainsResponse, UpdateDomainsResponseSuccess, UpdateEmailOptions, UpdateEmailResponse, UpdateEmailResponseSuccess, UpdateEventOptions, UpdateEventResponse, UpdateEventResponseSuccess, UpdateTemplateOptions, UpdateTemplateResponse, UpdateTemplateResponseSuccess, UpdateTopicOptions, UpdateTopicResponse, UpdateTopicResponseSuccess, UpdateWebhookOptions, UpdateWebhookResponse, UpdateWebhookResponseSuccess, VerifyDomainsResponse, VerifyDomainsResponseSuccess, WaitForEventStepConfig, Webhook, WebhookEvent, WebhookEventPayload };
package/dist/index.d.mts CHANGED
@@ -946,6 +946,72 @@ type UpdateContactPropertyResponseSuccess = Pick<ContactProperty, 'id'> & {
946
946
  };
947
947
  type UpdateContactPropertyResponse = Response<UpdateContactPropertyResponseSuccess>;
948
948
  //#endregion
949
+ //#region src/contacts/imports/interfaces/contact-import.interface.d.ts
950
+ type ContactImportStatus = 'queued' | 'in_progress' | 'completed' | 'failed';
951
+ interface ContactImportCounts {
952
+ total: number;
953
+ created: number;
954
+ updated: number;
955
+ skipped: number;
956
+ failed: number;
957
+ }
958
+ interface ContactImport {
959
+ object: 'contact_import';
960
+ id: string;
961
+ status: ContactImportStatus;
962
+ created_at: string;
963
+ completed_at: string | null;
964
+ counts: ContactImportCounts;
965
+ }
966
+ //#endregion
967
+ //#region src/contacts/imports/interfaces/create-contact-import.interface.d.ts
968
+ type ContactImportOnConflict = 'upsert' | 'skip';
969
+ type ContactImportOnError = 'continue' | 'abort';
970
+ type ContactImportPropertyType = 'string' | 'number' | 'boolean';
971
+ interface ContactImportPropertyMapping {
972
+ column: string;
973
+ type?: ContactImportPropertyType;
974
+ }
975
+ interface ContactImportColumnMap {
976
+ email?: string;
977
+ firstName?: string;
978
+ lastName?: string;
979
+ unsubscribed?: string;
980
+ properties?: Record<string, ContactImportPropertyMapping>;
981
+ }
982
+ interface ContactImportSegment {
983
+ id: string;
984
+ }
985
+ interface ContactImportTopic {
986
+ id: string;
987
+ subscription: 'opt_in' | 'opt_out';
988
+ }
989
+ interface CreateContactImportOptions {
990
+ file: Blob;
991
+ columnMap?: ContactImportColumnMap;
992
+ onConflict?: ContactImportOnConflict;
993
+ onError?: ContactImportOnError;
994
+ segments?: ContactImportSegment[];
995
+ topics?: ContactImportTopic[];
996
+ }
997
+ interface CreateContactImportRequestOptions extends PostOptions {}
998
+ interface CreateContactImportResponseSuccess {
999
+ object: 'contact_import';
1000
+ id: string;
1001
+ }
1002
+ type CreateContactImportResponse = Response<CreateContactImportResponseSuccess>;
1003
+ //#endregion
1004
+ //#region src/contacts/imports/interfaces/get-contact-import.interface.d.ts
1005
+ type GetContactImportResponseSuccess = ContactImport;
1006
+ type GetContactImportResponse = Response<GetContactImportResponseSuccess>;
1007
+ //#endregion
1008
+ //#region src/contacts/imports/interfaces/list-contact-imports.interface.d.ts
1009
+ type ListContactImportsOptions = PaginationOptions & {
1010
+ status?: ContactImportStatus;
1011
+ };
1012
+ type ListContactImportsResponseSuccess = PaginatedData<ContactImport[]>;
1013
+ type ListContactImportsResponse = Response<ListContactImportsResponseSuccess>;
1014
+ //#endregion
949
1015
  //#region src/contacts/interfaces/contact.d.ts
950
1016
  interface Contact {
951
1017
  created_at: string;
@@ -1529,6 +1595,18 @@ declare class ContactProperties {
1529
1595
  remove(id: string): Promise<RemoveContactPropertyResponse>;
1530
1596
  }
1531
1597
  //#endregion
1598
+ //#region src/contacts/imports/contact-imports.d.ts
1599
+ declare class ContactImports {
1600
+ private readonly resend;
1601
+ constructor(resend: Resend);
1602
+ create(payload: CreateContactImportOptions, options?: CreateContactImportRequestOptions): Promise<CreateContactImportResponse>;
1603
+ list(options?: ListContactImportsOptions): Promise<ListContactImportsResponse>;
1604
+ get(id: string): Promise<GetContactImportResponse>;
1605
+ private buildCreateFormData;
1606
+ private buildColumnMap;
1607
+ private appendField;
1608
+ }
1609
+ //#endregion
1532
1610
  //#region src/contacts/segments/contact-segments.d.ts
1533
1611
  declare class ContactSegments {
1534
1612
  private readonly resend;
@@ -1549,6 +1627,7 @@ declare class ContactTopics {
1549
1627
  //#region src/contacts/contacts.d.ts
1550
1628
  declare class Contacts {
1551
1629
  private readonly resend;
1630
+ readonly imports: ContactImports;
1552
1631
  readonly topics: ContactTopics;
1553
1632
  readonly segments: ContactSegments;
1554
1633
  constructor(resend: Resend);
@@ -2149,4 +2228,4 @@ declare class Resend {
2149
2228
  delete<T>(path: string, query?: unknown, options?: DeleteOptions): Promise<Response<T>>;
2150
2229
  }
2151
2230
  //#endregion
2152
- export { AddContactSegmentOptions, AddContactSegmentResponse, AddContactSegmentResponseSuccess, AddToSegmentStepConfig, ApiContactProperty, ApiKey, Attachment, AttachmentData, Automation, AutomationConnection, AutomationConnectionType, AutomationResponseConnection, AutomationResponseStep, AutomationRun, AutomationRunItem, AutomationRunStatus, AutomationRunStep, AutomationRunStepStatus, AutomationStatus, AutomationStep, AutomationStepType, Broadcast, CancelEmailResponse, CancelEmailResponseSuccess, ConditionRule, ConditionStepConfig, Contact, ContactCreatedEvent, ContactDeleteStepConfig, ContactDeletedEvent, ContactProperty, ContactSegmentsBaseOptions, ContactTopic, ContactUpdateStepConfig, ContactUpdatedEvent, CreateApiKeyOptions, CreateApiKeyRequestOptions, CreateApiKeyResponse, CreateApiKeyResponseSuccess, CreateAutomationOptions, CreateAutomationResponse, CreateAutomationResponseSuccess, CreateBatchEmailOptions, CreateBatchOptions, CreateBatchRequestOptions, CreateBatchResponse, CreateBatchSuccessResponse, CreateBroadcastOptions, CreateBroadcastRequestOptions, CreateBroadcastResponse, CreateBroadcastResponseSuccess, CreateContactOptions, CreateContactPropertyApiOptions, CreateContactPropertyOptions, CreateContactPropertyResponse, CreateContactPropertyResponseSuccess, CreateContactRequestOptions, CreateContactResponse, CreateContactResponseSuccess, CreateDomainOptions, CreateDomainRequestOptions, CreateDomainResponse, CreateDomainResponseSuccess, CreateEmailOptions, CreateEmailRequestOptions, CreateEmailResponse, CreateEmailResponseSuccess, CreateEventOptions, CreateEventResponse, CreateEventResponseSuccess, CreateSegmentOptions, CreateSegmentRequestOptions, CreateSegmentResponse, CreateSegmentResponseSuccess, CreateTemplateOptions, CreateTemplateRequestOptions, CreateTemplateResponse, CreateTemplateResponseSuccess, CreateTopicOptions, CreateTopicResponse, CreateTopicResponseSuccess, CreateWebhookOptions, CreateWebhookRequestOptions, CreateWebhookResponse, CreateWebhookResponseSuccess, DelayStepConfig, DeleteOptions, Domain, DomainApiOptions, DomainCapabilities, DomainCapabilityStatus, DomainCreatedEvent, DomainDeletedEvent, DomainDkimRecord, DomainNameservers, DomainRecordStatus, DomainRecords, DomainRegion, DomainSpfRecord, DomainStatus, DomainUpdatedEvent, DuplicateTemplateResponse, DuplicateTemplateResponseSuccess, EmailApiAttachment, EmailApiOptions, EmailBouncedEvent, EmailClickedEvent, EmailComplainedEvent, EmailDeliveredEvent, EmailDeliveryDelayedEvent, EmailFailedEvent, EmailOpenedEvent, EmailReceivedEvent, EmailScheduledEvent, EmailSentEvent, EmailSuppressedEvent, type ErrorResponse, Event, EventSchemaMap, EventSchemaType, ForwardReceivingEmailOptions, ForwardReceivingEmailResponse, ForwardReceivingEmailResponseSuccess, GetAttachmentOptions, GetAttachmentResponse, GetAttachmentResponseSuccess, GetAutomationResponse, GetAutomationResponseSuccess, GetAutomationRunOptions, GetAutomationRunResponse, GetAutomationRunResponseSuccess, GetBroadcastResponse, GetBroadcastResponseSuccess, GetContactOptions, GetContactPropertyResponse, GetContactPropertyResponseSuccess, GetContactResponse, GetContactResponseSuccess, GetDomainResponse, GetDomainResponseSuccess, GetEmailResponse, GetEmailResponseSuccess, GetEventResponse, GetEventResponseSuccess, GetLogResponse, GetLogResponseSuccess, GetOptions, GetReceivingEmailResponse, GetReceivingEmailResponseSuccess, GetSegmentResponse, GetSegmentResponseSuccess, GetTemplateResponse, GetTemplateResponseSuccess, GetTopicOptions, GetTopicResponse, GetTopicResponseSuccess, GetWebhookResponse, GetWebhookResponseSuccess, IdempotentRequest, InboundAttachment, LegacyCreateContactOptions, ListApiKeysOptions, ListApiKeysResponse, ListApiKeysResponseSuccess, ListAttachmentsOptions, ListAttachmentsResponse, ListAttachmentsResponseSuccess, ListAutomationRunsOptions, ListAutomationRunsResponse, ListAutomationRunsResponseSuccess, ListAutomationsOptions, ListAutomationsResponse, ListAutomationsResponseSuccess, ListBroadcastsOptions, ListBroadcastsResponse, ListBroadcastsResponseSuccess, ListContactPropertiesOptions, ListContactPropertiesResponse, ListContactPropertiesResponseSuccess, ListContactSegmentsOptions, ListContactSegmentsResponse, ListContactSegmentsResponseSuccess, ListContactTopicsOptions, ListContactTopicsRequestOptions, ListContactTopicsResponse, ListContactTopicsResponseSuccess, ListContactsOptions, ListContactsResponse, ListContactsResponseSuccess, ListDomainsOptions, ListDomainsResponse, ListDomainsResponseSuccess, ListEmail, ListEmailsOptions, ListEmailsResponse, ListEmailsResponseSuccess, ListEventsOptions, ListEventsResponse, ListEventsResponseSuccess, ListLogsOptions, ListLogsResponse, ListLogsResponseSuccess, ListReceivingEmail, ListReceivingEmailsOptions, ListReceivingEmailsResponse, ListReceivingEmailsResponseSuccess, ListSegmentsOptions, ListSegmentsResponse, ListSegmentsResponseSuccess, ListTemplatesOptions, ListTemplatesResponse, ListTemplatesResponseSuccess, ListTopicsResponse, ListTopicsResponseSuccess, ListWebhooksOptions, ListWebhooksResponse, ListWebhooksResponseSuccess, Log, PaginatedData, PaginationOptions, PatchOptions, PostOptions, PublishTemplateResponse, PublishTemplateResponseSuccess, PutOptions, ReceivingRecord, RemoveApiKeyResponse, RemoveApiKeyResponseSuccess, RemoveAutomationResponse, RemoveAutomationResponseSuccess, RemoveBroadcastResponse, RemoveBroadcastResponseSuccess, RemoveContactOptions, RemoveContactPropertyResponse, RemoveContactPropertyResponseSuccess, RemoveContactSegmentOptions, RemoveContactSegmentResponse, RemoveContactSegmentResponseSuccess, RemoveContactsResponse, RemoveContactsResponseSuccess, RemoveDomainsResponse, RemoveDomainsResponseSuccess, RemoveEventResponse, RemoveEventResponseSuccess, RemoveSegmentResponse, RemoveSegmentResponseSuccess, RemoveTemplateResponse, RemoveTemplateResponseSuccess, RemoveTopicResponse, RemoveTopicResponseSuccess, RemoveWebhookResponse, RemoveWebhookResponseSuccess, RequireAtLeastOne, Resend, type ResendOptions, type Response, Segment, SelectingField, SendBroadcastOptions, SendBroadcastRequestOptions, SendBroadcastResponse, SendBroadcastResponseSuccess, SendEmailStepConfig, SendEventOptions, SendEventResponse, SendEventResponseSuccess, StopAutomationResponse, StopAutomationResponseSuccess, Tag, Template, TemplateVariable, TemplateVariableValue, Topic, TrackingCaaRecord, TrackingRecord, TriggerStepConfig, UpdateAutomationOptions, UpdateAutomationResponse, UpdateAutomationResponseSuccess, UpdateBroadcastOptions, UpdateBroadcastResponse, UpdateBroadcastResponseSuccess, UpdateContactOptions, UpdateContactPropertyApiOptions, UpdateContactPropertyOptions, UpdateContactPropertyResponse, UpdateContactPropertyResponseSuccess, UpdateContactResponse, UpdateContactResponseSuccess, UpdateContactTopicsOptions, UpdateContactTopicsRequestOptions, UpdateContactTopicsResponse, UpdateContactTopicsResponseSuccess, UpdateDomainsOptions, UpdateDomainsResponse, UpdateDomainsResponseSuccess, UpdateEmailOptions, UpdateEmailResponse, UpdateEmailResponseSuccess, UpdateEventOptions, UpdateEventResponse, UpdateEventResponseSuccess, UpdateTemplateOptions, UpdateTemplateResponse, UpdateTemplateResponseSuccess, UpdateTopicOptions, UpdateTopicResponse, UpdateTopicResponseSuccess, UpdateWebhookOptions, UpdateWebhookResponse, UpdateWebhookResponseSuccess, VerifyDomainsResponse, VerifyDomainsResponseSuccess, WaitForEventStepConfig, Webhook, WebhookEvent, WebhookEventPayload };
2231
+ export { AddContactSegmentOptions, AddContactSegmentResponse, AddContactSegmentResponseSuccess, AddToSegmentStepConfig, ApiContactProperty, ApiKey, Attachment, AttachmentData, Automation, AutomationConnection, AutomationConnectionType, AutomationResponseConnection, AutomationResponseStep, AutomationRun, AutomationRunItem, AutomationRunStatus, AutomationRunStep, AutomationRunStepStatus, AutomationStatus, AutomationStep, AutomationStepType, Broadcast, CancelEmailResponse, CancelEmailResponseSuccess, ConditionRule, ConditionStepConfig, Contact, ContactCreatedEvent, ContactDeleteStepConfig, ContactDeletedEvent, ContactImport, ContactImportColumnMap, ContactImportCounts, ContactImportOnConflict, ContactImportOnError, ContactImportPropertyMapping, ContactImportPropertyType, ContactImportSegment, ContactImportStatus, ContactImportTopic, ContactProperty, ContactSegmentsBaseOptions, ContactTopic, ContactUpdateStepConfig, ContactUpdatedEvent, CreateApiKeyOptions, CreateApiKeyRequestOptions, CreateApiKeyResponse, CreateApiKeyResponseSuccess, CreateAutomationOptions, CreateAutomationResponse, CreateAutomationResponseSuccess, CreateBatchEmailOptions, CreateBatchOptions, CreateBatchRequestOptions, CreateBatchResponse, CreateBatchSuccessResponse, CreateBroadcastOptions, CreateBroadcastRequestOptions, CreateBroadcastResponse, CreateBroadcastResponseSuccess, CreateContactImportOptions, CreateContactImportRequestOptions, CreateContactImportResponse, CreateContactImportResponseSuccess, CreateContactOptions, CreateContactPropertyApiOptions, CreateContactPropertyOptions, CreateContactPropertyResponse, CreateContactPropertyResponseSuccess, CreateContactRequestOptions, CreateContactResponse, CreateContactResponseSuccess, CreateDomainOptions, CreateDomainRequestOptions, CreateDomainResponse, CreateDomainResponseSuccess, CreateEmailOptions, CreateEmailRequestOptions, CreateEmailResponse, CreateEmailResponseSuccess, CreateEventOptions, CreateEventResponse, CreateEventResponseSuccess, CreateSegmentOptions, CreateSegmentRequestOptions, CreateSegmentResponse, CreateSegmentResponseSuccess, CreateTemplateOptions, CreateTemplateRequestOptions, CreateTemplateResponse, CreateTemplateResponseSuccess, CreateTopicOptions, CreateTopicResponse, CreateTopicResponseSuccess, CreateWebhookOptions, CreateWebhookRequestOptions, CreateWebhookResponse, CreateWebhookResponseSuccess, DelayStepConfig, DeleteOptions, Domain, DomainApiOptions, DomainCapabilities, DomainCapabilityStatus, DomainCreatedEvent, DomainDeletedEvent, DomainDkimRecord, DomainNameservers, DomainRecordStatus, DomainRecords, DomainRegion, DomainSpfRecord, DomainStatus, DomainUpdatedEvent, DuplicateTemplateResponse, DuplicateTemplateResponseSuccess, EmailApiAttachment, EmailApiOptions, EmailBouncedEvent, EmailClickedEvent, EmailComplainedEvent, EmailDeliveredEvent, EmailDeliveryDelayedEvent, EmailFailedEvent, EmailOpenedEvent, EmailReceivedEvent, EmailScheduledEvent, EmailSentEvent, EmailSuppressedEvent, type ErrorResponse, Event, EventSchemaMap, EventSchemaType, ForwardReceivingEmailOptions, ForwardReceivingEmailResponse, ForwardReceivingEmailResponseSuccess, GetAttachmentOptions, GetAttachmentResponse, GetAttachmentResponseSuccess, GetAutomationResponse, GetAutomationResponseSuccess, GetAutomationRunOptions, GetAutomationRunResponse, GetAutomationRunResponseSuccess, GetBroadcastResponse, GetBroadcastResponseSuccess, GetContactImportResponse, GetContactImportResponseSuccess, GetContactOptions, GetContactPropertyResponse, GetContactPropertyResponseSuccess, GetContactResponse, GetContactResponseSuccess, GetDomainResponse, GetDomainResponseSuccess, GetEmailResponse, GetEmailResponseSuccess, GetEventResponse, GetEventResponseSuccess, GetLogResponse, GetLogResponseSuccess, GetOptions, GetReceivingEmailResponse, GetReceivingEmailResponseSuccess, GetSegmentResponse, GetSegmentResponseSuccess, GetTemplateResponse, GetTemplateResponseSuccess, GetTopicOptions, GetTopicResponse, GetTopicResponseSuccess, GetWebhookResponse, GetWebhookResponseSuccess, IdempotentRequest, InboundAttachment, LegacyCreateContactOptions, ListApiKeysOptions, ListApiKeysResponse, ListApiKeysResponseSuccess, ListAttachmentsOptions, ListAttachmentsResponse, ListAttachmentsResponseSuccess, ListAutomationRunsOptions, ListAutomationRunsResponse, ListAutomationRunsResponseSuccess, ListAutomationsOptions, ListAutomationsResponse, ListAutomationsResponseSuccess, ListBroadcastsOptions, ListBroadcastsResponse, ListBroadcastsResponseSuccess, ListContactImportsOptions, ListContactImportsResponse, ListContactImportsResponseSuccess, ListContactPropertiesOptions, ListContactPropertiesResponse, ListContactPropertiesResponseSuccess, ListContactSegmentsOptions, ListContactSegmentsResponse, ListContactSegmentsResponseSuccess, ListContactTopicsOptions, ListContactTopicsRequestOptions, ListContactTopicsResponse, ListContactTopicsResponseSuccess, ListContactsOptions, ListContactsResponse, ListContactsResponseSuccess, ListDomainsOptions, ListDomainsResponse, ListDomainsResponseSuccess, ListEmail, ListEmailsOptions, ListEmailsResponse, ListEmailsResponseSuccess, ListEventsOptions, ListEventsResponse, ListEventsResponseSuccess, ListLogsOptions, ListLogsResponse, ListLogsResponseSuccess, ListReceivingEmail, ListReceivingEmailsOptions, ListReceivingEmailsResponse, ListReceivingEmailsResponseSuccess, ListSegmentsOptions, ListSegmentsResponse, ListSegmentsResponseSuccess, ListTemplatesOptions, ListTemplatesResponse, ListTemplatesResponseSuccess, ListTopicsResponse, ListTopicsResponseSuccess, ListWebhooksOptions, ListWebhooksResponse, ListWebhooksResponseSuccess, Log, PaginatedData, PaginationOptions, PatchOptions, PostOptions, PublishTemplateResponse, PublishTemplateResponseSuccess, PutOptions, ReceivingRecord, RemoveApiKeyResponse, RemoveApiKeyResponseSuccess, RemoveAutomationResponse, RemoveAutomationResponseSuccess, RemoveBroadcastResponse, RemoveBroadcastResponseSuccess, RemoveContactOptions, RemoveContactPropertyResponse, RemoveContactPropertyResponseSuccess, RemoveContactSegmentOptions, RemoveContactSegmentResponse, RemoveContactSegmentResponseSuccess, RemoveContactsResponse, RemoveContactsResponseSuccess, RemoveDomainsResponse, RemoveDomainsResponseSuccess, RemoveEventResponse, RemoveEventResponseSuccess, RemoveSegmentResponse, RemoveSegmentResponseSuccess, RemoveTemplateResponse, RemoveTemplateResponseSuccess, RemoveTopicResponse, RemoveTopicResponseSuccess, RemoveWebhookResponse, RemoveWebhookResponseSuccess, RequireAtLeastOne, Resend, type ResendOptions, type Response, Segment, SelectingField, SendBroadcastOptions, SendBroadcastRequestOptions, SendBroadcastResponse, SendBroadcastResponseSuccess, SendEmailStepConfig, SendEventOptions, SendEventResponse, SendEventResponseSuccess, StopAutomationResponse, StopAutomationResponseSuccess, Tag, Template, TemplateVariable, TemplateVariableValue, Topic, TrackingCaaRecord, TrackingRecord, TriggerStepConfig, UpdateAutomationOptions, UpdateAutomationResponse, UpdateAutomationResponseSuccess, UpdateBroadcastOptions, UpdateBroadcastResponse, UpdateBroadcastResponseSuccess, UpdateContactOptions, UpdateContactPropertyApiOptions, UpdateContactPropertyOptions, UpdateContactPropertyResponse, UpdateContactPropertyResponseSuccess, UpdateContactResponse, UpdateContactResponseSuccess, UpdateContactTopicsOptions, UpdateContactTopicsRequestOptions, UpdateContactTopicsResponse, UpdateContactTopicsResponseSuccess, UpdateDomainsOptions, UpdateDomainsResponse, UpdateDomainsResponseSuccess, UpdateEmailOptions, UpdateEmailResponse, UpdateEmailResponseSuccess, UpdateEventOptions, UpdateEventResponse, UpdateEventResponseSuccess, UpdateTemplateOptions, UpdateTemplateResponse, UpdateTemplateResponseSuccess, UpdateTopicOptions, UpdateTopicResponse, UpdateTopicResponseSuccess, UpdateWebhookOptions, UpdateWebhookResponse, UpdateWebhookResponseSuccess, VerifyDomainsResponse, VerifyDomainsResponseSuccess, WaitForEventStepConfig, Webhook, WebhookEvent, WebhookEventPayload };
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import PostalMime from "postal-mime";
2
2
  import { Webhook } from "standardwebhooks";
3
3
  //#region package.json
4
- var version = "6.12.4";
4
+ var version = "6.13.0-canary.0";
5
5
  //#endregion
6
6
  //#region src/common/utils/build-pagination-query.ts
7
7
  /**
@@ -387,6 +387,51 @@ var ContactProperties = class {
387
387
  }
388
388
  };
389
389
  //#endregion
390
+ //#region src/contacts/imports/contact-imports.ts
391
+ var ContactImports = class {
392
+ constructor(resend) {
393
+ this.resend = resend;
394
+ }
395
+ async create(payload, options = {}) {
396
+ const formData = this.buildCreateFormData(payload);
397
+ return this.resend.post("/contacts/imports", formData, options);
398
+ }
399
+ async list(options = {}) {
400
+ const searchParams = new URLSearchParams(buildPaginationQuery(options));
401
+ if (options.status !== void 0) searchParams.set("status", options.status);
402
+ const queryString = searchParams.toString();
403
+ const url = queryString ? `/contacts/imports?${queryString}` : "/contacts/imports";
404
+ return this.resend.get(url);
405
+ }
406
+ async get(id) {
407
+ return this.resend.get(`/contacts/imports/${id}`);
408
+ }
409
+ buildCreateFormData(payload) {
410
+ const formData = new FormData();
411
+ formData.append("file", payload.file);
412
+ this.appendField(formData, "column_map", this.buildColumnMap(payload.columnMap ?? null));
413
+ this.appendField(formData, "on_conflict", payload.onConflict ?? null);
414
+ this.appendField(formData, "on_error", payload.onError ?? null);
415
+ this.appendField(formData, "segments", payload.segments ?? null);
416
+ this.appendField(formData, "topics", payload.topics ?? null);
417
+ return formData;
418
+ }
419
+ buildColumnMap(columnMap) {
420
+ if (columnMap === null) return null;
421
+ return {
422
+ email: columnMap.email,
423
+ first_name: columnMap.firstName,
424
+ last_name: columnMap.lastName,
425
+ unsubscribed: columnMap.unsubscribed,
426
+ properties: columnMap.properties
427
+ };
428
+ }
429
+ appendField(formData, name, value) {
430
+ if (value === null) return;
431
+ formData.append(name, typeof value === "string" ? value : JSON.stringify(value));
432
+ }
433
+ };
434
+ //#endregion
390
435
  //#region src/contacts/segments/contact-segments.ts
391
436
  var ContactSegments = class {
392
437
  constructor(resend) {
@@ -474,6 +519,7 @@ var ContactTopics = class {
474
519
  var Contacts = class {
475
520
  constructor(resend) {
476
521
  this.resend = resend;
522
+ this.imports = new ContactImports(this.resend);
477
523
  this.topics = new ContactTopics(this.resend);
478
524
  this.segments = new ContactSegments(this.resend);
479
525
  }
@@ -1126,11 +1172,13 @@ var Resend = class {
1126
1172
  }
1127
1173
  async post(path, entity, options = {}) {
1128
1174
  const headers = new Headers(this.headers);
1175
+ const isFormData = typeof FormData !== "undefined" && entity instanceof FormData;
1176
+ if (isFormData) headers.delete("Content-Type");
1129
1177
  if (options.headers) for (const [key, value] of new Headers(options.headers).entries()) headers.set(key, value);
1130
1178
  if (options.idempotencyKey) headers.set("Idempotency-Key", options.idempotencyKey);
1131
1179
  const requestOptions = {
1132
1180
  method: "POST",
1133
- body: JSON.stringify(entity),
1181
+ body: isFormData ? entity : JSON.stringify(entity),
1134
1182
  ...options,
1135
1183
  headers
1136
1184
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "resend",
3
- "version": "6.12.4",
3
+ "version": "6.13.0-canary.0",
4
4
  "description": "Node.js library for the Resend API",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
@@ -14,7 +14,7 @@
14
14
  "devEngines": {
15
15
  "runtime": {
16
16
  "name": "node",
17
- "version": ">=22.0.0"
17
+ "version": ">=22.12.0"
18
18
  }
19
19
  },
20
20
  "exports": {
@@ -83,5 +83,5 @@
83
83
  "vitest": "4.1.4",
84
84
  "vitest-fetch-mock": "0.4.5"
85
85
  },
86
- "packageManager": "pnpm@10.33.2"
86
+ "packageManager": "pnpm@11.3.0"
87
87
  }