@marlinjai/mail-sdk 0.15.2 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -382,7 +382,7 @@ declare function createNamespaces(config: CoreConfig): {
382
382
  id: string;
383
383
  details: Record<string, unknown>;
384
384
  created_at: string;
385
- action: "workspace.created" | "workspace.updated" | "workspace.company_changed" | "member.added" | "member.role_changed" | "member.removed" | "member.invited" | "invite.revoked" | "api_key.created" | "api_key.revoked" | "provider.created" | "provider.updated" | "provider.deleted" | "provider.events_registered" | "provider.events_secret_set" | "provider.bounces_halted" | "provider.anomaly_cleared" | "topic.created" | "topic.updated" | "topic.deleted" | "template.created" | "template.updated" | "template.deleted" | "template.inputs_declared" | "saved_section.created" | "saved_section.updated" | "saved_section.deleted" | "asset.uploaded" | "asset.imported" | "contact.erased" | "suppression.created" | "suppression.deleted" | "mailing.created" | "mailing.sent" | "mailing.paused" | "mailing.resumed" | "mailing.cancelled" | "mailing.deleted" | "mailing.retried" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.secret_rotated" | "webhook.redelivered" | "contact.unsubscribed" | "tag.created" | "tag.deleted" | "tag.assigned" | "tag.unassigned" | "contact_property.created" | "contact_property.deleted" | "segment.created" | "segment.updated" | "segment.deleted" | "signup_form.created" | "signup_form.updated" | "signup_form.deleted" | "contact.subscribed" | "import.created" | "import.mapped" | "import.committed" | "import.cancelled" | "import.finished" | "mailing.scheduled" | "mailing.unscheduled" | "mailing.schedule_failed" | "mailing.ab_test_updated" | "mailing.ab_winner_selected" | "tracking.updated" | "billing.checkout_started" | "billing.subscription_changed" | "billing.exemption_changed" | "automation.created" | "automation.updated" | "automation.published" | "automation.paused" | "automation.resumed" | "automation.archived" | "automation.deleted" | "automation.duplicated" | "automation.enrolled" | "automation.run_ended" | "event.recorded";
385
+ action: "workspace.created" | "workspace.updated" | "workspace.company_changed" | "member.added" | "member.role_changed" | "member.removed" | "member.invited" | "invite.revoked" | "api_key.created" | "api_key.revoked" | "provider.created" | "provider.updated" | "provider.deleted" | "provider.events_registered" | "provider.events_secret_set" | "provider.bounces_halted" | "provider.anomaly_cleared" | "sending_domain.created" | "sending_domain.updated" | "sending_domain.checked" | "sending_domain.deleted" | "topic.created" | "topic.updated" | "topic.deleted" | "template.created" | "template.updated" | "template.deleted" | "template.inputs_declared" | "saved_section.created" | "saved_section.updated" | "saved_section.deleted" | "asset.uploaded" | "asset.imported" | "contact.erased" | "suppression.created" | "suppression.deleted" | "mailing.created" | "mailing.sent" | "mailing.paused" | "mailing.resumed" | "mailing.cancelled" | "mailing.deleted" | "mailing.retried" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.secret_rotated" | "webhook.redelivered" | "contact.unsubscribed" | "tag.created" | "tag.deleted" | "tag.assigned" | "tag.unassigned" | "contact_property.created" | "contact_property.deleted" | "segment.created" | "segment.updated" | "segment.deleted" | "signup_form.created" | "signup_form.updated" | "signup_form.deleted" | "contact.subscribed" | "import.created" | "import.mapped" | "import.committed" | "import.cancelled" | "import.finished" | "mailing.scheduled" | "mailing.unscheduled" | "mailing.schedule_failed" | "mailing.ab_test_updated" | "mailing.ab_winner_selected" | "tracking.updated" | "billing.checkout_started" | "billing.subscription_changed" | "billing.exemption_changed" | "billing.extra_sending_domains_changed" | "automation.created" | "automation.updated" | "automation.published" | "automation.paused" | "automation.resumed" | "automation.archived" | "automation.deleted" | "automation.duplicated" | "automation.enrolled" | "automation.run_ended" | "event.recorded";
386
386
  actor: {
387
387
  type: "member";
388
388
  subject: string;
@@ -1314,7 +1314,7 @@ declare function createNamespaces(config: CoreConfig): {
1314
1314
  status: "active" | "needs_secret";
1315
1315
  error: string | null;
1316
1316
  url: string;
1317
- source: "manual" | "automatic" | null;
1317
+ source: "manual" | "automatic" | "managed" | null;
1318
1318
  unmatched: number;
1319
1319
  };
1320
1320
  })[];
