mailgun.js 4.2.2 → 5.0.1

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 (62) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/mailgun.js.d.ts +1572 -0
  3. package/dist/mailgun.node.js +2 -2
  4. package/dist/mailgun.node.js.LICENSE.txt +1 -1
  5. package/dist/mailgun.web.js +2 -2
  6. package/dist/mailgun.web.js.LICENSE.txt +1 -1
  7. package/dts-bundle.js +8 -0
  8. package/examples/addresses.js +1 -1
  9. package/examples/list-domains.js +1 -1
  10. package/lib/domains.ts +1 -1
  11. package/lib/events.ts +4 -4
  12. package/{index.ts → lib/index.ts} +3 -3
  13. package/lib/interfaces/Supressions.ts +61 -0
  14. package/lib/interfaces/Webhooks.ts +10 -0
  15. package/lib/stats.ts +3 -3
  16. package/lib/suppressions.ts +39 -18
  17. package/lib/webhooks.ts +7 -4
  18. package/package.json +11 -6
  19. package/tsconfig.json +2 -2
  20. package/webpack/webpack.common.config.js +2 -2
  21. package/dist/index.d.ts +0 -9
  22. package/dist/lib/client.d.ts +0 -28
  23. package/dist/lib/domains.d.ts +0 -53
  24. package/dist/lib/domainsCredentials.d.ts +0 -14
  25. package/dist/lib/domainsTags.d.ts +0 -34
  26. package/dist/lib/domainsTemplates.d.ts +0 -35
  27. package/dist/lib/error.d.ts +0 -7
  28. package/dist/lib/events.d.ts +0 -13
  29. package/dist/lib/interfaces/APIErrorOptions.d.ts +0 -11
  30. package/dist/lib/interfaces/ApiResponse.d.ts +0 -5
  31. package/dist/lib/interfaces/DomainCredentials.d.ts +0 -52
  32. package/dist/lib/interfaces/DomainTags.d.ts +0 -228
  33. package/dist/lib/interfaces/DomainTemplates.d.ts +0 -194
  34. package/dist/lib/interfaces/DomainTracking.d.ts +0 -48
  35. package/dist/lib/interfaces/Domains.d.ts +0 -121
  36. package/dist/lib/interfaces/Events.d.ts +0 -88
  37. package/dist/lib/interfaces/IFormData.d.ts +0 -7
  38. package/dist/lib/interfaces/IpPools.d.ts +0 -19
  39. package/dist/lib/interfaces/Ips.d.ts +0 -10
  40. package/dist/lib/interfaces/MultipleValidation.d.ts +0 -55
  41. package/dist/lib/interfaces/Options.d.ts +0 -8
  42. package/dist/lib/interfaces/RequestOptions.d.ts +0 -6
  43. package/dist/lib/interfaces/StatsOptions.d.ts +0 -21
  44. package/dist/lib/interfaces/Supressions.d.ts +0 -21
  45. package/dist/lib/interfaces/Validate.d.ts +0 -12
  46. package/dist/lib/interfaces/Webhooks.d.ts +0 -25
  47. package/dist/lib/interfaces/lists.d.ts +0 -25
  48. package/dist/lib/interfaces/mailListMembers.d.ts +0 -52
  49. package/dist/lib/interfaces/routes.d.ts +0 -25
  50. package/dist/lib/ip-pools.d.ts +0 -21
  51. package/dist/lib/ips.d.ts +0 -9
  52. package/dist/lib/lists.d.ts +0 -14
  53. package/dist/lib/mailListMembers.d.ts +0 -14
  54. package/dist/lib/messages.d.ts +0 -9
  55. package/dist/lib/multipleValidation.d.ts +0 -10
  56. package/dist/lib/parse.d.ts +0 -0
  57. package/dist/lib/request.d.ts +0 -31
  58. package/dist/lib/routes.d.ts +0 -11
  59. package/dist/lib/stats.d.ts +0 -20
  60. package/dist/lib/suppressions.d.ts +0 -67
  61. package/dist/lib/validate.d.ts +0 -9
  62. package/dist/lib/webhooks.d.ts +0 -32
