@botonic/core 2.26.0 → 2.28.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 +17 -0
- package/package.json +7 -2
- package/src/index.d.ts +3 -1
- package/src/index.js +3 -1
- package/src/index.js.map +1 -1
- package/src/lib/actions/index.d.ts +1 -0
- package/src/lib/actions/index.js +2 -0
- package/src/lib/actions/index.js.map +1 -0
- package/src/lib/actions/update-webchat-client-settings.d.ts +5 -0
- package/src/lib/actions/update-webchat-client-settings.js +51 -0
- package/src/lib/actions/update-webchat-client-settings.js.map +1 -0
- package/src/lib/core-bot/index.d.ts +14 -11
- package/src/lib/core-bot/index.js +55 -44
- package/src/lib/core-bot/index.js.map +1 -1
- package/src/lib/plugins/index.d.ts +2 -2
- package/src/lib/plugins/index.js +6 -6
- package/src/lib/plugins/index.js.map +1 -1
- package/src/lib/routes/router.d.ts +4 -4
- package/src/lib/routes/router.js +13 -13
- package/src/lib/routes/router.js.map +1 -1
- package/src/lib/routes/types.d.ts +2 -2
- package/src/lib/server/bot-server-message.d.ts +71 -0
- package/src/lib/server/bot-server-message.js +111 -0
- package/src/lib/server/bot-server-message.js.map +1 -0
- package/src/lib/server/botonic-context/botonic-action.d.ts +10 -0
- package/src/lib/server/botonic-context/botonic-action.js +9 -0
- package/src/lib/server/botonic-context/botonic-action.js.map +1 -0
- package/src/lib/server/botonic-context/botonic-context-input.d.ts +96 -0
- package/src/lib/server/botonic-context/botonic-context-input.js +124 -0
- package/src/lib/server/botonic-context/botonic-context-input.js.map +1 -0
- package/src/lib/server/botonic-context/botonic-context-session.d.ts +159 -0
- package/src/lib/server/botonic-context/botonic-context-session.js +297 -0
- package/src/lib/server/botonic-context/botonic-context-session.js.map +1 -0
- package/src/lib/server/botonic-context/botonic-context-settings.d.ts +16 -0
- package/src/lib/server/botonic-context/botonic-context-settings.js +48 -0
- package/src/lib/server/botonic-context/botonic-context-settings.js.map +1 -0
- package/src/lib/server/botonic-context/botonic-context.d.ts +59 -0
- package/src/lib/server/botonic-context/botonic-context.js +42 -0
- package/src/lib/server/botonic-context/botonic-context.js.map +1 -0
- package/src/lib/server/botonic-context/botonic-session-patch-slice.d.ts +30 -0
- package/src/lib/server/botonic-context/botonic-session-patch-slice.js +80 -0
- package/src/lib/server/botonic-context/botonic-session-patch-slice.js.map +1 -0
- package/src/lib/server/botonic-context/factory.d.ts +29 -0
- package/src/lib/server/botonic-context/factory.js +31 -0
- package/src/lib/server/botonic-context/factory.js.map +1 -0
- package/src/lib/server/botonic-context/index.d.ts +9 -0
- package/src/lib/server/botonic-context/index.js +10 -0
- package/src/lib/server/botonic-context/index.js.map +1 -0
- package/src/lib/server/botonic-context/send-messages-utils.d.ts +3 -0
- package/src/lib/server/botonic-context/send-messages-utils.js +33 -0
- package/src/lib/server/botonic-context/send-messages-utils.js.map +1 -0
- package/src/lib/server/botonic-context/types.d.ts +24 -0
- package/src/lib/server/botonic-context/types.js +6 -0
- package/src/lib/server/botonic-context/types.js.map +1 -0
- package/src/lib/server/factory.d.ts +169 -0
- package/src/lib/server/factory.js +192 -0
- package/src/lib/server/factory.js.map +1 -0
- package/src/lib/server/index.d.ts +3 -0
- package/src/lib/server/index.js +4 -0
- package/src/lib/server/index.js.map +1 -0
- package/src/lib/services/hubtype-api-service.d.ts +13 -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 +22 -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 +2 -0
- package/src/lib/services/index.js +3 -0
- package/src/lib/services/index.js.map +1 -0
- package/src/lib/hubtype-service/handoff.d.ts +0 -4
- package/src/lib/hubtype-service/handoff.js +0 -32
- package/src/lib/hubtype-service/handoff.js.map +0 -1
- package/src/lib/hubtype-service/index.d.ts +0 -10
- package/src/lib/hubtype-service/index.js +0 -96
- package/src/lib/hubtype-service/index.js.map +0 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { BotonicOutput, } from '@botonic/shared';
|
|
2
|
+
import { MessageType, } from '@botonic/shared';
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// BOT SERVER MESSAGE (extends Output + adds bot-specific metadata)
|
|
5
|
+
// ============================================================================
|
|
6
|
+
export class BotServerMessage extends BotonicOutput {
|
|
7
|
+
constructor(type, data, metadata = {}) {
|
|
8
|
+
super(type, data);
|
|
9
|
+
this.bot_interaction_id = metadata.bot_interaction_id;
|
|
10
|
+
this.feedback_enabled = metadata.feedback_enabled;
|
|
11
|
+
this.inference_id = metadata.inference_id;
|
|
12
|
+
this.typing = metadata.typing;
|
|
13
|
+
this.delay = metadata.delay;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export class BotServerMessageText extends BotServerMessage {
|
|
17
|
+
constructor(data, metadata = {}) {
|
|
18
|
+
super(MessageType.Text, data, metadata);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class BotServerMessageAudio extends BotServerMessage {
|
|
22
|
+
constructor(data, metadata = {}) {
|
|
23
|
+
super(MessageType.Audio, data, metadata);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export class BotServerMessageImage extends BotServerMessage {
|
|
27
|
+
constructor(data, metadata = {}) {
|
|
28
|
+
super(MessageType.Image, data, metadata);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export class BotServerMessageVideo extends BotServerMessage {
|
|
32
|
+
constructor(data, metadata = {}) {
|
|
33
|
+
super(MessageType.Video, data, metadata);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export class BotServerMessageDocument extends BotServerMessage {
|
|
37
|
+
constructor(data, metadata = {}) {
|
|
38
|
+
super(MessageType.Document, data, metadata);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export class BotServerMessageLocation extends BotServerMessage {
|
|
42
|
+
constructor(data, metadata = {}) {
|
|
43
|
+
super(MessageType.Location, data, metadata);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export class BotServerMessageButtonMessage extends BotServerMessage {
|
|
47
|
+
constructor(data, metadata = {}) {
|
|
48
|
+
super(MessageType.ButtonMessage, data, metadata);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export class BotServerMessageCarousel extends BotServerMessage {
|
|
52
|
+
constructor(data, metadata = {}) {
|
|
53
|
+
super(MessageType.Carousel, data, metadata);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export class BotServerMessageCustom extends BotServerMessage {
|
|
57
|
+
constructor(data, metadata = {}) {
|
|
58
|
+
super(MessageType.Custom, data, metadata);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export class BotServerMessageTypingEvent extends BotServerMessage {
|
|
62
|
+
constructor(data, metadata = {}) {
|
|
63
|
+
super(MessageType.TypingEvent, data, metadata);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export class BotServerMessageWhatsappButtonList extends BotServerMessage {
|
|
67
|
+
constructor(data, metadata = {}) {
|
|
68
|
+
super(MessageType.WhatsappButtonList, data, metadata);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export class BotServerMessageWhatsappCTAUrlButton extends BotServerMessage {
|
|
72
|
+
constructor(data, metadata = {}) {
|
|
73
|
+
super(MessageType.WhatsappCTAUrlButton, data, metadata);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export class BotServerMessageWhatsappCatalog extends BotServerMessage {
|
|
77
|
+
constructor(data, metadata = {}) {
|
|
78
|
+
super(MessageType.WhatsappCatalog, data, metadata);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export class BotServerMessageWhatsappProduct extends BotServerMessage {
|
|
82
|
+
constructor(data, metadata = {}) {
|
|
83
|
+
super(MessageType.WhatsappProduct, data, metadata);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export class BotServerMessageWhatsappProductList extends BotServerMessage {
|
|
87
|
+
constructor(data, metadata = {}) {
|
|
88
|
+
super(MessageType.WhatsappProductList, data, metadata);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export class BotServerMessageWhatsappProductCarousel extends BotServerMessage {
|
|
92
|
+
constructor(data, metadata = {}) {
|
|
93
|
+
super(MessageType.WhatsappProductCarousel, data, metadata);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export class BotServerMessageWhatsappMediaCarousel extends BotServerMessage {
|
|
97
|
+
constructor(data, metadata = {}) {
|
|
98
|
+
super(MessageType.WhatsappMediaCarousel, data, metadata);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
export class BotServerMessageWhatsappTemplate extends BotServerMessage {
|
|
102
|
+
constructor(data, metadata = {}) {
|
|
103
|
+
super(MessageType.WhatsappTemplate, data, metadata);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
export class BotServerMessageWebchatClientSettings extends BotServerMessage {
|
|
107
|
+
constructor(data, metadata = {}) {
|
|
108
|
+
super(MessageType.WebchatClientSettings, data, metadata);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=bot-server-message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bot-server-message.js","sourceRoot":"","sources":["../../../../../../../libs/botonic/core/src/lib/server/bot-server-message.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Flow / handoff action prefixes stored in session (legacy plugins may still set these via `custom` until migrated). */
|
|
2
|
+
export declare enum BotonicAction {
|
|
3
|
+
Redirect = "redirect_action",
|
|
4
|
+
CreateCase = "create_case",
|
|
5
|
+
DeleteUser = "delete_user",
|
|
6
|
+
DiscardCase = "discard_case"
|
|
7
|
+
}
|
|
8
|
+
type BotonicActionSeparator = ':';
|
|
9
|
+
export type BotonicActionType = `${BotonicAction.CreateCase}${BotonicActionSeparator}${string}` | `${BotonicAction.Redirect}${BotonicActionSeparator}${string}` | `${BotonicAction.DiscardCase}${BotonicActionSeparator}${string}` | `${BotonicAction.DiscardCase}` | `${BotonicAction.DeleteUser}`;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Flow / handoff action prefixes stored in session (legacy plugins may still set these via `custom` until migrated). */
|
|
2
|
+
export var BotonicAction;
|
|
3
|
+
(function (BotonicAction) {
|
|
4
|
+
BotonicAction["Redirect"] = "redirect_action";
|
|
5
|
+
BotonicAction["CreateCase"] = "create_case";
|
|
6
|
+
BotonicAction["DeleteUser"] = "delete_user";
|
|
7
|
+
BotonicAction["DiscardCase"] = "discard_case";
|
|
8
|
+
})(BotonicAction || (BotonicAction = {}));
|
|
9
|
+
//# sourceMappingURL=botonic-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"botonic-action.js","sourceRoot":"","sources":["../../../../../../../../libs/botonic/core/src/lib/server/botonic-context/botonic-action.ts"],"names":[],"mappings":"AAAA,yHAAyH;AACzH,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,6CAA4B,CAAA;IAC5B,2CAA0B,CAAA;IAC1B,2CAA0B,CAAA;IAC1B,6CAA4B,CAAA;AAC9B,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { BotonicData } from '@botonic/shared';
|
|
2
|
+
import { MessageType } from '@botonic/shared';
|
|
3
|
+
export declare enum HelpdeskEvent {
|
|
4
|
+
StatusChanged = "status_changed",
|
|
5
|
+
AgentMessageCreated = "agent_message_created",
|
|
6
|
+
QueuePositionChanged = "queue_position_changed"
|
|
7
|
+
}
|
|
8
|
+
export declare enum InputType {
|
|
9
|
+
Text = "text",
|
|
10
|
+
Image = "image",
|
|
11
|
+
Video = "video",
|
|
12
|
+
Audio = "audio",
|
|
13
|
+
Document = "document",
|
|
14
|
+
Location = "location",
|
|
15
|
+
Contact = "contact",
|
|
16
|
+
Custom = "custom",
|
|
17
|
+
Raw = "raw",
|
|
18
|
+
CaseEventQueuePosition = "case_event_queue_position",
|
|
19
|
+
Postback = "postback",
|
|
20
|
+
Event = "event",
|
|
21
|
+
/** Legacy typing: maps to v2 typing event_name "typing_on". */
|
|
22
|
+
StartTyping = "start_typing",
|
|
23
|
+
/** Legacy typing: maps to v2 typing event_name "typing_off". */
|
|
24
|
+
SendPaused = "send_paused"
|
|
25
|
+
}
|
|
26
|
+
export declare enum NluType {
|
|
27
|
+
Keyword = "keyword",
|
|
28
|
+
SmartIntent = "smart-intent",
|
|
29
|
+
Intent = "intent"
|
|
30
|
+
}
|
|
31
|
+
export interface NluResolution {
|
|
32
|
+
type: NluType;
|
|
33
|
+
matchedValue: string;
|
|
34
|
+
payload?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface CampaignV2 {
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
39
|
+
agent_context?: string;
|
|
40
|
+
end_date?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface InputContext {
|
|
43
|
+
campaigns_v2?: CampaignV2[];
|
|
44
|
+
}
|
|
45
|
+
export type SentBy = 'enduser' | 'agent' | 'bot';
|
|
46
|
+
export interface BotonicRequestInput {
|
|
47
|
+
type: MessageType;
|
|
48
|
+
data: BotonicData;
|
|
49
|
+
provider_id?: string;
|
|
50
|
+
sent_by?: string;
|
|
51
|
+
message_id?: string;
|
|
52
|
+
bot_interaction_id: string;
|
|
53
|
+
conversation_id?: string;
|
|
54
|
+
context?: InputContext;
|
|
55
|
+
/** Bot-side: NLU resolution set by plugins. */
|
|
56
|
+
nluResolution?: NluResolution;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Facade over {@link BotonicRequestInput}: wraps the wire payload and exposes
|
|
60
|
+
* camelCase accessors (`text`, `botInteractionId`, …). It does not implement
|
|
61
|
+
* `BotonicRequestInput` (naming and shape differ on purpose).
|
|
62
|
+
*/
|
|
63
|
+
export declare class BotonicContextInput {
|
|
64
|
+
private rawInput;
|
|
65
|
+
constructor(rawInput: BotonicRequestInput);
|
|
66
|
+
get type(): MessageType;
|
|
67
|
+
set type(v: MessageType);
|
|
68
|
+
get data(): BotonicData;
|
|
69
|
+
get providerId(): string | undefined;
|
|
70
|
+
get sentBy(): string | undefined;
|
|
71
|
+
get messageId(): string | undefined;
|
|
72
|
+
get botInteractionId(): string;
|
|
73
|
+
get conversationId(): string | undefined;
|
|
74
|
+
get context(): InputContext | undefined;
|
|
75
|
+
get nluResolution(): NluResolution | undefined;
|
|
76
|
+
set nluResolution(v: NluResolution | undefined);
|
|
77
|
+
private getKeyDataStringValue;
|
|
78
|
+
get text(): string | undefined;
|
|
79
|
+
set text(value: string);
|
|
80
|
+
get payload(): string | undefined;
|
|
81
|
+
set payload(value: string | undefined);
|
|
82
|
+
get referral(): string | undefined;
|
|
83
|
+
get attachmentUrl(): string | undefined;
|
|
84
|
+
/** True when the input is text with string data present. */
|
|
85
|
+
hasInputText(): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Replace the current input with a synthetic postback so type and data stay in sync.
|
|
88
|
+
* Use for redirect flow instead of mutating payload/type/text individually.
|
|
89
|
+
*/
|
|
90
|
+
setAsPostback(payload: string): void;
|
|
91
|
+
/**
|
|
92
|
+
* Replace the current input with synthetic text so type and data stay in sync.
|
|
93
|
+
* Use when converting e.g. WhatsApp referral to text input.
|
|
94
|
+
*/
|
|
95
|
+
setAsText(text: string): void;
|
|
96
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { BotonicPostbackData, BotonicTextData, MessageType, } from '@botonic/shared';
|
|
2
|
+
export var HelpdeskEvent;
|
|
3
|
+
(function (HelpdeskEvent) {
|
|
4
|
+
HelpdeskEvent["StatusChanged"] = "status_changed";
|
|
5
|
+
HelpdeskEvent["AgentMessageCreated"] = "agent_message_created";
|
|
6
|
+
HelpdeskEvent["QueuePositionChanged"] = "queue_position_changed";
|
|
7
|
+
})(HelpdeskEvent || (HelpdeskEvent = {}));
|
|
8
|
+
export var InputType;
|
|
9
|
+
(function (InputType) {
|
|
10
|
+
InputType["Text"] = "text";
|
|
11
|
+
InputType["Image"] = "image";
|
|
12
|
+
InputType["Video"] = "video";
|
|
13
|
+
InputType["Audio"] = "audio";
|
|
14
|
+
InputType["Document"] = "document";
|
|
15
|
+
InputType["Location"] = "location";
|
|
16
|
+
InputType["Contact"] = "contact";
|
|
17
|
+
InputType["Custom"] = "custom";
|
|
18
|
+
InputType["Raw"] = "raw";
|
|
19
|
+
InputType["CaseEventQueuePosition"] = "case_event_queue_position";
|
|
20
|
+
InputType["Postback"] = "postback";
|
|
21
|
+
InputType["Event"] = "event";
|
|
22
|
+
/** Legacy typing: maps to v2 typing event_name "typing_on". */
|
|
23
|
+
InputType["StartTyping"] = "start_typing";
|
|
24
|
+
/** Legacy typing: maps to v2 typing event_name "typing_off". */
|
|
25
|
+
InputType["SendPaused"] = "send_paused";
|
|
26
|
+
})(InputType || (InputType = {}));
|
|
27
|
+
export var NluType;
|
|
28
|
+
(function (NluType) {
|
|
29
|
+
NluType["Keyword"] = "keyword";
|
|
30
|
+
NluType["SmartIntent"] = "smart-intent";
|
|
31
|
+
NluType["Intent"] = "intent";
|
|
32
|
+
})(NluType || (NluType = {}));
|
|
33
|
+
/**
|
|
34
|
+
* Facade over {@link BotonicRequestInput}: wraps the wire payload and exposes
|
|
35
|
+
* camelCase accessors (`text`, `botInteractionId`, …). It does not implement
|
|
36
|
+
* `BotonicRequestInput` (naming and shape differ on purpose).
|
|
37
|
+
*/
|
|
38
|
+
export class BotonicContextInput {
|
|
39
|
+
// TODO: if message_id becomes required on BotonicRequestInput, throw when BotonicContextInput exposes messageId not message_id
|
|
40
|
+
constructor(rawInput) {
|
|
41
|
+
this.rawInput = rawInput;
|
|
42
|
+
}
|
|
43
|
+
// Delegate Input properties
|
|
44
|
+
get type() {
|
|
45
|
+
return this.rawInput.type;
|
|
46
|
+
}
|
|
47
|
+
// TODO: Remove this setter when we adapt logic using it
|
|
48
|
+
set type(v) {
|
|
49
|
+
this.rawInput.type = v;
|
|
50
|
+
}
|
|
51
|
+
get data() {
|
|
52
|
+
return this.rawInput.data;
|
|
53
|
+
}
|
|
54
|
+
get providerId() {
|
|
55
|
+
return this.rawInput.provider_id;
|
|
56
|
+
}
|
|
57
|
+
get sentBy() {
|
|
58
|
+
return this.rawInput.sent_by;
|
|
59
|
+
}
|
|
60
|
+
get messageId() {
|
|
61
|
+
return this.rawInput.message_id;
|
|
62
|
+
}
|
|
63
|
+
get botInteractionId() {
|
|
64
|
+
return this.rawInput.bot_interaction_id;
|
|
65
|
+
}
|
|
66
|
+
get conversationId() {
|
|
67
|
+
return this.rawInput.conversation_id;
|
|
68
|
+
}
|
|
69
|
+
get context() {
|
|
70
|
+
return this.rawInput.context;
|
|
71
|
+
}
|
|
72
|
+
get nluResolution() {
|
|
73
|
+
return this.rawInput.nluResolution;
|
|
74
|
+
}
|
|
75
|
+
set nluResolution(v) {
|
|
76
|
+
this.rawInput.nluResolution = v;
|
|
77
|
+
}
|
|
78
|
+
getKeyDataStringValue(key) {
|
|
79
|
+
const value = this.rawInput.data[key];
|
|
80
|
+
return typeof value === 'string' ? value : undefined;
|
|
81
|
+
}
|
|
82
|
+
get text() {
|
|
83
|
+
return this.getKeyDataStringValue('text');
|
|
84
|
+
}
|
|
85
|
+
set text(value) {
|
|
86
|
+
;
|
|
87
|
+
this.rawInput.data.text = value;
|
|
88
|
+
}
|
|
89
|
+
get payload() {
|
|
90
|
+
return this.getKeyDataStringValue('payload');
|
|
91
|
+
}
|
|
92
|
+
set payload(value) {
|
|
93
|
+
;
|
|
94
|
+
this.rawInput.data.payload = value;
|
|
95
|
+
}
|
|
96
|
+
get referral() {
|
|
97
|
+
return this.getKeyDataStringValue('referral');
|
|
98
|
+
}
|
|
99
|
+
get attachmentUrl() {
|
|
100
|
+
var _a;
|
|
101
|
+
return ((_a = this.getKeyDataStringValue('attachment_url')) !== null && _a !== void 0 ? _a : this.getKeyDataStringValue('attachment_content'));
|
|
102
|
+
}
|
|
103
|
+
/** True when the input is text with string data present. */
|
|
104
|
+
hasInputText() {
|
|
105
|
+
return (this.type === MessageType.Text &&
|
|
106
|
+
this.text !== undefined &&
|
|
107
|
+
this.text !== '');
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Replace the current input with a synthetic postback so type and data stay in sync.
|
|
111
|
+
* Use for redirect flow instead of mutating payload/type/text individually.
|
|
112
|
+
*/
|
|
113
|
+
setAsPostback(payload) {
|
|
114
|
+
this.rawInput = Object.assign(Object.assign({}, this.rawInput), { type: MessageType.Postback, data: new BotonicPostbackData(payload) });
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Replace the current input with synthetic text so type and data stay in sync.
|
|
118
|
+
* Use when converting e.g. WhatsApp referral to text input.
|
|
119
|
+
*/
|
|
120
|
+
setAsText(text) {
|
|
121
|
+
this.rawInput = Object.assign(Object.assign({}, this.rawInput), { type: MessageType.Text, data: new BotonicTextData(text) });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=botonic-context-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"botonic-context-input.js","sourceRoot":"","sources":["../../../../../../../../libs/botonic/core/src/lib/server/botonic-context/botonic-context-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { MessagingChannel } from '@botonic/shared';
|
|
2
|
+
import type { BotonicSession, BotonicSessionBot, BotonicSessionHubtypeCase, BotonicSessionUser, BotonicSessionUserContactInfoItem, UserExtraData } from '@botonic/shared';
|
|
3
|
+
import { WebchatClientSettings } from '@botonic/shared';
|
|
4
|
+
import { BotonicAction } from './botonic-action';
|
|
5
|
+
export type { UserExtraData };
|
|
6
|
+
export interface BotonicRequestSessionBasicEntity {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
}
|
|
10
|
+
export type BotonicRequestSessionOrganization = BotonicRequestSessionBasicEntity;
|
|
11
|
+
export type BotonicRequestSessionBot = BotonicRequestSessionBasicEntity;
|
|
12
|
+
export interface BotonicRequestSessionUserContactInfoItem {
|
|
13
|
+
name: string;
|
|
14
|
+
type: string;
|
|
15
|
+
value: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface BotonicRequestSessionChannel {
|
|
19
|
+
provider: MessagingChannel;
|
|
20
|
+
imp_id?: string;
|
|
21
|
+
unformatted_phone_number?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface BotonicRequestSessionUser<TExtraData extends UserExtraData = UserExtraData> {
|
|
24
|
+
id: string;
|
|
25
|
+
provider_id: string;
|
|
26
|
+
name?: string;
|
|
27
|
+
override_name?: string;
|
|
28
|
+
extra_data?: TExtraData;
|
|
29
|
+
contact_info?: BotonicRequestSessionUserContactInfoItem[];
|
|
30
|
+
locale: string;
|
|
31
|
+
country: string;
|
|
32
|
+
system_locale: string;
|
|
33
|
+
}
|
|
34
|
+
export interface BotonicRequestSession<TExtraData extends UserExtraData = UserExtraData> {
|
|
35
|
+
organization: BotonicRequestSessionOrganization;
|
|
36
|
+
bot: BotonicRequestSessionBot;
|
|
37
|
+
channel: BotonicRequestSessionChannel;
|
|
38
|
+
user: BotonicRequestSessionUser<TExtraData>;
|
|
39
|
+
is_test_integration: boolean;
|
|
40
|
+
is_first_interaction: boolean;
|
|
41
|
+
shadowing: boolean;
|
|
42
|
+
flow_thread_id?: string;
|
|
43
|
+
had_hubtype_handoff: boolean;
|
|
44
|
+
hubtype_case?: BotonicSessionHubtypeCase;
|
|
45
|
+
custom: Record<string, any>;
|
|
46
|
+
external: Record<string, any>;
|
|
47
|
+
webviews_custom: Record<string, any>;
|
|
48
|
+
webchat_client_settings: WebchatClientSettings;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Hydrated BotonicSession from Lambda `session`.
|
|
52
|
+
* Field names match backend `model_dump(mode="json")` (snake_case).
|
|
53
|
+
*/
|
|
54
|
+
export interface BotonicSessionUpdate<TExtraData extends UserExtraData = UserExtraData> {
|
|
55
|
+
shadowing?: boolean | null;
|
|
56
|
+
flowThreadId?: string | null;
|
|
57
|
+
custom?: Record<string, unknown>;
|
|
58
|
+
webviewsCustom?: Record<string, unknown>;
|
|
59
|
+
webchatClientSettings?: Record<string, unknown>;
|
|
60
|
+
/** Flow Builder capture node id; maps to `capture_user_input_node_id` on `PATCH …/session/`. */
|
|
61
|
+
captureUserInputNodeId?: string | null;
|
|
62
|
+
/** Stored as `_botonic_action` on session; not sent on v2 session PATCH. */
|
|
63
|
+
botonicAction?: string | null;
|
|
64
|
+
/** Maps to `is_first_interaction` on session; included in `PATCH …/session/` when set. */
|
|
65
|
+
isFirstInteraction?: boolean;
|
|
66
|
+
user?: {
|
|
67
|
+
overrideName?: string | null;
|
|
68
|
+
extraData?: TExtraData;
|
|
69
|
+
locale?: string;
|
|
70
|
+
country?: string;
|
|
71
|
+
systemLocale?: string;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Maps camelCase session updates to snake_case PATCH body (v2 only).
|
|
76
|
+
*/
|
|
77
|
+
export declare function sessionUpdateToPatchBody<TExtraData extends UserExtraData = UserExtraData>(update: BotonicSessionUpdate<TExtraData>): Record<string, unknown>;
|
|
78
|
+
/**
|
|
79
|
+
* Mutates `session.raw` immediately so the rest of the turn sees updates.
|
|
80
|
+
* Handles `capture_user_input_node_id` (mirror of {@link sessionUpdateToPatchBody}) and
|
|
81
|
+
* `_botonic_action` (not sent on session PATCH).
|
|
82
|
+
* For `isFirstInteraction`, also updates in-memory `is_first_interaction`; the same
|
|
83
|
+
* value is emitted by {@link sessionUpdateToPatchBody} for `PATCH …/session/`.
|
|
84
|
+
*/
|
|
85
|
+
export declare function applyNonPatchSessionUpdateFields<TExtraData extends UserExtraData = UserExtraData>(session: BotonicSession<TExtraData>, updates: BotonicSessionUpdate<TExtraData>): void;
|
|
86
|
+
/**
|
|
87
|
+
* Maps `BotonicSessionUpdate.user` to `PATCH …/users/<user_id>/` body (ChatUserPatchSerializer keys, snake_case).
|
|
88
|
+
* Unknown keys are omitted — only serializer fields are sent.
|
|
89
|
+
*/
|
|
90
|
+
export declare function userUpdateToChatUserPatchBody<TExtraData extends UserExtraData = UserExtraData>(user: BotonicSessionUpdate<TExtraData>['user'] | undefined): Record<string, unknown>;
|
|
91
|
+
export declare class BotonicContextSessionUser<TExtraData extends UserExtraData = UserExtraData> {
|
|
92
|
+
private rawUser;
|
|
93
|
+
private readonly onUserUpdate?;
|
|
94
|
+
constructor(rawUser: BotonicSessionUser<TExtraData>, onUserUpdate?: ((updates: {
|
|
95
|
+
extraData?: TExtraData;
|
|
96
|
+
}) => void) | undefined);
|
|
97
|
+
get raw(): BotonicSessionUser<TExtraData>;
|
|
98
|
+
get id(): string;
|
|
99
|
+
get username(): string | undefined;
|
|
100
|
+
get name(): string | undefined;
|
|
101
|
+
get overrideName(): string | undefined;
|
|
102
|
+
get providerId(): string;
|
|
103
|
+
get locale(): string;
|
|
104
|
+
set locale(v: string);
|
|
105
|
+
get country(): string;
|
|
106
|
+
set country(v: string);
|
|
107
|
+
get systemLocale(): string;
|
|
108
|
+
set systemLocale(v: string);
|
|
109
|
+
get extraData(): TExtraData | undefined;
|
|
110
|
+
set extraData(v: TExtraData | undefined);
|
|
111
|
+
get contactInfo(): BotonicSessionUserContactInfoItem[] | undefined;
|
|
112
|
+
}
|
|
113
|
+
export declare class BotonicContextSession<TExtraData extends UserExtraData = UserExtraData> {
|
|
114
|
+
private sessionData;
|
|
115
|
+
private onUpdate?;
|
|
116
|
+
constructor(sessionData: BotonicSession<TExtraData>);
|
|
117
|
+
setOnUpdate(cb: (updates: BotonicSessionUpdate<TExtraData>) => void): void;
|
|
118
|
+
/** Replace underlying session object (e.g. after GET session from Hubtype). */
|
|
119
|
+
replaceSession(next: BotonicSession<TExtraData>): void;
|
|
120
|
+
get raw(): BotonicSession<TExtraData>;
|
|
121
|
+
get bot(): BotonicSessionBot;
|
|
122
|
+
get user(): BotonicContextSessionUser<TExtraData>;
|
|
123
|
+
get organizationId(): string;
|
|
124
|
+
get organizationName(): string;
|
|
125
|
+
get isFirstInteraction(): boolean;
|
|
126
|
+
set isFirstInteraction(v: boolean);
|
|
127
|
+
get botonicAction(): string | undefined;
|
|
128
|
+
set botonicAction(v: string | undefined);
|
|
129
|
+
isBotonicActionRedirect(): boolean;
|
|
130
|
+
getBotonicActionPayload(action: BotonicAction): string | undefined;
|
|
131
|
+
get isTestIntegration(): boolean;
|
|
132
|
+
get flowThreadId(): string | null | undefined;
|
|
133
|
+
get shadowing(): boolean | undefined;
|
|
134
|
+
set shadowing(v: boolean | undefined);
|
|
135
|
+
get hadHubtypeHandoff(): boolean | undefined;
|
|
136
|
+
get hubtypeCase(): BotonicSessionHubtypeCase | undefined;
|
|
137
|
+
/** Convenience for legacy code paths; prefer {@link hubtypeCase}. */
|
|
138
|
+
get hubtypeCaseId(): string | undefined;
|
|
139
|
+
get custom(): Record<string, unknown> | undefined;
|
|
140
|
+
get external(): Record<string, unknown> | undefined;
|
|
141
|
+
get webviewsCustom(): Record<string, unknown> | undefined;
|
|
142
|
+
set webviewsCustom(v: Record<string, unknown> | undefined);
|
|
143
|
+
get webchatClientSettings(): WebchatClientSettings;
|
|
144
|
+
set webchatClientSettings(v: WebchatClientSettings);
|
|
145
|
+
/** Flow Builder: node id capturing user input (`capture_user_input_node_id` in JSON). */
|
|
146
|
+
get captureUserInputNodeId(): string | undefined;
|
|
147
|
+
/** Channel provider (e.g. webchat, whatsapp). */
|
|
148
|
+
get provider(): string;
|
|
149
|
+
get impId(): string;
|
|
150
|
+
get unformattedPhoneNumber(): string | undefined;
|
|
151
|
+
isDev(): boolean;
|
|
152
|
+
isWebchat(): boolean;
|
|
153
|
+
isTelegram(): boolean;
|
|
154
|
+
isFacebook(): boolean;
|
|
155
|
+
isInstagram(): boolean;
|
|
156
|
+
isTwitter(): boolean;
|
|
157
|
+
isWhatsapp(): boolean;
|
|
158
|
+
hasFlowThreadId(): boolean;
|
|
159
|
+
}
|