@botonic/shared 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 +25 -2
- package/README.md +9 -0
- package/package.json +1 -2
- 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 -2
- package/src/lib/domain/index.js +1 -4
- package/src/lib/domain/index.js.map +1 -1
- package/src/lib/hubtype-analytics-types.d.ts +2 -2
- package/src/lib/index.d.ts +3 -3
- package/src/lib/index.js +6 -6
- package/src/lib/index.js.map +1 -1
- package/src/lib/services/handoff.d.ts +18 -0
- package/src/lib/services/handoff.js +23 -0
- package/src/lib/services/handoff.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/services/webchat-api.d.ts +8 -5
- 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
- package/src/lib/domain/server/bot-server-message.d.ts +0 -65
- package/src/lib/domain/server/bot-server-message.js +0 -106
- package/src/lib/domain/server/bot-server-message.js.map +0 -1
- package/src/lib/domain/server/botonic-context/botonic-context-input.d.ts +0 -99
- package/src/lib/domain/server/botonic-context/botonic-context-input.js +0 -124
- package/src/lib/domain/server/botonic-context/botonic-context-input.js.map +0 -1
- package/src/lib/domain/server/botonic-context/botonic-context-session.d.ts +0 -146
- package/src/lib/domain/server/botonic-context/botonic-context-session.js +0 -209
- package/src/lib/domain/server/botonic-context/botonic-context-session.js.map +0 -1
- package/src/lib/domain/server/botonic-context/botonic-context.d.ts +0 -56
- package/src/lib/domain/server/botonic-context/botonic-context.js +0 -23
- package/src/lib/domain/server/botonic-context/botonic-context.js.map +0 -1
- package/src/lib/domain/server/botonic-context/factory.d.ts +0 -23
- package/src/lib/domain/server/botonic-context/factory.js +0 -31
- package/src/lib/domain/server/botonic-context/factory.js.map +0 -1
- package/src/lib/domain/server/botonic-context/index.d.ts +0 -5
- package/src/lib/domain/server/botonic-context/index.js +0 -6
- package/src/lib/domain/server/botonic-context/index.js.map +0 -1
- package/src/lib/domain/server/botonic-context/types.d.ts +0 -20
- package/src/lib/domain/server/botonic-context/types.js +0 -6
- package/src/lib/domain/server/botonic-context/types.js.map +0 -1
- package/src/lib/domain/server/factory.d.ts +0 -166
- package/src/lib/domain/server/factory.js +0 -166
- package/src/lib/domain/server/factory.js.map +0 -1
- package/src/lib/domain/server/index.d.ts +0 -3
- package/src/lib/domain/server/index.js +0 -4
- package/src/lib/domain/server/index.js.map +0 -1
- package/src/lib/domain/webchat/factory.d.ts +0 -81
- package/src/lib/domain/webchat/factory.js +0 -73
- package/src/lib/domain/webchat/factory.js.map +0 -1
- package/src/lib/domain/webchat/index.d.ts +0 -4
- package/src/lib/domain/webchat/index.js +0 -5
- package/src/lib/domain/webchat/index.js.map +0 -1
- package/src/lib/domain/webchat/realtime/factory.d.ts +0 -52
- package/src/lib/domain/webchat/realtime/factory.js +0 -66
- package/src/lib/domain/webchat/realtime/factory.js.map +0 -1
- package/src/lib/domain/webchat/realtime/index.d.ts +0 -2
- package/src/lib/domain/webchat/realtime/index.js +0 -3
- package/src/lib/domain/webchat/realtime/index.js.map +0 -1
- package/src/lib/domain/webchat/realtime/realtime-response-message.d.ts +0 -47
- package/src/lib/domain/webchat/realtime/realtime-response-message.js +0 -68
- package/src/lib/domain/webchat/realtime/realtime-response-message.js.map +0 -1
- package/src/lib/domain/webchat/user/factory.d.ts +0 -52
- package/src/lib/domain/webchat/user/factory.js +0 -59
- package/src/lib/domain/webchat/user/factory.js.map +0 -1
- package/src/lib/domain/webchat/user/index.d.ts +0 -2
- package/src/lib/domain/webchat/user/index.js +0 -3
- package/src/lib/domain/webchat/user/index.js.map +0 -1
- package/src/lib/domain/webchat/user/user-input-message.d.ts +0 -34
- package/src/lib/domain/webchat/user/user-input-message.js +0 -59
- package/src/lib/domain/webchat/user/user-input-message.js.map +0 -1
- package/src/lib/domain/webchat/webchat-message.d.ts +0 -55
- package/src/lib/domain/webchat/webchat-message.js +0 -69
- package/src/lib/domain/webchat/webchat-message.js.map +0 -1
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { BotonicPostbackData, BotonicTextData, MessageType, } from '../../botonic/types';
|
|
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
|
-
* Runtime class that wraps Input and exposes accessor methods for common attributes.
|
|
35
|
-
* Use this as BotRequest.input so consumers can call request.input.text,
|
|
36
|
-
* request.input.payload, etc.
|
|
37
|
-
*/
|
|
38
|
-
export class BotonicContextInput {
|
|
39
|
-
// TODO: if implements RequestInputV2 and message_id is required, throw an error because BotonicContextInput has 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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"botonic-context-input.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/server/botonic-context/botonic-context-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { MessagingChannel } from '../../../shared-types';
|
|
2
|
-
export interface ContactInfo {
|
|
3
|
-
name: string;
|
|
4
|
-
type: string;
|
|
5
|
-
value: string;
|
|
6
|
-
description?: string;
|
|
7
|
-
}
|
|
8
|
-
export interface BotonicRequestSessionBot {
|
|
9
|
-
id: string;
|
|
10
|
-
name?: string;
|
|
11
|
-
}
|
|
12
|
-
/** Extra data attached to session user. API and runtime treat it as a string-keyed object. */
|
|
13
|
-
export type UserExtraData = Record<string, any>;
|
|
14
|
-
export interface BotonicRequestSessionUser<TExtraData extends UserExtraData = UserExtraData> {
|
|
15
|
-
id: string;
|
|
16
|
-
username?: string;
|
|
17
|
-
name?: string;
|
|
18
|
-
provider: MessagingChannel;
|
|
19
|
-
imp_id?: string;
|
|
20
|
-
provider_id?: string;
|
|
21
|
-
chat_id?: string;
|
|
22
|
-
extra_data?: TExtraData;
|
|
23
|
-
locale: string;
|
|
24
|
-
country: string;
|
|
25
|
-
system_locale: string;
|
|
26
|
-
contact_info?: ContactInfo[];
|
|
27
|
-
}
|
|
28
|
-
export interface CaptureUserInput {
|
|
29
|
-
node_id: string;
|
|
30
|
-
}
|
|
31
|
-
export declare enum BotonicAction {
|
|
32
|
-
Redirect = "redirect_action",
|
|
33
|
-
CreateCase = "create_case",
|
|
34
|
-
DeleteUser = "delete_user",
|
|
35
|
-
DiscardCase = "discard_case"
|
|
36
|
-
}
|
|
37
|
-
type BotonicActionSeparator = ':';
|
|
38
|
-
export type BotonicActionType = `${BotonicAction.CreateCase}${BotonicActionSeparator}${string}` | `${BotonicAction.Redirect}${BotonicActionSeparator}${string}` | `${BotonicAction.DiscardCase}${BotonicActionSeparator}${string}` | `${BotonicAction.DiscardCase}` | `${BotonicAction.DeleteUser}`;
|
|
39
|
-
export interface BotonicRequestSession<TExtraData extends UserExtraData = UserExtraData> {
|
|
40
|
-
bot: BotonicRequestSessionBot;
|
|
41
|
-
user: BotonicRequestSessionUser<TExtraData>;
|
|
42
|
-
organization: string;
|
|
43
|
-
organization_id: string;
|
|
44
|
-
__retries: number;
|
|
45
|
-
is_first_interaction: boolean;
|
|
46
|
-
is_test_integration: boolean;
|
|
47
|
-
flow_thread_id: string;
|
|
48
|
-
_access_token: string;
|
|
49
|
-
_botonic_action?: BotonicActionType;
|
|
50
|
-
_hubtype_api: string;
|
|
51
|
-
_shadowing?: boolean;
|
|
52
|
-
_hubtype_case_id?: string;
|
|
53
|
-
capture_user_input?: CaptureUserInput;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Developer-friendly subset of session attributes that can be updated.
|
|
57
|
-
* Pass only the fields you want to change; they are converted to API shape internally.
|
|
58
|
-
*/
|
|
59
|
-
export interface BotonicSessionUpdate<TExtraData extends UserExtraData = UserExtraData> {
|
|
60
|
-
isFirstInteraction?: boolean;
|
|
61
|
-
botonicAction?: BotonicActionType | null;
|
|
62
|
-
flowThreadId?: string;
|
|
63
|
-
captureUserInput?: CaptureUserInput;
|
|
64
|
-
user?: {
|
|
65
|
-
extraData?: TExtraData;
|
|
66
|
-
systemLocale?: string;
|
|
67
|
-
locale?: string;
|
|
68
|
-
country?: string;
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Converts a developer-facing session update (camelCase) to the raw PATCH body shape (snake_case).
|
|
73
|
-
*/
|
|
74
|
-
export declare function sessionUpdateToPatchBody<TExtraData extends UserExtraData = UserExtraData>(update: BotonicSessionUpdate<TExtraData>): Partial<BotonicRequestSession<TExtraData>>;
|
|
75
|
-
/**
|
|
76
|
-
* Runtime class that wraps SessionUser and exposes accessor methods for common attributes.
|
|
77
|
-
* Use this as request.session.user so consumers can call request.session.user.locale,
|
|
78
|
-
* request.session.user.extraData, etc.
|
|
79
|
-
*/
|
|
80
|
-
export declare class BotonicContextSessionUser<TExtraData extends UserExtraData = UserExtraData> {
|
|
81
|
-
private rawUser;
|
|
82
|
-
private readonly onUserUpdate?;
|
|
83
|
-
constructor(rawUser: BotonicRequestSessionUser<TExtraData>, onUserUpdate?: ((updates: {
|
|
84
|
-
extraData?: TExtraData;
|
|
85
|
-
}) => void) | undefined);
|
|
86
|
-
/** Raw user for API calls and serialization. */
|
|
87
|
-
get raw(): BotonicRequestSessionUser<TExtraData>;
|
|
88
|
-
get id(): string;
|
|
89
|
-
get username(): string | undefined;
|
|
90
|
-
get name(): string | undefined;
|
|
91
|
-
get provider(): string;
|
|
92
|
-
get impId(): string | undefined;
|
|
93
|
-
get chatId(): string | undefined;
|
|
94
|
-
get locale(): string;
|
|
95
|
-
set locale(v: string);
|
|
96
|
-
get country(): string;
|
|
97
|
-
set country(v: string);
|
|
98
|
-
get systemLocale(): string;
|
|
99
|
-
set systemLocale(v: string);
|
|
100
|
-
get extraData(): TExtraData | undefined;
|
|
101
|
-
set extraData(v: TExtraData | undefined);
|
|
102
|
-
get contactInfo(): ContactInfo[] | undefined;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Runtime class that wraps Session and exposes accessor methods for common attributes.
|
|
106
|
-
* Use this as BotRequest.session so consumers can call request.session.user.id,
|
|
107
|
-
* request.session.bot.id, etc.
|
|
108
|
-
*/
|
|
109
|
-
export declare class BotonicContextSession<TExtraData extends UserExtraData = UserExtraData> {
|
|
110
|
-
private rawSession;
|
|
111
|
-
private onUpdate?;
|
|
112
|
-
constructor(rawSession: BotonicRequestSession<TExtraData>);
|
|
113
|
-
/** Register a callback to run when session is mutated (e.g. user.extraData set). Calls updateBotSession internally. */
|
|
114
|
-
setOnUpdate(cb: (updates: BotonicSessionUpdate<TExtraData>) => void): void;
|
|
115
|
-
/** Raw session for API calls and serialization (e.g. lambda context). */
|
|
116
|
-
get raw(): BotonicRequestSession<TExtraData>;
|
|
117
|
-
get bot(): BotonicRequestSessionBot;
|
|
118
|
-
get user(): BotonicContextSessionUser<TExtraData>;
|
|
119
|
-
get organization(): string;
|
|
120
|
-
get organizationId(): string;
|
|
121
|
-
get retries(): number;
|
|
122
|
-
get isFirstInteraction(): boolean;
|
|
123
|
-
get isTestIntegration(): boolean;
|
|
124
|
-
get flowThreadId(): string;
|
|
125
|
-
get accessToken(): string;
|
|
126
|
-
get botonicAction(): BotonicActionType | undefined;
|
|
127
|
-
set botonicAction(v: BotonicActionType | undefined);
|
|
128
|
-
get hubtypeApi(): string;
|
|
129
|
-
get shadowing(): boolean | undefined;
|
|
130
|
-
get hubtypeCaseId(): string | undefined;
|
|
131
|
-
get captureUserInput(): {
|
|
132
|
-
node_id: string;
|
|
133
|
-
} | undefined;
|
|
134
|
-
isDev(): boolean;
|
|
135
|
-
isWebchat(): boolean;
|
|
136
|
-
isTelegram(): boolean;
|
|
137
|
-
isFacebook(): boolean;
|
|
138
|
-
isInstagram(): boolean;
|
|
139
|
-
isTwitter(): boolean;
|
|
140
|
-
isWhatsapp(): boolean;
|
|
141
|
-
isBotonicActionRedirect(): boolean;
|
|
142
|
-
getBotonicActionPayload(action: BotonicAction): string | undefined;
|
|
143
|
-
/** True when the session has a flow thread id. */
|
|
144
|
-
hasFlowThreadId(): boolean;
|
|
145
|
-
}
|
|
146
|
-
export {};
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import { MessagingChannel } from '../../../shared-types';
|
|
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
|
-
/**
|
|
10
|
-
* Converts a developer-facing session update (camelCase) to the raw PATCH body shape (snake_case).
|
|
11
|
-
*/
|
|
12
|
-
export function sessionUpdateToPatchBody(update) {
|
|
13
|
-
var _a;
|
|
14
|
-
const raw = {};
|
|
15
|
-
if (update.isFirstInteraction !== undefined) {
|
|
16
|
-
raw.is_first_interaction = update.isFirstInteraction;
|
|
17
|
-
}
|
|
18
|
-
if ('botonicAction' in update) {
|
|
19
|
-
raw._botonic_action =
|
|
20
|
-
(_a = update.botonicAction) !== null && _a !== void 0 ? _a : null;
|
|
21
|
-
}
|
|
22
|
-
if (update.flowThreadId !== undefined) {
|
|
23
|
-
raw.flow_thread_id = update.flowThreadId;
|
|
24
|
-
}
|
|
25
|
-
if (update.captureUserInput !== undefined) {
|
|
26
|
-
raw.capture_user_input = update.captureUserInput;
|
|
27
|
-
}
|
|
28
|
-
if (update.user !== undefined) {
|
|
29
|
-
const u = update.user;
|
|
30
|
-
const userPatch = {};
|
|
31
|
-
if (u.extraData !== undefined)
|
|
32
|
-
userPatch.extra_data = u.extraData;
|
|
33
|
-
if (u.systemLocale !== undefined)
|
|
34
|
-
userPatch.system_locale = u.systemLocale;
|
|
35
|
-
if (u.locale !== undefined)
|
|
36
|
-
userPatch.locale = u.locale;
|
|
37
|
-
if (u.country !== undefined)
|
|
38
|
-
userPatch.country = u.country;
|
|
39
|
-
if (Object.keys(userPatch).length > 0) {
|
|
40
|
-
;
|
|
41
|
-
raw.user = userPatch;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return raw;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Runtime class that wraps SessionUser and exposes accessor methods for common attributes.
|
|
48
|
-
* Use this as request.session.user so consumers can call request.session.user.locale,
|
|
49
|
-
* request.session.user.extraData, etc.
|
|
50
|
-
*/
|
|
51
|
-
// TODO: Should we do call updateSession against API each time a setter is called?
|
|
52
|
-
// feedback TODO: Actually, all sets of this class should use an API call to update the value in the database through the backend. And perhaps the gets should read the data in the same way (I'm not sure about this last point).
|
|
53
|
-
export class BotonicContextSessionUser {
|
|
54
|
-
constructor(rawUser, onUserUpdate) {
|
|
55
|
-
this.rawUser = rawUser;
|
|
56
|
-
this.onUserUpdate = onUserUpdate;
|
|
57
|
-
}
|
|
58
|
-
/** Raw user for API calls and serialization. */
|
|
59
|
-
get raw() {
|
|
60
|
-
return this.rawUser;
|
|
61
|
-
}
|
|
62
|
-
get id() {
|
|
63
|
-
return this.rawUser.id;
|
|
64
|
-
}
|
|
65
|
-
get username() {
|
|
66
|
-
return this.rawUser.username;
|
|
67
|
-
}
|
|
68
|
-
get name() {
|
|
69
|
-
return this.rawUser.name;
|
|
70
|
-
}
|
|
71
|
-
get provider() {
|
|
72
|
-
return this.rawUser.provider;
|
|
73
|
-
}
|
|
74
|
-
get impId() {
|
|
75
|
-
return this.rawUser.imp_id;
|
|
76
|
-
}
|
|
77
|
-
get chatId() {
|
|
78
|
-
return this.rawUser.chat_id;
|
|
79
|
-
}
|
|
80
|
-
get locale() {
|
|
81
|
-
return this.rawUser.locale;
|
|
82
|
-
}
|
|
83
|
-
set locale(v) {
|
|
84
|
-
this.rawUser.locale = v;
|
|
85
|
-
}
|
|
86
|
-
get country() {
|
|
87
|
-
return this.rawUser.country;
|
|
88
|
-
}
|
|
89
|
-
set country(v) {
|
|
90
|
-
this.rawUser.country = v;
|
|
91
|
-
}
|
|
92
|
-
get systemLocale() {
|
|
93
|
-
return this.rawUser.system_locale;
|
|
94
|
-
}
|
|
95
|
-
set systemLocale(v) {
|
|
96
|
-
this.rawUser.system_locale = v;
|
|
97
|
-
}
|
|
98
|
-
get extraData() {
|
|
99
|
-
return this.rawUser.extra_data;
|
|
100
|
-
}
|
|
101
|
-
set extraData(v) {
|
|
102
|
-
var _a;
|
|
103
|
-
this.rawUser.extra_data = v;
|
|
104
|
-
void ((_a = this.onUserUpdate) === null || _a === void 0 ? void 0 : _a.call(this, { extraData: v }));
|
|
105
|
-
}
|
|
106
|
-
get contactInfo() {
|
|
107
|
-
return this.rawUser.contact_info;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Runtime class that wraps Session and exposes accessor methods for common attributes.
|
|
112
|
-
* Use this as BotRequest.session so consumers can call request.session.user.id,
|
|
113
|
-
* request.session.bot.id, etc.
|
|
114
|
-
*/
|
|
115
|
-
export class BotonicContextSession {
|
|
116
|
-
constructor(rawSession) {
|
|
117
|
-
this.rawSession = rawSession;
|
|
118
|
-
}
|
|
119
|
-
/** Register a callback to run when session is mutated (e.g. user.extraData set). Calls updateBotSession internally. */
|
|
120
|
-
setOnUpdate(cb) {
|
|
121
|
-
this.onUpdate = cb;
|
|
122
|
-
}
|
|
123
|
-
/** Raw session for API calls and serialization (e.g. lambda context). */
|
|
124
|
-
get raw() {
|
|
125
|
-
return this.rawSession;
|
|
126
|
-
}
|
|
127
|
-
get bot() {
|
|
128
|
-
return this.rawSession.bot;
|
|
129
|
-
}
|
|
130
|
-
get user() {
|
|
131
|
-
return new BotonicContextSessionUser(this.rawSession.user,
|
|
132
|
-
// Automatically updates the session when the user is updated (e.g. when the user.extraData is set)
|
|
133
|
-
this.onUpdate ? updates => this.onUpdate({ user: updates }) : undefined);
|
|
134
|
-
}
|
|
135
|
-
get organization() {
|
|
136
|
-
return this.rawSession.organization;
|
|
137
|
-
}
|
|
138
|
-
get organizationId() {
|
|
139
|
-
return this.rawSession.organization_id;
|
|
140
|
-
}
|
|
141
|
-
get retries() {
|
|
142
|
-
return this.rawSession.__retries;
|
|
143
|
-
}
|
|
144
|
-
get isFirstInteraction() {
|
|
145
|
-
return this.rawSession.is_first_interaction;
|
|
146
|
-
}
|
|
147
|
-
get isTestIntegration() {
|
|
148
|
-
return this.rawSession.is_test_integration;
|
|
149
|
-
}
|
|
150
|
-
get flowThreadId() {
|
|
151
|
-
return this.rawSession.flow_thread_id;
|
|
152
|
-
}
|
|
153
|
-
get accessToken() {
|
|
154
|
-
return this.rawSession._access_token;
|
|
155
|
-
}
|
|
156
|
-
get botonicAction() {
|
|
157
|
-
return this.rawSession._botonic_action;
|
|
158
|
-
}
|
|
159
|
-
set botonicAction(v) {
|
|
160
|
-
this.rawSession._botonic_action = v;
|
|
161
|
-
}
|
|
162
|
-
get hubtypeApi() {
|
|
163
|
-
return this.rawSession._hubtype_api;
|
|
164
|
-
}
|
|
165
|
-
get shadowing() {
|
|
166
|
-
return this.rawSession._shadowing;
|
|
167
|
-
}
|
|
168
|
-
get hubtypeCaseId() {
|
|
169
|
-
return this.rawSession._hubtype_case_id;
|
|
170
|
-
}
|
|
171
|
-
get captureUserInput() {
|
|
172
|
-
return this.rawSession.capture_user_input;
|
|
173
|
-
}
|
|
174
|
-
// TODO: Still needed?
|
|
175
|
-
isDev() {
|
|
176
|
-
return this.user.provider === MessagingChannel.Webchat;
|
|
177
|
-
}
|
|
178
|
-
isWebchat() {
|
|
179
|
-
return this.user.provider === MessagingChannel.Webchat;
|
|
180
|
-
}
|
|
181
|
-
isTelegram() {
|
|
182
|
-
return this.user.provider === MessagingChannel.Telegram;
|
|
183
|
-
}
|
|
184
|
-
isFacebook() {
|
|
185
|
-
return this.user.provider === MessagingChannel.Facebook;
|
|
186
|
-
}
|
|
187
|
-
isInstagram() {
|
|
188
|
-
return this.user.provider === MessagingChannel.Instagram;
|
|
189
|
-
}
|
|
190
|
-
isTwitter() {
|
|
191
|
-
return this.user.provider === MessagingChannel.Twitter;
|
|
192
|
-
}
|
|
193
|
-
isWhatsapp() {
|
|
194
|
-
return this.user.provider === MessagingChannel.Whatsapp;
|
|
195
|
-
}
|
|
196
|
-
isBotonicActionRedirect() {
|
|
197
|
-
var _a, _b;
|
|
198
|
-
return (_b = (_a = this.botonicAction) === null || _a === void 0 ? void 0 : _a.startsWith(BotonicAction.Redirect)) !== null && _b !== void 0 ? _b : false;
|
|
199
|
-
}
|
|
200
|
-
getBotonicActionPayload(action) {
|
|
201
|
-
var _a;
|
|
202
|
-
return (_a = this.botonicAction) === null || _a === void 0 ? void 0 : _a.split(action + ':')[1];
|
|
203
|
-
}
|
|
204
|
-
/** True when the session has a flow thread id. */
|
|
205
|
-
hasFlowThreadId() {
|
|
206
|
-
return this.flowThreadId !== undefined && this.flowThreadId !== '';
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
//# sourceMappingURL=botonic-context-session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"botonic-context-session.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/server/botonic-context/botonic-context-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { BotServerMessage } from '../bot-server-message';
|
|
2
|
-
import { BotonicContextInput } from './botonic-context-input';
|
|
3
|
-
import { BotonicContextSession, BotonicSessionUpdate, UserExtraData } from './botonic-context-session';
|
|
4
|
-
import type { ActionResponse, ResolvedPlugins } from './types';
|
|
5
|
-
/** Result of creating input/session from raw lambda request (used by BotonicContextFactory). */
|
|
6
|
-
export interface BotContextType<TExtraData extends UserExtraData = UserExtraData> {
|
|
7
|
-
input: BotonicContextInput;
|
|
8
|
-
session: BotonicContextSession<TExtraData>;
|
|
9
|
-
}
|
|
10
|
-
/** Options for handoff to human agent. */
|
|
11
|
-
export interface HandoffOptions {
|
|
12
|
-
queue?: string;
|
|
13
|
-
on_finish?: string;
|
|
14
|
-
agent_email?: string;
|
|
15
|
-
agent_id?: string;
|
|
16
|
-
case_info?: string;
|
|
17
|
-
note?: string;
|
|
18
|
-
shadowing?: boolean;
|
|
19
|
-
auto_idle_message?: string;
|
|
20
|
-
force_assign_if_not_available?: boolean;
|
|
21
|
-
auto_assign_on_waiting?: boolean;
|
|
22
|
-
case_extra_data?: Record<string, unknown>;
|
|
23
|
-
bot_event?: {
|
|
24
|
-
flow_id: string;
|
|
25
|
-
flow_name: string;
|
|
26
|
-
flow_node_id: string;
|
|
27
|
-
flow_node_content_id: string;
|
|
28
|
-
};
|
|
29
|
-
subscribe_helpdesk_events?: string[];
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Abstraction for Hubtype API operations. Core implements this via HubtypeExternalAPIService.
|
|
33
|
-
* Injected into BotonicContextFactory so context creation lives in shared.
|
|
34
|
-
*/
|
|
35
|
-
export interface HubtypeServicePort {
|
|
36
|
-
sendMessage(botContext: BotContext, message: BotServerMessage): Promise<unknown>;
|
|
37
|
-
doHandoff(botContext: BotContext, handoffOptions?: HandoffOptions): Promise<unknown>;
|
|
38
|
-
getBotSession(botContext: BotContext): Promise<unknown>;
|
|
39
|
-
updateBotSession<TExtraData extends UserExtraData = UserExtraData>(botContext: BotContext<ResolvedPlugins, TExtraData>, updates: BotonicSessionUpdate<TExtraData>): Promise<void>;
|
|
40
|
-
}
|
|
41
|
-
/** Full execution context with input, session, and hubtype service methods. */
|
|
42
|
-
export declare class BotContext<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData extends UserExtraData = UserExtraData> implements BotContextType<TExtraData> {
|
|
43
|
-
private readonly hubtypeService;
|
|
44
|
-
input: BotonicContextInput;
|
|
45
|
-
session: BotonicContextSession<TExtraData>;
|
|
46
|
-
defaultDelay: number;
|
|
47
|
-
defaultTyping: number;
|
|
48
|
-
params: Record<string, string>;
|
|
49
|
-
plugins: TPlugins;
|
|
50
|
-
response?: ActionResponse;
|
|
51
|
-
constructor(hubtypeService: HubtypeServicePort, base: BotContextType<TExtraData>, plugins: TPlugins, defaultTyping: number, defaultDelay: number, response?: ActionResponse);
|
|
52
|
-
sendMessage: (message: BotServerMessage) => Promise<unknown>;
|
|
53
|
-
doHandoff: (handoffOptions?: HandoffOptions) => Promise<unknown>;
|
|
54
|
-
getBotSession: () => Promise<unknown>;
|
|
55
|
-
updateBotSession: (updates: BotonicSessionUpdate<TExtraData>) => Promise<void>;
|
|
56
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
/** Full execution context with input, session, and hubtype service methods. */
|
|
3
|
-
export class BotContext {
|
|
4
|
-
constructor(hubtypeService, base, plugins, defaultTyping, defaultDelay, response) {
|
|
5
|
-
this.hubtypeService = hubtypeService;
|
|
6
|
-
this.sendMessage = (message) => __awaiter(this, void 0, void 0, function* () { return this.hubtypeService.sendMessage(this, message); });
|
|
7
|
-
this.doHandoff = (handoffOptions) => __awaiter(this, void 0, void 0, function* () { return this.hubtypeService.doHandoff(this, handoffOptions); });
|
|
8
|
-
this.getBotSession = () => __awaiter(this, void 0, void 0, function* () { return this.hubtypeService.getBotSession(this); });
|
|
9
|
-
this.updateBotSession = (updates) => __awaiter(this, void 0, void 0, function* () {
|
|
10
|
-
yield this.hubtypeService.updateBotSession(this, updates);
|
|
11
|
-
this.session.setOnUpdate(u => this.updateBotSession(u));
|
|
12
|
-
});
|
|
13
|
-
this.input = base.input;
|
|
14
|
-
this.session = base.session;
|
|
15
|
-
this.params = {};
|
|
16
|
-
this.plugins = plugins;
|
|
17
|
-
this.defaultTyping = defaultTyping;
|
|
18
|
-
this.defaultDelay = defaultDelay;
|
|
19
|
-
this.response = response;
|
|
20
|
-
this.session.setOnUpdate(u => this.updateBotSession(u));
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=botonic-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"botonic-context.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/server/botonic-context/botonic-context.ts"],"names":[],"mappings":";AA2DA,+EAA+E;AAC/E,MAAM,OAAO,UAAU;IAYrB,YACmB,cAAkC,EACnD,IAAgC,EAChC,OAAiB,EACjB,aAAqB,EACrB,YAAoB,EACpB,QAAyB;QALR,mBAAc,GAAd,cAAc,CAAoB;QAiBrD,gBAAW,GAAG,CAAO,OAAyB,EAAE,EAAE,gDAChD,OAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA,GAAA,CAAA;QAChD,cAAS,GAAG,CAAO,cAA+B,EAAE,EAAE,gDACpD,OAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA,GAAA,CAAA;QACrD,kBAAa,GAAG,GAAS,EAAE,gDAAC,OAAA,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA,GAAA,CAAA;QACnE,qBAAgB,GAAG,CAAO,OAAyC,EAAE,EAAE;YACrE,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACzD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;QACzD,CAAC,CAAA,CAAA;QAlBC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;CAWF"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { BotContext, BotContextType, HubtypeServicePort } from './botonic-context';
|
|
2
|
-
import { BotonicRequestInput } from './botonic-context-input';
|
|
3
|
-
import { BotonicRequestSession, UserExtraData } from './botonic-context-session';
|
|
4
|
-
import type { ResolvedPlugins } from './types';
|
|
5
|
-
/** Raw context passed from lambda handler before normalization. */
|
|
6
|
-
export interface BotonicRequest<TExtraData extends UserExtraData = UserExtraData> {
|
|
7
|
-
input: BotonicRequestInput;
|
|
8
|
-
session: BotonicRequestSession<TExtraData>;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Factory that creates BotExecutionContext from raw lambda request.
|
|
12
|
-
* Injects hubtypeService so the context has working sendMessage, doHandoff, etc.
|
|
13
|
-
*/
|
|
14
|
-
export declare class BotonicContextFactory<TPlugins extends ResolvedPlugins = ResolvedPlugins> {
|
|
15
|
-
private readonly hubtypeService;
|
|
16
|
-
private readonly plugins;
|
|
17
|
-
private readonly defaultTyping;
|
|
18
|
-
private readonly defaultDelay;
|
|
19
|
-
constructor(hubtypeService: HubtypeServicePort, plugins: TPlugins, defaultTyping: number, defaultDelay: number);
|
|
20
|
-
/** Creates input and session from raw lambda request (normalizes input internally). */
|
|
21
|
-
static from<TExtraData extends UserExtraData = UserExtraData>(raw: BotonicRequest<TExtraData>): BotContextType<TExtraData>;
|
|
22
|
-
create<TExtraData extends UserExtraData = UserExtraData>(raw: BotonicRequest<TExtraData>): BotContext<TPlugins, TExtraData>;
|
|
23
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { normalizeToV2Input } from '../../botonic/legacy/input-adapter';
|
|
2
|
-
import { BotContext, } from './botonic-context';
|
|
3
|
-
import { BotonicContextInput, } from './botonic-context-input';
|
|
4
|
-
import { BotonicContextSession, } from './botonic-context-session';
|
|
5
|
-
/**
|
|
6
|
-
* Factory that creates BotExecutionContext from raw lambda request.
|
|
7
|
-
* Injects hubtypeService so the context has working sendMessage, doHandoff, etc.
|
|
8
|
-
*/
|
|
9
|
-
export class BotonicContextFactory {
|
|
10
|
-
constructor(hubtypeService, plugins, defaultTyping, defaultDelay) {
|
|
11
|
-
this.hubtypeService = hubtypeService;
|
|
12
|
-
this.plugins = plugins;
|
|
13
|
-
this.defaultTyping = defaultTyping;
|
|
14
|
-
this.defaultDelay = defaultDelay;
|
|
15
|
-
}
|
|
16
|
-
/** Creates input and session from raw lambda request (normalizes input internally). */
|
|
17
|
-
static from(raw) {
|
|
18
|
-
const normalizedInput = normalizeToV2Input(raw.input);
|
|
19
|
-
const input = new BotonicContextInput(normalizedInput);
|
|
20
|
-
const session = new BotonicContextSession(raw.session);
|
|
21
|
-
return {
|
|
22
|
-
input,
|
|
23
|
-
session,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
create(raw) {
|
|
27
|
-
const base = BotonicContextFactory.from(raw);
|
|
28
|
-
return new BotContext(this.hubtypeService, base, this.plugins, this.defaultTyping, this.defaultDelay);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=factory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/server/botonic-context/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AACvE,OAAO,EACL,UAAU,GAGX,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,mBAAmB,GAEpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,qBAAqB,GAGtB,MAAM,2BAA2B,CAAA;AAWlC;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IAGhC,YACmB,cAAkC,EAClC,OAAiB,EACjB,aAAqB,EACrB,YAAoB;QAHpB,mBAAc,GAAd,cAAc,CAAoB;QAClC,YAAO,GAAP,OAAO,CAAU;QACjB,kBAAa,GAAb,aAAa,CAAQ;QACrB,iBAAY,GAAZ,YAAY,CAAQ;IACpC,CAAC;IAEJ,uFAAuF;IACvF,MAAM,CAAC,IAAI,CACT,GAA+B;QAE/B,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrD,MAAM,KAAK,GAAG,IAAI,mBAAmB,CAAC,eAAe,CAAC,CAAA;QACtD,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAa,GAAG,CAAC,OAAO,CAAC,CAAA;QAClE,OAAO;YACL,KAAK;YACL,OAAO;SACR,CAAA;IACH,CAAC;IAED,MAAM,CACJ,GAA+B;QAE/B,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC5C,OAAO,IAAI,UAAU,CACnB,IAAI,CAAC,cAAc,EACnB,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,CAClB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/server/botonic-context/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
|