@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.
- package/README.md +114 -0
- package/dist/http.d.ts +8 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +10 -0
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/resources/audience.d.ts +60 -0
- package/dist/resources/audience.d.ts.map +1 -0
- package/dist/resources/audience.js +108 -0
- package/dist/resources/audience.js.map +1 -0
- package/dist/resources/logs.d.ts +15 -0
- package/dist/resources/logs.d.ts.map +1 -0
- package/dist/resources/logs.js +36 -0
- package/dist/resources/logs.js.map +1 -0
- package/dist/resources/suppressions.d.ts +20 -0
- package/dist/resources/suppressions.d.ts.map +1 -0
- package/dist/resources/suppressions.js +39 -0
- package/dist/resources/suppressions.js.map +1 -0
- package/dist/resources/webhooks.d.ts +49 -0
- package/dist/resources/webhooks.d.ts.map +1 -0
- package/dist/resources/webhooks.js +82 -0
- package/dist/resources/webhooks.js.map +1 -0
- package/dist/types.d.ts +174 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/http.ts +11 -0
- package/src/index.ts +37 -0
- package/src/resources/audience.ts +139 -0
- package/src/resources/logs.ts +27 -0
- package/src/resources/suppressions.ts +39 -0
- package/src/resources/webhooks.ts +115 -0
- package/src/types.ts +216 -0
|
@@ -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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAID,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAID,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACrD,WAAW,EAAE,OAAO,CAAA;IACpB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAID,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAID,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE7D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,eAAe,CAAA;IACrB,OAAO,EAAE,eAAe,CAAA;IACxB,QAAQ,EAAE,eAAe,CAAA;IACzB,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,cAAc,CAAA;IACpB,EAAE,EAAE,cAAc,EAAE,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,cAAc,CAAA;IACpB,EAAE,EAAE,cAAc,EAAE,CAAA;IACpB,EAAE,EAAE,cAAc,EAAE,CAAA;IACpB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,cAAc,EAAE,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAID,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAID,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAID,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAA;AAE1E,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAA;IAChD,UAAU,EAAE,cAAc,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B;gFAC4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,EAAE,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAID;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,CAAA;IACnB,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,MAAM,EAAE,kBAAkB,EAAE,CAAA;CAC7B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
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
|
+
}
|