groundmail 0.14.8 → 0.16.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/authjs.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { G as Groundmail } from './client-UTorFXe6.js';
1
+ import { G as Groundmail } from './client-DXYsWgOT.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-LKMNSXA3.js";
4
+ } from "./chunk-JYLRUBEJ.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-UTorFXe6.js';
1
+ import { S as SendEmailResult, G as Groundmail } from './client-DXYsWgOT.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-LKMNSXA3.js";
4
+ } from "./chunk-JYLRUBEJ.js";
5
5
 
6
6
  // src/better-auth.ts
7
7
  function linkHtml(label, url) {
@@ -773,6 +773,19 @@ var MigrationsResource = class {
773
773
  body: JSON.stringify(params)
774
774
  });
775
775
  }
776
+ /** Recent imports (newest first), with totals. */
777
+ async list(params = {}) {
778
+ const query = params.limit ? `?limit=${encodeURIComponent(String(params.limit))}` : "";
779
+ return this.client.request(`/migrations${query}`, { method: "GET" });
780
+ }
781
+ /** The stored report of one import, every request merged. Webhook secrets are not kept. */
782
+ async get(id) {
783
+ return this.client.request(`/migrations/${encodeURIComponent(id)}`, { method: "GET" });
784
+ }
785
+ /** The report as CSV text: one row per domain, webhook and template, plus counts, skips and next steps. */
786
+ async reportCsv(id) {
787
+ return this.client.requestText(`/migrations/${encodeURIComponent(id)}/report`);
788
+ }
776
789
  /** The whole import: follows `next_cursor` until done and returns the combined report. */
