groundmail 0.39.1 → 0.41.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-CTQyEXww.js';
1
+ import { G as Groundmail } from './client-B_H1iNa7.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-V4ZZRJ3Q.js";
4
+ } from "./chunk-65NWGUZM.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-CTQyEXww.js';
1
+ import { S as SendEmailResult, G as Groundmail } from './client-B_H1iNa7.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-V4ZZRJ3Q.js";
4
+ } from "./chunk-65NWGUZM.js";
5
5
 
6
6
  // src/better-auth.ts
7
7
  function linkHtml(label, url) {
@@ -48,6 +48,69 @@ var GroundmailError = class _GroundmailError extends Error {
48
48
  }
49
49
  };
50
50
 
51
+ // src/burrowguard.ts
52
+ var BurrowGuardSitesResource = class {
53
+ constructor(client) {
54
+ this.client = client;
55
+ }
56
+ async list() {
57
+ return this.client.request("/burrowguard/sites", { method: "GET" });
58
+ }
59
+ async get(id) {
60
+ return this.client.request(`/burrowguard/sites/${encodeURIComponent(id)}`, { method: "GET" });
61
+ }
62
+ /** The response holds the secret, once. */
63
+ async create(params) {
64
+ return this.client.request("/burrowguard/sites", { method: "POST", body: JSON.stringify(params) });
65
+ }
66
+ async update(id, params) {
67
+ return this.client.request(`/burrowguard/sites/${encodeURIComponent(id)}`, { method: "PATCH", body: JSON.stringify(params) });
68
+ }
69
+ /** A new secret, returned once. The old one stops working at once. */
70
+ async rollSecret(id) {
71
+ return this.client.request(`/burrowguard/sites/${encodeURIComponent(id)}/secret`, { method: "POST" });
72
+ }
73
+ async remove(id) {
74
+ await this.client.request(`/burrowguard/sites/${encodeURIComponent(id)}`, { method: "DELETE" });
75
+ }
76
+ };
77
+ var BurrowGuardChecksResource = class {
78
+ constructor(client) {
79
+ this.client = client;
80
+ }
81
+ async list(params = {}) {
82
+ const query = new URLSearchParams();
83
+ for (const [key, value] of Object.entries(params)) {
84
+ if (value !== void 0) query.set(key, String(value));
85
+ }
86
+ const suffix = query.size ? `?${query}` : "";
87
+ return this.client.request(`/burrowguard/checks${suffix}`, { method: "GET" });
88
+ }
89
+ };
90
+ var BurrowGuardResource = class {
91
+ constructor(client) {
92
+ this.client = client;
93
+ this.sites = new BurrowGuardSitesResource(client);
94
+ this.checks = new BurrowGuardChecksResource(client);
95
+ }
96
+ /**
97
+ * Check a form submission from your server. If we can't be reached this returns
98
+ * `success: true` with `limited: true`, so a sign-up never fails because of us. A wrong
99
+ * secret still throws: that's a broken install to fix.
100
+ */
101
+ async verify(params) {
102
+ try {
103
+ return await this.client.request("/burrowguard/verify", {
104
+ method: "POST",
105
+ body: JSON.stringify({ token: params.token ?? null, email: params.email })
106
+ });
107
+ } catch (error) {
108
+ if (error instanceof GroundmailError && error.status >= 400 && error.status < 500) throw error;
109
+ return { success: true, reason: null, limited: true };
110
+ }
111
+ }
112
+ };
113
+
51
114
  // src/dns/spf.ts
