@botonic/shared 2.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +240 -0
- package/README.md +9 -0
- package/package.json +16 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +2 -0
- package/src/index.js.map +1 -0
- package/src/lib/ai-agents-types.d.ts +69 -0
- package/src/lib/ai-agents-types.js +2 -0
- package/src/lib/ai-agents-types.js.map +1 -0
- package/src/lib/domain/botonic/exceptions.d.ts +7 -0
- package/src/lib/domain/botonic/exceptions.js +12 -0
- package/src/lib/domain/botonic/exceptions.js.map +1 -0
- package/src/lib/domain/botonic/index.d.ts +9 -0
- package/src/lib/domain/botonic/index.js +10 -0
- package/src/lib/domain/botonic/index.js.map +1 -0
- package/src/lib/domain/botonic/inputs.d.ts +48 -0
- package/src/lib/domain/botonic/inputs.js +60 -0
- package/src/lib/domain/botonic/inputs.js.map +1 -0
- package/src/lib/domain/botonic/legacy/index.d.ts +2 -0
- package/src/lib/domain/botonic/legacy/index.js +3 -0
- package/src/lib/domain/botonic/legacy/index.js.map +1 -0
- package/src/lib/domain/botonic/legacy/input-adapter.d.ts +25 -0
- package/src/lib/domain/botonic/legacy/input-adapter.js +203 -0
- package/src/lib/domain/botonic/legacy/input-adapter.js.map +1 -0
- package/src/lib/domain/botonic/legacy/types.d.ts +32 -0
- package/src/lib/domain/botonic/legacy/types.js +2 -0
- package/src/lib/domain/botonic/legacy/types.js.map +1 -0
- package/src/lib/domain/botonic/metadata.d.ts +36 -0
- package/src/lib/domain/botonic/metadata.js +2 -0
- package/src/lib/domain/botonic/metadata.js.map +1 -0
- package/src/lib/domain/botonic/outputs.d.ts +101 -0
- package/src/lib/domain/botonic/outputs.js +119 -0
- package/src/lib/domain/botonic/outputs.js.map +1 -0
- package/src/lib/domain/botonic/types.d.ts +109 -0
- package/src/lib/domain/botonic/types.js +119 -0
- package/src/lib/domain/botonic/types.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/index.d.ts +8 -0
- package/src/lib/domain/botonic/whatsapp-outputs/index.js +9 -0
- package/src/lib/domain/botonic/whatsapp-outputs/index.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-button-list/index.d.ts +17 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-button-list/index.js +10 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-button-list/index.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-button-list/types.d.ts +9 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-button-list/types.js +2 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-button-list/types.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-catalog/index.d.ts +12 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-catalog/index.js +8 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-catalog/index.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-cta-url-button/index.d.ts +30 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-cta-url-button/index.js +21 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-cta-url-button/index.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-media-carousel/index.d.ts +15 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-media-carousel/index.js +9 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-media-carousel/index.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-media-carousel/types.d.ts +15 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-media-carousel/types.js +2 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-media-carousel/types.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-product/index.d.ts +14 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-product/index.js +9 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-product/index.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-product-carousel/index.d.ts +19 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-product-carousel/index.js +9 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-product-carousel/index.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-product-list/index.d.ts +17 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-product-list/index.js +12 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-product-list/index.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-product-list/types.d.ts +13 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-product-list/types.js +7 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-product-list/types.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-template/index.d.ts +16 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-template/index.js +12 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-template/index.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-template/types.d.ts +104 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-template/types.js +106 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-template/types.js.map +1 -0
- package/src/lib/domain/index.d.ts +3 -0
- package/src/lib/domain/index.js +7 -0
- package/src/lib/domain/index.js.map +1 -0
- package/src/lib/domain/server/bot-server-message.d.ts +65 -0
- package/src/lib/domain/server/bot-server-message.js +106 -0
- package/src/lib/domain/server/bot-server-message.js.map +1 -0
- package/src/lib/domain/server/botonic-context/botonic-context-input.d.ts +99 -0
- package/src/lib/domain/server/botonic-context/botonic-context-input.js +124 -0
- package/src/lib/domain/server/botonic-context/botonic-context-input.js.map +1 -0
- package/src/lib/domain/server/botonic-context/botonic-context-session.d.ts +146 -0
- package/src/lib/domain/server/botonic-context/botonic-context-session.js +209 -0
- package/src/lib/domain/server/botonic-context/botonic-context-session.js.map +1 -0
- package/src/lib/domain/server/botonic-context/botonic-context.d.ts +56 -0
- package/src/lib/domain/server/botonic-context/botonic-context.js +23 -0
- package/src/lib/domain/server/botonic-context/botonic-context.js.map +1 -0
- package/src/lib/domain/server/botonic-context/factory.d.ts +23 -0
- package/src/lib/domain/server/botonic-context/factory.js +31 -0
- package/src/lib/domain/server/botonic-context/factory.js.map +1 -0
- package/src/lib/domain/server/botonic-context/index.d.ts +5 -0
- package/src/lib/domain/server/botonic-context/index.js +6 -0
- package/src/lib/domain/server/botonic-context/index.js.map +1 -0
- package/src/lib/domain/server/botonic-context/types.d.ts +20 -0
- package/src/lib/domain/server/botonic-context/types.js +6 -0
- package/src/lib/domain/server/botonic-context/types.js.map +1 -0
- package/src/lib/domain/server/factory.d.ts +166 -0
- package/src/lib/domain/server/factory.js +166 -0
- package/src/lib/domain/server/factory.js.map +1 -0
- package/src/lib/domain/server/index.d.ts +3 -0
- package/src/lib/domain/server/index.js +4 -0
- package/src/lib/domain/server/index.js.map +1 -0
- package/src/lib/domain/utils.d.ts +5 -0
- package/src/lib/domain/utils.js +13 -0
- package/src/lib/domain/utils.js.map +1 -0
- package/src/lib/domain/webchat/factory.d.ts +81 -0
- package/src/lib/domain/webchat/factory.js +73 -0
- package/src/lib/domain/webchat/factory.js.map +1 -0
- package/src/lib/domain/webchat/index.d.ts +4 -0
- package/src/lib/domain/webchat/index.js +5 -0
- package/src/lib/domain/webchat/index.js.map +1 -0
- package/src/lib/domain/webchat/realtime/factory.d.ts +52 -0
- package/src/lib/domain/webchat/realtime/factory.js +66 -0
- package/src/lib/domain/webchat/realtime/factory.js.map +1 -0
- package/src/lib/domain/webchat/realtime/index.d.ts +2 -0
- package/src/lib/domain/webchat/realtime/index.js +3 -0
- package/src/lib/domain/webchat/realtime/index.js.map +1 -0
- package/src/lib/domain/webchat/realtime/realtime-response-message.d.ts +47 -0
- package/src/lib/domain/webchat/realtime/realtime-response-message.js +68 -0
- package/src/lib/domain/webchat/realtime/realtime-response-message.js.map +1 -0
- package/src/lib/domain/webchat/user/factory.d.ts +52 -0
- package/src/lib/domain/webchat/user/factory.js +59 -0
- package/src/lib/domain/webchat/user/factory.js.map +1 -0
- package/src/lib/domain/webchat/user/index.d.ts +2 -0
- package/src/lib/domain/webchat/user/index.js +3 -0
- package/src/lib/domain/webchat/user/index.js.map +1 -0
- package/src/lib/domain/webchat/user/user-input-message.d.ts +34 -0
- package/src/lib/domain/webchat/user/user-input-message.js +59 -0
- package/src/lib/domain/webchat/user/user-input-message.js.map +1 -0
- package/src/lib/domain/webchat/webchat-message.d.ts +55 -0
- package/src/lib/domain/webchat/webchat-message.js +69 -0
- package/src/lib/domain/webchat/webchat-message.js.map +1 -0
- package/src/lib/hubtype-analytics-types.d.ts +227 -0
- package/src/lib/hubtype-analytics-types.js +41 -0
- package/src/lib/hubtype-analytics-types.js.map +1 -0
- package/src/lib/index.d.ts +6 -0
- package/src/lib/index.js +13 -0
- package/src/lib/index.js.map +1 -0
- package/src/lib/services/webchat-api.d.ts +16 -0
- package/src/lib/services/webchat-api.js +2 -0
- package/src/lib/services/webchat-api.js.map +1 -0
- package/src/lib/shared-types.d.ts +28 -0
- package/src/lib/shared-types.js +32 -0
- package/src/lib/shared-types.js.map +1 -0
- package/src/lib/utils/index.d.ts +1 -0
- package/src/lib/utils/index.js +2 -0
- package/src/lib/utils/index.js.map +1 -0
- package/src/lib/utils/logging.d.ts +1 -0
- package/src/lib/utils/logging.js +22 -0
- package/src/lib/utils/logging.js.map +1 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter: convert RequestInputLegacy (ImpMsg flat) → RequestInputV2 (v2 BotonicInput).
|
|
3
|
+
* normalizeToV2Input is used inside CoreBot.input(); not exported to handlers.
|
|
4
|
+
* Constructs inputs using BotonicInput* and *Data classes where supported.
|
|
5
|
+
* Aligns with RequestInputLegacy (legacy) vs RequestInputV2 (v2) format: flat fields → nested data,
|
|
6
|
+
* message_id → provider_id, attachment_data → attachment_content, empty strings → null where specified.
|
|
7
|
+
*/
|
|
8
|
+
import { InputType } from '../../server/botonic-context/botonic-context-input';
|
|
9
|
+
import { BotonicInputAudio, BotonicInputContact, BotonicInputDocument, BotonicInputImage, BotonicInputLocation, BotonicInputPostback, BotonicInputText, BotonicInputTypingEvent, BotonicInputVideo, } from '../inputs';
|
|
10
|
+
import { BotonicAudioData, BotonicContactData, BotonicCustomData, BotonicDocumentData, BotonicImageData, BotonicLocationData, BotonicPostbackData, BotonicTextData, BotonicTypingEventData, BotonicVideoData, MessageType, TypingEventName, } from '../types';
|
|
11
|
+
function buildBase(legacy) {
|
|
12
|
+
var _a, _b, _c, _d;
|
|
13
|
+
return Object.assign(Object.assign(Object.assign({ message_id: (_a = legacy.message_id) !== null && _a !== void 0 ? _a : '', conversation_id: (_b = legacy.conversation_id) !== null && _b !== void 0 ? _b : '', bot_interaction_id: (_c = legacy.bot_interaction_id) !== null && _c !== void 0 ? _c : '', provider_id: (_d = legacy.message_id) !== null && _d !== void 0 ? _d : '' }, (legacy.sent_by != null && { sent_by: legacy.sent_by })), (legacy.context && { context: legacy.context })), (legacy.nluResolution && { nluResolution: legacy.nluResolution }));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Returns true if the payload looks like InputLegacy (flat data string, payload at top level)
|
|
17
|
+
* rather than Input (nested data object).
|
|
18
|
+
*/
|
|
19
|
+
export function isInputLegacy(payload) {
|
|
20
|
+
if (!payload || typeof payload !== 'object' || Array.isArray(payload)) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
const p = payload;
|
|
24
|
+
if (typeof p.type !== 'string')
|
|
25
|
+
return true;
|
|
26
|
+
// Input has data as object; InputLegacy has data as string or undefined
|
|
27
|
+
if (p.data !== undefined && typeof p.data === 'object' && p.data !== null) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
// Legacy → Input conversion helpers (one per type)
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
function legacyTextToInput(base, legacy) {
|
|
36
|
+
var _a;
|
|
37
|
+
const text = (_a = legacy.text) !== null && _a !== void 0 ? _a : legacy.data;
|
|
38
|
+
const payload = legacy.payload;
|
|
39
|
+
const textData = new BotonicTextData(typeof text === 'string' ? text : String(text !== null && text !== void 0 ? text : ''), payload != null ? String(payload) : undefined);
|
|
40
|
+
const input = new BotonicInputText(textData);
|
|
41
|
+
return Object.assign(Object.assign({}, base), { type: input.type, data: input.data });
|
|
42
|
+
}
|
|
43
|
+
function legacyPostbackToInput(base, legacy) {
|
|
44
|
+
const payload = legacy.payload;
|
|
45
|
+
const referral = legacy.referral;
|
|
46
|
+
// Per spec: null payload in legacy becomes empty string in v2.
|
|
47
|
+
const payloadStr = payload != null ? String(payload) : '';
|
|
48
|
+
const postbackData = new BotonicPostbackData(payloadStr, referral != null ? String(referral) : undefined);
|
|
49
|
+
const input = new BotonicInputPostback(postbackData);
|
|
50
|
+
return Object.assign(Object.assign({}, base), { type: input.type, data: input.data });
|
|
51
|
+
}
|
|
52
|
+
function legacyImageToInput(base, legacy) {
|
|
53
|
+
return legacyAttachmentToInput(base, InputType.Image, legacy);
|
|
54
|
+
}
|
|
55
|
+
function legacyAudioToInput(base, legacy) {
|
|
56
|
+
return legacyAttachmentToInput(base, InputType.Audio, legacy);
|
|
57
|
+
}
|
|
58
|
+
function legacyVideoToInput(base, legacy) {
|
|
59
|
+
return legacyAttachmentToInput(base, InputType.Video, legacy);
|
|
60
|
+
}
|
|
61
|
+
function legacyDocumentToInput(base, legacy) {
|
|
62
|
+
return legacyAttachmentToInput(base, InputType.Document, legacy);
|
|
63
|
+
}
|
|
64
|
+
const ATTACHMENT_LEGACY_TO_INPUT = {
|
|
65
|
+
[InputType.Image]: { InputCls: BotonicInputImage, DataCls: BotonicImageData },
|
|
66
|
+
[InputType.Audio]: { InputCls: BotonicInputAudio, DataCls: BotonicAudioData },
|
|
67
|
+
[InputType.Video]: { InputCls: BotonicInputVideo, DataCls: BotonicVideoData },
|
|
68
|
+
[InputType.Document]: {
|
|
69
|
+
InputCls: BotonicInputDocument,
|
|
70
|
+
DataCls: BotonicDocumentData,
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Media types: legacy attachment_url / data (URL string) and attachment_data (base64) map to
|
|
75
|
+
* v2 attachment_url / attachment_content; attachment_data renamed to attachment_content. Caption optional.
|
|
76
|
+
*/
|
|
77
|
+
function legacyAttachmentToInput(base, legacyType, legacy) {
|
|
78
|
+
var _a;
|
|
79
|
+
const attachmentUrl = (_a = legacy.attachment_url) !== null && _a !== void 0 ? _a : (typeof legacy.data === 'string' && !legacy.attachment_data
|
|
80
|
+
? legacy.data
|
|
81
|
+
: undefined);
|
|
82
|
+
const attachmentContent = typeof legacy.attachment_data === 'string'
|
|
83
|
+
? legacy.attachment_data
|
|
84
|
+
: undefined;
|
|
85
|
+
const caption = legacy.caption;
|
|
86
|
+
if (attachmentUrl !== undefined || attachmentContent !== undefined) {
|
|
87
|
+
const { InputCls, DataCls } = ATTACHMENT_LEGACY_TO_INPUT[legacyType];
|
|
88
|
+
const input = new InputCls(new DataCls(attachmentUrl, attachmentContent, caption));
|
|
89
|
+
return Object.assign(Object.assign({}, base), { type: input.type, data: input.data });
|
|
90
|
+
}
|
|
91
|
+
return Object.assign(Object.assign({}, base), { type: legacyType, data: Object.assign({ attachment_url: undefined, attachment_content: undefined }, (caption != null && { caption })) });
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Location: legacy latitude/longitude (or "lat,lng" in data). Per spec: empty/whitespace title and url → null.
|
|
95
|
+
*/
|
|
96
|
+
function legacyLocationToInput(base, legacy) {
|
|
97
|
+
let lat;
|
|
98
|
+
let lng;
|
|
99
|
+
if (typeof legacy.latitude === 'number' &&
|
|
100
|
+
typeof legacy.longitude === 'number') {
|
|
101
|
+
lat = legacy.latitude;
|
|
102
|
+
lng = legacy.longitude;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
const data = legacy.data;
|
|
106
|
+
const parts = typeof data === 'string' ? data.split(',') : [];
|
|
107
|
+
lat = Number.parseFloat(parts[0]);
|
|
108
|
+
lng = Number.parseFloat(parts[1]);
|
|
109
|
+
}
|
|
110
|
+
const locationData = new BotonicLocationData(Number.isFinite(lat) ? lat : 0, Number.isFinite(lng) ? lng : 0, legacy.title, legacy.address, legacy.url);
|
|
111
|
+
const input = new BotonicInputLocation(locationData);
|
|
112
|
+
return Object.assign(Object.assign({}, base), { type: input.type, data: input.data });
|
|
113
|
+
}
|
|
114
|
+
function legacyCustomToInput(base, legacy) {
|
|
115
|
+
const data = legacy.data;
|
|
116
|
+
try {
|
|
117
|
+
const parsed = typeof data === 'string' ? JSON.parse(data) : {};
|
|
118
|
+
const customData = new BotonicCustomData('custom', parsed);
|
|
119
|
+
return Object.assign(Object.assign({}, base), { type: MessageType.Custom, data: customData });
|
|
120
|
+
}
|
|
121
|
+
catch (_a) {
|
|
122
|
+
const customData = new BotonicCustomData('custom', { raw: data });
|
|
123
|
+
return Object.assign(Object.assign({}, base), { type: MessageType.Custom, data: customData });
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Contact: per spec empty strings for last_name and phone_number → null.
|
|
128
|
+
*/
|
|
129
|
+
function legacyContactToInput(base, legacy) {
|
|
130
|
+
const firstName = typeof legacy.first_name === 'string' ? legacy.first_name : '';
|
|
131
|
+
const contactData = new BotonicContactData(firstName, legacy.last_name, legacy.phone_number, legacy.vcard);
|
|
132
|
+
const input = new BotonicInputContact(contactData);
|
|
133
|
+
return Object.assign(Object.assign({}, base), { type: input.type, data: input.data });
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Typing: ImpMsgStartTyping → typing_on, ImpMsgSendPaused → typing_off.
|
|
137
|
+
* Legacy type Event with data string "typing_off"/"typing_on" also supported.
|
|
138
|
+
*/
|
|
139
|
+
function legacyEventToInput(base, legacy, eventName) {
|
|
140
|
+
const resolved = eventName !== null && eventName !== void 0 ? eventName : (typeof legacy.data === 'string' &&
|
|
141
|
+
legacy.data === TypingEventName.TypingOff
|
|
142
|
+
? TypingEventName.TypingOff
|
|
143
|
+
: TypingEventName.TypingOn);
|
|
144
|
+
const typingData = new BotonicTypingEventData(resolved);
|
|
145
|
+
const input = new BotonicInputTypingEvent(typingData);
|
|
146
|
+
return Object.assign(Object.assign({}, base), { type: input.type, data: input.data });
|
|
147
|
+
}
|
|
148
|
+
function legacyDefaultToInput(base, legacy) {
|
|
149
|
+
var _a;
|
|
150
|
+
const data = legacy.data;
|
|
151
|
+
// TODO: use BotonicInputText for fallback when default branch is normalized to a class-based path
|
|
152
|
+
return Object.assign(Object.assign({}, base), { type: (_a = legacy.type) !== null && _a !== void 0 ? _a : MessageType.Text, data: { text: typeof data === 'string' ? data : String(data !== null && data !== void 0 ? data : '') } });
|
|
153
|
+
}
|
|
154
|
+
// ---------------------------------------------------------------------------
|
|
155
|
+
// Main adapter
|
|
156
|
+
// ---------------------------------------------------------------------------
|
|
157
|
+
/**
|
|
158
|
+
* Converts InputLegacy to Input (v2) for the pipeline.
|
|
159
|
+
* Used at lambda handler level so CoreBot always receives Input.
|
|
160
|
+
*/
|
|
161
|
+
export function legacyInputToInput(legacy) {
|
|
162
|
+
const base = buildBase(legacy);
|
|
163
|
+
switch (legacy.type) {
|
|
164
|
+
case InputType.Text:
|
|
165
|
+
return legacyTextToInput(base, legacy);
|
|
166
|
+
case InputType.Postback:
|
|
167
|
+
return legacyPostbackToInput(base, legacy);
|
|
168
|
+
case InputType.Image:
|
|
169
|
+
return legacyImageToInput(base, legacy);
|
|
170
|
+
case InputType.Audio:
|
|
171
|
+
return legacyAudioToInput(base, legacy);
|
|
172
|
+
case InputType.Video:
|
|
173
|
+
return legacyVideoToInput(base, legacy);
|
|
174
|
+
case InputType.Document:
|
|
175
|
+
return legacyDocumentToInput(base, legacy);
|
|
176
|
+
case InputType.Location:
|
|
177
|
+
return legacyLocationToInput(base, legacy);
|
|
178
|
+
case InputType.Contact:
|
|
179
|
+
return legacyContactToInput(base, legacy);
|
|
180
|
+
case InputType.Custom:
|
|
181
|
+
return legacyCustomToInput(base, legacy);
|
|
182
|
+
case InputType.Event:
|
|
183
|
+
return legacyEventToInput(base, legacy);
|
|
184
|
+
case InputType.StartTyping:
|
|
185
|
+
return legacyEventToInput(base, legacy, TypingEventName.TypingOn);
|
|
186
|
+
case InputType.SendPaused:
|
|
187
|
+
return legacyEventToInput(base, legacy, TypingEventName.TypingOff);
|
|
188
|
+
default:
|
|
189
|
+
return legacyDefaultToInput(base, legacy);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Normalizes request input to RequestInputV2.
|
|
194
|
+
* If legacy shape, converts with legacyInputToInput; otherwise returns as RequestInputV2.
|
|
195
|
+
* Used inside CoreBot.input(); not exposed to handlers.
|
|
196
|
+
*/
|
|
197
|
+
export function normalizeToV2Input(requestInput) {
|
|
198
|
+
if (isInputLegacy(requestInput)) {
|
|
199
|
+
return legacyInputToInput(requestInput);
|
|
200
|
+
}
|
|
201
|
+
return requestInput;
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=input-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-adapter.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/botonic/legacy/input-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { InputContext, InputType, NluResolution, SentBy } from '../../server/botonic-context/botonic-context-input';
|
|
2
|
+
export interface RequestInputLegacy {
|
|
3
|
+
src?: string;
|
|
4
|
+
/** Older shape: single string (e.g. text content, "lat,lng", or attachment URL). */
|
|
5
|
+
data?: string;
|
|
6
|
+
payload?: string;
|
|
7
|
+
referral?: string;
|
|
8
|
+
type: InputType;
|
|
9
|
+
message_id?: string;
|
|
10
|
+
sent_by?: SentBy;
|
|
11
|
+
nluResolution?: NluResolution;
|
|
12
|
+
bot_interaction_id?: string;
|
|
13
|
+
conversation_id?: string;
|
|
14
|
+
context?: InputContext;
|
|
15
|
+
/** Text message (ImpMsgText). */
|
|
16
|
+
text?: string;
|
|
17
|
+
/** Media: attachment_url or attachment_data (ImpMsgImage/Audio/Video/Document). */
|
|
18
|
+
attachment_url?: string;
|
|
19
|
+
attachment_data?: string;
|
|
20
|
+
caption?: string;
|
|
21
|
+
/** Location (ImpMsgLocation). */
|
|
22
|
+
latitude?: number;
|
|
23
|
+
longitude?: number;
|
|
24
|
+
title?: string;
|
|
25
|
+
address?: string;
|
|
26
|
+
url?: string;
|
|
27
|
+
/** Contact (ImpMsgContact). */
|
|
28
|
+
first_name?: string;
|
|
29
|
+
last_name?: string;
|
|
30
|
+
phone_number?: string;
|
|
31
|
+
vcard?: string;
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/botonic/legacy/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { MessageSentBy } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Common metadata that can be present in any message
|
|
4
|
+
* Used for bot interaction tracking and display control
|
|
5
|
+
*/
|
|
6
|
+
export interface BotMessageMetadata {
|
|
7
|
+
bot_interaction_id?: string;
|
|
8
|
+
feedback_enabled?: boolean;
|
|
9
|
+
inference_id?: string;
|
|
10
|
+
typing?: number;
|
|
11
|
+
delay?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Metadata for messages from the bot/server
|
|
15
|
+
* Includes message tracking and sender information
|
|
16
|
+
*/
|
|
17
|
+
export interface RealtimeResponseMessageMetadata extends BotMessageMetadata {
|
|
18
|
+
message_id: string;
|
|
19
|
+
sent_by: MessageSentBy;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Metadata for messages from the user/client
|
|
23
|
+
* Includes client-side tracking identifier
|
|
24
|
+
*/
|
|
25
|
+
export interface UserMessageMetadata {
|
|
26
|
+
provider_id?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Combined metadata that can appear in a unified message
|
|
30
|
+
* All fields are optional since messages can come from different sources
|
|
31
|
+
*/
|
|
32
|
+
export interface WebchatMessageMetadata extends BotMessageMetadata {
|
|
33
|
+
message_id?: string;
|
|
34
|
+
sent_by?: MessageSentBy;
|
|
35
|
+
provider_id?: string;
|
|
36
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../../../../../libs/botonic/shared/src/lib/domain/botonic/metadata.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { BotonicAttachmentData, BotonicButtonMessageData, BotonicCarouselData, BotonicCustomData, BotonicLocationData, BotonicTextData, BotonicTypingEventData, MessageType } from './types';
|
|
2
|
+
import { BotonicWhatsappButtonListData, BotonicWhatsappCatalogData, BotonicWhatsappCTAUrlButtonData, BotonicWhatsappMediaCarouselData, BotonicWhatsappProductCarouselData, BotonicWhatsappProductData, BotonicWhatsappProductListData, BotonicWhatsappTemplateData } from './whatsapp-outputs';
|
|
3
|
+
export type OutputMessageType = MessageType.Text | MessageType.Audio | MessageType.Image | MessageType.Video | MessageType.Document | MessageType.Location | MessageType.ButtonMessage | MessageType.Carousel | MessageType.Custom | MessageType.TypingEvent | MessageType.WhatsappTemplate | MessageType.WhatsappButtonList | MessageType.WhatsappCTAUrlButton | MessageType.WhatsappCatalog | MessageType.WhatsappProduct | MessageType.WhatsappProductList | MessageType.WhatsappProductCarousel | MessageType.WhatsappMediaCarousel;
|
|
4
|
+
export type BotonicOutputAttachmentExtraFields = {
|
|
5
|
+
file_info?: Record<string, unknown>;
|
|
6
|
+
caption?: string;
|
|
7
|
+
};
|
|
8
|
+
export type BotonicOutputAttachmentParams = Pick<BotonicAttachmentData, 'attachment_url' | 'attachment_content'> & BotonicOutputAttachmentExtraFields;
|
|
9
|
+
export declare class BotonicOutputAttachmentData extends BotonicAttachmentData {
|
|
10
|
+
file_info?: Record<string, unknown>;
|
|
11
|
+
caption?: string;
|
|
12
|
+
constructor(data: BotonicOutputAttachmentParams);
|
|
13
|
+
}
|
|
14
|
+
export declare class BotonicOutputImageData extends BotonicOutputAttachmentData {
|
|
15
|
+
}
|
|
16
|
+
export declare class BotonicOutputAudioData extends BotonicOutputAttachmentData {
|
|
17
|
+
}
|
|
18
|
+
export declare class BotonicOutputVideoData extends BotonicOutputAttachmentData {
|
|
19
|
+
}
|
|
20
|
+
export declare class BotonicOutputDocumentData extends BotonicOutputAttachmentData {
|
|
21
|
+
}
|
|
22
|
+
export type OutputMessageTypeMap = {
|
|
23
|
+
[MessageType.Text]: BotonicTextData;
|
|
24
|
+
[MessageType.Audio]: BotonicOutputAudioData;
|
|
25
|
+
[MessageType.Image]: BotonicOutputImageData;
|
|
26
|
+
[MessageType.Video]: BotonicOutputVideoData;
|
|
27
|
+
[MessageType.Document]: BotonicOutputDocumentData;
|
|
28
|
+
[MessageType.Location]: BotonicLocationData;
|
|
29
|
+
[MessageType.ButtonMessage]: BotonicButtonMessageData;
|
|
30
|
+
[MessageType.Carousel]: BotonicCarouselData;
|
|
31
|
+
[MessageType.Custom]: BotonicCustomData;
|
|
32
|
+
[MessageType.TypingEvent]: BotonicTypingEventData;
|
|
33
|
+
[MessageType.WhatsappTemplate]: BotonicWhatsappTemplateData;
|
|
34
|
+
[MessageType.WhatsappButtonList]: BotonicWhatsappButtonListData;
|
|
35
|
+
[MessageType.WhatsappCTAUrlButton]: BotonicWhatsappCTAUrlButtonData;
|
|
36
|
+
[MessageType.WhatsappCatalog]: BotonicWhatsappCatalogData;
|
|
37
|
+
[MessageType.WhatsappProduct]: BotonicWhatsappProductData;
|
|
38
|
+
[MessageType.WhatsappProductList]: BotonicWhatsappProductListData;
|
|
39
|
+
[MessageType.WhatsappProductCarousel]: BotonicWhatsappProductCarouselData;
|
|
40
|
+
[MessageType.WhatsappMediaCarousel]: BotonicWhatsappMediaCarouselData;
|
|
41
|
+
};
|
|
42
|
+
export declare abstract class BotonicOutput<T extends keyof OutputMessageTypeMap = keyof OutputMessageTypeMap> {
|
|
43
|
+
readonly type: T;
|
|
44
|
+
readonly data: OutputMessageTypeMap[T];
|
|
45
|
+
constructor(type: T, data: OutputMessageTypeMap[T]);
|
|
46
|
+
}
|
|
47
|
+
export declare class BotonicOutputText extends BotonicOutput<MessageType.Text> {
|
|
48
|
+
constructor(data: BotonicTextData);
|
|
49
|
+
}
|
|
50
|
+
export declare class BotonicOutputAudio extends BotonicOutput<MessageType.Audio> {
|
|
51
|
+
constructor(data: BotonicOutputAudioData);
|
|
52
|
+
}
|
|
53
|
+
export declare class BotonicOutputImage extends BotonicOutput<MessageType.Image> {
|
|
54
|
+
constructor(data: BotonicOutputImageData);
|
|
55
|
+
}
|
|
56
|
+
export declare class BotonicOutputVideo extends BotonicOutput<MessageType.Video> {
|
|
57
|
+
constructor(data: BotonicOutputVideoData);
|
|
58
|
+
}
|
|
59
|
+
export declare class BotonicOutputDocument extends BotonicOutput<MessageType.Document> {
|
|
60
|
+
constructor(data: BotonicOutputDocumentData);
|
|
61
|
+
}
|
|
62
|
+
export declare class BotonicOutputLocation extends BotonicOutput<MessageType.Location> {
|
|
63
|
+
constructor(data: BotonicLocationData);
|
|
64
|
+
}
|
|
65
|
+
export declare class BotonicOutputButtonMessage extends BotonicOutput<MessageType.ButtonMessage> {
|
|
66
|
+
constructor(data: BotonicButtonMessageData);
|
|
67
|
+
}
|
|
68
|
+
export declare class BotonicOutputCarousel extends BotonicOutput<MessageType.Carousel> {
|
|
69
|
+
constructor(data: BotonicCarouselData);
|
|
70
|
+
}
|
|
71
|
+
export declare class BotonicOutputCustom extends BotonicOutput<MessageType.Custom> {
|
|
72
|
+
constructor(data: BotonicCustomData);
|
|
73
|
+
}
|
|
74
|
+
export declare class BotonicOutputTypingEvent extends BotonicOutput<MessageType.TypingEvent> {
|
|
75
|
+
constructor(data: BotonicTypingEventData);
|
|
76
|
+
}
|
|
77
|
+
export declare class BotonicOutputWhatsappTemplate extends BotonicOutput<MessageType.WhatsappTemplate> {
|
|
78
|
+
constructor(data: BotonicWhatsappTemplateData);
|
|
79
|
+
}
|
|
80
|
+
export declare class BotonicOutputWhatsappButtonList extends BotonicOutput<MessageType.WhatsappButtonList> {
|
|
81
|
+
constructor(data: BotonicWhatsappButtonListData);
|
|
82
|
+
}
|
|
83
|
+
export declare class BotonicOutputWhatsappCTAUrlButton extends BotonicOutput<MessageType.WhatsappCTAUrlButton> {
|
|
84
|
+
constructor(data: BotonicWhatsappCTAUrlButtonData);
|
|
85
|
+
}
|
|
86
|
+
export declare class BotonicOutputWhatsappCatalog extends BotonicOutput<MessageType.WhatsappCatalog> {
|
|
87
|
+
constructor(data: BotonicWhatsappCatalogData);
|
|
88
|
+
}
|
|
89
|
+
export declare class BotonicOutputWhatsappProduct extends BotonicOutput<MessageType.WhatsappProduct> {
|
|
90
|
+
constructor(data: BotonicWhatsappProductData);
|
|
91
|
+
}
|
|
92
|
+
export declare class BotonicOutputWhatsappProductList extends BotonicOutput<MessageType.WhatsappProductList> {
|
|
93
|
+
constructor(data: BotonicWhatsappProductListData);
|
|
94
|
+
}
|
|
95
|
+
export declare class BotonicOutputWhatsappProductCarousel extends BotonicOutput<MessageType.WhatsappProductCarousel> {
|
|
96
|
+
constructor(data: BotonicWhatsappProductCarouselData);
|
|
97
|
+
}
|
|
98
|
+
export declare class BotonicOutputWhatsappMediaCarousel extends BotonicOutput<MessageType.WhatsappMediaCarousel> {
|
|
99
|
+
constructor(data: BotonicWhatsappMediaCarouselData);
|
|
100
|
+
}
|
|
101
|
+
export type BotonicOutputType = BotonicOutputText | BotonicOutputAudio | BotonicOutputImage | BotonicOutputVideo | BotonicOutputDocument | BotonicOutputLocation | BotonicOutputButtonMessage | BotonicOutputCarousel | BotonicOutputCustom | BotonicOutputTypingEvent | BotonicOutputWhatsappTemplate | BotonicOutputWhatsappButtonList | BotonicOutputWhatsappCTAUrlButton | BotonicOutputWhatsappCatalog | BotonicOutputWhatsappProduct | BotonicOutputWhatsappProductList | BotonicOutputWhatsappProductCarousel | BotonicOutputWhatsappMediaCarousel;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { BotonicAttachmentData, MessageType, } from './types';
|
|
2
|
+
export class BotonicOutputAttachmentData extends BotonicAttachmentData {
|
|
3
|
+
constructor(data) {
|
|
4
|
+
super(data.attachment_url, data.attachment_content);
|
|
5
|
+
this.file_info = data.file_info;
|
|
6
|
+
this.caption = data.caption;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class BotonicOutputImageData extends BotonicOutputAttachmentData {
|
|
10
|
+
}
|
|
11
|
+
export class BotonicOutputAudioData extends BotonicOutputAttachmentData {
|
|
12
|
+
}
|
|
13
|
+
export class BotonicOutputVideoData extends BotonicOutputAttachmentData {
|
|
14
|
+
}
|
|
15
|
+
export class BotonicOutputDocumentData extends BotonicOutputAttachmentData {
|
|
16
|
+
}
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// BOTONIC OUTPUT PROTOCOL (discriminated union with classes)
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Base class for type safety using mapped types
|
|
21
|
+
export class BotonicOutput {
|
|
22
|
+
constructor(type, data) {
|
|
23
|
+
this.type = type;
|
|
24
|
+
this.data = data;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// Concrete implementations
|
|
28
|
+
export class BotonicOutputText extends BotonicOutput {
|
|
29
|
+
constructor(data) {
|
|
30
|
+
super(MessageType.Text, data);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export class BotonicOutputAudio extends BotonicOutput {
|
|
34
|
+
constructor(data) {
|
|
35
|
+
super(MessageType.Audio, data);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class BotonicOutputImage extends BotonicOutput {
|
|
39
|
+
constructor(data) {
|
|
40
|
+
super(MessageType.Image, data);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export class BotonicOutputVideo extends BotonicOutput {
|
|
44
|
+
constructor(data) {
|
|
45
|
+
super(MessageType.Video, data);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export class BotonicOutputDocument extends BotonicOutput {
|
|
49
|
+
constructor(data) {
|
|
50
|
+
super(MessageType.Document, data);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export class BotonicOutputLocation extends BotonicOutput {
|
|
54
|
+
constructor(data) {
|
|
55
|
+
super(MessageType.Location, data);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export class BotonicOutputButtonMessage extends BotonicOutput {
|
|
59
|
+
constructor(data) {
|
|
60
|
+
super(MessageType.ButtonMessage, data);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export class BotonicOutputCarousel extends BotonicOutput {
|
|
64
|
+
constructor(data) {
|
|
65
|
+
super(MessageType.Carousel, data);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export class BotonicOutputCustom extends BotonicOutput {
|
|
69
|
+
constructor(data) {
|
|
70
|
+
super(MessageType.Custom, data);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export class BotonicOutputTypingEvent extends BotonicOutput {
|
|
74
|
+
constructor(data) {
|
|
75
|
+
super(MessageType.TypingEvent, data);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// WhatsApp outputs
|
|
79
|
+
export class BotonicOutputWhatsappTemplate extends BotonicOutput {
|
|
80
|
+
constructor(data) {
|
|
81
|
+
super(MessageType.WhatsappTemplate, data);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export class BotonicOutputWhatsappButtonList extends BotonicOutput {
|
|
85
|
+
constructor(data) {
|
|
86
|
+
super(MessageType.WhatsappButtonList, data);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export class BotonicOutputWhatsappCTAUrlButton extends BotonicOutput {
|
|
90
|
+
constructor(data) {
|
|
91
|
+
super(MessageType.WhatsappCTAUrlButton, data);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export class BotonicOutputWhatsappCatalog extends BotonicOutput {
|
|
95
|
+
constructor(data) {
|
|
96
|
+
super(MessageType.WhatsappCatalog, data);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export class BotonicOutputWhatsappProduct extends BotonicOutput {
|
|
100
|
+
constructor(data) {
|
|
101
|
+
super(MessageType.WhatsappProduct, data);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
export class BotonicOutputWhatsappProductList extends BotonicOutput {
|
|
105
|
+
constructor(data) {
|
|
106
|
+
super(MessageType.WhatsappProductList, data);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export class BotonicOutputWhatsappProductCarousel extends BotonicOutput {
|
|
110
|
+
constructor(data) {
|
|
111
|
+
super(MessageType.WhatsappProductCarousel, data);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
export class BotonicOutputWhatsappMediaCarousel extends BotonicOutput {
|
|
115
|
+
constructor(data) {
|
|
116
|
+
super(MessageType.WhatsappMediaCarousel, data);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=outputs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outputs.js","sourceRoot":"","sources":["../../../../../../../../libs/botonic/shared/src/lib/domain/botonic/outputs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAOrB,WAAW,GACZ,MAAM,SAAS,CAAA;AAyDhB,MAAM,OAAO,2BAA4B,SAAQ,qBAAqB;IAIpE,YAAY,IAAmC;QAC7C,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,2BAA2B;CAAG;AAC1E,MAAM,OAAO,sBAAuB,SAAQ,2BAA2B;CAAG;AAC1E,MAAM,OAAO,sBAAuB,SAAQ,2BAA2B;CAAG;AAC1E,MAAM,OAAO,yBAA0B,SAAQ,2BAA2B;CAAG;AA4B7E,+EAA+E;AAC/E,6DAA6D;AAC7D,+EAA+E;AAE/E,gDAAgD;AAChD,MAAM,OAAgB,aAAa;IAGjC,YACkB,IAAO,EACP,IAA6B;QAD7B,SAAI,GAAJ,IAAI,CAAG;QACP,SAAI,GAAJ,IAAI,CAAyB;IAC5C,CAAC;CACL;AAED,2BAA2B;AAC3B,MAAM,OAAO,iBAAkB,SAAQ,aAA+B;IACpE,YAAY,IAAqB;QAC/B,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,aAAgC;IACtE,YAAY,IAA4B;QACtC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAChC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,aAAgC;IACtE,YAAY,IAA4B;QACtC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAChC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,aAAgC;IACtE,YAAY,IAA4B;QACtC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAChC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,aAAmC;IAC5E,YAAY,IAA+B;QACzC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,aAAmC;IAC5E,YAAY,IAAyB;QACnC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,aAAwC;IACtF,YAAY,IAA8B;QACxC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,aAAmC;IAC5E,YAAY,IAAyB;QACnC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,aAAiC;IACxE,YAAY,IAAuB;QACjC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,aAAsC;IAClF,YAAY,IAA4B;QACtC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;CACF;AAED,mBAAmB;AACnB,MAAM,OAAO,6BAA8B,SAAQ,aAA2C;IAC5F,YAAY,IAAiC;QAC3C,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,+BAAgC,SAAQ,aAA6C;IAChG,YAAY,IAAmC;QAC7C,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC;CACF;AAED,MAAM,OAAO,iCAAkC,SAAQ,aAA+C;IACpG,YAAY,IAAqC;QAC/C,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,aAA0C;IAC1F,YAAY,IAAgC;QAC1C,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,aAA0C;IAC1F,YAAY,IAAgC;QAC1C,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,gCAAiC,SAAQ,aAA8C;IAClG,YAAY,IAAoC;QAC9C,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;CACF;AAED,MAAM,OAAO,oCAAqC,SAAQ,aAAkD;IAC1G,YAAY,IAAwC;QAClD,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAA;IAClD,CAAC;CACF;AAED,MAAM,OAAO,kCAAmC,SAAQ,aAAgD;IACtG,YAAY,IAAsC;QAChD,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAA;IAChD,CAAC;CACF"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { BotonicWhatsappButtonListData, BotonicWhatsappCatalogData, BotonicWhatsappCTAUrlButtonData, BotonicWhatsappMediaCarouselData, BotonicWhatsappProductCarouselData, BotonicWhatsappProductData, BotonicWhatsappProductListData, BotonicWhatsappTemplateData } from './whatsapp-outputs';
|
|
2
|
+
export declare enum MessageType {
|
|
3
|
+
Text = "text",
|
|
4
|
+
Postback = "postback",
|
|
5
|
+
Audio = "audio",
|
|
6
|
+
Image = "image",
|
|
7
|
+
Video = "video",
|
|
8
|
+
Document = "document",
|
|
9
|
+
Location = "location",
|
|
10
|
+
Contact = "contact",
|
|
11
|
+
ButtonMessage = "button_message",
|
|
12
|
+
Carousel = "carousel",
|
|
13
|
+
Custom = "custom",
|
|
14
|
+
TypingEvent = "typing_event",
|
|
15
|
+
WhatsappTemplate = "whatsapp_template",
|
|
16
|
+
WhatsappButtonList = "whatsapp_button_list",
|
|
17
|
+
WhatsappCTAUrlButton = "whatsapp_cta_url_button",
|
|
18
|
+
WhatsappCatalog = "whatsapp_catalog",
|
|
19
|
+
WhatsappProduct = "whatsapp_product",
|
|
20
|
+
WhatsappProductList = "whatsapp_product_list",
|
|
21
|
+
WhatsappProductCarousel = "whatsapp_product_carousel",
|
|
22
|
+
WhatsappMediaCarousel = "whatsapp_media_carousel"
|
|
23
|
+
}
|
|
24
|
+
export declare class BotonicTextData {
|
|
25
|
+
text: string;
|
|
26
|
+
payload?: string | undefined;
|
|
27
|
+
constructor(text: string, payload?: string | undefined);
|
|
28
|
+
}
|
|
29
|
+
export declare class BotonicPostbackData {
|
|
30
|
+
payload: string;
|
|
31
|
+
referral?: string | undefined;
|
|
32
|
+
constructor(payload: string, referral?: string | undefined);
|
|
33
|
+
}
|
|
34
|
+
export declare abstract class BotonicAttachmentData {
|
|
35
|
+
attachment_url?: string | undefined;
|
|
36
|
+
attachment_content?: string | undefined;
|
|
37
|
+
caption?: string | undefined;
|
|
38
|
+
constructor(attachment_url?: string | undefined, attachment_content?: string | undefined, caption?: string | undefined);
|
|
39
|
+
}
|
|
40
|
+
export declare class BotonicAudioData extends BotonicAttachmentData {
|
|
41
|
+
}
|
|
42
|
+
export declare class BotonicImageData extends BotonicAttachmentData {
|
|
43
|
+
}
|
|
44
|
+
export declare class BotonicVideoData extends BotonicAttachmentData {
|
|
45
|
+
}
|
|
46
|
+
export declare class BotonicDocumentData extends BotonicAttachmentData {
|
|
47
|
+
}
|
|
48
|
+
export declare class BotonicLocationData {
|
|
49
|
+
latitude: number;
|
|
50
|
+
longitude: number;
|
|
51
|
+
title?: string | undefined;
|
|
52
|
+
address?: string | undefined;
|
|
53
|
+
url?: string | undefined;
|
|
54
|
+
constructor(latitude: number, longitude: number, title?: string | undefined, address?: string | undefined, url?: string | undefined);
|
|
55
|
+
}
|
|
56
|
+
export declare enum TypingEventName {
|
|
57
|
+
TypingOn = "typing_on",
|
|
58
|
+
TypingOff = "typing_off"
|
|
59
|
+
}
|
|
60
|
+
export declare class BotonicTypingEventData {
|
|
61
|
+
event_name: TypingEventName;
|
|
62
|
+
constructor(event_name: TypingEventName);
|
|
63
|
+
}
|
|
64
|
+
export declare enum MessageSentBy {
|
|
65
|
+
Bot = "message_sent_by_bot",
|
|
66
|
+
User = "message_sent_by_enduser",
|
|
67
|
+
Agent = "message_sent_by_agent"
|
|
68
|
+
}
|
|
69
|
+
export declare enum BotonicButtonType {
|
|
70
|
+
WebUrl = "web_url",
|
|
71
|
+
Postback = "postback"
|
|
72
|
+
}
|
|
73
|
+
export interface BotonicButtonContent {
|
|
74
|
+
type: BotonicButtonType;
|
|
75
|
+
title: string;
|
|
76
|
+
url?: string;
|
|
77
|
+
payload?: string;
|
|
78
|
+
webview?: string;
|
|
79
|
+
}
|
|
80
|
+
export interface BotonicCarouselElement {
|
|
81
|
+
title: string;
|
|
82
|
+
subtitle?: string;
|
|
83
|
+
image: string;
|
|
84
|
+
buttons: BotonicButtonContent[];
|
|
85
|
+
}
|
|
86
|
+
export declare class BotonicButtonMessageData {
|
|
87
|
+
text: string;
|
|
88
|
+
buttons: BotonicButtonContent[];
|
|
89
|
+
constructor(text: string, buttons: BotonicButtonContent[]);
|
|
90
|
+
}
|
|
91
|
+
export declare class BotonicCarouselData {
|
|
92
|
+
elements: BotonicCarouselElement[];
|
|
93
|
+
text?: string | undefined;
|
|
94
|
+
constructor(elements: BotonicCarouselElement[], text?: string | undefined);
|
|
95
|
+
}
|
|
96
|
+
export declare class BotonicCustomData {
|
|
97
|
+
name: string;
|
|
98
|
+
props: Record<string, unknown>;
|
|
99
|
+
constructor(name: string, props: Record<string, unknown>);
|
|
100
|
+
}
|
|
101
|
+
/** Contact message (ImpMsgContact). Empty strings for last_name/phone_number become null. */
|
|
102
|
+
export declare class BotonicContactData {
|
|
103
|
+
first_name: string;
|
|
104
|
+
last_name?: string | undefined;
|
|
105
|
+
phone_number?: string | undefined;
|
|
106
|
+
vcard?: string | undefined;
|
|
107
|
+
constructor(first_name: string, last_name?: string | undefined, phone_number?: string | undefined, vcard?: string | undefined);
|
|
108
|
+
}
|
|
109
|
+
export type BotonicData = BotonicTextData | BotonicPostbackData | BotonicAudioData | BotonicImageData | BotonicVideoData | BotonicDocumentData | BotonicLocationData | BotonicContactData | BotonicTypingEventData | BotonicButtonMessageData | BotonicCarouselData | BotonicCustomData | BotonicContactData | BotonicWhatsappButtonListData | BotonicWhatsappCatalogData | BotonicWhatsappCTAUrlButtonData | BotonicWhatsappMediaCarouselData | BotonicWhatsappProductCarouselData | BotonicWhatsappProductData | BotonicWhatsappProductListData | BotonicWhatsappTemplateData;
|