@unsent/sdk 1.0.2 → 1.0.4

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.js CHANGED
@@ -20,8 +20,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
+ analytics: () => Analytics,
23
24
  campaigns: () => Campaigns,
24
- unsent: () => unsent
25
+ contactBooks: () => ContactBooks,
26
+ templates: () => Templates,
27
+ unsent: () => unsent,
28
+ webhooks: () => Webhooks
25
29
  });
26
30
  module.exports = __toCommonJS(index_exports);
27
31
 
@@ -31,6 +35,21 @@ var Contacts = class {
31
35
  this.unsent = unsent2;
32
36
  this.unsent = unsent2;
33
37
  }
38
+ async list(contactBookId, query) {
39
+ const params = new URLSearchParams();
40
+ if (query?.emails) params.append("emails", query.emails);
41
+ if (query?.page) params.append("page", query.page.toString());
42
+ if (query?.limit) params.append("limit", query.limit.toString());
43
+ if (query?.ids) params.append("ids", query.ids);
44
+ const queryString = params.toString() ? `?${params.toString()}` : "";
45
+ const response = await this.unsent.get(
46
+ `/contactBooks/${contactBookId}/contacts${queryString}`
47
+ );
48
+ return {
49
+ data: response.data,
50
+ error: response.error
51
+ };
52
+ }
34
53
  async create(contactBookId, payload) {
35
54
  const data = await this.unsent.post(
36
55
  `/contactBooks/${contactBookId}/contacts`,
@@ -105,6 +124,71 @@ var Emails = class {
105
124
  error: response.error
106
125
  };
107
126
  }
127
+ async list(query) {
128
+ const params = new URLSearchParams();
129
+ if (query?.page) params.append("page", query.page.toString());
130
+ if (query?.limit) params.append("limit", query.limit.toString());
131
+ if (query?.startDate) params.append("startDate", query.startDate);
132
+ if (query?.endDate) params.append("endDate", query.endDate);
133
+ if (query?.domainId) {
134
+ if (Array.isArray(query.domainId)) {
135
+ query.domainId.forEach((id) => params.append("domainId", id));
136
+ } else {
137
+ params.append("domainId", query.domainId);
138
+ }
139
+ }
140
+ const queryString = params.toString() ? `?${params.toString()}` : "";
141
+ const response = await this.unsent.get(
142
+ `/emails${queryString}`
143
+ );
144
+ return {
145
+ data: response.data?.data ?? null,
146
+ count: response.data?.count ?? null,
147
+ error: response.error
148
+ };
149
+ }
150
+ async getComplaints(query) {
151
+ const params = new URLSearchParams();
152
+ if (query?.page) params.append("page", query.page.toString());
153
+ if (query?.limit) params.append("limit", query.limit.toString());
154
+ const queryString = params.toString() ? `?${params.toString()}` : "";
155
+ const response = await this.unsent.get(
156
+ `/emails/complaints${queryString}`
157
+ );
158
+ return {
159
+ data: response.data?.data ?? null,
160
+ count: response.data?.count ?? null,
161
+ error: response.error
162
+ };
163
+ }
164
+ async getBounces(query) {
165
+ const params = new URLSearchParams();
166
+ if (query?.page) params.append("page", query.page.toString());
167
+ if (query?.limit) params.append("limit", query.limit.toString());
168
+ const queryString = params.toString() ? `?${params.toString()}` : "";
169
+ const response = await this.unsent.get(
170
+ `/emails/bounces${queryString}`
171
+ );
172
+ return {
173
+ data: response.data?.data ?? null,
174
+ count: response.data?.count ?? null,
175
+ error: response.error
176
+ };
177
+ }
178
+ async getUnsubscribes(query) {
179
+ const params = new URLSearchParams();
180
+ if (query?.page) params.append("page", query.page.toString());
181
+ if (query?.limit) params.append("limit", query.limit.toString());
182
+ const queryString = params.toString() ? `?${params.toString()}` : "";
183
+ const response = await this.unsent.get(
184
+ `/emails/unsubscribes${queryString}`
185
+ );
186
+ return {
187
+ data: response.data?.data ?? null,
188
+ count: response.data?.count ?? null,
189
+ error: response.error
190
+ };
191
+ }
108
192
  async get(id) {
109
193
  const data = await this.unsent.get(
110
194
  `/emails/${id}`
@@ -165,12 +249,165 @@ var Domains = class {
165
249
  }
166
250
  };
167
251
 
252
+ // src/contact-book.ts
253
+ var ContactBooks = class {
254
+ constructor(unsent2) {
255
+ this.unsent = unsent2;
256
+ this.unsent = unsent2;
257
+ }
258
+ async list() {
259
+ const data = await this.unsent.get("/contactBooks");
260
+ return {
261
+ data: data.data,
262
+ error: data.error
263
+ };
264
+ }
265
+ async create(payload) {
266
+ const data = await this.unsent.post("/contactBooks", payload);
267
+ return {
268
+ data: data.data,
269
+ error: data.error
270
+ };
271
+ }
272
+ async get(id) {
273
+ const data = await this.unsent.get(`/contactBooks/${id}`);
274
+ return {
275
+ data: data.data,
276
+ error: data.error
277
+ };
278
+ }
279
+ async update(id, payload) {
280
+ const data = await this.unsent.patch(`/contactBooks/${id}`, payload);
281
+ return {
282
+ data: data.data,
283
+ error: data.error
284
+ };
285
+ }
286
+ async delete(id) {
287
+ const data = await this.unsent.delete(`/contactBooks/${id}`);
288
+ return {
289
+ data: data.data,
290
+ error: data.error
291
+ };
292
+ }
293
+ };
294
+
295
+ // src/template.ts
296
+ var Templates = class {
297
+ constructor(unsent2) {
298
+ this.unsent = unsent2;
299
+ this.unsent = unsent2;
300
+ }
301
+ async list() {
302
+ const data = await this.unsent.get("/templates");
303
+ return {
304
+ data: data.data,
305
+ error: data.error
306
+ };
307
+ }
308
+ async create(payload) {
309
+ const data = await this.unsent.post("/templates", payload);
310
+ return {
311
+ data: data.data,
312
+ error: data.error
313
+ };
314
+ }
315
+ async get(id) {
316
+ const data = await this.unsent.get(`/templates/${id}`);
317
+ return {
318
+ data: data.data,
319
+ error: data.error
320
+ };
321
+ }
322
+ async update(id, payload) {
323
+ const data = await this.unsent.patch(`/templates/${id}`, payload);
324
+ return {
325
+ data: data.data,
326
+ error: data.error
327
+ };
328
+ }
329
+ async delete(id) {
330
+ const data = await this.unsent.delete(`/templates/${id}`);
331
+ return {
332
+ data: data.data,
333
+ error: data.error
334
+ };
335
+ }
336
+ };
337
+
338
+ // src/webhook.ts
339
+ var Webhooks = class {
340
+ constructor(unsent2) {
341
+ this.unsent = unsent2;
342
+ this.unsent = unsent2;
343
+ }
344
+ async list() {
345
+ return this.unsent.get("/webhooks");
346
+ }
347
+ async create(payload) {
348
+ return this.unsent.post("/webhooks", payload);
349
+ }
350
+ async update(id, payload) {
351
+ return this.unsent.patch(`/webhooks/${id}`, payload);
352
+ }
353
+ async delete(id) {
354
+ return this.unsent.delete(`/webhooks/${id}`);
355
+ }
356
+ };
357
+
358
+ // src/analytics.ts
359
+ var Analytics = class {
360
+ constructor(unsent2) {
361
+ this.unsent = unsent2;
362
+ this.unsent = unsent2;
363
+ }
364
+ async get() {
365
+ const data = await this.unsent.get("/analytics");
366
+ return {
367
+ data: data.data,
368
+ error: data.error
369
+ };
370
+ }
371
+ async getTimeSeries(query) {
372
+ const params = new URLSearchParams();
373
+ if (query?.days) params.append("days", query.days.toString());
374
+ if (query?.domain) params.append("domain", query.domain);
375
+ const queryString = params.toString() ? `?${params.toString()}` : "";
376
+ const data = await this.unsent.get(
377
+ `/analytics/time-series${queryString}`
378
+ );
379
+ return {
380
+ data: data.data,
381
+ error: data.error
382
+ };
383
+ }
384
+ async getReputation(query) {
385
+ const params = new URLSearchParams();
386
+ if (query?.domain) params.append("domain", query.domain);
387
+ const queryString = params.toString() ? `?${params.toString()}` : "";
388
+ const data = await this.unsent.get(
389
+ `/analytics/reputation${queryString}`
390
+ );
391
+ return {
392
+ data: data.data,
393
+ error: data.error
394
+ };
395
+ }
396
+ };
397
+
168
398
  // src/campaign.ts
169
399
  var Campaigns = class {
170
400
  constructor(unsent2) {
171
401
  this.unsent = unsent2;
172
402
  this.unsent = unsent2;
173
403
  }
404
+ async list() {
405
+ const data = await this.unsent.get("/campaigns");
406
+ return {
407
+ data: data.data,
408
+ error: data.error
409
+ };
410
+ }
174
411
  async create(payload) {
175
412
  const data = await this.unsent.post(
176
413
  `/campaigns`,
@@ -207,6 +444,88 @@ var Campaigns = class {
207
444
  }
208
445
  };
209
446
 
447
+ // src/suppression.ts
448
+ var Suppressions = class {
449
+ constructor(unsent2) {
450
+ this.unsent = unsent2;
451
+ this.unsent = unsent2;
452
+ }
453
+ async list(query) {
454
+ const params = new URLSearchParams();
455
+ if (query?.page) params.append("page", query.page.toString());
456
+ if (query?.limit) params.append("limit", query.limit.toString());
457
+ if (query?.search) params.append("search", query.search);
458
+ if (query?.reason) params.append("reason", query.reason);
459
+ const queryString = params.toString() ? `?${params.toString()}` : "";
460
+ const response = await this.unsent.get(
461
+ `/suppressions${queryString}`
462
+ );
463
+ return {
464
+ data: response.data,
465
+ error: response.error
466
+ };
467
+ }
468
+ async add(payload) {
469
+ const data = await this.unsent.post(
470
+ "/suppressions",
471
+ payload
472
+ );
473
+ return {
474
+ data: data.data,
475
+ error: data.error
476
+ };
477
+ }
478
+ async delete(email) {
479
+ const data = await this.unsent.delete(
480
+ `/suppressions/email/${email}`
481
+ );
482
+ return {
483
+ data: data.data,
484
+ error: data.error
485
+ };
486
+ }
487
+ };
488
+
489
+ // src/api-key.ts
490
+ var ApiKeys = class {
491
+ constructor(unsent2) {
492
+ this.unsent = unsent2;
493
+ this.unsent = unsent2;
494
+ }
495
+ async list() {
496
+ const data = await this.unsent.get("/api-keys");
497
+ return {
498
+ data: data.data,
499
+ error: data.error
500
+ };
501
+ }
502
+ async create(payload) {
503
+ const data = await this.unsent.post("/api-keys", payload);
504
+ return {
505
+ data: data.data,
506
+ error: data.error
507
+ };
508
+ }
509
+ async delete(id) {
510
+ const data = await this.unsent.delete(`/api-keys/${id}`);
511
+ return {
512
+ data: data.data,
513
+ error: data.error
514
+ };
515
+ }
516
+ };
517
+
518
+ // src/settings.ts
519
+ var Settings = class {
520
+ constructor(unsent2) {
521
+ this.unsent = unsent2;
522
+ this.unsent = unsent2;
523
+ }
524
+ async get() {
525
+ return this.unsent.get("/settings");
526
+ }
527
+ };
528
+
210
529
  // src/unsent.ts
211
530
  var defaultBaseUrl = "https://api.unsent.dev";
212
531
  var baseUrl = `${process?.env?.UNSENT_BASE_URL ?? process?.env?.UNSENT_BASE_URL ?? defaultBaseUrl}/v1`;
@@ -238,7 +557,14 @@ var unsent = class {
238
557
  domains = new Domains(this);
239
558
  emails = new Emails(this);
240
559
  contacts = new Contacts(this);
560
+ contactBooks = new ContactBooks(this);
561
+ templates = new Templates(this);
562
+ webhooks = new Webhooks(this);
563
+ analytics = new Analytics(this);
241
564
  campaigns = new Campaigns(this);
565
+ suppressions = new Suppressions(this);
566
+ apiKeys = new ApiKeys(this);
567
+ settings = new Settings(this);
242
568
  url = baseUrl;
243
569
  async fetchRequest(path, options = {}) {
244
570
  const fullUrl = `${this.url}${path}`;
@@ -328,6 +654,10 @@ var unsent = class {
328
654
  };
329
655
  // Annotate the CommonJS export names for ESM import in node:
330
656
  0 && (module.exports = {
657
+ analytics,
331
658
  campaigns,
332
- unsent
659
+ contactBooks,
660
+ templates,
661
+ unsent,
662
+ webhooks
333
663
  });