aeremmiddleware 1.0.4 → 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.
Files changed (56) hide show
  1. package/dist/Finance/Ingenico.types.d.ts +21 -0
  2. package/dist/Finance/Ingenico.types.js +3 -0
  3. package/dist/Finance/Ingenico.types.js.map +1 -0
  4. package/dist/Finance/crimeCheck.d.ts +16 -0
  5. package/dist/Finance/crimeCheck.js +137 -0
  6. package/dist/Finance/crimeCheck.js.map +1 -0
  7. package/dist/Finance/crimecheck.types.d.ts +30 -0
  8. package/dist/Finance/crimecheck.types.js +3 -0
  9. package/dist/Finance/crimecheck.types.js.map +1 -0
  10. package/dist/Finance/encrypt.d.ts +1 -0
  11. package/dist/Finance/encrypt.js +20 -0
  12. package/dist/Finance/encrypt.js.map +1 -0
  13. package/dist/Finance/idfy.d.ts +63 -35
  14. package/dist/Finance/idfy.js +411 -201
  15. package/dist/Finance/idfy.js.map +1 -1
  16. package/dist/Finance/index.d.ts +6 -4
  17. package/dist/Finance/index.js +12 -10
  18. package/dist/Finance/index.js.map +1 -1
  19. package/dist/Finance/ingenico.d.ts +13 -0
  20. package/dist/Finance/ingenico.js +122 -0
  21. package/dist/Finance/ingenico.js.map +1 -0
  22. package/dist/Finance/ingenicoHtml.d.ts +2 -0
  23. package/dist/Finance/ingenicoHtml.js +122 -0
  24. package/dist/Finance/ingenicoHtml.js.map +1 -0
  25. package/dist/Finance/novel.d.ts +35 -0
  26. package/dist/Finance/novel.js +222 -0
  27. package/dist/Finance/novel.js.map +1 -0
  28. package/dist/Finance/novel.types.d.ts +23 -0
  29. package/dist/Finance/novel.types.js +10 -0
  30. package/dist/Finance/novel.types.js.map +1 -0
  31. package/dist/Maps/index.js +1 -1
  32. package/dist/Socials/Sms.types.d.ts +8 -0
  33. package/dist/Socials/Sms.types.js +9 -0
  34. package/dist/Socials/Sms.types.js.map +1 -0
  35. package/dist/Socials/SmsSender.d.ts +17 -0
  36. package/dist/Socials/SmsSender.js +74 -0
  37. package/dist/Socials/SmsSender.js.map +1 -0
  38. package/dist/Socials/Whatsapp.types.d.ts +93 -97
  39. package/dist/Socials/Whatsapp.types.js +8 -8
  40. package/dist/Socials/Whatsapp.types.js.map +1 -1
  41. package/dist/Socials/index.d.ts +6 -4
  42. package/dist/Socials/index.js +12 -10
  43. package/dist/Socials/index.js.map +1 -1
  44. package/dist/Socials/whatsApp.d.ts +23 -0
  45. package/dist/Socials/whatsApp.js +169 -0
  46. package/dist/Socials/whatsApp.js.map +1 -0
  47. package/dist/index.d.ts +10 -8
  48. package/dist/index.js +8 -8
  49. package/package.json +1 -1
  50. package/src/Finance/Ingenico.types.ts +3 -0
  51. package/src/Finance/crimeCheck.ts +135 -0
  52. package/src/Finance/crimecheck.types.ts +31 -0
  53. package/src/Finance/idfy.ts +12 -6
  54. package/src/Finance/ingenico.ts +36 -136
  55. package/src/Finance/ingenicoHtml.ts +119 -0
  56. package/src/Socials/SmsSender.ts +20 -21
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContentType = void 0;
4
+ var ContentType;
5
+ (function (ContentType) {
6
+ ContentType["TEXT"] = "text/plain";
7
+ ContentType["FORM"] = "multipart/form-data";
8
+ ContentType["JSON"] = "application/json";
9
+ })(ContentType || (exports.ContentType = ContentType = {}));
10
+ //# sourceMappingURL=novel.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"novel.types.js","sourceRoot":"","sources":["../../src/Finance/novel.types.ts"],"names":[],"mappings":";;;AAmBA,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,2CAA4B,CAAA;IAC5B,wCAAyB,CAAA;AAC3B,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB"}
@@ -1,2 +1,2 @@
1
- "use strict";
1
+ "use strict";
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,8 @@
1
+ export declare enum Provider {
2
+ EXOTEL = "EXOTEL",
3
+ GUPSHUP = "GUPSHUP"
4
+ }
5
+ export interface DemoBody {
6
+ To: string;
7
+ Body: string;
8
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Provider = void 0;
4
+ var Provider;
5
+ (function (Provider) {
6
+ Provider["EXOTEL"] = "EXOTEL";
7
+ Provider["GUPSHUP"] = "GUPSHUP";
8
+ })(Provider || (exports.Provider = Provider = {}));
9
+ //# sourceMappingURL=Sms.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sms.types.js","sourceRoot":"","sources":["../../src/Socials/Sms.types.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAGT;AAHH,WAAY,QAAQ;IAChB,6BAAiB,CAAA;IACjB,+BAAmB,CAAA;AACrB,CAAC,EAHS,QAAQ,wBAAR,QAAQ,QAGjB"}
@@ -0,0 +1,17 @@
1
+ import { DemoBody } from "./Sms.types";
2
+ declare class SmsSender {
3
+ private exotelSid;
4
+ private exotelToken;
5
+ private exotelApiKey;
6
+ private smsUrl;
7
+ private provider;
8
+ constructor(payload: {
9
+ exotelSid: string;
10
+ exotelToken: string;
11
+ exotelApiKey: string;
12
+ provider: string;
13
+ });
14
+ private sendOtpMessage;
15
+ sendOtpSms(obj: DemoBody): Promise<boolean>;
16
+ }
17
+ export default SmsSender;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const axios_1 = __importDefault(require("axios"));
16
+ const Sms_types_1 = require("./Sms.types");
17
+ class SmsSender {
18
+ constructor(payload) {
19
+ const { exotelSid, exotelToken, exotelApiKey, provider } = payload;
20
+ this.exotelSid = exotelSid;
21
+ this.exotelToken = exotelToken;
22
+ this.exotelApiKey = exotelApiKey;
23
+ this.provider = provider;
24
+ if (this.provider === Sms_types_1.Provider.EXOTEL) {
25
+ this.smsUrl = `https://${this.exotelApiKey}:${this.exotelToken}@api.exotel.com/v1/Accounts/${this.exotelSid}/Sms/send`;
26
+ }
27
+ else if (this.provider === Sms_types_1.Provider.GUPSHUP) {
28
+ }
29
+ }
30
+ sendOtpMessage(messageData) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ if (messageData.To && messageData.Body) {
33
+ if (messageData.Body.length != 6) {
34
+ throw new Error("Please enter 6 digit number");
35
+ }
36
+ }
37
+ else
38
+ throw new Error("All input data not found");
39
+ const bodyFormData = new FormData();
40
+ const smsTemplateMsg = "Your OTP for AEREMS login is %d. This %d will expire in 10 minutes.";
41
+ bodyFormData.append("To", messageData.To);
42
+ bodyFormData.append("From", "AEREM");
43
+ bodyFormData.append("Body", smsTemplateMsg.replace(/%d/g, messageData.Body));
44
+ bodyFormData.append("EncodingType", "plain");
45
+ bodyFormData.append("DltEntityId", "1301164059765333889");
46
+ bodyFormData.append("DltTemplateId", "1307164663997173809");
47
+ bodyFormData.append("SmsType", "transactional");
48
+ try {
49
+ let config = {
50
+ method: "post",
51
+ maxBodyLength: Infinity,
52
+ url: this.smsUrl,
53
+ headers: {
54
+ "Content-Type": "multipart/form-data",
55
+ },
56
+ data: bodyFormData,
57
+ };
58
+ yield axios_1.default.request(config);
59
+ return true;
60
+ }
61
+ catch (error) {
62
+ console.error("Error sending sms:", error);
63
+ return false;
64
+ }
65
+ });
66
+ }
67
+ sendOtpSms(obj) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ return this.sendOtpMessage(obj);
70
+ });
71
+ }
72
+ }
73
+ exports.default = SmsSender;
74
+ //# sourceMappingURL=SmsSender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmsSender.js","sourceRoot":"","sources":["../../src/Socials/SmsSender.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,2CAAiD;AAEjD,MAAM,SAAS;IAOb,YAAY,OAKX;QACC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QACnE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,IAAI,CAAC,QAAQ,KAAK,oBAAQ,CAAC,MAAM,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,WAAW,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,+BAA+B,IAAI,CAAC,SAAS,WAAW,CAAC;SACxH;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,oBAAQ,CAAC,OAAO,EAAE;SAG9C;IACH,CAAC;IAEa,cAAc,CAAC,WAAqB;;YAChD,IAAI,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE;gBACtC,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBAChC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;iBAChD;aACF;;gBAAM,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAEnD,MAAM,YAAY,GAAG,IAAI,QAAQ,EAAE,CAAC;YAEpC,MAAM,cAAc,GAClB,qEAAqE,CAAC;YAExE,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;YAC1C,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrC,YAAY,CAAC,MAAM,CACjB,MAAM,EACN,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAChD,CAAC;YACF,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC7C,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;YAC1D,YAAY,CAAC,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;YAC5D,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YAEhD,IAAI;gBACF,IAAI,MAAM,GAAG;oBACX,MAAM,EAAE,MAAM;oBACd,aAAa,EAAE,QAAQ;oBACvB,GAAG,EAAE,IAAI,CAAC,MAAM;oBAChB,OAAO,EAAE;wBACP,cAAc,EAAE,qBAAqB;qBACtC;oBAED,IAAI,EAAE,YAAY;iBACnB,CAAC;gBAEF,MAAM,eAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC5B,OAAO,IAAI,CAAC;aACb;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;gBAC3C,OAAO,KAAK,CAAC;aACd;QACH,CAAC;KAAA;IAEK,UAAU,CAAC,GAAa;;YAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;KAAA;CACF;AACD,kBAAe,SAAS,CAAC"}
@@ -1,97 +1,93 @@
1
- interface WhatsAppMessageData {
2
- from: string;
3
- to: string;
4
- body?: string;
5
- content?: WhatsappContentType;
6
- }
7
- interface Templatetype {
8
- name: string;
9
- language: {
10
- policy: string;
11
- code: string;
12
- };
13
- components: Array<{
14
- type: string;
15
- parameters: Array<{
16
- type: string;
17
- text: string;
18
- }>;
19
- }>;
20
- }
21
- interface WhatsappContentType {
22
- type: string;
23
- text?: {
24
- preview_url: string;
25
- body: string;
26
- };
27
- document?: any;
28
- image?: any;
29
- video?: any;
30
- recipient_type: any;
31
- template?: Templatetype;
32
- }
33
- export interface DemoBody {
34
- whatsapp: {
35
- messages: Array<WhatsAppMessageData>;
36
- };
37
- }
38
- interface WhatsAppTemplateMessage {
39
- from: string;
40
- to: string;
41
- content: {
42
- type: string;
43
- template: {
44
- name: string;
45
- language: {
46
- policy?: string;
47
- code: string;
48
- };
49
- components: Array<{
50
- type: string;
51
- parameters: Array<{
52
- type: string;
53
- text: string;
54
- }>;
55
- }>;
56
- };
57
- };
58
- }
59
- export interface WhatsAppTemplateDemoBody {
60
- whatsapp: {
61
- messages: Array<WhatsAppTemplateMessage>;
62
- };
63
- }
64
- export interface EmiReminderAug2023 {
65
- code: number;
66
- error_data: null;
67
- status: string;
68
- data: {
69
- waba_id: string;
70
- name: string;
71
- components: Array<HeaderComponent | BodyComponent>;
72
- };
73
- }
74
- interface HeaderComponent {
75
- type: string;
76
- format: string;
77
- text: string;
78
- example: {
79
- header_text: Array<string>;
80
- };
81
- }
82
- interface BodyComponent {
83
- type: string;
84
- text: string;
85
- example: {
86
- body_text: Array<Array<string>>;
87
- };
88
- }
89
- export interface SmsDemoBody {
90
- To: string;
91
- Body: string;
92
- }
93
- export declare enum Provider {
94
- EXOTEL = "EXOTEL",
95
- GUPSHUP = "GUPSHUP"
96
- }
97
- export {};
1
+ interface WhatsAppMessageData {
2
+ from: string;
3
+ to: string;
4
+ body?: string;
5
+ content?: WhatsappContentType;
6
+ }
7
+ interface Templatetype {
8
+ name: string;
9
+ language: {
10
+ policy: string;
11
+ code: string;
12
+ };
13
+ components: Array<{
14
+ type: string;
15
+ parameters: Array<{
16
+ type: string;
17
+ text: string;
18
+ }>;
19
+ }>;
20
+ }
21
+ interface WhatsappContentType {
22
+ type: string;
23
+ text?: {
24
+ preview_url: string;
25
+ body: string;
26
+ };
27
+ document?: any;
28
+ image?: any;
29
+ video?: any;
30
+ recipient_type: any;
31
+ template?: Templatetype;
32
+ }
33
+ export interface DemoBody {
34
+ whatsapp: {
35
+ messages: Array<WhatsAppMessageData>;
36
+ };
37
+ }
38
+ interface WhatsAppTemplateMessage {
39
+ from: string;
40
+ to: string;
41
+ content: {
42
+ type: string;
43
+ template: {
44
+ name: string;
45
+ language: {
46
+ policy?: string;
47
+ code: string;
48
+ };
49
+ components: Array<{
50
+ type: string;
51
+ parameters: Array<{
52
+ type: string;
53
+ text: string;
54
+ }>;
55
+ }>;
56
+ };
57
+ };
58
+ }
59
+ export interface WhatsAppTemplateDemoBody {
60
+ whatsapp: {
61
+ messages: Array<WhatsAppTemplateMessage>;
62
+ };
63
+ }
64
+ export interface EmiReminderAug2023 {
65
+ code: number;
66
+ error_data: null;
67
+ status: string;
68
+ data: {
69
+ waba_id: string;
70
+ name: string;
71
+ components: Array<HeaderComponent | BodyComponent>;
72
+ };
73
+ }
74
+ interface HeaderComponent {
75
+ type: string;
76
+ format: string;
77
+ text: string;
78
+ example: {
79
+ header_text: Array<string>;
80
+ };
81
+ }
82
+ interface BodyComponent {
83
+ type: string;
84
+ text: string;
85
+ example: {
86
+ body_text: Array<Array<string>>;
87
+ };
88
+ }
89
+ export declare enum Provider {
90
+ EXOTEL = "EXOTEL",
91
+ GUPSHUP = "GUPSHUP"
92
+ }
93
+ export {};
@@ -1,9 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Provider = void 0;
4
- var Provider;
5
- (function (Provider) {
6
- Provider["EXOTEL"] = "EXOTEL";
7
- Provider["GUPSHUP"] = "GUPSHUP";
8
- })(Provider || (exports.Provider = Provider = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Provider = void 0;
4
+ var Provider;
5
+ (function (Provider) {
6
+ Provider["EXOTEL"] = "EXOTEL";
7
+ Provider["GUPSHUP"] = "GUPSHUP";
8
+ })(Provider || (exports.Provider = Provider = {}));
9
9
  //# sourceMappingURL=Whatsapp.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Whatsapp.types.js","sourceRoot":"","sources":["../../src/Socials/Whatsapp.types.ts"],"names":[],"mappings":";;;AA+FE,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,+BAAmB,CAAA;AACrB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB"}
1
+ {"version":3,"file":"Whatsapp.types.js","sourceRoot":"","sources":["../../src/Socials/Whatsapp.types.ts"],"names":[],"mappings":";;;AA4FE,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,+BAAmB,CAAA;AACrB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB"}
@@ -1,4 +1,6 @@
1
- import Socials from './message';
2
- export declare const socials: {
3
- message: typeof Socials;
4
- };
1
+ import Socials from './whatsApp';
2
+ import Sms from './SmsSender';
3
+ export declare const socials: {
4
+ whatsapp: typeof Socials;
5
+ text: typeof Sms;
6
+ };
@@ -1,11 +1,13 @@
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.socials = void 0;
7
- const message_1 = __importDefault(require("./message"));
8
- exports.socials = {
9
- message: message_1.default,
10
- };
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.socials = void 0;
7
+ const whatsApp_1 = __importDefault(require("./whatsApp"));
8
+ const SmsSender_1 = __importDefault(require("./SmsSender"));
9
+ exports.socials = {
10
+ whatsapp: whatsApp_1.default,
11
+ text: SmsSender_1.default
12
+ };
11
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Socials/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA+B;AAElB,QAAA,OAAO,GAAG;IACvB,OAAO,EAAG,iBAAO;CAEhB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Socials/index.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAgC;AAChC,4DAA6B;AAEhB,QAAA,OAAO,GAAG;IACvB,QAAQ,EAAG,kBAAO;IAClB,IAAI,EAAC,mBAAG;CACP,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { DemoBody, EmiReminderAug2023, WhatsAppTemplateDemoBody } from "./Whatsapp.types";
2
+ declare class WhatsappMessageSender {
3
+ private exotelSid;
4
+ private exotelToken;
5
+ private exotelApiKey;
6
+ private whatsappApiUrl;
7
+ private provider;
8
+ constructor(payload: {
9
+ exotelSid: string;
10
+ exotelToken: string;
11
+ exotelApiKey: string;
12
+ provider: string;
13
+ });
14
+ getTemplates(): Promise<any>;
15
+ getUniquePlaceholderCount(str: string): number;
16
+ validateTemplatePayload(template: EmiReminderAug2023, payload: any): true | undefined;
17
+ testType(obj: DemoBody): boolean;
18
+ private sendMessage;
19
+ private sendTemplateMessage;
20
+ sendWhatsAppMessage(obj: DemoBody): Promise<boolean>;
21
+ sendWhatsappTemplateMessage(obj: WhatsAppTemplateDemoBody): Promise<boolean>;
22
+ }
23
+ export default WhatsappMessageSender;
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const axios_1 = __importDefault(require("axios"));
16
+ const Whatsapp_types_1 = require("./Whatsapp.types");
17
+ class WhatsappMessageSender {
18
+ constructor(payload) {
19
+ const { exotelSid, exotelToken, exotelApiKey, provider } = payload;
20
+ this.exotelSid = exotelSid;
21
+ this.exotelToken = exotelToken;
22
+ this.exotelApiKey = exotelApiKey;
23
+ this.provider = provider;
24
+ if (this.provider === Whatsapp_types_1.Provider.EXOTEL) {
25
+ this.whatsappApiUrl = `https://${exotelApiKey}:${exotelToken}@api.exotel.com/v2/accounts/${exotelSid}/messages`;
26
+ }
27
+ else if (this.provider === Whatsapp_types_1.Provider.GUPSHUP) {
28
+ }
29
+ }
30
+ getTemplates() {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ const request = yield axios_1.default.get(`https://${this.exotelApiKey}:${this.exotelToken}@api.exotel.com/v2/accounts/${this.exotelSid}/templates?waba_id=114033855070320`);
33
+ return request.data.response.whatsapp.templates;
34
+ });
35
+ }
36
+ getUniquePlaceholderCount(str) {
37
+ const arr = [];
38
+ str.split("{{").map((s) => arr.push(...s.split("}}")));
39
+ const placeholders = arr.filter((i) => i.match(/[0-9]+/) && !isNaN(Number(i)));
40
+ return [...new Set(placeholders)].length;
41
+ }
42
+ validateTemplatePayload(template, payload) {
43
+ const templateComponents = template.data.components;
44
+ if (templateComponents.length != 2) {
45
+ return;
46
+ }
47
+ const [headerTemplate, bodyTemplate] = templateComponents;
48
+ for (let index = 0; index < payload.whatsapp.messages.length; index++) {
49
+ const message = payload.whatsapp.messages[index];
50
+ const payloadComponents = message.content.template.components;
51
+ for (let index2 = 0; index2 < payloadComponents.length; index2++) {
52
+ const payloadComponent = payloadComponents[index2];
53
+ if (payloadComponent.type === headerTemplate.type.toLowerCase()) {
54
+ const headerPlaceholdersCount = this.getUniquePlaceholderCount(headerTemplate.text);
55
+ if (payloadComponent.parameters.length != headerPlaceholdersCount) {
56
+ console.log("invalid header");
57
+ throw new Error("header count mismatch");
58
+ }
59
+ else {
60
+ }
61
+ }
62
+ else if (payloadComponent.type === bodyTemplate.type.toLowerCase()) {
63
+ const bodyPlaceholdersCount = this.getUniquePlaceholderCount(bodyTemplate.text);
64
+ if (payloadComponent.parameters.length != bodyPlaceholdersCount) {
65
+ console.log("invalid body");
66
+ throw new Error("body count mismatch");
67
+ }
68
+ else {
69
+ }
70
+ }
71
+ else
72
+ throw new Error("type mismatch or incorrect");
73
+ }
74
+ return true;
75
+ }
76
+ }
77
+ testType(obj) {
78
+ let returnValue = true;
79
+ obj.whatsapp.messages.every((message) => {
80
+ var _a, _b, _c, _d, _e;
81
+ returnValue =
82
+ Boolean(((_a = message === null || message === void 0 ? void 0 : message.content) === null || _a === void 0 ? void 0 : _a.type) === "text" && message.content.text) ||
83
+ Boolean(((_b = message === null || message === void 0 ? void 0 : message.content) === null || _b === void 0 ? void 0 : _b.type) === "document" && message.content.document) ||
84
+ Boolean(((_c = message === null || message === void 0 ? void 0 : message.content) === null || _c === void 0 ? void 0 : _c.type) === "image" && message.content.image) ||
85
+ Boolean(((_d = message === null || message === void 0 ? void 0 : message.content) === null || _d === void 0 ? void 0 : _d.type) === "video" && message.content.video) ||
86
+ Boolean(((_e = message === null || message === void 0 ? void 0 : message.content) === null || _e === void 0 ? void 0 : _e.type) === "template" && message.content.template);
87
+ return returnValue;
88
+ });
89
+ return returnValue;
90
+ }
91
+ sendMessage(messageData) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ try {
94
+ let config = {
95
+ method: "post",
96
+ maxBodyLength: Infinity,
97
+ url: this.whatsappApiUrl,
98
+ headers: {
99
+ "Content-Type": "application/json",
100
+ },
101
+ data: JSON.stringify(messageData),
102
+ };
103
+ const response = yield axios_1.default.request(config);
104
+ if (response.data.metadata && response.data.metadata.success != 0) {
105
+ console.log("WhatsApp message sent successfully:", response.data);
106
+ return true;
107
+ }
108
+ else {
109
+ console.error("Error sending WhatsApp message:", response.data);
110
+ return false;
111
+ }
112
+ }
113
+ catch (error) {
114
+ console.error("Error sending WhatsApp message:", error);
115
+ return false;
116
+ }
117
+ });
118
+ }
119
+ sendTemplateMessage(messageData) {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ try {
122
+ const config = {
123
+ method: "post",
124
+ maxBodyLength: Infinity,
125
+ url: this.whatsappApiUrl,
126
+ headers: {
127
+ "Content-Type": "application/json",
128
+ },
129
+ data: JSON.stringify(messageData),
130
+ };
131
+ const response = yield axios_1.default.request(config);
132
+ if (response.data.metadata && response.data.metadata.success !== 0) {
133
+ console.log("WhatsApp template message sent successfully:", response.data);
134
+ return true;
135
+ }
136
+ else {
137
+ console.error("Error sending WhatsApp template message:", response.data);
138
+ return false;
139
+ }
140
+ }
141
+ catch (error) {
142
+ console.error("Error sending WhatsApp template message:", error);
143
+ return false;
144
+ }
145
+ });
146
+ }
147
+ sendWhatsAppMessage(obj) {
148
+ return __awaiter(this, void 0, void 0, function* () {
149
+ if (this.testType(obj))
150
+ return this.sendMessage(obj);
151
+ else
152
+ return false;
153
+ });
154
+ }
155
+ sendWhatsappTemplateMessage(obj) {
156
+ return __awaiter(this, void 0, void 0, function* () {
157
+ let templatevalue = yield this.getTemplates();
158
+ let tempVariable = obj.whatsapp.messages[0].content.template.name;
159
+ let template = templatevalue.find((e) => e.data.name == tempVariable);
160
+ if (this.validateTemplatePayload(template, obj)) {
161
+ return this.sendTemplateMessage(obj);
162
+ }
163
+ else
164
+ return false;
165
+ });
166
+ }
167
+ }
168
+ exports.default = WhatsappMessageSender;
169
+ //# sourceMappingURL=whatsApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsApp.js","sourceRoot":"","sources":["../../src/Socials/whatsApp.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
- export declare const AeremMiddleware: {
2
- finance: {
3
- idFy: typeof import("./Finance/idfy").default;
4
- };
5
- socials: {
6
- message: typeof import("./Socials/message").default;
7
- };
8
- };
1
+ export declare const AeremMiddleware: {
2
+ finance: {
3
+ idFy: typeof import("./Finance/idfy").default;
4
+ novel: typeof import("./Finance/novel").default;
5
+ };
6
+ socials: {
7
+ whatsapp: typeof import("./Socials/whatsApp").default;
8
+ text: typeof import("./Socials/SmsSender").default;
9
+ };
10
+ };
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AeremMiddleware = void 0;
4
- const Finance_1 = require("./Finance");
5
- const Socials_1 = require("./Socials");
6
- exports.AeremMiddleware = {
7
- finance: Finance_1.finance, socials: Socials_1.socials
8
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AeremMiddleware = void 0;
4
+ const Finance_1 = require("./Finance");
5
+ const Socials_1 = require("./Socials");
6
+ exports.AeremMiddleware = {
7
+ finance: Finance_1.finance, socials: Socials_1.socials
8
+ };
9
9
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aeremmiddleware",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "",
5
5
  "type": "dist/index.d.ts",
6
6
  "main": "dist/index.js",