777
790
  async run(params, options = {}) {
778
791
  const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
@@ -1414,12 +1427,35 @@ var Groundmail = class {
1414
1427
  this.templates = new TemplatesResource(this);
1415
1428
  this.migrations = new MigrationsResource(this);
1416
1429
  }
1430
+ /**
1431
+ * Check one address with Groundmail validation before you accept it (for
1432
+ * example on a signup form): syntax, mail server, disposable and role
1433
+ * addresses, recent hard bounces, and a typo suggestion. Free; sends nothing.
1434
+ */
1435
+ async validate(email) {
1436
+ return this.request("/validate", {
1437
+ method: "POST",
1438
+ body: JSON.stringify({ email })
1439
+ });
1440
+ }
1417
1441
  get baseUrl() {
1418
1442
  return (this.options.baseUrl || DEFAULT_API_BASE_URL).replace(/\/$/, "");
1419
1443
  }
1420
1444
  get fetchImpl() {
1421
1445
  return this.options.fetch || fetch;
1422
1446
  }
1447
+ /** GET a text body (CSV downloads). Errors are JSON, like every other route. */
1448
+ async requestText(path) {
1449
+ const response = await this.fetchImpl(`${this.baseUrl}${path}`, {
1450
+ method: "GET",
1451
+ headers: { Authorization: `Bearer ${this.apiKey}` }
1452
+ });
1453
+ if (!response.ok) {
1454
+ const body = await response.json().catch(() => ({}));
1455
+ throw GroundmailError.fromResponse(response.status, body);
1456
+ }
1457
+ return response.text();
1458
+ }
1423
1459
  async request(path, init) {
1424
1460
  const response = await this.fetchImpl(`${this.baseUrl}${path}`, {
1425
1461
  ...init,
package/dist/clerk.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { G as Groundmail, S as SendEmailResult } from './client-UTorFXe6.js';
1
+ import { G as Groundmail, S as SendEmailResult } from './client-DXYsWgOT.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-LKMNSXA3.js";
4
+ } from "./chunk-JYLRUBEJ.js";
5
5
 
6
6
  // src/clerk.ts
7
7
  function resolveApiKey(options) {
@@ -1,4 +1,6 @@
1
- type ApiErrorCode = 'validation_error' | 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'plan_limit' | 'domain_limit' | 'idempotency_conflict' | 'rate_limited' | 'upstream_error' | 'not_configured' | 'internal_error';
1
+ type ApiErrorCode = 'validation_error' | 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'plan_limit'
2
+ /** 429: the send would go over a new account's daily ramp-up limit; see `details.resets_at`. */
3
+ | 'daily_ramp_limit' | 'domain_limit' | 'idempotency_conflict' | 'rate_limited' | 'upstream_error' | 'not_configured' | 'internal_error';
2
4
  type SendEmailParams = {
3
5
  from: string | {
4
6
  email: string;
@@ -58,15 +60,57 @@ type SendEmailParams = {
58
60
  */
59
61
  category?: 'transactional' | 'product';
60
62
  };
63
+ /**
64
+ * Why Groundmail validation held a recipient back before sending:
65
+ * - `invalid_address`: the address cannot exist (syntax).
66
+ * - `no_mail_server`: the domain does not exist or takes no email (no MX or A record, or a null MX).
67
+ * - `previously_bounced`: the address hard-bounced (mailbox does not exist) for a Groundmail
68
+ * sender in the last 90 days.
69
+ * - `mailbox_not_found`: Groundmail validation already knows the mailbox does not exist.
70
+ */
71
+ type HeldBackReason = 'invalid_address' | 'no_mail_server' | 'previously_bounced' | 'mailbox_not_found';
72
+ type HeldBackRecipient = {
73
+ email: string;
74
+ reason: HeldBackReason | (string & {});
75
+ };
61
76
  type SendEmailResult = {
62
77
  id: string;
63
78
  status: string;
79
+ /** Present when some recipients were held back and the email went to the rest. */
80
+ held_back?: HeldBackRecipient[];
81
+ };
82
+ /** `details` on `POST /emails` 422 when Groundmail validation held back every `to` recipient. */
83
+ type HeldBackErrorDetails = {
84
+ held_back: HeldBackRecipient[];
85
+ email_id: string;
86
+ };
87
+ type ValidationVerdict = 'valid' | 'risky' | 'invalid';
88
+ /**
89
+ * - invalid: `syntax`, `no_mail_server`, `mailbox_not_found`, `previously_bounced`
90
+ * - risky: `disposable`, `catch_all`, `possible_typo`
91
+ * - informational (does not change the verdict): `role`
92
+ */
93
+ type ValidationReason = 'syntax' | 'no_mail_server' | 'mailbox_not_found' | 'previously_bounced' | 'disposable' | 'catch_all' | 'possible_typo' | 'role';
94
+ /** `POST /validate` result. */
95
+ type ValidateEmailResult = {
96
+ /** The address as checked: trimmed and lowercased. */
97
+ email: string;
98
+ domain: string | null;
99
+ verdict: ValidationVerdict;
100
+ reasons: Array<ValidationReason | (string & {})>;
101
+ /** The address with a likely-mistyped domain corrected (`ada@gmial.com` → `ada@gmail.com`), or null. */
102
+ suggestion: string | null;
103
+ /** A throwaway-inbox service. It can receive mail; accepting it is your call. */
104
+ disposable: boolean;
105
+ /** Reaches a team or queue (`info@`, `support@`) rather than a person. */
106
+ role: boolean;
64
107
  };
65
108
  type BatchSendEmailResult = {
66
109
  data: Array<{
67
110
  index: number;
68
111
  id?: string;
69
112
  status?: string;
113
+ held_back?: HeldBackRecipient[];
70
114
  error?: {
71
115
  message: string;
72
116
  code?: string;
@@ -102,6 +146,8 @@ type EmailListItem = {
102
146
  bounce_reason: string | null;
103
147
  /** `hard` or `block` once the email has bounced; null otherwise. */
104
148
  bounce_type: BounceType | null;
149
+ /** Recipients Groundmail validation held back before sending, with why. Empty when none were. */
150
+ held_back: HeldBackRecipient[];
105
151
  tags: unknown;
106
152
  scheduled_at: string | null;
107
153
  cancelled_at: string | null;
@@ -308,6 +354,23 @@ type SuppressedErrorDetails = {
308
354
  suppressed: string[];
309
355
  email_id: string;
310
356
  };
357
+ /**
358
+ * `details` on a 429 `daily_ramp_limit`: the send would go over a new account's
359
+ * daily ramp-up limit for its stream. Send the rest after `resets_at`.
360
+ */
361
+ type DailyRampLimitErrorDetails = {
362
+ stream: 'transactional' | 'product';
363
+ /** Today's recipient limit for this stream. */
364
+ daily_limit: number;
365
+ /** Recipients already sent today on this stream. */
366
+ used_today: number;
367
+ /** Recipients (to + cc + bcc) in the refused send. */
368
+ recipients: number;
369
+ /** Ramp-up stage, 1-based; null with a fixed limit set by support. */
370
+ ramp_stage: number | null;
371
+ /** The next 00:00 UTC, ISO 8601. */
372
+ resets_at: string;
373
+ };
311
374
  /** Event types accepted by `POST /emails/test`. */
312
375
  type EmailWebhookEventType = 'email.received' | 'email.sent' | 'email.delivered' | 'email.delivery_delayed' | 'email.bounced' | 'email.complained' | 'email.opened' | 'email.clicked' | 'email.failed' | 'email.suppressed' | 'email.scheduled';
313
376
  type TestEmailWebhookParams = {
@@ -818,7 +881,31 @@ type CreateMigrationParams = {
818
881
  /** `next_cursor` from the previous response, to continue. */
819
882
  cursor?: string;
820
883
  };
884
+ /**
885
+ * Running totals. Suppressions also count by kind: `bounce`, `complaint`,
886
+ * `unsubscribe`, `manual`, and `product_opt_out` (opt-outs that were never
887
+ * global at the old provider; they stop product email only).
888
+ */
821
889
  type MigrationTotals = Record<string, number>;
890
+ /** One DNS change for a domain, compared with what it publishes today. */
891
+ type MigrationDnsChange = {
892
+ /** `add` a record, `update` an existing one to `value` (SPF), `keep` yours (DMARC), or `done`. */
893
+ action: 'add' | 'update' | 'keep' | 'done';
894
+ type: string;
895
+ host: string;
896
+ value: string;
897
+ purpose: string;
898
+ /** What the name holds today, when relevant. */
899
+ current: string | null;
900
+ note: string | null;
901
+ };
902
+ type MigrationDnsPlan = {
903
+ /** False when DNS could not be read; every record is then listed as `add`. */
904
+ checked: boolean;
905
+ changes: MigrationDnsChange[];
906
+ /** Which old-provider records to keep while switching, and when to remove them. */
907
+ keep_old_records: string;
908
+ };
822
909
  type MigrationDomainItem = {
823
910
  name: string;
824
911
  status: MigrationItemStatus;
@@ -830,6 +917,8 @@ type MigrationDomainItem = {
830
917
  value: string;
831
918
  purpose: string;
832
919
  }>;
920
+ /** Null in a preview, or when the import ran out of time to check. */
921
+ dns_plan: MigrationDnsPlan | null;
833
922
  dashboard_url: string | null;
834
923
  message: string | null;
835
924
  };
@@ -901,6 +990,16 @@ type Migration = {
901
990
  }> | null;
902
991
  agent_prompt: string | null;
903
992
  };
993
+ /** A stored import, as listed by `migrations.list()`. Previews are not stored. */
994
+ type MigrationSummary = {
995
+ id: string;
996
+ provider: MigrationProvider;
997
+ status: Migration['status'];
998
+ resources: MigrationResource[];
999
+ started_at: string;
1000
+ finished_at: string | null;
1001
+ totals: Partial<Record<MigrationResource, MigrationTotals>>;
1002
+ };
904
1003
  type RunMigrationOptions = {
905
1004
  /** Called after each request with the report so far. */
906
1005
  onProgress?: (migration: Migration) => void;
@@ -1016,6 +1115,18 @@ declare class MigrationsResource {
1016
1115
  create(params: CreateMigrationParams): Promise<{
1017
1116
  migration: Migration;
1018
1117
  }>;
1118
+ /** Recent imports (newest first), with totals. */
1119
+ list(params?: {
1120
+ limit?: number;
1121
+ }): Promise<{
1122
+ data: MigrationSummary[];
1123
+ }>;
1124
+ /** The stored report of one import, every request merged. Webhook secrets are not kept. */
1125
+ get(id: string): Promise<{
1126
+ migration: Migration;
1127
+ }>;
1128
+ /** The report as CSV text: one row per domain, webhook and template, plus counts, skips and next steps. */
1129
+ reportCsv(id: string): Promise<string>;
1019
1130
  /** The whole import: follows `next_cursor` until done and returns the combined report. */
1020
1131
  run(params: CreateMigrationParams, options?: RunMigrationOptions): Promise<Migration>;
1021
1132
  }
@@ -1139,9 +1250,17 @@ declare class Groundmail {
1139
1250
  /** Import from SendGrid, Postmark or Mailgun (Beta). */
1140
1251
  readonly migrations: MigrationsResource;
1141
1252
  constructor(apiKey: string, options?: GroundmailOptions);
1253
+ /**
1254
+ * Check one address with Groundmail validation before you accept it (for
1255
+ * example on a signup form): syntax, mail server, disposable and role
1256
+ * addresses, recent hard bounces, and a typo suggestion. Free; sends nothing.
1257
+ */
1258
+ validate(email: string): Promise<ValidateEmailResult>;
1142
1259
  get baseUrl(): string;
1143
1260
  get fetchImpl(): typeof fetch;
1261
+ /** GET a text body (CSV downloads). Errors are JSON, like every other route. */
1262
+ requestText(path: string): Promise<string>;
1144
1263
  request<T>(path: string, init: RequestInit): Promise<T>;
1145
1264
  }
1146
1265
 
1147
- export { type EmailWebhookEventType as $, type ApiErrorBody as A, type BatchSendEmailResult as B, type CategoryUnsubscribedErrorDetails as C, type DnsRecord as D, type CreateSuppressionParams as E, type CreateTemplateParams as F, Groundmail as G, type CreateWebhookParams as H, DEFAULT_API_BASE_URL as I, type DeliverabilityBucket as J, type DeliverabilityDomainInsight as K, type DeliverabilityInsightsResult as L, type DeliverabilityMailServerRelay as M, type DeliverabilityWindow as N, type DnsProviderName as O, type Domain as P, type DomainBimiAnalysis as Q, type DomainDetailResult as R, type SendEmailResult as S, type DomainDmarcAnalysis as T, type DomainDnsAnalysis as U, type DomainStatus as V, type DomainTlsMode as W, type DomainTrackingDns as X, type DomainTrackingStatus as Y, type EmailListItem as Z, type EmailWebhookEventPayload as _, type ApiErrorCode as a, type EnrollmentSkip as a0, type EventRecord as a1, type GroundmailOptions as a2, type ListApiKeysParams as a3, type ListApiKeysResult as a4, type ListAutomationRunsParams as a5, type ListAutomationRunsResult as a6, type ListAutomationsResult as a7, type ListDomainsParams as a8, type ListDomainsResult as a9, type TemplateFormat as aA, type TemplateLintWarning as aB, type TemplateStarter as aC, type TemplateStatus as aD, type TemplateVersion as aE, type TestEmailWebhookParams as aF, type TestEmailWebhookResult as aG, type TriggerEventParams as aH, type TriggerEventResult as aI, type TwilioIntegrationResponse as aJ, type TwilioIntegrationStatus as aK, type UpdateAutomationParams as aL, type UpdateDomainParams as aM, type UpdateEmailParams as aN, type UpdateTemplateParams as aO, type UpdateWebhookParams as aP, type VerifyDomainResult as aQ, type WebhookEndpoint as aR, type WebhookEndpointWithSecret as aS, type WebhookEventType as aT, mergeMigrations as aU, type ListEmailsParams as aa, type ListEmailsResult as ab, type ListReceivedEmailsParams as ac, type ListReceivedEmailsResult as ad, type ListSuppressionsParams as ae, type ListSuppressionsResult as af, type ListTemplatesParams as ag, type ListTemplatesResult as ah, type MailServerSigningStatus as ai, type Migration as aj, type MigrationDomainItem as ak, type MigrationItemStatus as al, type MigrationProvider as am, type MigrationResource as an, type MigrationTemplateItem as ao, type MigrationTotals as ap, type MigrationWebhookItem as aq, type ReceivedEmail as ar, type ReceivedEmailAttachment as as, type ReceivedEmailAttachmentMeta as at, type RemoteApplyDnsCredentials as au, type RunMigrationOptions as av, type SendEmailParams as aw, type SuppressedErrorDetails as ax, type Suppression as ay, type Template 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 BounceType as r, type ConnectTwilioParams as s, type ContactWebhookEventPayload as t, type CreateApiKeyParams as u, type CreateApiKeyResult as v, type CreateAutomationParams as w, type CreateDomainParams as x, type CreateDomainResult as y, type CreateMigrationParams as z };
1266
+ export { type EmailWebhookEventPayload as $, type ApiErrorBody as A, type BatchSendEmailResult as B, type CategoryUnsubscribedErrorDetails as C, type DnsRecord as D, type CreateSuppressionParams as E, type CreateTemplateParams as F, Groundmail as G, type CreateWebhookParams as H, DEFAULT_API_BASE_URL as I, type DailyRampLimitErrorDetails as J, type DeliverabilityBucket as K, type DeliverabilityDomainInsight as L, type DeliverabilityInsightsResult as M, type DeliverabilityMailServerRelay as N, type DeliverabilityWindow as O, type DnsProviderName as P, type Domain as Q, type DomainBimiAnalysis as R, type SendEmailResult as S, type DomainDetailResult as T, type DomainDmarcAnalysis as U, type DomainDnsAnalysis as V, type DomainStatus as W, type DomainTlsMode as X, type DomainTrackingDns as Y, type DomainTrackingStatus as Z, type EmailListItem as _, type ApiErrorCode as a, type WebhookEndpoint as a$, type EmailWebhookEventType as a0, type EnrollmentSkip as a1, type EventRecord as a2, type GroundmailOptions as a3, type HeldBackErrorDetails as a4, type HeldBackReason as a5, type HeldBackRecipient as a6, type ListApiKeysParams as a7, type ListApiKeysResult as a8, type ListAutomationRunsParams as a9, type ReceivedEmailAttachmentMeta as aA, type RemoteApplyDnsCredentials as aB, type RunMigrationOptions as aC, type SendEmailParams as aD, type SuppressedErrorDetails as aE, type Suppression as aF, type Template as aG, type TemplateFormat as aH, type TemplateLintWarning as aI, type TemplateStarter as aJ, type TemplateStatus as aK, type TemplateVersion as aL, type TestEmailWebhookParams as aM, type TestEmailWebhookResult as aN, type TriggerEventParams as aO, type TriggerEventResult as aP, type TwilioIntegrationResponse as aQ, type TwilioIntegrationStatus as aR, type UpdateAutomationParams as aS, type UpdateDomainParams as aT, type UpdateEmailParams as aU, type UpdateTemplateParams as aV, type UpdateWebhookParams as aW, type ValidateEmailResult as aX, type ValidationReason as aY, type ValidationVerdict as aZ, type VerifyDomainResult as a_, type ListAutomationRunsResult as aa, type ListAutomationsResult as ab, type ListDomainsParams as ac, type ListDomainsResult as ad, type ListEmailsParams as ae, type ListEmailsResult as af, type ListReceivedEmailsParams as ag, type ListReceivedEmailsResult as ah, type ListSuppressionsParams as ai, type ListSuppressionsResult as aj, type ListTemplatesParams as ak, type ListTemplatesResult as al, type MailServerSigningStatus as am, type Migration as an, type MigrationDnsChange as ao, type MigrationDnsPlan as ap, type MigrationDomainItem as aq, type MigrationItemStatus as ar, type MigrationProvider as as, type MigrationResource as at, type MigrationSummary as au, type MigrationTemplateItem as av, type MigrationTotals as aw, type MigrationWebhookItem as ax, type ReceivedEmail as ay, type ReceivedEmailAttachment as az, type ApiKey as b, type WebhookEndpointWithSecret as b0, type WebhookEventType as b1, mergeMigrations as b2, 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 BounceType as r, type ConnectTwilioParams as s, type ContactWebhookEventPayload as t, type CreateApiKeyParams as u, type CreateApiKeyResult as v, type CreateAutomationParams as w, type CreateDomainParams as x, type CreateDomainResult as y, type CreateMigrationParams as z };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as ApiErrorBody, D as DnsRecord } from './client-UTorFXe6.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, r as BounceType, C as CategoryUnsubscribedErrorDetails, s as ConnectTwilioParams, t as ContactWebhookEventPayload, u as CreateApiKeyParams, v as CreateApiKeyResult, w as CreateAutomationParams, x as CreateDomainParams, y as CreateDomainResult, z as CreateMigrationParams, E as CreateSuppressionParams, F as CreateTemplateParams, H as CreateWebhookParams, I as DEFAULT_API_BASE_URL, J as DeliverabilityBucket, K as DeliverabilityDomainInsight, L as DeliverabilityInsightsResult, M as DeliverabilityMailServerRelay, N as DeliverabilityWindow, O as DnsProviderName, P as Domain, Q as DomainBimiAnalysis, R as DomainDetailResult, T as DomainDmarcAnalysis, U as DomainDnsAnalysis, V as DomainStatus, W as DomainTlsMode, X as DomainTrackingDns, Y as DomainTrackingStatus, Z as EmailListItem, _ as EmailWebhookEventPayload, $ as EmailWebhookEventType, a0 as EnrollmentSkip, a1 as EventRecord, G as Groundmail, a2 as GroundmailOptions, a3 as ListApiKeysParams, a4 as ListApiKeysResult, a5 as ListAutomationRunsParams, a6 as ListAutomationRunsResult, a7 as ListAutomationsResult, a8 as ListDomainsParams, a9 as ListDomainsResult, aa as ListEmailsParams, ab as ListEmailsResult, ac as ListReceivedEmailsParams, ad as ListReceivedEmailsResult, ae as ListSuppressionsParams, af as ListSuppressionsResult, ag as ListTemplatesParams, ah as ListTemplatesResult, ai as MailServerSigningStatus, aj as Migration, ak as MigrationDomainItem, al as MigrationItemStatus, am as MigrationProvider, an as MigrationResource, ao as MigrationTemplateItem, ap as MigrationTotals, aq as MigrationWebhookItem, ar as ReceivedEmail, as as ReceivedEmailAttachment, at as ReceivedEmailAttachmentMeta, au as RemoteApplyDnsCredentials, av as RunMigrationOptions, aw as SendEmailParams, S as SendEmailResult, ax as SuppressedErrorDetails, ay as Suppression, az as Template, aA as TemplateFormat, aB as TemplateLintWarning, aC as TemplateStarter, aD as TemplateStatus, aE as TemplateVersion, aF as TestEmailWebhookParams, aG as TestEmailWebhookResult, aH as TriggerEventParams, aI as TriggerEventResult, aJ as TwilioIntegrationResponse, aK as TwilioIntegrationStatus, aL as UpdateAutomationParams, aM as UpdateDomainParams, aN as UpdateEmailParams, aO as UpdateTemplateParams, aP as UpdateWebhookParams, aQ as VerifyDomainResult, aR as WebhookEndpoint, aS as WebhookEndpointWithSecret, aT as WebhookEventType, aU as mergeMigrations } from './client-UTorFXe6.js';
1
+ import { A as ApiErrorBody, D as DnsRecord } from './client-DXYsWgOT.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, r as BounceType, C as CategoryUnsubscribedErrorDetails, s as ConnectTwilioParams, t as ContactWebhookEventPayload, u as CreateApiKeyParams, v as CreateApiKeyResult, w as CreateAutomationParams, x as CreateDomainParams, y as CreateDomainResult, z as CreateMigrationParams, E as CreateSuppressionParams, F as CreateTemplateParams, H as CreateWebhookParams, I as DEFAULT_API_BASE_URL, J as DailyRampLimitErrorDetails, K as DeliverabilityBucket, L as DeliverabilityDomainInsight, M as DeliverabilityInsightsResult, N as DeliverabilityMailServerRelay, O as DeliverabilityWindow, P as DnsProviderName, Q as Domain, R as DomainBimiAnalysis, T as DomainDetailResult, U as DomainDmarcAnalysis, V as DomainDnsAnalysis, W as DomainStatus, X as DomainTlsMode, Y as DomainTrackingDns, Z as DomainTrackingStatus, _ as EmailListItem, $ as EmailWebhookEventPayload, a0 as EmailWebhookEventType, a1 as EnrollmentSkip, a2 as EventRecord, G as Groundmail, a3 as GroundmailOptions, a4 as HeldBackErrorDetails, a5 as HeldBackReason, a6 as HeldBackRecipient, a7 as ListApiKeysParams, a8 as ListApiKeysResult, a9 as ListAutomationRunsParams, aa as ListAutomationRunsResult, ab as ListAutomationsResult, ac as ListDomainsParams, ad as ListDomainsResult, ae as ListEmailsParams, af as ListEmailsResult, ag as ListReceivedEmailsParams, ah as ListReceivedEmailsResult, ai as ListSuppressionsParams, aj as ListSuppressionsResult, ak as ListTemplatesParams, al as ListTemplatesResult, am as MailServerSigningStatus, an as Migration, ao as MigrationDnsChange, ap as MigrationDnsPlan, aq as MigrationDomainItem, ar as MigrationItemStatus, as as MigrationProvider, at as MigrationResource, au as MigrationSummary, av as MigrationTemplateItem, aw as MigrationTotals, ax as MigrationWebhookItem, ay as ReceivedEmail, az as ReceivedEmailAttachment, aA as ReceivedEmailAttachmentMeta, aB as RemoteApplyDnsCredentials, aC as RunMigrationOptions, aD as SendEmailParams, S as SendEmailResult, aE as SuppressedErrorDetails, aF as Suppression, aG as Template, aH as TemplateFormat, aI as TemplateLintWarning, aJ as TemplateStarter, aK as TemplateStatus, aL as TemplateVersion, aM as TestEmailWebhookParams, aN as TestEmailWebhookResult, aO as TriggerEventParams, aP as TriggerEventResult, aQ as TwilioIntegrationResponse, aR as TwilioIntegrationStatus, aS as UpdateAutomationParams, aT as UpdateDomainParams, aU as UpdateEmailParams, aV as UpdateTemplateParams, aW as UpdateWebhookParams, aX as ValidateEmailResult, aY as ValidationReason, aZ as ValidationVerdict, a_ as VerifyDomainResult, a$ as WebhookEndpoint, b0 as WebhookEndpointWithSecret, b1 as WebhookEventType, b2 as mergeMigrations } from './client-DXYsWgOT.js';
3
3
 
4
4
  type GroundmailErrorOptions = {
5
5
  code?: string;
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  mergeSpfInclude,
9
9
  signWebhookPayload,
10
10
  verifyWebhookSignature
11
- } from "./chunk-LKMNSXA3.js";
11
+ } from "./chunk-JYLRUBEJ.js";
12
12
  export {
13
13
  DEFAULT_API_BASE_URL,
14
14
  Groundmail,
package/dist/payload.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { G as Groundmail } from './client-UTorFXe6.js';
1
+ import { G as Groundmail } from './client-DXYsWgOT.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-LKMNSXA3.js";
4
+ } from "./chunk-JYLRUBEJ.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.8",
3
+ "version": "0.16.0",
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.8"
92
+ "groundmail-nodemailer": "0.15.2"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@types/nodemailer": "^8.0.1",