mailgun.js 3.6.1 → 3.7.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/.eslintrc +8 -6
- package/CHANGELOG.md +7 -0
- package/dist/index.d.ts +1 -1
- package/dist/lib/client.d.ts +1 -1
- package/dist/lib/events.d.ts +9 -25
- package/dist/lib/interfaces/APIErrorOptions.d.ts +2 -1
- package/dist/lib/interfaces/ApiResponse.d.ts +2 -1
- package/dist/lib/interfaces/Events.d.ts +24 -0
- package/dist/lib/interfaces/IpPools.d.ts +12 -0
- package/dist/lib/interfaces/Options.d.ts +2 -1
- package/dist/lib/interfaces/RequestOptions.d.ts +2 -1
- package/dist/lib/interfaces/StatsOptions.d.ts +2 -1
- package/dist/lib/interfaces/mailListMembers.d.ts +6 -6
- package/dist/lib/ip-pools.d.ts +11 -14
- package/dist/lib/ips.d.ts +6 -6
- package/dist/lib/messages.d.ts +1 -1
- package/dist/lib/suppressions.d.ts +1 -1
- package/dist/mailgun.node.js +2 -2
- package/dist/mailgun.node.js.LICENSE.txt +1 -1
- package/dist/mailgun.web.js +2 -2
- package/dist/mailgun.web.js.LICENSE.txt +1 -1
- package/examples/addresses.js +1 -0
- package/examples/list-domains.js +1 -0
- package/examples/send-email.js +1 -0
- package/index.ts +1 -1
- package/lib/client.ts +3 -2
- package/lib/events.ts +21 -19
- package/lib/interfaces/APIErrorOptions.ts +3 -1
- package/lib/interfaces/ApiResponse.ts +3 -1
- package/lib/interfaces/Events.ts +25 -0
- package/lib/interfaces/IFormData.ts +4 -3
- package/lib/interfaces/IpPools.ts +16 -1
- package/lib/interfaces/Ips.ts +1 -0
- package/lib/interfaces/Options.ts +5 -2
- package/lib/interfaces/RequestOptions.ts +4 -2
- package/lib/interfaces/StatsOptions.ts +4 -2
- package/lib/interfaces/Supressions.ts +1 -1
- package/lib/interfaces/lists.ts +1 -0
- package/lib/interfaces/mailListMembers.ts +18 -12
- package/lib/interfaces/routes.ts +1 -0
- package/lib/ip-pools.ts +8 -7
- package/lib/ips.ts +3 -3
- package/lib/lists.ts +1 -1
- package/lib/messages.ts +1 -1
- package/lib/parse.ts +4 -3
- package/lib/stats.ts +3 -2
- package/lib/suppressions.ts +16 -11
- package/lib/validate.ts +0 -1
- package/package.json +1 -1
- package/test/client.test.ts +7 -2
- package/test/events.test.ts +1 -1
- package/test/ips.test.ts +1 -1
- package/test/lists.test.ts +5 -6
- package/test/mailListMembers.test.ts +47 -42
- package/test/messageAttachment.test.ts +3 -3
- package/test/messages.test.ts +1 -1
- package/test/parse.test.ts +1 -1
- package/test/routes.test.ts +1 -0
- package/test/suppressions.test.ts +4 -3
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import nock from 'nock';
|
|
2
|
+
import formData from 'form-data';
|
|
2
3
|
import Request from '../lib/request';
|
|
3
4
|
import RequestOptions from '../lib/interfaces/RequestOptions';
|
|
4
5
|
import MailListMembers from '../lib/mailListMembers';
|
|
5
6
|
import { DeletedMember, MailListMember, NewMultipleMembersResponse } from '../lib/interfaces/mailListMembers';
|
|
6
|
-
import formData from 'form-data';
|
|
7
7
|
|
|
8
8
|
describe('mailListsMembersClient', function () {
|
|
9
9
|
let client: any;
|
|
@@ -19,7 +19,7 @@ describe('mailListsMembersClient', function () {
|
|
|
19
19
|
name: 'test name',
|
|
20
20
|
subscribed: true,
|
|
21
21
|
vars: { gender: 'female', age: 0 }
|
|
22
|
-
} as MailListMember
|
|
22
|
+
} as MailListMember;
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
afterEach(function () {
|
|
@@ -57,7 +57,7 @@ describe('mailListsMembersClient', function () {
|
|
|
57
57
|
|
|
58
58
|
describe('createMember', function () {
|
|
59
59
|
it('adds list member to the mailing list ', function () {
|
|
60
|
-
const member:any = {...defaultListMember};
|
|
60
|
+
const member:any = { ...defaultListMember };
|
|
61
61
|
member.subscribed = true;
|
|
62
62
|
const mailingListAddress = 'testingMailingListAddress@example.com';
|
|
63
63
|
api.post(`/v3/lists/${mailingListAddress}/members`).reply(200, {
|
|
@@ -66,12 +66,12 @@ describe('mailListsMembersClient', function () {
|
|
|
66
66
|
|
|
67
67
|
return client.createMember(mailingListAddress, member).then(function (newListMember:any) {
|
|
68
68
|
newListMember.should.eql(member);
|
|
69
|
-
})
|
|
69
|
+
});
|
|
70
70
|
});
|
|
71
71
|
|
|
72
72
|
it('works with string value in subscribed field', function () {
|
|
73
|
-
const member:any = {...defaultListMember};
|
|
74
|
-
member.subscribed =
|
|
73
|
+
const member:any = { ...defaultListMember };
|
|
74
|
+
member.subscribed = 'yes';
|
|
75
75
|
const mailingListAddress = 'testingMailingListAddress@example.com';
|
|
76
76
|
api.post(`/v3/lists/${mailingListAddress}/members`).reply(200, {
|
|
77
77
|
member
|
|
@@ -79,13 +79,13 @@ describe('mailListsMembersClient', function () {
|
|
|
79
79
|
|
|
80
80
|
return client.createMember(mailingListAddress, member).then(function (newListMember:any) {
|
|
81
81
|
newListMember.should.eql(member);
|
|
82
|
-
})
|
|
82
|
+
});
|
|
83
83
|
});
|
|
84
84
|
});
|
|
85
85
|
|
|
86
86
|
describe('createMembers', function () {
|
|
87
|
-
const mailingListAddress
|
|
88
|
-
let
|
|
87
|
+
const mailingListAddress = 'testingMailingListAddress@example.com';
|
|
88
|
+
let response : NewMultipleMembersResponse;
|
|
89
89
|
|
|
90
90
|
beforeEach(function () {
|
|
91
91
|
response = {
|
|
@@ -105,55 +105,55 @@ describe('mailListsMembersClient', function () {
|
|
|
105
105
|
|
|
106
106
|
it('adds list of members to the mailing list', function () {
|
|
107
107
|
const newMembersListPlaceholder = new Array(5).fill(0);
|
|
108
|
-
const newMembersList = newMembersListPlaceholder.map((_, index)=>{
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
};
|
|
116
|
-
});
|
|
108
|
+
const newMembersList = newMembersListPlaceholder.map((_, index) => ({
|
|
109
|
+
address: `test${index}@example.com`,
|
|
110
|
+
name: `test name ${index}`,
|
|
111
|
+
vars: { gender: 'female', age: index },
|
|
112
|
+
subscribed: true,
|
|
113
|
+
upsert: 'yes'
|
|
114
|
+
}));
|
|
117
115
|
|
|
118
116
|
api.post(`/v3/lists/${mailingListAddress}/members.json`).reply(200, response);
|
|
119
117
|
|
|
120
118
|
return client.createMembers(mailingListAddress, {
|
|
121
119
|
members: newMembersList,
|
|
122
|
-
upsert:
|
|
120
|
+
upsert: 'yes'
|
|
123
121
|
}).then(function (result: NewMultipleMembersResponse) {
|
|
124
122
|
result.should.eql(response);
|
|
125
|
-
})
|
|
123
|
+
});
|
|
126
124
|
});
|
|
127
125
|
|
|
128
126
|
it('works with string value in members field', function () {
|
|
129
127
|
const newMembersListPlaceholder = new Array(5).fill(0);
|
|
130
|
-
const newMembersList = newMembersListPlaceholder.map((_, index)=>{
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
});
|
|
128
|
+
const newMembersList = newMembersListPlaceholder.map((_, index) => ({
|
|
129
|
+
address: `test${index}@example.com`,
|
|
130
|
+
name: `test name ${index}`,
|
|
131
|
+
vars: JSON.stringify({ gender: 'female', age: index }),
|
|
132
|
+
subscribed: true,
|
|
133
|
+
upsert: 'yes'
|
|
134
|
+
|
|
135
|
+
}));
|
|
139
136
|
api.post(`/v3/lists/${mailingListAddress}/members.json`).reply(200, response);
|
|
140
137
|
return client.createMembers(mailingListAddress, {
|
|
141
138
|
members: newMembersList,
|
|
142
|
-
upsert:
|
|
139
|
+
upsert: 'yes'
|
|
143
140
|
}).then(function (result: NewMultipleMembersResponse) {
|
|
144
141
|
result.should.eql(response);
|
|
145
|
-
})
|
|
142
|
+
});
|
|
146
143
|
});
|
|
147
|
-
|
|
148
144
|
});
|
|
149
145
|
|
|
150
146
|
describe('updateMember', function () {
|
|
151
147
|
it('updates list member in the mailing list ', function () {
|
|
152
148
|
const mailingListAddress = 'testingMailingListAddress@example.com';
|
|
153
149
|
const mailingListMemberAddress = 'testingMailingListMemberAddress@example.com';
|
|
154
|
-
api.put(`/v3/lists/${mailingListAddress}/members/${mailingListMemberAddress}`).reply(200, {member: defaultListMember});
|
|
150
|
+
api.put(`/v3/lists/${mailingListAddress}/members/${mailingListMemberAddress}`).reply(200, { member: defaultListMember });
|
|
155
151
|
|
|
156
|
-
return client.updateMember(
|
|
152
|
+
return client.updateMember(
|
|
153
|
+
mailingListAddress,
|
|
154
|
+
mailingListMemberAddress,
|
|
155
|
+
defaultListMember
|
|
156
|
+
).then(function (res: MailListMember) {
|
|
157
157
|
res.should.eql(defaultListMember);
|
|
158
158
|
});
|
|
159
159
|
});
|
|
@@ -161,32 +161,37 @@ describe('mailListsMembersClient', function () {
|
|
|
161
161
|
it('works with string value in subscribed field', function () {
|
|
162
162
|
const mailingListAddress = 'testingMailingListAddress@example.com';
|
|
163
163
|
const mailingListMemberAddress = 'testingMailingListMemberAddress@example.com';
|
|
164
|
-
const member:any = {...defaultListMember};
|
|
165
|
-
member.subscribed =
|
|
166
|
-
api.put(`/v3/lists/${mailingListAddress}/members/${mailingListMemberAddress}`).reply(200, {member: defaultListMember});
|
|
164
|
+
const member: any = { ...defaultListMember };
|
|
165
|
+
member.subscribed = 'yes';
|
|
166
|
+
api.put(`/v3/lists/${mailingListAddress}/members/${mailingListMemberAddress}`).reply(200, { member: defaultListMember });
|
|
167
167
|
|
|
168
|
-
return client.updateMember(
|
|
168
|
+
return client.updateMember(
|
|
169
|
+
mailingListAddress,
|
|
170
|
+
mailingListMemberAddress,
|
|
171
|
+
member
|
|
172
|
+
).then(function (res: MailListMember) {
|
|
169
173
|
res.should.eql(defaultListMember);
|
|
170
174
|
});
|
|
171
175
|
});
|
|
172
176
|
});
|
|
173
177
|
|
|
174
178
|
describe('destroyMember', function () {
|
|
175
|
-
|
|
176
179
|
it('deletes member from the list ', function () {
|
|
177
180
|
const mailingListAddress = 'testingMailingListAddress@example.com';
|
|
178
181
|
const mailingListMemberAddress = 'testingMailingListMemberAddress@example.com';
|
|
179
182
|
const res = {
|
|
180
183
|
member: defaultListMember,
|
|
181
|
-
message:
|
|
184
|
+
message: 'deleted'
|
|
182
185
|
} as DeletedMember;
|
|
183
186
|
|
|
184
187
|
api.delete(`/v3/lists/${mailingListAddress}/members/${mailingListMemberAddress}`).reply(200, res);
|
|
185
188
|
|
|
186
|
-
return client.destroyMember(
|
|
189
|
+
return client.destroyMember(
|
|
190
|
+
mailingListAddress,
|
|
191
|
+
mailingListMemberAddress
|
|
192
|
+
).then(function (deletedMemberRes: DeletedMember) {
|
|
187
193
|
deletedMemberRes.should.eql(res);
|
|
188
194
|
});
|
|
189
195
|
});
|
|
190
196
|
});
|
|
191
|
-
|
|
192
197
|
});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import nock from 'nock';
|
|
3
|
+
import { expect } from 'chai';
|
|
4
|
+
import formData from 'form-data';
|
|
3
5
|
|
|
4
6
|
import Request from '../lib/request';
|
|
5
7
|
import MessagesClient from '../lib/messages';
|
|
6
8
|
import RequestOptions from '../lib/interfaces/RequestOptions';
|
|
7
|
-
import { expect } from 'chai';
|
|
8
|
-
import formData from 'form-data';
|
|
9
9
|
|
|
10
10
|
const mailgunLogo = fs.createReadStream(`${__dirname}/img/mailgun.png`);
|
|
11
11
|
|
|
@@ -41,7 +41,7 @@ describe('MessagesClient', function () {
|
|
|
41
41
|
filename: 'test-image',
|
|
42
42
|
data: mailgunLogo
|
|
43
43
|
}]
|
|
44
|
-
})
|
|
44
|
+
});
|
|
45
45
|
|
|
46
46
|
expect(res.message).to.eql('Queued. Thank you.');
|
|
47
47
|
});
|
package/test/messages.test.ts
CHANGED
package/test/parse.test.ts
CHANGED
package/test/routes.test.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import chai, { expect } from 'chai';
|
|
2
|
-
chai.should();
|
|
3
2
|
import formData from 'form-data';
|
|
4
|
-
|
|
5
3
|
import nock from 'nock';
|
|
4
|
+
|
|
6
5
|
import Request from '../lib/request';
|
|
7
6
|
import SuppressionClient from '../lib/suppressions';
|
|
8
7
|
import RequestOptions from '../lib/interfaces/RequestOptions';
|
|
9
8
|
|
|
9
|
+
chai.should();
|
|
10
|
+
|
|
10
11
|
describe('SuppressionsClient', function () {
|
|
11
12
|
let client: any;
|
|
12
13
|
let api: any;
|
|
@@ -81,7 +82,7 @@ describe('SuppressionsClient', function () {
|
|
|
81
82
|
api.get('/v3/domain.com/unsubscribes').reply(200, response);
|
|
82
83
|
|
|
83
84
|
return client.list('domain.com', 'unsubscribes')
|
|
84
|
-
|
|
85
|
+
.then(function (unsubscribes: { items: any }) {
|
|
85
86
|
let u;
|
|
86
87
|
|
|
87
88
|
u = unsubscribes.items[0];
|