@kumbify/sdk 1.0.3 → 1.0.5
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 +12 -14
- package/dist/kmail/KMailClient.d.ts +1 -1
- package/dist/kmail/KMailClient.js +23 -6
- package/dist/kmail/KMailClient.js.map +1 -1
- package/dist/ksms/KSMSClient.d.ts +1 -1
- package/dist/ksms/KSMSClient.js +6 -1
- package/dist/ksms/KSMSClient.js.map +1 -1
- package/dist/utils/types.d.ts +8 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ This SDK makes it easy to integrate messaging (email + SMS) into your apps with
|
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
### Installation
|
|
12
12
|
|
|
13
13
|
Install using npm:
|
|
14
14
|
|
|
@@ -22,17 +22,16 @@ or using Yarn:
|
|
|
22
22
|
yarn add @kumbify/sdk
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
### Importing
|
|
26
26
|
|
|
27
27
|
```ts
|
|
28
28
|
import { KMailClient, KSMSClient } from "@kumbify/sdk";
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
---
|
|
32
31
|
|
|
33
|
-
|
|
32
|
+
### Email — KMailClient
|
|
34
33
|
|
|
35
|
-
|
|
34
|
+
#### 📍 Create an Email Client
|
|
36
35
|
|
|
37
36
|
```ts
|
|
38
37
|
const mailClient = new KMailClient({
|
|
@@ -40,9 +39,8 @@ const mailClient = new KMailClient({
|
|
|
40
39
|
});
|
|
41
40
|
```
|
|
42
41
|
|
|
43
|
-
### 📤 Send a Simple Email
|
|
44
|
-
|
|
45
42
|
```ts
|
|
43
|
+
// 📤 Send a Simple Email
|
|
46
44
|
const sendMail = await mailClient.sendSimpleMail({
|
|
47
45
|
body_html: "<h1>Hello from Kumbify</h1><p>This is a test email</p>",
|
|
48
46
|
body_text: "Hello from Kumbify — this is a test email.",
|
|
@@ -66,9 +64,9 @@ console.log("Email Response:", sendMail);
|
|
|
66
64
|
|
|
67
65
|
---
|
|
68
66
|
|
|
69
|
-
|
|
67
|
+
### SMS — KSMSClient
|
|
70
68
|
|
|
71
|
-
|
|
69
|
+
#### 📍 Create an SMS Client
|
|
72
70
|
|
|
73
71
|
```ts
|
|
74
72
|
const smsClient = new KSMSClient({
|
|
@@ -76,9 +74,9 @@ const smsClient = new KSMSClient({
|
|
|
76
74
|
});
|
|
77
75
|
```
|
|
78
76
|
|
|
79
|
-
### 📤 Send an SMS Message
|
|
80
|
-
|
|
81
77
|
```ts
|
|
78
|
+
// 📤 Send an SMS Message
|
|
79
|
+
|
|
82
80
|
await smsClient.sendSMS({
|
|
83
81
|
message: "Your verification code is 123456",
|
|
84
82
|
from: "kumbify-app",
|
|
@@ -98,7 +96,7 @@ console.log("SMS sent successfully!");
|
|
|
98
96
|
|
|
99
97
|
---
|
|
100
98
|
|
|
101
|
-
|
|
99
|
+
### Example Usage All Together
|
|
102
100
|
|
|
103
101
|
```ts
|
|
104
102
|
import { KMailClient, KSMSClient } from "@kumbify/sdk";
|
|
@@ -125,7 +123,7 @@ await smsClient.sendSMS({
|
|
|
125
123
|
|
|
126
124
|
---
|
|
127
125
|
|
|
128
|
-
|
|
126
|
+
### Tips & Best Practices
|
|
129
127
|
|
|
130
128
|
✔️ Store your API keys in environment variables (never hardcode them).
|
|
131
129
|
✔️ Always handle promise rejections with `try/catch`.
|
|
@@ -133,7 +131,7 @@ await smsClient.sendSMS({
|
|
|
133
131
|
|
|
134
132
|
---
|
|
135
133
|
|
|
136
|
-
|
|
134
|
+
### Supported Environments
|
|
137
135
|
|
|
138
136
|
✔ Node.js
|
|
139
137
|
✔ TypeScript
|
|
@@ -14,23 +14,40 @@ class KMailClient {
|
|
|
14
14
|
async sendSimpleMail({ ...data }) {
|
|
15
15
|
try {
|
|
16
16
|
const response = await axios_1.default.post(helpers_1.APP_CONFIG.KMAIL_URL + "/send", {
|
|
17
|
-
|
|
17
|
+
from_address: data.from,
|
|
18
|
+
to_address: data.to,
|
|
19
|
+
subject: data.subject,
|
|
20
|
+
body_html: data.body_html,
|
|
21
|
+
body_text: data.body_text,
|
|
18
22
|
}, { headers: { "kumbi-api-key": "Bearer " + this.apiKey } });
|
|
19
23
|
return response.data;
|
|
20
24
|
}
|
|
21
|
-
catch (
|
|
22
|
-
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (axios_1.default.isAxiosError(error)) {
|
|
27
|
+
const status = error.response?.status;
|
|
28
|
+
const data = error.response?.data;
|
|
29
|
+
throw new Error(`Mail failed (status: ${status}): ${JSON.stringify(data)}`);
|
|
30
|
+
}
|
|
31
|
+
throw new Error(`Mail failed: ${String(error)}`);
|
|
23
32
|
}
|
|
24
33
|
}
|
|
25
34
|
async sendTemplateMail({ ...data }) {
|
|
26
35
|
try {
|
|
27
36
|
const response = await axios_1.default.post(helpers_1.APP_CONFIG.KMAIL_URL + "/send", {
|
|
28
|
-
|
|
37
|
+
from_address: data.from,
|
|
38
|
+
to_address: data.to,
|
|
39
|
+
template_name: data.template.name,
|
|
40
|
+
template_data: data.template.data,
|
|
29
41
|
}, { headers: { "kumbi-api-key": "Bearer " + this.apiKey } });
|
|
30
42
|
return response.data;
|
|
31
43
|
}
|
|
32
|
-
catch (
|
|
33
|
-
|
|
44
|
+
catch (error) {
|
|
45
|
+
if (axios_1.default.isAxiosError(error)) {
|
|
46
|
+
const status = error.response?.status;
|
|
47
|
+
const data = error.response?.data;
|
|
48
|
+
throw new Error(`Mail failed (status: ${status}): ${JSON.stringify(data)}`);
|
|
49
|
+
}
|
|
50
|
+
throw new Error(`Mail failed: ${String(error)}`);
|
|
34
51
|
}
|
|
35
52
|
}
|
|
36
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KMailClient.js","sourceRoot":"","sources":["../../src/kmail/KMailClient.ts"],"names":[],"mappings":";;;;;;AAKA,8CAA8C;AAE9C,kDAA0B;AAE1B,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"KMailClient.js","sourceRoot":"","sources":["../../src/kmail/KMailClient.ts"],"names":[],"mappings":";;;;;;AAKA,8CAA8C;AAE9C,kDAA0B;AAE1B,MAAa,WAAW;IACd,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAsB;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,IAAI,EAA+B;QAC3D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,oBAAU,CAAC,SAAS,GAAG,OAAO,EAC9B;gBACE,YAAY,EAAE,IAAI,CAAC,IAAI;gBACvB,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,EACD,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAC1D,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;gBAClC,MAAM,IAAI,KAAK,CACb,wBAAwB,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC3D,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAiC;QAC/D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,oBAAU,CAAC,SAAS,GAAG,OAAO,EAC9B;gBACE,YAAY,EAAE,IAAI,CAAC,IAAI;gBACvB,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACjC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;aAClC,EACD,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAC1D,CAAC;YAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;gBAClC,MAAM,IAAI,KAAK,CACb,wBAAwB,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC3D,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF;AA3DD,kCA2DC"}
|
package/dist/ksms/KSMSClient.js
CHANGED
|
@@ -21,7 +21,12 @@ class KSMSClient {
|
|
|
21
21
|
return response.data;
|
|
22
22
|
}
|
|
23
23
|
catch (error) {
|
|
24
|
-
|
|
24
|
+
if (axios_1.default.isAxiosError(error)) {
|
|
25
|
+
const status = error.response?.status;
|
|
26
|
+
const data = error.response?.data;
|
|
27
|
+
throw new Error(`SMS failed (status: ${status}): ${JSON.stringify(data)}`);
|
|
28
|
+
}
|
|
29
|
+
throw new Error(`SMS failed: ${String(error)}`);
|
|
25
30
|
}
|
|
26
31
|
}
|
|
27
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KSMSClient.js","sourceRoot":"","sources":["../../src/ksms/KSMSClient.ts"],"names":[],"mappings":";;;;;;AAAA,8CAA8C;AAE9C,kDAA0B;AAE1B,MAAa,UAAU;
|
|
1
|
+
{"version":3,"file":"KSMSClient.js","sourceRoot":"","sources":["../../src/ksms/KSMSClient.ts"],"names":[],"mappings":";;;;;;AAAA,8CAA8C;AAE9C,kDAA0B;AAE1B,MAAa,UAAU;IACb,MAAM,CAAC;IAEf,YAAY,EAAE,MAAM,EAAsB;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAoB;QACzC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,oBAAU,CAAC,QAAQ,GAAG,OAAO,EAC7B;gBACE,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,EACD,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAC1D,CAAC;YAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;gBAClC,MAAM,IAAI,KAAK,CACb,uBAAuB,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC1D,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,eAAe,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AAhCD,gCAgCC"}
|
package/dist/utils/types.d.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
export type IKMailSendMailSimpleMessage = {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
from: string;
|
|
3
|
+
to: string[];
|
|
4
4
|
subject: string;
|
|
5
5
|
body_html: string;
|
|
6
6
|
body_text: string;
|
|
7
7
|
};
|
|
8
8
|
export type IKMailSendMailTemplateMessage = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
from: string;
|
|
10
|
+
to: string[];
|
|
11
|
+
template: {
|
|
12
|
+
name: string;
|
|
13
|
+
data: Record<string, any>;
|
|
14
|
+
};
|
|
13
15
|
};
|
|
14
16
|
export type IKMailResponseMail = {
|
|
15
17
|
success: boolean;
|
package/package.json
CHANGED