groundmail 0.29.0 → 0.30.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-B9Pa_09D.js';
1
+ import { G as Groundmail } from './client-BSsKsMtx.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-ZH3KZR7I.js";
4
+ } from "./chunk-PMQDWLBY.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-B9Pa_09D.js';
1
+ import { S as SendEmailResult, G as Groundmail } from './client-BSsKsMtx.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-ZH3KZR7I.js";
4
+ } from "./chunk-PMQDWLBY.js";
5
5
 
6
6
  // src/better-auth.ts
7
7
  function linkHtml(label, url) {
@@ -70,6 +70,13 @@ function isSpfRecord(value) {
70
70
  return value.trim().toLowerCase().startsWith("v=spf1");
71
71
  }
72
72
 
73
+ // src/dns/dmarc.ts
74
+ var KEPT_DMARC_DETAIL = "You already have a DMARC record. Nothing to change.";
75
+ var ALREADY_SET_DETAIL = "Already set. Nothing to change.";
76
+ function isDmarcValue(value) {
77
+ return /^v=dmarc1\b/i.test(value.trim().replace(/^"/, ""));
78
+ }
79
+
73
80
  // src/dns/cloudflare.ts
74
81
  function relativeName(fqdn2, zone) {
75
82
  const domain = zone.replace(/\.$/, "").toLowerCase();
@@ -125,6 +132,10 @@ function createCloudflareProvider(options) {
125
132
  const recordType = record.type.toUpperCase();
126
133
  const name = relativeName(record.host, zoneName);
127
134
  const absoluteName = name === "@" ? zoneName : `${name}.${zoneName}`;
135
+ if (record.already_set) {
136
+ results.push({ purpose: record.purpose, host: record.host, action: "unchanged", detail: ALREADY_SET_DETAIL });
137
+ continue;
138
+ }
128
139
  if (recordType === "CNAME") {
129
140
  const target = record.value.replace(/\.$/, "").toLowerCase();
130
141
  const existingList2 = await cf(
@@ -266,10 +277,13 @@ function createCloudflareProvider(options) {
266
277
  });
267
278
  continue;
268
279
  }
280
+ if (record.purpose === "DMARC" && (existingList || []).some((r) => isDmarcValue(r.content))) {
281
+ results.push({ purpose: record.purpose, host: record.host, action: "unchanged", detail: KEPT_DMARC_DETAIL });
282
+ continue;
283
+ }
269
284
  const replaceable = (existingList || []).find((r) => {
270
285
  if (record.purpose === "Domain ownership") return r.content.includes("groundmail-verify=");
271
286
  if (record.purpose === "DKIM") return r.content.toLowerCase().includes("v=dkim1");
272
- if (record.purpose === "DMARC") return r.content.toLowerCase().includes("v=dmarc1");
273
287
  return false;
274
288
  });
275
289
  if (replaceable) {
@@ -329,7 +343,6 @@ function ownedTxt(purpose, value) {
329
343
  const lower = value.toLowerCase();
330
344
  if (purpose === "Domain ownership") return lower.includes("groundmail-verify=");
331
345
  if (purpose === "DKIM") return lower.includes("v=dkim1");
332
- if (purpose === "DMARC") return lower.includes("v=dmarc1");
333
346
  return false;
334
347
  }
335
348
  async function applyToRecordStore(zone, records, store) {
@@ -341,6 +354,10 @@ async function applyToRecordStore(zone, records, store) {
341
354
  const name = relativeName2(record.host, zone);
342
355
  const value = normalizeValue(type, record.value);
343
356
  const done = (action, detail) => results.push({ purpose: record.purpose, host: record.host, action, ...detail ? { detail } : {} });
357
+ if (record.already_set) {
358
+ done("unchanged", ALREADY_SET_DETAIL);
359
+ continue;
360
+ }
344
361
  if (type === "CNAME") {
345
362
  const existing = at("CNAME", name)[0];
346
363
  if (existing && normalizeValue(type, existing.value) === value) {
@@ -388,6 +405,10 @@ async function applyToRecordStore(zone, records, store) {
388
405
  done("unchanged");
389
406
  continue;
390
407
  }
408
+ if (record.purpose === "DMARC" && sameName.some((row) => isDmarcValue(normalizeValue(type, row.value)))) {
409
+ done("unchanged", KEPT_DMARC_DETAIL);
410
+ continue;
411
+ }
391
412
  const replaceable = sameName.find((row) => ownedTxt(record.purpose, normalizeValue(type, row.value)));
392
413
  if (replaceable) {
393
414
  await store.update(replaceable, { name, type, value });
@@ -521,6 +542,10 @@ function createGoDaddyKeyProvider(options) {
521
542
  for (const record of records) {
522
543
  const recordType = record.type.toUpperCase();
523
544
  const name = relativeName3(record.host, zone);
545
+ if (record.already_set) {
546
+ results.push({ purpose: record.purpose, host: record.host, action: "unchanged", detail: ALREADY_SET_DETAIL });
547
+ continue;
548
+ }
524
549
  if (recordType === "CNAME") {
525
550
  const target = record.value.replace(/\.$/, "");
526
551
  const existing2 = await gd(
@@ -622,10 +647,13 @@ function createGoDaddyKeyProvider(options) {
622
647
  results.push({ purpose: record.purpose, host: record.host, action: "unchanged" });
623
648
  continue;
624
649
  }
650
+ if (record.purpose === "DMARC" && list.some((r) => isDmarcValue(r.data))) {
651
+ results.push({ purpose: record.purpose, host: record.host, action: "unchanged", detail: KEPT_DMARC_DETAIL });
652
+ continue;
653
+ }
625
654
  const replaceableIndex = list.findIndex((r) => {
626
655
  if (record.purpose === "Domain ownership") return r.data.includes("groundmail-verify=");
627
656
  if (record.purpose === "DKIM") return r.data.toLowerCase().includes("v=dkim1");
628
- if (record.purpose === "DMARC") return r.data.toLowerCase().includes("v=dmarc1");
629
657
  return false;
630
658
  });
631
659
  const next = replaceableIndex >= 0 ? list.map(
@@ -913,6 +941,10 @@ function createVercelProvider(options) {
913
941
  for (const record of records) {
914
942
  const recordType = record.type.toUpperCase();
915
943
  const name = relativeName4(record.host, zone);
944
+ if (record.already_set) {
945
+ results.push({ purpose: record.purpose, host: record.host, action: "unchanged", detail: ALREADY_SET_DETAIL });
946
+ continue;
947
+ }
916
948
  if (recordType === "CNAME") {
917
949
  const target = record.value.replace(/\.$/, "").toLowerCase();
918
950
  const existing = cached.find(
@@ -978,7 +1010,7 @@ function createVercelProvider(options) {
978
1010
  }
979
1011
  if (record.purpose === "SPF") {
980
1012
  const spfRecords = cached.filter(
981
- (row) => row.type === "TXT" && row.name === "" && isSpfRecord(row.value)
1013
+ (row) => row.type === "TXT" && row.name === name && isSpfRecord(row.value)
982
1014
  );
983
1015
  const existing = spfRecords[0];
984
1016
  const includeHost = record.value.match(/include:([^\s]+)/i)?.[1] || "spf.groundmail.dev";
@@ -994,7 +1026,7 @@ function createVercelProvider(options) {
994
1026
  } else {
995
1027
  await vercel(`/v1/domains/records/${existing.id}`, {
996
1028
  method: "PATCH",
997
- body: JSON.stringify({ type: "TXT", name: "", value: merged, ttl: 60 })
1029
+ body: JSON.stringify({ type: "TXT", name, value: merged, ttl: 60 })
998
1030
  });
999
1031
  results.push({
1000
1032
  purpose: record.purpose,
@@ -1006,7 +1038,7 @@ function createVercelProvider(options) {
1006
1038
  } else {
1007
1039
  await vercel(`/v2/domains/${encodeURIComponent(zone)}/records`, {
1008
1040
  method: "POST",
1009
- body: JSON.stringify({ type: "TXT", name: "", value: merged, ttl: 60 })
1041
+ body: JSON.stringify({ type: "TXT", name, value: merged, ttl: 60 })
1010
1042
  });
1011
1043
  results.push({
1012
1044
  purpose: record.purpose,
@@ -1024,10 +1056,13 @@ function createVercelProvider(options) {
1024
1056
  results.push({ purpose: record.purpose, host: record.host, action: "unchanged" });
1025
1057
  continue;
1026
1058
  }
1059
+ if (record.purpose === "DMARC" && existingList.some((row) => isDmarcValue(row.value))) {
1060
+ results.push({ purpose: record.purpose, host: record.host, action: "unchanged", detail: KEPT_DMARC_DETAIL });
1061
+ continue;
1062
+ }
1027
1063
  const replaceable = existingList.find((row) => {
1028
1064
  if (record.purpose === "Domain ownership") return row.value.includes("groundmail-verify=");
1029
1065
  if (record.purpose === "DKIM") return row.value.toLowerCase().includes("v=dkim1");
1030
- if (record.purpose === "DMARC") return row.value.toLowerCase().includes("v=dmarc1");
1031
1066
  return false;
1032
1067
  });
1033
1068
  if (replaceable) {
package/dist/clerk.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { G as Groundmail, S as SendEmailResult } from './client-B9Pa_09D.js';
1
+ import { G as Groundmail, S as SendEmailResult } from './client-BSsKsMtx.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-ZH3KZR7I.js";
4
+ } from "./chunk-PMQDWLBY.js";
5
5
 
6
6
  // src/clerk.ts
7
7
  function resolveApiKey(options) {
@@ -150,6 +150,25 @@ type UpdateEmailParams = {
150
150
  * Null when the email has not bounced, and for complaints.
151
151
  */
152
152
  type BounceType = 'hard' | 'block';
153
+ /**
154
+ * What the recipient's mail server said about the latest delivery attempt.
155
+ * `delivered_at` minus `created_at` on the email is how long it took to land.
156
+ */
157
+ type EmailDelivery = {
158
+ /** Hostname of the recipient's mail server, e.g. `gmail-smtp-in.l.google.com`. */
159
+ receiving_server: string | null;
160
+ /**
161
+ * Its SMTP reply to the latest attempt that finished, exactly as sent: `250 …` when
162
+ * it accepted the email, `5xx …` when it refused it. Null while there has been none.
163
+ */
164
+ response: string | null;
165
+ /** Whether the connection used TLS; null when the attempt didn't say. */
166
+ tls: boolean | null;
167
+ /** Its reply to the latest deferral (a `4xx`, such as greylisting); null when none. Delivery is retried. */
168
+ deferred_response: string | null;
169
+ /** When the latest deferral happened (ISO 8601). */
170
+ deferred_at: string | null;
171
+ };
153
172
  type EmailListItem = {
154
173
  id: string;
155
174
  from: string;
@@ -163,6 +182,12 @@ type EmailListItem = {
163
182
  bounce_reason: string | null;
164
183
  /** `hard` or `block` once the email has bounced; null otherwise. */
165
184
  bounce_type: BounceType | null;
185
+ /**
186
+ * The receiving server's side of the latest delivery attempt: hostname, exact reply,
187
+ * TLS and the latest deferral. Null until an attempt reports one, and for test emails.
188
+ * Optional so older API responses still type-check.
189
+ */
190
+ delivery?: EmailDelivery | null;
166
191
  /** Recipients Groundmail validation held back before sending, with why. Empty when none were. */
167
192
  held_back: HeldBackRecipient[];
168
193
  /**
@@ -958,6 +983,11 @@ type DnsRecord = {
958
983
  purpose: string;
959
984
  /** MX preference when `type` is `MX`. Mail hostname is in `value`. */
960
985
  priority?: number;
986
+ /**
987
+ * The domain already publishes a record that does this job (its own DMARC record).
988
+ * `value` is what is published now; nothing to add or change, and apply leaves it alone.
989
+ */
990
+ already_set?: boolean;
961
991
  };
962
992
  type CreateDomainParams = {
963
993
  name: string;
@@ -1015,9 +1045,11 @@ type VerifyDomainResult = {
1015
1045
  verified: boolean;
1016
1046
  checks?: {
1017
1047
  ownership: boolean;
1048
+ /** True when SPF needs nothing more. Always true for a main domain (example.com), which needs no SPF change. */
1018
1049
  spf: boolean;
1019
1050
  dkim: boolean;
1020
1051
  dmarc: boolean;
1052
+ return_path?: boolean;
1021
1053
  };
1022
1054
  auto?: boolean;
1023
1055
  inbound_configured?: boolean;
@@ -1955,4 +1987,4 @@ declare function normalizeAccessToken(value: GroundmailAccessToken | null | unde
1955
1987
  expiresAt: number | null;
1956
1988
  };
1957
1989
 
1958
- export { type DmarcStatus as $, type ApiErrorBody as A, type BatchSendEmailResult as B, type CategoryOptOut as C, type DnsRecord as D, type CreateDomainResult as E, type CreateMigrationParams as F, Groundmail as G, type CreateSuppressionParams as H, type CreateTemplateParams as I, type CreateTenantParams as J, type CreateWebhookParams as K, DEFAULT_API_BASE_URL as L, type DailyRampLimitErrorDetails as M, type DeleteTenantResult as N, type DeliverabilityBucket as O, type DeliverabilityDomainInsight as P, type DeliverabilityInsightsResult as Q, type DeliverabilityMailServerRelay as R, type SendEmailResult as S, type DeliverabilityWindow as T, type DmarcDailyPoint as U, type DmarcMonitoring as V, type DmarcMonitoringDisabled as W, type DmarcReadiness as X, type DmarcReadinessVerdict as Y, type DmarcSource as Z, type DmarcSourceStatus as _, type ApiErrorCode as a, type RemoteApplyDnsCredentials as a$, type DnsProviderName as a0, type Domain as a1, type DomainBimiAnalysis as a2, type DomainDetailResult as a3, type DomainDmarcAnalysis as a4, type DomainDnsAnalysis as a5, type DomainStatus as a6, type DomainTlsMode as a7, type DomainTrackingDns as a8, type DomainTrackingStatus as a9, 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 ListTenantDomainsResult as aG, type ListTenantsParams as aH, type ListTenantsResult as aI, type ListTestInboxEmailsParams as aJ, type ListTestInboxEmailsResult as aK, type MailServerSigningStatus as aL, type MailStream 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 ReceivedEmailAttachmentMeta as a_, type EmailListItem as aa, type EmailWebhookEventPayload as ab, type EmailWebhookEventType as ac, type EnableDmarcParams as ad, type EnableDmarcResult as ae, type EnrollmentSkip as af, type EventRecord as ag, type GroundmailAccessToken as ah, type GroundmailOptions as ai, type GroundmailTokenOptions as aj, type GroundmailTokenProvider as ak, type HeldBackErrorDetails as al, type HeldBackReason as am, type HeldBackRecipient as an, type InReplyToEmail as ao, type ListApiKeysParams as ap, type ListApiKeysResult as aq, type ListAutomationRunsParams as ar, type ListAutomationRunsResult as as, type ListAutomationsResult as at, type ListCategoryOptOutsParams as au, type ListCategoryOptOutsResult as av, type ListDomainsParams as aw, type ListDomainsResult as ax, type ListEmailsParams as ay, type ListEmailsResult as az, type ApiKey as b, type RemoveCategoryOptOutOptions as b0, type RunMigrationOptions as b1, type SendEmailParams as b2, type StreamDeliverability as b3, type SuppressedErrorDetails as b4, type Suppression as b5, TEST_INBOX_WAIT_DEFAULT_MS as b6, TEST_INBOX_WAIT_MAX_SECONDS as b7, type Template as b8, type TemplateFormat as b9, type UpdateEmailParams as bA, type UpdateTemplateParams as bB, type UpdateTenantParams as bC, type UpdateWebhookParams as bD, type ValidateEmailResult as bE, type ValidationReason as bF, type ValidationVerdict as bG, type VerifyDomainResult as bH, type WaitForTestEmailParams as bI, type WebhookEmailTag as bJ, type WebhookEndpoint as bK, type WebhookEndpointWithSecret as bL, type WebhookEventType as bM, mergeMigrations as bN, normalizeAccessToken as bO, type TemplateLintWarning as ba, type TemplateStarter as bb, type TemplateStatus as bc, type TemplateVersion as bd, type Tenant as be, type TenantPauseSource as bf, type TenantRamp as bg, type TenantStats as bh, type TenantStatsResult as bi, type TenantStatus as bj, type TenantStreamPolicy as bk, type TestEmailWebhookParams as bl, type TestEmailWebhookResult as bm, type TestInbox as bn, type TestInboxAddressOptions as bo, type TestInboxEmail as bp, type TestInboxEmailDetail as bq, type TestInboxHeader as br, TestInboxResource as bs, type TestInboxUsage as bt, type TriggerEventParams as bu, type TriggerEventResult as bv, type TwilioIntegrationResponse as bw, type TwilioIntegrationStatus as bx, type UpdateAutomationParams as by, type UpdateDomainParams as bz, 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 CategoryOptOutCategory as s, type CategoryUnsubscribedErrorDetails as t, type ConnectTwilioParams as u, type ContactWebhookEventPayload as v, type CreateApiKeyParams as w, type CreateApiKeyResult as x, type CreateAutomationParams as y, type CreateDomainParams as z };
1990
+ export { type DmarcStatus as $, type ApiErrorBody as A, type BatchSendEmailResult as B, type CategoryOptOut as C, type DnsRecord as D, type CreateDomainResult as E, type CreateMigrationParams as F, Groundmail as G, type CreateSuppressionParams as H, type CreateTemplateParams as I, type CreateTenantParams as J, type CreateWebhookParams as K, DEFAULT_API_BASE_URL as L, type DailyRampLimitErrorDetails as M, type DeleteTenantResult as N, type DeliverabilityBucket as O, type DeliverabilityDomainInsight as P, type DeliverabilityInsightsResult as Q, type DeliverabilityMailServerRelay as R, type SendEmailResult as S, type DeliverabilityWindow as T, type DmarcDailyPoint as U, type DmarcMonitoring as V, type DmarcMonitoringDisabled as W, type DmarcReadiness as X, type DmarcReadinessVerdict as Y, type DmarcSource as Z, type DmarcSourceStatus as _, type ApiErrorCode as a, type ReceivedEmailAttachmentMeta as a$, type DnsProviderName as a0, type Domain as a1, type DomainBimiAnalysis as a2, type DomainDetailResult as a3, type DomainDmarcAnalysis as a4, type DomainDnsAnalysis as a5, type DomainStatus as a6, type DomainTlsMode as a7, type DomainTrackingDns as a8, type DomainTrackingStatus as a9, type ListEmailsResult as aA, type ListReceivedEmailsParams as aB, type ListReceivedEmailsResult as aC, type ListSuppressionsParams as aD, type ListSuppressionsResult as aE, type ListTemplatesParams as aF, type ListTemplatesResult as aG, type ListTenantDomainsResult as aH, type ListTenantsParams as aI, type ListTenantsResult as aJ, type ListTestInboxEmailsParams as aK, type ListTestInboxEmailsResult as aL, type MailServerSigningStatus as aM, type MailStream as aN, type Migration as aO, type MigrationDnsChange as aP, type MigrationDnsPlan as aQ, type MigrationDomainItem as aR, type MigrationItemStatus as aS, type MigrationProvider as aT, type MigrationResource as aU, type MigrationSummary as aV, type MigrationTemplateItem as aW, type MigrationTotals as aX, type MigrationWebhookItem as aY, type ReceivedEmail as aZ, type ReceivedEmailAttachment as a_, type EmailDelivery as aa, type EmailListItem as ab, type EmailWebhookEventPayload as ac, type EmailWebhookEventType as ad, type EnableDmarcParams as ae, type EnableDmarcResult as af, type EnrollmentSkip as ag, type EventRecord as ah, type GroundmailAccessToken as ai, type GroundmailOptions as aj, type GroundmailTokenOptions as ak, type GroundmailTokenProvider as al, type HeldBackErrorDetails as am, type HeldBackReason as an, type HeldBackRecipient as ao, type InReplyToEmail as ap, type ListApiKeysParams as aq, type ListApiKeysResult as ar, type ListAutomationRunsParams as as, type ListAutomationRunsResult as at, type ListAutomationsResult as au, type ListCategoryOptOutsParams as av, type ListCategoryOptOutsResult as aw, type ListDomainsParams as ax, type ListDomainsResult as ay, type ListEmailsParams as az, type ApiKey as b, type RemoteApplyDnsCredentials as b0, type RemoveCategoryOptOutOptions as b1, type RunMigrationOptions as b2, type SendEmailParams as b3, type StreamDeliverability as b4, type SuppressedErrorDetails as b5, type Suppression as b6, TEST_INBOX_WAIT_DEFAULT_MS as b7, TEST_INBOX_WAIT_MAX_SECONDS as b8, type Template as b9, type UpdateDomainParams as bA, type UpdateEmailParams as bB, type UpdateTemplateParams as bC, type UpdateTenantParams as bD, type UpdateWebhookParams as bE, type ValidateEmailResult as bF, type ValidationReason as bG, type ValidationVerdict as bH, type VerifyDomainResult as bI, type WaitForTestEmailParams as bJ, type WebhookEmailTag as bK, type WebhookEndpoint as bL, type WebhookEndpointWithSecret as bM, type WebhookEventType as bN, mergeMigrations as bO, normalizeAccessToken as bP, type TemplateFormat as ba, type TemplateLintWarning as bb, type TemplateStarter as bc, type TemplateStatus as bd, type TemplateVersion as be, type Tenant as bf, type TenantPauseSource as bg, type TenantRamp as bh, type TenantStats as bi, type TenantStatsResult as bj, type TenantStatus as bk, type TenantStreamPolicy as bl, type TestEmailWebhookParams as bm, type TestEmailWebhookResult as bn, type TestInbox as bo, type TestInboxAddressOptions as bp, type TestInboxEmail as bq, type TestInboxEmailDetail as br, type TestInboxHeader as bs, TestInboxResource as bt, type TestInboxUsage as bu, type TriggerEventParams as bv, type TriggerEventResult as bw, type TwilioIntegrationResponse as bx, type TwilioIntegrationStatus as by, type UpdateAutomationParams as bz, 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 CategoryOptOutCategory as s, type CategoryUnsubscribedErrorDetails as t, type ConnectTwilioParams as u, type ContactWebhookEventPayload as v, type CreateApiKeyParams as w, type CreateApiKeyResult as x, type CreateAutomationParams as y, type CreateDomainParams as z };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as ApiErrorBody, D as DnsRecord } from './client-B9Pa_09D.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 CategoryOptOut, s as CategoryOptOutCategory, t as CategoryUnsubscribedErrorDetails, u as ConnectTwilioParams, v as ContactWebhookEventPayload, w as CreateApiKeyParams, x as CreateApiKeyResult, y as CreateAutomationParams, z as CreateDomainParams, E as CreateDomainResult, F as CreateMigrationParams, H as CreateSuppressionParams, I as CreateTemplateParams, J as CreateTenantParams, K as CreateWebhookParams, L as DEFAULT_API_BASE_URL, M as DailyRampLimitErrorDetails, N as DeleteTenantResult, O as DeliverabilityBucket, P as DeliverabilityDomainInsight, Q as DeliverabilityInsightsResult, R as DeliverabilityMailServerRelay, T as DeliverabilityWindow, U as DmarcDailyPoint, V as DmarcMonitoring, W as DmarcMonitoringDisabled, X as DmarcReadiness, Y as DmarcReadinessVerdict, Z as DmarcSource, _ as DmarcSourceStatus, $ as DmarcStatus, a0 as DnsProviderName, a1 as Domain, a2 as DomainBimiAnalysis, a3 as DomainDetailResult, a4 as DomainDmarcAnalysis, a5 as DomainDnsAnalysis, a6 as DomainStatus, a7 as DomainTlsMode, a8 as DomainTrackingDns, a9 as DomainTrackingStatus, aa as EmailListItem, ab as EmailWebhookEventPayload, ac as EmailWebhookEventType, ad as EnableDmarcParams, ae as EnableDmarcResult, af as EnrollmentSkip, ag as EventRecord, G as Groundmail, ah as GroundmailAccessToken, ai as GroundmailOptions, aj as GroundmailTokenOptions, ak as GroundmailTokenProvider, al as HeldBackErrorDetails, am as HeldBackReason, an as HeldBackRecipient, ao as InReplyToEmail, ap as ListApiKeysParams, aq as ListApiKeysResult, ar as ListAutomationRunsParams, as as ListAutomationRunsResult, at as ListAutomationsResult, au as ListCategoryOptOutsParams, av as ListCategoryOptOutsResult, aw as ListDomainsParams, ax as ListDomainsResult, ay as ListEmailsParams, az as ListEmailsResult, aA as ListReceivedEmailsParams, aB as ListReceivedEmailsResult, aC as ListSuppressionsParams, aD as ListSuppressionsResult, aE as ListTemplatesParams, aF as ListTemplatesResult, aG as ListTenantDomainsResult, aH as ListTenantsParams, aI as ListTenantsResult, aJ as ListTestInboxEmailsParams, aK as ListTestInboxEmailsResult, aL as MailServerSigningStatus, aM as MailStream, 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, a_ as ReceivedEmailAttachmentMeta, a$ as RemoteApplyDnsCredentials, b0 as RemoveCategoryOptOutOptions, b1 as RunMigrationOptions, b2 as SendEmailParams, S as SendEmailResult, b3 as StreamDeliverability, b4 as SuppressedErrorDetails, b5 as Suppression, b6 as TEST_INBOX_WAIT_DEFAULT_MS, b7 as TEST_INBOX_WAIT_MAX_SECONDS, b8 as Template, b9 as TemplateFormat, ba as TemplateLintWarning, bb as TemplateStarter, bc as TemplateStatus, bd as TemplateVersion, be as Tenant, bf as TenantPauseSource, bg as TenantRamp, bh as TenantStats, bi as TenantStatsResult, bj as TenantStatus, bk as TenantStreamPolicy, bl as TestEmailWebhookParams, bm as TestEmailWebhookResult, bn as TestInbox, bo as TestInboxAddressOptions, bp as TestInboxEmail, bq as TestInboxEmailDetail, br as TestInboxHeader, bs as TestInboxResource, bt as TestInboxUsage, bu as TriggerEventParams, bv as TriggerEventResult, bw as TwilioIntegrationResponse, bx as TwilioIntegrationStatus, by as UpdateAutomationParams, bz as UpdateDomainParams, bA as UpdateEmailParams, bB as UpdateTemplateParams, bC as UpdateTenantParams, bD as UpdateWebhookParams, bE as ValidateEmailResult, bF as ValidationReason, bG as ValidationVerdict, bH as VerifyDomainResult, bI as WaitForTestEmailParams, bJ as WebhookEmailTag, bK as WebhookEndpoint, bL as WebhookEndpointWithSecret, bM as WebhookEventType, bN as mergeMigrations, bO as normalizeAccessToken } from './client-B9Pa_09D.js';
1
+ import { A as ApiErrorBody, D as DnsRecord } from './client-BSsKsMtx.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 CategoryOptOut, s as CategoryOptOutCategory, t as CategoryUnsubscribedErrorDetails, u as ConnectTwilioParams, v as ContactWebhookEventPayload, w as CreateApiKeyParams, x as CreateApiKeyResult, y as CreateAutomationParams, z as CreateDomainParams, E as CreateDomainResult, F as CreateMigrationParams, H as CreateSuppressionParams, I as CreateTemplateParams, J as CreateTenantParams, K as CreateWebhookParams, L as DEFAULT_API_BASE_URL, M as DailyRampLimitErrorDetails, N as DeleteTenantResult, O as DeliverabilityBucket, P as DeliverabilityDomainInsight, Q as DeliverabilityInsightsResult, R as DeliverabilityMailServerRelay, T as DeliverabilityWindow, U as DmarcDailyPoint, V as DmarcMonitoring, W as DmarcMonitoringDisabled, X as DmarcReadiness, Y as DmarcReadinessVerdict, Z as DmarcSource, _ as DmarcSourceStatus, $ as DmarcStatus, a0 as DnsProviderName, a1 as Domain, a2 as DomainBimiAnalysis, a3 as DomainDetailResult, a4 as DomainDmarcAnalysis, a5 as DomainDnsAnalysis, a6 as DomainStatus, a7 as DomainTlsMode, a8 as DomainTrackingDns, a9 as DomainTrackingStatus, aa as EmailDelivery, ab as EmailListItem, ac as EmailWebhookEventPayload, ad as EmailWebhookEventType, ae as EnableDmarcParams, af as EnableDmarcResult, ag as EnrollmentSkip, ah as EventRecord, G as Groundmail, ai as GroundmailAccessToken, aj as GroundmailOptions, ak as GroundmailTokenOptions, al as GroundmailTokenProvider, am as HeldBackErrorDetails, an as HeldBackReason, ao as HeldBackRecipient, ap as InReplyToEmail, aq as ListApiKeysParams, ar as ListApiKeysResult, as as ListAutomationRunsParams, at as ListAutomationRunsResult, au as ListAutomationsResult, av as ListCategoryOptOutsParams, aw as ListCategoryOptOutsResult, ax as ListDomainsParams, ay as ListDomainsResult, az as ListEmailsParams, aA as ListEmailsResult, aB as ListReceivedEmailsParams, aC as ListReceivedEmailsResult, aD as ListSuppressionsParams, aE as ListSuppressionsResult, aF as ListTemplatesParams, aG as ListTemplatesResult, aH as ListTenantDomainsResult, aI as ListTenantsParams, aJ as ListTenantsResult, aK as ListTestInboxEmailsParams, aL as ListTestInboxEmailsResult, aM as MailServerSigningStatus, aN as MailStream, aO as Migration, aP as MigrationDnsChange, aQ as MigrationDnsPlan, aR as MigrationDomainItem, aS as MigrationItemStatus, aT as MigrationProvider, aU as MigrationResource, aV as MigrationSummary, aW as MigrationTemplateItem, aX as MigrationTotals, aY as MigrationWebhookItem, aZ as ReceivedEmail, a_ as ReceivedEmailAttachment, a$ as ReceivedEmailAttachmentMeta, b0 as RemoteApplyDnsCredentials, b1 as RemoveCategoryOptOutOptions, b2 as RunMigrationOptions, b3 as SendEmailParams, S as SendEmailResult, b4 as StreamDeliverability, b5 as SuppressedErrorDetails, b6 as Suppression, b7 as TEST_INBOX_WAIT_DEFAULT_MS, b8 as TEST_INBOX_WAIT_MAX_SECONDS, b9 as Template, ba as TemplateFormat, bb as TemplateLintWarning, bc as TemplateStarter, bd as TemplateStatus, be as TemplateVersion, bf as Tenant, bg as TenantPauseSource, bh as TenantRamp, bi as TenantStats, bj as TenantStatsResult, bk as TenantStatus, bl as TenantStreamPolicy, bm as TestEmailWebhookParams, bn as TestEmailWebhookResult, bo as TestInbox, bp as TestInboxAddressOptions, bq as TestInboxEmail, br as TestInboxEmailDetail, bs as TestInboxHeader, bt as TestInboxResource, bu as TestInboxUsage, bv as TriggerEventParams, bw as TriggerEventResult, bx as TwilioIntegrationResponse, by as TwilioIntegrationStatus, bz as UpdateAutomationParams, bA as UpdateDomainParams, bB as UpdateEmailParams, bC as UpdateTemplateParams, bD as UpdateTenantParams, bE as UpdateWebhookParams, bF as ValidateEmailResult, bG as ValidationReason, bH as ValidationVerdict, bI as VerifyDomainResult, bJ as WaitForTestEmailParams, bK as WebhookEmailTag, bL as WebhookEndpoint, bM as WebhookEndpointWithSecret, bN as WebhookEventType, bO as mergeMigrations, bP as normalizeAccessToken } from './client-BSsKsMtx.js';
3
3
 
4
4
  type GroundmailErrorOptions = {
5
5
  code?: string;
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@ import {
12
12
  normalizeAccessToken,
13
13
  signWebhookPayload,
14
14
  verifyWebhookSignature
15
- } from "./chunk-ZH3KZR7I.js";
15
+ } from "./chunk-PMQDWLBY.js";
16
16
 
17
17
  // src/simulator.ts
18
18
  var SIMULATOR_DOMAIN = "simulator.groundmail.dev";
package/dist/payload.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { G as Groundmail } from './client-B9Pa_09D.js';
1
+ import { G as Groundmail } from './client-BSsKsMtx.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-ZH3KZR7I.js";
4
+ } from "./chunk-PMQDWLBY.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.29.0",
3
+ "version": "0.30.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.15.17"
92
+ "groundmail-nodemailer": "0.15.19"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@types/nodemailer": "^8.0.1",