52
115
  function mergeSpfInclude(existing, includeHost) {
53
116
  const include = `include:${includeHost.replace(/^include:/i, "")}`;
@@ -1702,6 +1765,7 @@ var EmailsResource = class {
1702
1765
  payload.scheduled_at = scheduledAt instanceof Date ? scheduledAt.toISOString() : scheduledAt;
1703
1766
  }
1704
1767
  if (params.unsubscribe !== void 0) payload.unsubscribe = params.unsubscribe;
1768
+ if (params.validation !== void 0) payload.validation = params.validation;
1705
1769
  if (params.category !== void 0) payload.category = params.category;
1706
1770
  if (params.tenant !== void 0) payload.tenant = params.tenant;
1707
1771
  return payload;
@@ -2219,6 +2283,7 @@ var _Groundmail = class _Groundmail {
2219
2283
  this.suppressions = new SuppressionsResource(this);
2220
2284
  this.templates = new TemplatesResource(this);
2221
2285
  this.senders = new SendersResource(this);
2286
+ this.burrowguard = new BurrowGuardResource(this);
2222
2287
  this.brand = new BrandResource(this);
2223
2288
  this.tenants = new TenantsResource(this);
2224
2289
  this.migrations = new MigrationsResource(this);
@@ -2316,6 +2381,7 @@ function jwtExpiry(token) {
2316
2381
 
2317
2382
  export {
2318
2383
  GroundmailError,
2384
+ BurrowGuardResource,
2319
2385
  mergeSpfInclude,
2320
2386
  applyDnsRecords,
2321
2387
  mergeMigrations,
package/dist/clerk.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { G as Groundmail, S as SendEmailResult } from './client-CTQyEXww.js';
1
+ import { G as Groundmail, S as SendEmailResult } from './client-B_H1iNa7.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-V4ZZRJ3Q.js";
4
+ } from "./chunk-65NWGUZM.js";
5
5
 
6
6
  // src/clerk.ts
7
7
  function resolveApiKey(options) {
@@ -76,6 +76,14 @@ type SendEmailParams = {
76
76
  * `newsletter_not_enabled`.
77
77
  */
78
78
  category?: 'transactional' | 'product' | 'newsletter';
79
+ /**
80
+ * Opt-in checks for this send. `block_bot_signups` holds back addresses that look
81
+ * like bots filled them into a form (reason `likely_bot_signup`). It's a pattern
82
+ * check and it can be wrong: use it for sign-up emails, not password resets.
83
+ */
84
+ validation?: {
85
+ block_bot_signups?: boolean;
86
+ };
79
87
  /**
80
88
  * Send as one of your tenants (its external id or Groundmail id). The send uses that
81
89
  * tenant's domains, suppression list, pause switch and daily limit. Omit to send from
@@ -90,8 +98,10 @@ type SendEmailParams = {
90
98
  * - `previously_bounced`: the address hard-bounced (mailbox does not exist) for a Groundmail
91
99
  * sender in the last 90 days.
92
100
  * - `mailbox_not_found`: Groundmail validation already knows the mailbox does not exist.
101
+ * - `likely_bot_signup`: the address looks like a bot filled it into a form. Only when the
102
+ * send sets `validation: { block_bot_signups: true }`.
93
103
  */
94
- type HeldBackReason = 'invalid_address' | 'no_mail_server' | 'previously_bounced' | 'mailbox_not_found';
104
+ type HeldBackReason = 'invalid_address' | 'no_mail_server' | 'previously_bounced' | 'mailbox_not_found' | 'likely_bot_signup';
95
105
  type HeldBackRecipient = {
96
106
  email: string;
97
107
  reason: HeldBackReason | (string & {});
@@ -112,10 +122,10 @@ type HeldBackErrorDetails = {
112
122
  type ValidationVerdict = 'valid' | 'risky' | 'invalid';
113
123
  /**
114
124
  * - invalid: `syntax`, `no_mail_server`, `mailbox_not_found`, `previously_bounced`
115
- * - risky: `disposable`, `catch_all`, `possible_typo`
125
+ * - risky: `disposable`, `catch_all`, `possible_typo`, `likely_bot_signup`
116
126
  * - informational (does not change the verdict): `role`
117
127
  */
118
- type ValidationReason = 'syntax' | 'no_mail_server' | 'mailbox_not_found' | 'previously_bounced' | 'disposable' | 'catch_all' | 'possible_typo' | 'role';
128
+ type ValidationReason = 'syntax' | 'no_mail_server' | 'mailbox_not_found' | 'previously_bounced' | 'disposable' | 'catch_all' | 'possible_typo' | 'likely_bot_signup' | 'role';
119
129
  /** `POST /validate` result. */
120
130
  type ValidateEmailResult = {
121
131
  /** The address as checked: trimmed and lowercased. */
@@ -1878,6 +1888,128 @@ declare class BatchesResource {
1878
1888
  cancel(batchId: string): Promise<CancelBatchResult>;
1879
1889
  }
1880
1890
 
1891
+ type BurrowGuardReason = 'no_token' | 'invalid_token' | 'expired_token' | 'token_used' | 'email_mismatch' | 'invalid_format' | 'no_mail_server' | 'disposable' | 'bounce_history' | 'bot_dot_stuffed_gmail' | 'bot_gibberish' | 'free_webmail' | 'scripted_browser' | 'too_fast' | 'abusive_ip' | 'tor' | 'data_center_ip';
1892
+ type BurrowGuardVerifyParams = {
1893
+ /** The `burrowguard-token` field from the form. Empty when the script didn't run. Leave out on a site with `email_checks_only`. */
1894
+ token?: string | null;
1895
+ /** The address from the same form. */
1896
+ email: string;
1897
+ };
1898
+ type BurrowGuardVerifyResult = {
1899
+ /** True: accept the sign-up. */
1900
+ success: boolean;
1901
+ /**
1902
+ * Why not, for your logs. Never show it to the visitor. `no_token` means the script didn't
1903
+ * run and the email checks passed: accept it, or your form breaks for those visitors.
1904
+ */
1905
+ reason: BurrowGuardReason | null;
1906
+ /** Set when nothing was checked: over the monthly limit, rate limited, or we couldn't be reached. */
1907
+ limited?: true;
1908
+ };
1909
+ type BurrowGuardSite = {
1910
+ id: string;
1911
+ name: string;
1912
+ /** Public: goes in your page. */
1913
+ site_key: string;
1914
+ allowed_hostnames: string[];
1915
+ block_free_webmail: boolean;
1916
+ allow_data_center_ips: boolean;
1917
+ /** No script or token: verify takes the email and runs the address checks only. */
1918
+ email_checks_only: boolean;
1919
+ last_check_at: string | null;
1920
+ created_at: string;
1921
+ };
1922
+ type BurrowGuardSiteWithSecret = BurrowGuardSite & {
1923
+ /** `gm_bg_…`. Returned once. Keep it on your server. */
1924
+ secret: string;
1925
+ };
1926
+ type CreateBurrowGuardSiteParams = {
1927
+ name: string;
1928
+ /** Hostnames the form runs on. Keep `localhost` while you build. Optional with `email_checks_only`. */
1929
+ allowed_hostnames?: string[];
1930
+ /** For B2B forms: turn away Gmail, Outlook and other personal addresses. */
1931
+ block_free_webmail?: boolean;
1932
+ /** Let through visitors on hosting and cloud networks. */
1933
+ allow_data_center_ips?: boolean;
1934
+ /** Already using a captcha? No script or box: one server call checks the address. */
1935
+ email_checks_only?: boolean;
1936
+ };
1937
+ type UpdateBurrowGuardSiteParams = Partial<CreateBurrowGuardSiteParams>;
1938
+ type BurrowGuardCheck = {
1939
+ id: string;
1940
+ site_id: string;
1941
+ created_at: string;
1942
+ /** The address is never stored: its domain and a one-way hash only. */
1943
+ email_domain: string | null;
1944
+ result: 'passed' | 'blocked' | 'no_token';
1945
+ reason: BurrowGuardReason | null;
1946
+ reason_label: string | null;
1947
+ ip: string | null;
1948
+ user_agent: string | null;
1949
+ };
1950
+ type ListBurrowGuardChecksParams = {
1951
+ /** A site's id. */
1952
+ site?: string;
1953
+ result?: 'passed' | 'blocked' | 'no_token';
1954
+ range?: '24h' | '7d' | '30d';
1955
+ limit?: number;
1956
+ cursor?: string;
1957
+ };
1958
+ type ListBurrowGuardChecksResult = {
1959
+ data: BurrowGuardCheck[];
1960
+ has_more: boolean;
1961
+ next_cursor: string | null;
1962
+ stats: {
1963
+ checked: number;
1964
+ passed: number;
1965
+ blocked: number;
1966
+ no_token: number;
1967
+ top_reason: BurrowGuardReason | null;
1968
+ };
1969
+ usage: {
1970
+ month: string;
1971
+ used: number;
1972
+ limit: number;
1973
+ limited: boolean;
1974
+ };
1975
+ };
1976
+ declare class BurrowGuardSitesResource {
1977
+ private readonly client;
1978
+ constructor(client: Groundmail);
1979
+ list(): Promise<{
1980
+ data: BurrowGuardSite[];
1981
+ }>;
1982
+ get(id: string): Promise<BurrowGuardSite>;
1983
+ /** The response holds the secret, once. */
1984
+ create(params: CreateBurrowGuardSiteParams): Promise<BurrowGuardSiteWithSecret>;
1985
+ update(id: string, params: UpdateBurrowGuardSiteParams): Promise<BurrowGuardSite>;
1986
+ /** A new secret, returned once. The old one stops working at once. */
1987
+ rollSecret(id: string): Promise<BurrowGuardSiteWithSecret>;
1988
+ remove(id: string): Promise<void>;
1989
+ }
1990
+ declare class BurrowGuardChecksResource {
1991
+ private readonly client;
1992
+ constructor(client: Groundmail);
1993
+ list(params?: ListBurrowGuardChecksParams): Promise<ListBurrowGuardChecksResult>;
1994
+ }
1995
+ /**
1996
+ * BurrowGuard: a free bot and bad-address blocker for sign-up and contact forms.
1997
+ * `sites` and `checks` take an API key. `verify` takes the site secret instead:
1998
+ * `new Groundmail(process.env.GROUNDMAIL_BURROWGUARD_SECRET).burrowguard.verify({ token, email })`.
1999
+ */
2000
+ declare class BurrowGuardResource {
2001
+ private readonly client;
2002
+ readonly sites: BurrowGuardSitesResource;
2003
+ readonly checks: BurrowGuardChecksResource;
2004
+ constructor(client: Groundmail);
2005
+ /**
2006
+ * Check a form submission from your server. If we can't be reached this returns
2007
+ * `success: true` with `limited: true`, so a sign-up never fails because of us. A wrong
2008
+ * secret still throws: that's a broken install to fix.
2009
+ */
2010
+ verify(params: BurrowGuardVerifyParams): Promise<BurrowGuardVerifyResult>;
2011
+ }
2012
+
1881
2013
  /** Status of one sending source in the DMARC reports. `unknown`: an unrecognised server failing DMARC (possible spoofing). */
1882
2014
  type DmarcSourceStatus = 'passing' | 'failing' | 'unknown';
1883
2015
  type DmarcSource = {
@@ -2398,6 +2530,8 @@ declare class Groundmail {
2398
2530
  readonly dmarc: DmarcResource;
2399
2531
  /** Hosted test inbox: catch test mail from any provider and wait for it in your tests. */
2400
2532
  readonly testInbox: TestInboxResource;
2533
+ /** BurrowGuard: keep bots and bad addresses out of your sign-up and contact forms. */
2534
+ readonly burrowguard: BurrowGuardResource;
2401
2535
  private readonly apiKey;
2402
2536
  private readonly options;
2403
2537
  private readonly getToken;
@@ -2433,4 +2567,4 @@ declare function normalizeAccessToken(value: GroundmailAccessToken | null | unde
2433
2567
  expiresAt: number | null;
2434
2568
  };
2435
2569
 
2436
- export { type DeliverabilityBucket as $, type ApiErrorBody as A, type Batch as B, type BrandLogo as C, type DnsRecord as D, type BrandSettings as E, type CancelBatchResult as F, Groundmail as G, type CategoryOptOut as H, type CategoryOptOutCategory as I, type CategoryUnsubscribedErrorDetails as J, type ConnectTwilioParams as K, type ContactWebhookEventPayload as L, type CreateApiKeyParams as M, type CreateApiKeyResult as N, type CreateAutomationParams as O, type CreateDomainParams as P, type CreateDomainResult as Q, type CreateMigrationParams as R, type SendEmailResult as S, type CreateSenderParams as T, type CreateSuppressionParams as U, type CreateTemplateParams as V, type CreateTenantParams as W, type CreateWebhookParams as X, DEFAULT_API_BASE_URL as Y, type DailyRampLimitErrorDetails as Z, type DeleteTenantResult as _, type ApiErrorCode as a, type ListTestInboxEmailsResult as a$, type DeliverabilityDomainInsight as a0, type DeliverabilityInsightsResult as a1, type DeliverabilityMailServerRelay as a2, type DeliverabilityWindow as a3, type DmarcDailyPoint as a4, type DmarcMonitoring as a5, type DmarcMonitoringDisabled as a6, type DmarcReadiness as a7, type DmarcReadinessVerdict as a8, type DmarcSource as a9, type GroundmailTokenProvider as aA, type HeldBackErrorDetails as aB, type HeldBackReason as aC, type HeldBackRecipient as aD, type InReplyToEmail as aE, type ListApiKeysParams as aF, type ListApiKeysResult as aG, type ListAutomationRunsParams as aH, type ListAutomationRunsResult as aI, type ListAutomationsResult as aJ, type ListCategoryOptOutsParams as aK, type ListCategoryOptOutsResult as aL, type ListDomainsParams as aM, type ListDomainsResult as aN, type ListEmailsParams as aO, type ListEmailsResult as aP, type ListReceivedEmailsParams as aQ, type ListReceivedEmailsResult as aR, type ListSendersResult as aS, type ListSuppressionsParams as aT, type ListSuppressionsResult as aU, type ListTemplatesParams as aV, type ListTemplatesResult as aW, type ListTenantDomainsResult as aX, type ListTenantsParams as aY, type ListTenantsResult as aZ, type ListTestInboxEmailsParams as a_, type DmarcSourceStatus as aa, type DmarcStatus as ab, type DnsProviderName as ac, type Domain as ad, type DomainBimiAnalysis as ae, type DomainBlocklistListing as af, type DomainBlocklistStatus as ag, type DomainBlocklists as ah, type DomainDetailResult as ai, type DomainDmarcAnalysis as aj, type DomainDnsAnalysis as ak, type DomainStatus as al, type DomainTlsMode as am, type DomainTrackingDns as an, type DomainTrackingStatus as ao, type EmailDelivery as ap, type EmailListItem as aq, type EmailWebhookEventPayload as ar, type EmailWebhookEventType as as, type EnableDmarcParams as at, type EnableDmarcResult as au, type EnrollmentSkip as av, type EventRecord as aw, type GroundmailAccessToken as ax, type GroundmailOptions as ay, type GroundmailTokenOptions as az, type ApiKey as b, type ValidateEmailResult as b$, type ListWebhookDeliveriesParams as b0, type ListWebhookDeliveriesResult as b1, type MailServerSigningStatus as b2, type MailStream as b3, type Migration as b4, type MigrationDnsChange as b5, type MigrationDnsPlan as b6, type MigrationDomainItem as b7, type MigrationItemStatus as b8, type MigrationProvider as b9, type TenantPauseSource as bA, type TenantRamp as bB, type TenantStats as bC, type TenantStatsResult as bD, type TenantStatus as bE, type TenantStreamPolicy as bF, type TestEmailWebhookParams as bG, type TestEmailWebhookResult as bH, type TestInbox as bI, type TestInboxAddressOptions as bJ, type TestInboxEmail as bK, type TestInboxEmailDetail as bL, type TestInboxHeader as bM, TestInboxResource as bN, type TestInboxUsage as bO, type TriggerEventParams as bP, type TriggerEventResult as bQ, type TwilioIntegrationResponse as bR, type TwilioIntegrationStatus as bS, type UpdateAutomationParams as bT, type UpdateBrandParams as bU, type UpdateDomainParams as bV, type UpdateEmailParams as bW, type UpdateSenderParams as bX, type UpdateTemplateParams as bY, type UpdateTenantParams as bZ, type UpdateWebhookParams as b_, type MigrationResource as ba, type MigrationSummary as bb, type MigrationTemplateItem as bc, type MigrationTotals as bd, type MigrationWebhookItem as be, type ReceivedEmail as bf, type ReceivedEmailAttachment as bg, type ReceivedEmailAttachmentMeta as bh, type RemoteApplyDnsCredentials as bi, type RemoveCategoryOptOutOptions as bj, type RunMigrationOptions as bk, type SendEmailParams as bl, type Sender as bm, type SesMigrationParams as bn, type StreamDeliverability as bo, type SuppressedErrorDetails as bp, type Suppression as bq, TEST_INBOX_WAIT_DEFAULT_MS as br, TEST_INBOX_WAIT_MAX_SECONDS as bs, type Template as bt, type TemplateFormat as bu, type TemplateLintWarning as bv, type TemplateStarter as bw, type TemplateStatus as bx, type TemplateVersion as by, type Tenant as bz, type ApiKeyMigrationParams as c, type ValidationReason as c0, type ValidationVerdict as c1, type VerifyDomainResult as c2, type WaitForTestEmailParams as c3, type WebhookDelivery as c4, type WebhookDeliveryAttempt as c5, type WebhookDeliveryDetail as c6, type WebhookDeliveryStatus as c7, type WebhookEmailTag as c8, type WebhookEndpoint as c9, type WebhookEndpointHealth as ca, type WebhookEndpointWithSecret as cb, type WebhookEventType as cc, mergeMigrations as cd, normalizeAccessToken as ce, type ApiKeyScope as d, type ApplyDnsParams as e, type ApplyDnsRecordResult as f, type ApplyDnsResult as g, type Asset as h, type Automation as i, type AutomationBranchQuestion as j, type AutomationBranchStep as k, type AutomationInlineEmail as l, type AutomationResult as m, type AutomationRun as n, type AutomationRunResponse as o, type AutomationRunStatus as p, type AutomationRunStep as q, type AutomationRunStepStatus as r, type AutomationSendEmailStep as s, type AutomationStatus as t, type AutomationStep as u, type AutomationTemplateEmail as v, type AutomationTrigger as w, type BatchSendEmailResult as x, type BounceType as y, type Brand as z };
2570
+ export { type CreateSenderParams as $, type ApiErrorBody as A, type Batch as B, type BrandLogo as C, type DnsRecord as D, type BrandSettings as E, type BurrowGuardCheck as F, Groundmail as G, type BurrowGuardReason as H, BurrowGuardResource as I, type BurrowGuardSite as J, type BurrowGuardSiteWithSecret as K, type BurrowGuardVerifyParams as L, type BurrowGuardVerifyResult as M, type CancelBatchResult as N, type CategoryOptOut as O, type CategoryOptOutCategory as P, type CategoryUnsubscribedErrorDetails as Q, type ConnectTwilioParams as R, type SendEmailResult as S, type ContactWebhookEventPayload as T, type CreateApiKeyParams as U, type CreateApiKeyResult as V, type CreateAutomationParams as W, type CreateBurrowGuardSiteParams as X, type CreateDomainParams as Y, type CreateDomainResult as Z, type CreateMigrationParams as _, type ApiErrorCode as a, type ListReceivedEmailsResult as a$, type CreateSuppressionParams as a0, type CreateTemplateParams as a1, type CreateTenantParams as a2, type CreateWebhookParams as a3, DEFAULT_API_BASE_URL as a4, type DailyRampLimitErrorDetails as a5, type DeleteTenantResult as a6, type DeliverabilityBucket as a7, type DeliverabilityDomainInsight as a8, type DeliverabilityInsightsResult as a9, type EmailWebhookEventType as aA, type EnableDmarcParams as aB, type EnableDmarcResult as aC, type EnrollmentSkip as aD, type EventRecord as aE, type GroundmailAccessToken as aF, type GroundmailOptions as aG, type GroundmailTokenOptions as aH, type GroundmailTokenProvider as aI, type HeldBackErrorDetails as aJ, type HeldBackReason as aK, type HeldBackRecipient as aL, type InReplyToEmail as aM, type ListApiKeysParams as aN, type ListApiKeysResult as aO, type ListAutomationRunsParams as aP, type ListAutomationRunsResult as aQ, type ListAutomationsResult as aR, type ListBurrowGuardChecksParams as aS, type ListBurrowGuardChecksResult 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 ListReceivedEmailsParams as a_, type DeliverabilityMailServerRelay as aa, type DeliverabilityWindow as ab, type DmarcDailyPoint as ac, type DmarcMonitoring as ad, type DmarcMonitoringDisabled as ae, type DmarcReadiness as af, type DmarcReadinessVerdict as ag, type DmarcSource as ah, type DmarcSourceStatus as ai, type DmarcStatus as aj, type DnsProviderName as ak, type Domain as al, type DomainBimiAnalysis as am, type DomainBlocklistListing as an, type DomainBlocklistStatus as ao, type DomainBlocklists as ap, type DomainDetailResult as aq, type DomainDmarcAnalysis as ar, type DomainDnsAnalysis as as, type DomainStatus as at, type DomainTlsMode as au, type DomainTrackingDns as av, type DomainTrackingStatus as aw, type EmailDelivery as ax, type EmailListItem as ay, type EmailWebhookEventPayload as az, type ApiKey as b, type TwilioIntegrationResponse as b$, type ListSendersResult as b0, type ListSuppressionsParams as b1, type ListSuppressionsResult as b2, type ListTemplatesParams as b3, type ListTemplatesResult as b4, type ListTenantDomainsResult as b5, type ListTenantsParams as b6, type ListTenantsResult as b7, type ListTestInboxEmailsParams as b8, type ListTestInboxEmailsResult as b9, type Suppression as bA, TEST_INBOX_WAIT_DEFAULT_MS as bB, TEST_INBOX_WAIT_MAX_SECONDS as bC, type Template as bD, type TemplateFormat as bE, type TemplateLintWarning as bF, type TemplateStarter as bG, type TemplateStatus as bH, type TemplateVersion as bI, type Tenant as bJ, type TenantPauseSource as bK, type TenantRamp as bL, type TenantStats as bM, type TenantStatsResult as bN, type TenantStatus as bO, type TenantStreamPolicy as bP, type TestEmailWebhookParams as bQ, type TestEmailWebhookResult as bR, type TestInbox as bS, type TestInboxAddressOptions as bT, type TestInboxEmail as bU, type TestInboxEmailDetail as bV, type TestInboxHeader as bW, TestInboxResource as bX, type TestInboxUsage as bY, type TriggerEventParams as bZ, type TriggerEventResult as b_, type ListWebhookDeliveriesParams as ba, type ListWebhookDeliveriesResult as bb, type MailServerSigningStatus as bc, type MailStream as bd, type Migration as be, type MigrationDnsChange as bf, type MigrationDnsPlan as bg, type MigrationDomainItem as bh, type MigrationItemStatus as bi, type MigrationProvider as bj, type MigrationResource as bk, type MigrationSummary as bl, type MigrationTemplateItem as bm, type MigrationTotals as bn, type MigrationWebhookItem as bo, type ReceivedEmail as bp, type ReceivedEmailAttachment as bq, type ReceivedEmailAttachmentMeta as br, type RemoteApplyDnsCredentials as bs, type RemoveCategoryOptOutOptions as bt, type RunMigrationOptions as bu, type SendEmailParams as bv, type Sender as bw, type SesMigrationParams as bx, type StreamDeliverability as by, type SuppressedErrorDetails as bz, type ApiKeyMigrationParams as c, type TwilioIntegrationStatus as c0, type UpdateAutomationParams as c1, type UpdateBrandParams as c2, type UpdateBurrowGuardSiteParams as c3, type UpdateDomainParams as c4, type UpdateEmailParams as c5, type UpdateSenderParams as c6, type UpdateTemplateParams as c7, type UpdateTenantParams as c8, type UpdateWebhookParams as c9, type ValidateEmailResult as ca, type ValidationReason as cb, type ValidationVerdict as cc, type VerifyDomainResult as cd, type WaitForTestEmailParams as ce, type WebhookDelivery as cf, type WebhookDeliveryAttempt as cg, type WebhookDeliveryDetail as ch, type WebhookDeliveryStatus as ci, type WebhookEmailTag as cj, type WebhookEndpoint as ck, type WebhookEndpointHealth as cl, type WebhookEndpointWithSecret as cm, type WebhookEventType as cn, mergeMigrations as co, normalizeAccessToken as cp, type ApiKeyScope as d, type ApplyDnsParams as e, type ApplyDnsRecordResult as f, type ApplyDnsResult as g, type Asset as h, type Automation as i, type AutomationBranchQuestion as j, type AutomationBranchStep as k, type AutomationInlineEmail as l, type AutomationResult as m, type AutomationRun as n, type AutomationRunResponse as o, type AutomationRunStatus as p, type AutomationRunStep as q, type AutomationRunStepStatus as r, type AutomationSendEmailStep as s, type AutomationStatus as t, type AutomationStep as u, type AutomationTemplateEmail as v, type AutomationTrigger as w, type BatchSendEmailResult as x, type BounceType as y, type Brand as z };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as ApiErrorBody, D as DnsRecord } from './client-CTQyEXww.js';
2
- export { a as ApiErrorCode, b as ApiKey, c as ApiKeyMigrationParams, d as ApiKeyScope, e as ApplyDnsParams, f as ApplyDnsRecordResult, g as ApplyDnsResult, h as Asset, i as Automation, j as AutomationBranchQuestion, k as AutomationBranchStep, l as AutomationInlineEmail, m as AutomationResult, n as AutomationRun, o as AutomationRunResponse, p as AutomationRunStatus, q as AutomationRunStep, r as AutomationRunStepStatus, s as AutomationSendEmailStep, t as AutomationStatus, u as AutomationStep, v as AutomationTemplateEmail, w as AutomationTrigger, B as Batch, x as BatchSendEmailResult, y as BounceType, z as Brand, C as BrandLogo, E as BrandSettings, F as CancelBatchResult, H as CategoryOptOut, I as CategoryOptOutCategory, J as CategoryUnsubscribedErrorDetails, K as ConnectTwilioParams, L as ContactWebhookEventPayload, M as CreateApiKeyParams, N as CreateApiKeyResult, O as CreateAutomationParams, P as CreateDomainParams, Q as CreateDomainResult, R as CreateMigrationParams, T as CreateSenderParams, U as CreateSuppressionParams, V as CreateTemplateParams, W as CreateTenantParams, X as CreateWebhookParams, Y as DEFAULT_API_BASE_URL, Z as DailyRampLimitErrorDetails, _ as DeleteTenantResult, $ as DeliverabilityBucket, a0 as DeliverabilityDomainInsight, a1 as DeliverabilityInsightsResult, a2 as DeliverabilityMailServerRelay, a3 as DeliverabilityWindow, a4 as DmarcDailyPoint, a5 as DmarcMonitoring, a6 as DmarcMonitoringDisabled, a7 as DmarcReadiness, a8 as DmarcReadinessVerdict, a9 as DmarcSource, aa as DmarcSourceStatus, ab as DmarcStatus, ac as DnsProviderName, ad as Domain, ae as DomainBimiAnalysis, af as DomainBlocklistListing, ag as DomainBlocklistStatus, ah as DomainBlocklists, ai as DomainDetailResult, aj as DomainDmarcAnalysis, ak as DomainDnsAnalysis, al as DomainStatus, am as DomainTlsMode, an as DomainTrackingDns, ao as DomainTrackingStatus, ap as EmailDelivery, aq as EmailListItem, ar as EmailWebhookEventPayload, as as EmailWebhookEventType, at as EnableDmarcParams, au as EnableDmarcResult, av as EnrollmentSkip, aw as EventRecord, G as Groundmail, ax as GroundmailAccessToken, ay as GroundmailOptions, az as GroundmailTokenOptions, aA as GroundmailTokenProvider, aB as HeldBackErrorDetails, aC as HeldBackReason, aD as HeldBackRecipient, aE as InReplyToEmail, aF as ListApiKeysParams, aG as ListApiKeysResult, aH as ListAutomationRunsParams, aI as ListAutomationRunsResult, aJ as ListAutomationsResult, aK as ListCategoryOptOutsParams, aL as ListCategoryOptOutsResult, aM as ListDomainsParams, aN as ListDomainsResult, aO as ListEmailsParams, aP as ListEmailsResult, aQ as ListReceivedEmailsParams, aR as ListReceivedEmailsResult, aS as ListSendersResult, aT as ListSuppressionsParams, aU as ListSuppressionsResult, aV as ListTemplatesParams, aW as ListTemplatesResult, aX as ListTenantDomainsResult, aY as ListTenantsParams, aZ as ListTenantsResult, a_ as ListTestInboxEmailsParams, a$ as ListTestInboxEmailsResult, b0 as ListWebhookDeliveriesParams, b1 as ListWebhookDeliveriesResult, b2 as MailServerSigningStatus, b3 as MailStream, b4 as Migration, b5 as MigrationDnsChange, b6 as MigrationDnsPlan, b7 as MigrationDomainItem, b8 as MigrationItemStatus, b9 as MigrationProvider, ba as MigrationResource, bb as MigrationSummary, bc as MigrationTemplateItem, bd as MigrationTotals, be as MigrationWebhookItem, bf as ReceivedEmail, bg as ReceivedEmailAttachment, bh as ReceivedEmailAttachmentMeta, bi as RemoteApplyDnsCredentials, bj as RemoveCategoryOptOutOptions, bk as RunMigrationOptions, bl as SendEmailParams, S as SendEmailResult, bm as Sender, bn as SesMigrationParams, bo as StreamDeliverability, bp as SuppressedErrorDetails, bq as Suppression, br as TEST_INBOX_WAIT_DEFAULT_MS, bs as TEST_INBOX_WAIT_MAX_SECONDS, bt as Template, bu as TemplateFormat, bv as TemplateLintWarning, bw as TemplateStarter, bx as TemplateStatus, by as TemplateVersion, bz as Tenant, bA as TenantPauseSource, bB as TenantRamp, bC as TenantStats, bD as TenantStatsResult, bE as TenantStatus, bF as TenantStreamPolicy, bG as TestEmailWebhookParams, bH as TestEmailWebhookResult, bI as TestInbox, bJ as TestInboxAddressOptions, bK as TestInboxEmail, bL as TestInboxEmailDetail, bM as TestInboxHeader, bN as TestInboxResource, bO as TestInboxUsage, bP as TriggerEventParams, bQ as TriggerEventResult, bR as TwilioIntegrationResponse, bS as TwilioIntegrationStatus, bT as UpdateAutomationParams, bU as UpdateBrandParams, bV as UpdateDomainParams, bW as UpdateEmailParams, bX as UpdateSenderParams, bY as UpdateTemplateParams, bZ as UpdateTenantParams, b_ as UpdateWebhookParams, b$ as ValidateEmailResult, c0 as ValidationReason, c1 as ValidationVerdict, c2 as VerifyDomainResult, c3 as WaitForTestEmailParams, c4 as WebhookDelivery, c5 as WebhookDeliveryAttempt, c6 as WebhookDeliveryDetail, c7 as WebhookDeliveryStatus, c8 as WebhookEmailTag, c9 as WebhookEndpoint, ca as WebhookEndpointHealth, cb as WebhookEndpointWithSecret, cc as WebhookEventType, cd as mergeMigrations, ce as normalizeAccessToken } from './client-CTQyEXww.js';
1
+ import { A as ApiErrorBody, D as DnsRecord } from './client-B_H1iNa7.js';
2
+ export { a as ApiErrorCode, b as ApiKey, c as ApiKeyMigrationParams, d as ApiKeyScope, e as ApplyDnsParams, f as ApplyDnsRecordResult, g as ApplyDnsResult, h as Asset, i as Automation, j as AutomationBranchQuestion, k as AutomationBranchStep, l as AutomationInlineEmail, m as AutomationResult, n as AutomationRun, o as AutomationRunResponse, p as AutomationRunStatus, q as AutomationRunStep, r as AutomationRunStepStatus, s as AutomationSendEmailStep, t as AutomationStatus, u as AutomationStep, v as AutomationTemplateEmail, w as AutomationTrigger, B as Batch, x as BatchSendEmailResult, y as BounceType, z as Brand, C as BrandLogo, E as BrandSettings, F as BurrowGuardCheck, H as BurrowGuardReason, I as BurrowGuardResource, J as BurrowGuardSite, K as BurrowGuardSiteWithSecret, L as BurrowGuardVerifyParams, M as BurrowGuardVerifyResult, N as CancelBatchResult, O as CategoryOptOut, P as CategoryOptOutCategory, Q as CategoryUnsubscribedErrorDetails, R as ConnectTwilioParams, T as ContactWebhookEventPayload, U as CreateApiKeyParams, V as CreateApiKeyResult, W as CreateAutomationParams, X as CreateBurrowGuardSiteParams, Y as CreateDomainParams, Z as CreateDomainResult, _ as CreateMigrationParams, $ as CreateSenderParams, a0 as CreateSuppressionParams, a1 as CreateTemplateParams, a2 as CreateTenantParams, a3 as CreateWebhookParams, a4 as DEFAULT_API_BASE_URL, a5 as DailyRampLimitErrorDetails, a6 as DeleteTenantResult, a7 as DeliverabilityBucket, a8 as DeliverabilityDomainInsight, a9 as DeliverabilityInsightsResult, aa as DeliverabilityMailServerRelay, ab as DeliverabilityWindow, ac as DmarcDailyPoint, ad as DmarcMonitoring, ae as DmarcMonitoringDisabled, af as DmarcReadiness, ag as DmarcReadinessVerdict, ah as DmarcSource, ai as DmarcSourceStatus, aj as DmarcStatus, ak as DnsProviderName, al as Domain, am as DomainBimiAnalysis, an as DomainBlocklistListing, ao as DomainBlocklistStatus, ap as DomainBlocklists, aq as DomainDetailResult, ar as DomainDmarcAnalysis, as as DomainDnsAnalysis, at as DomainStatus, au as DomainTlsMode, av as DomainTrackingDns, aw as DomainTrackingStatus, ax as EmailDelivery, ay as EmailListItem, az as EmailWebhookEventPayload, aA as EmailWebhookEventType, aB as EnableDmarcParams, aC as EnableDmarcResult, aD as EnrollmentSkip, aE as EventRecord, G as Groundmail, aF as GroundmailAccessToken, aG as GroundmailOptions, aH as GroundmailTokenOptions, aI as GroundmailTokenProvider, aJ as HeldBackErrorDetails, aK as HeldBackReason, aL as HeldBackRecipient, aM as InReplyToEmail, aN as ListApiKeysParams, aO as ListApiKeysResult, aP as ListAutomationRunsParams, aQ as ListAutomationRunsResult, aR as ListAutomationsResult, aS as ListBurrowGuardChecksParams, aT as ListBurrowGuardChecksResult, aU as ListCategoryOptOutsParams, aV as ListCategoryOptOutsResult, aW as ListDomainsParams, aX as ListDomainsResult, aY as ListEmailsParams, aZ as ListEmailsResult, a_ as ListReceivedEmailsParams, a$ as ListReceivedEmailsResult, b0 as ListSendersResult, b1 as ListSuppressionsParams, b2 as ListSuppressionsResult, b3 as ListTemplatesParams, b4 as ListTemplatesResult, b5 as ListTenantDomainsResult, b6 as ListTenantsParams, b7 as ListTenantsResult, b8 as ListTestInboxEmailsParams, b9 as ListTestInboxEmailsResult, ba as ListWebhookDeliveriesParams, bb as ListWebhookDeliveriesResult, bc as MailServerSigningStatus, bd as MailStream, be as Migration, bf as MigrationDnsChange, bg as MigrationDnsPlan, bh as MigrationDomainItem, bi as MigrationItemStatus, bj as MigrationProvider, bk as MigrationResource, bl as MigrationSummary, bm as MigrationTemplateItem, bn as MigrationTotals, bo as MigrationWebhookItem, bp as ReceivedEmail, bq as ReceivedEmailAttachment, br as ReceivedEmailAttachmentMeta, bs as RemoteApplyDnsCredentials, bt as RemoveCategoryOptOutOptions, bu as RunMigrationOptions, bv as SendEmailParams, S as SendEmailResult, bw as Sender, bx as SesMigrationParams, by as StreamDeliverability, bz as SuppressedErrorDetails, bA as Suppression, bB as TEST_INBOX_WAIT_DEFAULT_MS, bC as TEST_INBOX_WAIT_MAX_SECONDS, bD as Template, bE as TemplateFormat, bF as TemplateLintWarning, bG as TemplateStarter, bH as TemplateStatus, bI as TemplateVersion, bJ as Tenant, bK as TenantPauseSource, bL as TenantRamp, bM as TenantStats, bN as TenantStatsResult, bO as TenantStatus, bP as TenantStreamPolicy, bQ as TestEmailWebhookParams, bR as TestEmailWebhookResult, bS as TestInbox, bT as TestInboxAddressOptions, bU as TestInboxEmail, bV as TestInboxEmailDetail, bW as TestInboxHeader, bX as TestInboxResource, bY as TestInboxUsage, bZ as TriggerEventParams, b_ as TriggerEventResult, b$ as TwilioIntegrationResponse, c0 as TwilioIntegrationStatus, c1 as UpdateAutomationParams, c2 as UpdateBrandParams, c3 as UpdateBurrowGuardSiteParams, c4 as UpdateDomainParams, c5 as UpdateEmailParams, c6 as UpdateSenderParams, c7 as UpdateTemplateParams, c8 as UpdateTenantParams, c9 as UpdateWebhookParams, ca as ValidateEmailResult, cb as ValidationReason, cc as ValidationVerdict, cd as VerifyDomainResult, ce as WaitForTestEmailParams, cf as WebhookDelivery, cg as WebhookDeliveryAttempt, ch as WebhookDeliveryDetail, ci as WebhookDeliveryStatus, cj as WebhookEmailTag, ck as WebhookEndpoint, cl as WebhookEndpointHealth, cm as WebhookEndpointWithSecret, cn as WebhookEventType, co as mergeMigrations, cp as normalizeAccessToken } from './client-B_H1iNa7.js';
3
3
 
4
4
  type GroundmailErrorOptions = {
5
5
  code?: string;
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import {
2
+ BurrowGuardResource,
2
3
  DEFAULT_API_BASE_URL,
3
4
  Groundmail,
4
5
  GroundmailError,
@@ -12,7 +13,7 @@ import {
12
13
  normalizeAccessToken,
13
14
  signWebhookPayload,
14
15
  verifyWebhookSignature
15
- } from "./chunk-V4ZZRJ3Q.js";
16
+ } from "./chunk-65NWGUZM.js";
16
17
 
17
18
  // src/simulator.ts
18
19
  var SIMULATOR_DOMAIN = "simulator.groundmail.dev";
@@ -34,6 +35,7 @@ function isTestApiKey(key) {
34
35
  return Boolean(key?.startsWith(TEST_API_KEY_PREFIX));
35
36
  }
36
37
  export {
38
+ BurrowGuardResource,
37
39
  DEFAULT_API_BASE_URL,
38
40
  Groundmail,
39
41
  GroundmailError,
package/dist/payload.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { G as Groundmail } from './client-CTQyEXww.js';
1
+ import { G as Groundmail } from './client-B_H1iNa7.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-V4ZZRJ3Q.js";
4
+ } from "./chunk-65NWGUZM.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.39.1",
3
+ "version": "0.41.0",
4
4
  "description": "Groundmail transactional email API client",
5
5
  "license": "MIT",
6
6
  "type": "module",