@mailhooks/sdk 0.1.0 → 0.1.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 +18 -6
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/resources/emails.d.ts.map +1 -1
- package/dist/resources/emails.js +26 -1
- package/dist/resources/emails.js.map +1 -1
- package/dist/types.d.ts +11 -5
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -57,12 +57,16 @@ const mailhooks = new Mailhooks({
|
|
|
57
57
|
const emails = await mailhooks.emails.list({
|
|
58
58
|
page: 1,
|
|
59
59
|
perPage: 20,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
filter: {
|
|
61
|
+
from: 'sender@example.com',
|
|
62
|
+
subject: 'Important',
|
|
63
|
+
startDate: '2024-01-01',
|
|
64
|
+
endDate: '2024-12-31',
|
|
65
|
+
},
|
|
66
|
+
sort: {
|
|
67
|
+
field: 'createdAt',
|
|
68
|
+
order: 'desc',
|
|
69
|
+
},
|
|
66
70
|
});
|
|
67
71
|
```
|
|
68
72
|
|
|
@@ -132,10 +136,18 @@ try {
|
|
|
132
136
|
} catch (error) {
|
|
133
137
|
if (error.response?.status === 404) {
|
|
134
138
|
console.log('Email not found');
|
|
139
|
+
} else if (error.response?.status === 403) {
|
|
140
|
+
console.log('Authentication failed - check your API key');
|
|
135
141
|
}
|
|
136
142
|
}
|
|
137
143
|
```
|
|
138
144
|
|
|
145
|
+
### Common Errors
|
|
146
|
+
|
|
147
|
+
- **403 Forbidden**: Invalid API key or missing authentication
|
|
148
|
+
- **404 Not Found**: Resource not found
|
|
149
|
+
- **429 Too Many Requests**: Rate limit exceeded
|
|
150
|
+
|
|
139
151
|
## License
|
|
140
152
|
|
|
141
153
|
MIT
|
package/dist/client.js
CHANGED
|
@@ -10,7 +10,7 @@ class MailhooksClient {
|
|
|
10
10
|
this.http = axios_1.default.create({
|
|
11
11
|
baseURL: config.baseUrl ?? 'https://mailhooks.dev/api',
|
|
12
12
|
headers: {
|
|
13
|
-
'
|
|
13
|
+
'x-api-key': config.apiKey,
|
|
14
14
|
'Content-Type': 'application/json',
|
|
15
15
|
},
|
|
16
16
|
});
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA4D;AAG5D,MAAa,eAAe;IAG1B,YAAY,MAAuB;QACjC,IAAI,CAAC,IAAI,GAAG,eAAK,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,2BAA2B;YACtD,OAAO,EAAE;gBACP,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emails.d.ts","sourceRoot":"","sources":["../../src/resources/emails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,KAAK,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,qBAAa,cAAe,SAAQ,eAAe;IACjD;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"emails.d.ts","sourceRoot":"","sources":["../../src/resources/emails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,KAAK,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,qBAAa,cAAe,SAAQ,eAAe;IACjD;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAyB7D;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAI/C;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIxD;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAS7D;;OAEG;IACG,kBAAkB,CACtB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC;CAoB7B"}
|
package/dist/resources/emails.js
CHANGED
|
@@ -7,7 +7,32 @@ class EmailsResource extends client_1.MailhooksClient {
|
|
|
7
7
|
* Get a paginated list of emails
|
|
8
8
|
*/
|
|
9
9
|
async list(params) {
|
|
10
|
-
|
|
10
|
+
// Set defaults
|
|
11
|
+
const queryParams = {
|
|
12
|
+
page: params?.page || 1,
|
|
13
|
+
perPage: params?.perPage || 20,
|
|
14
|
+
};
|
|
15
|
+
// Handle filter params
|
|
16
|
+
if (params?.filter) {
|
|
17
|
+
if (params.filter.from)
|
|
18
|
+
queryParams['filter[from]'] = params.filter.from;
|
|
19
|
+
if (params.filter.to)
|
|
20
|
+
queryParams['filter[to]'] = params.filter.to;
|
|
21
|
+
if (params.filter.subject)
|
|
22
|
+
queryParams['filter[subject]'] = params.filter.subject;
|
|
23
|
+
if (params.filter.startDate)
|
|
24
|
+
queryParams['filter[startDate]'] = params.filter.startDate;
|
|
25
|
+
if (params.filter.endDate)
|
|
26
|
+
queryParams['filter[endDate]'] = params.filter.endDate;
|
|
27
|
+
}
|
|
28
|
+
// Handle sort params
|
|
29
|
+
if (params?.sort) {
|
|
30
|
+
if (params.sort.field)
|
|
31
|
+
queryParams['sort[field]'] = params.sort.field;
|
|
32
|
+
if (params.sort.order)
|
|
33
|
+
queryParams['sort[order]'] = params.sort.order;
|
|
34
|
+
}
|
|
35
|
+
return super.get('/v1/emails', queryParams);
|
|
11
36
|
}
|
|
12
37
|
/**
|
|
13
38
|
* Get a specific email by ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emails.js","sourceRoot":"","sources":["../../src/resources/emails.ts"],"names":[],"mappings":";;;AAAA,sCAA4C;AAS5C,MAAa,cAAe,SAAQ,wBAAe;IACjD;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAAwB;QACjC,OAAO,KAAK,CAAC,GAAG,CAAiB,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"emails.js","sourceRoot":"","sources":["../../src/resources/emails.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -27,17 +27,23 @@ export interface PaginationResponse {
|
|
|
27
27
|
export interface EmailsResponse extends PaginationResponse {
|
|
28
28
|
data: Email[];
|
|
29
29
|
}
|
|
30
|
-
export interface
|
|
31
|
-
page?: number;
|
|
32
|
-
perPage?: number;
|
|
30
|
+
export interface EmailFilter {
|
|
33
31
|
from?: string;
|
|
34
32
|
to?: string;
|
|
35
33
|
subject?: string;
|
|
36
|
-
sortBy?: 'createdAt';
|
|
37
|
-
sortOrder?: 'asc' | 'desc';
|
|
38
34
|
startDate?: string;
|
|
39
35
|
endDate?: string;
|
|
40
36
|
}
|
|
37
|
+
export interface EmailSort {
|
|
38
|
+
field?: 'createdAt' | 'from' | 'subject';
|
|
39
|
+
order?: 'asc' | 'desc';
|
|
40
|
+
}
|
|
41
|
+
export interface EmailListParams {
|
|
42
|
+
page?: number;
|
|
43
|
+
perPage?: number;
|
|
44
|
+
filter?: EmailFilter;
|
|
45
|
+
sort?: EmailSort;
|
|
46
|
+
}
|
|
41
47
|
export interface MailhooksConfig {
|
|
42
48
|
apiKey: string;
|
|
43
49
|
baseUrl?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,IAAI,EAAE,KAAK,EAAE,CAAC;CACf;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,IAAI,EAAE,KAAK,EAAE,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
package/package.json
CHANGED