mailgun.js 7.0.2 → 8.0.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.
- package/CHANGELOG.md +77 -0
- package/README.md +220 -53
- package/common/NavigationThruPages.d.ts +19 -0
- package/domainsTags.d.ts +4 -4
- package/domainsTemplates.d.ts +4 -3
- package/events.d.ts +4 -6
- package/interfaces/DomainTags.d.ts +3 -23
- package/interfaces/DomainTemplates.d.ts +6 -26
- package/interfaces/Events.d.ts +3 -20
- package/interfaces/Messages.d.ts +28 -13
- package/interfaces/MultipleValidation.d.ts +46 -17
- package/interfaces/NavigationThruPages.d.ts +33 -0
- package/interfaces/Suppressions/Bounce.d.ts +13 -0
- package/interfaces/Suppressions/Complaint.d.ts +9 -0
- package/interfaces/Suppressions/Suppressions.d.ts +69 -0
- package/interfaces/Suppressions/Unsubscribe.d.ts +11 -0
- package/interfaces/Suppressions/WhiteList.d.ts +12 -0
- package/interfaces/lists.d.ts +14 -1
- package/interfaces/mailListMembers.d.ts +18 -2
- package/lists.d.ts +5 -3
- package/mailListMembers.d.ts +5 -3
- package/mailgun.node.js +2 -2
- package/mailgun.node.js.LICENSE.txt +1 -1
- package/mailgun.web.js +2 -2
- package/mailgun.web.js.LICENSE.txt +1 -1
- package/multipleValidation.d.ts +33 -3
- package/package.json +1 -1
- package/suppressions.d.ts +14 -11
- package/version.md +1 -1
package/domainsTemplates.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Request from './request';
|
|
2
|
-
import { CreateDomainTemplateVersionResult, DomainTemplate, DomainTemplateData, DomainTemplatesQuery, DomainTemplateUpdateData, DomainTemplateUpdateVersionData, DomainTemplateVersionData, IDomainTemplatesClient, ListDomainTemplatesResult, ListDomainTemplateVersionsResult, MutateDomainTemplateVersionResult, NotificationResult, ShortTemplateVersion, TemplateQuery, TemplateVersion, UpdateOrDeleteDomainTemplateResult } from './interfaces/DomainTemplates';
|
|
2
|
+
import { CreateDomainTemplateVersionResult, DomainTemplate, DomainTemplateData, DomainTemplatesQuery, DomainTemplateUpdateData, DomainTemplateUpdateVersionData, DomainTemplateVersionData, IDomainTemplatesClient, ListDomainTemplatesAPIResponse, ListDomainTemplatesResult, ListDomainTemplateVersionsResult, MutateDomainTemplateVersionResult, NotificationResult, ShortTemplateVersion, TemplateQuery, TemplateVersion, UpdateOrDeleteDomainTemplateResult } from './interfaces/DomainTemplates';
|
|
3
|
+
import NavigationThruPages from './common/NavigationThruPages';
|
|
3
4
|
export declare class DomainTemplateItem implements DomainTemplate {
|
|
4
5
|
name: string;
|
|
5
6
|
description: string;
|
|
@@ -10,7 +11,7 @@ export declare class DomainTemplateItem implements DomainTemplate {
|
|
|
10
11
|
versions?: ShortTemplateVersion[];
|
|
11
12
|
constructor(domainTemplateFromAPI: DomainTemplate);
|
|
12
13
|
}
|
|
13
|
-
export default class DomainTemplatesClient implements IDomainTemplatesClient {
|
|
14
|
+
export default class DomainTemplatesClient extends NavigationThruPages<ListDomainTemplatesResult> implements IDomainTemplatesClient {
|
|
14
15
|
baseRoute: string;
|
|
15
16
|
request: Request;
|
|
16
17
|
constructor(request: Request);
|
|
@@ -19,7 +20,7 @@ export default class DomainTemplatesClient implements IDomainTemplatesClient {
|
|
|
19
20
|
private parseMutationResponse;
|
|
20
21
|
private parseNotificationResponse;
|
|
21
22
|
private parseMutateTemplateVersionResponse;
|
|
22
|
-
|
|
23
|
+
protected parseList(response: ListDomainTemplatesAPIResponse): ListDomainTemplatesResult;
|
|
23
24
|
private parseListTemplateVersions;
|
|
24
25
|
list(domain: string, query?: DomainTemplatesQuery): Promise<ListDomainTemplatesResult>;
|
|
25
26
|
get(domain: string, templateName: string, query?: TemplateQuery): Promise<DomainTemplateItem>;
|
package/events.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import NavigationThruPages from './common/NavigationThruPages';
|
|
2
|
+
import { EventsList, EventsQuery, EventsResponse } from './interfaces/Events';
|
|
2
3
|
import Request from './request';
|
|
3
|
-
export default class EventClient {
|
|
4
|
+
export default class EventClient extends NavigationThruPages<EventsList> {
|
|
4
5
|
request: Request;
|
|
5
6
|
constructor(request: Request);
|
|
6
|
-
|
|
7
|
-
_parsePage(id: string, url: string): EventsPage;
|
|
8
|
-
_parsePageLinks(response: EventsResponse): ParsedPagesList;
|
|
9
|
-
_parseEventList(response: EventsResponse): EventsList;
|
|
7
|
+
protected parseList(response: EventsResponse): EventsList;
|
|
10
8
|
get(domain: string, query?: EventsQuery): Promise<EventsList>;
|
|
11
9
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DomainTagStatistic } from '../domainsTags';
|
|
2
|
+
import { PagesList, ParsedPagesList } from './NavigationThruPages';
|
|
2
3
|
export declare enum Resolution {
|
|
3
4
|
HOUR = "hour",
|
|
4
5
|
DAY = "day",
|
|
@@ -6,6 +7,7 @@ export declare enum Resolution {
|
|
|
6
7
|
}
|
|
7
8
|
export declare type DomainTagsQuery = {
|
|
8
9
|
limit: number;
|
|
10
|
+
page?: string;
|
|
9
11
|
};
|
|
10
12
|
export declare type DomainTagsStatisticQuery = {
|
|
11
13
|
event: string;
|
|
@@ -26,29 +28,6 @@ export interface DomainTagsItem {
|
|
|
26
28
|
'first-seen': Date;
|
|
27
29
|
'last-seen': Date;
|
|
28
30
|
}
|
|
29
|
-
export interface PagesList {
|
|
30
|
-
previous: string;
|
|
31
|
-
first: string;
|
|
32
|
-
last: string;
|
|
33
|
-
next: string;
|
|
34
|
-
}
|
|
35
|
-
export interface ParsedPage {
|
|
36
|
-
id: string;
|
|
37
|
-
url: string;
|
|
38
|
-
}
|
|
39
|
-
export interface ParsedPagesList {
|
|
40
|
-
previous: ParsedPage;
|
|
41
|
-
first: ParsedPage;
|
|
42
|
-
last: ParsedPage;
|
|
43
|
-
next: ParsedPage;
|
|
44
|
-
}
|
|
45
|
-
export interface TagsPage {
|
|
46
|
-
id: string;
|
|
47
|
-
url: string;
|
|
48
|
-
}
|
|
49
|
-
export interface PagesListAccumulator {
|
|
50
|
-
[index: string]: TagsPage;
|
|
51
|
-
}
|
|
52
31
|
export interface DomainTagsResponseData {
|
|
53
32
|
status: number;
|
|
54
33
|
body: {
|
|
@@ -57,6 +36,7 @@ export interface DomainTagsResponseData {
|
|
|
57
36
|
};
|
|
58
37
|
}
|
|
59
38
|
export interface DomainTagsList {
|
|
39
|
+
status: number;
|
|
60
40
|
items: DomainTagsItem[];
|
|
61
41
|
pages: ParsedPagesList;
|
|
62
42
|
}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { DomainTemplateItem } from '../domainsTemplates';
|
|
2
|
+
import { PagesList, ParsedPagesList } from './NavigationThruPages';
|
|
2
3
|
export declare enum YesNo {
|
|
3
4
|
YES = "yes",
|
|
4
5
|
NO = "no"
|
|
5
6
|
}
|
|
6
|
-
export declare enum Pages {
|
|
7
|
-
FIRST = "first",
|
|
8
|
-
LAST = "last",
|
|
9
|
-
NEXT = "next",
|
|
10
|
-
PREV = "prev"
|
|
11
|
-
}
|
|
12
7
|
export declare type DomainTemplateData = {
|
|
13
8
|
name: string;
|
|
14
9
|
description: string;
|
|
@@ -33,9 +28,8 @@ export declare type DomainTemplateUpdateVersionData = {
|
|
|
33
28
|
active?: YesNo;
|
|
34
29
|
};
|
|
35
30
|
export declare type DomainTemplatesQuery = {
|
|
36
|
-
page:
|
|
31
|
+
page: 'string';
|
|
37
32
|
limit: number;
|
|
38
|
-
p: string;
|
|
39
33
|
};
|
|
40
34
|
export declare type TemplateQuery = {
|
|
41
35
|
active: YesNo;
|
|
@@ -82,12 +76,8 @@ export interface ListDomainTemplatesAPIResponse {
|
|
|
82
76
|
}
|
|
83
77
|
export interface ListDomainTemplatesResult {
|
|
84
78
|
items: DomainTemplate[];
|
|
85
|
-
pages:
|
|
86
|
-
|
|
87
|
-
last: string;
|
|
88
|
-
next: string;
|
|
89
|
-
previous: string;
|
|
90
|
-
};
|
|
79
|
+
pages: ParsedPagesList;
|
|
80
|
+
status: number;
|
|
91
81
|
}
|
|
92
82
|
export interface GetDomainTemplateAPIResponse {
|
|
93
83
|
status: number;
|
|
@@ -162,22 +152,12 @@ export interface ListDomainTemplateVersionsAPIResponse {
|
|
|
162
152
|
id: string;
|
|
163
153
|
versions: ShortTemplateVersion[];
|
|
164
154
|
};
|
|
165
|
-
paging:
|
|
166
|
-
first: string;
|
|
167
|
-
last: string;
|
|
168
|
-
next: string;
|
|
169
|
-
previous: string;
|
|
170
|
-
};
|
|
155
|
+
paging: PagesList;
|
|
171
156
|
};
|
|
172
157
|
}
|
|
173
158
|
export interface ListDomainTemplateVersionsResult {
|
|
174
159
|
template: DomainTemplateItem;
|
|
175
|
-
pages:
|
|
176
|
-
first: string;
|
|
177
|
-
last: string;
|
|
178
|
-
next: string;
|
|
179
|
-
previous: string;
|
|
180
|
-
};
|
|
160
|
+
pages: ParsedPagesList;
|
|
181
161
|
}
|
|
182
162
|
export interface IDomainTemplatesClient {
|
|
183
163
|
list(domain: string, query?: DomainTemplatesQuery): Promise<ListDomainTemplatesResult>;
|
package/interfaces/Events.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PagesList, ParsedPagesList } from './NavigationThruPages';
|
|
1
2
|
export interface EventsPage {
|
|
2
3
|
id: string;
|
|
3
4
|
number: string;
|
|
@@ -24,17 +25,12 @@ export interface EventsQuery extends FilterField {
|
|
|
24
25
|
ascending?: 'yes' | 'no';
|
|
25
26
|
limit?: number;
|
|
26
27
|
}
|
|
27
|
-
export interface PagesList {
|
|
28
|
-
previous: string;
|
|
29
|
-
first: string;
|
|
30
|
-
last: string;
|
|
31
|
-
next: string;
|
|
32
|
-
}
|
|
33
28
|
export interface EventsResponse {
|
|
34
29
|
body: {
|
|
35
30
|
items: [];
|
|
36
31
|
paging: PagesList;
|
|
37
32
|
};
|
|
33
|
+
status: number;
|
|
38
34
|
}
|
|
39
35
|
export interface DomainEvent {
|
|
40
36
|
severity: string;
|
|
@@ -89,21 +85,8 @@ export interface DomainEvent {
|
|
|
89
85
|
recipient: string;
|
|
90
86
|
event: string;
|
|
91
87
|
}
|
|
92
|
-
export interface ParsedPage {
|
|
93
|
-
id: string;
|
|
94
|
-
number: string;
|
|
95
|
-
url: string;
|
|
96
|
-
}
|
|
97
|
-
export interface ParsedPagesList {
|
|
98
|
-
previous: ParsedPage;
|
|
99
|
-
first: ParsedPage;
|
|
100
|
-
last: ParsedPage;
|
|
101
|
-
next: ParsedPage;
|
|
102
|
-
}
|
|
103
88
|
export interface EventsList {
|
|
104
89
|
items: DomainEvent[];
|
|
105
90
|
pages: ParsedPagesList;
|
|
106
|
-
|
|
107
|
-
export interface PagesListAccumulator {
|
|
108
|
-
[index: string]: EventsPage;
|
|
91
|
+
status: number;
|
|
109
92
|
}
|
package/interfaces/Messages.d.ts
CHANGED
|
@@ -1,4 +1,31 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/**
|
|
3
|
+
* Ensures the object has least one key present and not undefined
|
|
4
|
+
*
|
|
5
|
+
* @see {@link https://stackoverflow.com/a/49725198}
|
|
6
|
+
*/
|
|
7
|
+
export declare type AtLeastOneKeyPresent<Object_, Keys extends keyof Object_ = keyof Object_> = Pick<Object_, Exclude<keyof Object_, Keys>> & {
|
|
8
|
+
[K in Keys]-?: Required<Pick<Object_, K>> & Partial<Pick<Object_, Exclude<Keys, K>>>;
|
|
9
|
+
}[Keys];
|
|
10
|
+
export declare type MailgunMessageContent = AtLeastOneKeyPresent<{
|
|
11
|
+
/**
|
|
12
|
+
* Body of the message. (text version)
|
|
13
|
+
*/
|
|
14
|
+
text?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Body of the message. (HTML version)
|
|
17
|
+
*/
|
|
18
|
+
html?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Body of the message. (MIME version)
|
|
21
|
+
*/
|
|
22
|
+
message?: string | Buffer | Blob;
|
|
23
|
+
/**
|
|
24
|
+
* Name of a template stored via [template API](https://documentation.mailgun.com/en/latest/api-templates.html#api-templates). See [Templates](https://documentation.mailgun.com/en/latest/user_manual.html#templating) for more information
|
|
25
|
+
*/
|
|
26
|
+
template?: string;
|
|
27
|
+
}>;
|
|
28
|
+
export declare type MailgunMessageData = MailgunMessageContent & {
|
|
2
29
|
/**
|
|
3
30
|
* Email address for `From` header
|
|
4
31
|
*/
|
|
@@ -21,14 +48,6 @@ export declare type MailgunMessageData = {
|
|
|
21
48
|
* Message subject
|
|
22
49
|
*/
|
|
23
50
|
subject?: string;
|
|
24
|
-
/**
|
|
25
|
-
* Body of the message. (text version)
|
|
26
|
-
*/
|
|
27
|
-
text?: string;
|
|
28
|
-
/**
|
|
29
|
-
* Body of the message. (HTML version)
|
|
30
|
-
*/
|
|
31
|
-
html?: string;
|
|
32
51
|
/**
|
|
33
52
|
* [AMP](https://developers.google.com/gmail/ampemail/) part of the message. Please follow google guidelines to compose and send AMP emails.
|
|
34
53
|
*/
|
|
@@ -45,10 +64,6 @@ export declare type MailgunMessageData = {
|
|
|
45
64
|
* You can post multiple `inline` values.
|
|
46
65
|
*/
|
|
47
66
|
inline?: any;
|
|
48
|
-
/**
|
|
49
|
-
* Name of a template stored via [template API](https://documentation.mailgun.com/en/latest/api-templates.html#api-templates). See [Templates](https://documentation.mailgun.com/en/latest/user_manual.html#templating) for more information
|
|
50
|
-
*/
|
|
51
|
-
template?: string;
|
|
52
67
|
/**
|
|
53
68
|
* Use this parameter to send a message to specific version of a template
|
|
54
69
|
*/
|
|
@@ -1,19 +1,46 @@
|
|
|
1
|
-
|
|
1
|
+
import { PagesList, ParsedPagesList } from './NavigationThruPages';
|
|
2
|
+
export interface MultipleValidationJobData {
|
|
2
3
|
created_at: number;
|
|
3
|
-
|
|
4
|
+
id: string;
|
|
5
|
+
quantity: number;
|
|
6
|
+
records_processed: number | null;
|
|
7
|
+
status: string;
|
|
8
|
+
download_url?: {
|
|
4
9
|
csv: string;
|
|
5
10
|
json: string;
|
|
6
11
|
};
|
|
12
|
+
summary?: {
|
|
13
|
+
result: {
|
|
14
|
+
catch_all: number;
|
|
15
|
+
deliverable: number;
|
|
16
|
+
do_not_send: number;
|
|
17
|
+
undeliverable: number;
|
|
18
|
+
unknown: number;
|
|
19
|
+
};
|
|
20
|
+
risk: {
|
|
21
|
+
high: number;
|
|
22
|
+
low: number;
|
|
23
|
+
medium: number;
|
|
24
|
+
unknown: number;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export interface MultipleValidationJobResult {
|
|
29
|
+
createdAt: Date;
|
|
7
30
|
id: string;
|
|
8
31
|
quantity: number;
|
|
9
|
-
|
|
32
|
+
recordsProcessed: number | null;
|
|
10
33
|
status: string;
|
|
11
34
|
responseStatusCode: number;
|
|
12
|
-
|
|
35
|
+
downloadUrl?: {
|
|
36
|
+
csv: string;
|
|
37
|
+
json: string;
|
|
38
|
+
};
|
|
39
|
+
summary?: {
|
|
13
40
|
result: {
|
|
14
|
-
|
|
41
|
+
catchAll: number;
|
|
15
42
|
deliverable: number;
|
|
16
|
-
|
|
43
|
+
doNotSend: number;
|
|
17
44
|
undeliverable: number;
|
|
18
45
|
unknown: number;
|
|
19
46
|
};
|
|
@@ -37,21 +64,23 @@ export interface MultipleValidationCreationDataUpdated {
|
|
|
37
64
|
multipleValidationFile: Record<string, unknown>;
|
|
38
65
|
[key: string]: unknown | undefined;
|
|
39
66
|
}
|
|
40
|
-
export interface PagesList {
|
|
41
|
-
prev: string;
|
|
42
|
-
first: string;
|
|
43
|
-
last: string;
|
|
44
|
-
next: string;
|
|
45
|
-
}
|
|
46
67
|
export interface MultipleValidationJobsListResult {
|
|
47
|
-
jobs:
|
|
48
|
-
|
|
68
|
+
jobs: MultipleValidationJobResult[];
|
|
69
|
+
pages: ParsedPagesList;
|
|
49
70
|
total: number;
|
|
50
71
|
status: number;
|
|
51
72
|
}
|
|
73
|
+
export interface MultipleValidationJobsListQuery {
|
|
74
|
+
limit: number;
|
|
75
|
+
page: string;
|
|
76
|
+
}
|
|
52
77
|
export interface MultipleValidationJobsListResponse {
|
|
53
|
-
status:
|
|
54
|
-
body:
|
|
78
|
+
status: number;
|
|
79
|
+
body: {
|
|
80
|
+
paging: PagesList;
|
|
81
|
+
jobs: MultipleValidationJobData[];
|
|
82
|
+
total: number;
|
|
83
|
+
};
|
|
55
84
|
}
|
|
56
85
|
export interface CanceledMultipleValidationJob {
|
|
57
86
|
message: string;
|
|
@@ -59,7 +88,7 @@ export interface CanceledMultipleValidationJob {
|
|
|
59
88
|
}
|
|
60
89
|
export interface IMultipleValidationClient {
|
|
61
90
|
list(): Promise<MultipleValidationJobsListResult>;
|
|
62
|
-
get(listId: string): Promise<
|
|
91
|
+
get(listId: string): Promise<MultipleValidationJobResult>;
|
|
63
92
|
create(listId: string, file: any): Promise<CreatedMultipleValidationJob>;
|
|
64
93
|
destroy(listId: string): Promise<CanceledMultipleValidationJob>;
|
|
65
94
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface PagesList {
|
|
2
|
+
previous: string;
|
|
3
|
+
first: string;
|
|
4
|
+
last: string;
|
|
5
|
+
next: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ParsedPage {
|
|
8
|
+
id: string;
|
|
9
|
+
page: string;
|
|
10
|
+
iteratorPosition: string | undefined;
|
|
11
|
+
url: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ParsedPagesList {
|
|
14
|
+
previous: ParsedPage;
|
|
15
|
+
first: ParsedPage;
|
|
16
|
+
last: ParsedPage;
|
|
17
|
+
next: ParsedPage;
|
|
18
|
+
}
|
|
19
|
+
export interface PagesListAccumulator {
|
|
20
|
+
[index: string]: ParsedPage;
|
|
21
|
+
}
|
|
22
|
+
export interface ResponseWithPaging {
|
|
23
|
+
body: {
|
|
24
|
+
paging: PagesList;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export interface QueryWithPage {
|
|
28
|
+
page?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface UpdatedUrlAndQuery {
|
|
31
|
+
url: string;
|
|
32
|
+
updatedQuery: Record<string, unknown>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Bounce, Complaint, Unsubscribe, WhiteList } from '../../suppressions';
|
|
2
|
+
import { PagesList, ParsedPagesList } from '../NavigationThruPages';
|
|
3
|
+
import { BounceData } from './Bounce';
|
|
4
|
+
import { ComplaintData } from './Complaint';
|
|
5
|
+
import { UnsubscribeData } from './Unsubscribe';
|
|
6
|
+
import { WhiteListData } from './WhiteList';
|
|
7
|
+
export declare enum SuppressionModels {
|
|
8
|
+
BOUNCES = "bounces",
|
|
9
|
+
COMPLAINTS = "complaints",
|
|
10
|
+
UNSUBSCRIBES = "unsubscribes",
|
|
11
|
+
WHITELISTS = "whitelists"
|
|
12
|
+
}
|
|
13
|
+
export interface SuppressionList {
|
|
14
|
+
items: (Bounce | Complaint | Unsubscribe | WhiteList)[];
|
|
15
|
+
pages: ParsedPagesList;
|
|
16
|
+
status: number;
|
|
17
|
+
}
|
|
18
|
+
export declare type SuppressionListQuery = {
|
|
19
|
+
limit?: number;
|
|
20
|
+
page?: string;
|
|
21
|
+
};
|
|
22
|
+
export declare type SuppressionDataType = BounceData | ComplaintData | UnsubscribeData | WhiteListData;
|
|
23
|
+
export interface SuppressionListResponse {
|
|
24
|
+
body: {
|
|
25
|
+
items: BounceData[] | ComplaintData[] | UnsubscribeData[] | WhiteListData[];
|
|
26
|
+
paging: PagesList;
|
|
27
|
+
};
|
|
28
|
+
status: number;
|
|
29
|
+
}
|
|
30
|
+
export interface SuppressionResponse {
|
|
31
|
+
body: BounceData | ComplaintData | UnsubscribeData | WhiteListData;
|
|
32
|
+
status: number;
|
|
33
|
+
}
|
|
34
|
+
export interface SuppressionDestroyResponse {
|
|
35
|
+
body: {
|
|
36
|
+
message: string;
|
|
37
|
+
value?: string;
|
|
38
|
+
address?: string;
|
|
39
|
+
};
|
|
40
|
+
status: number;
|
|
41
|
+
}
|
|
42
|
+
export interface SuppressionDestroyResult {
|
|
43
|
+
message: string;
|
|
44
|
+
value: string;
|
|
45
|
+
address: string;
|
|
46
|
+
status: number;
|
|
47
|
+
}
|
|
48
|
+
export declare type SuppressionCreationData = {
|
|
49
|
+
address: string;
|
|
50
|
+
code?: number;
|
|
51
|
+
error?: string;
|
|
52
|
+
domain?: string;
|
|
53
|
+
tag?: string;
|
|
54
|
+
created_at?: string;
|
|
55
|
+
};
|
|
56
|
+
export interface SuppressionCreationResponse {
|
|
57
|
+
body: {
|
|
58
|
+
message: string;
|
|
59
|
+
type?: string;
|
|
60
|
+
value?: string;
|
|
61
|
+
};
|
|
62
|
+
status: number;
|
|
63
|
+
}
|
|
64
|
+
export interface SuppressionCreationResult {
|
|
65
|
+
message: string;
|
|
66
|
+
type: string;
|
|
67
|
+
value: string;
|
|
68
|
+
status: number;
|
|
69
|
+
}
|
package/interfaces/lists.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { PagesList, ParsedPagesList } from './NavigationThruPages';
|
|
1
2
|
export declare type ListsQuery = {
|
|
2
3
|
address?: string;
|
|
3
4
|
limit?: number;
|
|
4
|
-
|
|
5
|
+
page?: string;
|
|
5
6
|
};
|
|
6
7
|
export declare type CreateUpdateList = {
|
|
7
8
|
address: string;
|
|
@@ -67,3 +68,15 @@ export interface MailingList {
|
|
|
67
68
|
name: string;
|
|
68
69
|
reply_preference: null | string;
|
|
69
70
|
}
|
|
71
|
+
export interface MailingListResult {
|
|
72
|
+
items: MailingList[];
|
|
73
|
+
status: number;
|
|
74
|
+
pages: ParsedPagesList;
|
|
75
|
+
}
|
|
76
|
+
export interface MailingListApiResponse {
|
|
77
|
+
body: {
|
|
78
|
+
items: MailingList[];
|
|
79
|
+
paging: PagesList;
|
|
80
|
+
};
|
|
81
|
+
status: number;
|
|
82
|
+
}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { MailingList } from './lists';
|
|
2
|
+
import { PagesList, ParsedPagesList } from './NavigationThruPages';
|
|
2
3
|
export interface MailListMember {
|
|
3
4
|
address: string;
|
|
4
5
|
name: string;
|
|
5
6
|
subscribed: boolean;
|
|
6
|
-
vars:
|
|
7
|
+
vars: {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
};
|
|
7
10
|
}
|
|
8
11
|
export declare type MailListMembersQuery = {
|
|
9
12
|
subscribed?: 'yes' | 'no';
|
|
10
13
|
limit?: number;
|
|
14
|
+
page?: string;
|
|
11
15
|
};
|
|
12
16
|
export declare type MultipleMembersData = {
|
|
13
17
|
members: Array<MailListMember>;
|
|
@@ -42,8 +46,20 @@ export interface NewMultipleMembersResponse {
|
|
|
42
46
|
message: string;
|
|
43
47
|
'task-id': string;
|
|
44
48
|
}
|
|
49
|
+
export interface MailListMembersResponse {
|
|
50
|
+
body: {
|
|
51
|
+
items: MailListMember[];
|
|
52
|
+
paging: PagesList;
|
|
53
|
+
};
|
|
54
|
+
status: number;
|
|
55
|
+
}
|
|
56
|
+
export interface MailListMembersResult {
|
|
57
|
+
items: MailListMember[];
|
|
58
|
+
pages: ParsedPagesList;
|
|
59
|
+
status: number;
|
|
60
|
+
}
|
|
45
61
|
export interface IMailListsMembers {
|
|
46
|
-
listMembers(mailListAddress: string, query?: MailListMembersQuery): Promise<
|
|
62
|
+
listMembers(mailListAddress: string, query?: MailListMembersQuery): Promise<MailListMembersResult>;
|
|
47
63
|
getMember(address: string, memberAddress: string): Promise<MailListMember>;
|
|
48
64
|
createMember(mailListAddress: string, data: CreateUpdateMailListMembers): Promise<MailListMember>;
|
|
49
65
|
createMembers(mailListAddress: string, data: MultipleMembersData): Promise<NewMultipleMembersResponse>;
|
package/lists.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import Request from './request';
|
|
2
|
-
import { ListsQuery, CreateUpdateList, DestroyedList, MailingList, StartValidationResult, ValidationResult, CancelValidationResult } from './interfaces/lists';
|
|
2
|
+
import { ListsQuery, CreateUpdateList, DestroyedList, MailingList, StartValidationResult, ValidationResult, CancelValidationResult, MailingListResult, MailingListApiResponse } from './interfaces/lists';
|
|
3
3
|
import { IMailListsMembers } from './interfaces/mailListMembers';
|
|
4
|
-
|
|
4
|
+
import NavigationThruPages from './common/NavigationThruPages';
|
|
5
|
+
export default class ListsClient extends NavigationThruPages<MailingListResult> {
|
|
5
6
|
baseRoute: string;
|
|
6
7
|
request: Request;
|
|
7
8
|
members: IMailListsMembers;
|
|
8
9
|
constructor(request: Request, members: IMailListsMembers);
|
|
9
10
|
private parseValidationResult;
|
|
10
|
-
|
|
11
|
+
protected parseList(response: MailingListApiResponse): MailingListResult;
|
|
12
|
+
list(query?: ListsQuery): Promise<MailingListResult>;
|
|
11
13
|
get(mailListAddress: string): Promise<MailingList>;
|
|
12
14
|
create(data: CreateUpdateList): Promise<MailingList>;
|
|
13
15
|
update(mailListAddress: string, data: CreateUpdateList): Promise<MailingList>;
|
package/mailListMembers.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import Request from './request';
|
|
2
|
-
import { MailListMembersQuery, IMailListsMembers, CreateUpdateMailListMembers, MailListMember, MultipleMembersData, DeletedMember, NewMultipleMembersResponse } from './interfaces/mailListMembers';
|
|
3
|
-
|
|
2
|
+
import { MailListMembersQuery, IMailListsMembers, CreateUpdateMailListMembers, MailListMember, MultipleMembersData, DeletedMember, NewMultipleMembersResponse, MailListMembersResult, MailListMembersResponse } from './interfaces/mailListMembers';
|
|
3
|
+
import NavigationThruPages from './common/NavigationThruPages';
|
|
4
|
+
export default class MailListsMembers extends NavigationThruPages<MailListMembersResult> implements IMailListsMembers {
|
|
4
5
|
baseRoute: string;
|
|
5
6
|
request: Request;
|
|
6
7
|
constructor(request: Request);
|
|
7
8
|
private checkAndUpdateData;
|
|
8
|
-
|
|
9
|
+
protected parseList(response: MailListMembersResponse): MailListMembersResult;
|
|
10
|
+
listMembers(mailListAddress: string, query?: MailListMembersQuery): Promise<MailListMembersResult>;
|
|
9
11
|
getMember(mailListAddress: string, mailListMemberAddress: string): Promise<MailListMember>;
|
|
10
12
|
createMember(mailListAddress: string, data: CreateUpdateMailListMembers): Promise<MailListMember>;
|
|
11
13
|
createMembers(mailListAddress: string, data: MultipleMembersData): Promise<NewMultipleMembersResponse>;
|