@sentroy-co/client-sdk 2.5.2 → 2.6.2

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,EACP,eAAe,EACf,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,UAAU,CAAA;AAEjB,cAAM,iBAAiB;IAEnB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,SAAS;gBADT,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM;IAG3B;;;;;OAKG;IACG,IAAI,CACR,MAAM,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,yBAAyB,CAAC;IAWrC,6EAA6E;IACvE,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAMvD;;;OAGG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAKjE;AAED,qBAAa,QAAQ;IACP,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEpC,sEAAsE;IAChE,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOjD,kCAAkC;IAC5B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvC;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3D,+CAA+C;IACzC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAOvE,8DAA8D;IACxD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC;;;;OAIG;IACG,IAAI,CACR,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,qBAAqB,CAAC;IAOjC,kDAAkD;IAClD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB;CAGjD"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Webhooks = void 0;
4
+ class WebhookDeliveries {
5
+ http;
6
+ webhookId;
7
+ constructor(http, webhookId) {
8
+ this.http = http;
9
+ this.webhookId = webhookId;
10
+ }
11
+ /**
12
+ * List recorded test/replay dispatches for a webhook. Production
13
+ * deliveries (driven by the mail server) live elsewhere — this
14
+ * returns only what was fired from the Sentroy console or this SDK's
15
+ * `test` / `replay` calls.
16
+ */
17
+ async list(params) {
18
+ const query = {};
19
+ if (params?.page !== undefined)
20
+ query.page = params.page;
21
+ if (params?.limit !== undefined)
22
+ query.limit = params.limit;
23
+ if (params?.status)
24
+ query.status = params.status;
25
+ return this.http.get(`/webhooks/${encodeURIComponent(this.webhookId)}/deliveries`, query);
26
+ }
27
+ /** Get a single delivery row, including the full payload + response body. */
28
+ async get(deliveryId) {
29
+ return this.http.get(`/webhooks/${encodeURIComponent(this.webhookId)}/deliveries/${encodeURIComponent(deliveryId)}`);
30
+ }
31
+ /**
32
+ * Re-fire the recorded payload at the webhook's *current* URL. The
33
+ * new row is linked to this one via `replayOf`.
34
+ */
35
+ async replay(deliveryId) {
36
+ return this.http.post(`/webhooks/${encodeURIComponent(this.webhookId)}/deliveries/${encodeURIComponent(deliveryId)}/replay`);
37
+ }
38
+ }
39
+ class Webhooks {
40
+ http;
41
+ constructor(http) {
42
+ this.http = http;
43
+ }
44
+ /** List webhooks across the company, or scoped to a single domain. */
45
+ async list(domainId) {
46
+ return this.http.get("/webhooks", domainId ? { domainId } : undefined);
47
+ }
48
+ /** Get a single webhook by id. */
49
+ async get(id) {
50
+ return this.http.get(`/webhooks/${encodeURIComponent(id)}`);
51
+ }
52
+ /**
53
+ * Register a webhook for one or more events on a domain. The response
54
+ * includes a `secret` — store it now; subsequent reads only return the
55
+ * webhook config without the secret.
56
+ */
57
+ async create(params) {
58
+ return this.http.post("/webhooks", params);
59
+ }
60
+ /** Patch URL, event list, or `active` flag. */
61
+ async update(id, params) {
62
+ return this.http.patch(`/webhooks/${encodeURIComponent(id)}`, params);
63
+ }
64
+ /** Delete a webhook. In-flight deliveries are not retried. */
65
+ async delete(id) {
66
+ await this.http.del(`/webhooks/${encodeURIComponent(id)}`);
67
+ }
68
+ /**
69
+ * Manually fire a custom event payload at a webhook's current URL.
70
+ * Returns the dispatch result (status, duration, deliveryId) and
71
+ * records a row in the delivery log.
72
+ */
73
+ async test(id, params) {
74
+ return this.http.post(`/webhooks/${encodeURIComponent(id)}/test`, params);
75
+ }
76
+ /** Delivery-log scope for a single webhook id. */
77
+ deliveries(webhookId) {
78
+ return new WebhookDeliveries(this.http, webhookId);
79
+ }
80
+ }
81
+ exports.Webhooks = Webhooks;
82
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":";;;AAYA,MAAM,iBAAiB;IAEX;IACA;IAFV,YACU,IAAgB,EAChB,SAAiB;QADjB,SAAI,GAAJ,IAAI,CAAY;QAChB,cAAS,GAAT,SAAS,CAAQ;IACxB,CAAC;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CACR,MAAkC;QAElC,MAAM,KAAK,GAA4B,EAAE,CAAA;QACzC,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACxD,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QAC3D,IAAI,MAAM,EAAE,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,aAAa,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAC5D,KAAK,CACN,CAAA;IACH,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,GAAG,CAAC,UAAkB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,aAAa,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAC/F,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,UAAkB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,aAAa,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,kBAAkB,CAAC,UAAU,CAAC,SAAS,CACtG,CAAA;IACH,CAAC;CACF;AAED,MAAa,QAAQ;IACC;IAApB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAExC,sEAAsE;IACtE,KAAK,CAAC,IAAI,CAAC,QAAiB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,WAAW,EACX,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CACpC,CAAA;IACH,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAU,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACtE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,MAA2B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,WAAW,EAAE,MAAM,CAAC,CAAA;IACrD,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAA2B;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CACpB,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE,EACrC,MAAM,CACP,CAAA;IACH,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CACjB,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE,CACtC,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CACR,EAAU,EACV,MAAyB;QAEzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,aAAa,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAC1C,MAAM,CACP,CAAA;IACH,CAAC;IAED,kDAAkD;IAClD,UAAU,CAAC,SAAiB;QAC1B,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACpD,CAAC;CACF;AA3DD,4BA2DC"}
package/dist/types.d.ts CHANGED
@@ -274,4 +274,178 @@ export interface StorageUsage {
274
274
  buckets: StorageUsageBucket[];
275
275
  byType: StorageUsageByType[];
276
276
  }
