mitola 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/dist/client.d.ts +11 -0
- package/dist/client.js +25 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +1 -0
- package/dist/errors.js +1 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/resources/emails.d.ts +9 -0
- package/dist/resources/emails.js +19 -0
- package/dist/resources/emails.js.map +1 -0
- package/dist/types.d.ts +39 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/package.json +27 -0
package/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# nodejs-sdk
|
|
2
|
+
|
|
3
|
+
To install dependencies:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
bun install
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
To run:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
bun run index.ts
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
This project was created using `bun init` in bun v1.3.1. [Bun](https://bun.com) is a fast all-in-one JavaScript runtime.
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EmailsResource } from "./resources/emails";
|
|
2
|
+
export interface Config {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class SwiftMailClient {
|
|
6
|
+
private apiKey;
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
emails: EmailsResource;
|
|
9
|
+
constructor(config: Config);
|
|
10
|
+
request<T>(endpoint: string, options?: RequestInit): Promise<T>;
|
|
11
|
+
}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { EmailsResource } from "./resources/emails";
|
|
2
|
+
export class SwiftMailClient {
|
|
3
|
+
apiKey;
|
|
4
|
+
baseUrl = "https://sm-api.thrn.cc/v1";
|
|
5
|
+
emails;
|
|
6
|
+
constructor(config) {
|
|
7
|
+
this.apiKey = config.apiKey;
|
|
8
|
+
this.emails = new EmailsResource(this);
|
|
9
|
+
}
|
|
10
|
+
async request(endpoint, options = {}) {
|
|
11
|
+
const url = `${this.baseUrl}${endpoint}`;
|
|
12
|
+
const headers = {
|
|
13
|
+
...options.headers,
|
|
14
|
+
"Authorization": `Bearer ${this.apiKey}`,
|
|
15
|
+
"Content-Type": "application/json",
|
|
16
|
+
};
|
|
17
|
+
const response = await fetch(url, { ...options, headers });
|
|
18
|
+
if (!response.ok) {
|
|
19
|
+
const error = await response.json();
|
|
20
|
+
throw new Error(error.message || 'API request failed');
|
|
21
|
+
}
|
|
22
|
+
return response.json();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMpD,MAAM,OAAO,eAAe;IAChB,MAAM,CAAS;IAChB,OAAO,GAAG,2BAA2B,CAAA;IAErC,MAAM,CAAiB;IAE9B,YAAY,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,QAAgB,EAAE,UAAuB,EAAE;QACxD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;QAEzC,MAAM,OAAO,GAAG;YACZ,GAAG,OAAO,CAAC,OAAO;YAClB,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;YACxC,cAAc,EAAE,kBAAkB;SACrC,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAyB,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,oBAAoB,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;CACJ"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SwiftMailClient } from "../client";
|
|
2
|
+
import type { Email, EmailRequest } from "../types";
|
|
3
|
+
export declare class EmailsResource {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(client: SwiftMailClient);
|
|
6
|
+
list(): Promise<Email[]>;
|
|
7
|
+
get(id: number): Promise<Email>;
|
|
8
|
+
send(data: EmailRequest): Promise<Email>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class EmailsResource {
|
|
2
|
+
client;
|
|
3
|
+
constructor(client) {
|
|
4
|
+
this.client = client;
|
|
5
|
+
}
|
|
6
|
+
async list() {
|
|
7
|
+
return this.client.request("/emails");
|
|
8
|
+
}
|
|
9
|
+
async get(id) {
|
|
10
|
+
return this.client.request(`/emails/${id}`);
|
|
11
|
+
}
|
|
12
|
+
async send(data) {
|
|
13
|
+
return this.client.request("/emails", {
|
|
14
|
+
method: "POST",
|
|
15
|
+
body: JSON.stringify(data),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=emails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emails.js","sourceRoot":"","sources":["../../src/resources/emails.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,cAAc;IACH;IAApB,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAI,CAAC;IAEhD,KAAK,CAAC,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAU,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAQ,WAAW,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAkB;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAQ,SAAS,EAAE;YACzC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC;IACP,CAAC;CACJ"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export type EmailRequest = {
|
|
2
|
+
from: string;
|
|
3
|
+
to: string[];
|
|
4
|
+
cc?: string[];
|
|
5
|
+
bcc?: string[];
|
|
6
|
+
subject: string;
|
|
7
|
+
html: string;
|
|
8
|
+
text: string;
|
|
9
|
+
attachments?: EmailAttachment[];
|
|
10
|
+
};
|
|
11
|
+
export type Email = {
|
|
12
|
+
id: number;
|
|
13
|
+
project_id: number;
|
|
14
|
+
message_id: string;
|
|
15
|
+
from: string;
|
|
16
|
+
to: string;
|
|
17
|
+
sender_details: EmailAddress;
|
|
18
|
+
to_details: EmailAddress[];
|
|
19
|
+
cc: EmailAddress[];
|
|
20
|
+
bcc: EmailAddress[];
|
|
21
|
+
attachments: EmailAttachment[];
|
|
22
|
+
subject: string;
|
|
23
|
+
content: string;
|
|
24
|
+
html_body: string;
|
|
25
|
+
text_body: string;
|
|
26
|
+
status: 'sent' | 'pending' | 'failed';
|
|
27
|
+
direction: 'inbound' | 'outbound';
|
|
28
|
+
created_at: string;
|
|
29
|
+
};
|
|
30
|
+
export type EmailAddress = {
|
|
31
|
+
name: string;
|
|
32
|
+
email: string;
|
|
33
|
+
};
|
|
34
|
+
export type EmailAttachment = {
|
|
35
|
+
filename: string;
|
|
36
|
+
download_url: string;
|
|
37
|
+
content_type: string;
|
|
38
|
+
size: number;
|
|
39
|
+
};
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mitola",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"types": "dist/index.d.ts",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist"
|
|
8
|
+
],
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"prepublishOnly": "npm run build"
|
|
12
|
+
},
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"require": "./dist/index.js",
|
|
17
|
+
"types": "./dist/index.d.ts"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"typescript": "^5.0.0",
|
|
22
|
+
"@types/node": "^20.0.0"
|
|
23
|
+
},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
}
|
|
27
|
+
}
|