@@ -1,52 +0,0 @@
1
- export interface DomainCredentialsQuery {
2
- limit: number;
3
- skip: number;
4
- }
5
- export interface DomainCredentials {
6
- login: string;
7
- password: string;
8
- }
9
- export interface DomainCredentialsItem {
10
- created_at: string;
11
- login: string;
12
- mailbox: string;
13
- size_bytes: number | null;
14
- }
15
- export interface DomainCredentialsResponseData {
16
- status: number;
17
- body: {
18
- items: DomainCredentialsItem[];
19
- total_count: number;
20
- };
21
- }
22
- export interface DomainCredentialsList {
23
- items: DomainCredentialsItem[];
24
- totalCount: number;
25
- }
26
- export interface DomainCredentialsResult {
27
- status: number;
28
- message: string;
29
- spec?: string;
30
- }
31
- export interface CreatedUpdatedDomainCredentialsResponse {
32
- status: number;
33
- body: {
34
- message: string;
35
- };
36
- }
37
- export interface DeletedDomainCredentialsResponse {
38
- status: number;
39
- body: {
40
- message: string;
41
- spec: string;
42
- };
43
- }
44
- export interface UpdateDomainCredentialsData {
45
- password: string;
46
- }
47
- export interface IDomainCredentials {
48
- list(domain: string, query: DomainCredentialsQuery): Promise<DomainCredentialsList>;
49
- create(domain: string, data: DomainCredentials): Promise<DomainCredentialsResult>;
50
- update(domain: string, credentialsLogin: string, data: UpdateDomainCredentialsData): Promise<DomainCredentialsResult>;
51
- destroy(domain: string, credentialsLogin: string): Promise<DomainCredentialsResult>;
52
- }
@@ -1,228 +0,0 @@
1
- import { DomainTagStatistic } from '../domainsTags';
2
- export declare enum Resolution {
3
- HOUR = "hour",
4
- DAY = "day",
5
- MONTH = "month"
6
- }
7
- export interface DomainTagsQuery {
8
- limit: number;
9
- }
10
- export interface DomainTagsStatisticQuery {
11
- event: string;
12
- start?: number;
13
- end?: number;
14
- resolution?: Resolution;
15
- duration?: string;
16
- }
17
- export interface DomainTagsItemInfo {
18
- tag: string;
19
- description: string;
20
- 'first-seen': string;
21
- 'last-seen': string;
22
- }
23
- export interface DomainTagsItem {
24
- tag: string;
25
- description: string;
26
- 'first-seen': Date;
27
- 'last-seen': Date;
28
- }
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
- export interface DomainTagsResponseData {
53
- status: number;
54
- body: {
55
- items: DomainTagsItemInfo[];
56
- paging: PagesList;
57
- };
58
- }
59
- export interface DomainTagsList {
60
- items: DomainTagsItem[];
61
- pages: ParsedPagesList;
62
- }
63
- export interface DomainTagsMessageRes {
64
- message: string;
65
- status?: number;
66
- }
67
- export interface DomainTagAPIResponseStatsItem {
68
- time: string;
69
- accepted?: {
70
- incoming: number;
71
- outgoing: number;
72
- total: number;
73
- };
74
- delivered?: {
75
- smtp: number;
76
- http: number;
77
- optimized: number;
78
- total: number;
79
- };
80
- opened?: {
81
- total: number;
82
- };
83
- failed?: {
84
- temporary: {
85
- espblock: number;
86
- total: number;
87
- };
88
- permanent: {
89
- 'suppress-bounce': number;
90
- 'suppress-unsubscribe': number;
91
- 'suppress-complaint': number;
92
- bounce: number;
93
- 'delayed-bounce': number;
94
- webhook: number;
95
- optimized: number;
96
- total: number;
97
- };
98
- };
99
- clicked?: {
100
- total: number;
101
- };
102
- unsubscribed?: {
103
- total: number;
104
- };
105
- complained?: {
106
- total: number;
107
- };
108
- stored?: {
109
- total: number;
110
- };
111
- }
112
- export interface DomainTagStatAPIResponse {
113
- body: {
114
- tag: string;
115
- description: string;
116
- start: string;
117
- end: string;
118
- resolution: Resolution;
119
- stats: DomainTagAPIResponseStatsItem[];
120
- };
121
- }
122
- export interface DomainTagStatisticItem extends Omit<DomainTagAPIResponseStatsItem, 'time'> {
123
- time: Date;
124
- }
125
- export interface DomainTagStatisticResult {
126
- tag: string;
127
- description: string;
128
- start: Date;
129
- end: Date;
130
- resolution: Resolution;
131
- stats: DomainTagStatisticItem[];
132
- }
133
- export interface DomainTagCountriesAPIResponse {
134
- body: {
135
- tag: string;
136
- country: {
137
- [key: string]: {
138
- clicked: number;
139
- complained: number;
140
- opened: number;
141
- unique_clicked: number;
142
- unique_opened: number;
143
- unsubscribed: number;
144
- };
145
- };
146
- };
147
- }
148
- export interface DomainTagCountriesAggregation {
149
- tag: string;
150
- country: {
151
- [key: string]: {
152
- clicked: number;
153
- complained: number;
154
- opened: number;
155
- unique_clicked: number;
156
- unique_opened: number;
157
- unsubscribed: number;
158
- };
159
- };
160
- }
161
- export interface DomainTagProvidersAPIResponse {
162
- body: {
163
- tag: string;
164
- provider: {
165
- [key: string]: {
166
- accepted: number;
167
- clicked: number;
168
- complained: number;
169
- delivered: number;
170
- opened: number;
171
- unique_clicked: number;
172
- unique_opened: number;
173
- unsubscribed: number;
174
- };
175
- };
176
- };
177
- status: number;
178
- }
179
- export interface DomainTagProvidersAggregation {
180
- tag: string;
181
- provider: {
182
- [key: string]: {
183
- accepted: number;
184
- clicked: number;
185
- complained: number;
186
- delivered: number;
187
- opened: number;
188
- unique_clicked: number;
189
- unique_opened: number;
190
- unsubscribed: number;
191
- };
192
- };
193
- }
194
- export interface DeviceStatistic {
195
- clicked: number;
196
- complained: number;
197
- opened: number;
198
- unique_clicked: number;
199
- unique_opened: number;
200
- unsubscribed: number;
201
- }
202
- export interface DevicesTypes {
203
- desktop: DeviceStatistic;
204
- mobile: DeviceStatistic;
205
- tablet: DeviceStatistic;
206
- unknown: DeviceStatistic;
207
- }
208
- export interface DomainTagDevicesAPIResponse {
209
- body: {
210
- tag: string;
211
- device: DevicesTypes;
212
- };
213
- status: number;
214
- }
215
- export interface DomainTagDevicesAggregation {
216
- tag: string;
217
- device: DevicesTypes;
218
- }
219
- export interface IDomainTagsClient {
220
- list(domain: string): Promise<DomainTagsList>;
221
- get(domain: string, tag: string): Promise<DomainTagsItem>;
222
- update(domain: string, tag: string, description: string): Promise<DomainTagsMessageRes>;
223
- destroy(domain: string, tag: string): Promise<DomainTagsMessageRes>;
224
- statistic(domain: string, tag: string, query: DomainTagsStatisticQuery): Promise<DomainTagStatistic>;
225
- countries(domain: string, tag: string): Promise<DomainTagCountriesAggregation>;
226
- providers(domain: string, tag: string): Promise<DomainTagProvidersAggregation>;
227
- devices(domain: string, tag: string): Promise<DomainTagDevicesAggregation>;
228
- }
@@ -1,194 +0,0 @@
1
- import { DomainTemplateItem } from '../domainsTemplates';
2
- export declare enum YesNo {
3
- YES = "yes",
4
- NO = "no"
5
- }
6
- export declare enum Pages {
7
- FIRST = "first",
8
- LAST = "last",
9
- NEXT = "next",
10
- PREV = "prev"
11
- }
12
- export interface DomainTemplateData {
13
- name: string;
14
- description: string;
15
- template: string;
16
- tag?: string;
17
- engine?: string;
18
- comment?: string;
19
- }
20
- export interface DomainTemplateVersionData {
21
- template: string;
22
- tag: string;
23
- engine?: string;
24
- comment?: string;
25
- active?: YesNo;
26
- }
27
- export interface DomainTemplateUpdateData {
28
- description: string;
29
- }
30
- export interface DomainTemplateUpdateVersionData {
31
- template?: string;
32
- comment?: string;
33
- active?: YesNo;
34
- }
35
- export interface DomainTemplatesQuery {
36
- page: Pages;
37
- limit: number;
38
- p: string;
39
- }
40
- export interface TemplateQuery {
41
- active: YesNo;
42
- }
43
- export interface ShortTemplateVersion {
44
- tag: string;
45
- engine: string;
46
- mjml: string;
47
- createdAt: string | Date;
48
- comment: string;
49
- active: boolean;
50
- id: string;
51
- }
52
- export interface TemplateVersion extends ShortTemplateVersion {
53
- template: string;
54
- }
55
- export interface DomainTemplate {
56
- name: string;
57
- description: string;
58
- createdAt: string | Date;
59
- createdBy: string;
60
- id: string;
61
- version?: TemplateVersion;
62
- versions?: ShortTemplateVersion[];
63
- }
64
- export interface CreateDomainTemplateAPIResponse {
65
- status: number;
66
- body: {
67
- message: string;
68
- template: DomainTemplate;
69
- };
70
- }
71
- export interface ListDomainTemplatesAPIResponse {
72
- status: number;
73
- body: {
74
- items: DomainTemplate[];
75
- paging: {
76
- first: string;
77
- last: string;
78
- next: string;
79
- previous: string;
80
- };
81
- };
82
- }
83
- export interface ListDomainTemplatesResult {
84
- items: DomainTemplate[];
85
- pages: {
86
- first: string;
87
- last: string;
88
- next: string;
89
- previous: string;
90
- };
91
- }
92
- export interface GetDomainTemplateAPIResponse {
93
- status: number;
94
- body: {
95
- template: DomainTemplate;
96
- };
97
- }
98
- export interface UpdateOrDeleteDomainTemplateAPIResponse {
99
- status: number;
100
- body: {
101
- message: string;
102
- template: {
103
- name: string;
104
- };
105
- };
106
- }
107
- export interface UpdateOrDeleteDomainTemplateResult {
108
- status: number;
109
- message: string;
110
- templateName?: string;
111
- }
112
- export interface NotificationAPIResponse {
113
- status: number;
114
- body: {
115
- message: string;
116
- };
117
- }
118
- export interface NotificationResult {
119
- status: number;
120
- message: string;
121
- }
122
- export interface CreateDomainTemplateVersionAPIResponse {
123
- status: number;
124
- body: {
125
- message: string;
126
- template: DomainTemplate;
127
- };
128
- }
129
- export interface CreateDomainTemplateVersionResult {
130
- status: number;
131
- message: string;
132
- template: DomainTemplate;
133
- }
134
- export interface MutateDomainTemplateVersionAPIResponse {
135
- status: number;
136
- body: {
137
- message: string;
138
- template: {
139
- name: string;
140
- version: {
141
- tag: string;
142
- };
143
- };
144
- };
145
- }
146
- export interface MutateDomainTemplateVersionResult {
147
- status: number;
148
- message: string;
149
- templateName: string;
150
- templateVersion: {
151
- tag: string;
152
- };
153
- }
154
- export interface ListDomainTemplateVersionsAPIResponse {
155
- status: number;
156
- body: {
157
- template: {
158
- name: string;
159
- description: string;
160
- createdAt: string;
161
- createdBy: string;
162
- id: string;
163
- versions: ShortTemplateVersion[];
164
- };
165
- paging: {
166
- first: string;
167
- last: string;
168
- next: string;
169
- previous: string;
170
- };
171
- };
172
- }
173
- export interface ListDomainTemplateVersionsResult {
174
- template: DomainTemplateItem;
175
- pages: {
176
- first: string;
177
- last: string;
178
- next: string;
179
- previous: string;
180
- };
181
- }
182
- export interface IDomainTemplatesClient {
183
- list(domain: string, query?: DomainTemplatesQuery): Promise<ListDomainTemplatesResult>;
184
- get(domain: string, templateName: string, query: TemplateQuery): Promise<DomainTemplateItem>;
185
- create(domain: string, data: DomainTemplateData): Promise<DomainTemplateItem>;
186
- update(domain: string, templateName: string, data: DomainTemplateUpdateData): Promise<UpdateOrDeleteDomainTemplateResult>;
187
- destroy(domain: string, templateName: string): Promise<UpdateOrDeleteDomainTemplateResult>;
188
- destroyAll(domain: string): Promise<NotificationResult>;
189
- createVersion(domain: string, templateName: string, data: DomainTemplateVersionData): Promise<CreateDomainTemplateVersionResult>;
190
- getVersion(domain: string, templateName: string, tag: string): Promise<DomainTemplateItem>;
191
- updateVersion(domain: string, templateName: string, tag: string, data: DomainTemplateUpdateVersionData): Promise<MutateDomainTemplateVersionResult>;
192
- destroyVersion(domain: string, templateName: string, tag: string): Promise<MutateDomainTemplateVersionResult>;
193
- listVersions(domain: string, templateName: string, query?: DomainTemplatesQuery): Promise<ListDomainTemplateVersionsResult>;
194
- }
@@ -1,48 +0,0 @@
1
- export interface DomainTrackingData {
2
- click: {
3
- active: boolean;
4
- };
5
- open: {
6
- active: boolean;
7
- };
8
- unsubscribe: {
9
- active: boolean;
10
- html_footer: string;
11
- text_footer: string;
12
- };
13
- }
14
- export interface DomainTrackingResponse {
15
- status: number;
16
- body: {
17
- tracking: DomainTrackingData;
18
- };
19
- }
20
- export interface UpdatedOpenTracking {
21
- message: string;
22
- open?: {
23
- active: boolean;
24
- };
25
- click?: {
26
- active: boolean | 'htmlonly';
27
- };
28
- unsubscribe?: {
29
- active: boolean;
30
- html_footer: string;
31
- text_footer: string;
32
- };
33
- }
34
- export interface UpdateDomainTrackingResponse {
35
- status: number;
36
- body: UpdatedOpenTracking;
37
- }
38
- export interface OpenTrackingInfo {
39
- active: 'yes' | 'no' | 'true' | 'false';
40
- }
41
- export interface ClickTrackingInfo {
42
- active: 'yes' | 'no' | 'true' | 'false' | 'htmlonly';
43
- }
44
- export interface UnsubscribeTrackingInfo {
45
- active: 'yes' | 'no' | 'true' | 'false';
46
- html_footer: string;
47
- text_footer: string;
48
- }
@@ -1,121 +0,0 @@
1
- export interface DomainsQuery {
2
- authority: string;
3
- state: 'active' | 'unverified' | 'disabled';
4
- limit: number;
5
- skip: number;
6
- }
7
- export interface DomainInfo {
8
- name: string;
9
- smtp_password: string;
10
- spam_action?: 'disabled' | 'block' | 'tag';
11
- wildcard?: boolean;
12
- force_dkim_authority?: boolean | 'true' | 'false';
13
- dkim_key_size?: 1024 | 2048;
14
- ips?: '';
15
- pool_id?: '';
16
- web_scheme: 'http' | 'https';
17
- }
18
- export interface DomainShortData {
19
- name: string;
20
- require_tls: boolean;
21
- skip_verification: boolean;
22
- state: string;
23
- wildcard: boolean;
24
- spam_action: string;
25
- created_at: string;
26
- smtp_password: string;
27
- smtp_login: string;
28
- type: string;
29
- }
30
- export interface DomainData extends DomainShortData {
31
- id: string;
32
- is_disabled: boolean;
33
- web_prefix: string;
34
- web_scheme: string;
35
- }
36
- export interface DomainsListItem extends DomainShortData {
37
- receiving_dns_records: null;
38
- sending_dns_records: null;
39
- }
40
- export interface DNSRecord {
41
- cached: any[];
42
- name: string;
43
- record_type: string;
44
- valid: string;
45
- value: string;
46
- }
47
- export interface DomainResponseData {
48
- status: number;
49
- body: {
50
- domain: DomainData;
51
- message?: string;
52
- receiving_dns_records: DNSRecord[];
53
- sending_dns_records: DNSRecord[];
54
- };
55
- }
56
- export interface DomainListResponseData {
57
- status: number;
58
- body: {
59
- items: DomainsListItem[];
60
- total_count: number;
61
- };
62
- }
63
- export interface MessageResponse {
64
- message: string;
65
- }
66
- export interface DestroyedDomainResponse {
67
- status: number;
68
- body: MessageResponse;
69
- }
70
- export interface ConnectionSettings {
71
- require_tls: boolean;
72
- skip_verification: boolean;
73
- }
74
- export interface ConnectionSettingsResponse {
75
- body: {
76
- connection: ConnectionSettings;
77
- };
78
- status: number;
79
- }
80
- export interface UpdatedConnectionSettings {
81
- message: string;
82
- require_tls: boolean;
83
- skip_verification: boolean;
84
- }
85
- export interface UpdatedConnectionSettingsRes {
86
- body: UpdatedConnectionSettings;
87
- status: number;
88
- }
89
- export interface DKIMAuthorityInfo {
90
- self: boolean | 'yes' | 'no' | 'true' | 'false';
91
- }
92
- export interface UpdatedDKIMAuthority {
93
- changed: boolean;
94
- message: string;
95
- sending_dns_records: DNSRecord[];
96
- }
97
- export interface UpdatedDKIMAuthorityResponse {
98
- body: UpdatedDKIMAuthority;
99
- status: 200;
100
- }
101
- export interface DKIMSelectorInfo {
102
- dkimSelector: string;
103
- }
104
- export interface UpdatedDKIMSelectorResponse {
105
- body: MessageResponse;
106
- status: number;
107
- }
108
- export interface WebPrefixInfo {
109
- webPrefix: string;
110
- }
111
- export interface UpdatedWebPrefix {
112
- message: string;
113
- }
114
- export interface UpdatedWebPrefixResponse {
115
- body: MessageResponse;
116
- status: number;
117
- }
118
- export interface ReplacementForPool {
119
- pool_id?: string;
120
- ip?: string;
121
- }