groundmail 0.14.4 → 0.14.6

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/authjs.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { G as Groundmail } from './client-Co5GSmIp.js';
1
+ import { G as Groundmail } from './client-CWIVF1eb.js';
2
2
 
3
3
  /** Subset of Auth.js theme used for the default magic-link email. */
4
4
  type AuthjsTheme = {
package/dist/authjs.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_API_BASE_URL,
3
3
  Groundmail
4
- } from "./chunk-2ZKYDDVV.js";
4
+ } from "./chunk-LKMNSXA3.js";
5
5
 
6
6
  // src/authjs.ts
7
7
  function escapeHtml(value) {
@@ -1,4 +1,4 @@
1
- import { S as SendEmailResult, G as Groundmail } from './client-Co5GSmIp.js';
1
+ import { S as SendEmailResult, G as Groundmail } from './client-CWIVF1eb.js';
2
2
 
3
3
  type BetterAuthEmailUser = {
4
4
  email: string;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_API_BASE_URL,
3
3
  Groundmail
4
- } from "./chunk-2ZKYDDVV.js";
4
+ } from "./chunk-LKMNSXA3.js";
5
5
 
6
6
  // src/better-auth.ts
7
7
  function linkHtml(label, url) {
@@ -738,6 +738,57 @@ async function applyDnsRecords(input) {
738
738
  };
739
739
  }
740
740
 
741
+ // src/migrations.ts
742
+ function mergeMigrations(previous, next) {
743
+ if (!previous || previous.id !== next.id) return next;
744
+ const merged = {
745
+ ...next,
746
+ errors: [...previous.errors, ...next.errors],
747
+ notes: [.../* @__PURE__ */ new Set([...previous.notes, ...next.notes])]
748
+ };
749
+ if (next.domains) merged.domains = { totals: next.domains.totals, items: [...previous.domains?.items ?? [], ...next.domains.items] };
750
+ if (next.webhooks) merged.webhooks = { totals: next.webhooks.totals, items: [...previous.webhooks?.items ?? [], ...next.webhooks.items] };
751
+ if (next.templates) merged.templates = { totals: next.templates.totals, items: [...previous.templates?.items ?? [], ...next.templates.items] };
752
+ if (next.suppressions) {
753
+ const reasons = { ...previous.suppressions?.skipped_reasons ?? {} };
754
+ for (const [reason, count] of Object.entries(next.suppressions.skipped_reasons)) {
755
+ reasons[reason] = (reasons[reason] ?? 0) + count;
756
+ }
757
+ merged.suppressions = {
758
+ totals: next.suppressions.totals,
759
+ skipped_reasons: reasons,
760
+ estimated: Boolean(previous.suppressions?.estimated) || next.suppressions.estimated
761
+ };
762
+ }
763
+ return merged;
764
+ }
765
+ var MigrationsResource = class {
766
+ constructor(client) {
767
+ this.client = client;
768
+ }
769
+ /** One request (about 40 seconds of work). Continue with `cursor` while `has_more`. */
770
+ async create(params) {
771
+ return this.client.request("/migrations", {
772
+ method: "POST",
773
+ body: JSON.stringify(params)
774
+ });
775
+ }
776
+ /** The whole import: follows `next_cursor` until done and returns the combined report. */
777
+ async run(params, options = {}) {
778
+ const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
779
+ let merged = null;
780
+ let cursor = params.cursor;
781
+ for (; ; ) {
782
+ const { migration } = await this.create({ ...params, ...cursor ? { cursor } : {} });
783
+ merged = mergeMigrations(merged, migration);
784
+ options.onProgress?.(merged);
785
+ if (!merged.has_more || !merged.next_cursor || options.signal?.aborted) return merged;
786
+ if (merged.retry_after_seconds) await sleep(merged.retry_after_seconds * 1e3);
787
+ cursor = merged.next_cursor;
788
+ }
789
+ }
790
+ };
791
+
741
792
  // src/webhooks/verify.ts
742
793
  import { createHmac, timingSafeEqual } from "crypto";
