mailgun.js 5.0.3 → 5.0.4

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 (313) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +15 -3
  3. package/client.d.ts +29 -0
  4. package/domains.d.ts +53 -0
  5. package/domainsCredentials.d.ts +14 -0
  6. package/domainsTags.d.ts +34 -0
  7. package/domainsTemplates.d.ts +35 -0
  8. package/error.d.ts +7 -0
  9. package/events.d.ts +13 -0
  10. package/index.d.ts +9 -0
  11. package/interfaces/APIErrorOptions.d.ts +11 -0
  12. package/{lib/interfaces/ApiResponse.ts → interfaces/ApiResponse.d.ts} +1 -2
  13. package/{lib/interfaces/DomainCredentials.ts → interfaces/DomainCredentials.d.ts} +14 -30
  14. package/{lib/interfaces/DomainTags.ts → interfaces/DomainTags.d.ts} +49 -82
  15. package/{lib/interfaces/DomainTemplates.ts → interfaces/DomainTemplates.d.ts} +35 -79
  16. package/{lib/interfaces/DomainTracking.ts → interfaces/DomainTracking.d.ts} +18 -17
  17. package/{lib/interfaces/Domains.ts → interfaces/Domains.d.ts} +29 -50
  18. package/{lib/interfaces/Events.ts → interfaces/Events.d.ts} +11 -12
  19. package/{lib/interfaces/IFormData.ts → interfaces/IFormData.d.ts} +2 -4
  20. package/interfaces/IMailgunClient.d.ts +24 -0
  21. package/interfaces/IpPools.d.ts +19 -0
  22. package/interfaces/Ips.d.ts +10 -0
  23. package/{lib/interfaces/MultipleValidation.ts → interfaces/MultipleValidation.d.ts} +9 -16
  24. package/interfaces/Options.d.ts +8 -0
  25. package/{lib/interfaces/RequestOptions.ts → interfaces/RequestOptions.d.ts} +2 -4
  26. package/interfaces/StatsOptions.d.ts +22 -0
  27. package/interfaces/Supressions.d.ts +103 -0
  28. package/{lib/interfaces/Validate.ts → interfaces/Validate.d.ts} +0 -3
  29. package/{lib/interfaces/Webhooks.ts → interfaces/Webhooks.d.ts} +11 -17
  30. package/{lib/interfaces/lists.ts → interfaces/lists.d.ts} +1 -5
  31. package/{lib/interfaces/mailListMembers.ts → interfaces/mailListMembers.d.ts} +8 -23
  32. package/{lib/interfaces/routes.ts → interfaces/routes.d.ts} +1 -6
  33. package/ip-pools.d.ts +21 -0
  34. package/ips.d.ts +9 -0
  35. package/lists.d.ts +14 -0
  36. package/mailListMembers.d.ts +14 -0
  37. package/mailgun.node.js +3 -0
  38. package/{dist/mailgun.node.js.LICENSE.txt → mailgun.node.js.LICENSE.txt} +1 -1
  39. package/mailgun.web.js +3 -0
  40. package/{dist/mailgun.web.js.LICENSE.txt → mailgun.web.js.LICENSE.txt} +1 -1
  41. package/messages.d.ts +9 -0
  42. package/multipleValidation.d.ts +10 -0
  43. package/package.json +8 -81
  44. package/request.d.ts +31 -0
  45. package/routes.d.ts +11 -0
  46. package/stats.d.ts +20 -0
  47. package/suppressions.d.ts +50 -0
  48. package/validate.d.ts +9 -0
  49. package/version.md +1 -0
  50. package/webhooks.d.ts +32 -0
  51. package/.editorconfig +0 -10
  52. package/.eslintrc +0 -56
  53. package/.husky/commit-msg +0 -4
  54. package/.travis.yml +0 -5
  55. package/LICENSE +0 -191
  56. package/commitlint.config.js +0 -7
  57. package/dist/mailgun.js.d.ts +0 -1586
  58. package/dist/mailgun.node.js +0 -3
  59. package/dist/mailgun.web.js +0 -3
  60. package/docs/.nojekyll +0 -1
  61. package/docs/assets/highlight.css +0 -127
  62. package/docs/assets/icons.css +0 -1043
  63. package/docs/assets/icons.png +0 -0
  64. package/docs/assets/icons@2x.png +0 -0
  65. package/docs/assets/main.js +0 -52
  66. package/docs/assets/search.js +0 -1
  67. package/docs/assets/style.css +0 -1413
  68. package/docs/assets/widgets.png +0 -0
  69. package/docs/assets/widgets@2x.png +0 -0
  70. package/docs/classes/client.default.html +0 -1
  71. package/docs/classes/domains.Domain.html +0 -1
  72. package/docs/classes/domains.default.html +0 -1
  73. package/docs/classes/domainsCredentials.default.html +0 -1
  74. package/docs/classes/domainsTemplates.DomainTemplateItem.html +0 -1
  75. package/docs/classes/domainsTemplates.default.html +0 -1
  76. package/docs/classes/error.default.html +0 -6
  77. package/docs/classes/events.default.html +0 -1
  78. package/docs/classes/ip_pools.default.html +0 -1
  79. package/docs/classes/ips.default.html +0 -1
  80. package/docs/classes/lists.default.html +0 -1
  81. package/docs/classes/mailListMembers.default.html +0 -1
  82. package/docs/classes/messages.default.html +0 -1
  83. package/docs/classes/multipleValidation.default.html +0 -1
  84. package/docs/classes/request.default.html +0 -1
  85. package/docs/classes/routes.default.html +0 -1
  86. package/docs/classes/stats.default.html +0 -1
  87. package/docs/classes/suppressions.default.html +0 -1
  88. package/docs/classes/validate.default.html +0 -1
  89. package/docs/classes/webhooks.default.html +0 -1
  90. package/docs/enums/interfaces_DomainTemplates.Pages.html +0 -1
  91. package/docs/enums/interfaces_DomainTemplates.YesNo.html +0 -1
  92. package/docs/index.html +0 -1140
  93. package/docs/interfaces/interfaces_APIErrorOptions.default.html +0 -1
  94. package/docs/interfaces/interfaces_ApiResponse.default.html +0 -1
  95. package/docs/interfaces/interfaces_DomainCredentials.CreatedUpdatedDomainCredentialsResponse.html +0 -1
  96. package/docs/interfaces/interfaces_DomainCredentials.DeletedDomainCredentialsResponse.html +0 -1
  97. package/docs/interfaces/interfaces_DomainCredentials.DomainCredentials.html +0 -1
  98. package/docs/interfaces/interfaces_DomainCredentials.DomainCredentialsItem.html +0 -1
  99. package/docs/interfaces/interfaces_DomainCredentials.DomainCredentialsList.html +0 -1
  100. package/docs/interfaces/interfaces_DomainCredentials.DomainCredentialsQuery.html +0 -1
  101. package/docs/interfaces/interfaces_DomainCredentials.DomainCredentialsResponseData.html +0 -1
  102. package/docs/interfaces/interfaces_DomainCredentials.DomainCredentialsResult.html +0 -1
  103. package/docs/interfaces/interfaces_DomainCredentials.IDomainCredentials.html +0 -1
  104. package/docs/interfaces/interfaces_DomainCredentials.UpdateDomainCredentialsData.html +0 -1
  105. package/docs/interfaces/interfaces_DomainTemplates.CreateDomainTemplateAPIResponse.html +0 -1
  106. package/docs/interfaces/interfaces_DomainTemplates.CreateDomainTemplateVersionAPIResponse.html +0 -1
  107. package/docs/interfaces/interfaces_DomainTemplates.CreateDomainTemplateVersionResult.html +0 -1
  108. package/docs/interfaces/interfaces_DomainTemplates.DomainTemplate.html +0 -1
  109. package/docs/interfaces/interfaces_DomainTemplates.DomainTemplateData.html +0 -1
  110. package/docs/interfaces/interfaces_DomainTemplates.DomainTemplateUpdateData.html +0 -1
  111. package/docs/interfaces/interfaces_DomainTemplates.DomainTemplateUpdateVersionData.html +0 -1
  112. package/docs/interfaces/interfaces_DomainTemplates.DomainTemplateVersionData.html +0 -1
  113. package/docs/interfaces/interfaces_DomainTemplates.DomainTemplatesQuery.html +0 -1
  114. package/docs/interfaces/interfaces_DomainTemplates.GetDomainTemplateAPIResponse.html +0 -1
  115. package/docs/interfaces/interfaces_DomainTemplates.IDomainTemplatesClient.html +0 -1
  116. package/docs/interfaces/interfaces_DomainTemplates.ListDomainTemplateVersionsAPIResponse.html +0 -1
  117. package/docs/interfaces/interfaces_DomainTemplates.ListDomainTemplateVersionsResult.html +0 -1
  118. package/docs/interfaces/interfaces_DomainTemplates.ListDomainTemplatesAPIResponse.html +0 -1
  119. package/docs/interfaces/interfaces_DomainTemplates.ListDomainTemplatesResult.html +0 -1
  120. package/docs/interfaces/interfaces_DomainTemplates.MutateDomainTemplateVersionAPIResponse.html +0 -1
  121. package/docs/interfaces/interfaces_DomainTemplates.MutateDomainTemplateVersionResult.html +0 -1
  122. package/docs/interfaces/interfaces_DomainTemplates.NotificationAPIResponse.html +0 -1
  123. package/docs/interfaces/interfaces_DomainTemplates.NotificationResult.html +0 -1
  124. package/docs/interfaces/interfaces_DomainTemplates.ShortTemplateVersion.html +0 -1
  125. package/docs/interfaces/interfaces_DomainTemplates.TemplateQuery.html +0 -1
  126. package/docs/interfaces/interfaces_DomainTemplates.TemplateVersion.html +0 -1
  127. package/docs/interfaces/interfaces_DomainTemplates.UpdateOrDeleteDomainTemplateAPIResponse.html +0 -1
  128. package/docs/interfaces/interfaces_DomainTemplates.UpdateOrDeleteDomainTemplateResult.html +0 -1
  129. package/docs/interfaces/interfaces_DomainTracking.ClickTrackingInfo.html +0 -1
  130. package/docs/interfaces/interfaces_DomainTracking.DomainTrackingData.html +0 -1
  131. package/docs/interfaces/interfaces_DomainTracking.DomainTrackingResponse.html +0 -1
  132. package/docs/interfaces/interfaces_DomainTracking.OpenTrackingInfo.html +0 -1
  133. package/docs/interfaces/interfaces_DomainTracking.UnsubscribeTrackingInfo.html +0 -1
  134. package/docs/interfaces/interfaces_DomainTracking.UpdateDomainTrackingResponse.html +0 -1
  135. package/docs/interfaces/interfaces_DomainTracking.UpdatedOpenTracking.html +0 -1
  136. package/docs/interfaces/interfaces_Domains.ConnectionSettings.html +0 -1
  137. package/docs/interfaces/interfaces_Domains.ConnectionSettingsResponse.html +0 -1
  138. package/docs/interfaces/interfaces_Domains.DKIMAuthorityInfo.html +0 -1
  139. package/docs/interfaces/interfaces_Domains.DKIMSelectorInfo.html +0 -1
  140. package/docs/interfaces/interfaces_Domains.DNSRecord.html +0 -1
  141. package/docs/interfaces/interfaces_Domains.DestroyedDomainResponse.html +0 -1
  142. package/docs/interfaces/interfaces_Domains.DomainData.html +0 -1
  143. package/docs/interfaces/interfaces_Domains.DomainInfo.html +0 -1
  144. package/docs/interfaces/interfaces_Domains.DomainListResponseData.html +0 -1
  145. package/docs/interfaces/interfaces_Domains.DomainResponseData.html +0 -1
  146. package/docs/interfaces/interfaces_Domains.DomainShortData.html +0 -1
  147. package/docs/interfaces/interfaces_Domains.DomainsListItem.html +0 -1
  148. package/docs/interfaces/interfaces_Domains.DomainsQuery.html +0 -1
  149. package/docs/interfaces/interfaces_Domains.MessageResponse.html +0 -1
  150. package/docs/interfaces/interfaces_Domains.ReplacementForPool.html +0 -1
  151. package/docs/interfaces/interfaces_Domains.UpdatedConnectionSettings.html +0 -1
  152. package/docs/interfaces/interfaces_Domains.UpdatedConnectionSettingsRes.html +0 -1
  153. package/docs/interfaces/interfaces_Domains.UpdatedDKIMAuthority.html +0 -1
  154. package/docs/interfaces/interfaces_Domains.UpdatedDKIMAuthorityResponse.html +0 -1
  155. package/docs/interfaces/interfaces_Domains.UpdatedDKIMSelectorResponse.html +0 -1
  156. package/docs/interfaces/interfaces_Domains.UpdatedWebPrefix.html +0 -1
  157. package/docs/interfaces/interfaces_Domains.UpdatedWebPrefixResponse.html +0 -1
  158. package/docs/interfaces/interfaces_Domains.WebPrefixInfo.html +0 -1
  159. package/docs/interfaces/interfaces_Events.DomainEvent.html +0 -1
  160. package/docs/interfaces/interfaces_Events.EventsList.html +0 -1
  161. package/docs/interfaces/interfaces_Events.EventsPage.html +0 -1
  162. package/docs/interfaces/interfaces_Events.EventsResponse.html +0 -1
  163. package/docs/interfaces/interfaces_Events.PagesList.html +0 -1
  164. package/docs/interfaces/interfaces_Events.PagesListAccumulator.html +0 -1
  165. package/docs/interfaces/interfaces_Events.ParsedPage.html +0 -1
  166. package/docs/interfaces/interfaces_Events.ParsedPagesList.html +0 -1
  167. package/docs/interfaces/interfaces_IFormData.IFormDataOptions.html +0 -1
  168. package/docs/interfaces/interfaces_IFormData.InputFormData.html +0 -1
  169. package/docs/interfaces/interfaces_IpPools.IpPool.html +0 -1
  170. package/docs/interfaces/interfaces_IpPools.IpPoolListResponse.html +0 -1
  171. package/docs/interfaces/interfaces_IpPools.IpPoolUpdateData.html +0 -1
  172. package/docs/interfaces/interfaces_Ips.IpData.html +0 -1
  173. package/docs/interfaces/interfaces_Ips.IpsListResponseBody.html +0 -1
  174. package/docs/interfaces/interfaces_MultipleValidation.CanceledMultipleValidationJob.html +0 -1
  175. package/docs/interfaces/interfaces_MultipleValidation.CreatedMultipleValidationJob.html +0 -1
  176. package/docs/interfaces/interfaces_MultipleValidation.IMultipleValidationClient.html +0 -1
  177. package/docs/interfaces/interfaces_MultipleValidation.MultipleValidationJob.html +0 -1
  178. package/docs/interfaces/interfaces_MultipleValidation.MultipleValidationJobsListResponse.html +0 -1
  179. package/docs/interfaces/interfaces_MultipleValidation.MultipleValidationJobsListResult.html +0 -1
  180. package/docs/interfaces/interfaces_MultipleValidation.PagesList.html +0 -1
  181. package/docs/interfaces/interfaces_Options.default.html +0 -1
  182. package/docs/interfaces/interfaces_RequestOptions.default.html +0 -1
  183. package/docs/interfaces/interfaces_StatsOptions.Stat.html +0 -1
  184. package/docs/interfaces/interfaces_StatsOptions.StatsOptions.html +0 -1
  185. package/docs/interfaces/interfaces_StatsOptions.StatsQuery.html +0 -1
  186. package/docs/interfaces/interfaces_Supressions.BounceData.html +0 -1
  187. package/docs/interfaces/interfaces_Supressions.ComplaintData.html +0 -1
  188. package/docs/interfaces/interfaces_Supressions.UnsubscribeData.html +0 -1
  189. package/docs/interfaces/interfaces_Supressions.WhiteListData.html +0 -1
  190. package/docs/interfaces/interfaces_Validate.ValidationResponse.html +0 -1
  191. package/docs/interfaces/interfaces_Validate.ValidationResult.html +0 -1
  192. package/docs/interfaces/interfaces_Webhooks.APIWebhook.html +0 -1
  193. package/docs/interfaces/interfaces_Webhooks.ValidationResponse.html +0 -1
  194. package/docs/interfaces/interfaces_Webhooks.WebhookList.html +0 -1
  195. package/docs/interfaces/interfaces_Webhooks.WebhookResponse.html +0 -1
  196. package/docs/interfaces/interfaces_Webhooks.WebhookResponseBody.html +0 -1
  197. package/docs/interfaces/interfaces_Webhooks.WebhooksQuery.html +0 -1
  198. package/docs/interfaces/interfaces_lists.CreateUpdateList.html +0 -1
  199. package/docs/interfaces/interfaces_lists.DestroyedList.html +0 -1
  200. package/docs/interfaces/interfaces_lists.ListsQuery.html +0 -1
  201. package/docs/interfaces/interfaces_lists.MailingList.html +0 -1
  202. package/docs/interfaces/interfaces_mailListMembers.CreateUpdateMailListMembers.html +0 -1
  203. package/docs/interfaces/interfaces_mailListMembers.CreateUpdateMailListMembersReq.html +0 -1
  204. package/docs/interfaces/interfaces_mailListMembers.DeletedMember.html +0 -1
  205. package/docs/interfaces/interfaces_mailListMembers.IMailListsMembers.html +0 -1
  206. package/docs/interfaces/interfaces_mailListMembers.MailListMember.html +0 -1
  207. package/docs/interfaces/interfaces_mailListMembers.MailListMembersQuery.html +0 -1
  208. package/docs/interfaces/interfaces_mailListMembers.MultipleMembersData.html +0 -1
  209. package/docs/interfaces/interfaces_mailListMembers.MultipleMembersReqData.html +0 -1
  210. package/docs/interfaces/interfaces_mailListMembers.NewMultipleMembersResponse.html +0 -1
  211. package/docs/interfaces/interfaces_routes.CreateUpdateRouteData.html +0 -1
  212. package/docs/interfaces/interfaces_routes.DestroyRouteResponse.html +0 -1
  213. package/docs/interfaces/interfaces_routes.Route.html +0 -1
  214. package/docs/interfaces/interfaces_routes.RoutesListQuery.html +0 -1
  215. package/docs/interfaces/interfaces_routes.UpdateRouteResponse.html +0 -1
  216. package/docs/modules/client.html +0 -1
  217. package/docs/modules/domains.html +0 -1
  218. package/docs/modules/domainsCredentials.html +0 -1
  219. package/docs/modules/domainsTemplates.html +0 -1
  220. package/docs/modules/error.html +0 -1
  221. package/docs/modules/events.html +0 -1
  222. package/docs/modules/interfaces_APIErrorOptions.html +0 -1
  223. package/docs/modules/interfaces_ApiResponse.html +0 -1
  224. package/docs/modules/interfaces_DomainCredentials.html +0 -1
  225. package/docs/modules/interfaces_DomainTemplates.html +0 -1
  226. package/docs/modules/interfaces_DomainTracking.html +0 -1
  227. package/docs/modules/interfaces_Domains.html +0 -1
  228. package/docs/modules/interfaces_Events.html +0 -1
  229. package/docs/modules/interfaces_IFormData.html +0 -1
  230. package/docs/modules/interfaces_IpPools.html +0 -1
  231. package/docs/modules/interfaces_Ips.html +0 -1
  232. package/docs/modules/interfaces_MultipleValidation.html +0 -1
  233. package/docs/modules/interfaces_Options.html +0 -1
  234. package/docs/modules/interfaces_RequestOptions.html +0 -1
  235. package/docs/modules/interfaces_StatsOptions.html +0 -1
  236. package/docs/modules/interfaces_Supressions.html +0 -1
  237. package/docs/modules/interfaces_Validate.html +0 -1
  238. package/docs/modules/interfaces_Webhooks.html +0 -1
  239. package/docs/modules/interfaces_lists.html +0 -1
  240. package/docs/modules/interfaces_mailListMembers.html +0 -1
  241. package/docs/modules/interfaces_routes.html +0 -1
  242. package/docs/modules/ip_pools.html +0 -1
  243. package/docs/modules/ips.html +0 -1
  244. package/docs/modules/lists.html +0 -1
  245. package/docs/modules/mailListMembers.html +0 -1
  246. package/docs/modules/messages.html +0 -1
  247. package/docs/modules/multipleValidation.html +0 -1
  248. package/docs/modules/request.html +0 -1
  249. package/docs/modules/routes.html +0 -1
  250. package/docs/modules/stats.html +0 -1
  251. package/docs/modules/suppressions.html +0 -1
  252. package/docs/modules/validate.html +0 -1
  253. package/docs/modules/webhooks.html +0 -1
  254. package/docs/modules.html +0 -1
  255. package/dts-bundle.js +0 -8
  256. package/examples/addresses.js +0 -20
  257. package/examples/index.html +0 -285
  258. package/examples/list-domains.js +0 -8
  259. package/examples/mailgun.png +0 -0
  260. package/examples/rackspace.png +0 -0
  261. package/examples/send-email.js +0 -24
  262. package/lib/client.ts +0 -79
  263. package/lib/domains.ts +0 -224
  264. package/lib/domainsCredentials.ts +0 -88
  265. package/lib/domainsTags.ts +0 -165
  266. package/lib/domainsTemplates.ts +0 -235
  267. package/lib/error.ts +0 -22
  268. package/lib/events.ts +0 -54
  269. package/lib/index.ts +0 -16
  270. package/lib/interfaces/APIErrorOptions.ts +0 -10
  271. package/lib/interfaces/IpPools.ts +0 -22
  272. package/lib/interfaces/Ips.ts +0 -12
  273. package/lib/interfaces/Options.ts +0 -10
  274. package/lib/interfaces/StatsOptions.ts +0 -25
  275. package/lib/interfaces/Supressions.ts +0 -123
  276. package/lib/ip-pools.ts +0 -36
  277. package/lib/ips.ts +0 -24
  278. package/lib/lists.ts +0 -45
  279. package/lib/mailListMembers.ts +0 -83
  280. package/lib/messages.ts +0 -27
  281. package/lib/multipleValidation.ts +0 -37
  282. package/lib/request.ts +0 -271
  283. package/lib/routes.ts +0 -37
  284. package/lib/stats.ts +0 -62
  285. package/lib/suppressions.ts +0 -253
  286. package/lib/validate.ts +0 -20
  287. package/lib/webhooks.ts +0 -83
  288. package/test/client.test.ts +0 -96
  289. package/test/data/emailsValidation1.csv +0 -3
  290. package/test/domains.test.ts +0 -313
  291. package/test/domainsCredentials.test.ts +0 -97
  292. package/test/domainsTags.test.ts +0 -345
  293. package/test/domainsTemplates.test.ts +0 -392
  294. package/test/error.test.ts +0 -32
  295. package/test/events.test.ts +0 -104
  296. package/test/img/mailgun.png +0 -0
  297. package/test/ips.test.ts +0 -57
  298. package/test/lists.test.ts +0 -100
  299. package/test/mailListMembers.test.ts +0 -198
  300. package/test/messageAttachment.test.ts +0 -50
  301. package/test/messages.test.ts +0 -89
  302. package/test/multipleValidation.test.ts +0 -159
  303. package/test/request.test.ts +0 -103
  304. package/test/routes.test.ts +0 -136
  305. package/test/stats.test.ts +0 -90
  306. package/test/suppressions.test.ts +0 -303
  307. package/test/validate.test.ts +0 -43
  308. package/test/webhooks.test.ts +0 -112
  309. package/tsconfig.json +0 -22
  310. package/tsconfig.webpack.json +0 -10
  311. package/webpack/webpack.common.config.js +0 -46
  312. package/webpack/webpack.dev.config.js +0 -36
  313. package/webpack/webpack.release.config.js +0 -45
