resend 2.0.0 → 2.0.1-canary.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.
Files changed (77) hide show
  1. package/dist/index.d.mts +353 -0
  2. package/dist/index.d.ts +353 -0
  3. package/dist/index.js +300 -0
  4. package/dist/index.mjs +276 -0
  5. package/package.json +19 -5
  6. package/build/package.json +0 -50
  7. package/build/src/__snapshots__/resend.spec.js.snap +0 -3
  8. package/build/src/api-keys/api-keys.d.ts +0 -9
  9. package/build/src/api-keys/api-keys.js +0 -36
  10. package/build/src/api-keys/api-keys.spec.d.ts +0 -1
  11. package/build/src/api-keys/api-keys.spec.js +0 -349
  12. package/build/src/api-keys/interfaces/create-api-key-options.interface.d.ts +0 -17
  13. package/build/src/api-keys/interfaces/create-api-key-options.interface.js +0 -2
  14. package/build/src/api-keys/interfaces/index.d.ts +0 -3
  15. package/build/src/api-keys/interfaces/index.js +0 -19
  16. package/build/src/api-keys/interfaces/list-api-keys.interface.d.ts +0 -10
  17. package/build/src/api-keys/interfaces/list-api-keys.interface.js +0 -2
  18. package/build/src/api-keys/interfaces/remove-api-keys.interface.d.ts +0 -8
  19. package/build/src/api-keys/interfaces/remove-api-keys.interface.js +0 -2
  20. package/build/src/batch/batch.d.ts +0 -8
  21. package/build/src/batch/batch.js +0 -36
  22. package/build/src/batch/batch.spec.d.ts +0 -1
  23. package/build/src/batch/batch.spec.js +0 -122
  24. package/build/src/batch/interfaces/create-batch-options.interface.d.ts +0 -16
  25. package/build/src/batch/interfaces/create-batch-options.interface.js +0 -2
  26. package/build/src/batch/interfaces/index.d.ts +0 -1
  27. package/build/src/batch/interfaces/index.js +0 -17
  28. package/build/src/common/interfaces/get-option.interface.d.ts +0 -3
  29. package/build/src/common/interfaces/get-option.interface.js +0 -2
  30. package/build/src/common/interfaces/index.d.ts +0 -4
  31. package/build/src/common/interfaces/index.js +0 -20
  32. package/build/src/common/interfaces/list-option.interface.d.ts +0 -4
  33. package/build/src/common/interfaces/list-option.interface.js +0 -2
  34. package/build/src/common/interfaces/post-option.interface.d.ts +0 -5
  35. package/build/src/common/interfaces/post-option.interface.js +0 -2
  36. package/build/src/common/interfaces/put-option.interface.d.ts +0 -5
  37. package/build/src/common/interfaces/put-option.interface.js +0 -2
  38. package/build/src/domains/domains.d.ts +0 -11
  39. package/build/src/domains/domains.js +0 -48
  40. package/build/src/domains/domains.spec.d.ts +0 -1
  41. package/build/src/domains/domains.spec.js +0 -496
  42. package/build/src/domains/interfaces/create-domain-options.interface.d.ts +0 -16
  43. package/build/src/domains/interfaces/create-domain-options.interface.js +0 -2
  44. package/build/src/domains/interfaces/domain.d.ts +0 -33
  45. package/build/src/domains/interfaces/domain.js +0 -2
  46. package/build/src/domains/interfaces/get-domain.interface.d.ts +0 -10
  47. package/build/src/domains/interfaces/get-domain.interface.js +0 -2
  48. package/build/src/domains/interfaces/index.d.ts +0 -5
  49. package/build/src/domains/interfaces/index.js +0 -21
  50. package/build/src/domains/interfaces/list-domains.interface.d.ts +0 -7
  51. package/build/src/domains/interfaces/list-domains.interface.js +0 -2
  52. package/build/src/domains/interfaces/remove-domain.interface.d.ts +0 -7
  53. package/build/src/domains/interfaces/remove-domain.interface.js +0 -2
  54. package/build/src/domains/interfaces/verify-domain.interface.d.ts +0 -7
  55. package/build/src/domains/interfaces/verify-domain.interface.js +0 -2
  56. package/build/src/emails/emails.d.ts +0 -9
  57. package/build/src/emails/emails.js +0 -40
  58. package/build/src/emails/emails.spec.d.ts +0 -1
  59. package/build/src/emails/emails.spec.js +0 -190
  60. package/build/src/emails/interfaces/create-email-options.interface.d.ts +0 -113
  61. package/build/src/emails/interfaces/create-email-options.interface.js +0 -2
  62. package/build/src/emails/interfaces/get-email-options.interface.d.ts +0 -19
  63. package/build/src/emails/interfaces/get-email-options.interface.js +0 -2
  64. package/build/src/emails/interfaces/index.d.ts +0 -2
  65. package/build/src/emails/interfaces/index.js +0 -18
  66. package/build/src/error.d.ts +0 -7
  67. package/build/src/error.js +0 -21
  68. package/build/src/guards.d.ts +0 -9
  69. package/build/src/guards.js +0 -36
  70. package/build/src/index.d.ts +0 -2
  71. package/build/src/index.js +0 -5
  72. package/build/src/interfaces.d.ts +0 -24
  73. package/build/src/interfaces.js +0 -18
  74. package/build/src/resend.d.ts +0 -35
  75. package/build/src/resend.js +0 -83
  76. package/build/src/resend.spec.d.ts +0 -1
  77. package/build/src/resend.spec.js +0 -267
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./create-batch-options.interface"), exports);
@@ -1,3 +0,0 @@
1
- export interface GetOptions {
2
- query?: Record<string, any>;
3
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +0,0 @@
1
- export * from './get-option.interface';
2
- export * from './list-option.interface';
3
- export * from './post-option.interface';
4
- export * from './put-option.interface';
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./get-option.interface"), exports);
18
- __exportStar(require("./list-option.interface"), exports);
19
- __exportStar(require("./post-option.interface"), exports);
20
- __exportStar(require("./put-option.interface"), exports);
@@ -1,4 +0,0 @@
1
- export interface List<T> {
2
- readonly object: 'list';
3
- data: T[];
4
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +0,0 @@
1
- export interface PostOptions {
2
- query?: {
3
- [key: string]: any;
4
- };
5
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +0,0 @@
1
- export interface PutOptions {
2
- query?: {
3
- [key: string]: any;
4
- };
5
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,11 +0,0 @@
1
- import { Resend } from '../resend';
2
- import { CreateDomainOptions, CreateDomainRequestOptions, CreateDomainResponse, GetDomainResponse, ListDomainsResponse, RemoveDomainsResponse, VerifyDomainsResponse } from './interfaces';
3
- export declare class Domains {
4
- private readonly resend;
5
- constructor(resend: Resend);
6
- create(payload: CreateDomainOptions, options?: CreateDomainRequestOptions): Promise<CreateDomainResponse>;
7
- list(): Promise<ListDomainsResponse>;
8
- get(id: string): Promise<GetDomainResponse>;
9
- remove(id: string): Promise<RemoveDomainsResponse>;
10
- verify(id: string): Promise<VerifyDomainsResponse>;
11
- }
@@ -1,48 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Domains = void 0;
13
- class Domains {
14
- constructor(resend) {
15
- this.resend = resend;
16
- }
17
- create(payload, options = {}) {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- const data = yield this.resend.post('/domains', payload, options);
20
- return data;
21
- });
22
- }
23
- list() {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- const data = yield this.resend.get('/domains');
26
- return data;
27
- });
28
- }
29
- get(id) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- const data = yield this.resend.get(`/domains/${id}`);
32
- return data;
33
- });
34
- }
35
- remove(id) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- const data = yield this.resend.delete(`/domains/${id}`);
38
- return data;
39
- });
40
- }
41
- verify(id) {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- const data = yield this.resend.post(`/domains/${id}/verify`);
44
- return data;
45
- });
46
- }
47
- }
48
- exports.Domains = Domains;
@@ -1 +0,0 @@
1
- export {};
@@ -1,496 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const jest_fetch_mock_1 = require("jest-fetch-mock");
13
- const resend_1 = require("../resend");
14
- (0, jest_fetch_mock_1.enableFetchMocks)();
15
- describe('Domains', () => {
16
- afterEach(() => fetchMock.resetMocks());
17
- describe('create', () => {
18
- it('creates a domain', () => __awaiter(void 0, void 0, void 0, function* () {
19
- fetchMock.mockOnce(JSON.stringify({
20
- id: '3d4a472d-bc6d-4dd2-aa9d-d3d50ce87222',
21
- name: 'resend.com',
22
- created_at: '2023-04-07T22:48:33.420498+00:00',
23
- status: 'not_started',
24
- records: [
25
- {
26
- record: 'SPF',
27
- name: 'bounces',
28
- type: 'MX',
29
- ttl: 'Auto',
30
- status: 'not_started',
31
- value: 'feedback-smtp.us-east-1.com',
32
- priority: 10,
33
- },
34
- {
35
- record: 'SPF',
36
- name: 'bounces',
37
- value: '"v=spf1 include:com ~all"',
38
- type: 'TXT',
39
- ttl: 'Auto',
40
- status: 'not_started',
41
- },
42
- {
43
- record: 'DKIM',
44
- name: 'nu22pfdfqaxdybogtw3ebaokmalv5mxg._domainkey',
45
- value: 'nu22pfdfqaxdybogtw3ebaokmalv5mxg.dkim.com.',
46
- type: 'CNAME',
47
- status: 'not_started',
48
- ttl: 'Auto',
49
- },
50
- {
51
- record: 'DKIM',
52
- name: 'qklz5ozk742hhql3vmekdu3pr4f5ggsj._domainkey',
53
- value: 'qklz5ozk742hhql3vmekdu3pr4f5ggsj.dkim.com.',
54
- type: 'CNAME',
55
- status: 'not_started',
56
- ttl: 'Auto',
57
- },
58
- {
59
- record: 'DKIM',
60
- name: 'eeaemodxoao5hxwjvhywx4bo5mswjw6v._domainkey',
61
- value: 'eeaemodxoao5hxwjvhywx4bo5mswjw6v.dkim.com.',
62
- type: 'CNAME',
63
- status: 'not_started',
64
- ttl: 'Auto',
65
- },
66
- ],
67
- region: 'us-east-1',
68
- }), {
69
- status: 200,
70
- headers: {
71
- 'content-type': 'application/json',
72
- Authorization: 'Bearer re_924b3rjh2387fbewf823',
73
- },
74
- });
75
- const resend = new resend_1.Resend('re_zKa4RCko_Lhm9ost2YjNCctnPjbLw8Nop');
76
- yield expect(resend.domains.create({ name: 'resend.com' })).resolves
77
- .toMatchInlineSnapshot(`
78
- {
79
- "data": {
80
- "created_at": "2023-04-07T22:48:33.420498+00:00",
81
- "id": "3d4a472d-bc6d-4dd2-aa9d-d3d50ce87222",
82
- "name": "resend.com",
83
- "records": [
84
- {
85
- "name": "bounces",
86
- "priority": 10,
87
- "record": "SPF",
88
- "status": "not_started",
89
- "ttl": "Auto",
90
- "type": "MX",
91
- "value": "feedback-smtp.us-east-1.com",
92
- },
93
- {
94
- "name": "bounces",
95
- "record": "SPF",
96
- "status": "not_started",
97
- "ttl": "Auto",
98
- "type": "TXT",
99
- "value": ""v=spf1 include:com ~all"",
100
- },
101
- {
102
- "name": "nu22pfdfqaxdybogtw3ebaokmalv5mxg._domainkey",
103
- "record": "DKIM",
104
- "status": "not_started",
105
- "ttl": "Auto",
106
- "type": "CNAME",
107
- "value": "nu22pfdfqaxdybogtw3ebaokmalv5mxg.dkim.com.",
108
- },
109
- {
110
- "name": "qklz5ozk742hhql3vmekdu3pr4f5ggsj._domainkey",
111
- "record": "DKIM",
112
- "status": "not_started",
113
- "ttl": "Auto",
114
- "type": "CNAME",
115
- "value": "qklz5ozk742hhql3vmekdu3pr4f5ggsj.dkim.com.",
116
- },
117
- {
118
- "name": "eeaemodxoao5hxwjvhywx4bo5mswjw6v._domainkey",
119
- "record": "DKIM",
120
- "status": "not_started",
121
- "ttl": "Auto",
122
- "type": "CNAME",
123
- "value": "eeaemodxoao5hxwjvhywx4bo5mswjw6v.dkim.com.",
124
- },
125
- ],
126
- "region": "us-east-1",
127
- "status": "not_started",
128
- },
129
- "error": null,
130
- }
131
- `);
132
- }));
133
- it('throws error when missing name', () => __awaiter(void 0, void 0, void 0, function* () {
134
- const errorResponse = {
135
- name: 'missing_required_field',
136
- message: 'Missing "name" field',
137
- };
138
- fetchMock.mockOnce(JSON.stringify(errorResponse), {
139
- status: 422,
140
- headers: {
141
- 'content-type': 'application/json',
142
- Authorization: 'Bearer re_924b3rjh2387fbewf823',
143
- },
144
- });
145
- const resend = new resend_1.Resend('re_zKa4RCko_Lhm9ost2YjNCctnPjbLw8Nop');
146
- const result = resend.domains.create({ name: '' });
147
- yield expect(result).resolves.toMatchInlineSnapshot(`
148
- {
149
- "data": null,
150
- "error": {
151
- "message": "Missing "name" field",
152
- "name": "missing_required_field",
153
- },
154
- }
155
- `);
156
- }));
157
- describe('with region', () => {
158
- it('creates a domain with region', () => __awaiter(void 0, void 0, void 0, function* () {
159
- fetchMock.mockOnce(JSON.stringify({
160
- id: '3d4a472d-bc6d-4dd2-aa9d-d3d50ce87222',
161
- name: 'resend.com',
162
- created_at: '2023-04-07T22:48:33.420498+00:00',
163
- status: 'not_started',
164
- records: [
165
- {
166
- record: 'SPF',
167
- name: 'bounces',
168
- type: 'MX',
169
- ttl: 'Auto',
170
- status: 'not_started',
171
- value: 'feedback-smtp.eu-west-1.com',
172
- priority: 10,
173
- },
174
- {
175
- record: 'SPF',
176
- name: 'bounces',
177
- value: '"v=spf1 include:com ~all"',
178
- type: 'TXT',
179
- ttl: 'Auto',
180
- status: 'not_started',
181
- },
182
- {
183
- record: 'DKIM',
184
- name: 'nu22pfdfqaxdybogtw3ebaokmalv5mxg._domainkey',
185
- value: 'nu22pfdfqaxdybogtw3ebaokmalv5mxg.dkim.com.',
186
- type: 'CNAME',
187
- status: 'not_started',
188
- ttl: 'Auto',
189
- },
190
- {
191
- record: 'DKIM',
192
- name: 'qklz5ozk742hhql3vmekdu3pr4f5ggsj._domainkey',
193
- value: 'qklz5ozk742hhql3vmekdu3pr4f5ggsj.dkim.com.',
194
- type: 'CNAME',
195
- status: 'not_started',
196
- ttl: 'Auto',
197
- },
198
- {
199
- record: 'DKIM',
200
- name: 'eeaemodxoao5hxwjvhywx4bo5mswjw6v._domainkey',
201
- value: 'eeaemodxoao5hxwjvhywx4bo5mswjw6v.dkim.com.',
202
- type: 'CNAME',
203
- status: 'not_started',
204
- ttl: 'Auto',
205
- },
206
- ],
207
- region: 'eu-west-1',
208
- }));
209
- const resend = new resend_1.Resend('re_zKa4RCko_Lhm9ost2YjNCctnPjbLw8Nop');
210
- yield expect(resend.domains.create({ name: 'resend.com', region: 'eu-west-1' })).resolves.toMatchInlineSnapshot(`
211
- {
212
- "data": {
213
- "created_at": "2023-04-07T22:48:33.420498+00:00",
214
- "id": "3d4a472d-bc6d-4dd2-aa9d-d3d50ce87222",
215
- "name": "resend.com",
216
- "records": [
217
- {
218
- "name": "bounces",
219
- "priority": 10,
220
- "record": "SPF",
221
- "status": "not_started",
222
- "ttl": "Auto",
223
- "type": "MX",
224
- "value": "feedback-smtp.eu-west-1.com",
225
- },
226
- {
227
- "name": "bounces",
228
- "record": "SPF",
229
- "status": "not_started",
230
- "ttl": "Auto",
231
- "type": "TXT",
232
- "value": ""v=spf1 include:com ~all"",
233
- },
234
- {
235
- "name": "nu22pfdfqaxdybogtw3ebaokmalv5mxg._domainkey",
236
- "record": "DKIM",
237
- "status": "not_started",
238
- "ttl": "Auto",
239
- "type": "CNAME",
240
- "value": "nu22pfdfqaxdybogtw3ebaokmalv5mxg.dkim.com.",
241
- },
242
- {
243
- "name": "qklz5ozk742hhql3vmekdu3pr4f5ggsj._domainkey",
244
- "record": "DKIM",
245
- "status": "not_started",
246
- "ttl": "Auto",
247
- "type": "CNAME",
248
- "value": "qklz5ozk742hhql3vmekdu3pr4f5ggsj.dkim.com.",
249
- },
250
- {
251
- "name": "eeaemodxoao5hxwjvhywx4bo5mswjw6v._domainkey",
252
- "record": "DKIM",
253
- "status": "not_started",
254
- "ttl": "Auto",
255
- "type": "CNAME",
256
- "value": "eeaemodxoao5hxwjvhywx4bo5mswjw6v.dkim.com.",
257
- },
258
- ],
259
- "region": "eu-west-1",
260
- "status": "not_started",
261
- },
262
- "error": null,
263
- }
264
- `);
265
- }));
266
- it('throws error with wrong region', () => __awaiter(void 0, void 0, void 0, function* () {
267
- const errorResponse = {
268
- name: 'invalid_region',
269
- message: 'Region must be "us-east-1" | "eu-west-1" | "sa-east-1"',
270
- };
271
- fetchMock.mockOnce(JSON.stringify(errorResponse), {
272
- status: 422,
273
- headers: {
274
- 'content-type': 'application/json',
275
- Authorization: 'Bearer re_924b3rjh2387fbewf823',
276
- },
277
- });
278
- const resend = new resend_1.Resend('re_zKa4RCko_Lhm9ost2YjNCctnPjbLw8Nop');
279
- const result = resend.domains.create({
280
- name: 'resend.com',
281
- region: 'remote',
282
- });
283
- yield expect(result).resolves.toMatchInlineSnapshot(`
284
- {
285
- "data": null,
286
- "error": {
287
- "message": "Region must be "us-east-1" | "eu-west-1" | "sa-east-1"",
288
- "name": "invalid_region",
289
- },
290
- }
291
- `);
292
- }));
293
- });
294
- });
295
- describe('list', () => {
296
- it('lists domains', () => __awaiter(void 0, void 0, void 0, function* () {
297
- fetchMock.mockOnce(JSON.stringify({
298
- data: [
299
- {
300
- id: 'b6d24b8e-af0b-4c3c-be0c-359bbd97381e',
301
- name: 'resend.com',
302
- status: 'not_started',
303
- created_at: '2023-04-07T23:13:52.669661+00:00',
304
- region: 'eu-west-1',
305
- },
306
- {
307
- id: 'ac7503ac-e027-4aea-94b3-b0acd46f65f9',
308
- name: 'react.email',
309
- status: 'not_started',
310
- created_at: '2023-04-07T23:13:20.417116+00:00',
311
- region: 'us-east-1',
312
- },
313
- ],
314
- }), {
315
- status: 200,
316
- headers: {
317
- 'content-type': 'application/json',
318
- Authorization: 'Bearer re_924b3rjh2387fbewf823',
319
- },
320
- });
321
- const resend = new resend_1.Resend('re_zKa4RCko_Lhm9ost2YjNCctnPjbLw8Nop');
322
- yield expect(resend.domains.list()).resolves.toMatchInlineSnapshot(`
323
- {
324
- "data": {
325
- "data": [
326
- {
327
- "created_at": "2023-04-07T23:13:52.669661+00:00",
328
- "id": "b6d24b8e-af0b-4c3c-be0c-359bbd97381e",
329
- "name": "resend.com",
330
- "region": "eu-west-1",
331
- "status": "not_started",
332
- },
333
- {
334
- "created_at": "2023-04-07T23:13:20.417116+00:00",
335
- "id": "ac7503ac-e027-4aea-94b3-b0acd46f65f9",
336
- "name": "react.email",
337
- "region": "us-east-1",
338
- "status": "not_started",
339
- },
340
- ],
341
- },
342
- "error": null,
343
- }
344
- `);
345
- }));
346
- });
347
- describe('get', () => {
348
- describe('when domain not found', () => {
349
- it('returns error', () => __awaiter(void 0, void 0, void 0, function* () {
350
- const errorResponse = {
351
- name: 'not_found',
352
- message: 'Domain not found',
353
- };
354
- fetchMock.mockOnce(JSON.stringify(errorResponse), {
355
- status: 404,
356
- headers: {
357
- 'content-type': 'application/json',
358
- Authorization: 'Bearer re_924b3rjh2387fbewf823',
359
- },
360
- });
361
- const resend = new resend_1.Resend('re_zKa4RCko_Lhm9ost2YjNCctnPjbLw8Nop');
362
- const result = resend.domains.get('1234');
363
- yield expect(result).resolves.toMatchInlineSnapshot(`
364
- {
365
- "data": null,
366
- "error": {
367
- "message": "Domain not found",
368
- "name": "not_found",
369
- },
370
- }
371
- `);
372
- }));
373
- });
374
- it('get domain', () => __awaiter(void 0, void 0, void 0, function* () {
375
- const domain = {
376
- object: 'domain',
377
- id: 'fd61172c-cafc-40f5-b049-b45947779a29',
378
- name: 'resend.com',
379
- status: 'not_started',
380
- created_at: '2023-06-21T06:10:36.144Z',
381
- region: 'us-east-1',
382
- records: [
383
- {
384
- record: 'SPF',
385
- name: 'bounces.resend.com',
386
- type: 'MX',
387
- ttl: 'Auto',
388
- status: 'not_started',
389
- value: 'feedback-smtp.us-east-1.amazonses.com',
390
- priority: 10,
391
- },
392
- {
393
- record: 'SPF',
394
- name: 'bounces.resend.com',
395
- value: '"v=spf1 include:amazonses.com ~all"',
396
- type: 'TXT',
397
- ttl: 'Auto',
398
- status: 'not_started',
399
- },
400
- {
401
- record: 'DKIM',
402
- name: 'resend._domainkey',
403
- value: 'p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZDhdsAKs5xdSj7h3v22wjx3WMWWADCHwxfef8U03JUbVM/sNSVuY5mbrdJKUoG6QBdfxsOGzhINmQnT89idjp5GdAUhx/KNpt8hcLXMID4nB0Gbcafn03/z5zEPxPfzVJqQd/UqOtZQcfxN9OrIhLiBsYTbcTBB7EvjCb3wEaBwIDAQAB',
404
- type: 'TXT',
405
- status: 'verified',
406
- ttl: 'Auto',
407
- },
408
- ],
409
- };
410
- fetchMock.mockOnce(JSON.stringify(domain), {
411
- status: 200,
412
- headers: {
413
- 'content-type': 'application/json',
414
- Authorization: 'Bearer re_924b3rjh2387fbewf823',
415
- },
416
- });
417
- const resend = new resend_1.Resend('re_zKa4RCko_Lhm9ost2YjNCctnPjbLw8Nop');
418
- yield expect(resend.domains.get('1234')).resolves.toMatchInlineSnapshot(`
419
- {
420
- "data": {
421
- "created_at": "2023-06-21T06:10:36.144Z",
422
- "id": "fd61172c-cafc-40f5-b049-b45947779a29",
423
- "name": "resend.com",
424
- "object": "domain",
425
- "records": [
426
- {
427
- "name": "bounces.resend.com",
428
- "priority": 10,
429
- "record": "SPF",
430
- "status": "not_started",
431
- "ttl": "Auto",
432
- "type": "MX",
433
- "value": "feedback-smtp.us-east-1.amazonses.com",
434
- },
435
- {
436
- "name": "bounces.resend.com",
437
- "record": "SPF",
438
- "status": "not_started",
439
- "ttl": "Auto",
440
- "type": "TXT",
441
- "value": ""v=spf1 include:amazonses.com ~all"",
442
- },
443
- {
444
- "name": "resend._domainkey",
445
- "record": "DKIM",
446
- "status": "verified",
447
- "ttl": "Auto",
448
- "type": "TXT",
449
- "value": "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZDhdsAKs5xdSj7h3v22wjx3WMWWADCHwxfef8U03JUbVM/sNSVuY5mbrdJKUoG6QBdfxsOGzhINmQnT89idjp5GdAUhx/KNpt8hcLXMID4nB0Gbcafn03/z5zEPxPfzVJqQd/UqOtZQcfxN9OrIhLiBsYTbcTBB7EvjCb3wEaBwIDAQAB",
450
- },
451
- ],
452
- "region": "us-east-1",
453
- "status": "not_started",
454
- },
455
- "error": null,
456
- }
457
- `);
458
- }));
459
- });
460
- describe('verify', () => {
461
- it('verifies a domain', () => __awaiter(void 0, void 0, void 0, function* () {
462
- fetchMock.mockOnce(JSON.stringify({}), {
463
- status: 200,
464
- headers: {
465
- 'content-type': 'application/json',
466
- Authorization: 'Bearer re_924b3rjh2387fbewf823',
467
- },
468
- });
469
- const resend = new resend_1.Resend('re_zKa4RCko_Lhm9ost2YjNCctnPjbLw8Nop');
470
- yield expect(resend.domains.verify('5262504e-8ed7-4fac-bd16-0d4be94bc9f2')).resolves.toMatchInlineSnapshot(`
471
- {
472
- "data": {},
473
- "error": null,
474
- }
475
- `);
476
- }));
477
- });
478
- describe('remove', () => {
479
- it('removes a domain', () => __awaiter(void 0, void 0, void 0, function* () {
480
- fetchMock.mockOnce(JSON.stringify({}), {
481
- status: 200,
482
- headers: {
483
- 'content-type': 'application/json',
484
- Authorization: 'Bearer re_924b3rjh2387fbewf823',
485
- },
486
- });
487
- const resend = new resend_1.Resend('re_zKa4RCko_Lhm9ost2YjNCctnPjbLw8Nop');
488
- yield expect(resend.domains.remove('5262504e-8ed7-4fac-bd16-0d4be94bc9f2')).resolves.toMatchInlineSnapshot(`
489
- {
490
- "data": {},
491
- "error": null,
492
- }
493
- `);
494
- }));
495
- });
496
- });
@@ -1,16 +0,0 @@
1
- import { PostOptions } from '../../common/interfaces';
2
- import { ErrorResponse } from '../../interfaces';
3
- import { Domain, DomainRecords, DomainRegion } from './domain';
4
- export interface CreateDomainOptions {
5
- name: string;
6
- region?: DomainRegion;
7
- }
8
- export interface CreateDomainRequestOptions extends PostOptions {
9
- }
10
- export interface CreateDomainResponseSuccess extends Pick<Domain, 'name' | 'id' | 'status' | 'created_at' | 'region'> {
11
- records: DomainRecords[];
12
- }
13
- export interface CreateDomainResponse {
14
- data: CreateDomainResponseSuccess | null;
15
- error: ErrorResponse | null;
16
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });