chatbot-nc 2.0.83 → 2.0.85
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/cjs/aws/index.d.ts +179 -0
- package/dist/cjs/aws/index.js +52 -0
- package/dist/cjs/aws/index.js.map +1 -0
- package/dist/cjs/aws/services/AESEncryptionUsingKMS.d.ts +4 -0
- package/dist/cjs/aws/services/AESEncryptionUsingKMS.js +101 -0
- package/dist/cjs/aws/services/AESEncryptionUsingKMS.js.map +1 -0
- package/dist/cjs/aws/services/AWSChimeMeeting.d.ts +8 -0
- package/dist/cjs/aws/services/AWSChimeMeeting.js +99 -0
- package/dist/cjs/aws/services/AWSChimeMeeting.js.map +1 -0
- package/dist/cjs/aws/services/AWSCodepipeline.d.ts +16 -0
- package/dist/cjs/aws/services/AWSCodepipeline.js +43 -0
- package/dist/cjs/aws/services/AWSCodepipeline.js.map +1 -0
- package/dist/cjs/aws/services/AWSComprehend.d.ts +3 -0
- package/dist/cjs/aws/services/AWSComprehend.js +30 -0
- package/dist/cjs/aws/services/AWSComprehend.js.map +1 -0
- package/dist/cjs/aws/services/AWSConnect.d.ts +296 -0
- package/dist/cjs/aws/services/AWSConnect.js +865 -0
- package/dist/cjs/aws/services/AWSConnect.js.map +1 -0
- package/dist/cjs/aws/services/AWSConnectCases.d.ts +7 -0
- package/dist/cjs/aws/services/AWSConnectCases.js +81 -0
- package/dist/cjs/aws/services/AWSConnectCases.js.map +1 -0
- package/dist/cjs/aws/services/AWSConnectParticipant.d.ts +7 -0
- package/dist/cjs/aws/services/AWSConnectParticipant.js +87 -0
- package/dist/cjs/aws/services/AWSConnectParticipant.js.map +1 -0
- package/dist/cjs/aws/services/AWSCustomerProfiles.d.ts +5 -0
- package/dist/cjs/aws/services/AWSCustomerProfiles.js +45 -0
- package/dist/cjs/aws/services/AWSCustomerProfiles.js.map +1 -0
- package/dist/cjs/aws/services/AWSDynamoDb.d.ts +6 -0
- package/dist/cjs/aws/services/AWSDynamoDb.js +77 -0
- package/dist/cjs/aws/services/AWSDynamoDb.js.map +1 -0
- package/dist/cjs/aws/services/AWSGateway.d.ts +5 -0
- package/dist/cjs/aws/services/AWSGateway.js +45 -0
- package/dist/cjs/aws/services/AWSGateway.js.map +1 -0
- package/dist/cjs/aws/services/AWSGatewayManagement.d.ts +5 -0
- package/dist/cjs/aws/services/AWSGatewayManagement.js +49 -0
- package/dist/cjs/aws/services/AWSGatewayManagement.js.map +1 -0
- package/dist/cjs/aws/services/AWSLambda.d.ts +3 -0
- package/dist/cjs/aws/services/AWSLambda.js +25 -0
- package/dist/cjs/aws/services/AWSLambda.js.map +1 -0
- package/dist/cjs/aws/services/AWSLexModel.d.ts +24 -0
- package/dist/cjs/aws/services/AWSLexModel.js +387 -0
- package/dist/cjs/aws/services/AWSLexModel.js.map +1 -0
- package/dist/cjs/aws/services/AWSLexRuntime.d.ts +5 -0
- package/dist/cjs/aws/services/AWSLexRuntime.js +47 -0
- package/dist/cjs/aws/services/AWSLexRuntime.js.map +1 -0
- package/dist/cjs/aws/services/AWSPinpoint.d.ts +6 -0
- package/dist/cjs/aws/services/AWSPinpoint.js +65 -0
- package/dist/cjs/aws/services/AWSPinpoint.js.map +1 -0
- package/dist/cjs/aws/services/AWSPinpointSMSVoice.d.ts +9 -0
- package/dist/cjs/aws/services/AWSPinpointSMSVoice.js +111 -0
- package/dist/cjs/aws/services/AWSPinpointSMSVoice.js.map +1 -0
- package/dist/cjs/aws/services/AWSQConnect.d.ts +9 -0
- package/dist/cjs/aws/services/AWSQConnect.js +118 -0
- package/dist/cjs/aws/services/AWSQConnect.js.map +1 -0
- package/dist/cjs/aws/services/AWSS3.d.ts +11 -0
- package/dist/cjs/aws/services/AWSS3.js +186 -0
- package/dist/cjs/aws/services/AWSS3.js.map +1 -0
- package/dist/cjs/aws/services/AWSSES.d.ts +4 -0
- package/dist/cjs/aws/services/AWSSES.js +23 -0
- package/dist/cjs/aws/services/AWSSES.js.map +1 -0
- package/dist/cjs/aws/services/AWSSNS.d.ts +12 -0
- package/dist/cjs/aws/services/AWSSNS.js +73 -0
- package/dist/cjs/aws/services/AWSSNS.js.map +1 -0
- package/dist/cjs/aws/services/AWSSSM.d.ts +4 -0
- package/dist/cjs/aws/services/AWSSSM.js +82 -0
- package/dist/cjs/aws/services/AWSSSM.js.map +1 -0
- package/dist/cjs/aws/services/AWSSTS.d.ts +4 -0
- package/dist/cjs/aws/services/AWSSTS.js +28 -0
- package/dist/cjs/aws/services/AWSSTS.js.map +1 -0
- package/dist/cjs/aws/services/AWSTranslate.d.ts +4 -0
- package/dist/cjs/aws/services/AWSTranslate.js +27 -0
- package/dist/cjs/aws/services/AWSTranslate.js.map +1 -0
- package/dist/cjs/communication/communicationService.d.ts +20 -0
- package/dist/cjs/communication/communicationService.js +283 -0
- package/dist/cjs/communication/communicationService.js.map +1 -0
- package/dist/cjs/communication/index.d.ts +49 -0
- package/dist/cjs/communication/index.js +219 -0
- package/dist/cjs/communication/index.js.map +1 -0
- package/dist/cjs/config/SSMParameters.d.ts +26 -0
- package/dist/cjs/config/SSMParameters.js +34 -0
- package/dist/cjs/config/SSMParameters.js.map +1 -0
- package/dist/cjs/enum/index.d.ts +236 -0
- package/dist/cjs/enum/index.js +289 -0
- package/dist/cjs/enum/index.js.map +1 -0
- package/dist/cjs/hashing/idObfuscation.d.ts +20 -0
- package/dist/cjs/hashing/idObfuscation.js +56 -0
- package/dist/cjs/hashing/idObfuscation.js.map +1 -0
- package/dist/cjs/hashing/index.d.ts +33 -0
- package/dist/cjs/hashing/index.js +192 -0
- package/dist/cjs/hashing/index.js.map +1 -0
- package/dist/cjs/index.d.ts +12 -0
- package/dist/cjs/index.js +52 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/logger/index.d.ts +3 -0
- package/dist/cjs/logger/index.js +70 -0
- package/dist/cjs/logger/index.js.map +1 -0
- package/dist/cjs/logger/loggerTransports.d.ts +11 -0
- package/dist/cjs/logger/loggerTransports.js +72 -0
- package/dist/cjs/logger/loggerTransports.js.map +1 -0
- package/dist/cjs/repository/dynamodb.d.ts +121 -0
- package/dist/cjs/repository/dynamodb.js +696 -0
- package/dist/cjs/repository/dynamodb.js.map +1 -0
- package/dist/cjs/shortner/index.d.ts +4 -0
- package/dist/cjs/shortner/index.js +34 -0
- package/dist/cjs/shortner/index.js.map +1 -0
- package/dist/cjs/utils/common.d.ts +7 -0
- package/dist/cjs/utils/common.js +199 -0
- package/dist/cjs/utils/common.js.map +1 -0
- package/dist/cjs/utils/date-format.d.ts +16 -0
- package/dist/cjs/utils/date-format.js +282 -0
- package/dist/cjs/utils/date-format.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +37 -0
- package/dist/cjs/utils/index.js +12 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/intent.d.ts +12 -0
- package/dist/cjs/utils/intent.js +205 -0
- package/dist/cjs/utils/intent.js.map +1 -0
- package/dist/cjs/webbookEvent/index.d.ts +22 -0
- package/dist/cjs/webbookEvent/index.js +151 -0
- package/dist/cjs/webbookEvent/index.js.map +1 -0
- package/dist/esm/aws/index.d.ts +1 -0
- package/dist/esm/aws/services/AESEncryptionUsingKMS.js +20 -11
- package/dist/esm/aws/services/AESEncryptionUsingKMS.js.map +1 -1
- package/dist/esm/aws/services/AWSChimeMeeting.js +24 -15
- package/dist/esm/aws/services/AWSChimeMeeting.js.map +1 -1
- package/dist/esm/aws/services/AWSCodepipeline.js +34 -21
- package/dist/esm/aws/services/AWSCodepipeline.js.map +1 -1
- package/dist/esm/aws/services/AWSComprehend.js +12 -3
- package/dist/esm/aws/services/AWSComprehend.js.map +1 -1
- package/dist/esm/aws/services/AWSConnect.js +144 -135
- package/dist/esm/aws/services/AWSConnect.js.map +1 -1
- package/dist/esm/aws/services/AWSConnectCases.js +21 -12
- package/dist/esm/aws/services/AWSConnectCases.js.map +1 -1
- package/dist/esm/aws/services/AWSConnectParticipant.js +21 -12
- package/dist/esm/aws/services/AWSConnectParticipant.js.map +1 -1
- package/dist/esm/aws/services/AWSCustomerProfiles.js +15 -6
- package/dist/esm/aws/services/AWSCustomerProfiles.js.map +1 -1
- package/dist/esm/aws/services/AWSDynamoDb.js +18 -9
- package/dist/esm/aws/services/AWSDynamoDb.js.map +1 -1
- package/dist/esm/aws/services/AWSGateway.js +15 -6
- package/dist/esm/aws/services/AWSGateway.js.map +1 -1
- package/dist/esm/aws/services/AWSGatewayManagement.js +15 -6
- package/dist/esm/aws/services/AWSGatewayManagement.js.map +1 -1
- package/dist/esm/aws/services/AWSLambda.js +13 -4
- package/dist/esm/aws/services/AWSLambda.js.map +1 -1
- package/dist/esm/aws/services/AWSLexModel.js +72 -63
- package/dist/esm/aws/services/AWSLexModel.js.map +1 -1
- package/dist/esm/aws/services/AWSLexRuntime.js +15 -6
- package/dist/esm/aws/services/AWSLexRuntime.js.map +1 -1
- package/dist/esm/aws/services/AWSPinpoint.js +18 -9
- package/dist/esm/aws/services/AWSPinpoint.js.map +1 -1
- package/dist/esm/aws/services/AWSPinpointSMSVoice.js +27 -18
- package/dist/esm/aws/services/AWSPinpointSMSVoice.js.map +1 -1
- package/dist/esm/aws/services/AWSQConnect.js +27 -18
- package/dist/esm/aws/services/AWSQConnect.js.map +1 -1
- package/dist/esm/aws/services/AWSS3.js +37 -28
- package/dist/esm/aws/services/AWSS3.js.map +1 -1
- package/dist/esm/aws/services/AWSSES.js +13 -4
- package/dist/esm/aws/services/AWSSES.js.map +1 -1
- package/dist/esm/aws/services/AWSSNS.js +20 -11
- package/dist/esm/aws/services/AWSSNS.js.map +1 -1
- package/dist/esm/aws/services/AWSSSM.d.ts +1 -0
- package/dist/esm/aws/services/AWSSSM.js +50 -3
- package/dist/esm/aws/services/AWSSSM.js.map +1 -1
- package/dist/esm/aws/services/AWSSTS.js +12 -3
- package/dist/esm/aws/services/AWSSTS.js.map +1 -1
- package/dist/esm/aws/services/AWSTranslate.js +12 -3
- package/dist/esm/aws/services/AWSTranslate.js.map +1 -1
- package/dist/esm/communication/communicationService.js +38 -29
- package/dist/esm/communication/communicationService.js.map +1 -1
- package/dist/esm/communication/index.js +148 -125
- package/dist/esm/communication/index.js.map +1 -1
- package/dist/esm/hashing/idObfuscation.js +44 -29
- package/dist/esm/hashing/idObfuscation.js.map +1 -1
- package/dist/esm/hashing/index.js +168 -141
- package/dist/esm/hashing/index.js.map +1 -1
- package/dist/esm/repository/dynamodb.js +398 -369
- package/dist/esm/repository/dynamodb.js.map +1 -1
- package/dist/esm/shortner/index.js +31 -20
- package/dist/esm/shortner/index.js.map +1 -1
- package/dist/esm/utils/common.js +11 -2
- package/dist/esm/utils/common.js.map +1 -1
- package/dist/esm/utils/intent.js +33 -24
- package/dist/esm/utils/intent.js.map +1 -1
- package/dist/esm/webbookEvent/index.js +128 -105
- package/dist/esm/webbookEvent/index.js.map +1 -1
- package/package.json +5 -4
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare const Utils: {
|
|
2
|
+
Intents: {
|
|
3
|
+
getSessionAttributes: (intentRequest: any) => Promise<any>;
|
|
4
|
+
getSessionAttributeValue: (intentRequest: any, name: string) => Promise<any>;
|
|
5
|
+
getSlots: (intentRequest: any) => Promise<any>;
|
|
6
|
+
getSlotValue: (intentRequest: any, slotName: string) => Promise<any>;
|
|
7
|
+
getConfidenceScore: (intentRequest: any) => Promise<any>;
|
|
8
|
+
getDateSlotValue: (intentRequest: any, slotName: string) => Promise<string>;
|
|
9
|
+
getTimeSlotValue: (intentRequest: any, slotName: string) => Promise<string | null>;
|
|
10
|
+
getProposedSlot: (intentRequest: any) => Promise<any>;
|
|
11
|
+
getRequestAttributes: (intentRequest: any) => Promise<any>;
|
|
12
|
+
getOrginalSlotValue: (intentRequest: any, slotName: string) => Promise<any>;
|
|
13
|
+
};
|
|
14
|
+
Common: {
|
|
15
|
+
parseText: (stringWithPlaceholders: any, replacements: any) => Promise<any>;
|
|
16
|
+
maskData: (text: any) => any;
|
|
17
|
+
groupBy: (array: any, key: any) => any;
|
|
18
|
+
isInputDateTime: (inputDate: any) => boolean;
|
|
19
|
+
isInputDate: (inputDate: any) => boolean;
|
|
20
|
+
};
|
|
21
|
+
DateFormat: {
|
|
22
|
+
getMerchantOffset: (timeZone: string) => string;
|
|
23
|
+
getFromTo: (timeZone: string, durationType: string, from?: string | undefined, to?: string | undefined) => {
|
|
24
|
+
from: number;
|
|
25
|
+
to: number;
|
|
26
|
+
};
|
|
27
|
+
getEndTime: (timeZone?: string) => number;
|
|
28
|
+
getStartTime: (timeZone?: string) => number;
|
|
29
|
+
getMonthforTimeZone: (epochTime: number, type: "long" | "short" | "narrow" | "numeric" | "2-digit", timeZone?: string) => string;
|
|
30
|
+
getDayforTimeZone: (epochTime: number, timeZone?: string) => string;
|
|
31
|
+
getDateforTimeZone: (epochTime: number, timeZone?: string) => string;
|
|
32
|
+
getTimeforTimeZone: (epochTime: number, timeZone?: string) => string;
|
|
33
|
+
getTimeZoneOffset: (timeZone?: string) => number;
|
|
34
|
+
getWeekDayforTimeZone: (epochTime: number, timeZone?: string) => string;
|
|
35
|
+
formatUSDate: (date: Date) => string;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Utils = void 0;
|
|
4
|
+
const common_1 = require("./common");
|
|
5
|
+
const intent_1 = require("./intent");
|
|
6
|
+
const date_format_1 = require("./date-format");
|
|
7
|
+
exports.Utils = {
|
|
8
|
+
Intents: intent_1.Intents,
|
|
9
|
+
Common: common_1.Common,
|
|
10
|
+
DateFormat: date_format_1.DateFormat
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/index.ts"],"names":[],"mappings":";;;AACA,qCAAkC;AAClC,qCAAmC;AACnC,+CAA2C;AAE9B,QAAA,KAAK,GAAG;IACjB,OAAO,EAAP,gBAAO;IACP,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,wBAAU;CACb,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const Intents: {
|
|
2
|
+
getSessionAttributes: (intentRequest: any) => Promise<any>;
|
|
3
|
+
getSessionAttributeValue: (intentRequest: any, name: string) => Promise<any>;
|
|
4
|
+
getSlots: (intentRequest: any) => Promise<any>;
|
|
5
|
+
getSlotValue: (intentRequest: any, slotName: string) => Promise<any>;
|
|
6
|
+
getConfidenceScore: (intentRequest: any) => Promise<any>;
|
|
7
|
+
getDateSlotValue: (intentRequest: any, slotName: string) => Promise<string>;
|
|
8
|
+
getTimeSlotValue: (intentRequest: any, slotName: string) => Promise<string | null>;
|
|
9
|
+
getProposedSlot: (intentRequest: any) => Promise<any>;
|
|
10
|
+
getRequestAttributes: (intentRequest: any) => Promise<any>;
|
|
11
|
+
getOrginalSlotValue: (intentRequest: any, slotName: string) => Promise<any>;
|
|
12
|
+
};
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Intents = void 0;
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* @param intentRequest lex event Request
|
|
7
|
+
* @returns list of slots
|
|
8
|
+
*/
|
|
9
|
+
const getSlots = async (intentRequest) => {
|
|
10
|
+
try {
|
|
11
|
+
return intentRequest['sessionState']['intent']['slots'];
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
console.log("Error in Get Slots", error);
|
|
15
|
+
throw error;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @param intentRequest lex event request
|
|
21
|
+
* @param slotName slot name
|
|
22
|
+
* @returns slot resolved value
|
|
23
|
+
*/
|
|
24
|
+
const getSlotValue = async (intentRequest, slotName) => {
|
|
25
|
+
try {
|
|
26
|
+
let slots;
|
|
27
|
+
slots = await getSlots(intentRequest);
|
|
28
|
+
if (slots != null && slots[slotName] != null) {
|
|
29
|
+
return slots[slotName]['value']['interpretedValue'] || slots[slotName]['value']['resolvedValues'][0] || null;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
console.log("Error in Get Slot Value", error);
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
*
|
|
42
|
+
* @param intentRequest lex event request
|
|
43
|
+
* @param slotName slot name
|
|
44
|
+
* @returns slot original value
|
|
45
|
+
*/
|
|
46
|
+
const getOrginalSlotValue = async (intentRequest, slotName) => {
|
|
47
|
+
try {
|
|
48
|
+
let slots;
|
|
49
|
+
slots = await getSlots(intentRequest);
|
|
50
|
+
if (slots != null && slots[slotName] != null) {
|
|
51
|
+
return slots[slotName]['value']['originalValue'] || slots[slotName]['value']['originalValue'] || null;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.log("Error in Get Slot Value", error);
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
*
|
|
64
|
+
* @param intentRequest lex event
|
|
65
|
+
* @returns session attributes object
|
|
66
|
+
*/
|
|
67
|
+
const getSessionAttributes = async (intentRequest) => {
|
|
68
|
+
try {
|
|
69
|
+
if (intentRequest['sessionState']['sessionAttributes'] != null) {
|
|
70
|
+
return intentRequest['sessionState']['sessionAttributes'];
|
|
71
|
+
}
|
|
72
|
+
return {};
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.log("Error in Get Session Attributes", error);
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
*
|
|
81
|
+
* @param intentRequest lex event
|
|
82
|
+
* @param name attribute name
|
|
83
|
+
* @returns session attribute value
|
|
84
|
+
*/
|
|
85
|
+
const getSessionAttributeValue = async (intentRequest, name) => {
|
|
86
|
+
try {
|
|
87
|
+
let sessionState;
|
|
88
|
+
sessionState = intentRequest['sessionState'];
|
|
89
|
+
if (sessionState['sessionAttributes'] != null) {
|
|
90
|
+
let sessionAttributeValue = sessionState['sessionAttributes'][name];
|
|
91
|
+
if (sessionAttributeValue)
|
|
92
|
+
return sessionAttributeValue;
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.log("Error in Get Session Attribute Value", error);
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
*
|
|
104
|
+
* @param intentRequest
|
|
105
|
+
* @param slotName
|
|
106
|
+
* @returns
|
|
107
|
+
*/
|
|
108
|
+
const getDateSlotValue = async (intentRequest, slotName) => {
|
|
109
|
+
try {
|
|
110
|
+
let selectDate = null, date = await getSlotValue(intentRequest, slotName);
|
|
111
|
+
let month = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
|
|
112
|
+
try {
|
|
113
|
+
selectDate = month[date.split('-')[1] - 1] + ' ' + date.split('-')[2];
|
|
114
|
+
return selectDate;
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
return '';
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
console.log("Error in Get Date Slot Value", error);
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
*
|
|
127
|
+
* @param intentRequest
|
|
128
|
+
* @param slotName
|
|
129
|
+
* @returns
|
|
130
|
+
*/
|
|
131
|
+
const getTimeSlotValue = async (intentRequest, slotName) => {
|
|
132
|
+
try {
|
|
133
|
+
let selectTime = null, time = await getSlotValue(intentRequest, slotName);
|
|
134
|
+
try {
|
|
135
|
+
if (Number(time.split(':')[0]) < 12) {
|
|
136
|
+
selectTime = time + ' AM';
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
selectTime = Number(time.split(':')[0]) - 12 + ':' + time.split(':')[1] + ' PM';
|
|
140
|
+
}
|
|
141
|
+
return selectTime !== null ? selectTime : null;
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
return '';
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
console.log("Error in Get Date Slot Value", error);
|
|
149
|
+
throw error;
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
*
|
|
154
|
+
* @param intentRequest
|
|
155
|
+
* @returns
|
|
156
|
+
*/
|
|
157
|
+
const getProposedSlot = async (intentRequest) => {
|
|
158
|
+
try {
|
|
159
|
+
if (intentRequest.proposedNextState) {
|
|
160
|
+
return intentRequest.proposedNextState.dialogAction.slotToElicit;
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
console.log("Error in Get Proposed Slot", error);
|
|
168
|
+
throw error;
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
*
|
|
173
|
+
* @param intentRequest
|
|
174
|
+
* @returns
|
|
175
|
+
*/
|
|
176
|
+
const getRequestAttributes = async (intentRequest) => {
|
|
177
|
+
try {
|
|
178
|
+
if (intentRequest.requestAttributes) {
|
|
179
|
+
return intentRequest.requestAttributes;
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
console.log("Error in Get Requested Attributes", error);
|
|
187
|
+
throw error;
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
*
|
|
192
|
+
* @param intentRequest
|
|
193
|
+
* @returns
|
|
194
|
+
*/
|
|
195
|
+
const getConfidenceScore = async (intentRequest) => {
|
|
196
|
+
try {
|
|
197
|
+
return intentRequest['interpretations'][0]['nluConfidence'];
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
console.log("Error in Get Confidence Score", error);
|
|
201
|
+
throw error;
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
exports.Intents = { getSessionAttributes, getSessionAttributeValue, getSlots, getSlotValue, getConfidenceScore, getDateSlotValue, getTimeSlotValue, getProposedSlot, getRequestAttributes, getOrginalSlotValue };
|
|
205
|
+
//# sourceMappingURL=intent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../utils/intent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AuthType, ContentType, HttpMethod } from "../enum";
|
|
2
|
+
export default class WebHookEvent {
|
|
3
|
+
constructor();
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* @param data
|
|
7
|
+
* @param url
|
|
8
|
+
* @param httpMethod
|
|
9
|
+
* @param contentType
|
|
10
|
+
* @param authType
|
|
11
|
+
* @param headers
|
|
12
|
+
* @param authValue
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
processResponse(data: object | Array<any>, url: string, httpMethod: HttpMethod, contentType: ContentType, authType: AuthType, headers: string, authValue: string): Promise<import("axios").AxiosResponse<any, any> | undefined>;
|
|
16
|
+
private AttachHeader;
|
|
17
|
+
private AttachClientHeaders;
|
|
18
|
+
private GetApiKey;
|
|
19
|
+
private GetAuthInfo;
|
|
20
|
+
private GetBearerToken;
|
|
21
|
+
private GetContentType;
|
|
22
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
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
|
+
const enum_1 = require("../enum");
|
|
8
|
+
class WebHookEvent {
|
|
9
|
+
constructor() {
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param data
|
|
14
|
+
* @param url
|
|
15
|
+
* @param httpMethod
|
|
16
|
+
* @param contentType
|
|
17
|
+
* @param authType
|
|
18
|
+
* @param headers
|
|
19
|
+
* @param authValue
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
async processResponse(data, url, httpMethod, contentType, authType, headers, authValue) {
|
|
23
|
+
try {
|
|
24
|
+
let strContentType = await this.GetContentType(contentType);
|
|
25
|
+
let config = {
|
|
26
|
+
headers: { "Content-Type": strContentType }
|
|
27
|
+
};
|
|
28
|
+
config = await this.AttachHeader(headers, authType, authValue, config);
|
|
29
|
+
let result;
|
|
30
|
+
if (httpMethod == enum_1.HttpMethod.HttpGet) {
|
|
31
|
+
result = await axios_1.default.get(url, config);
|
|
32
|
+
}
|
|
33
|
+
else if (httpMethod == enum_1.HttpMethod.HttpPost) {
|
|
34
|
+
result = await axios_1.default.post(url, data, config);
|
|
35
|
+
}
|
|
36
|
+
else if (httpMethod == enum_1.HttpMethod.HttpPut) {
|
|
37
|
+
result = await axios_1.default.put(url, data, config);
|
|
38
|
+
}
|
|
39
|
+
else if (httpMethod == enum_1.HttpMethod.HttpDelete) {
|
|
40
|
+
result = await axios_1.default.delete(url, config);
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error("Error in Process the Webhook Event");
|
|
46
|
+
console.error(error);
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async AttachHeader(headers, authType, authValue, config) {
|
|
51
|
+
{
|
|
52
|
+
try {
|
|
53
|
+
config = await this.AttachClientHeaders(headers, config);
|
|
54
|
+
switch (authType) {
|
|
55
|
+
case enum_1.AuthType.NoAuth:
|
|
56
|
+
break;
|
|
57
|
+
case enum_1.AuthType.ApiKey:
|
|
58
|
+
var apikeyInfo = await this.GetApiKey(authType, authValue);
|
|
59
|
+
config.headers[apikeyInfo === null || apikeyInfo === void 0 ? void 0 : apikeyInfo.Key] = apikeyInfo === null || apikeyInfo === void 0 ? void 0 : apikeyInfo.Value;
|
|
60
|
+
break;
|
|
61
|
+
case enum_1.AuthType.BearerToken:
|
|
62
|
+
var token = await this.GetBearerToken(authType, authValue);
|
|
63
|
+
config.headers.Authorization = `Bearer ${token}`;
|
|
64
|
+
break;
|
|
65
|
+
case enum_1.AuthType.BasicAuth:
|
|
66
|
+
var authInfo = await this.GetAuthInfo(authType, authValue);
|
|
67
|
+
config.auth.username = authInfo.userName;
|
|
68
|
+
config.auth.password = authInfo.password;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
return config;
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
console.error("Error in Attach the Header");
|
|
75
|
+
console.error(error);
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async AttachClientHeaders(headers, config) {
|
|
81
|
+
try {
|
|
82
|
+
let defaultHeader = headers && headers != undefined && headers != null ? JSON.parse(headers) : null;
|
|
83
|
+
if (defaultHeader && defaultHeader.length) {
|
|
84
|
+
defaultHeader.forEach((header) => {
|
|
85
|
+
config.headers[header === null || header === void 0 ? void 0 : header.Key] = header === null || header === void 0 ? void 0 : header.Value;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return config;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
console.error("Error in Attaching the Client Header for Webhook Event");
|
|
92
|
+
console.error(error);
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
async GetApiKey(authType, authValue) {
|
|
97
|
+
var provisionList = authValue ? JSON.parse(authValue) : null;
|
|
98
|
+
if (provisionList != null) {
|
|
99
|
+
let Key = provisionList.find((x) => x.Key == 'AuthApiHeader').Value;
|
|
100
|
+
let Value = provisionList.find((x) => x.Key == 'AuthApiValue').Value;
|
|
101
|
+
return { Key, Value };
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
async GetAuthInfo(authType, authValue) {
|
|
106
|
+
var _a, _b;
|
|
107
|
+
let data = Object.assign({});
|
|
108
|
+
var provisionList = authValue ? JSON.parse(authValue) : null;
|
|
109
|
+
if (provisionList != null) {
|
|
110
|
+
let userName = (_a = provisionList.find((x) => x.Key == 'AuthBasicUsername')) === null || _a === void 0 ? void 0 : _a.Value;
|
|
111
|
+
let password = (_b = provisionList.find((x) => x.Key == 'AuthBasicPassword')) === null || _b === void 0 ? void 0 : _b.Value;
|
|
112
|
+
data = { userName, password };
|
|
113
|
+
}
|
|
114
|
+
return data;
|
|
115
|
+
}
|
|
116
|
+
async GetBearerToken(authType, authValue) {
|
|
117
|
+
var _a, _b, _c, _d;
|
|
118
|
+
let token = "";
|
|
119
|
+
var provisionList = authValue ? JSON.parse(authValue) : null;
|
|
120
|
+
if (provisionList != null) {
|
|
121
|
+
let userName = (_a = provisionList.find((x) => x.Key == 'AuthBearerUsername')) === null || _a === void 0 ? void 0 : _a.Value;
|
|
122
|
+
let password = (_b = provisionList.find((x) => x.Key == 'AuthBearerPassword')) === null || _b === void 0 ? void 0 : _b.Value;
|
|
123
|
+
let payload = { userName, username: userName, password };
|
|
124
|
+
let strContentType = await this.GetContentType(enum_1.ContentType.applicationJson);
|
|
125
|
+
let url = (_c = provisionList.find((x) => x.Key == 'AuthBearerURL')) === null || _c === void 0 ? void 0 : _c.Value;
|
|
126
|
+
let config = {
|
|
127
|
+
headers: {
|
|
128
|
+
"Content-Type": strContentType
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
let response = await axios_1.default.post(url, payload, config);
|
|
132
|
+
if (response.status == 200) {
|
|
133
|
+
let tokenName = (_d = provisionList.find((x) => x.Key == 'AuthBearerToken')) === null || _d === void 0 ? void 0 : _d.Value;
|
|
134
|
+
let provisionData = response.data;
|
|
135
|
+
token = provisionData[tokenName];
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return token;
|
|
139
|
+
}
|
|
140
|
+
async GetContentType(contentType) {
|
|
141
|
+
let responeValue = "";
|
|
142
|
+
switch (contentType) {
|
|
143
|
+
case enum_1.ContentType.applicationJson:
|
|
144
|
+
responeValue = "application/json";
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
return responeValue;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.default = WebHookEvent;
|
|
151
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../webbookEvent/index.ts"],"names":[],"mappings":";;;;;AAAA,kDAAkD;AAClD,kCAA4D;AAE5D,MAAqB,YAAY;IAC7B;IAEA,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,eAAe,CAAE,IAAyB,EAAE,GAAW,EAAE,UAAsB,EAAE,WAAwB,EAAE,QAAkB,EAAE,OAAe,EAAE,SAAiB;QAC1K,IAAI;YAEA,IAAI,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAE5D,IAAI,MAAM,GAA4B;gBAClC,OAAO,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE;aAC9C,CAAC;YAEF,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACvE,IAAI,MAAM,CAAC;YAEX,IAAI,UAAU,IAAI,iBAAU,CAAC,OAAO,EAAE;gBAClC,MAAM,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;aACzC;iBACI,IAAI,UAAU,IAAI,iBAAU,CAAC,QAAQ,EAAE;gBACxC,MAAM,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;aAChD;iBACI,IAAI,UAAU,IAAI,iBAAU,CAAC,OAAO,EAAE;gBACvC,MAAM,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;aAC/C;iBACI,IAAI,UAAU,IAAI,iBAAU,CAAC,UAAU,EAAE;gBAC1C,MAAM,GAAG,MAAM,eAAK,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;aAC5C;YAED,OAAO,MAAM,CAAC;SACjB;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,KAAK,CAAC;SACf;IACL,CAAC;IAEO,KAAK,CAAC,YAAY,CAAE,OAAe,EAAE,QAAkB,EAAE,SAAiB,EAAE,MAA0B;QAC1G;YACI,IAAI;gBACA,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAEzD,QAAQ,QAAQ,EAAE;oBACd,KAAK,eAAQ,CAAC,MAAM;wBAChB,MAAM;oBACV,KAAK,eAAQ,CAAC,MAAM;wBAChB,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;wBAC3D,MAAM,CAAC,OAAQ,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC;wBACrD,MAAM;oBACV,KAAK,eAAQ,CAAC,WAAW;wBACrB,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;wBAC3D,MAAM,CAAC,OAAQ,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;wBAClD,MAAM;oBACV,KAAK,eAAQ,CAAC,SAAS;wBACnB,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;wBAC3D,MAAM,CAAC,IAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;wBAC1C,MAAM,CAAC,IAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;wBAC1C,MAAM;iBACb;gBACD,OAAO,MAAM,CAAC;aACjB;YACD,OAAO,KAAK,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrB,MAAM,KAAK,CAAC;aACf;SACJ;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAE,OAAe,EAAE,MAA0B;QAC1E,IAAI;YACA,IAAI,aAAa,GAAG,OAAO,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpG,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,EAAE;gBACvC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,EAAE;oBAClC,MAAM,CAAC,OAAQ,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;gBACjD,CAAC,CAAC,CAAC;aACN;YACD,OAAO,MAAM,CAAC;SACjB;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACxE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,KAAK,CAAC;SACf;IAEL,CAAC;IAEO,KAAK,CAAC,SAAS,CAAE,QAAkB,EAAE,SAAiB;QAC1D,IAAI,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7D,IAAI,aAAa,IAAI,IAAI,EAAE;YACvB,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC,KAAK,CAAC;YACzE,IAAI,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC,KAAK,CAAC;YAC1E,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;SACzB;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAE,QAAkB,EAAE,SAAiB;;QAC5D,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7D,IAAI,aAAa,IAAI,IAAI,EAAE;YACvB,IAAI,QAAQ,GAAG,MAAA,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,mBAAmB,CAAC,0CAAE,KAAK,CAAC;YACnF,IAAI,QAAQ,GAAG,MAAA,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,mBAAmB,CAAC,0CAAE,KAAK,CAAC;YACnF,IAAI,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAE,QAAkB,EAAE,SAAiB;;QAC/D,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,IAAI,aAAa,IAAI,IAAI,EAAE;YACvB,IAAI,QAAQ,GAAG,MAAA,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,oBAAoB,CAAC,0CAAE,KAAK,CAAC;YACpF,IAAI,QAAQ,GAAG,MAAA,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,oBAAoB,CAAC,0CAAE,KAAK,CAAC;YAEpF,IAAI,OAAO,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAExD,IAAI,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAW,CAAC,eAAe,CAAC,CAAC;YAC5E,IAAI,GAAG,GAAG,MAAA,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,eAAe,CAAC,0CAAE,KAAK,CAAC;YAC1E,IAAI,MAAM,GAA4B;gBAClC,OAAO,EAAE;oBACL,cAAc,EAAE,cAAc;iBACjC;aACJ,CAAA;YACD,IAAI,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACtD,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;gBACxB,IAAI,SAAS,GAAG,MAAA,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,0CAAE,KAAK,CAAC;gBAClF,IAAI,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAClC,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;aACpC;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAE,WAAwB;QAClD,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,QAAQ,WAAW,EAAE;YACjB,KAAK,kBAAW,CAAC,eAAe;gBAC5B,YAAY,GAAG,kBAAkB,CAAC;gBAClC,MAAM;SACb;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AAhKD,+BAgKC"}
|
package/dist/esm/aws/index.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
1
10
|
import { GenerateDataKeyCommand, DecryptCommand, KMSClient } from "@aws-sdk/client-kms"; // ES Modules import
|
|
2
11
|
const crypto = require('crypto');
|
|
3
12
|
const awsRegion = process.env.AWS_DEFAULT_REGION || 'us-east-1';
|
|
@@ -10,25 +19,25 @@ const algorithm = 'AES-256-CBC';
|
|
|
10
19
|
* @param keyInfo
|
|
11
20
|
* @returns
|
|
12
21
|
*/
|
|
13
|
-
const encrypt =
|
|
22
|
+
const encrypt = (initVector, plainText, keyInfo) => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
23
|
try {
|
|
15
24
|
const masterKey = extractMasterKey(keyInfo, 'keyid');
|
|
16
25
|
const params = {
|
|
17
26
|
KeyId: masterKey,
|
|
18
27
|
KeySpec: 'AES_256' // Specifies the type of data key to return.
|
|
19
28
|
};
|
|
20
|
-
var command =
|
|
21
|
-
const dataKey =
|
|
29
|
+
var command = yield new GenerateDataKeyCommand(params);
|
|
30
|
+
const dataKey = yield client.send(command);
|
|
22
31
|
let buff = '0x' + dataKey.CiphertextBlob.length.toString(16);
|
|
23
32
|
// Copy the length of the CiphertextBlob as first byte and concatenate the CiphertextBlob to it
|
|
24
33
|
var length = Buffer.from([buff]);
|
|
25
34
|
var str = Buffer.concat([length, dataKey.CiphertextBlob]);
|
|
26
35
|
// Get a random IV
|
|
27
|
-
const iv =
|
|
36
|
+
const iv = yield crypto.randomBytes(16);
|
|
28
37
|
// Concatenate the iv to the buffer
|
|
29
38
|
str = Buffer.concat([str, iv]);
|
|
30
39
|
// Create aes encryptor with KMS plain key
|
|
31
|
-
var encryptor =
|
|
40
|
+
var encryptor = yield crypto.createCipheriv(algorithm, dataKey.Plaintext, iv);
|
|
32
41
|
// Encrypt the data
|
|
33
42
|
encryptor.write(plainText);
|
|
34
43
|
encryptor.end();
|
|
@@ -40,13 +49,13 @@ const encrypt = async (initVector, plainText, keyInfo) => {
|
|
|
40
49
|
console.log(`error occured while encrypting ${plainText}`);
|
|
41
50
|
console.log(error);
|
|
42
51
|
}
|
|
43
|
-
};
|
|
52
|
+
});
|
|
44
53
|
/**
|
|
45
54
|
*
|
|
46
55
|
* @param text
|
|
47
56
|
* @returns
|
|
48
57
|
*/
|
|
49
|
-
const decrypt =
|
|
58
|
+
const decrypt = (text) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
59
|
try {
|
|
51
60
|
// Convert the base64 string to buffer
|
|
52
61
|
var buf = Buffer.from(text, 'base64');
|
|
@@ -60,10 +69,10 @@ const decrypt = async (text) => {
|
|
|
60
69
|
CiphertextBlob: cipherBlob
|
|
61
70
|
};
|
|
62
71
|
// Decrypt the CiphertextBlob and get the plaintext key
|
|
63
|
-
var command =
|
|
64
|
-
const dataKey =
|
|
72
|
+
var command = yield new DecryptCommand(params);
|
|
73
|
+
const dataKey = yield client.send(command);
|
|
65
74
|
// Create aes decryptor and decrypt the text
|
|
66
|
-
var decryptor =
|
|
75
|
+
var decryptor = yield crypto.createDecipheriv(algorithm, dataKey.Plaintext, iv);
|
|
67
76
|
decryptor.write(encText);
|
|
68
77
|
decryptor.end();
|
|
69
78
|
return decryptor.read().toString();
|
|
@@ -72,7 +81,7 @@ const decrypt = async (text) => {
|
|
|
72
81
|
console.log(`error occured while decrypting ${text}`);
|
|
73
82
|
console.log(error);
|
|
74
83
|
}
|
|
75
|
-
};
|
|
84
|
+
});
|
|
76
85
|
/**
|
|
77
86
|
*
|
|
78
87
|
* @param keyInfo
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AESEncryptionUsingKMS.js","sourceRoot":"","sources":["../../../../aws/services/AESEncryptionUsingKMS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,SAAS,EAAoD,MAAM,qBAAqB,CAAC,CAAC,oBAAoB;AAE/J,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,WAAW,CAAC;AAChE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AACpD,MAAM,SAAS,GAAG,aAAa,CAAC;AAEhC;;;;;;GAMG;AACH,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"AESEncryptionUsingKMS.js","sourceRoot":"","sources":["../../../../aws/services/AESEncryptionUsingKMS.ts"],"names":[],"mappings":"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"}
|