@@ -1,123 +0,0 @@
1
- import {
2
- Bounce, Complaint, Unsubscribe, WhiteList
3
- } from '../suppressions';
4
-
5
- /* eslint-disable camelcase */
6
- export interface BounceData {
7
- address: string;
8
- code: number;
9
- error: string;
10
- created_at: string | Date;
11
- }
12
-
13
- export interface ComplaintData {
14
- address: string;
15
- created_at: string | Date;
16
- }
17
-
18
- export interface UnsubscribeData {
19
- address: string;
20
- tags: any;
21
- created_at: string | Date;
22
- }
23
-
24
- export interface WhiteListData {
25
- type: string;
26
- value: string;
27
- reason: string;
28
- createdAt: string | Date;
29
- }
30
-
31
- export interface ParsedPage {
32
- id: string;
33
- page: string | null | undefined;
34
- address: string | null | undefined;
35
- url: string
36
- }
37
- export interface ParsedPagesList {
38
- previous: ParsedPage;
39
- first: ParsedPage;
40
- last: ParsedPage;
41
- next: ParsedPage;
42
- }
43
-
44
- export interface SuppressionList {
45
- items: (Bounce | Complaint | Unsubscribe | WhiteList)[];
46
- pages: ParsedPagesList;
47
- }
48
-
49
- export interface PagesList {
50
- previous: string;
51
- first: string;
52
- last: string;
53
- next: string;
54
- }
55
-
56
- export enum SuppressionModels {
57
- BOUNCES = 'bounces',
58
- COMPLAINTS = 'complaints',
59
- UNSUBSCRIBES = 'unsubscribes',
60
- WHITELISTS = 'whitelists'
61
- }
62
-
63
- export interface PagesListAccumulator {
64
- [index: string]: ParsedPage;
65
- }
66
-
67
- export interface SuppressionListQuery {
68
- limit?: number;
69
- }
70
-
71
- export interface SuppressionListResponse {
72
- body: {
73
- items: BounceData[] | ComplaintData[] | UnsubscribeData[] | WhiteListData[];
74
- paging: PagesList;
75
- }
76
- status: number;
77
- }
78
-
79
- export interface SuppressionResponse {
80
- body: BounceData | ComplaintData | UnsubscribeData | WhiteListData;
81
- status: number;
82
- }
83
-
84
- export interface SuppressionDestroyResponse {
85
- body: {
86
- message: string;
87
- value?: string;
88
- address?: string;
89
- }
90
- status: number;
91
- }
92
-
93
- export interface SuppressionDestroyResult {
94
- message: string;
95
- value: string;
96
- address: string;
97
- status: number;
98
- }
99
-
100
- export interface SuppressionCreationData {
101
- address: string;
102
- code?: number;
103
- error?: string;
104
- domain?: string;
105
- tag?: string;
106
- created_at?: string ;
107
- }
108
-
109
- export interface SuppressionCreationResponse {
110
- body:{
111
- message:string;
112
- type?: string;
113
- value?: string;
114
- }
115
- status: number;
116
- }
117
-
118
- export interface SuppressionCreationResult {
119
- message:string;
120
- type: string;
121
- value: string;
122
- status: number;
123
- }
package/lib/ip-pools.ts DELETED
@@ -1,36 +0,0 @@
1
- /* eslint-disable camelcase */
2
- import Request from './request';
3
-
4
- import { IpPool, IpPoolListResponse, IpPoolUpdateData } from './interfaces/IpPools';
5
-
6
- export default class IpPoolsClient {
7
- request: Request;
8
-
9
- constructor(request: Request) {
10
- this.request = request;
11
- }
12
-
13
- list(query: any): Promise<IpPool[]> {
14
- return this.request.get('/v1/ip_pools', query)
15
- .then((response: IpPoolListResponse) => this.parseIpPoolsResponse(response));
16
- }
17
-
18
- create(data: { name: string, description?: string, ips?: string[] }) {
19
- return this.request.postWithFD('/v1/ip_pools', data)
20
- .then((response: { body: { message: string, pool_id: string } }) => response?.body);
21
- }
22
-
23
- update(poolId: string, data: IpPoolUpdateData) : Promise<any> {
24
- return this.request.patchWithFD(`/v1/ip_pools/${poolId}`, data)
25
- .then((response: { body: any }) => response?.body);
26
- }
27
-
28
- delete(poolId: string, data: { id: string, pool_id: string }) {
29
- return this.request.delete(`/v1/ip_pools/${poolId}`, data)
30
- .then((response: { body: any }) => response?.body);
31
- }
32
-
33
- private parseIpPoolsResponse(response: { body: any | any }) {
34
- return response.body.ip_pools;
35
- }
36
- }
package/lib/ips.ts DELETED
@@ -1,24 +0,0 @@
1
- import MgRequest from './request';
2
- import { IpData, IpsListResponseBody } from './interfaces/Ips';
3
-
4
- export default class IpsClient {
5
- request: MgRequest;
6
-
7
- constructor(request: MgRequest) {
8
- this.request = request;
9
- }
10
-
11
- list(query: any) {
12
- return this.request.get('/v3/ips', query)
13
- .then((response: { body: IpsListResponseBody }) => this.parseIpsResponse(response));
14
- }
15
-
16
- get(ip: string) {
17
- return this.request.get(`/v3/ips/${ip}`)
18
- .then((response: { body: IpData }) => this.parseIpsResponse(response));
19
- }
20
-
21
- private parseIpsResponse(response: { body: IpsListResponseBody | IpData }) {
22
- return response.body;
23
- }
24
- }
package/lib/lists.ts DELETED
@@ -1,45 +0,0 @@
1
- import Request from './request';
2
- import {
3
- ListsQuery,
4
- CreateUpdateList,
5
- DestroyedList,
6
- MailingList
7
- } from './interfaces/lists';
8
- import { IMailListsMembers } from './interfaces/mailListMembers';
9
-
10
- export default class ListsClient {
11
- baseRoute: string;
12
- request: Request;
13
- members: IMailListsMembers;
14
-
15
- constructor(request: Request, members:IMailListsMembers) {
16
- this.request = request;
17
- this.baseRoute = '/v3/lists';
18
- this.members = members;
19
- }
20
-
21
- list(query?: ListsQuery): Promise<MailingList[]> {
22
- return this.request.get(`${this.baseRoute}/pages`, query)
23
- .then((response) => response.body.items as MailingList[]);
24
- }
25
-
26
- get(mailListAddress: string): Promise<MailingList> {
27
- return this.request.get(`${this.baseRoute}/${mailListAddress}`)
28
- .then((response) => response.body.list as MailingList);
29
- }
30
-
31
- create(data: CreateUpdateList): Promise<MailingList> {
32
- return this.request.postWithFD(this.baseRoute, data)
33
- .then((response) => response.body.list as MailingList);
34
- }
35
-
36
- update(mailListAddress: string, data: CreateUpdateList): Promise<MailingList> {
37
- return this.request.putWithFD(`${this.baseRoute}/${mailListAddress}`, data)
38
- .then((response) => response.body.list as MailingList);
39
- }
40
-
41
- destroy(mailListAddress: string): Promise<DestroyedList> {
42
- return this.request.delete(`${this.baseRoute}/${mailListAddress}`)
43
- .then((response) => response.body as DestroyedList);
44
- }
45
- }
@@ -1,83 +0,0 @@
1
- import Request from './request';
2
- import {
3
- MailListMembersQuery,
4
- IMailListsMembers,
5
- CreateUpdateMailListMembers,
6
- MailListMember,
7
- MultipleMembersData,
8
- MultipleMembersReqData,
9
- DeletedMember,
10
- CreateUpdateMailListMembersReq,
11
- NewMultipleMembersResponse
12
- } from './interfaces/mailListMembers';
13
-
14
- export default class MailListsMembers implements IMailListsMembers {
15
- baseRoute: string;
16
- request: Request;
17
-
18
- constructor(request: Request) {
19
- this.request = request;
20
- this.baseRoute = '/v3/lists';
21
- }
22
-
23
- private checkAndUpdateData(data: CreateUpdateMailListMembers) {
24
- const newData = { ...data };
25
-
26
- if (typeof data.vars === 'object') {
27
- newData.vars = JSON.stringify(newData.vars);
28
- }
29
-
30
- if (typeof data.subscribed === 'boolean') {
31
- newData.subscribed = data.subscribed ? 'yes' : 'no';
32
- }
33
-
34
- return newData as CreateUpdateMailListMembersReq;
35
- }
36
-
37
- listMembers(mailListAddress: string, query?: MailListMembersQuery): Promise<MailListMember[]> {
38
- return this.request.get(`${this.baseRoute}/${mailListAddress}/members/pages`, query)
39
- .then((response) => response.body.items as MailListMember[]);
40
- }
41
-
42
- getMember(mailListAddress: string, mailListMemberAddress: string): Promise<MailListMember> {
43
- return this.request.get(`${this.baseRoute}/${mailListAddress}/members/${mailListMemberAddress}`)
44
- .then((response) => response.body.member as MailListMember);
45
- }
46
-
47
- createMember(
48
- mailListAddress: string,
49
- data: CreateUpdateMailListMembers
50
- ): Promise<MailListMember> {
51
- const reqData = this.checkAndUpdateData(data);
52
- return this.request.postWithFD(`${this.baseRoute}/${mailListAddress}/members`, reqData)
53
- .then((response) => response.body.member as MailListMember);
54
- }
55
-
56
- createMembers(
57
- mailListAddress: string,
58
- data: MultipleMembersData
59
- ): Promise<NewMultipleMembersResponse> {
60
- const newData: MultipleMembersReqData = {
61
- members: Array.isArray(data.members) ? JSON.stringify(data.members) : data.members,
62
- upsert: data.upsert
63
- };
64
-
65
- return this.request.postWithFD(`${this.baseRoute}/${mailListAddress}/members.json`, newData)
66
- .then((response) => response.body as NewMultipleMembersResponse);
67
- }
68
-
69
- updateMember(
70
- mailListAddress: string,
71
- mailListMemberAddress: string,
72
- data: CreateUpdateMailListMembers
73
- ): Promise<MailListMember> {
74
- const reqData = this.checkAndUpdateData(data);
75
- return this.request.putWithFD(`${this.baseRoute}/${mailListAddress}/members/${mailListMemberAddress}`, reqData)
76
- .then((response) => response.body.member as MailListMember);
77
- }
78
-
79
- destroyMember(mailListAddress: string, mailListMemberAddress: string) : Promise<DeletedMember> {
80
- return this.request.delete(`${this.baseRoute}/${mailListAddress}/members/${mailListMemberAddress}`)
81
- .then((response) => response.body as DeletedMember);
82
- }
83
- }
package/lib/messages.ts DELETED
@@ -1,27 +0,0 @@
1
- import Request from './request';
2
-
3
- export default class MessagesClient {
4
- request: Request;
5
-
6
- constructor(request: Request) {
7
- this.request = request;
8
- }
9
-
10
- _parseResponse(response: { body: any }) {
11
- if (response.body) {
12
- return response.body;
13
- }
14
-
15
- return response;
16
- }
17
-
18
- create(domain: string, data: any) {
19
- if (data.message) {
20
- return this.request.postWithFD(`/v3/${domain}/messages.mime`, data)
21
- .then(this._parseResponse);
22
- }
23
-
24
- return this.request.postWithFD(`/v3/${domain}/messages`, data)
25
- .then(this._parseResponse);
26
- }
27
- }
@@ -1,37 +0,0 @@
1
- import {
2
- CanceledMultipleValidationJob,
3
- CreatedMultipleValidationJob,
4
- IMultipleValidationClient,
5
- MultipleValidationJob,
6
- MultipleValidationJobsListResult
7
- }
8
- from './interfaces/MultipleValidation';
9
- import Request from './request';
10
-
11
- export default class MultipleValidationClient implements IMultipleValidationClient {
12
- request: Request;
13
-
14
- constructor(request: Request) {
15
- this.request = request;
16
- }
17
-
18
- list(): Promise<MultipleValidationJobsListResult> {
19
- return this.request.get('/v4/address/validate/bulk')
20
- .then((response) => response.body as MultipleValidationJobsListResult);
21
- }
22
-
23
- get(listId: string): Promise<MultipleValidationJob> {
24
- return this.request.get(`/v4/address/validate/bulk/${listId}`)
25
- .then((response) => response.body);
26
- }
27
-
28
- create(listId: string, file: any): Promise<CreatedMultipleValidationJob> {
29
- return this.request.postWithFD(`/v4/address/validate/bulk/${listId}`, file)
30
- .then((response) => response.body);
31
- }
32
-
33
- destroy(listId: string): Promise<CanceledMultipleValidationJob> {
34
- return this.request.delete(`/v4/address/validate/bulk/${listId}`)
35
- .then((response) => response);
36
- }
37
- }
package/lib/request.ts DELETED
@@ -1,271 +0,0 @@
1
- import * as NodeFormData from 'form-data';
2
- import * as base64 from 'base-64';
3
- import urljoin from 'url-join';
4
- import ky from 'ky-universal';
5
- import APIError from './error';
6
- import RequestOptions from './interfaces/RequestOptions';
7
- import APIErrorOptions from './interfaces/APIErrorOptions';
8
- import { InputFormData } from './interfaces/IFormData';
9
- import APIResponse from './interfaces/ApiResponse';
10
-
11
- const isStream = (attachment: any) => typeof attachment === 'object' && typeof attachment.pipe === 'function';
12
-
13
- function isNodeFormData(formDataInstance: NodeFormData | FormData)
14
- : formDataInstance is NodeFormData {
15
- return (<NodeFormData>formDataInstance).getHeaders !== undefined;
16
- }
17
-
18
- const getAttachmentOptions = (item: any): {
19
- filename?: string,
20
- contentType?: string,
21
- knownLength?: number
22
- } => {
23
- if (typeof item !== 'object' || isStream(item)) return {};
24
-
25
- const {
26
- filename,
27
- contentType,
28
- knownLength
29
- } = item;
30
-
31
- return {
32
- ...(filename ? { filename } : { filename: 'file' }),
33
- ...(contentType && { contentType }),
34
- ...(knownLength && { knownLength })
35
- };
36
- };
37
-
38
- const streamToString = (stream: any) => {
39
- const chunks: any = [];
40
- return new Promise((resolve, reject) => {
41
- stream.on('data', (chunk: any) => chunks.push(chunk));
42
- stream.on('error', reject);
43
- stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
44
- });
45
- };
46
-
47
- class Request {
48
- private username: string;
49
- private key: string;
50
- private url: string;
51
- private timeout: number;
52
- private headers: any;
53
- private FormDataConstructor: InputFormData;
54
-
55
- constructor(options: RequestOptions, formData: InputFormData) {
56
- this.username = options.username;
57
- this.key = options.key;
58
- this.url = options.url as string;
59
- this.timeout = options.timeout;
60
- this.headers = options.headers || {};
61
- this.FormDataConstructor = formData;
62
- }
63
-
64
- async request(method: string, url: string, inputOptions?: any): Promise<APIResponse> {
65
- const options = { ...inputOptions };
66
- const basic = base64.encode(`${this.username}:${this.key}`);
67
- const headers = {
68
- Authorization: `Basic ${basic}`,
69
- ...this.headers,
70
- ...options?.headers
71
- };
72
-
73
- delete options?.headers;
74
-
75
- if (!headers['Content-Type']) {
76
- // for form-data it will be Null so we need to remove it
77
- delete headers['Content-Type'];
78
- }
79
-
80
- const params = { ...options };
81
-
82
- if (options?.query && Object.getOwnPropertyNames(options?.query).length > 0) {
83
- params.searchParams = options.query;
84
- delete params.query;
85
- }
86
-
87
- const response = await ky(
88
- urljoin(this.url, url),
89
- {
90
- method: method.toLocaleUpperCase(),
91
- headers,
92
- throwHttpErrors: false,
93
- timeout: this.timeout,
94
- ...params
95
- }
96
- );
97
-
98
- if (!response?.ok) {
99
- const message = response?.body && isStream(response.body)
100
- ? await streamToString(response.body)
101
- : await response?.json();
102
-
103
- throw new APIError({
104
- status: response?.status,
105
- statusText: response?.statusText,
106
- body: { message }
107
- } as APIErrorOptions);
108
- }
109
-
110
- const res = {
111
- body: await response?.json(),
112
- status: response?.status
113
- };
114
-
115
- return res;
116
- }
117
-
118
- query(method: string, url: string, query: any, options?: any) : Promise<APIResponse> {
119
- return this.request(method, url, { query, ...options });
120
- }
121
-
122
- command(method: string, url: string, data: any, options?: any) : Promise<APIResponse> {
123
- return this.request(method, url, {
124
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
125
- body: data,
126
- ...options
127
- });
128
- }
129
-
130
- get(url: string, query?: any, options?: any) : Promise<APIResponse> {
131
- return this.query('get', url, query, options);
132
- }
133
-
134
- head(url: string, query: any, options: any) : Promise<APIResponse> {
135
- return this.query('head', url, query, options);
136
- }
137
-
138
- options(url: string, query: any, options: any) : Promise<APIResponse> {
139
- return this.query('options', url, query, options);
140
- }
141
-
142
- post(url: string, data: any, options?: any) : Promise<APIResponse> {
143
- return this.command('post', url, data, options);
144
- }
145
-
146
- postWithFD(url: string, data: any): Promise<APIResponse> {
147
- if (!data) {
148
- throw new Error('Please provide data object');
149
- }
150
- const params: any = {
151
- headers: { 'Content-Type': null }
152
- };
153
- const formData = this.createFormData(data);
154
- return this.command('post', url, formData, params);
155
- }
156
-
157
- putWithFD(url: string, data: any): Promise<APIResponse> {
158
- if (!data) {
159
- throw new Error('Please provide data object');
160
- }
161
- const params: any = {
162
- headers: { 'Content-Type': null }
163
- };
164
- const formData = this.createFormData(data);
165
- return this.command('put', url, formData, params);
166
- }
167
-
168
- patchWithFD(url: string, data: any): Promise<APIResponse> {
169
- if (!data) {
170
- throw new Error('Please provide data object');
171
- }
172
- const params: any = {
173
- headers: { 'Content-Type': null }
174
- };
175
- const formData = this.createFormData(data);
176
- return this.command('patch', url, formData, params);
177
- }
178
-
179
- createFormData(data: any): NodeFormData | FormData {
180
- const formData: NodeFormData | FormData = Object.keys(data)
181
- .filter(function (key) { return data[key]; })
182
- .reduce((formDataAcc: NodeFormData | FormData, key) => {
183
- const fileKeys = ['attachment', 'inline', 'file'];
184
- if (fileKeys.includes(key)) {
185
- this.addFilesToFD(key, data[key], formDataAcc);
186
- return formDataAcc;
187
- }
188
-
189
- if (key === 'message') { // mime message
190
- this.addMimeDataToFD(key, data[key], formDataAcc);
191
- return formDataAcc;
192
- }
193
-
194
- this.addCommonPropertyToFD(key, data[key], formDataAcc);
195
- return formDataAcc;
196
- }, new this.FormDataConstructor());
197
- return formData;
198
- }
199
-
200
- private addMimeDataToFD(
201
- key: string,
202
- data: Buffer | Blob,
203
- formDataInstance: NodeFormData | FormData
204
- ): void {
205
- if (isNodeFormData(formDataInstance)) {
206
- if (Buffer.isBuffer(data)) {
207
- formDataInstance.append(key, data, { filename: 'MimeMessage' });
208
- }
209
- } else {
210
- formDataInstance.append(key, data as Blob, 'MimeMessage');
211
- }
212
- }
213
-
214
- private addFilesToFD(
215
- propertyName: string,
216
- value: any,
217
- formDataInstance: NodeFormData | FormData
218
- ): void {
219
- const appendFileToFD = (
220
- key: string,
221
- obj: any,
222
- formData: NodeFormData | FormData
223
- ): void => {
224
- const isStreamData = isStream(obj);
225
- const objData = isStreamData ? obj : obj.data;
226
- // getAttachmentOptions should be called with obj parameter to prevent loosing filename
227
- const options = getAttachmentOptions(obj);
228
- if (isNodeFormData(formData)) {
229
- formData.append(key, objData, options);
230
- return;
231
- }
232
- formData.append(key, objData, options.filename);
233
- };
234
-
235
- if (Array.isArray(value)) {
236
- value.forEach(function (item) {
237
- appendFileToFD(propertyName, item, formDataInstance);
238
- });
239
- } else {
240
- appendFileToFD(propertyName, value, formDataInstance);
241
- }
242
- }
243
-
244
- private addCommonPropertyToFD(
245
- key: string,
246
- value: any,
247
- formDataAcc: NodeFormData | FormData
248
- ): void {
249
- if (Array.isArray(value)) {
250
- value.forEach(function (item: any) {
251
- formDataAcc.append(key, item);
252
- });
253
- } else if (value != null) {
254
- formDataAcc.append(key, value);
255
- }
256
- }
257
-
258
- put(url: string, data: any, options?: any): Promise<APIResponse> {
259
- return this.command('put', url, data, options);
260
- }
261
-
262
- patch(url: string, data: any, options?: any): Promise<APIResponse> {
263
- return this.command('patch', url, data, options);
264
- }
265
-
266
- delete(url: string, data?: any, options?: any): Promise<APIResponse> {
267
- return this.command('delete', url, data, options);
268
- }
269
- }
270
-
271
- export default Request;
package/lib/routes.ts DELETED
@@ -1,37 +0,0 @@
1
- import {
2
- CreateUpdateRouteData, DestroyRouteResponse, Route, RoutesListQuery, UpdateRouteResponse
3
- } from './interfaces/routes';
4
- import Request from './request';
5
-
6
- export default class RoutesClient {
7
- request: Request;
8
-
9
- constructor(request: Request) {
10
- this.request = request;
11
- }
12
-
13
- list(query: RoutesListQuery): Promise<Route[]> {
14
- return this.request.get('/v3/routes', query)
15
- .then((response) => response.body.items);
16
- }
17
-
18
- get(id: string): Promise<Route> {
19
- return this.request.get(`/v3/routes/${id}`)
20
- .then((response) => response.body.route);
21
- }
22
-
23
- create(data: CreateUpdateRouteData): Promise<Route> {
24
- return this.request.postWithFD('/v3/routes', data)
25
- .then((response) => response.body.route);
26
- }
27
-
28
- update(id: string, data: CreateUpdateRouteData): Promise<UpdateRouteResponse> {
29
- return this.request.putWithFD(`/v3/routes/${id}`, data)
30
- .then((response) => response.body);
31
- }
32
-
33
- destroy(id: string): Promise<DestroyRouteResponse> {
34
- return this.request.delete(`/v3/routes/${id}`)
35
- .then((response) => response.body);
36
- }
37
- }