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,88 +0,0 @@
1
- import urljoin from 'url-join';
2
- import APIResponse from './interfaces/ApiResponse';
3
- import Request from './request';
4
-
5
- import {
6
- CreatedUpdatedDomainCredentialsResponse,
7
- DeletedDomainCredentialsResponse,
8
- DomainCredentials,
9
- DomainCredentialsList,
10
- DomainCredentialsQuery,
11
- DomainCredentialsResponseData,
12
- DomainCredentialsResult,
13
- IDomainCredentials,
14
- UpdateDomainCredentialsData
15
- } from './interfaces/DomainCredentials';
16
-
17
- export default class DomainCredentialsClient implements IDomainCredentials {
18
- baseRoute: string;
19
- request: Request;
20
-
21
- constructor(request: Request) {
22
- this.request = request;
23
- this.baseRoute = '/v3/domains/';
24
- }
25
-
26
- private _parseDomainCredentialsList(
27
- response: DomainCredentialsResponseData
28
- ): DomainCredentialsList {
29
- return {
30
- items: response.body.items,
31
- totalCount: response.body.total_count
32
- };
33
- }
34
-
35
- private _parseMessageResponse(
36
- response: CreatedUpdatedDomainCredentialsResponse
37
- ): DomainCredentialsResult {
38
- const result = {
39
- status: response.status,
40
- message: response.body.message
41
- } as DomainCredentialsResult;
42
- return result;
43
- }
44
-
45
- private _parseDeletedResponse(
46
- response:DeletedDomainCredentialsResponse
47
- ): DomainCredentialsResult {
48
- const result = {
49
- status: response.status,
50
- message: response.body.message,
51
- spec: response.body.spec
52
- } as DomainCredentialsResult;
53
-
54
- return result;
55
- }
56
-
57
- list(domain: string, query?: DomainCredentialsQuery): Promise<DomainCredentialsList> {
58
- return this.request.get(urljoin(this.baseRoute, domain, '/credentials'), query)
59
- .then(
60
- (res: APIResponse) => this._parseDomainCredentialsList(res as DomainCredentialsResponseData)
61
- );
62
- }
63
-
64
- create(
65
- domain: string,
66
- data: DomainCredentials
67
- ): Promise<DomainCredentialsResult> {
68
- return this.request.postWithFD(`${this.baseRoute}${domain}/credentials`, data)
69
- .then((res: APIResponse) => this._parseMessageResponse(res));
70
- }
71
-
72
- update(
73
- domain: string,
74
- credentialsLogin: string,
75
- data: UpdateDomainCredentialsData
76
- ): Promise<DomainCredentialsResult> {
77
- return this.request.putWithFD(`${this.baseRoute}${domain}/credentials/${credentialsLogin}`, data)
78
- .then((res: APIResponse) => this._parseMessageResponse(res));
79
- }
80
-
81
- destroy(
82
- domain: string,
83
- credentialsLogin: string
84
- ): Promise<DomainCredentialsResult> {
85
- return this.request.delete(`${this.baseRoute}${domain}/credentials/${credentialsLogin}`)
86
- .then((res: APIResponse) => this._parseDeletedResponse(res));
87
- }
88
- }
@@ -1,165 +0,0 @@
1
- import urljoin from 'url-join';
2
- import APIResponse from './interfaces/ApiResponse';
3
- import Request from './request';
4
-
5
- import {
6
- DomainTagAPIResponseStatsItem,
7
- DomainTagCountriesAggregation,
8
- DomainTagCountriesAPIResponse,
9
- DomainTagDevicesAggregation,
10
- DomainTagDevicesAPIResponse,
11
- DomainTagProvidersAggregation,
12
- DomainTagProvidersAPIResponse,
13
- DomainTagsItem,
14
- DomainTagsItemInfo,
15
- DomainTagsList,
16
- DomainTagsMessageRes,
17
- DomainTagsQuery,
18
- DomainTagsResponseData,
19
- DomainTagsStatisticQuery,
20
- DomainTagStatAPIResponse,
21
- DomainTagStatisticItem,
22
- DomainTagStatisticResult,
23
- IDomainTagsClient,
24
- PagesList,
25
- PagesListAccumulator,
26
- ParsedPagesList,
27
- Resolution
28
- } from './interfaces/DomainTags';
29
-
30
- export class DomainTag implements DomainTagsItem {
31
- tag: string;
32
- description: string;
33
- 'first-seen': Date;
34
- 'last-seen': Date;
35
-
36
- constructor(tagInfo: DomainTagsItemInfo) {
37
- this.tag = tagInfo.tag;
38
- this.description = tagInfo.description;
39
- this['first-seen'] = new Date(tagInfo['first-seen']);
40
- this['last-seen'] = new Date(tagInfo['last-seen']);
41
- }
42
- }
43
-
44
- export class DomainTagStatistic implements DomainTagStatisticResult {
45
- tag: string;
46
- description: string;
47
- start: Date;
48
- end: Date;
49
- resolution: Resolution;
50
- stats: DomainTagStatisticItem[];
51
-
52
- constructor(tagStatisticInfo: DomainTagStatAPIResponse) {
53
- this.tag = tagStatisticInfo.body.tag;
54
- this.description = tagStatisticInfo.body.description;
55
- this.start = new Date(tagStatisticInfo.body.start);
56
- this.end = new Date(tagStatisticInfo.body.end);
57
- this.resolution = tagStatisticInfo.body.resolution;
58
- this.stats = tagStatisticInfo.body.stats.map(function (stat: DomainTagAPIResponseStatsItem) {
59
- const res = { ...stat, time: new Date(stat.time) };
60
- return res;
61
- });
62
- }
63
- }
64
-
65
- export default class DomainTagsClient implements IDomainTagsClient {
66
- baseRoute: string;
67
- request: Request;
68
-
69
- constructor(request: Request) {
70
- this.request = request;
71
- this.baseRoute = '/v3/';
72
- }
73
-
74
- private _parsePageLinks(response: DomainTagsResponseData): ParsedPagesList {
75
- const pages = Object.entries(response.body.paging as PagesList);
76
- return pages.reduce(
77
- (acc: PagesListAccumulator, entrie: [url: string, id: string]) => {
78
- const id = entrie[0];
79
- const url = entrie[1];
80
- acc[id] = {
81
- id,
82
- url
83
- };
84
- return acc;
85
- }, {}
86
- ) as unknown as ParsedPagesList;
87
- }
88
-
89
- private _parseDomainTagsList(
90
- response: DomainTagsResponseData
91
- ): DomainTagsList {
92
- return {
93
- items: response.body.items.map((tagInfo) => new DomainTag(tagInfo)),
94
- pages: this._parsePageLinks(response)
95
- };
96
- }
97
-
98
- private _parseTagStatistic(
99
- response: DomainTagStatAPIResponse
100
- ): DomainTagStatistic {
101
- return new DomainTagStatistic(response);
102
- }
103
-
104
- list(domain: string, query?: DomainTagsQuery): Promise<DomainTagsList> {
105
- return this.request.get(urljoin(this.baseRoute, domain, '/tags'), query)
106
- .then(
107
- (res: APIResponse) => this._parseDomainTagsList(res as DomainTagsResponseData)
108
- );
109
- }
110
-
111
- get(domain: string, tag: string): Promise<DomainTagsItem> {
112
- return this.request.get(urljoin(this.baseRoute, domain, '/tags', tag))
113
- .then(
114
- (res: APIResponse) => new DomainTag(res.body)
115
- );
116
- }
117
-
118
- update(domain: string, tag: string, description: string): Promise<DomainTagsMessageRes> {
119
- return this.request.put(urljoin(this.baseRoute, domain, '/tags', tag), description)
120
- .then(
121
- (res: APIResponse) => res.body as DomainTagsMessageRes
122
- );
123
- }
124
-
125
- destroy(
126
- domain: string,
127
- tag: string
128
- ): Promise<DomainTagsMessageRes> {
129
- return this.request.delete(`${this.baseRoute}${domain}/tags/${tag}`)
130
- .then((res: APIResponse) => (
131
- {
132
- message: res.body.message,
133
- status: res.status
134
- } as DomainTagsMessageRes));
135
- }
136
-
137
- statistic(domain: string, tag: string, query: DomainTagsStatisticQuery)
138
- : Promise<DomainTagStatistic> {
139
- return this.request.get(urljoin(this.baseRoute, domain, '/tags', tag, 'stats'), query)
140
- .then(
141
- (res: APIResponse) => this._parseTagStatistic(res)
142
- );
143
- }
144
-
145
- countries(domain: string, tag: string): Promise<DomainTagCountriesAggregation> {
146
- return this.request.get(urljoin(this.baseRoute, domain, '/tags', tag, 'stats/aggregates/countries'))
147
- .then(
148
- (res: DomainTagCountriesAPIResponse) => res.body as DomainTagCountriesAggregation
149
- );
150
- }
151
-
152
- providers(domain: string, tag: string): Promise<DomainTagProvidersAggregation> {
153
- return this.request.get(urljoin(this.baseRoute, domain, '/tags', tag, 'stats/aggregates/providers'))
154
- .then(
155
- (res: DomainTagProvidersAPIResponse) => res.body as DomainTagProvidersAggregation
156
- );
157
- }
158
-
159
- devices(domain: string, tag: string): Promise<DomainTagDevicesAggregation> {
160
- return this.request.get(urljoin(this.baseRoute, domain, '/tags', tag, 'stats/aggregates/devices'))
161
- .then(
162
- (res: DomainTagDevicesAPIResponse) => res.body as DomainTagDevicesAggregation
163
- );
164
- }
165
- }
@@ -1,235 +0,0 @@
1
- import urljoin from 'url-join';
2
- import APIResponse from './interfaces/ApiResponse';
3
- import Request from './request';
4
-
5
- import {
6
- CreateDomainTemplateAPIResponse,
7
- CreateDomainTemplateVersionAPIResponse,
8
- CreateDomainTemplateVersionResult,
9
- DomainTemplate, DomainTemplateData,
10
- DomainTemplatesQuery,
11
- DomainTemplateUpdateData,
12
- DomainTemplateUpdateVersionData,
13
- DomainTemplateVersionData,
14
- GetDomainTemplateAPIResponse,
15
- IDomainTemplatesClient,
16
- ListDomainTemplatesAPIResponse,
17
- ListDomainTemplatesResult,
18
- ListDomainTemplateVersionsAPIResponse,
19
- ListDomainTemplateVersionsResult,
20
- MutateDomainTemplateVersionAPIResponse,
21
- MutateDomainTemplateVersionResult,
22
- NotificationAPIResponse,
23
- NotificationResult,
24
- ShortTemplateVersion,
25
- TemplateQuery,
26
- TemplateVersion,
27
- UpdateOrDeleteDomainTemplateAPIResponse,
28
- UpdateOrDeleteDomainTemplateResult
29
- } from './interfaces/DomainTemplates';
30
-
31
- export class DomainTemplateItem implements DomainTemplate {
32
- name : string;
33
- description : string;
34
- createdAt : Date | '';
35
- createdBy : string;
36
- id : string;
37
- version?: TemplateVersion;
38
- versions?: ShortTemplateVersion[];
39
-
40
- constructor(domainTemplateFromAPI: DomainTemplate) {
41
- this.name = domainTemplateFromAPI.name;
42
- this.description = domainTemplateFromAPI.description;
43
- this.createdAt = domainTemplateFromAPI.createdAt ? new Date(domainTemplateFromAPI.createdAt) : '';
44
- this.createdBy = domainTemplateFromAPI.createdBy;
45
- this.id = domainTemplateFromAPI.id;
46
-
47
- if (domainTemplateFromAPI.version) {
48
- this.version = domainTemplateFromAPI.version;
49
- if (domainTemplateFromAPI.version.createdAt) {
50
- this.version.createdAt = new Date(domainTemplateFromAPI.version.createdAt);
51
- }
52
- }
53
-
54
- if (domainTemplateFromAPI.versions && domainTemplateFromAPI.versions.length) {
55
- this.versions = domainTemplateFromAPI.versions.map((version) => {
56
- const result = { ...version };
57
- result.createdAt = new Date(version.createdAt);
58
- return result;
59
- });
60
- }
61
- }
62
- }
63
-
64
- export default class DomainTemplatesClient implements IDomainTemplatesClient {
65
- baseRoute: string;
66
- request: Request;
67
-
68
- constructor(request: Request) {
69
- this.request = request;
70
- this.baseRoute = '/v3/';
71
- }
72
-
73
- private parseCreationResponse(data: CreateDomainTemplateAPIResponse): DomainTemplateItem {
74
- return new DomainTemplateItem(data.body.template);
75
- }
76
-
77
- private parseCreationVersionResponse(
78
- data: CreateDomainTemplateVersionAPIResponse
79
- ): CreateDomainTemplateVersionResult {
80
- const result: CreateDomainTemplateVersionResult = {} as CreateDomainTemplateVersionResult;
81
- result.status = data.status;
82
- result.message = data.body.message;
83
- if (data.body && data.body.template) {
84
- result.template = new DomainTemplateItem(data.body.template);
85
- }
86
- return result;
87
- }
88
-
89
- private parseMutationResponse(
90
- data: UpdateOrDeleteDomainTemplateAPIResponse
91
- ): UpdateOrDeleteDomainTemplateResult {
92
- const result: UpdateOrDeleteDomainTemplateResult = {} as UpdateOrDeleteDomainTemplateResult;
93
- result.status = data.status;
94
- result.message = data.body.message;
95
- if (data.body && data.body.template) {
96
- result.templateName = data.body.template.name;
97
- }
98
- return result;
99
- }
100
-
101
- private parseNotificationResponse(data: NotificationAPIResponse): NotificationResult {
102
- const result: NotificationResult = {} as NotificationResult;
103
- result.status = data.status;
104
- result.message = data.body.message;
105
- return result;
106
- }
107
-
108
- private parseMutateTemplateVersionResponse(
109
- data: MutateDomainTemplateVersionAPIResponse
110
- ): MutateDomainTemplateVersionResult {
111
- const result: MutateDomainTemplateVersionResult = {} as MutateDomainTemplateVersionResult;
112
- result.status = data.status;
113
- result.message = data.body.message;
114
- if (data.body.template) {
115
- result.templateName = data.body.template.name;
116
- result.templateVersion = { tag: data.body.template.version.tag };
117
- }
118
- return result;
119
- }
120
-
121
- private parseList(response: ListDomainTemplatesAPIResponse): ListDomainTemplatesResult {
122
- const data = {} as ListDomainTemplatesResult;
123
-
124
- data.items = response.body.items.map((d: DomainTemplate) => new DomainTemplateItem(d));
125
-
126
- data.pages = response.body.paging;
127
-
128
- return data;
129
- }
130
-
131
- private parseListTemplateVersions(
132
- response: ListDomainTemplateVersionsAPIResponse
133
- ): ListDomainTemplateVersionsResult {
134
- const data = {} as ListDomainTemplateVersionsResult;
135
-
136
- data.template = new DomainTemplateItem(response.body.template);
137
-
138
- data.pages = response.body.paging;
139
-
140
- return data;
141
- }
142
-
143
- list(domain: string, query?: DomainTemplatesQuery): Promise<ListDomainTemplatesResult> {
144
- return this.request.get(urljoin(this.baseRoute, domain, '/templates'), query)
145
- .then(
146
- (res: APIResponse) => this.parseList(res)
147
- );
148
- }
149
-
150
- get(domain: string, templateName: string, query?: TemplateQuery): Promise<DomainTemplateItem> {
151
- return this.request.get(urljoin(this.baseRoute, domain, '/templates/', templateName), query)
152
- .then(
153
- (res: GetDomainTemplateAPIResponse) => new DomainTemplateItem(res.body.template)
154
- );
155
- }
156
-
157
- create(
158
- domain: string,
159
- data: DomainTemplateData
160
- ): Promise<DomainTemplateItem> {
161
- return this.request.postWithFD(urljoin(this.baseRoute, domain, '/templates'), data)
162
- .then((res: CreateDomainTemplateAPIResponse) => this.parseCreationResponse(res));
163
- }
164
-
165
- update(
166
- domain: string,
167
- templateName: string,
168
- data: DomainTemplateUpdateData
169
- ): Promise<UpdateOrDeleteDomainTemplateResult> {
170
- return this.request.putWithFD(urljoin(this.baseRoute, domain, '/templates/', templateName), data)
171
- .then((res: UpdateOrDeleteDomainTemplateAPIResponse) => this.parseMutationResponse(res));
172
- }
173
-
174
- destroy(domain: string, templateName: string): Promise<UpdateOrDeleteDomainTemplateResult> {
175
- return this.request.delete(urljoin(this.baseRoute, domain, '/templates/', templateName))
176
- .then((res: UpdateOrDeleteDomainTemplateAPIResponse) => this.parseMutationResponse(res));
177
- }
178
-
179
- destroyAll(domain: string): Promise<NotificationResult> {
180
- return this.request.delete(urljoin(this.baseRoute, domain, '/templates'))
181
- .then((res: NotificationAPIResponse) => this.parseNotificationResponse(res));
182
- }
183
-
184
- createVersion(
185
- domain: string,
186
- templateName: string,
187
- data: DomainTemplateVersionData
188
- ): Promise<CreateDomainTemplateVersionResult> {
189
- return this.request.postWithFD(urljoin(this.baseRoute, domain, '/templates/', templateName, '/versions'), data)
190
- .then(
191
- (res: CreateDomainTemplateVersionAPIResponse) => this.parseCreationVersionResponse(res)
192
- );
193
- }
194
-
195
- getVersion(domain: string, templateName: string, tag: string): Promise<DomainTemplateItem> {
196
- return this.request.get(urljoin(this.baseRoute, domain, '/templates/', templateName, '/versions/', tag))
197
- .then(
198
- (res: GetDomainTemplateAPIResponse) => new DomainTemplateItem(res.body.template)
199
- );
200
- }
201
-
202
- updateVersion(
203
- domain: string,
204
- templateName: string,
205
- tag: string,
206
- data: DomainTemplateUpdateVersionData
207
- ): Promise<MutateDomainTemplateVersionResult> {
208
- return this.request.putWithFD(urljoin(this.baseRoute, domain, '/templates/', templateName, '/versions/', tag), data)
209
- .then(
210
- // eslint-disable-next-line max-len
211
- (res: MutateDomainTemplateVersionAPIResponse) => this.parseMutateTemplateVersionResponse(res)
212
- );
213
- }
214
-
215
- destroyVersion(
216
- domain: string,
217
- templateName: string,
218
- tag: string
219
- ): Promise<MutateDomainTemplateVersionResult> {
220
- return this.request.delete(urljoin(this.baseRoute, domain, '/templates/', templateName, '/versions/', tag))
221
- // eslint-disable-next-line max-len
222
- .then((res: MutateDomainTemplateVersionAPIResponse) => this.parseMutateTemplateVersionResponse(res));
223
- }
224
-
225
- listVersions(
226
- domain: string,
227
- templateName: string,
228
- query?: DomainTemplatesQuery
229
- ): Promise<ListDomainTemplateVersionsResult> {
230
- return this.request.get(urljoin(this.baseRoute, domain, '/templates', templateName, '/versions'), query)
231
- .then(
232
- (res: ListDomainTemplateVersionsAPIResponse) => this.parseListTemplateVersions(res)
233
- );
234
- }
235
- }
package/lib/error.ts DELETED
@@ -1,22 +0,0 @@
1
- import APIErrorOptions from './interfaces/APIErrorOptions';
2
-
3
- export default class APIError extends Error {
4
- status: number | string;
5
- stack: string;
6
- details: string;
7
-
8
- constructor({
9
- status,
10
- statusText,
11
- message,
12
- body = {}
13
- }: APIErrorOptions) {
14
- const { message: bodyMessage, error } = body;
15
- super();
16
-
17
- this.stack = '';
18
- this.status = status;
19
- this.message = message || error || statusText;
20
- this.details = bodyMessage;
21
- }
22
- }
package/lib/events.ts DELETED
@@ -1,54 +0,0 @@
1
- import urljoin from 'url-join';
2
- import {
3
- EventsList, EventsPage, EventsResponse, PagesList, PagesListAccumulator, ParsedPagesList
4
- } from './interfaces/Events';
5
-
6
- import Request from './request';
7
-
8
- export default class EventClient {
9
- request: Request;
10
-
11
- constructor(request: Request) {
12
- this.request = request;
13
- }
14
-
15
- _parsePageNumber(url: string) : string {
16
- return url.split('/').pop() || '';
17
- }
18
-
19
- _parsePage(id: string, url: string) : EventsPage {
20
- return { id, number: this._parsePageNumber(url), url };
21
- }
22
-
23
- _parsePageLinks(response: EventsResponse) : ParsedPagesList {
24
- const pages = Object.entries(response.body.paging as PagesList);
25
- return pages.reduce(
26
- (acc: PagesListAccumulator, pair: [url: string, id: string]) => {
27
- const id = pair[0];
28
- const url = pair[1];
29
- acc[id] = this._parsePage(id, url);
30
- return acc;
31
- }, {}
32
- ) as unknown as ParsedPagesList;
33
- }
34
-
35
- _parseEventList(response: EventsResponse) : EventsList {
36
- return {
37
- items: response.body.items,
38
- pages: this._parsePageLinks(response)
39
- };
40
- }
41
-
42
- get(domain: string, query?: { page: string }) : Promise<EventsList> {
43
- let url;
44
- const queryCopy = { ...query };
45
- if (queryCopy && queryCopy.page) {
46
- url = urljoin('/v3', domain, 'events', queryCopy.page);
47
- delete queryCopy.page;
48
- } else {
49
- url = urljoin('/v3', domain, 'events');
50
- }
51
- return this.request.get(url, queryCopy)
52
- .then((response: EventsResponse) => this._parseEventList(response));
53
- }
54
- }
package/lib/index.ts DELETED
@@ -1,16 +0,0 @@
1
- import Client from './client';
2
- import { InputFormData } from './interfaces/IFormData';
3
- import Options from './interfaces/Options';
4
-
5
- export default class Mailgun {
6
- static get default(): typeof Mailgun { return this; }
7
- private formData: InputFormData
8
-
9
- constructor(FormData: InputFormData) {
10
- this.formData = FormData;
11
- }
12
-
13
- client(options: Options) : Client {
14
- return new Client(options, this.formData);
15
- }
16
- }
@@ -1,10 +0,0 @@
1
- interface APIErrorOptions {
2
- headers: { [key: string]: any };
3
- status: number | string;
4
- message: string;
5
- body: any;
6
- url: string;
7
- statusText: string;
8
- }
9
-
10
- export default APIErrorOptions;
@@ -1,22 +0,0 @@
1
- /* eslint-disable camelcase */
2
- export interface IpPool {
3
- description: string;
4
- ips: string[];
5
- is_linked: boolean;
6
- name: string;
7
- pool_id: string;
8
- }
9
-
10
- export interface IpPoolListResponse {
11
- body: {
12
- ip_pools: IpPool,
13
- message: string
14
- }
15
- }
16
-
17
- export interface IpPoolUpdateData {
18
- name: string,
19
- description: string,
20
- add_ip: string,
21
- remove_ip: string
22
- }
@@ -1,12 +0,0 @@
1
- /* eslint-disable camelcase */
2
- export interface IpsListResponseBody {
3
- assignable_to_pools: boolean;
4
- items: string[];
5
- total_count: number;
6
- }
7
-
8
- export interface IpData {
9
- ip: string;
10
- dedicated: boolean;
11
- rdns: string;
12
- }
@@ -1,10 +0,0 @@
1
- /* eslint-disable camelcase */
2
- interface Options {
3
- username: string;
4
- key: string;
5
- url?: string;
6
- public_key?: string;
7
- timeout?: number;
8
- }
9
-
10
- export default Options;
@@ -1,25 +0,0 @@
1
- export interface Stat {
2
- time: string | Date,
3
- delivered: {
4
- smtp: number,
5
- http: number,
6
- total: number
7
- }
8
- }
9
-
10
- export interface StatsOptions {
11
- start: string | Date;
12
- end: string | Date;
13
- resolution: string;
14
- stats: Stat[];
15
- }
16
-
17
- export type StatsEvent = 'accepted' | 'delivered' | 'opened' | 'clicked' | 'unsubscribed' | 'stored' | 'rejected' | 'complained' | 'failed-temporary' | 'failed-permanent';
18
-
19
- export interface StatsQuery {
20
- event: StatsEvent | StatsEvent[];
21
- start?: string | Date;
22
- end?: string | Date;
23
- resolution?: 'hour'| 'day' | 'month';
24
- duration?: string;
25
- }