@kumbify/sdk 1.1.0 → 1.1.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.
- package/dist/api/api.d.ts +7 -0
- package/dist/api/api.js +46 -0
- package/dist/api/api.js.map +1 -0
- package/dist/errors/APIError.d.ts +8 -0
- package/dist/errors/APIError.js +30 -0
- package/dist/errors/APIError.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/kmail/KMailClient.d.ts +4 -2
- package/dist/kmail/KMailClient.js +38 -29
- package/dist/kmail/KMailClient.js.map +1 -1
- package/dist/ksms/KSMSClient.d.ts +5 -3
- package/dist/ksms/KSMSClient.js +20 -14
- package/dist/ksms/KSMSClient.js.map +1 -1
- package/dist/oauth/OAuth2Client.d.ts +51 -0
- package/dist/oauth/OAuth2Client.js +81 -0
- package/dist/oauth/OAuth2Client.js.map +1 -0
- package/dist/utils/helpers.d.ts +5 -0
- package/dist/utils/helpers.js +5 -0
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/types.d.ts +28 -0
- package/dist/utils/types.js +3 -0
- package/dist/utils/types.js.map +1 -1
- package/package.json +2 -2
package/dist/api/api.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.fetchRequest = fetchRequest;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
async function fetchRequest({ ...data }) {
|
|
9
|
+
let resp;
|
|
10
|
+
const axiosAPI = axios_1.default.create({});
|
|
11
|
+
switch (data.method) {
|
|
12
|
+
case "delete":
|
|
13
|
+
resp = await axiosAPI.delete(data.url, {
|
|
14
|
+
data: data.body,
|
|
15
|
+
headers: data.headers,
|
|
16
|
+
params: data.params,
|
|
17
|
+
});
|
|
18
|
+
break;
|
|
19
|
+
case "get":
|
|
20
|
+
resp = await axiosAPI.get(data.url, {
|
|
21
|
+
headers: data.headers,
|
|
22
|
+
params: data.params,
|
|
23
|
+
});
|
|
24
|
+
break;
|
|
25
|
+
case "post":
|
|
26
|
+
resp = await axiosAPI.post(data.url, data.body, {
|
|
27
|
+
headers: data.headers,
|
|
28
|
+
params: data.params,
|
|
29
|
+
});
|
|
30
|
+
break;
|
|
31
|
+
case "put":
|
|
32
|
+
resp = await axiosAPI.put(data.url, data.body, {
|
|
33
|
+
headers: data.headers,
|
|
34
|
+
params: data.params,
|
|
35
|
+
});
|
|
36
|
+
break;
|
|
37
|
+
default:
|
|
38
|
+
resp = await axiosAPI.get(data.url, {
|
|
39
|
+
headers: data.headers,
|
|
40
|
+
params: data.params,
|
|
41
|
+
});
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
return resp.data;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":";;;;;AAEA,oCAoDC;AAtDD,kDAA0B;AAEnB,KAAK,UAAU,YAAY,CAAC,EACjC,GAAG,IAAI,EAOR;IACC,IAAI,IAAI,CAAC;IAET,MAAM,QAAQ,GAAG,eAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAElC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,MAAM;QAER,KAAK,KAAK;YACR,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;gBAClC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,MAAM;QAER,KAAK,MAAM;YACT,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE;gBAC9C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,MAAM;QAER,KAAK,KAAK;YACR,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE;gBAC7C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,MAAM;QAER;YACE,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;gBAClC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,MAAM;IACV,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const axios_1 = __importDefault(require("axios"));
|
|
7
|
+
class APIError {
|
|
8
|
+
CatchError({ error, section, }) {
|
|
9
|
+
let errorSection = "";
|
|
10
|
+
switch (section) {
|
|
11
|
+
case "mail":
|
|
12
|
+
errorSection = "Mail Service: Failed =>";
|
|
13
|
+
break;
|
|
14
|
+
case "oauth":
|
|
15
|
+
errorSection = "OAuthService: Failed =>";
|
|
16
|
+
break;
|
|
17
|
+
case "sms":
|
|
18
|
+
errorSection = "SMS Service: Failed =>";
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
if (axios_1.default.isAxiosError(error)) {
|
|
22
|
+
const status = error.response?.status;
|
|
23
|
+
const data = error.response?.data;
|
|
24
|
+
throw new Error(`${errorSection} (status: ${status}): ${JSON.stringify(data)}`);
|
|
25
|
+
}
|
|
26
|
+
throw new Error(`${errorSection} ${String(error)}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.default = new APIError();
|
|
30
|
+
//# sourceMappingURL=APIError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"APIError.js","sourceRoot":"","sources":["../../src/errors/APIError.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAE1B,MAAM,QAAQ;IACZ,UAAU,CAAC,EACT,KAAK,EACL,OAAO,GAIR;QACC,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM;gBACT,YAAY,GAAG,yBAAyB,CAAC;gBACzC,MAAM;YAER,KAAK,OAAO;gBACV,YAAY,GAAG,yBAAyB,CAAC;gBACzC,MAAM;YAER,KAAK,KAAK;gBACR,YAAY,GAAG,wBAAwB,CAAC;gBACxC,MAAM;QACV,CAAC;QAED,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,GAAG,YAAY,aAAa,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC/D,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;CACF;AAED,kBAAe,IAAI,QAAQ,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./kmail/KMailClient"), exports);
|
|
18
18
|
__exportStar(require("./ksms/KSMSClient"), exports);
|
|
19
|
+
__exportStar(require("./oauth/OAuth2Client"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,oDAAkC;AAClC,uDAAqC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { IKMailResponseMail, IKMailSendMailSimpleMessage, IKMailSendMailTemplateMessage } from "../utils/types";
|
|
1
|
+
import { IAPIConfig, IKMailResponseMail, IKMailSendMailSimpleMessage, IKMailSendMailTemplateMessage } from "../utils/types";
|
|
2
2
|
export declare class KMailClient {
|
|
3
3
|
private apiKey;
|
|
4
|
-
|
|
4
|
+
private api;
|
|
5
|
+
constructor({ apiKey, api }: {
|
|
5
6
|
apiKey: string;
|
|
7
|
+
api?: IAPIConfig;
|
|
6
8
|
});
|
|
7
9
|
sendSimpleMail({ ...data }: IKMailSendMailSimpleMessage): Promise<IKMailResponseMail>;
|
|
8
10
|
sendTemplateMail({ ...data }: IKMailSendMailTemplateMessage): Promise<IKMailResponseMail>;
|
|
@@ -5,49 +5,58 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.KMailClient = void 0;
|
|
7
7
|
const helpers_1 = require("../utils/helpers");
|
|
8
|
-
const
|
|
8
|
+
const api_1 = require("../api/api");
|
|
9
|
+
const APIError_1 = __importDefault(require("../errors/APIError"));
|
|
9
10
|
class KMailClient {
|
|
10
11
|
apiKey;
|
|
11
|
-
|
|
12
|
+
api = { lang: "pt", version: "v1" };
|
|
13
|
+
constructor({ apiKey, api }) {
|
|
12
14
|
this.apiKey = apiKey;
|
|
15
|
+
this.api = api;
|
|
13
16
|
}
|
|
14
17
|
async sendSimpleMail({ ...data }) {
|
|
15
18
|
try {
|
|
16
|
-
const response = await
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
const response = await (0, api_1.fetchRequest)({
|
|
20
|
+
url: helpers_1.APP_CONFIG.KMAIL_URL + "/send",
|
|
21
|
+
method: "post",
|
|
22
|
+
body: {
|
|
23
|
+
from_address: data.from,
|
|
24
|
+
to_address: data.to,
|
|
25
|
+
subject: data.subject,
|
|
26
|
+
body_html: data.body.html,
|
|
27
|
+
body_text: data.body.text,
|
|
28
|
+
},
|
|
29
|
+
headers: {
|
|
30
|
+
"kumbi-api-key": "Bearer " + this.apiKey,
|
|
31
|
+
"accept-language": this.api.lang,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
return response;
|
|
24
35
|
}
|
|
25
36
|
catch (error) {
|
|
26
|
-
|
|
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)}`);
|
|
37
|
+
APIError_1.default.CatchError({ error, section: "mail" });
|
|
32
38
|
}
|
|
33
39
|
}
|
|
34
40
|
async sendTemplateMail({ ...data }) {
|
|
35
41
|
try {
|
|
36
|
-
const response = await
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
const response = await (0, api_1.fetchRequest)({
|
|
43
|
+
url: helpers_1.APP_CONFIG.KMAIL_URL + "/send",
|
|
44
|
+
method: "post",
|
|
45
|
+
body: {
|
|
46
|
+
from_address: data.from,
|
|
47
|
+
to_address: data.to,
|
|
48
|
+
template_name: data.template.name,
|
|
49
|
+
template_data: data.template.data,
|
|
50
|
+
},
|
|
51
|
+
headers: {
|
|
52
|
+
"kumbi-api-key": "Bearer " + this.apiKey,
|
|
53
|
+
"accept-language": this.api.lang,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
return response;
|
|
43
57
|
}
|
|
44
58
|
catch (error) {
|
|
45
|
-
|
|
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)}`);
|
|
59
|
+
APIError_1.default.CatchError({ error, section: "mail" });
|
|
51
60
|
}
|
|
52
61
|
}
|
|
53
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KMailClient.js","sourceRoot":"","sources":["../../src/kmail/KMailClient.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"KMailClient.js","sourceRoot":"","sources":["../../src/kmail/KMailClient.ts"],"names":[],"mappings":";;;;;;AAMA,8CAA8C;AAC9C,oCAA0C;AAE1C,kEAA0C;AAE1C,MAAa,WAAW;IACd,MAAM,CAAC;IACP,GAAG,GAAe,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAExD,YAAY,EAAE,MAAM,EAAE,GAAG,EAAwC;QAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,IAAI,EAA+B;QAC3D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAuB,MAAM,IAAA,kBAAY,EAAC;gBACtD,GAAG,EAAE,oBAAU,CAAC,SAAS,GAAG,OAAO;gBACnC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,YAAY,EAAE,IAAI,CAAC,IAAI;oBACvB,UAAU,EAAE,IAAI,CAAC,EAAE;oBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;oBACzB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;iBAC1B;gBACD,OAAO,EAAE;oBACP,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM;oBACxC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;iBACjC;aACF,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kBAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAiC;QAC/D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAuB,MAAM,IAAA,kBAAY,EAAC;gBACtD,GAAG,EAAE,oBAAU,CAAC,SAAS,GAAG,OAAO;gBACnC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,YAAY,EAAE,IAAI,CAAC,IAAI;oBACvB,UAAU,EAAE,IAAI,CAAC,EAAE;oBACnB,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;oBACjC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;iBAClC;gBACD,OAAO,EAAE;oBACP,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM;oBACxC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;iBACjC;aACF,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kBAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AAvDD,kCAuDC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { IKSMSSendMessage } from "../utils/types";
|
|
1
|
+
import { IAPIConfig, IKSMSResponseMessage, IKSMSSendMessage } from "../utils/types";
|
|
2
2
|
export declare class KSMSClient {
|
|
3
3
|
private apiKey;
|
|
4
|
-
|
|
4
|
+
private api;
|
|
5
|
+
constructor({ apiKey, api }: {
|
|
5
6
|
apiKey: string;
|
|
7
|
+
api?: IAPIConfig;
|
|
6
8
|
});
|
|
7
|
-
sendSMS({ ...data }: IKSMSSendMessage): Promise<
|
|
9
|
+
sendSMS({ ...data }: IKSMSSendMessage): Promise<IKSMSResponseMessage>;
|
|
8
10
|
}
|
package/dist/ksms/KSMSClient.js
CHANGED
|
@@ -5,28 +5,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.KSMSClient = void 0;
|
|
7
7
|
const helpers_1 = require("../utils/helpers");
|
|
8
|
-
const
|
|
8
|
+
const api_1 = require("../api/api");
|
|
9
|
+
const APIError_1 = __importDefault(require("../errors/APIError"));
|
|
9
10
|
class KSMSClient {
|
|
10
11
|
apiKey;
|
|
11
|
-
|
|
12
|
+
api = { lang: "pt", version: "v1" };
|
|
13
|
+
constructor({ apiKey, api }) {
|
|
12
14
|
this.apiKey = apiKey;
|
|
15
|
+
this.api = api;
|
|
13
16
|
}
|
|
14
17
|
async sendSMS({ ...data }) {
|
|
15
18
|
try {
|
|
16
|
-
const response = await
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
const response = await (0, api_1.fetchRequest)({
|
|
20
|
+
url: helpers_1.APP_CONFIG.KSMS_URL + "/send",
|
|
21
|
+
method: "post",
|
|
22
|
+
body: {
|
|
23
|
+
body: data.message,
|
|
24
|
+
to: data.to,
|
|
25
|
+
from: data.from,
|
|
26
|
+
},
|
|
27
|
+
headers: {
|
|
28
|
+
"kumbi-api-key": "Bearer " + this.apiKey,
|
|
29
|
+
"accept-language": this.api.lang,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
return response;
|
|
22
33
|
}
|
|
23
34
|
catch (error) {
|
|
24
|
-
|
|
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)}`);
|
|
35
|
+
APIError_1.default.CatchError({ error, section: "sms" });
|
|
30
36
|
}
|
|
31
37
|
}
|
|
32
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KSMSClient.js","sourceRoot":"","sources":["../../src/ksms/KSMSClient.ts"],"names":[],"mappings":";;;;;;AAAA,8CAA8C;
|
|
1
|
+
{"version":3,"file":"KSMSClient.js","sourceRoot":"","sources":["../../src/ksms/KSMSClient.ts"],"names":[],"mappings":";;;;;;AAAA,8CAA8C;AAM9C,oCAA0C;AAE1C,kEAA0C;AAE1C,MAAa,UAAU;IACb,MAAM,CAAC;IACP,GAAG,GAAe,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAExD,YAAY,EAAE,MAAM,EAAE,GAAG,EAAwC;QAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAoB;QACzC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAyB,MAAM,IAAA,kBAAY,EAAC;gBACxD,GAAG,EAAE,oBAAU,CAAC,QAAQ,GAAG,OAAO;gBAClC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,OAAO;oBAClB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB;gBACD,OAAO,EAAE;oBACP,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM;oBACxC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;iBACjC;aACF,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kBAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF;AA9BD,gCA8BC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { IAPIConfig, IOAuthUserInfoResponse, IOAuthUserTokenReponse } from "../utils/types";
|
|
2
|
+
interface IOAuthClientTokenParams {
|
|
3
|
+
type: "services" | "account";
|
|
4
|
+
code: string;
|
|
5
|
+
grant_type: "authorization_code" | "refresh_token";
|
|
6
|
+
refresh_token?: string;
|
|
7
|
+
redirect?: IOAuthRedirect;
|
|
8
|
+
expires_in: "1h" | "1d" | "7d" | "never";
|
|
9
|
+
}
|
|
10
|
+
interface IOAuthRedirect {
|
|
11
|
+
account?: string;
|
|
12
|
+
service?: string;
|
|
13
|
+
}
|
|
14
|
+
interface IOAuthScopes {
|
|
15
|
+
account?: OAuthAccountScopes[];
|
|
16
|
+
services?: OAuthServiceScopes[];
|
|
17
|
+
}
|
|
18
|
+
interface IOAuthClientProps {
|
|
19
|
+
clientId: string;
|
|
20
|
+
clientSecret: string;
|
|
21
|
+
scopes: IOAuthScopes;
|
|
22
|
+
redirectUri: IOAuthRedirect;
|
|
23
|
+
api?: IAPIConfig;
|
|
24
|
+
}
|
|
25
|
+
type OAuthServiceScopes = "gmail.send.email";
|
|
26
|
+
type OAuthAccountScopes = "profile,subscription.read";
|
|
27
|
+
export declare class OAuth2Client {
|
|
28
|
+
private clientId;
|
|
29
|
+
private clientSecret;
|
|
30
|
+
private redirectUri;
|
|
31
|
+
private scopes;
|
|
32
|
+
private api;
|
|
33
|
+
constructor({ clientId, clientSecret, redirectUri, scopes, api, }: IOAuthClientProps);
|
|
34
|
+
generateOAuthAccountUrl({ state }: {
|
|
35
|
+
state?: string;
|
|
36
|
+
}): {
|
|
37
|
+
url: string;
|
|
38
|
+
};
|
|
39
|
+
generateOAuthServiceUrl({ state, }: {
|
|
40
|
+
redirect_url: string;
|
|
41
|
+
scopes: OAuthServiceScopes;
|
|
42
|
+
state?: string;
|
|
43
|
+
}): {
|
|
44
|
+
url: string;
|
|
45
|
+
};
|
|
46
|
+
generateToken({ ...data }: IOAuthClientTokenParams): Promise<IOAuthUserTokenReponse>;
|
|
47
|
+
userInfo({ accessToken }: {
|
|
48
|
+
accessToken: string;
|
|
49
|
+
}): Promise<IOAuthUserInfoResponse>;
|
|
50
|
+
}
|
|
51
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.OAuth2Client = void 0;
|
|
7
|
+
const helpers_1 = require("../utils/helpers");
|
|
8
|
+
const api_1 = require("../api/api");
|
|
9
|
+
const APIError_1 = __importDefault(require("../errors/APIError"));
|
|
10
|
+
class OAuth2Client {
|
|
11
|
+
clientId;
|
|
12
|
+
clientSecret;
|
|
13
|
+
redirectUri;
|
|
14
|
+
scopes;
|
|
15
|
+
api = { lang: "pt", version: "v1" };
|
|
16
|
+
constructor({ clientId, clientSecret, redirectUri, scopes, api, }) {
|
|
17
|
+
this.clientId = clientId;
|
|
18
|
+
this.clientSecret = clientSecret;
|
|
19
|
+
this.redirectUri = redirectUri;
|
|
20
|
+
this.scopes = scopes;
|
|
21
|
+
this.api = api;
|
|
22
|
+
}
|
|
23
|
+
generateOAuthAccountUrl({ state }) {
|
|
24
|
+
const url = `${helpers_1.APP_CONFIG.OAUTH.ACCOUNT}?client_id=${this.clientId}&scopes=${this.scopes.account.join(",")}${state ? `&state=${state}` : ""}&redirect=${this.redirectUri.account}`;
|
|
25
|
+
return { url };
|
|
26
|
+
}
|
|
27
|
+
generateOAuthServiceUrl({ state, }) {
|
|
28
|
+
const url = `${helpers_1.APP_CONFIG.OAUTH.ACCOUNT}?client_id=${this.clientId}&scopes=${this.scopes.services.join(",")}${state ? `&state=${state}` : ""}&redirect=${this.redirectUri.service}`;
|
|
29
|
+
return { url };
|
|
30
|
+
}
|
|
31
|
+
async generateToken({ ...data }) {
|
|
32
|
+
try {
|
|
33
|
+
const redirectUri = data.redirect
|
|
34
|
+
? data.type == "account"
|
|
35
|
+
? data.redirect.account
|
|
36
|
+
: data.redirect.service
|
|
37
|
+
: "";
|
|
38
|
+
const response = await (0, api_1.fetchRequest)({
|
|
39
|
+
url: helpers_1.APP_CONFIG.OAUTH.API_BASE_URL + "/u/tokens/generate",
|
|
40
|
+
method: "post",
|
|
41
|
+
body: {
|
|
42
|
+
code: data.code,
|
|
43
|
+
grant_type: data.grant_type,
|
|
44
|
+
refresh_token: data.refresh_token,
|
|
45
|
+
client_id: this.clientId,
|
|
46
|
+
redirect_uri: redirectUri,
|
|
47
|
+
expires_in: data.expires_in,
|
|
48
|
+
},
|
|
49
|
+
headers: {
|
|
50
|
+
"kumbi-app-key": `Bearer ${this.clientSecret}`,
|
|
51
|
+
"accept-language": this.api.lang,
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
return response;
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
APIError_1.default.CatchError({ error, section: "oauth" });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async userInfo({ accessToken }) {
|
|
61
|
+
try {
|
|
62
|
+
const response = await (0, api_1.fetchRequest)({
|
|
63
|
+
url: helpers_1.APP_CONFIG.OAUTH.API_BASE_URL + "/u/me",
|
|
64
|
+
method: "post",
|
|
65
|
+
body: {
|
|
66
|
+
token: accessToken,
|
|
67
|
+
},
|
|
68
|
+
headers: {
|
|
69
|
+
"kumbi-app-key": `Bearer ${this.clientSecret}`,
|
|
70
|
+
"accept-language": this.api.lang,
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
return response;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
APIError_1.default.CatchError({ error, section: "oauth" });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.OAuth2Client = OAuth2Client;
|
|
81
|
+
//# sourceMappingURL=OAuth2Client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuth2Client.js","sourceRoot":"","sources":["../../src/oauth/OAuth2Client.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/helpers.d.ts
CHANGED
package/dist/utils/helpers.js
CHANGED
|
@@ -4,5 +4,10 @@ exports.APP_CONFIG = void 0;
|
|
|
4
4
|
exports.APP_CONFIG = {
|
|
5
5
|
KSMS_URL: "https://oi.kumbify.com/api/sms",
|
|
6
6
|
KMAIL_URL: "https://oi.kumbify.com/api/email",
|
|
7
|
+
OAUTH: {
|
|
8
|
+
API_BASE_URL: "https://8n8.kumbify.com/api/",
|
|
9
|
+
SERVICE: "https://kumbify.com/pt/oauth/services",
|
|
10
|
+
ACCOUNT: "https://kumbify.com/pt/oauth",
|
|
11
|
+
},
|
|
7
12
|
};
|
|
8
13
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACxB,QAAQ,EAAE,gCAAgC;IAC1C,SAAS,EAAE,kCAAkC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACxB,QAAQ,EAAE,gCAAgC;IAC1C,SAAS,EAAE,kCAAkC;IAC7C,KAAK,EAAE;QACL,YAAY,EAAE,8BAA8B;QAC5C,OAAO,EAAE,uCAAuC;QAChD,OAAO,EAAE,8BAA8B;KACxC;CACF,CAAC"}
|
package/dist/utils/types.d.ts
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global Types
|
|
3
|
+
*/
|
|
4
|
+
export interface IAPIConfig {
|
|
5
|
+
lang: "pt" | "en";
|
|
6
|
+
version: "v1";
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* KMAIL Types
|
|
10
|
+
*/
|
|
1
11
|
export type IKMailSendMailSimpleMessage = {
|
|
2
12
|
from: string;
|
|
3
13
|
to: string[];
|
|
@@ -19,6 +29,9 @@ export type IKMailResponseMail = {
|
|
|
19
29
|
success: boolean;
|
|
20
30
|
messageId: string;
|
|
21
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* KSMS Types
|
|
34
|
+
*/
|
|
22
35
|
export type IKSMSSendMessage = {
|
|
23
36
|
message: string;
|
|
24
37
|
to: string[];
|
|
@@ -28,3 +41,18 @@ export type IKSMSResponseMessage = {
|
|
|
28
41
|
success: boolean;
|
|
29
42
|
messageId: string;
|
|
30
43
|
};
|
|
44
|
+
/**
|
|
45
|
+
* OAuth Types
|
|
46
|
+
*/
|
|
47
|
+
export type IOAuthUserTokenReponse = {
|
|
48
|
+
success: boolean;
|
|
49
|
+
access_token: string;
|
|
50
|
+
refresh_token: string;
|
|
51
|
+
};
|
|
52
|
+
export type IOAuthUserInfoResponse = {
|
|
53
|
+
first_name: string;
|
|
54
|
+
last_name: string;
|
|
55
|
+
photo: string;
|
|
56
|
+
email: string;
|
|
57
|
+
kumbi_code: string;
|
|
58
|
+
};
|
package/dist/utils/types.js
CHANGED
package/dist/utils/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kumbify/sdk",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Oficial Kumbify SDK to integrate our services in your applications",
|
|
5
5
|
"homepage": "https://github.com/kumbify-oficial/kumbi-sdk#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"scripts": {
|
|
25
25
|
"changeset": "changeset",
|
|
26
26
|
"version-pack": "changeset version",
|
|
27
|
-
"publish-pack": "changeset publish"
|
|
27
|
+
"publish-pack": "tsc && changeset publish"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@changesets/cli": "^2.29.8",
|