@@ -1387,7 +1387,7 @@ declare function createNamespaces(config: CoreConfig): {
1387
1387
  status: "active" | "needs_secret";
1388
1388
  error: string | null;
1389
1389
  url: string;
1390
- source: "manual" | "automatic" | null;
1390
+ source: "manual" | "automatic" | "managed" | null;
1391
1391
  unmatched: number;
1392
1392
  };
1393
1393
  }>;
@@ -1458,7 +1458,7 @@ declare function createNamespaces(config: CoreConfig): {
1458
1458
  status: "active" | "needs_secret";
1459
1459
  error: string | null;
1460
1460
  url: string;
1461
- source: "manual" | "automatic" | null;
1461
+ source: "manual" | "automatic" | "managed" | null;
1462
1462
  unmatched: number;
1463
1463
  };
1464
1464
  }>;
@@ -1529,7 +1529,7 @@ declare function createNamespaces(config: CoreConfig): {
1529
1529
  status: "active" | "needs_secret";
1530
1530
  error: string | null;
1531
1531
  url: string;
1532
- source: "manual" | "automatic" | null;
1532
+ source: "manual" | "automatic" | "managed" | null;
1533
1533
  unmatched: number;
1534
1534
  };
1535
1535
  }>;
@@ -1614,7 +1614,7 @@ declare function createNamespaces(config: CoreConfig): {
1614
1614
  status: "active" | "needs_secret";
1615
1615
  error: string | null;
1616
1616
  url: string;
1617
- source: "manual" | "automatic" | null;
1617
+ source: "manual" | "automatic" | "managed" | null;
1618
1618
  unmatched: number;
1619
1619
  };
1620
1620
  }>;
@@ -1686,11 +1686,142 @@ declare function createNamespaces(config: CoreConfig): {
1686
1686
  status: "active" | "needs_secret";
1687
1687
  error: string | null;
1688
1688
  url: string;
1689
- source: "manual" | "automatic" | null;
1689
+ source: "manual" | "automatic" | "managed" | null;
1690
1690
  unmatched: number;
1691
1691
  };
1692
1692
  }>;
1693
1693
  };
