ts-mailcow-api 0.6.2 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +147 -147
  2. package/dist/Endpoints/alias-endpoints.d.ts +20 -17
  3. package/dist/Endpoints/alias-endpoints.js +6 -1
  4. package/dist/Endpoints/alias-endpoints.js.map +1 -1
  5. package/dist/Endpoints/antispam-endpoints.d.ts +25 -4
  6. package/dist/Endpoints/antispam-endpoints.js +8 -2
  7. package/dist/Endpoints/antispam-endpoints.js.map +1 -1
  8. package/dist/Endpoints/domain-endpoints.d.ts +29 -4
  9. package/dist/Endpoints/domain-endpoints.js +12 -5
  10. package/dist/Endpoints/domain-endpoints.js.map +1 -1
  11. package/dist/Endpoints/forwarding-endpoints.d.ts +27 -0
  12. package/dist/Endpoints/forwarding-endpoints.js +23 -0
  13. package/dist/Endpoints/forwarding-endpoints.js.map +1 -0
  14. package/dist/Endpoints/log-endpoints.d.ts +55 -0
  15. package/dist/Endpoints/log-endpoints.js +39 -0
  16. package/dist/Endpoints/log-endpoints.js.map +1 -0
  17. package/dist/Endpoints/mailbox-endpoint.d.ts +50 -5
  18. package/dist/Endpoints/mailbox-endpoint.js +13 -6
  19. package/dist/Endpoints/mailbox-endpoint.js.map +1 -1
  20. package/dist/Endpoints/syncjob-endpoints.d.ts +24 -0
  21. package/dist/Endpoints/syncjob-endpoints.js +21 -0
  22. package/dist/Endpoints/syncjob-endpoints.js.map +1 -0
  23. package/dist/index.d.ts +54 -23
  24. package/dist/index.js +46 -4
  25. package/dist/index.js.map +1 -1
  26. package/dist/request-factory.d.ts +5 -0
  27. package/dist/request-factory.js +10 -0
  28. package/dist/request-factory.js.map +1 -1
  29. package/dist/types.d.ts +1102 -47
  30. package/dist/types.js +3 -0
  31. package/dist/types.js.map +1 -1
  32. package/package.json +3 -2
  33. package/src/Endpoints/alias-endpoints.ts +25 -21
  34. package/src/Endpoints/antispam-endpoints.ts +33 -4
  35. package/src/Endpoints/domain-endpoints.ts +50 -10
  36. package/src/Endpoints/forwarding-endpoints.ts +51 -0
  37. package/src/Endpoints/log-endpoints.ts +130 -0
  38. package/src/Endpoints/mailbox-endpoint.ts +74 -8
  39. package/src/Endpoints/syncjob-endpoints.ts +55 -0
  40. package/src/index.ts +58 -9
  41. package/src/request-factory.ts +10 -0
  42. package/src/types.ts +1149 -57
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-endpoints.js","sourceRoot":"","sources":["../../src/Endpoints/log-endpoints.ts"],"names":[],"mappings":";;;AA4EA,SAAgB,YAAY,CAAC,IAAmB;IAC9C,OAAO;QACL,IAAI,CAAC,KAAa;YAChB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,yBAAyB,KAAK,EAAE,CACjC,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,KAAa;YACf,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,wBAAwB,KAAK,EAAE,CAChC,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,KAAa;YACxB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,iCAAiC,KAAK,EAAE,CACzC,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,KAAa;YACnB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,4BAA4B,KAAK,EAAE,CACpC,CAAC;QACJ,CAAC;QACD,SAAS,CAAC,KAAa;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,8BAA8B,KAAK,EAAE,CACtC,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,KAAa;YACnB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,4BAA4B,KAAK,EAAE,CACpC,CAAC;QACJ,CAAC;QACD,WAAW,CAAC,KAAa;YACvB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,gCAAgC,KAAK,EAAE,CACxC,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,KAAa;YAClB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,mCAAmC,KAAK,EAAE,CAC3C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,KAAa;YAChB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,yBAAyB,KAAK,EAAE,CACjC,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,KAAa;YACpB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,6BAA6B,KAAK,EAAE,CACrC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AArDD,oCAqDC"}
@@ -1,13 +1,58 @@
1
- import { ACLEditRequest, MailboxDeleteRequest, MailboxEditRequest, MailboxPostRequest, MailboxResponse, MailcowResponse, PushoverEditRequest, QuarantaineEditRequest, SpamScoreEditRequest } from '../types';
1
+ import { ACLEditRequest, MailboxDeleteRequest, MailboxEditRequest, MailboxPostRequest, Mailbox, MailcowResponse, PushoverEditRequest, QuarantaineEditRequest, SpamScoreEditRequest } from '../types';
2
2
  import MailcowClient from '../index';