743
794
  function signWebhookPayload(secret, payload, timestamp) {
@@ -1361,6 +1412,7 @@ var Groundmail = class {
1361
1412
  this.smtpCredentials = new SmtpCredentialsResource(this);
1362
1413
  this.suppressions = new SuppressionsResource(this);
1363
1414
  this.templates = new TemplatesResource(this);
1415
+ this.migrations = new MigrationsResource(this);
1364
1416
  }
1365
1417
  get baseUrl() {
1366
1418
  return (this.options.baseUrl || DEFAULT_API_BASE_URL).replace(/\/$/, "");
@@ -1389,6 +1441,7 @@ export {
1389
1441
  GroundmailError,
1390
1442
  mergeSpfInclude,
1391
1443
  applyDnsRecords,
1444
+ mergeMigrations,
1392
1445
  signWebhookPayload,
1393
1446
  buildSignatureHeader,
1394
1447
  verifyWebhookSignature,
package/dist/clerk.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { G as Groundmail, S as SendEmailResult } from './client-Co5GSmIp.js';
1
+ import { G as Groundmail, S as SendEmailResult } from './client-CWIVF1eb.js';
2
2
 
3
3
  /**
4
4
  * Subset of Clerk `email.created` webhook `data` used for delivery.
package/dist/clerk.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_API_BASE_URL,
3
3
  Groundmail
4
- } from "./chunk-2ZKYDDVV.js";
4
+ } from "./chunk-LKMNSXA3.js";
5
5
 
6
6
  // src/clerk.ts
7
7
  function resolveApiKey(options) {
@@ -325,12 +325,25 @@ type TriggerEventResult = {
325
325
  matched_automations: number;
326
326
  resumed_runs: number;
327
327
  cancelled_runs: number;
328
+ /** Automations whose trigger matched but did not enrol this recipient again. */
329
+ skipped_enrollments?: number;
330
+ enrollment_skips?: EnrollmentSkip[];
331
+ };
332
+ type EnrollmentSkip = {
333
+ automation_id: string;
334
+ reason: 'once_per_contact' | 'cooldown';
335
+ prior_run_id: string;
336
+ prior_run_at: string;
328
337
  };
329
338
  type AutomationStatus = 'draft' | 'active' | 'paused';
330
339
  type AutomationTrigger = {
331
340
  type: 'event';
332
341
  event: string;
333
342
  cancel_on_events?: string[];
343
+ /** Enrol each recipient at most once, matched on the event's email or user_id. */
344
+ once_per_contact?: boolean;
345
+ /** Do not enrol the same recipient again within this many days. */
346
+ cooldown_days?: number;
334
347
  };
335
348
  type AutomationStep = {
336
349
  type: 'delay' | 'send_email' | 'send_sms' | 'condition' | 'wait_for_event';
@@ -371,6 +384,11 @@ type UpdateAutomationParams = {
371
384
  trigger?: AutomationTrigger;
372
385
  steps?: AutomationStep[];
373
386
  };
387
+ type AutomationResult = {
388
+ automation: Automation;
389
+ /** Steps that saved but should not ship as written, e.g. a product email with no unsubscribe link. */
390
+ warnings?: string[];
391
+ };
374
392
  type ListAutomationsResult = {
375
393
  automations: Automation[];
376
394
  };
@@ -751,6 +769,116 @@ type ApiErrorBody = {
751
769
  } & Omit<ApiErrorFields, 'message'> & {
752
770
  message?: string;
753
771
  };
772
+ /** Providers the importer reads from (Beta). */
773
+ type MigrationProvider = 'sendgrid' | 'postmark' | 'mailgun';
774
+ type MigrationResource = 'domains' | 'webhooks' | 'templates' | 'suppressions';
775
+ type MigrationItemStatus = 'imported' | 'would_import' | 'needs_attention' | 'skipped' | 'failed';
776
+ type CreateMigrationParams = {
777
+ provider: MigrationProvider;
778
+ /** SendGrid API key, Postmark server token or Mailgun private key. Used for the import only; never stored. */
779
+ api_key: string;
780
+ /** Postmark only: the account token, needed to import sending domains. */
781
+ account_api_key?: string;
782
+ /** SendGrid and Mailgun: `eu` for EU-region accounts. */
783
+ region?: 'us' | 'eu';
784
+ /** What to import; all four by default. */
785
+ resources?: MigrationResource[];
786
+ /** Preview without writing anything. */
787
+ dry_run?: boolean;
788
+ /** `next_cursor` from the previous response, to continue. */
789
+ cursor?: string;
790
+ };
791
+ type MigrationTotals = Record<string, number>;
792
+ type MigrationDomainItem = {
793
+ name: string;
794
+ status: MigrationItemStatus;
795
+ domain_id: string | null;
796
+ verified_at_source: boolean | null;
797
+ records: Array<{
798
+ type: string;
799
+ host: string;
800
+ value: string;
801
+ purpose: string;
802
+ }>;
803
+ dashboard_url: string | null;
804
+ message: string | null;
805
+ };
806
+ type MigrationWebhookItem = {
807
+ url: string;
808
+ status: MigrationItemStatus;
809
+ webhook_id: string | null;
810
+ /** Signing secret of a webhook created by this request (shown once). */
811
+ secret: string | null;
812
+ enabled: boolean;
813
+ source_events: string[];
814
+ events: string[];
815
+ unmapped_events: string[];
816
+ message: string | null;
817
+ };
818
+ type MigrationTemplateItem = {
819
+ source_id: string;
820
+ name: string;
821
+ status: MigrationItemStatus;
822
+ template_id: string | null;
823
+ alias: string | null;
824
+ published: boolean;
825
+ variables: string[];
826
+ notes: string[];
827
+ message: string | null;
828
+ };
829
+ type Migration = {
830
+ id: string;
831
+ provider: MigrationProvider;
832
+ dry_run: boolean;
833
+ status: 'in_progress' | 'completed' | 'partial' | 'failed';
834
+ started_at: string;
835
+ resources: MigrationResource[];
836
+ has_more: boolean;
837
+ next_cursor: string | null;
838
+ retry_after_seconds: number | null;
839
+ domains?: {
840
+ totals: MigrationTotals;
841
+ items: MigrationDomainItem[];
842
+ };
843
+ webhooks?: {
844
+ totals: MigrationTotals;
845
+ items: MigrationWebhookItem[];
846
+ };
847
+ templates?: {
848
+ totals: MigrationTotals;
849
+ items: MigrationTemplateItem[];
850
+ };
851
+ suppressions?: {
852
+ totals: MigrationTotals;
853
+ skipped_reasons: Record<string, number>;
854
+ estimated: boolean;
855
+ };
856
+ errors: Array<{
857
+ resource: MigrationResource;
858
+ code: string;
859
+ message: string;
860
+ }>;
861
+ notes: string[];
862
+ attention: string[];
863
+ template_map: Array<{
864
+ source_id: string;
865
+ alias: string;
866
+ }>;
867
+ code_changes: Array<{
868
+ stack: 'node' | 'python' | 'curl';
869
+ label: string;
870
+ diff: string;
871
+ }> | null;
872
+ agent_prompt: string | null;
873
+ };
874
+ type RunMigrationOptions = {
875
+ /** Called after each request with the report so far. */
876
+ onProgress?: (migration: Migration) => void;
877
+ /** Stop between requests; what was imported stays. */
878
+ signal?: AbortSignal;
879
+ /** Waits for `retry_after_seconds` (tests can pass a no-op). */
880
+ sleep?: (ms: number) => Promise<void>;
881
+ };
754
882
 
755
883
  declare class AutomationsResource {
756
884
  private readonly client;
@@ -759,12 +887,8 @@ declare class AutomationsResource {
759
887
  get(id: string): Promise<{
760
888
  automation: Automation;
761
889
  }>;
762
- create(params: CreateAutomationParams): Promise<{
763
- automation: Automation;
764
- }>;
765
- update(id: string, params: UpdateAutomationParams): Promise<{
766
- automation: Automation;
767
- }>;
890
+ create(params: CreateAutomationParams): Promise<AutomationResult>;
891
+ update(id: string, params: UpdateAutomationParams): Promise<AutomationResult>;
768
892
  remove(id: string): Promise<{
769
893
  ok: boolean;
770
894
  }>;
@@ -849,6 +973,23 @@ declare class KeysResource {
849
973
  }>;
850
974
  }
851
975
 
976
+ /** Combine the reports of one import's requests: every item, the latest totals. */
977
+ declare function mergeMigrations(previous: Migration | null, next: Migration): Migration;
978
+ /**
979
+ * Import templates, suppressions, domains and webhooks from SendGrid, Postmark
980
+ * or Mailgun (Beta). The provider key is sent with each request and never stored.
981
+ */
982
+ declare class MigrationsResource {
983
+ private readonly client;
984
+ constructor(client: Groundmail);
985
+ /** One request (about 40 seconds of work). Continue with `cursor` while `has_more`. */
986
+ create(params: CreateMigrationParams): Promise<{
987
+ migration: Migration;
988
+ }>;
989
+ /** The whole import: follows `next_cursor` until done and returns the combined report. */
990
+ run(params: CreateMigrationParams, options?: RunMigrationOptions): Promise<Migration>;
991
+ }
992
+
852
993
  declare class SmtpCredentialsResource {
853
994
  private readonly client;
854
995
  constructor(client: Groundmail);
@@ -965,10 +1106,12 @@ declare class Groundmail {
965
1106
  readonly smtpCredentials: SmtpCredentialsResource;
966
1107
  readonly suppressions: SuppressionsResource;
967
1108
  readonly templates: TemplatesResource;
1109
+ /** Import from SendGrid, Postmark or Mailgun (Beta). */
1110
+ readonly migrations: MigrationsResource;
968
1111
  constructor(apiKey: string, options?: GroundmailOptions);
969
1112
  get baseUrl(): string;
970
1113
  get fetchImpl(): typeof fetch;
971
1114
  request<T>(path: string, init: RequestInit): Promise<T>;
972
1115
  }
973
1116
 
974
- export { type ListApiKeysResult as $, type ApiErrorBody as A, type BatchSendEmailResult as B, type CategoryUnsubscribedErrorDetails as C, type DnsRecord as D, DEFAULT_API_BASE_URL as E, type DeliverabilityBucket as F, Groundmail as G, type DeliverabilityDomainInsight as H, type DeliverabilityInsightsResult as I, type DeliverabilityMailServerRelay as J, type DeliverabilityWindow as K, type DnsProviderName as L, type Domain as M, type DomainBimiAnalysis as N, type DomainDetailResult as O, type DomainDmarcAnalysis as P, type DomainDnsAnalysis as Q, type DomainStatus as R, type SendEmailResult as S, type DomainTlsMode as T, type DomainTrackingDns as U, type DomainTrackingStatus as V, type EmailListItem as W, type EmailWebhookEventType as X, type EventRecord as Y, type GroundmailOptions as Z, type ListApiKeysParams as _, type ApiErrorCode as a, type ListAutomationRunsParams as a0, type ListAutomationRunsResult as a1, type ListAutomationsResult as a2, type ListDomainsParams as a3, type ListDomainsResult as a4, type ListEmailsParams as a5, type ListEmailsResult as a6, type ListReceivedEmailsParams as a7, type ListReceivedEmailsResult as a8, type ListSuppressionsParams as a9, type UpdateTemplateParams as aA, type UpdateWebhookParams as aB, type VerifyDomainResult as aC, type WebhookEndpoint as aD, type WebhookEndpointWithSecret as aE, type WebhookEventType as aF, type ListSuppressionsResult as aa, type ListTemplatesParams as ab, type ListTemplatesResult as ac, type MailServerSigningStatus as ad, type ReceivedEmail as ae, type ReceivedEmailAttachment as af, type ReceivedEmailAttachmentMeta as ag, type RemoteApplyDnsCredentials as ah, type SendEmailParams as ai, type SuppressedErrorDetails as aj, type Suppression as ak, type Template as al, type TemplateFormat as am, type TemplateLintWarning as an, type TemplateStarter as ao, type TemplateStatus as ap, type TemplateVersion as aq, type TestEmailWebhookParams as ar, type TestEmailWebhookResult as as, type TriggerEventParams as at, type TriggerEventResult as au, type TwilioIntegrationResponse as av, type TwilioIntegrationStatus as aw, type UpdateAutomationParams as ax, type UpdateDomainParams as ay, type UpdateEmailParams as az, type ApiKey as b, type ApiKeyScope as c, type ApplyDnsParams as d, type ApplyDnsRecordResult as e, type ApplyDnsResult as f, type Asset as g, type Automation as h, type AutomationRun as i, type AutomationRunResponse as j, type AutomationRunStatus as k, type AutomationRunStep as l, type AutomationRunStepStatus as m, type AutomationStatus as n, type AutomationStep as o, type AutomationTrigger as p, type ConnectTwilioParams as q, type ContactWebhookEventPayload as r, type CreateApiKeyParams as s, type CreateApiKeyResult as t, type CreateAutomationParams as u, type CreateDomainParams as v, type CreateDomainResult as w, type CreateSuppressionParams as x, type CreateTemplateParams as y, type CreateWebhookParams as z };
1117
+ export { type EventRecord as $, type ApiErrorBody as A, type BatchSendEmailResult as B, type CategoryUnsubscribedErrorDetails as C, type DnsRecord as D, type CreateTemplateParams as E, type CreateWebhookParams as F, Groundmail as G, DEFAULT_API_BASE_URL as H, type DeliverabilityBucket as I, type DeliverabilityDomainInsight as J, type DeliverabilityInsightsResult as K, type DeliverabilityMailServerRelay as L, type DeliverabilityWindow as M, type DnsProviderName as N, type Domain as O, type DomainBimiAnalysis as P, type DomainDetailResult as Q, type DomainDmarcAnalysis as R, type SendEmailResult as S, type DomainDnsAnalysis as T, type DomainStatus as U, type DomainTlsMode as V, type DomainTrackingDns as W, type DomainTrackingStatus as X, type EmailListItem as Y, type EmailWebhookEventType as Z, type EnrollmentSkip as _, type ApiErrorCode as a, type GroundmailOptions as a0, type ListApiKeysParams as a1, type ListApiKeysResult as a2, type ListAutomationRunsParams as a3, type ListAutomationRunsResult as a4, type ListAutomationsResult as a5, type ListDomainsParams as a6, type ListDomainsResult as a7, type ListEmailsParams as a8, type ListEmailsResult as a9, type TemplateStarter as aA, type TemplateStatus as aB, type TemplateVersion as aC, type TestEmailWebhookParams as aD, type TestEmailWebhookResult as aE, type TriggerEventParams as aF, type TriggerEventResult as aG, type TwilioIntegrationResponse as aH, type TwilioIntegrationStatus as aI, type UpdateAutomationParams as aJ, type UpdateDomainParams as aK, type UpdateEmailParams as aL, type UpdateTemplateParams as aM, type UpdateWebhookParams as aN, type VerifyDomainResult as aO, type WebhookEndpoint as aP, type WebhookEndpointWithSecret as aQ, type WebhookEventType as aR, mergeMigrations as aS, type ListReceivedEmailsParams as aa, type ListReceivedEmailsResult as ab, type ListSuppressionsParams as ac, type ListSuppressionsResult as ad, type ListTemplatesParams as ae, type ListTemplatesResult as af, type MailServerSigningStatus as ag, type Migration as ah, type MigrationDomainItem as ai, type MigrationItemStatus as aj, type MigrationProvider as ak, type MigrationResource as al, type MigrationTemplateItem as am, type MigrationTotals as an, type MigrationWebhookItem as ao, type ReceivedEmail as ap, type ReceivedEmailAttachment as aq, type ReceivedEmailAttachmentMeta as ar, type RemoteApplyDnsCredentials as as, type RunMigrationOptions as at, type SendEmailParams as au, type SuppressedErrorDetails as av, type Suppression as aw, type Template as ax, type TemplateFormat as ay, type TemplateLintWarning as az, type ApiKey as b, type ApiKeyScope as c, type ApplyDnsParams as d, type ApplyDnsRecordResult as e, type ApplyDnsResult as f, type Asset as g, type Automation as h, type AutomationResult as i, type AutomationRun as j, type AutomationRunResponse as k, type AutomationRunStatus as l, type AutomationRunStep as m, type AutomationRunStepStatus as n, type AutomationStatus as o, type AutomationStep as p, type AutomationTrigger as q, type ConnectTwilioParams as r, type ContactWebhookEventPayload as s, type CreateApiKeyParams as t, type CreateApiKeyResult as u, type CreateAutomationParams as v, type CreateDomainParams as w, type CreateDomainResult as x, type CreateMigrationParams as y, type CreateSuppressionParams as z };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as ApiErrorBody, D as DnsRecord } from './client-Co5GSmIp.js';
2
- export { a as ApiErrorCode, b as ApiKey, c as ApiKeyScope, d as ApplyDnsParams, e as ApplyDnsRecordResult, f as ApplyDnsResult, g as Asset, h as Automation, i as AutomationRun, j as AutomationRunResponse, k as AutomationRunStatus, l as AutomationRunStep, m as AutomationRunStepStatus, n as AutomationStatus, o as AutomationStep, p as AutomationTrigger, B as BatchSendEmailResult, C as CategoryUnsubscribedErrorDetails, q as ConnectTwilioParams, r as ContactWebhookEventPayload, s as CreateApiKeyParams, t as CreateApiKeyResult, u as CreateAutomationParams, v as CreateDomainParams, w as CreateDomainResult, x as CreateSuppressionParams, y as CreateTemplateParams, z as CreateWebhookParams, E as DEFAULT_API_BASE_URL, F as DeliverabilityBucket, H as DeliverabilityDomainInsight, I as DeliverabilityInsightsResult, J as DeliverabilityMailServerRelay, K as DeliverabilityWindow, L as DnsProviderName, M as Domain, N as DomainBimiAnalysis, O as DomainDetailResult, P as DomainDmarcAnalysis, Q as DomainDnsAnalysis, R as DomainStatus, T as DomainTlsMode, U as DomainTrackingDns, V as DomainTrackingStatus, W as EmailListItem, X as EmailWebhookEventType, Y as EventRecord, G as Groundmail, Z as GroundmailOptions, _ as ListApiKeysParams, $ as ListApiKeysResult, a0 as ListAutomationRunsParams, a1 as ListAutomationRunsResult, a2 as ListAutomationsResult, a3 as ListDomainsParams, a4 as ListDomainsResult, a5 as ListEmailsParams, a6 as ListEmailsResult, a7 as ListReceivedEmailsParams, a8 as ListReceivedEmailsResult, a9 as ListSuppressionsParams, aa as ListSuppressionsResult, ab as ListTemplatesParams, ac as ListTemplatesResult, ad as MailServerSigningStatus, ae as ReceivedEmail, af as ReceivedEmailAttachment, ag as ReceivedEmailAttachmentMeta, ah as RemoteApplyDnsCredentials, ai as SendEmailParams, S as SendEmailResult, aj as SuppressedErrorDetails, ak as Suppression, al as Template, am as TemplateFormat, an as TemplateLintWarning, ao as TemplateStarter, ap as TemplateStatus, aq as TemplateVersion, ar as TestEmailWebhookParams, as as TestEmailWebhookResult, at as TriggerEventParams, au as TriggerEventResult, av as TwilioIntegrationResponse, aw as TwilioIntegrationStatus, ax as UpdateAutomationParams, ay as UpdateDomainParams, az as UpdateEmailParams, aA as UpdateTemplateParams, aB as UpdateWebhookParams, aC as VerifyDomainResult, aD as WebhookEndpoint, aE as WebhookEndpointWithSecret, aF as WebhookEventType } from './client-Co5GSmIp.js';
1
+ import { A as ApiErrorBody, D as DnsRecord } from './client-CWIVF1eb.js';
2
+ export { a as ApiErrorCode, b as ApiKey, c as ApiKeyScope, d as ApplyDnsParams, e as ApplyDnsRecordResult, f as ApplyDnsResult, g as Asset, h as Automation, i as AutomationResult, j as AutomationRun, k as AutomationRunResponse, l as AutomationRunStatus, m as AutomationRunStep, n as AutomationRunStepStatus, o as AutomationStatus, p as AutomationStep, q as AutomationTrigger, B as BatchSendEmailResult, C as CategoryUnsubscribedErrorDetails, r as ConnectTwilioParams, s as ContactWebhookEventPayload, t as CreateApiKeyParams, u as CreateApiKeyResult, v as CreateAutomationParams, w as CreateDomainParams, x as CreateDomainResult, y as CreateMigrationParams, z as CreateSuppressionParams, E as CreateTemplateParams, F as CreateWebhookParams, H as DEFAULT_API_BASE_URL, I as DeliverabilityBucket, J as DeliverabilityDomainInsight, K as DeliverabilityInsightsResult, L as DeliverabilityMailServerRelay, M as DeliverabilityWindow, N as DnsProviderName, O as Domain, P as DomainBimiAnalysis, Q as DomainDetailResult, R as DomainDmarcAnalysis, T as DomainDnsAnalysis, U as DomainStatus, V as DomainTlsMode, W as DomainTrackingDns, X as DomainTrackingStatus, Y as EmailListItem, Z as EmailWebhookEventType, _ as EnrollmentSkip, $ as EventRecord, G as Groundmail, a0 as GroundmailOptions, a1 as ListApiKeysParams, a2 as ListApiKeysResult, a3 as ListAutomationRunsParams, a4 as ListAutomationRunsResult, a5 as ListAutomationsResult, a6 as ListDomainsParams, a7 as ListDomainsResult, a8 as ListEmailsParams, a9 as ListEmailsResult, aa as ListReceivedEmailsParams, ab as ListReceivedEmailsResult, ac as ListSuppressionsParams, ad as ListSuppressionsResult, ae as ListTemplatesParams, af as ListTemplatesResult, ag as MailServerSigningStatus, ah as Migration, ai as MigrationDomainItem, aj as MigrationItemStatus, ak as MigrationProvider, al as MigrationResource, am as MigrationTemplateItem, an as MigrationTotals, ao as MigrationWebhookItem, ap as ReceivedEmail, aq as ReceivedEmailAttachment, ar as ReceivedEmailAttachmentMeta, as as RemoteApplyDnsCredentials, at as RunMigrationOptions, au as SendEmailParams, S as SendEmailResult, av as SuppressedErrorDetails, aw as Suppression, ax as Template, ay as TemplateFormat, az as TemplateLintWarning, aA as TemplateStarter, aB as TemplateStatus, aC as TemplateVersion, aD as TestEmailWebhookParams, aE as TestEmailWebhookResult, aF as TriggerEventParams, aG as TriggerEventResult, aH as TwilioIntegrationResponse, aI as TwilioIntegrationStatus, aJ as UpdateAutomationParams, aK as UpdateDomainParams, aL as UpdateEmailParams, aM as UpdateTemplateParams, aN as UpdateWebhookParams, aO as VerifyDomainResult, aP as WebhookEndpoint, aQ as WebhookEndpointWithSecret, aR as WebhookEventType, aS as mergeMigrations } from './client-CWIVF1eb.js';
3
3
 
4
4
  type GroundmailErrorOptions = {
5
5
  code?: string;
package/dist/index.js CHANGED
@@ -4,16 +4,18 @@ import {
4
4
  GroundmailError,
5
5
  applyDnsRecords,
6
6
  buildSignatureHeader,
7
+ mergeMigrations,
7
8
  mergeSpfInclude,
8
9
  signWebhookPayload,
9
10
  verifyWebhookSignature
10
- } from "./chunk-2ZKYDDVV.js";
11
+ } from "./chunk-LKMNSXA3.js";
11
12
  export {
12
13
  DEFAULT_API_BASE_URL,
13
14
  Groundmail,
14
15
  GroundmailError,
15
16
  applyDnsRecords,
16
17
  buildSignatureHeader,
18
+ mergeMigrations,
17
19
  mergeSpfInclude,
18
20
  signWebhookPayload,
19
21
  verifyWebhookSignature
package/dist/payload.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { G as Groundmail } from './client-Co5GSmIp.js';
1
+ import { G as Groundmail } from './client-CWIVF1eb.js';
2
2
 
3
3
  /**
4
4
  * Minimal Payload `SendEmailOptions` / address shapes used by this adapter.
package/dist/payload.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_API_BASE_URL,
3
3
  Groundmail
4
- } from "./chunk-2ZKYDDVV.js";
4
+ } from "./chunk-LKMNSXA3.js";
5
5
 
6
6
  // src/payload.ts
7
7
  function resolveApiKey(args) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "groundmail",
3
- "version": "0.14.4",
3
+ "version": "0.14.6",
4
4
  "description": "Groundmail transactional email API client",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -89,7 +89,7 @@
89
89
  "prepublishOnly": "npm run build && npm run build:nodemailer-bridge"
90
90
  },
91
91
  "dependencies": {
92
- "groundmail-nodemailer": "0.14.4"
92
+ "groundmail-nodemailer": "0.14.6"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@types/nodemailer": "^8.0.1",