1694
+ /** Sending through Lumitra Mail from the workspace's own domain, registered and verified at Resend. */
1695
+ sendingDomains: {
1696
+ list: (query?: RouteQuery<"sendingDomains.list">, opts?: RequestOpts) => Promise<{
1697
+ data: {
1698
+ status: "failed" | "pending_dns" | "verifying" | "verified" | "temporary_failure";
1699
+ id: string;
1700
+ created_at: string;
1701
+ updated_at: string;
1702
+ provider_id: string | null;
1703
+ reply_to: string | null;
1704
+ last_error: string | null;
1705
+ from_name: string;
1706
+ from_email: string;
1707
+ domain: string;
1708
+ dns_mode: "manual" | "managed";
1709
+ records: {
1710
+ value: string;
1711
+ type: string;
1712
+ status: string;
1713
+ name: string;
1714
+ record: string;
1715
+ ttl: string;
1716
+ priority?: number | undefined;
1717
+ }[];
1718
+ checked_at: string | null;
1719
+ verified_at: string | null;
1720
+ }[];
1721
+ next_cursor: string | null;
1722
+ }>;
1723
+ create: (body: RouteBody<"sendingDomains.create">, opts?: RequestOpts) => Promise<{
1724
+ status: "failed" | "pending_dns" | "verifying" | "verified" | "temporary_failure";
1725
+ id: string;
1726
+ created_at: string;
1727
+ updated_at: string;
1728
+ provider_id: string | null;
1729
+ reply_to: string | null;
1730
+ last_error: string | null;
1731
+ from_name: string;
1732
+ from_email: string;
1733
+ domain: string;
1734
+ dns_mode: "manual" | "managed";
1735
+ records: {
1736
+ value: string;
1737
+ type: string;
1738
+ status: string;
1739
+ name: string;
1740
+ record: string;
1741
+ ttl: string;
1742
+ priority?: number | undefined;
1743
+ }[];
1744
+ checked_at: string | null;
1745
+ verified_at: string | null;
1746
+ }>;
1747
+ get: (id: string, opts?: RequestOpts) => Promise<{
1748
+ status: "failed" | "pending_dns" | "verifying" | "verified" | "temporary_failure";
1749
+ id: string;
1750
+ created_at: string;
1751
+ updated_at: string;
1752
+ provider_id: string | null;
1753
+ reply_to: string | null;
1754
+ last_error: string | null;
1755
+ from_name: string;
1756
+ from_email: string;
1757
+ domain: string;
1758
+ dns_mode: "manual" | "managed";
1759
+ records: {
1760
+ value: string;
1761
+ type: string;
1762
+ status: string;
1763
+ name: string;
1764
+ record: string;
1765
+ ttl: string;
1766
+ priority?: number | undefined;
1767
+ }[];
1768
+ checked_at: string | null;
1769
+ verified_at: string | null;
1770
+ }>;
1771
+ /** Changes the sender; a different domain is removed and added anew. */
1772
+ update: (id: string, body: RouteBody<"sendingDomains.update">, opts?: RequestOpts) => Promise<{
1773
+ status: "failed" | "pending_dns" | "verifying" | "verified" | "temporary_failure";
1774
+ id: string;
1775
+ created_at: string;
1776
+ updated_at: string;
1777
+ provider_id: string | null;
1778
+ reply_to: string | null;
1779
+ last_error: string | null;
1780
+ from_name: string;
1781
+ from_email: string;
1782
+ domain: string;
1783
+ dns_mode: "manual" | "managed";
1784
+ records: {
1785
+ value: string;
1786
+ type: string;
1787
+ status: string;
1788
+ name: string;
1789
+ record: string;
1790
+ ttl: string;
1791
+ priority?: number | undefined;
1792
+ }[];
1793
+ checked_at: string | null;
1794
+ verified_at: string | null;
1795
+ }>;
1796
+ /** Asks Resend to check the DNS records now and returns what it reports. */
1797
+ check: (id: string, opts?: RequestOpts) => Promise<{
1798
+ status: "failed" | "pending_dns" | "verifying" | "verified" | "temporary_failure";
1799
+ id: string;
1800
+ created_at: string;
1801
+ updated_at: string;
1802
+ provider_id: string | null;
1803
+ reply_to: string | null;
1804
+ last_error: string | null;
1805
+ from_name: string;
1806
+ from_email: string;
1807
+ domain: string;
1808
+ dns_mode: "manual" | "managed";
1809
+ records: {
1810
+ value: string;
1811
+ type: string;
1812
+ status: string;
1813
+ name: string;
1814
+ record: string;
1815
+ ttl: string;
1816
+ priority?: number | undefined;
1817
+ }[];
1818
+ checked_at: string | null;
1819
+ verified_at: string | null;
1820
+ }>;
1821
+ delete: (id: string, opts?: RequestOpts) => Promise<{
1822
+ ok: true;
1823
+ }>;
1824
+ };
1694
1825
  topics: {
1695
1826
  list: (query?: RouteQuery<"topics.list">, opts?: RequestOpts) => Promise<{
1696
1827
  data: {
@@ -3441,15 +3572,22 @@ declare function createNamespaces(config: CoreConfig): {
3441
3572
  webhook_endpoints: number | null;
3442
3573
  active_automations: number | null;
3443
3574
  automation_steps: number | null;
3575
+ sending_domains: number | null;
3444
3576
  };
3445
3577
  features: {
3446
3578
  tracking: boolean;
3447
3579
  ab_testing: boolean;
3448
- custom_domains: boolean;
3449
3580
  automations: boolean;
3450
3581
  };
3451
3582
  sellable: boolean;
3452
3583
  }[];
3584
+ addons: {
3585
+ sending_domain: {
3586
+ currency: string;
3587
+ monthly_price_cents: number;
3588
+ sellable: boolean;
3589
+ };
3590
+ };
3453
3591
  }>;
3454
3592
  subscription: (opts?: RequestOpts) => Promise<{
3455
3593
  status: "cancelled" | "active" | "trialing" | "past_due";
@@ -3459,18 +3597,19 @@ declare function createNamespaces(config: CoreConfig): {
3459
3597
  current_period_end: string;
3460
3598
  cancel_at_period_end: boolean;
3461
3599
  billing_exempt: boolean;
3600
+ extra_sending_domains: number;
3462
3601
  }>;
3463
3602
  usage: (opts?: RequestOpts) => Promise<{
3464
3603
  warnings: {
3465
3604
  limit: number;
3466
- metric: "contacts" | "members" | "providers" | "webhook_endpoints" | "active_automations" | "messages";
3605
+ metric: "contacts" | "members" | "providers" | "webhook_endpoints" | "active_automations" | "sending_domains" | "messages";
3467
3606
  used: number;
3468
3607
  level: "reached" | "approaching";
3469
3608
  }[];
3470
3609
  plan: "free" | "starter" | "growth" | "design_partner";
3471
3610
  period_start: string;
3472
3611
  period_end: string;
3473
- metrics: Partial<Record<"contacts" | "members" | "providers" | "webhook_endpoints" | "active_automations" | "messages", {
3612
+ metrics: Partial<Record<"contacts" | "members" | "providers" | "webhook_endpoints" | "active_automations" | "sending_domains" | "messages", {
3474
3613
  limit: number | null;
3475
3614
  used: number;
3476
3615
  }>>;
@@ -3481,6 +3620,17 @@ declare function createNamespaces(config: CoreConfig): {
3481
3620
  portal: (body: RouteBody<"billing.portal">, opts?: RequestOpts) => Promise<{
3482
3621
  url: string;
3483
3622
  }>;
3623
+ /** How many own sending domains the workspace pays for beyond its plan's (the add-on, monthly). */
3624
+ setExtraSendingDomains: (body: RouteBody<"billing.setExtraSendingDomains">, opts?: RequestOpts) => Promise<{
3625
+ status: "cancelled" | "active" | "trialing" | "past_due";
3626
+ workspace_id: string;
3627
+ plan: "free" | "starter" | "growth" | "design_partner";
3628
+ current_period_start: string;
3629
+ current_period_end: string;
3630
+ cancel_at_period_end: boolean;
3631
+ billing_exempt: boolean;
3632
+ extra_sending_domains: number;
3633
+ }>;
3484
3634
  };
3485
3635
  automations: {
3486
3636
  list: (query?: RouteQuery<"automations.list">, opts?: RequestOpts) => Promise<{
package/dist/index.d.ts CHANGED
@@ -382,7 +382,7 @@ declare function createNamespaces(config: CoreConfig): {
382
382
  id: string;
383
383
  details: Record<string, unknown>;
384
384
  created_at: string;
385
- action: "workspace.created" | "workspace.updated" | "workspace.company_changed" | "member.added" | "member.role_changed" | "member.removed" | "member.invited" | "invite.revoked" | "api_key.created" | "api_key.revoked" | "provider.created" | "provider.updated" | "provider.deleted" | "provider.events_registered" | "provider.events_secret_set" | "provider.bounces_halted" | "provider.anomaly_cleared" | "topic.created" | "topic.updated" | "topic.deleted" | "template.created" | "template.updated" | "template.deleted" | "template.inputs_declared" | "saved_section.created" | "saved_section.updated" | "saved_section.deleted" | "asset.uploaded" | "asset.imported" | "contact.erased" | "suppression.created" | "suppression.deleted" | "mailing.created" | "mailing.sent" | "mailing.paused" | "mailing.resumed" | "mailing.cancelled" | "mailing.deleted" | "mailing.retried" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.secret_rotated" | "webhook.redelivered" | "contact.unsubscribed" | "tag.created" | "tag.deleted" | "tag.assigned" | "tag.unassigned" | "contact_property.created" | "contact_property.deleted" | "segment.created" | "segment.updated" | "segment.deleted" | "signup_form.created" | "signup_form.updated" | "signup_form.deleted" | "contact.subscribed" | "import.created" | "import.mapped" | "import.committed" | "import.cancelled" | "import.finished" | "mailing.scheduled" | "mailing.unscheduled" | "mailing.schedule_failed" | "mailing.ab_test_updated" | "mailing.ab_winner_selected" | "tracking.updated" | "billing.checkout_started" | "billing.subscription_changed" | "billing.exemption_changed" | "automation.created" | "automation.updated" | "automation.published" | "automation.paused" | "automation.resumed" | "automation.archived" | "automation.deleted" | "automation.duplicated" | "automation.enrolled" | "automation.run_ended" | "event.recorded";
385
+ action: "workspace.created" | "workspace.updated" | "workspace.company_changed" | "member.added" | "member.role_changed" | "member.removed" | "member.invited" | "invite.revoked" | "api_key.created" | "api_key.revoked" | "provider.created" | "provider.updated" | "provider.deleted" | "provider.events_registered" | "provider.events_secret_set" | "provider.bounces_halted" | "provider.anomaly_cleared" | "sending_domain.created" | "sending_domain.updated" | "sending_domain.checked" | "sending_domain.deleted" | "topic.created" | "topic.updated" | "topic.deleted" | "template.created" | "template.updated" | "template.deleted" | "template.inputs_declared" | "saved_section.created" | "saved_section.updated" | "saved_section.deleted" | "asset.uploaded" | "asset.imported" | "contact.erased" | "suppression.created" | "suppression.deleted" | "mailing.created" | "mailing.sent" | "mailing.paused" | "mailing.resumed" | "mailing.cancelled" | "mailing.deleted" | "mailing.retried" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.secret_rotated" | "webhook.redelivered" | "contact.unsubscribed" | "tag.created" | "tag.deleted" | "tag.assigned" | "tag.unassigned" | "contact_property.created" | "contact_property.deleted" | "segment.created" | "segment.updated" | "segment.deleted" | "signup_form.created" | "signup_form.updated" | "signup_form.deleted" | "contact.subscribed" | "import.created" | "import.mapped" | "import.committed" | "import.cancelled" | "import.finished" | "mailing.scheduled" | "mailing.unscheduled" | "mailing.schedule_failed" | "mailing.ab_test_updated" | "mailing.ab_winner_selected" | "tracking.updated" | "billing.checkout_started" | "billing.subscription_changed" | "billing.exemption_changed" | "billing.extra_sending_domains_changed" | "automation.created" | "automation.updated" | "automation.published" | "automation.paused" | "automation.resumed" | "automation.archived" | "automation.deleted" | "automation.duplicated" | "automation.enrolled" | "automation.run_ended" | "event.recorded";
386
386
  actor: {
387
387
  type: "member";
388
388
  subject: string;
@@ -1314,7 +1314,7 @@ declare function createNamespaces(config: CoreConfig): {
1314
1314
  status: "active" | "needs_secret";
1315
1315
  error: string | null;
1316
1316
  url: string;
1317
- source: "manual" | "automatic" | null;
1317
+ source: "manual" | "automatic" | "managed" | null;
1318
1318
  unmatched: number;
1319
1319
  };
1320
1320
  })[];
@@ -1387,7 +1387,7 @@ declare function createNamespaces(config: CoreConfig): {
1387
1387
  status: "active" | "needs_secret";
1388
1388
  error: string | null;
1389
1389
  url: string;
1390
- source: "manual" | "automatic" | null;
1390
+ source: "manual" | "automatic" | "managed" | null;
1391
1391
  unmatched: number;
1392
1392
  };
1393
1393
  }>;
@@ -1458,7 +1458,7 @@ declare function createNamespaces(config: CoreConfig): {
1458
1458
  status: "active" | "needs_secret";
1459
1459
  error: string | null;
1460
1460
  url: string;
1461
- source: "manual" | "automatic" | null;
1461
+ source: "manual" | "automatic" | "managed" | null;
1462
1462
  unmatched: number;
1463
1463
  };
1464
1464
  }>;
@@ -1529,7 +1529,7 @@ declare function createNamespaces(config: CoreConfig): {
1529
1529
  status: "active" | "needs_secret";
1530
1530
  error: string | null;
1531
1531
  url: string;
1532
- source: "manual" | "automatic" | null;
1532
+ source: "manual" | "automatic" | "managed" | null;
1533
1533
  unmatched: number;
1534
1534
  };
1535
1535
  }>;
@@ -1614,7 +1614,7 @@ declare function createNamespaces(config: CoreConfig): {
1614
1614
  status: "active" | "needs_secret";
1615
1615
  error: string | null;
1616
1616
  url: string;
1617
- source: "manual" | "automatic" | null;
1617
+ source: "manual" | "automatic" | "managed" | null;
1618
1618
  unmatched: number;
1619
1619
  };
1620
1620
  }>;
@@ -1686,11 +1686,142 @@ declare function createNamespaces(config: CoreConfig): {
1686
1686
  status: "active" | "needs_secret";
1687
1687
  error: string | null;
1688
1688
  url: string;
1689
- source: "manual" | "automatic" | null;
1689
+ source: "manual" | "automatic" | "managed" | null;
1690
1690
  unmatched: number;
1691
1691
  };
1692
1692
  }>;
1693
1693
  };
