@botonic/shared 2.26.0 → 2.27.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 +21 -2
- package/package.json +1 -1
- package/src/lib/domain/botonic/index.d.ts +5 -4
- package/src/lib/domain/botonic/index.js +5 -4
- package/src/lib/domain/botonic/index.js.map +1 -1
- package/src/lib/domain/botonic/outputs.d.ts +11 -4
- package/src/lib/domain/botonic/outputs.js +7 -1
- package/src/lib/domain/botonic/outputs.js.map +1 -1
- package/src/lib/domain/botonic/session.d.ts +63 -0
- package/src/lib/domain/botonic/session.js +2 -0
- package/src/lib/domain/botonic/session.js.map +1 -0
- package/src/lib/domain/botonic/settings.d.ts +18 -0
- package/src/lib/domain/botonic/settings.js +2 -0
- package/src/lib/domain/botonic/settings.js.map +1 -0
- package/src/lib/domain/botonic/types.d.ts +8 -3
- package/src/lib/domain/botonic/types.js +8 -1
- package/src/lib/domain/botonic/types.js.map +1 -1
- package/src/lib/domain/botonic/webchat-client-settings.d.ts +22 -0
- package/src/lib/domain/botonic/webchat-client-settings.js +29 -0
- package/src/lib/domain/botonic/webchat-client-settings.js.map +1 -0
- package/src/lib/domain/botonic/webviews-session.d.ts +20 -0
- package/src/lib/domain/botonic/webviews-session.js +2 -0
- package/src/lib/domain/botonic/webviews-session.js.map +1 -0
- package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-button-list/index.d.ts +1 -1
- package/src/lib/domain/index.d.ts +1 -0
- package/src/lib/domain/index.js +2 -0
- package/src/lib/domain/index.js.map +1 -1
- package/src/lib/domain/server/bot-server-message.d.ts +5 -2
- package/src/lib/domain/server/bot-server-message.js +5 -0
- package/src/lib/domain/server/bot-server-message.js.map +1 -1
- package/src/lib/domain/server/botonic-context/botonic-action.d.ts +10 -0
- package/src/lib/domain/server/botonic-context/botonic-action.js +9 -0
- package/src/lib/domain/server/botonic-context/botonic-action.js.map +1 -0
- package/src/lib/domain/server/botonic-context/botonic-context-input.d.ts +8 -11
- package/src/lib/domain/server/botonic-context/botonic-context-input.js +4 -4
- package/src/lib/domain/server/botonic-context/botonic-context-input.js.map +1 -1
- package/src/lib/domain/server/botonic-context/botonic-context-session.d.ts +90 -77
- package/src/lib/domain/server/botonic-context/botonic-context-session.js +193 -105
- package/src/lib/domain/server/botonic-context/botonic-context-session.js.map +1 -1
- package/src/lib/domain/server/botonic-context/botonic-context-settings.d.ts +16 -0
- package/src/lib/domain/server/botonic-context/botonic-context-settings.js +48 -0
- package/src/lib/domain/server/botonic-context/botonic-context-settings.js.map +1 -0
- package/src/lib/domain/server/botonic-context/botonic-context.d.ts +20 -17
- package/src/lib/domain/server/botonic-context/botonic-context.js +24 -5
- package/src/lib/domain/server/botonic-context/botonic-context.js.map +1 -1
- package/src/lib/domain/server/botonic-context/botonic-session-patch-slice.d.ts +30 -0
- package/src/lib/domain/server/botonic-context/botonic-session-patch-slice.js +80 -0
- package/src/lib/domain/server/botonic-context/botonic-session-patch-slice.js.map +1 -0
- package/src/lib/domain/server/botonic-context/factory.d.ts +18 -12
- package/src/lib/domain/server/botonic-context/factory.js +14 -14
- package/src/lib/domain/server/botonic-context/factory.js.map +1 -1
- package/src/lib/domain/server/botonic-context/index.d.ts +4 -0
- package/src/lib/domain/server/botonic-context/index.js +4 -0
- package/src/lib/domain/server/botonic-context/index.js.map +1 -1
- package/src/lib/domain/server/botonic-context/send-messages-utils.d.ts +3 -0
- package/src/lib/domain/server/botonic-context/send-messages-utils.js +33 -0
- package/src/lib/domain/server/botonic-context/send-messages-utils.js.map +1 -0
- package/src/lib/domain/server/botonic-context/types.d.ts +9 -5
- package/src/lib/domain/server/botonic-context/types.js.map +1 -1
- package/src/lib/domain/server/factory.d.ts +11 -11
- package/src/lib/domain/server/factory.js +31 -8
- package/src/lib/domain/server/factory.js.map +1 -1
- package/src/lib/domain/webchat/factory.d.ts +21 -14
- package/src/lib/domain/webchat/factory.js +17 -8
- package/src/lib/domain/webchat/factory.js.map +1 -1
- package/src/lib/domain/webchat/realtime/factory.js +5 -2
- package/src/lib/domain/webchat/realtime/factory.js.map +1 -1
- package/src/lib/domain/webchat/realtime/realtime-response-message.d.ts +5 -2
- package/src/lib/domain/webchat/realtime/realtime-response-message.js +5 -0
- package/src/lib/domain/webchat/realtime/realtime-response-message.js.map +1 -1
- package/src/lib/domain/webchat/webchat-message.d.ts +4 -1
- package/src/lib/domain/webchat/webchat-message.js +9 -4
- package/src/lib/domain/webchat/webchat-message.js.map +1 -1
- package/src/lib/domain/webviews/botonic-context-webviews.d.ts +71 -0
- package/src/lib/domain/webviews/botonic-context-webviews.js +80 -0
- package/src/lib/domain/webviews/botonic-context-webviews.js.map +1 -0
- package/src/lib/domain/webviews/factory.d.ts +17 -0
- package/src/lib/domain/webviews/factory.js +21 -0
- package/src/lib/domain/webviews/factory.js.map +1 -0
- package/src/lib/domain/webviews/index.d.ts +2 -0
- package/src/lib/domain/webviews/index.js +3 -0
- package/src/lib/domain/webviews/index.js.map +1 -0
- package/src/lib/hubtype-analytics-types.d.ts +2 -2
- package/src/lib/index.d.ts +1 -1
- package/src/lib/index.js +1 -1
- package/src/lib/index.js.map +1 -1
- package/src/lib/services/handoff.d.ts +4 -0
- package/src/lib/services/handoff.js +23 -0
- package/src/lib/services/handoff.js.map +1 -0
- package/src/lib/services/hubtype-api-service.d.ts +12 -0
- package/src/lib/services/hubtype-api-service.js +67 -0
- package/src/lib/services/hubtype-api-service.js.map +1 -0
- package/src/lib/services/hubtype-external-api-client.d.ts +21 -0
- package/src/lib/services/hubtype-external-api-client.js +111 -0
- package/src/lib/services/hubtype-external-api-client.js.map +1 -0
- package/src/lib/services/index.d.ts +4 -0
- package/src/lib/services/index.js +5 -0
- package/src/lib/services/index.js.map +1 -0
- package/src/lib/services/webchat-api.d.ts +3 -3
- package/src/lib/domain/botonic/legacy/index.d.ts +0 -2
- package/src/lib/domain/botonic/legacy/index.js +0 -3
- package/src/lib/domain/botonic/legacy/index.js.map +0 -1
- package/src/lib/domain/botonic/legacy/input-adapter.d.ts +0 -25
- package/src/lib/domain/botonic/legacy/input-adapter.js +0 -203
- package/src/lib/domain/botonic/legacy/input-adapter.js.map +0 -1
- package/src/lib/domain/botonic/legacy/types.d.ts +0 -32
- package/src/lib/domain/botonic/legacy/types.js +0 -2
- package/src/lib/domain/botonic/legacy/types.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
// TODO: Create endpoint in backend into external and move this into hubtype-external-api-client.ts
|
|
3
|
+
export function storeCaseRating(botonicContext_1, rating_1) {
|
|
4
|
+
return __awaiter(this, arguments, void 0, function* (botonicContext, rating, _context = {}) {
|
|
5
|
+
if (botonicContext.session.isTestIntegration) {
|
|
6
|
+
return Promise.resolve({ status: 'ok' });
|
|
7
|
+
}
|
|
8
|
+
const chatId = botonicContext.session.user.id;
|
|
9
|
+
const response = yield fetch(`${botonicContext.settings.hubtypeApiUrl}/v1/chats/${chatId}/store_case_rating/`, {
|
|
10
|
+
method: 'POST',
|
|
11
|
+
headers: {
|
|
12
|
+
Authorization: `Bearer ${botonicContext.secrets.hubtypeAccessToken}`,
|
|
13
|
+
'Content-Type': 'application/json',
|
|
14
|
+
},
|
|
15
|
+
body: JSON.stringify({ chat_id: chatId, rating }),
|
|
16
|
+
});
|
|
17
|
+
if (!response.ok) {
|
|
18
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
19
|
+
}
|
|
20
|
+
return yield response.json();
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=handoff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../../../../../../libs/botonic/shared/src/lib/services/handoff.ts"],"names":[],"mappings":";AAEA,mGAAmG;AACnG,MAAM,UAAgB,eAAe;yDACnC,cAA8B,EAC9B,MAAc,EACd,WAAoC,EAAE;QAEtC,IAAI,cAAc,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;QAC7C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,cAAc,CAAC,QAAQ,CAAC,aAAa,aAAa,MAAM,qBAAqB,EAChF;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,cAAc,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBACpE,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;SAClD,CACF,CAAA;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QAC3D,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC9B,CAAC;CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { BotonicContext, BotonicSession, BotonicSessionPatchSlice, BotonicSessionUpdate, BotonicWebviewsSession, BotServerMessage, ChatUserPatchResponse, HandoffOptions, ResolvedPlugins, UserExtraData } from '../domain';
|
|
2
|
+
import { type GetBotonicWebviewsSessionParams } from './hubtype-external-api-client';
|
|
3
|
+
export declare class HubtypeApiService {
|
|
4
|
+
updateBotSession<TExtraData extends UserExtraData = UserExtraData>(botonicContext: BotonicContext<ResolvedPlugins, TExtraData>, updates: BotonicSessionUpdate<TExtraData>): Promise<void>;
|
|
5
|
+
getBotonicSession(botonicContext: BotonicContext<ResolvedPlugins, UserExtraData>): Promise<BotonicSession<UserExtraData> | null>;
|
|
6
|
+
getBotSession(botonicContext: BotonicContext<ResolvedPlugins, UserExtraData>): Promise<BotonicSession<UserExtraData>>;
|
|
7
|
+
patchBotonicSession(botonicContext: BotonicContext<ResolvedPlugins, UserExtraData>, body: Record<string, unknown>): Promise<BotonicSessionPatchSlice>;
|
|
8
|
+
patchChatUser(botonicContext: BotonicContext<ResolvedPlugins, UserExtraData>, body: Record<string, unknown>): Promise<ChatUserPatchResponse>;
|
|
9
|
+
doHandoff(botonicContext: BotonicContext<ResolvedPlugins, UserExtraData>, handoffOptions?: HandoffOptions): Promise<unknown>;
|
|
10
|
+
sendMessages(botonicContext: BotonicContext<ResolvedPlugins, UserExtraData>, messages: BotServerMessage[]): Promise<unknown>;
|
|
11
|
+
getBotonicWebviewsSession(params: GetBotonicWebviewsSessionParams): Promise<BotonicWebviewsSession | null>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { applyNonPatchSessionUpdateFields, mergeBotonicSessionPatchSlice, mergeChatUserPatchResponseIntoSessionUser, sessionUpdateToPatchBody, userUpdateToChatUserPatchBody, } from '../domain';
|
|
3
|
+
import { HubtypeExternalApiClient, } from './hubtype-external-api-client';
|
|
4
|
+
export class HubtypeApiService {
|
|
5
|
+
updateBotSession(botonicContext, updates) {
|
|
6
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
7
|
+
applyNonPatchSessionUpdateFields(botonicContext.session.raw, updates);
|
|
8
|
+
const client = new HubtypeExternalApiClient();
|
|
9
|
+
const sessionPatchBody = sessionUpdateToPatchBody(updates);
|
|
10
|
+
if (Object.keys(sessionPatchBody).length > 0) {
|
|
11
|
+
const slice = yield client.patchBotonicSession(botonicContext, sessionPatchBody);
|
|
12
|
+
mergeBotonicSessionPatchSlice(botonicContext.session.raw, slice);
|
|
13
|
+
}
|
|
14
|
+
const chatUserBody = userUpdateToChatUserPatchBody(updates.user);
|
|
15
|
+
if (Object.keys(chatUserBody).length > 0) {
|
|
16
|
+
const userSlice = yield client.patchChatUser(botonicContext, chatUserBody);
|
|
17
|
+
mergeChatUserPatchResponseIntoSessionUser(botonicContext.session.raw.user, userSlice);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
getBotonicSession(botonicContext) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const client = new HubtypeExternalApiClient();
|
|
24
|
+
return client.getBotonicSession(botonicContext);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
getBotSession(botonicContext) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const session = yield this.getBotonicSession(botonicContext);
|
|
30
|
+
if (session === null) {
|
|
31
|
+
throw new Error('Failed to get bot session');
|
|
32
|
+
}
|
|
33
|
+
return session;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
patchBotonicSession(botonicContext, body) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
const client = new HubtypeExternalApiClient();
|
|
39
|
+
return client.patchBotonicSession(botonicContext, body);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
patchChatUser(botonicContext, body) {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
const client = new HubtypeExternalApiClient();
|
|
45
|
+
return client.patchChatUser(botonicContext, body);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
doHandoff(botonicContext, handoffOptions) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
const client = new HubtypeExternalApiClient();
|
|
51
|
+
return client.doHandoff(botonicContext, handoffOptions);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
sendMessages(botonicContext, messages) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
const client = new HubtypeExternalApiClient();
|
|
57
|
+
return client.sendMessages(botonicContext, messages);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
getBotonicWebviewsSession(params) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
const client = new HubtypeExternalApiClient();
|
|
63
|
+
return client.getBotonicWebviewsSession(params);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=hubtype-api-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hubtype-api-service.js","sourceRoot":"","sources":["../../../../../../../libs/botonic/shared/src/lib/services/hubtype-api-service.ts"],"names":[],"mappings":";AAYA,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,yCAAyC,EACzC,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,WAAW,CAAA;AAClB,OAAO,EAEL,wBAAwB,GACzB,MAAM,+BAA+B,CAAA;AAEtC,MAAM,OAAO,iBAAiB;IACtB,gBAAgB,CACpB,cAA2D,EAC3D,OAAyC;;YAEzC,gCAAgC,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAErE,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAA;YAC7C,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;YAC1D,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAC5C,cAAgE,EAChE,gBAAgB,CACjB,CAAA;gBACD,6BAA6B,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAClE,CAAC;YAED,MAAM,YAAY,GAAG,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAChE,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAC1C,cAAgE,EAChE,YAAY,CACb,CAAA;gBACD,yCAAyC,CACvC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAC/B,SAAS,CACV,CAAA;YACH,CAAC;QACH,CAAC;KAAA;IAEK,iBAAiB,CACrB,cAA8D;;YAE9D,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAA;YAC7C,OAAO,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;QACjD,CAAC;KAAA;IAEK,aAAa,CACjB,cAA8D;;YAE9D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;YAC5D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;YAC9C,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;KAAA;IAEK,mBAAmB,CACvB,cAA8D,EAC9D,IAA6B;;YAE7B,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAA;YAC7C,OAAO,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;QACzD,CAAC;KAAA;IAEK,aAAa,CACjB,cAA8D,EAC9D,IAA6B;;YAE7B,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAA;YAC7C,OAAO,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;QACnD,CAAC;KAAA;IAEK,SAAS,CACb,cAA8D,EAC9D,cAA+B;;YAE/B,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAA;YAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;QACzD,CAAC;KAAA;IAEK,YAAY,CAChB,cAA8D,EAC9D,QAA4B;;YAE5B,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAA;YAC7C,OAAO,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QACtD,CAAC;KAAA;IAEK,yBAAyB,CAC7B,MAAuC;;YAEvC,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAA;YAC7C,OAAO,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAA;QACjD,CAAC;KAAA;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hubtype external v2 conversational HTTP client (session, webviews, chat user, handoff, send message).
|
|
3
|
+
* Do not use legacy `…/context/` for v2 bots — see BE spec.
|
|
4
|
+
*
|
|
5
|
+
* @see openspec/specs/BE-botonic-v2-botonic-session-endpoints/spec.md
|
|
6
|
+
*/
|
|
7
|
+
import type { BotonicContext, BotonicSession, BotonicSessionPatchSlice, BotonicWebviewsSession, BotServerMessage, ChatUserPatchResponse, HandoffOptions, ResolvedPlugins, UserExtraData } from '../domain';
|
|
8
|
+
/** Target for GET …/session/webviews/ (no auth on this endpoint). */
|
|
9
|
+
export interface GetBotonicWebviewsSessionParams {
|
|
10
|
+
hubtypeApiUrl: string;
|
|
11
|
+
botId: string;
|
|
12
|
+
userId: string;
|
|
13
|
+
}
|
|
14
|
+
export declare class HubtypeExternalApiClient {
|
|
15
|
+
getBotonicSession<TSessionExtra extends UserExtraData = UserExtraData>(botonicContext: BotonicContext<ResolvedPlugins, UserExtraData>): Promise<BotonicSession<TSessionExtra> | null>;
|
|
16
|
+
patchBotonicSession(botonicContext: BotonicContext<ResolvedPlugins, UserExtraData>, body: Record<string, unknown>): Promise<BotonicSessionPatchSlice>;
|
|
17
|
+
getBotonicWebviewsSession(params: GetBotonicWebviewsSessionParams): Promise<BotonicWebviewsSession | null>;
|
|
18
|
+
patchChatUser(botonicContext: BotonicContext<ResolvedPlugins, UserExtraData>, body: Record<string, unknown>): Promise<ChatUserPatchResponse>;
|
|
19
|
+
doHandoff(botonicContext: BotonicContext<ResolvedPlugins, UserExtraData>, handoffOptions?: HandoffOptions): Promise<unknown>;
|
|
20
|
+
sendMessages(botonicContext: BotonicContext<ResolvedPlugins, UserExtraData>, messages: BotServerMessage[]): Promise<unknown>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hubtype external v2 conversational HTTP client (session, webviews, chat user, handoff, send message).
|
|
3
|
+
* Do not use legacy `…/context/` for v2 bots — see BE spec.
|
|
4
|
+
*
|
|
5
|
+
* @see openspec/specs/BE-botonic-v2-botonic-session-endpoints/spec.md
|
|
6
|
+
*/
|
|
7
|
+
import { __awaiter } from "tslib";
|
|
8
|
+
export class HubtypeExternalApiClient {
|
|
9
|
+
getBotonicSession(botonicContext) {
|
|
10
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
11
|
+
const url = `${botonicContext.settings.hubtypeApiUrl}/external/v2/conversational_apps/${botonicContext.session.bot.id}/users/${botonicContext.session.user.id}/session/`;
|
|
12
|
+
const response = yield fetch(url, { method: 'GET' });
|
|
13
|
+
if (response.status === 404)
|
|
14
|
+
return null;
|
|
15
|
+
if (!response.ok) {
|
|
16
|
+
const errorBody = yield response.json();
|
|
17
|
+
throw new Error(`GET botonic session failed: HTTP ${response.status} ${JSON.stringify(errorBody)}`);
|
|
18
|
+
}
|
|
19
|
+
return (yield response.json());
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
patchBotonicSession(botonicContext, body) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const url = `${botonicContext.settings.hubtypeApiUrl}/external/v2/conversational_apps/${botonicContext.session.bot.id}/users/${botonicContext.session.user.id}/session/`;
|
|
25
|
+
const response = yield fetch(url, {
|
|
26
|
+
method: 'PATCH',
|
|
27
|
+
headers: {
|
|
28
|
+
'Content-Type': 'application/json',
|
|
29
|
+
Authorization: `Bearer ${botonicContext.secrets.hubtypeAccessToken}`,
|
|
30
|
+
},
|
|
31
|
+
body: JSON.stringify(body),
|
|
32
|
+
});
|
|
33
|
+
if (!response.ok) {
|
|
34
|
+
const errorBody = yield response.json();
|
|
35
|
+
throw new Error(`PATCH botonic session failed: HTTP ${response.status} ${JSON.stringify(errorBody)}`);
|
|
36
|
+
}
|
|
37
|
+
return (yield response.json());
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
getBotonicWebviewsSession(params) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
const { hubtypeApiUrl, botId, userId } = params;
|
|
43
|
+
const url = `${hubtypeApiUrl}/external/v2/conversational_apps/${botId}/users/${userId}/session/webviews/`;
|
|
44
|
+
const response = yield fetch(url, { method: 'GET' });
|
|
45
|
+
if (response.status === 404)
|
|
46
|
+
return null;
|
|
47
|
+
if (!response.ok) {
|
|
48
|
+
const errorBody = yield response.json();
|
|
49
|
+
throw new Error(`GET botonic session webviews failed: HTTP ${response.status} ${JSON.stringify(errorBody)}`);
|
|
50
|
+
}
|
|
51
|
+
return (yield response.json());
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
patchChatUser(botonicContext, body) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
const url = `${botonicContext.settings.hubtypeApiUrl}/external/v2/conversational_apps/${botonicContext.session.bot.id}/users/${botonicContext.session.user.id}/`;
|
|
57
|
+
const response = yield fetch(url, {
|
|
58
|
+
method: 'PATCH',
|
|
59
|
+
headers: {
|
|
60
|
+
'Content-Type': 'application/json',
|
|
61
|
+
Authorization: `Bearer ${botonicContext.secrets.hubtypeAccessToken}`,
|
|
62
|
+
},
|
|
63
|
+
body: JSON.stringify(body),
|
|
64
|
+
});
|
|
65
|
+
if (!response.ok) {
|
|
66
|
+
const errorBody = yield response.json();
|
|
67
|
+
throw new Error(`PATCH chat user failed: HTTP ${response.status} ${JSON.stringify(errorBody)}`);
|
|
68
|
+
}
|
|
69
|
+
return (yield response.json());
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
doHandoff(botonicContext, handoffOptions) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const url = `${botonicContext.settings.hubtypeApiUrl}/external/v2/conversational_apps/${botonicContext.session.bot.id}/users/${botonicContext.session.user.id}/do_handoff/`;
|
|
75
|
+
const response = yield fetch(url, {
|
|
76
|
+
method: 'POST',
|
|
77
|
+
headers: {
|
|
78
|
+
'Content-Type': 'application/json',
|
|
79
|
+
Authorization: `Bearer ${botonicContext.secrets.hubtypeAccessToken}`,
|
|
80
|
+
},
|
|
81
|
+
body: JSON.stringify(Object.assign(Object.assign({}, handoffOptions), { bot_interaction_id: botonicContext.input.botInteractionId })),
|
|
82
|
+
});
|
|
83
|
+
if (!response.ok) {
|
|
84
|
+
const errorBody = yield response.json();
|
|
85
|
+
throw new Error(`POST do handoff failed: HTTP ${response.status} ${JSON.stringify(errorBody)}`);
|
|
86
|
+
}
|
|
87
|
+
return yield response.json();
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
sendMessages(botonicContext, messages) {
|
|
91
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
const url = `${botonicContext.settings.hubtypeApiUrl}/external/v2/conversational_apps/${botonicContext.session.bot.id}/users/${botonicContext.session.user.id}/send_messages/`;
|
|
93
|
+
const response = yield fetch(url, {
|
|
94
|
+
method: 'POST',
|
|
95
|
+
headers: {
|
|
96
|
+
'Content-Type': 'application/json',
|
|
97
|
+
Authorization: `Bearer ${botonicContext.secrets.hubtypeAccessToken}`,
|
|
98
|
+
},
|
|
99
|
+
body: JSON.stringify({
|
|
100
|
+
messages: messages.map(message => (Object.assign(Object.assign({}, message), { bot_interaction_id: botonicContext.input.botInteractionId }))),
|
|
101
|
+
}),
|
|
102
|
+
});
|
|
103
|
+
if (!response.ok) {
|
|
104
|
+
const errorBody = yield response.json();
|
|
105
|
+
throw new Error(`POST send messages failed: HTTP ${response.status} ${JSON.stringify(errorBody)}`);
|
|
106
|
+
}
|
|
107
|
+
return yield response.json();
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=hubtype-external-api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hubtype-external-api-client.js","sourceRoot":"","sources":["../../../../../../../libs/botonic/shared/src/lib/services/hubtype-external-api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/botonic/shared/src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,eAAe,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { UserInputMessage } from '../domain/webchat';
|
|
2
2
|
export type HubtypeUserLocale = {
|
|
3
|
-
locale
|
|
4
|
-
country
|
|
5
|
-
system_locale
|
|
3
|
+
locale: string;
|
|
4
|
+
country: string;
|
|
5
|
+
system_locale: string;
|
|
6
6
|
};
|
|
7
7
|
export type HubtypeUser = {
|
|
8
8
|
id: string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/botonic/legacy/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA"}
|
|
@@ -1,25 +0,0 @@
|
|
|
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 type { RequestInputV2 } from '../../server/botonic-context/botonic-context-input';
|
|
9
|
-
import { RequestInputLegacy } from './types';
|
|
10
|
-
/**
|
|
11
|
-
* Returns true if the payload looks like InputLegacy (flat data string, payload at top level)
|
|
12
|
-
* rather than Input (nested data object).
|
|
13
|
-
*/
|
|
14
|
-
export declare function isInputLegacy(payload: unknown): payload is RequestInputLegacy;
|
|
15
|
-
/**
|
|
16
|
-
* Converts InputLegacy to Input (v2) for the pipeline.
|
|
17
|
-
* Used at lambda handler level so CoreBot always receives Input.
|
|
18
|
-
*/
|
|
19
|
-
export declare function legacyInputToInput(legacy: RequestInputLegacy): RequestInputV2;
|
|
20
|
-
/**
|
|
21
|
-
* Normalizes request input to RequestInputV2.
|
|
22
|
-
* If legacy shape, converts with legacyInputToInput; otherwise returns as RequestInputV2.
|
|
23
|
-
* Used inside CoreBot.input(); not exposed to handlers.
|
|
24
|
-
*/
|
|
25
|
-
export declare function normalizeToV2Input(requestInput: RequestInputLegacy | RequestInputV2): RequestInputV2;
|
|
@@ -1,203 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/botonic/legacy/types.ts"],"names":[],"mappings":""}
|