277
+ export type ContactStatus = "active" | "unsubscribed" | "bounced";
278
+ export interface Contact {
279
+ id: string;
280
+ companyId: string;
281
+ email: string;
282
+ name?: string;
283
+ tags: string[];
284
+ status: ContactStatus;
285
+ metadata: Record<string, unknown>;
286
+ lastEmailedAt?: string | null;
287
+ createdAt: string;
288
+ updatedAt: string;
289
+ }
290
+ export interface ContactList {
291
+ id: string;
292
+ companyId: string;
293
+ name: string;
294
+ description?: string;
295
+ memberCount?: number;
296
+ createdAt: string;
297
+ updatedAt: string;
298
+ }
299
+ export interface CreateContactParams {
300
+ email: string;
301
+ name?: string;
302
+ tags?: string[];
303
+ metadata?: Record<string, unknown>;
304
+ }
305
+ export interface UpdateContactParams {
306
+ email?: string;
307
+ name?: string;
308
+ tags?: string[];
309
+ status?: ContactStatus;
310
+ metadata?: Record<string, unknown>;
311
+ }
312
+ export interface ContactListParams {
313
+ page?: number;
314
+ limit?: number;
315
+ status?: ContactStatus;
316
+ /** Comma-joined when sent over the wire — pass an array, the SDK joins. */
317
+ tags?: string[];
318
+ }
319
+ export interface ContactListResult {
320
+ contacts: Contact[];
321
+ total: number;
322
+ page: number;
323
+ limit: number;
324
+ }
325
+ export interface CreateAudienceListParams {
326
+ name: string;
327
+ description?: string;
328
+ }
329
+ export interface Suppression {
330
+ id: string;
331
+ email: string;
332
+ reason: string;
333
+ domainId: string;
334
+ createdAt: string;
335
+ domain?: {
336
+ domain: string;
337
+ };
338
+ }
339
+ export interface AddSuppressionParams {
340
+ email: string;
341
+ /** Free-form label (e.g. "manual", "complaint"). Defaults backend-side. */
342
+ reason?: string;
343
+ domainId: string;
344
+ }
345
+ export interface SuppressionListParams {
346
+ page?: number;
347
+ limit?: number;
348
+ domainId?: string;
349
+ reason?: string;
350
+ }
351
+ export type WebhookEvent = "sent" | "bounced" | "failed" | "opened" | "clicked" | "unsubscribed";
352
+ export interface Webhook {
353
+ id: string;
354
+ url: string;
355
+ events: string[];
356
+ active: boolean;
357
+ domainId: string;
358
+ /** Returned only on create — used to verify HMAC signatures of deliveries. */
359
+ secret?: string;
360
+ createdAt: string;
361
+ updatedAt: string;
362
+ }
363
+ export interface CreateWebhookParams {
364
+ url: string;
365
+ events: WebhookEvent[] | string[];
366
+ domainId: string;
367
+ }
368
+ export interface UpdateWebhookParams {
369
+ url?: string;
370
+ events?: WebhookEvent[] | string[];
371
+ active?: boolean;
372
+ }
373
+ export type WebhookDeliveryStatus = "success" | "failed" | "pending";
374
+ export type WebhookDeliveryKind = "test" | "replay";
375
+ export interface WebhookDelivery {
376
+ id: string;
377
+ webhookId: string;
378
+ companyId: string;
379
+ kind: WebhookDeliveryKind;
380
+ event: string;
381
+ payload: Record<string, unknown>;
382
+ /** URL the dispatcher actually POSTed to (frozen at dispatch time). */
383
+ url: string;
384
+ /** HTTP status returned by the receiver — 0 if the request never landed. */
385
+ responseStatus: number;
386
+ /** Truncated response body (max 4 KB). */
387
+ responseBody: string;
388
+ durationMs: number;
389
+ status: WebhookDeliveryStatus;
390
+ error?: string;
391
+ /** Set when this row is a replay of an earlier delivery. */
392
+ replayOf?: string;
393
+ /** User id, email, or "system" for token/internal callers. */
394
+ triggeredBy: string;
395
+ createdAt: string;
396
+ }
397
+ export interface WebhookDeliveryListParams {
398
+ page?: number;
399
+ limit?: number;
400
+ status?: WebhookDeliveryStatus;
401
+ }
402
+ export interface WebhookDeliveryListResult {
403
+ items: WebhookDelivery[];
404
+ total: number;
405
+ page: number;
406
+ limit: number;
407
+ }
408
+ export interface WebhookTestParams {
409
+ event: WebhookEvent | string;
410
+ payload: Record<string, unknown>;
411
+ }
412
+ export interface WebhookDispatchResult {
413
+ deliveryId: string;
414
+ responseStatus: number;
415
+ durationMs: number;
416
+ status: "success" | "failed";
417
+ error?: string;
418
+ }
419
+ export type MailLogStatus = "queued" | "processing" | "sent" | "bounced" | "failed";
420
+ export interface MailLog {
421
+ id: string;
422
+ to: string;
423
+ from: string;
424
+ subject: string;
425
+ status: MailLogStatus;
426
+ messageId: string | null;
427
+ domainId: string;
428
+ domain?: {
429
+ domain: string;
430
+ };
431
+ templateId: string | null;
432
+ variables: Record<string, unknown> | null;
433
+ scheduledAt?: string | null;
434
+ sentAt: string | null;
435
+ bouncedAt: string | null;
436
+ openedAt?: string | null;
437
+ clickedAt?: string | null;
438
+ error: string | null;
439
+ createdAt: string;
440
+ }
441
+ export interface LogListParams {
442
+ page?: number;
443
+ limit?: number;
444
+ status?: MailLogStatus;
445
+ domainId?: string;
446
+ /** ISO timestamp lower bound (inclusive). */
447
+ from?: string;
448
+ /** ISO timestamp upper bound (inclusive). */
449
+ to?: string;
450
+ }
277
451
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentroy-co/client-sdk",
3
- "version": "2.5.2",
3
+ "version": "2.6.2",
4
4
  "description": "TypeScript SDK for the Sentroy platform — REST resources + React components.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/http.ts CHANGED