1694
+ /** Sending through Lumitra Mail from the workspace's own domain, registered and verified at Resend. */
1695
+ sendingDomains: {
1696
+ list: (query?: RouteQuery<"sendingDomains.list">, opts?: RequestOpts) => Promise<{
1697
+ data: {
1698
+ status: "failed" | "pending_dns" | "verifying" | "verified" | "temporary_failure";
1699
+ id: string;
1700
+ created_at: string;
1701
+ updated_at: string;
1702
+ provider_id: string | null;
1703
+ reply_to: string | null;
1704
+ last_error: string | null;
1705
+ from_name: string;
1706
+ from_email: string;
1707
+ domain: string;
1708
+ dns_mode: "manual" | "managed";
1709
+ records: {
1710
+ value: string;
1711
+ type: string;
1712
+ status: string;
1713
+ name: string;
1714
+ record: string;
1715
+ ttl: string;
1716
+ priority?: number | undefined;
1717
+ }[];
1718
+ checked_at: string | null;
1719
+ verified_at: string | null;
1720
+ }[];
1721
+ next_cursor: string | null;
1722
+ }>;
1723
+ create: (body: RouteBody<"sendingDomains.create">, opts?: RequestOpts) => Promise<{
1724
+ status: "failed" | "pending_dns" | "verifying" | "verified" | "temporary_failure";
1725
+ id: string;
1726
+ created_at: string;
1727
+ updated_at: string;
1728
+ provider_id: string | null;
1729
+ reply_to: string | null;
1730
+ last_error: string | null;
1731
+ from_name: string;
1732
+ from_email: string;
1733
+ domain: string;
1734
+ dns_mode: "manual" | "managed";
1735
+ records: {
1736
+ value: string;
1737
+ type: string;
1738
+ status: string;
1739
+ name: string;
1740
+ record: string;
1741
+ ttl: string;
1742
+ priority?: number | undefined;
1743
+ }[];
1744
+ checked_at: string | null;
1745
+ verified_at: string | null;
1746
+ }>;
1747
+ get: (id: string, opts?: RequestOpts) => Promise<{
1748
+ status: "failed" | "pending_dns" | "verifying" | "verified" | "temporary_failure";
1749
+ id: string;
1750
+ created_at: string;
1751
+ updated_at: string;
1752
+ provider_id: string | null;
1753
+ reply_to: string | null;
1754
+ last_error: string | null;
1755
+ from_name: string;
1756
+ from_email: string;
1757
+ domain: string;
1758
+ dns_mode: "manual" | "managed";
1759
+ records: {
1760
+ value: string;
1761
+ type: string;
1762
+ status: string;
1763
+ name: string;
1764
+ record: string;
1765
+ ttl: string;
1766
+ priority?: number | undefined;
1767
+ }[];
1768
+ checked_at: string | null;
1769
+ verified_at: string | null;
1770
+ }>;
1771
+ /** Changes the sender; a different domain is removed and added anew. */
1772
+ update: (id: string, body: RouteBody<"sendingDomains.update">, opts?: RequestOpts) => Promise<{
1773
+ status: "failed" | "pending_dns" | "verifying" | "verified" | "temporary_failure";
1774
+ id: string;
1775
+ created_at: string;
1776
+ updated_at: string;
1777
+ provider_id: string | null;
1778
+ reply_to: string | null;
1779
+ last_error: string | null;
1780
+ from_name: string;
1781
+ from_email: string;
1782
+ domain: string;
1783
+ dns_mode: "manual" | "managed";
1784
+ records: {
1785
+ value: string;
1786
+ type: string;
1787
+ status: string;
1788
+ name: string;
1789
+ record: string;
1790
+ ttl: string;
1791
+ priority?: number | undefined;
1792
+ }[];
1793
+ checked_at: string | null;
1794
+ verified_at: string | null;
1795
+ }>;
1796
+ /** Asks Resend to check the DNS records now and returns what it reports. */
1797
+ check: (id: string, opts?: RequestOpts) => Promise<{
1798
+ status: "failed" | "pending_dns" | "verifying" | "verified" | "temporary_failure";
1799
+ id: string;
1800
+ created_at: string;
1801
+ updated_at: string;
1802
+ provider_id: string | null;
1803
+ reply_to: string | null;
1804
+ last_error: string | null;
1805
+ from_name: string;
1806
+ from_email: string;
1807
+ domain: string;
1808
+ dns_mode: "manual" | "managed";
1809
+ records: {
1810
+ value: string;
1811
+ type: string;
1812
+ status: string;
1813
+ name: string;
1814
+ record: string;
1815
+ ttl: string;
1816
+ priority?: number | undefined;
1817
+ }[];
1818
+ checked_at: string | null;
1819
+ verified_at: string | null;
1820
+ }>;
1821
+ delete: (id: string, opts?: RequestOpts) => Promise<{
1822
+ ok: true;
1823
+ }>;
1824
+ };
1694
1825
  topics: {
1695
1826
  list: (query?: RouteQuery<"topics.list">, opts?: RequestOpts) => Promise<{
1696
1827
  data: {
@@ -3441,15 +3572,22 @@ declare function createNamespaces(config: CoreConfig): {
3441
3572
  webhook_endpoints: number | null;
3442
3573
  active_automations: number | null;
3443
3574
  automation_steps: number | null;
3575
+ sending_domains: number | null;
3444
3576
  };
3445
3577
  features: {
3446
3578
  tracking: boolean;
3447
3579
  ab_testing: boolean;
3448
- custom_domains: boolean;
3449
3580
  automations: boolean;
3450
3581
  };
3451
3582
  sellable: boolean;
3452
3583
  }[];
3584
+ addons: {
3585
+ sending_domain: {
3586
+ currency: string;
3587
+ monthly_price_cents: number;
3588
+ sellable: boolean;
3589
+ };
3590
+ };
3453
3591
  }>;
3454
3592
  subscription: (opts?: RequestOpts) => Promise<{
3455
3593
  status: "cancelled" | "active" | "trialing" | "past_due";
@@ -3459,18 +3597,19 @@ declare function createNamespaces(config: CoreConfig): {
3459
3597
  current_period_end: string;
3460
3598
  cancel_at_period_end: boolean;
3461
3599
  billing_exempt: boolean;
3600
+ extra_sending_domains: number;
3462
3601
  }>;
3463
3602
  usage: (opts?: RequestOpts) => Promise<{
3464
3603
  warnings: {
3465
3604
  limit: number;
3466
- metric: "contacts" | "members" | "providers" | "webhook_endpoints" | "active_automations" | "messages";
3605
+ metric: "contacts" | "members" | "providers" | "webhook_endpoints" | "active_automations" | "sending_domains" | "messages";
3467
3606
  used: number;
3468
3607
  level: "reached" | "approaching";
3469
3608
  }[];
3470
3609
  plan: "free" | "starter" | "growth" | "design_partner";
3471
3610
  period_start: string;
3472
3611
  period_end: string;
3473
- metrics: Partial<Record<"contacts" | "members" | "providers" | "webhook_endpoints" | "active_automations" | "messages", {
3612
+ metrics: Partial<Record<"contacts" | "members" | "providers" | "webhook_endpoints" | "active_automations" | "sending_domains" | "messages", {
3474
3613
  limit: number | null;
3475
3614
  used: number;
3476
3615
  }>>;
@@ -3481,6 +3620,17 @@ declare function createNamespaces(config: CoreConfig): {
3481
3620
  portal: (body: RouteBody<"billing.portal">, opts?: RequestOpts) => Promise<{
3482
3621
  url: string;
3483
3622
  }>;
3623
+ /** How many own sending domains the workspace pays for beyond its plan's (the add-on, monthly). */
3624
+ setExtraSendingDomains: (body: RouteBody<"billing.setExtraSendingDomains">, opts?: RequestOpts) => Promise<{
3625
+ status: "cancelled" | "active" | "trialing" | "past_due";
3626
+ workspace_id: string;
3627
+ plan: "free" | "starter" | "growth" | "design_partner";
3628
+ current_period_start: string;
3629
+ current_period_end: string;
3630
+ cancel_at_period_end: boolean;
3631
+ billing_exempt: boolean;
3632
+ extra_sending_domains: number;
3633
+ }>;
3484
3634
  };
3485
3635
  automations: {
3486
3636
  list: (query?: RouteQuery<"automations.list">, opts?: RequestOpts) => Promise<{
package/dist/index.js CHANGED
@@ -537,6 +537,17 @@ function createNamespaces(config) {
537
537
  /** Stores the signing secret of a Resend webhook registered by hand, so bounces and complaints are accepted. */
538
538
  setEventsSecret: (id, body, opts) => execute(config, "providers.setEventsSecret", { params: { id }, body }, opts)
539
539
  },
540
+ /** Sending through Lumitra Mail from the workspace's own domain, registered and verified at Resend. */
541
+ sendingDomains: {
542
+ list: (query, opts) => execute(config, "sendingDomains.list", { query }, opts),
543
+ create: (body, opts) => execute(config, "sendingDomains.create", { body }, opts),
544
+ get: (id, opts) => execute(config, "sendingDomains.get", { params: { id } }, opts),
545
+ /** Changes the sender; a different domain is removed and added anew. */
546
+ update: (id, body, opts) => execute(config, "sendingDomains.update", { params: { id }, body }, opts),
547
+ /** Asks Resend to check the DNS records now and returns what it reports. */
548
+ check: (id, opts) => execute(config, "sendingDomains.check", { params: { id } }, opts),
549
+ delete: (id, opts) => execute(config, "sendingDomains.delete", { params: { id } }, opts)
550
+ },
540
551
  topics: {
541
552
  list: (query, opts) => execute(config, "topics.list", { query }, opts),
542
553
  create: (body, opts) => execute(config, "topics.create", { body }, opts),
@@ -668,7 +679,9 @@ function createNamespaces(config) {
668
679
  subscription: (opts) => execute(config, "billing.subscription", {}, opts),
669
680
  usage: (opts) => execute(config, "billing.usage", {}, opts),
670
681
  checkout: (body, opts) => execute(config, "billing.checkout", { body }, opts),
671
- portal: (body, opts) => execute(config, "billing.portal", { body }, opts)
682
+ portal: (body, opts) => execute(config, "billing.portal", { body }, opts),
683
+ /** How many own sending domains the workspace pays for beyond its plan's (the add-on, monthly). */
684
+ setExtraSendingDomains: (body, opts) => execute(config, "billing.setExtraSendingDomains", { body }, opts)
672
685
  },
673
686
  // A1: automations.
674
687
  automations: {
package/dist/index.mjs CHANGED
@@ -521,6 +521,17 @@ function createNamespaces(config) {
521
521
  /** Stores the signing secret of a Resend webhook registered by hand, so bounces and complaints are accepted. */
522
522
  setEventsSecret: (id, body, opts) => execute(config, "providers.setEventsSecret", { params: { id }, body }, opts)
523
523
  },
524
+ /** Sending through Lumitra Mail from the workspace's own domain, registered and verified at Resend. */
525
+ sendingDomains: {
526
+ list: (query, opts) => execute(config, "sendingDomains.list", { query }, opts),
527
+ create: (body, opts) => execute(config, "sendingDomains.create", { body }, opts),
528
+ get: (id, opts) => execute(config, "sendingDomains.get", { params: { id } }, opts),
529
+ /** Changes the sender; a different domain is removed and added anew. */
530
+ update: (id, body, opts) => execute(config, "sendingDomains.update", { params: { id }, body }, opts),
531
+ /** Asks Resend to check the DNS records now and returns what it reports. */
532
+ check: (id, opts) => execute(config, "sendingDomains.check", { params: { id } }, opts),
533
+ delete: (id, opts) => execute(config, "sendingDomains.delete", { params: { id } }, opts)
534
+ },
524
535
  topics: {
525
536
  list: (query, opts) => execute(config, "topics.list", { query }, opts),
526
537
  create: (body, opts) => execute(config, "topics.create", { body }, opts),
@@ -652,7 +663,9 @@ function createNamespaces(config) {
652
663
  subscription: (opts) => execute(config, "billing.subscription", {}, opts),
653
664
  usage: (opts) => execute(config, "billing.usage", {}, opts),
654
665
  checkout: (body, opts) => execute(config, "billing.checkout", { body }, opts),
655
- portal: (body, opts) => execute(config, "billing.portal", { body }, opts)
666
+ portal: (body, opts) => execute(config, "billing.portal", { body }, opts),
667
+ /** How many own sending domains the workspace pays for beyond its plan's (the add-on, monthly). */
668
+ setExtraSendingDomains: (body, opts) => execute(config, "billing.setExtraSendingDomains", { body }, opts)
656
669
  },
657
670
  // A1: automations.
658
671
  automations: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.15.2",
6
+ "version": "0.17.0",
7
7
  "description": "Typed client for the Lumitra Mail v1 API: Node and edge runtimes, retries with idempotency, cursor pagination, webhook verification",
8
8
  "license": "MIT",
9
9
  "repository": {
@@ -32,7 +32,7 @@
32
32
  "LICENSE"
33
33
  ],
34
34
  "dependencies": {
35
- "@marlinjai/mail-contract": "^0.15.2"
35
+ "@marlinjai/mail-contract": "^0.17.0"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "zod": "^3.25.0"