3
- export default function MailboxEndpoints(bind: MailcowClient): {
3
+ /**
4
+ * Interface for all Mailbox endpoints.
5
+ */
6
+ export interface MailboxEndpoints {
7
+ /**
8
+ * Endpoint for creating a mailbox.
9
+ * @param payload - The creation payload.
10
+ */
4
11
  create(payload: MailboxPostRequest): Promise<MailcowResponse>;
12
+ /**
13
+ * Endpoint for deleting a mailbox.
14
+ * @param payload - The deletion payload.
15
+ */
5
16
  delete(payload: MailboxDeleteRequest): Promise<MailcowResponse>;
17
+ /**
18
+ * Endpoint for editing a mailbox.
19
+ * @param payload
20
+ */
6
21
  edit(payload: MailboxEditRequest): Promise<MailcowResponse>;
7
- get(mailbox?: string): Promise<MailboxResponse[]>;
22
+ /**
23
+ * Endpoint for getting a mailbox.
24
+ * @param mailbox - The mailbox to get
25
+ */
26
+ get(mailbox: string | 'all'): Promise<Mailbox[]>;
27
+ /**
28
+ * Endpoint for editing a mailbox's pushover settings.
29
+ * @param payload - The edit payload.
30
+ */
8
31
  editPushover(payload: PushoverEditRequest): Promise<MailcowResponse>;
32
+ /**
33
+ * Endpoint for editing a mailbox's quarantine settings.
34
+ * @param payload - The edit payload.
35
+ */
9
36
  editQuarantine(payload: QuarantaineEditRequest): Promise<MailcowResponse>;
37
+ /**
38
+ * Endpoint for editing a mailbox's spam score settings.
39
+ * @param payload - The edit payload.
40
+ */
10
41
  editSpamScore(payload: SpamScoreEditRequest): Promise<MailcowResponse>;
42
+ /**
43
+ * Endpoint for editing a mailbox's ACL settings.
44
+ * @param payload - The edit payload.
45
+ */
11
46
  editUserACL(payload: ACLEditRequest): Promise<MailcowResponse>;
12
- getActiveUserSieve(username: string): Promise<string[]>;
13
- };
47
+ /**
48
+ * Endpoint fot getting a mailbox's active sieve.
49
+ * @param mailbox - The mailbox to get.
50
+ */
51
+ getActiveUserSieve(mailbox: string): Promise<string[]>;
52
+ }
53
+ /**
54
+ * Binder function between the MailcowClient class and the MailboxEndpoints
55
+ * @param bind - The MailcowClient to bind.
56
+ * @internal
57
+ */
58
+ export declare function mailboxEndpoints(bind: MailcowClient): MailboxEndpoints;
@@ -1,18 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- function MailboxEndpoints(bind) {
3
+ exports.mailboxEndpoints = void 0;
4
+ const request_factory_1 = require("../request-factory");
5
+ /**
6
+ * Binder function between the MailcowClient class and the MailboxEndpoints
7
+ * @param bind - The MailcowClient to bind.
8
+ * @internal
9
+ */
10
+ function mailboxEndpoints(bind) {
4
11
  return {
5
12
  create(payload) {
6
13
  return bind.requestFactory.post('/api/v1/add/mailbox', payload);
7
14
  },
8
15
  delete(payload) {
9
- return bind.requestFactory.post('/api/v1/delete/mailbox', payload.domains);
16
+ return bind.requestFactory.post('/api/v1/delete/mailbox', payload.mailboxes);
10
17
  },
11
18
  edit(payload) {
12
19
  return bind.requestFactory.post('/api/v1/edit/mailbox', payload);
13
20
  },
14
21
  get(mailbox = 'all') {
15
- return bind.requestFactory.get(`/api/v1/get/mailbox/${mailbox}`);
22
+ return request_factory_1.wrapPromiseToArray(bind.requestFactory.get(`/api/v1/get/mailbox/${mailbox}`));
16
23
  },
17
24
  editPushover(payload) {
18
25
  return bind.requestFactory.post('/api/v1/edit/pushover', payload);
@@ -26,10 +33,10 @@ function MailboxEndpoints(bind) {
26
33
  editUserACL(payload) {
27
34
  return bind.requestFactory.post('/api/v1/edit/user-acl', payload);
28
35
  },
29
- getActiveUserSieve(username) {
30
- return bind.requestFactory.get(`/api/v1/get/active-user-sieve/${username}`);
36
+ getActiveUserSieve(mailbox) {
37
+ return bind.requestFactory.get(`/api/v1/get/active-user-sieve/${mailbox}`);
31
38
  }
32
39
  };
33
40
  }
34
- exports.default = MailboxEndpoints;
41
+ exports.mailboxEndpoints = mailboxEndpoints;
35
42
  //# sourceMappingURL=mailbox-endpoint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mailbox-endpoint.js","sourceRoot":"","sources":["../../src/Endpoints/mailbox-endpoint.ts"],"names":[],"mappings":";;AAaA,SAAwB,gBAAgB,CAAC,IAAmB;IAC1D,OAAO;QACL,MAAM,CAAC,OAA2B;YAChC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,qBAAqB,EACrB,OAAO,CACR,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,OAA6B;YAClC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,wBAAwB,EACxB,OAAO,CAAC,OAAO,CAChB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAA2B;YAC9B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,sBAAsB,EACtB,OAAO,CACR,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,UAAkB,KAAK;YACzB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,uBAAwB,OAAQ,EAAE,CACnC,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,OAA4B;YACvC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,uBAAuB,EACvB,OAAO,CACR,CAAC;QACJ,CAAC;QAED,cAAc,CAAC,OAA+B;YAC5C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,sCAAsC,EACtC,OAAO,CACR,CAAC;QACJ,CAAC;QAED,aAAa,CAAC,OAA6B;YACzC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,yBAAyB,EACzB,OAAO,CACR,CAAC;QACJ,CAAC;QAED,WAAW,CAAC,OAAuB;YACjC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,uBAAuB,EACvB,OAAO,CACR,CAAC;QACJ,CAAC;QAED,kBAAkB,CAAC,QAAgB;YACjC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,iCAAkC,QAAS,EAAE,CAC9C,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AA/DD,mCA+DC"}
1
+ {"version":3,"file":"mailbox-endpoint.js","sourceRoot":"","sources":["../../src/Endpoints/mailbox-endpoint.ts"],"names":[],"mappings":";;;AAYA,wDAAwD;AA6DxD;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,IAAmB;IAClD,OAAO;QACL,MAAM,CAAC,OAA2B;YAChC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,qBAAqB,EACrB,OAAO,CACR,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,OAA6B;YAClC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,wBAAwB,EACxB,OAAO,CAAC,SAAS,CAClB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAA2B;YAC9B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,sBAAsB,EACtB,OAAO,CACR,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,UAAkB,KAAK;YACzB,OAAO,oCAAkB,CACvB,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,uBAAwB,OAAQ,EAAE,CAAC,CACtC,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,OAA4B;YACvC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,uBAAuB,EACvB,OAAO,CACR,CAAC;QACJ,CAAC;QAED,cAAc,CAAC,OAA+B;YAC5C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,sCAAsC,EACtC,OAAO,CACR,CAAC;QACJ,CAAC;QAED,aAAa,CAAC,OAA6B;YACzC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,yBAAyB,EACzB,OAAO,CACR,CAAC;QACJ,CAAC;QAED,WAAW,CAAC,OAAuB;YACjC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,uBAAuB,EACvB,OAAO,CACR,CAAC;QACJ,CAAC;QAED,kBAAkB,CAAC,OAAe;YAChC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,iCAAkC,OAAQ,EAAE,CAC7C,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAhED,4CAgEC"}
@@ -0,0 +1,24 @@
1
+ import MailcowClient from '../index';
2
+ import { MailcowResponse, Syncjob, SyncjobDeleteRequest, SyncjobPostRequest, SyncjobUpdateRequest } from '../types';
3
+ export interface SyncjobEndpoints {
4
+ /**
5
+ * Endpoint for creating sync jobs.
6
+ * @param payload - The creation payload.
7
+ */
8
+ create(payload: SyncjobPostRequest): Promise<MailcowResponse>;
9
+ /**
10
+ * Endpoint for editing sync jobs.
11
+ * @param payload - The edit payload.
12
+ */
13
+ edit(payload: SyncjobUpdateRequest): Promise<MailcowResponse>;
14
+ /**
15
+ * Endpoint for deleting sync jobs
16
+ * @param payload - The deletion payload.
17
+ */
18
+ delete(payload: SyncjobDeleteRequest): Promise<MailcowResponse>;
19
+ /**
20
+ * Endpoint for getting all sync jobs.
21
+ */
22
+ getAll(): Promise<Syncjob[]>;
23
+ }
24
+ export declare function syncjobEndpoints(bind: MailcowClient): SyncjobEndpoints;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncjobEndpoints = void 0;
4
+ function syncjobEndpoints(bind) {
5
+ return {
6
+ getAll() {
7
+ return bind.requestFactory.get('/api/v1/get/syncjobs/all/no_log');
8
+ },
9
+ create(payload) {
10
+ return bind.requestFactory.post('/api/v1/add/syncjob', payload);
11
+ },
12
+ edit(payload) {
13
+ return bind.requestFactory.post('/api/v1/edit/syncjob', payload);
14
+ },
15
+ delete(payload) {
16
+ return bind.requestFactory.post('/api/v1/delete/syncjob', payload.items);
17
+ }
18
+ };
19
+ }
20
+ exports.syncjobEndpoints = syncjobEndpoints;
21
+ //# sourceMappingURL=syncjob-endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncjob-endpoints.js","sourceRoot":"","sources":["../../src/Endpoints/syncjob-endpoints.ts"],"names":[],"mappings":";;;AA4BA,SAAgB,gBAAgB,CAAC,IAAmB;IAClD,OAAO;QACL,MAAM;YACJ,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,iCAAiC,CAClC,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,OAA2B;YAChC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,qBAAqB,EACrB,OAAO,CACR,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAA6B;YAChC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,sBAAsB,EACtB,OAAO,CACR,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,OAA6B;YAClC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,wBAAwB,EACxB,OAAO,CAAC,KAAK,CACd,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AA1BD,4CA0BC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,15 @@
1
1
  /**
2
2
  * @module MailcowClient
3
3
  */
4
+ import { AxiosRequestConfig } from 'axios';
5
+ import { DomainEndpoints } from './Endpoints/domain-endpoints';
6
+ import { AntiSpamEndpoints } from './Endpoints/antispam-endpoints';
7
+ import { MailboxEndpoints } from './Endpoints/mailbox-endpoint';
4
8
  import RequestFactory from './request-factory';
5
9
  import { AliasEndpoints } from './Endpoints/alias-endpoints';
10
+ import { SyncjobEndpoints } from './Endpoints/syncjob-endpoints';
11
+ import { ForwardingEndpoints } from './Endpoints/forwarding-endpoints';
12
+ import { LogEndpoints } from './Endpoints/log-endpoints';
6
13
  /**
7
14
  * Class containing all the logic to interface with the Mailcow API in TypeScript.
8
15
  * @external
@@ -16,39 +23,63 @@ declare class MailcowClient {
16
23
  * The API key of the Mailcow API.
17
24
  */
18
25
  readonly API_KEY: string;
19
- HEADERS: {};
26
+ /**
27
+ * The headers used for every request.
28
+ * @internal
29
+ */
30
+ HEADERS: AxiosRequestConfig;
20
31
  /**
21
32
  * Creates a MailcowClient using the given URL and API key.
22
33
  * @param BASE_URL - The base URL of the Mailcow API.
23
34
  * @param API_KEY - The API key of the Mailcow API.
24
35
  */
25
36
  constructor(BASE_URL: string, API_KEY: string);
37
+ /**
38
+ * Factory method pattern for creating HTTP requests.
39
+ * @internal
40
+ */
26
41
  requestFactory: RequestFactory;
27
42
  /**
28
43
  * All endpoints related to Aliases.
44
+ * See {@link AliasEndpoints}
45
+ * @external
29
46
  */
30
47
  aliases: AliasEndpoints;
31
- domains: {
32
- create(payload: import("./types").DomainPostRequest): Promise<import("./types").MailcowResponse<import("./types").BaseResponse>>;
33
- delete(payload: import("./types").DomainDeleteRequest): Promise<import("./types").MailcowResponse<import("./types").BaseResponse>>;
34
- edit(payload: import("./types").DomainEditRequest): Promise<import("./types").MailcowResponse<import("./types").BaseResponse>>;
35
- get(domain?: string): Promise<import("./types").DomainResponse | import("./types").DomainResponse[]>;
36
- };
37
- spamPolicy: {
38
- create(payload: import("./types").SpamPolicyPostRequest): Promise<import("./types").MailcowResponse<import("./types").BaseResponse>>;
39
- delete(payload: import("./types").SpamPolicyDeleteRequest): Promise<import("./types").MailcowResponse<import("./types").BaseResponse>>;
40
- get(payload: import("./types").SpamPolicyGetRequest): Promise<import("./types").SpamPolicyResponse[]>;
41
- };
42
- mailbox: {
43
- create(payload: import("./types").MailboxPostRequest): Promise<import("./types").MailcowResponse<import("./types").BaseResponse>>;
44
- delete(payload: import("./types").MailboxDeleteRequest): Promise<import("./types").MailcowResponse<import("./types").BaseResponse>>;
45
- edit(payload: import("./types").MailboxEditRequest): Promise<import("./types").MailcowResponse<import("./types").BaseResponse>>;
46
- get(mailbox?: string): Promise<import("./types").MailboxResponse[]>;
47
- editPushover(payload: import("./types").PushoverEditRequest): Promise<import("./types").MailcowResponse<import("./types").BaseResponse>>;
48
- editQuarantine(payload: import("./types").QuarantaineEditRequest): Promise<import("./types").MailcowResponse<import("./types").BaseResponse>>;
49
- editSpamScore(payload: import("./types").SpamScoreEditRequest): Promise<import("./types").MailcowResponse<import("./types").BaseResponse>>;
50
- editUserACL(payload: import("./types").ACLEditRequest): Promise<import("./types").MailcowResponse<import("./types").BaseResponse>>;
51
- getActiveUserSieve(username: string): Promise<string[]>;
52
- };
48
+ /**
49
+ * All endpoints related to Domains.
50
+ * See {@link DomainEndpoints}
51
+ * @external
52
+ */
53
+ domains: DomainEndpoints;
54
+ /**
55
+ * All endpoints related to spam policies.
56
+ * See {@link AntiSpamEndpoints}
57
+ * @external
58
+ */
59
+ spamPolicy: AntiSpamEndpoints;
60
+ /**
61
+ * All endpoints related to mailboxes.
62
+ * See {@link MailboxEndpoints}
63
+ * @external
64
+ */
65
+ mailbox: MailboxEndpoints;
66
+ /**
67
+ * All endpoints related to sync jobs.
68
+ * See {@link SyncjobEndpoints}
69
+ * @external
70
+ */
71
+ syncjobs: SyncjobEndpoints;
72
+ /**
73
+ * All endpoints related to forwarding hosts.
74
+ * See {@link ForwardingEndpoints}
75
+ * @external
76
+ */
77
+ forwardingHosts: ForwardingEndpoints;
78
+ /**
79
+ * All endpoints related to logs.
80
+ * See {@link LogEndpoints}
81
+ * @external
82
+ */
83
+ logs: LogEndpoints;
53
84
  }
54
85
  export default MailcowClient;
package/dist/index.js CHANGED
@@ -8,6 +8,9 @@ const antispam_endpoints_1 = require("./Endpoints/antispam-endpoints");
8
8
  const mailbox_endpoint_1 = require("./Endpoints/mailbox-endpoint");
9
9
  const request_factory_1 = require("./request-factory");
10
10
  const alias_endpoints_1 = require("./Endpoints/alias-endpoints");
11
+ const syncjob_endpoints_1 = require("./Endpoints/syncjob-endpoints");
12
+ const forwarding_endpoints_1 = require("./Endpoints/forwarding-endpoints");
13
+ const log_endpoints_1 = require("./Endpoints/log-endpoints");
11
14
  /**
12
15
  * Class containing all the logic to interface with the Mailcow API in TypeScript.
13
16
  * @external
@@ -19,15 +22,54 @@ class MailcowClient {
19
22
  * @param API_KEY - The API key of the Mailcow API.
20
23
  */
21
24
  constructor(BASE_URL, API_KEY) {
25
+ /**
26
+ * Factory method pattern for creating HTTP requests.
27
+ * @internal
28
+ */
22
29
  this.requestFactory = new request_factory_1.default(this);
23
30
  /**
24
31
  * All endpoints related to Aliases.
32
+ * See {@link AliasEndpoints}
33
+ * @external
25
34
  */
26
35
  this.aliases = alias_endpoints_1.aliasEndpoints(this);
27
- this.domains = domain_endpoints_1.default(this);
28
- this.spamPolicy = antispam_endpoints_1.default(this);
29
- this.mailbox = mailbox_endpoint_1.default(this);
30
- this.BASE_URL = BASE_URL;
36
+ /**
37
+ * All endpoints related to Domains.
38
+ * See {@link DomainEndpoints}
39
+ * @external
40
+ */
41
+ this.domains = domain_endpoints_1.domainEndpoints(this);
42
+ /**
43
+ * All endpoints related to spam policies.
44
+ * See {@link AntiSpamEndpoints}
45
+ * @external
46
+ */
47
+ this.spamPolicy = antispam_endpoints_1.antiSpamEndpoints(this);
48
+ /**
49
+ * All endpoints related to mailboxes.
50
+ * See {@link MailboxEndpoints}
51
+ * @external
52
+ */
53
+ this.mailbox = mailbox_endpoint_1.mailboxEndpoints(this);
54
+ /**
55
+ * All endpoints related to sync jobs.
56
+ * See {@link SyncjobEndpoints}
57
+ * @external
58
+ */
59
+ this.syncjobs = syncjob_endpoints_1.syncjobEndpoints(this);
60
+ /**
61
+ * All endpoints related to forwarding hosts.
62
+ * See {@link ForwardingEndpoints}
63
+ * @external
64
+ */
65
+ this.forwardingHosts = forwarding_endpoints_1.forwardingEndpoints(this);
66
+ /**
67
+ * All endpoints related to logs.
68
+ * See {@link LogEndpoints}
69
+ * @external
70
+ */
71
+ this.logs = log_endpoints_1.logEndpoints(this);
72
+ this.BASE_URL = BASE_URL.charAt(BASE_URL.length - 1) === '/' ? BASE_URL : BASE_URL.concat('/');
31
73
  this.API_KEY = API_KEY;
32
74
  // Set the correct Axios headers.
33
75
  this.HEADERS = {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAGH,mEAA2D;AAC3D,uEAA+D;AAC/D,mEAA4D;AAC5D,uDAA+C;AAC/C,iEAA6E;AAE7E;;;GAGG;AACH,MAAM,aAAa;IAajB;;;;OAIG;IACH,YAAY,QAAgB,EAAE,OAAe;QAatC,mBAAc,GAAG,IAAI,yBAAc,CAAC,IAAI,CAAC,CAAA;QAEhD;;WAEG;QACI,YAAO,GAAmB,gCAAc,CAAC,IAAI,CAAC,CAAA;QAE9C,YAAO,GAAG,0BAAe,CAAC,IAAI,CAAC,CAAA;QAE/B,eAAU,GAAG,4BAAiB,CAAC,IAAI,CAAC,CAAA;QAEpC,YAAO,GAAG,0BAAgB,CAAC,IAAI,CAAC,CAAA;QAvBrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,iCAAiC;QACjC,IAAI,CAAC,OAAO,GAAG;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,IAAI,CAAC,OAAO;aAC1B;SACoB,CAAC;IAC1B,CAAC;CAcF;AAED,kBAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAGH,mEAAgF;AAChF,uEAAsF;AACtF,mEAAkF;AAClF,uDAA+C;AAC/C,iEAA6E;AAC7E,qEAAmF;AACnF,2EAA4F;AAC5F,6DAAuE;AAEvE;;;GAGG;AACH,MAAM,aAAa;IAiBjB;;;;OAIG;IACH,YAAY,QAAgB,EAAE,OAAe;QAa7C;;;WAGG;QACI,mBAAc,GAAG,IAAI,yBAAc,CAAC,IAAI,CAAC,CAAA;QAEhD;;;;WAIG;QACI,YAAO,GAAmB,gCAAc,CAAC,IAAI,CAAC,CAAA;QAErD;;;;WAIG;QACI,YAAO,GAAoB,kCAAe,CAAC,IAAI,CAAC,CAAA;QAEvD;;;;WAIG;QACI,eAAU,GAAsB,sCAAiB,CAAC,IAAI,CAAC,CAAA;QAE9D;;;;WAIG;QACI,YAAO,GAAqB,mCAAgB,CAAC,IAAI,CAAC,CAAA;QAEzD;;;;WAIG;QACI,aAAQ,GAAqB,oCAAgB,CAAC,IAAI,CAAC,CAAA;QAE1D;;;;WAIG;QACI,oBAAe,GAAwB,0CAAmB,CAAC,IAAI,CAAC,CAAA;QAEvE;;;;WAIG;QACI,SAAI,GAAiB,4BAAY,CAAC,IAAI,CAAC,CAAA;QAjE5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/F,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,iCAAiC;QACjC,IAAI,CAAC,OAAO,GAAG;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,IAAI,CAAC,OAAO;aAC1B;SACF,CAAC;IACJ,CAAC;CAwDF;AAED,kBAAe,aAAa,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import { Payload } from './types';
2
2
  import MailcowClient from './index';
3
+ /**
4
+ * Function that wraps T | T[] to T[]
5
+ * @internal
6
+ * @param promise - The promise of which the output to wrap.
7
+ */
3
8
  export declare function wrapPromiseToArray<T>(promise: Promise<T | T[]>): Promise<T[]>;
4
9
  /**
5
10
  * Factory method patterns for creating Axios Requests.
@@ -12,9 +12,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.wrapPromiseToArray = void 0;
13
13
  const axios_1 = require("axios");
14
14
  const types_1 = require("./types");
15
+ /**
16
+ * Ensures output is an array.
17
+ * @param item
18
+ * @internal
19
+ */
15
20
  function wrapToArray(item) {
16
21
  return Array.isArray(item) ? item : [item];
17
22
  }
23
+ /**
24
+ * Function that wraps T | T[] to T[]
25
+ * @internal
26
+ * @param promise - The promise of which the output to wrap.
27
+ */
18
28
  function wrapPromiseToArray(promise) {
19
29
  return new Promise((resolve, reject) => {
20
30
  promise
@@ -1 +1 @@
1
- {"version":3,"file":"request-factory.js","sourceRoot":"","sources":["../src/request-factory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAyD;AACzD,mCAA0E;AAG1E,SAAS,WAAW,CAAI,IAAa;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,SAAgB,kBAAkB,CAAI,OAAuB;IAC3D,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,OAAO;aACJ,IAAI,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;aACjD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAND,gDAMC;AAED;;;GAGG;AACH,MAAqB,cAAc;IAGjC,YAAY,GAAkB;QAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACG,IAAI,CAAI,KAAa,EAAE,OAAgB;;YAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,eAAK;qBACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;oBAC3D,YAAY;qBACX,IAAI,CAAC,CAAC,GAAqB,EAAE,EAAE;oBAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC,CAAC;oBACF,WAAW;qBACV,KAAK,CAAC,CAAC,CAAmC,EAAE,EAAE;oBAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAChC,MAAM,CAAC,IAAI,wBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;;OAGG;IACG,GAAG,CAAI,KAAa;;YACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,eAAK;qBACF,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;oBACjD,YAAY;qBACX,IAAI,CAAC,CAAC,GAAqB,EAAE,EAAE;oBAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC,CAAC;oBACF,WAAW;qBACV,KAAK,CAAC,CAAC,CAAmC,EAAE,EAAE;oBAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAChC,MAAM,CAAC,IAAI,wBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AA/CD,iCA+CC"}
1
+ {"version":3,"file":"request-factory.js","sourceRoot":"","sources":["../src/request-factory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAyD;AACzD,mCAA0E;AAG1E;;;;GAIG;AACH,SAAS,WAAW,CAAI,IAAa;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAI,OAAuB;IAC3D,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,OAAO;aACJ,IAAI,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;aACjD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAND,gDAMC;AAED;;;GAGG;AACH,MAAqB,cAAc;IAGjC,YAAY,GAAkB;QAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACG,IAAI,CAAI,KAAa,EAAE,OAAgB;;YAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,eAAK;qBACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;oBAC3D,YAAY;qBACX,IAAI,CAAC,CAAC,GAAqB,EAAE,EAAE;oBAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC,CAAC;oBACF,WAAW;qBACV,KAAK,CAAC,CAAC,CAAmC,EAAE,EAAE;oBAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAChC,MAAM,CAAC,IAAI,wBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;;OAGG;IACG,GAAG,CAAI,KAAa;;YACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,eAAK;qBACF,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;oBACjD,YAAY;qBACX,IAAI,CAAC,CAAC,GAAqB,EAAE,EAAE;oBAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC,CAAC;oBACF,WAAW;qBACV,KAAK,CAAC,CAAC,CAAmC,EAAE,EAAE;oBAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAChC,MAAM,CAAC,IAAI,wBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AA/CD,iCA+CC"}