@@ -136,6 +136,17 @@ export class HttpClient {
136
136
  return this.request<T>("DELETE", path, { query })
137
137
  }
138
138
 
139
+ /**
140
+ * DELETE with a JSON body. Most endpoints take an id in the path, but a
141
+ * few collection-membership endpoints (audience list members) carry the
142
+ * member id in the body so a single route can address both members of
143
+ * the parent. Fetch + undici both allow DELETE bodies — keep separate
144
+ * from `del` so the common case stays query-only.
145
+ */
146
+ async delWithBody<T>(path: string, body: unknown): Promise<T> {
147
+ return this.request<T>("DELETE", path, { body })
148
+ }
149
+
139
150
  /**
140
151
  * Multipart upload. Body is a FormData; we deliberately do not set
141
152
  * Content-Type so the runtime (browser or Node undici) writes the
package/src/index.ts CHANGED
@@ -4,6 +4,10 @@ import { Mailboxes } from "./resources/mailboxes"
4
4
  import { Templates } from "./resources/templates"
5
5
  import { Inbox } from "./resources/inbox"
6
6
  import { Send } from "./resources/send"
7
+ import { Audience } from "./resources/audience"
8
+ import { Suppressions } from "./resources/suppressions"
9
+ import { Webhooks } from "./resources/webhooks"
10
+ import { Logs } from "./resources/logs"
7
11
  import { Buckets } from "./resources/buckets"
8
12
  import { MediaResource } from "./resources/media"
9
13
  import { Storage } from "./resources/storage"
@@ -15,6 +19,10 @@ export class Sentroy {
15
19
  public readonly templates: Templates
16
20
  public readonly inbox: Inbox
17
21
  public readonly send: Send
22
+ public readonly audience: Audience
23
+ public readonly suppressions: Suppressions
24
+ public readonly webhooks: Webhooks
25
+ public readonly logs: Logs
18
26
  public readonly buckets: Buckets
19
27
  public readonly media: MediaResource
20
28
  public readonly storage: Storage
@@ -64,6 +72,10 @@ export class Sentroy {
64
72
  this.templates = new Templates(mailHttp)
65
73
  this.inbox = new Inbox(mailHttp)
66
74
  this.send = new Send(mailHttp)
75
+ this.audience = new Audience(mailHttp)
76
+ this.suppressions = new Suppressions(mailHttp)
77
+ this.webhooks = new Webhooks(mailHttp)
78
+ this.logs = new Logs(mailHttp)
67
79
  this.buckets = new Buckets(storageHttp)
68
80
  this.media = new MediaResource(storageHttp)
69
81
  this.storage = new Storage(storageHttp)
@@ -101,6 +113,31 @@ export type {
101
113
  StorageUsage,
102
114
  StorageUsageBucket,
103
115
  StorageUsageByType,
116
+ Contact,
117
+ ContactStatus,
118
+ ContactList,
119
+ CreateContactParams,
120
+ UpdateContactParams,
121
+ ContactListParams,
122
+ ContactListResult,
123
+ CreateAudienceListParams,
124
+ Suppression,
125
+ AddSuppressionParams,
126
+ SuppressionListParams,
127
+ Webhook,
128
+ WebhookEvent,
129
+ CreateWebhookParams,
130
+ UpdateWebhookParams,
131
+ WebhookDelivery,
132
+ WebhookDeliveryStatus,
133
+ WebhookDeliveryKind,
134
+ WebhookDeliveryListParams,
135
+ WebhookDeliveryListResult,
136
+ WebhookTestParams,
137
+ WebhookDispatchResult,
138
+ MailLog,
139
+ MailLogStatus,
140
+ LogListParams,
104
141
  } from "./types"
105
142
 
106
143
  export { SentroyError } from "./http"
@@ -0,0 +1,139 @@
1
+ import type { HttpClient } from "../http"
2
+ import type {
3
+ Contact,
4
+ ContactList,
5
+ ContactListParams,
6
+ ContactListResult,
7
+ CreateAudienceListParams,
8
+ CreateContactParams,
9
+ UpdateContactParams,
10
+ } from "../types"
11
+
12
+ class AudienceListMembers {
13
+ constructor(
14
+ private http: HttpClient,
15
+ private listId: string,
16
+ ) {}
17
+
18
+ /** List all contacts in this audience list. */
19
+ async list(): Promise<Contact[]> {
20
+ return this.http.get<Contact[]>(
21
+ `/audience/lists/${encodeURIComponent(this.listId)}/members`,
22
+ )
23
+ }
24
+
25
+ /** Add a contact to the list by id. */
26
+ async add(contactId: string): Promise<void> {
27
+ await this.http.post<{ message: string }>(
28
+ `/audience/lists/${encodeURIComponent(this.listId)}/members`,
29
+ { contactId },
30
+ )
31
+ }
32
+
33
+ /** Remove a contact from the list. The contact record itself is preserved. */
34
+ async remove(contactId: string): Promise<void> {
35
+ await this.http.delWithBody<{ message: string }>(
36
+ `/audience/lists/${encodeURIComponent(this.listId)}/members`,
37
+ { contactId },
38
+ )
39
+ }
40
+ }
41
+
42
+ class AudienceLists {
43
+ constructor(private http: HttpClient) {}
44
+
45
+ /** List every audience list in the company. */
46
+ async list(): Promise<ContactList[]> {
47
+ return this.http.get<ContactList[]>("/audience/lists")
48
+ }
49
+
50
+ /** Get a single audience list by id. */
51
+ async get(id: string): Promise<ContactList> {
52
+ return this.http.get<ContactList>(
53
+ `/audience/lists/${encodeURIComponent(id)}`,
54
+ )
55
+ }
56
+
57
+ /** Create a new audience list. */
58
+ async create(params: CreateAudienceListParams): Promise<ContactList> {
59
+ return this.http.post<ContactList>("/audience/lists", params)
60
+ }
61
+
62
+ /** Delete an audience list. Contacts stay in the company; only the grouping is removed. */
63
+ async delete(id: string): Promise<void> {
64
+ await this.http.del<{ message: string }>(
65
+ `/audience/lists/${encodeURIComponent(id)}`,
66
+ )
67
+ }
68
+
69
+ /** Membership operations scoped to a list id. */
70
+ members(listId: string): AudienceListMembers {
71
+ return new AudienceListMembers(this.http, listId)
72
+ }
73
+ }
74
+
75
+ class AudienceContacts {
76
+ constructor(private http: HttpClient) {}
77
+
78
+ /**
79
+ * Paginated list of contacts. Filter by status or tag set; tags are
80
+ * sent as a comma-joined query param.
81
+ */
82
+ async list(params?: ContactListParams): Promise<ContactListResult> {
83
+ const query: Record<string, unknown> = {}
84
+ if (params?.page !== undefined) query.page = params.page
85
+ if (params?.limit !== undefined) query.limit = params.limit
86
+ if (params?.status) query.status = params.status
87
+ if (params?.tags?.length) query.tags = params.tags.join(",")
88
+ return this.http.get<ContactListResult>("/audience/contacts", query)
89
+ }
90
+
91
+ /**
92
+ * Email-prefix autocomplete. Capped server-side at 10 results — use
93
+ * `list` for paginated browsing.
94
+ */
95
+ async search(q: string): Promise<Contact[]> {
96
+ return this.http.get<Contact[]>("/audience/contacts", { q })
97
+ }
98
+
99
+ /** Get a single contact by id. */
100
+ async get(id: string): Promise<Contact> {
101
+ return this.http.get<Contact>(
102
+ `/audience/contacts/${encodeURIComponent(id)}`,
103
+ )
104
+ }
105
+
106
+ /** Create a contact. Defaults to status: "active". */
107
+ async create(params: CreateContactParams): Promise<Contact> {
108
+ return this.http.post<Contact>("/audience/contacts", params)
109
+ }
110
+
111
+ /** Patch any contact field. Pass `status` to mark unsubscribed/bounced. */
112
+ async update(id: string, params: UpdateContactParams): Promise<Contact> {
113
+ return this.http.patch<Contact>(
114
+ `/audience/contacts/${encodeURIComponent(id)}`,
115
+ params,
116
+ )
117
+ }
118
+
119
+ /**
120
+ * Soft-delete: marks the contact as `unsubscribed`. The record stays so
121
+ * historical mail-log foreign keys keep resolving and the email won't
122
+ * accidentally be re-added.
123
+ */
124
+ async delete(id: string): Promise<void> {
125
+ await this.http.del<{ message: string }>(
126
+ `/audience/contacts/${encodeURIComponent(id)}`,
127
+ )
128
+ }
129
+ }
130
+
131
+ export class Audience {
132
+ public readonly lists: AudienceLists
133
+ public readonly contacts: AudienceContacts
134
+
135
+ constructor(http: HttpClient) {
136
+ this.lists = new AudienceLists(http)
137
+ this.contacts = new AudienceContacts(http)
138
+ }
139
+ }
@@ -0,0 +1,27 @@
1
+ import type { HttpClient } from "../http"
2
+ import type { LogListParams, MailLog } from "../types"
3
+
4
+ export class Logs {
5
+ constructor(private http: HttpClient) {}
6
+
7
+ /**
8
+ * List mail-log entries. Filter by status, domain, and ISO timestamp
9
+ * range (`from` / `to`). Results are paginated server-side; pass `page`
10
+ * and `limit` to walk a large window.
11
+ */
12
+ async list(params?: LogListParams): Promise<MailLog[]> {
13
+ const query: Record<string, unknown> = {}
14
+ if (params?.page !== undefined) query.page = params.page
15
+ if (params?.limit !== undefined) query.limit = params.limit
16
+ if (params?.status) query.status = params.status
17
+ if (params?.domainId) query.domainId = params.domainId
18
+ if (params?.from) query.from = params.from
19
+ if (params?.to) query.to = params.to
20
+ return this.http.get<MailLog[]>("/logs", query)
21
+ }
22
+
23
+ /** Get a single mail-log entry by id. */
24
+ async get(id: string): Promise<MailLog> {
25
+ return this.http.get<MailLog>(`/logs/${encodeURIComponent(id)}`)
26
+ }
27
+ }
@@ -0,0 +1,39 @@
1
+ import type { HttpClient } from "../http"
2
+ import type {
3
+ AddSuppressionParams,
4
+ Suppression,
5
+ SuppressionListParams,
6
+ } from "../types"
7
+
8
+ export class Suppressions {
9
+ constructor(private http: HttpClient) {}
10
+
11
+ /**
12
+ * List suppressions across the company (or a single domain). Suppressed
13
+ * recipients are skipped at send time — every entry here is one address
14
+ * that will not receive mail until removed.
15
+ */
16
+ async list(params?: SuppressionListParams): Promise<Suppression[]> {
17
+ const query: Record<string, unknown> = {}
18
+ if (params?.page !== undefined) query.page = params.page
19
+ if (params?.limit !== undefined) query.limit = params.limit
20
+ if (params?.domainId) query.domainId = params.domainId
21
+ if (params?.reason) query.reason = params.reason
22
+ return this.http.get<Suppression[]>("/suppressions", query)
23
+ }
24
+
25
+ /**
26
+ * Manually suppress an address (e.g. honoring an off-platform opt-out).
27
+ * Bounces and complaints are added automatically by the mail server.
28
+ */
29
+ async add(params: AddSuppressionParams): Promise<Suppression> {
30
+ return this.http.post<Suppression>("/suppressions", params)
31
+ }
32
+
33
+ /** Remove a suppression — the address will be eligible to receive mail again. */
34
+ async remove(id: string): Promise<void> {
35
+ await this.http.del<{ message: string }>(
36
+ `/suppressions/${encodeURIComponent(id)}`,
37
+ )
38
+ }
39
+ }