@develemail/sdk 0.1.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/dist/index.cjs ADDED
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ DevelEmail: () => DevelEmail,
24
+ DevelEmailError: () => DevelEmailError
25
+ });
26
+ module.exports = __toCommonJS(index_exports);
27
+ var DevelEmailError = class extends Error {
28
+ constructor(status, message) {
29
+ super(message);
30
+ this.status = status;
31
+ this.name = "DevelEmailError";
32
+ }
33
+ status;
34
+ };
35
+ var EmailsNamespace = class {
36
+ constructor(config) {
37
+ this.config = config;
38
+ }
39
+ config;
40
+ async send(input) {
41
+ return this.request("POST", "/v1/emails", input);
42
+ }
43
+ async get(id) {
44
+ return this.request("GET", `/v1/emails/${id}`);
45
+ }
46
+ async request(method, path, body) {
47
+ const res = await fetch(`${this.config.baseUrl}${path}`, {
48
+ method,
49
+ headers: {
50
+ Authorization: `Bearer ${this.config.apiKey}`,
51
+ "Content-Type": "application/json"
52
+ },
53
+ body: body !== void 0 ? JSON.stringify(body) : void 0
54
+ });
55
+ if (!res.ok) {
56
+ const data = await res.json().catch(() => ({}));
57
+ throw new DevelEmailError(
58
+ res.status,
59
+ data.message ?? res.statusText
60
+ );
61
+ }
62
+ return res.json();
63
+ }
64
+ };
65
+ var DevelEmail = class {
66
+ emails;
67
+ constructor(config) {
68
+ this.emails = new EmailsNamespace(config);
69
+ }
70
+ };
71
+ // Annotate the CommonJS export names for ESM import in node:
72
+ 0 && (module.exports = {
73
+ DevelEmail,
74
+ DevelEmailError
75
+ });
76
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export interface DevelEmailConfig {\n apiKey: string;\n baseUrl: string;\n}\n\nexport interface SendEmailInput {\n from: string;\n to: string | string[];\n subject: string;\n html?: string;\n text?: string;\n tags?: string[];\n metadata?: Record<string, unknown>;\n}\n\nexport interface EmailResponse {\n id: string;\n status: string;\n}\n\nexport class DevelEmailError extends Error {\n constructor(\n public readonly status: number,\n message: string,\n ) {\n super(message);\n this.name = 'DevelEmailError';\n }\n}\n\nclass EmailsNamespace {\n constructor(private readonly config: DevelEmailConfig) {}\n\n async send(input: SendEmailInput): Promise<EmailResponse> {\n return this.request<EmailResponse>('POST', '/v1/emails', input);\n }\n\n async get(id: string): Promise<EmailResponse> {\n return this.request<EmailResponse>('GET', `/v1/emails/${id}`);\n }\n\n private async request<T>(\n method: string,\n path: string,\n body?: unknown,\n ): Promise<T> {\n const res = await fetch(`${this.config.baseUrl}${path}`, {\n method,\n headers: {\n Authorization: `Bearer ${this.config.apiKey}`,\n 'Content-Type': 'application/json',\n },\n body: body !== undefined ? JSON.stringify(body) : undefined,\n });\n\n if (!res.ok) {\n const data = await res.json().catch(() => ({}));\n throw new DevelEmailError(\n res.status,\n (data as { message?: string }).message ?? res.statusText,\n );\n }\n\n return res.json() as Promise<T>;\n }\n}\n\nexport class DevelEmail {\n readonly emails: EmailsNamespace;\n\n constructor(config: DevelEmailConfig) {\n this.emails = new EmailsNamespace(config);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBO,IAAM,kBAAN,cAA8B,MAAM;AAAA,EACzC,YACkB,QAChB,SACA;AACA,UAAM,OAAO;AAHG;AAIhB,SAAK,OAAO;AAAA,EACd;AAAA,EALkB;AAMpB;AAEA,IAAM,kBAAN,MAAsB;AAAA,EACpB,YAA6B,QAA0B;AAA1B;AAAA,EAA2B;AAAA,EAA3B;AAAA,EAE7B,MAAM,KAAK,OAA+C;AACxD,WAAO,KAAK,QAAuB,QAAQ,cAAc,KAAK;AAAA,EAChE;AAAA,EAEA,MAAM,IAAI,IAAoC;AAC5C,WAAO,KAAK,QAAuB,OAAO,cAAc,EAAE,EAAE;AAAA,EAC9D;AAAA,EAEA,MAAc,QACZ,QACA,MACA,MACY;AACZ,UAAM,MAAM,MAAM,MAAM,GAAG,KAAK,OAAO,OAAO,GAAG,IAAI,IAAI;AAAA,MACvD;AAAA,MACA,SAAS;AAAA,QACP,eAAe,UAAU,KAAK,OAAO,MAAM;AAAA,QAC3C,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM,SAAS,SAAY,KAAK,UAAU,IAAI,IAAI;AAAA,IACpD,CAAC;AAED,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,OAAO,MAAM,IAAI,KAAK,EAAE,MAAM,OAAO,CAAC,EAAE;AAC9C,YAAM,IAAI;AAAA,QACR,IAAI;AAAA,QACH,KAA8B,WAAW,IAAI;AAAA,MAChD;AAAA,IACF;AAEA,WAAO,IAAI,KAAK;AAAA,EAClB;AACF;AAEO,IAAM,aAAN,MAAiB;AAAA,EACb;AAAA,EAET,YAAY,QAA0B;AACpC,SAAK,SAAS,IAAI,gBAAgB,MAAM;AAAA,EAC1C;AACF;","names":[]}
@@ -0,0 +1,34 @@
1
+ interface DevelEmailConfig {
2
+ apiKey: string;
3
+ baseUrl: string;
4
+ }
5
+ interface SendEmailInput {
6
+ from: string;
7
+ to: string | string[];
8
+ subject: string;
9
+ html?: string;
10
+ text?: string;
11
+ tags?: string[];
12
+ metadata?: Record<string, unknown>;
13
+ }
14
+ interface EmailResponse {
15
+ id: string;
16
+ status: string;
17
+ }
18
+ declare class DevelEmailError extends Error {
19
+ readonly status: number;
20
+ constructor(status: number, message: string);
21
+ }
22
+ declare class EmailsNamespace {
23
+ private readonly config;
24
+ constructor(config: DevelEmailConfig);
25
+ send(input: SendEmailInput): Promise<EmailResponse>;
26
+ get(id: string): Promise<EmailResponse>;
27
+ private request;
28
+ }
29
+ declare class DevelEmail {
30
+ readonly emails: EmailsNamespace;
31
+ constructor(config: DevelEmailConfig);
32
+ }
33
+
34
+ export { DevelEmail, type DevelEmailConfig, DevelEmailError, type EmailResponse, type SendEmailInput };
@@ -0,0 +1,34 @@
1
+ interface DevelEmailConfig {
2
+ apiKey: string;
3
+ baseUrl: string;
4
+ }
5
+ interface SendEmailInput {
6
+ from: string;
7
+ to: string | string[];
8
+ subject: string;
9
+ html?: string;
10
+ text?: string;
11
+ tags?: string[];
12
+ metadata?: Record<string, unknown>;
13
+ }
14
+ interface EmailResponse {
15
+ id: string;
16
+ status: string;
17
+ }
18
+ declare class DevelEmailError extends Error {
19
+ readonly status: number;
20
+ constructor(status: number, message: string);
21
+ }
22
+ declare class EmailsNamespace {
23
+ private readonly config;
24
+ constructor(config: DevelEmailConfig);
25
+ send(input: SendEmailInput): Promise<EmailResponse>;
26
+ get(id: string): Promise<EmailResponse>;
27
+ private request;
28
+ }
29
+ declare class DevelEmail {
30
+ readonly emails: EmailsNamespace;
31
+ constructor(config: DevelEmailConfig);
32
+ }
33
+
34
+ export { DevelEmail, type DevelEmailConfig, DevelEmailError, type EmailResponse, type SendEmailInput };
package/dist/index.js ADDED
@@ -0,0 +1,50 @@
1
+ // src/index.ts
2
+ var DevelEmailError = class extends Error {
3
+ constructor(status, message) {
4
+ super(message);
5
+ this.status = status;
6
+ this.name = "DevelEmailError";
7
+ }
8
+ status;
9
+ };
10
+ var EmailsNamespace = class {
11
+ constructor(config) {
12
+ this.config = config;
13
+ }
14
+ config;
15
+ async send(input) {
16
+ return this.request("POST", "/v1/emails", input);
17
+ }
18
+ async get(id) {
19
+ return this.request("GET", `/v1/emails/${id}`);
20
+ }
21
+ async request(method, path, body) {
22
+ const res = await fetch(`${this.config.baseUrl}${path}`, {
23
+ method,
24
+ headers: {
25
+ Authorization: `Bearer ${this.config.apiKey}`,
26
+ "Content-Type": "application/json"
27
+ },
28
+ body: body !== void 0 ? JSON.stringify(body) : void 0
29
+ });
30
+ if (!res.ok) {
31
+ const data = await res.json().catch(() => ({}));
32
+ throw new DevelEmailError(
33
+ res.status,
34
+ data.message ?? res.statusText
35
+ );
36
+ }
37
+ return res.json();
38
+ }
39
+ };
40
+ var DevelEmail = class {
41
+ emails;
42
+ constructor(config) {
43
+ this.emails = new EmailsNamespace(config);
44
+ }
45
+ };
46
+ export {
47
+ DevelEmail,
48
+ DevelEmailError
49
+ };
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export interface DevelEmailConfig {\n apiKey: string;\n baseUrl: string;\n}\n\nexport interface SendEmailInput {\n from: string;\n to: string | string[];\n subject: string;\n html?: string;\n text?: string;\n tags?: string[];\n metadata?: Record<string, unknown>;\n}\n\nexport interface EmailResponse {\n id: string;\n status: string;\n}\n\nexport class DevelEmailError extends Error {\n constructor(\n public readonly status: number,\n message: string,\n ) {\n super(message);\n this.name = 'DevelEmailError';\n }\n}\n\nclass EmailsNamespace {\n constructor(private readonly config: DevelEmailConfig) {}\n\n async send(input: SendEmailInput): Promise<EmailResponse> {\n return this.request<EmailResponse>('POST', '/v1/emails', input);\n }\n\n async get(id: string): Promise<EmailResponse> {\n return this.request<EmailResponse>('GET', `/v1/emails/${id}`);\n }\n\n private async request<T>(\n method: string,\n path: string,\n body?: unknown,\n ): Promise<T> {\n const res = await fetch(`${this.config.baseUrl}${path}`, {\n method,\n headers: {\n Authorization: `Bearer ${this.config.apiKey}`,\n 'Content-Type': 'application/json',\n },\n body: body !== undefined ? JSON.stringify(body) : undefined,\n });\n\n if (!res.ok) {\n const data = await res.json().catch(() => ({}));\n throw new DevelEmailError(\n res.status,\n (data as { message?: string }).message ?? res.statusText,\n );\n }\n\n return res.json() as Promise<T>;\n }\n}\n\nexport class DevelEmail {\n readonly emails: EmailsNamespace;\n\n constructor(config: DevelEmailConfig) {\n this.emails = new EmailsNamespace(config);\n }\n}\n"],"mappings":";AAoBO,IAAM,kBAAN,cAA8B,MAAM;AAAA,EACzC,YACkB,QAChB,SACA;AACA,UAAM,OAAO;AAHG;AAIhB,SAAK,OAAO;AAAA,EACd;AAAA,EALkB;AAMpB;AAEA,IAAM,kBAAN,MAAsB;AAAA,EACpB,YAA6B,QAA0B;AAA1B;AAAA,EAA2B;AAAA,EAA3B;AAAA,EAE7B,MAAM,KAAK,OAA+C;AACxD,WAAO,KAAK,QAAuB,QAAQ,cAAc,KAAK;AAAA,EAChE;AAAA,EAEA,MAAM,IAAI,IAAoC;AAC5C,WAAO,KAAK,QAAuB,OAAO,cAAc,EAAE,EAAE;AAAA,EAC9D;AAAA,EAEA,MAAc,QACZ,QACA,MACA,MACY;AACZ,UAAM,MAAM,MAAM,MAAM,GAAG,KAAK,OAAO,OAAO,GAAG,IAAI,IAAI;AAAA,MACvD;AAAA,MACA,SAAS;AAAA,QACP,eAAe,UAAU,KAAK,OAAO,MAAM;AAAA,QAC3C,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM,SAAS,SAAY,KAAK,UAAU,IAAI,IAAI;AAAA,IACpD,CAAC;AAED,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,OAAO,MAAM,IAAI,KAAK,EAAE,MAAM,OAAO,CAAC,EAAE;AAC9C,YAAM,IAAI;AAAA,QACR,IAAI;AAAA,QACH,KAA8B,WAAW,IAAI;AAAA,MAChD;AAAA,IACF;AAEA,WAAO,IAAI,KAAK;AAAA,EAClB;AACF;AAEO,IAAM,aAAN,MAAiB;AAAA,EACb;AAAA,EAET,YAAY,QAA0B;AACpC,SAAK,SAAS,IAAI,gBAAgB,MAAM;AAAA,EAC1C;AACF;","names":[]}
package/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "@develemail/sdk",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": {
7
+ "types": "./dist/index.d.ts",
8
+ "import": "./dist/index.js",
9
+ "require": "./dist/index.cjs"
10
+ }
11
+ },
12
+ "main": "./dist/index.cjs",
13
+ "types": "./dist/index.d.ts",
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "scripts": {
18
+ "build": "tsup"
19
+ }
20
+ }