@buni.ai/chatbot-core 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +144 -70
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +144 -70
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/widget.d.ts +3 -0
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -33,66 +33,147 @@ class BuniChatWidget {
|
|
|
33
33
|
}
|
|
34
34
|
async loadWidget() {
|
|
35
35
|
return new Promise((resolve, reject) => {
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
36
|
+
// Create iframe for secure embedding
|
|
37
|
+
const iframe = document.createElement("iframe");
|
|
38
|
+
const config = this.options.config || {};
|
|
39
|
+
// Build URL with configuration parameters
|
|
40
|
+
const params = new URLSearchParams({
|
|
41
|
+
token: this.options.token,
|
|
42
|
+
embedded: "true",
|
|
43
|
+
theme: config.theme || "light",
|
|
44
|
+
width: String(config.width || "350px"),
|
|
45
|
+
height: String(config.height || "650px"),
|
|
46
|
+
primaryColor: config.primaryColor || "#795548",
|
|
47
|
+
secondaryColor: config.secondaryColor || "#A67D67",
|
|
48
|
+
position: config.position || "bottom-right",
|
|
49
|
+
showBranding: String(config.showBranding !== false),
|
|
50
|
+
autoOpen: String(config.autoOpen === true),
|
|
51
|
+
minimized: String(config.minimized === true),
|
|
52
|
+
allowMinimize: String(config.allowMinimize !== false),
|
|
53
|
+
showMinimize: String(config.showMinimize !== false),
|
|
54
|
+
enableFileUpload: String(config.enableFileUpload === true),
|
|
55
|
+
});
|
|
56
|
+
// Add optional parameters
|
|
57
|
+
if (config.customAvatar)
|
|
58
|
+
params.set("customAvatar", config.customAvatar);
|
|
59
|
+
if (config.companyName)
|
|
60
|
+
params.set("companyName", config.companyName);
|
|
61
|
+
if (config.welcomeMessage)
|
|
62
|
+
params.set("welcomeMessage", config.welcomeMessage);
|
|
63
|
+
if (config.triggerText)
|
|
64
|
+
params.set("triggerText", config.triggerText);
|
|
65
|
+
if (config.borderRadius)
|
|
66
|
+
params.set("borderRadius", config.borderRadius);
|
|
67
|
+
iframe.src = `${this.getBaseUrl()}/embed/chat?${params.toString()}`;
|
|
68
|
+
iframe.style.cssText = `
|
|
69
|
+
position: fixed;
|
|
70
|
+
border: none;
|
|
71
|
+
z-index: 999999;
|
|
72
|
+
width: ${config.width || "350px"};
|
|
73
|
+
height: ${config.height || "650px"};
|
|
74
|
+
${this.getPositionStyles(config.position || "bottom-right")}
|
|
75
|
+
display: ${config.hideDefaultTrigger ? "none" : "block"};
|
|
76
|
+
`;
|
|
77
|
+
iframe.setAttribute("allow", "clipboard-write");
|
|
78
|
+
iframe.setAttribute("title", "BuniAI Chat Widget");
|
|
79
|
+
iframe.onload = () => {
|
|
80
|
+
this.widgetElement = iframe;
|
|
81
|
+
this.setupPostMessageAPI(iframe);
|
|
48
82
|
resolve();
|
|
49
83
|
};
|
|
50
|
-
|
|
51
|
-
reject(new Error("Failed to load BuniAI widget
|
|
84
|
+
iframe.onerror = () => {
|
|
85
|
+
reject(new Error("Failed to load BuniAI widget iframe"));
|
|
52
86
|
};
|
|
53
|
-
document.
|
|
87
|
+
document.body.appendChild(iframe);
|
|
54
88
|
});
|
|
55
89
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
90
|
+
getPositionStyles(position) {
|
|
91
|
+
switch (position) {
|
|
92
|
+
case "bottom-right":
|
|
93
|
+
return "bottom: 20px; right: 20px;";
|
|
94
|
+
case "bottom-left":
|
|
95
|
+
return "bottom: 20px; left: 20px;";
|
|
96
|
+
case "top-right":
|
|
97
|
+
return "top: 20px; right: 20px;";
|
|
98
|
+
case "top-left":
|
|
99
|
+
return "top: 20px; left: 20px;";
|
|
100
|
+
default:
|
|
101
|
+
return "bottom: 20px; right: 20px;";
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
setupPostMessageAPI(iframe) {
|
|
105
|
+
// Listen for messages from the iframe
|
|
106
|
+
window.addEventListener("message", (event) => {
|
|
107
|
+
// Verify origin for security
|
|
108
|
+
if (event.origin !== this.getBaseUrl()) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const { type, data } = event.data;
|
|
112
|
+
switch (type) {
|
|
113
|
+
case "ready":
|
|
114
|
+
this.state.isLoaded = true;
|
|
115
|
+
this.emit("ready", data);
|
|
116
|
+
if (this.options.onReady) {
|
|
117
|
+
this.options.onReady(data);
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
120
|
+
case "visibility_changed":
|
|
121
|
+
this.state.isOpen = data.visibility === "visible";
|
|
122
|
+
this.emit("visibility_changed", data);
|
|
123
|
+
if (this.options.onVisibilityChanged) {
|
|
124
|
+
this.options.onVisibilityChanged(data);
|
|
125
|
+
}
|
|
126
|
+
break;
|
|
127
|
+
case "new_message":
|
|
128
|
+
if (data.isFromBot) {
|
|
129
|
+
this.state.unreadCount++;
|
|
130
|
+
}
|
|
131
|
+
this.emit("new_message", data);
|
|
132
|
+
if (this.options.onNewMessage) {
|
|
133
|
+
this.options.onNewMessage(data);
|
|
134
|
+
}
|
|
135
|
+
break;
|
|
136
|
+
case "minimized":
|
|
137
|
+
this.state.isMinimized = true;
|
|
138
|
+
this.emit("minimized", data);
|
|
139
|
+
break;
|
|
140
|
+
case "maximized":
|
|
141
|
+
this.state.isMinimized = false;
|
|
142
|
+
this.emit("maximized", data);
|
|
143
|
+
break;
|
|
144
|
+
case "customer_data_updated":
|
|
145
|
+
this.customerData = data;
|
|
146
|
+
this.emit("customer_data_updated", data);
|
|
147
|
+
break;
|
|
148
|
+
case "session_updated":
|
|
149
|
+
this.sessionVariables = data.variables;
|
|
150
|
+
this.emit("session_updated", data);
|
|
151
|
+
break;
|
|
152
|
+
case "error":
|
|
153
|
+
this.emit("error", data);
|
|
154
|
+
if (this.options.onError) {
|
|
155
|
+
this.options.onError(data.error);
|
|
156
|
+
}
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
postMessageToWidget(type, data) {
|
|
162
|
+
var _a;
|
|
163
|
+
if (this.widgetElement && this.widgetElement instanceof HTMLIFrameElement) {
|
|
164
|
+
(_a = this.widgetElement.contentWindow) === null || _a === void 0 ? void 0 : _a.postMessage({ type, data }, this.getBaseUrl());
|
|
86
165
|
}
|
|
87
166
|
}
|
|
167
|
+
initializeWidgetAPI() {
|
|
168
|
+
// Widget API is now handled via postMessage in setupPostMessageAPI
|
|
169
|
+
// This method is kept for backward compatibility but no longer needed
|
|
170
|
+
}
|
|
88
171
|
getBaseUrl() {
|
|
89
172
|
// Return the base URL for the BuniAI platform
|
|
90
173
|
return globalThis.BUNI_API_URL || window.location.origin;
|
|
91
174
|
}
|
|
92
175
|
destroy() {
|
|
93
|
-
|
|
94
|
-
window.BuniChat.destroy();
|
|
95
|
-
}
|
|
176
|
+
this.postMessageToWidget("destroy");
|
|
96
177
|
if (this.widgetElement) {
|
|
97
178
|
this.widgetElement.remove();
|
|
98
179
|
this.widgetElement = null;
|
|
@@ -103,16 +184,21 @@ class BuniChatWidget {
|
|
|
103
184
|
this.sessionVariables = null;
|
|
104
185
|
}
|
|
105
186
|
show() {
|
|
106
|
-
if (
|
|
107
|
-
|
|
187
|
+
// Show the iframe if it was hidden (hideDefaultTrigger mode)
|
|
188
|
+
if (this.widgetElement instanceof HTMLIFrameElement) {
|
|
189
|
+
this.widgetElement.style.display = "block";
|
|
108
190
|
}
|
|
191
|
+
this.postMessageToWidget("show");
|
|
109
192
|
this.state.isOpen = true;
|
|
110
193
|
this.state.unreadCount = 0;
|
|
111
194
|
this.emit("visibility_changed", { visibility: "visible" });
|
|
112
195
|
}
|
|
113
196
|
hide() {
|
|
114
|
-
|
|
115
|
-
|
|
197
|
+
var _a;
|
|
198
|
+
this.postMessageToWidget("hide");
|
|
199
|
+
// If hideDefaultTrigger is enabled, completely hide the iframe
|
|
200
|
+
if (((_a = this.options.config) === null || _a === void 0 ? void 0 : _a.hideDefaultTrigger) && this.widgetElement instanceof HTMLIFrameElement) {
|
|
201
|
+
this.widgetElement.style.display = "none";
|
|
116
202
|
}
|
|
117
203
|
this.state.isOpen = false;
|
|
118
204
|
this.emit("visibility_changed", { visibility: "hidden" });
|
|
@@ -121,24 +207,18 @@ class BuniChatWidget {
|
|
|
121
207
|
this.state.isOpen ? this.hide() : this.show();
|
|
122
208
|
}
|
|
123
209
|
minimize() {
|
|
124
|
-
|
|
125
|
-
window.BuniChat.minimize();
|
|
126
|
-
}
|
|
210
|
+
this.postMessageToWidget("minimize");
|
|
127
211
|
this.state.isMinimized = true;
|
|
128
212
|
this.emit("minimized", { timestamp: Date.now() });
|
|
129
213
|
}
|
|
130
214
|
maximize() {
|
|
131
|
-
|
|
132
|
-
window.BuniChat.maximize();
|
|
133
|
-
}
|
|
215
|
+
this.postMessageToWidget("maximize");
|
|
134
216
|
this.state.isMinimized = false;
|
|
135
217
|
this.emit("maximized", { timestamp: Date.now() });
|
|
136
218
|
}
|
|
137
219
|
setCustomerData(data) {
|
|
138
220
|
this.customerData = { ...this.customerData, ...data };
|
|
139
|
-
|
|
140
|
-
window.BuniChat.setCustomerData(this.customerData);
|
|
141
|
-
}
|
|
221
|
+
this.postMessageToWidget("setCustomerData", this.customerData);
|
|
142
222
|
this.emit("customer_data_updated", { data: this.customerData });
|
|
143
223
|
}
|
|
144
224
|
getCustomerData() {
|
|
@@ -146,18 +226,14 @@ class BuniChatWidget {
|
|
|
146
226
|
}
|
|
147
227
|
setSessionVariables(variables) {
|
|
148
228
|
this.sessionVariables = { ...this.sessionVariables, ...variables };
|
|
149
|
-
|
|
150
|
-
window.BuniChat.setSessionVariables(this.sessionVariables);
|
|
151
|
-
}
|
|
229
|
+
this.postMessageToWidget("setSessionVariables", this.sessionVariables);
|
|
152
230
|
this.emit("session_updated", { variables: this.sessionVariables });
|
|
153
231
|
}
|
|
154
232
|
getSessionVariables() {
|
|
155
233
|
return this.sessionVariables ? { ...this.sessionVariables } : null;
|
|
156
234
|
}
|
|
157
235
|
sendMessage(message) {
|
|
158
|
-
|
|
159
|
-
window.BuniChat.sendMessage(message);
|
|
160
|
-
}
|
|
236
|
+
this.postMessageToWidget("sendMessage", { message });
|
|
161
237
|
const messageData = {
|
|
162
238
|
message,
|
|
163
239
|
isFromBot: false,
|
|
@@ -167,9 +243,7 @@ class BuniChatWidget {
|
|
|
167
243
|
this.emit("new_message", messageData);
|
|
168
244
|
}
|
|
169
245
|
clearChat() {
|
|
170
|
-
|
|
171
|
-
window.BuniChat.clearChat();
|
|
172
|
-
}
|
|
246
|
+
this.postMessageToWidget("clearChat");
|
|
173
247
|
this.state.unreadCount = 0;
|
|
174
248
|
}
|
|
175
249
|
on(event, callback) {
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/widget.ts","../src/index.ts"],"sourcesContent":["import {\n BuniChatAPI,\n BuniChatOptions,\n BuniChatState,\n CustomerData,\n SessionVariables,\n} from \"./types\";\n\n// Core widget loader class\nexport class BuniChatWidget implements BuniChatAPI {\n private options!: BuniChatOptions;\n private state: BuniChatState;\n private eventListeners: Map<string, Function[]>;\n private widgetElement: HTMLElement | null;\n private customerData: CustomerData | null;\n private sessionVariables: SessionVariables | null;\n\n constructor() {\n this.state = {\n isOpen: false,\n isLoaded: false,\n isMinimized: false,\n unreadCount: 0,\n };\n this.eventListeners = new Map();\n this.widgetElement = null;\n this.customerData = null;\n this.sessionVariables = null;\n }\n\n async initialize(options: BuniChatOptions): Promise<void> {\n this.options = options;\n\n try {\n await this.loadWidget();\n this.state.isLoaded = true;\n this.emit(\"ready\", { timestamp: Date.now() });\n\n if (options.onReady) {\n options.onReady({ timestamp: Date.now() });\n }\n } catch (error) {\n const errorObj =\n error instanceof Error ? error : new Error(String(error));\n this.emit(\"error\", { error: errorObj, context: \"initialization\" });\n\n if (options.onError) {\n options.onError(errorObj);\n }\n throw errorObj;\n }\n }\n\n private async loadWidget(): Promise<void> {\n return new Promise((resolve, reject) => {\n // Check if widget is already loaded\n if (window.BuniChat) {\n resolve();\n return;\n }\n\n // Load the widget script dynamically\n const script = document.createElement(\"script\");\n script.src = `${this.getBaseUrl()}/api/embed/widget?token=${encodeURIComponent(this.options.token)}`;\n script.async = true;\n\n script.onload = () => {\n // Initialize the actual widget\n this.initializeWidgetAPI();\n resolve();\n };\n\n script.onerror = () => {\n reject(new Error(\"Failed to load BuniAI widget script\"));\n };\n\n document.head.appendChild(script);\n });\n }\n\n private initializeWidgetAPI(): void {\n // Set up communication with the loaded widget\n if (window.BuniChat) {\n // Configure the widget with our options\n window.BuniChat.configure(this.options.config || {});\n\n // Set up event forwarding from the widget to our event system\n window.BuniChat.on(\"visibility_changed\", (data: any) => {\n this.state.isOpen = data.visibility === \"visible\";\n this.emit(\"visibility_changed\", data);\n\n if (this.options.onVisibilityChanged) {\n this.options.onVisibilityChanged(data);\n }\n });\n\n window.BuniChat.on(\"new_message\", (data: any) => {\n if (data.isFromBot) {\n this.state.unreadCount++;\n }\n this.emit(\"new_message\", data);\n\n if (this.options.onNewMessage) {\n this.options.onNewMessage(data);\n }\n });\n\n window.BuniChat.on(\"minimized\", (data: any) => {\n this.state.isMinimized = true;\n this.emit(\"minimized\", data);\n });\n\n window.BuniChat.on(\"maximized\", (data: any) => {\n this.state.isMinimized = false;\n this.emit(\"maximized\", data);\n });\n }\n }\n\n private getBaseUrl(): string {\n // Return the base URL for the BuniAI platform\n return (globalThis as any).BUNI_API_URL || window.location.origin;\n }\n\n destroy(): void {\n if (window.BuniChat) {\n window.BuniChat.destroy();\n }\n\n if (this.widgetElement) {\n this.widgetElement.remove();\n this.widgetElement = null;\n }\n\n this.eventListeners.clear();\n this.state.isLoaded = false;\n this.customerData = null;\n this.sessionVariables = null;\n }\n\n show(): void {\n if (window.BuniChat) {\n window.BuniChat.show();\n }\n this.state.isOpen = true;\n this.state.unreadCount = 0;\n this.emit(\"visibility_changed\", { visibility: \"visible\" });\n }\n\n hide(): void {\n if (window.BuniChat) {\n window.BuniChat.hide();\n }\n this.state.isOpen = false;\n this.emit(\"visibility_changed\", { visibility: \"hidden\" });\n }\n\n toggle(): void {\n this.state.isOpen ? this.hide() : this.show();\n }\n\n minimize(): void {\n if (window.BuniChat) {\n window.BuniChat.minimize();\n }\n this.state.isMinimized = true;\n this.emit(\"minimized\", { timestamp: Date.now() });\n }\n\n maximize(): void {\n if (window.BuniChat) {\n window.BuniChat.maximize();\n }\n this.state.isMinimized = false;\n this.emit(\"maximized\", { timestamp: Date.now() });\n }\n\n setCustomerData(data: CustomerData): void {\n this.customerData = { ...this.customerData, ...data };\n\n if (window.BuniChat) {\n window.BuniChat.setCustomerData(this.customerData);\n }\n\n this.emit(\"customer_data_updated\", { data: this.customerData });\n }\n\n getCustomerData(): CustomerData | null {\n return this.customerData ? { ...this.customerData } : null;\n }\n\n setSessionVariables(variables: SessionVariables): void {\n this.sessionVariables = { ...this.sessionVariables, ...variables };\n\n if (window.BuniChat) {\n window.BuniChat.setSessionVariables(this.sessionVariables);\n }\n\n this.emit(\"session_updated\", { variables: this.sessionVariables });\n }\n\n getSessionVariables(): SessionVariables | null {\n return this.sessionVariables ? { ...this.sessionVariables } : null;\n }\n\n sendMessage(message: string): void {\n if (window.BuniChat) {\n window.BuniChat.sendMessage(message);\n }\n\n const messageData = {\n message,\n isFromBot: false,\n timestamp: Date.now(),\n messageId: `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n };\n\n this.emit(\"new_message\", messageData);\n }\n\n clearChat(): void {\n if (window.BuniChat) {\n window.BuniChat.clearChat();\n }\n this.state.unreadCount = 0;\n }\n\n on(event: string, callback: Function): void {\n if (!this.eventListeners.has(event)) {\n this.eventListeners.set(event, []);\n }\n this.eventListeners.get(event)!.push(callback);\n }\n\n off(event: string, callback?: Function): void {\n const listeners = this.eventListeners.get(event);\n if (!listeners) return;\n\n if (callback) {\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n } else {\n this.eventListeners.set(event, []);\n }\n }\n\n emit(event: string, data?: any): void {\n const listeners = this.eventListeners.get(event);\n if (listeners) {\n listeners.forEach((callback) => {\n try {\n callback(data);\n } catch (error) {\n console.error(`Error in event listener for ${event}:`, error);\n }\n });\n }\n }\n\n getState(): BuniChatState {\n return { ...this.state };\n }\n\n isReady(): boolean {\n return this.state.isLoaded;\n }\n}\n\n// Utility function - named export\nexport function createBuniChatWidget(options: BuniChatOptions): BuniChatWidget {\n const widget = new BuniChatWidget();\n widget.initialize(options);\n return widget;\n}\n\n// Default export - the main widget class\nexport default BuniChatWidget;\n\n// Global type declaration for the widget API\ndeclare global {\n interface Window {\n BuniChat?: {\n configure: (config: any) => void;\n show: () => void;\n hide: () => void;\n minimize: () => void;\n maximize: () => void;\n destroy: () => void;\n setCustomerData: (data: CustomerData) => void;\n setSessionVariables: (variables: SessionVariables) => void;\n sendMessage: (message: string) => void;\n clearChat: () => void;\n on: (event: string, callback: Function) => void;\n off: (event: string, callback?: Function) => void;\n };\n }\n}\n","// Main exports for @buni.ai/chatbot-core\n\n// Export all types\nexport * from \"./types\";\n\n// Export everything from widget\nexport * from \"./widget\";\n\n// Make BuniChatWidget the default export as well\nimport { BuniChatWidget } from \"./widget\";\nexport default BuniChatWidget;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/widget.ts","../src/index.ts"],"sourcesContent":["import {\n BuniChatAPI,\n BuniChatOptions,\n BuniChatState,\n CustomerData,\n SessionVariables,\n} from \"./types\";\n\n// Core widget loader class\nexport class BuniChatWidget implements BuniChatAPI {\n private options!: BuniChatOptions;\n private state: BuniChatState;\n private eventListeners: Map<string, Function[]>;\n private widgetElement: HTMLElement | null;\n private customerData: CustomerData | null;\n private sessionVariables: SessionVariables | null;\n\n constructor() {\n this.state = {\n isOpen: false,\n isLoaded: false,\n isMinimized: false,\n unreadCount: 0,\n };\n this.eventListeners = new Map();\n this.widgetElement = null;\n this.customerData = null;\n this.sessionVariables = null;\n }\n\n async initialize(options: BuniChatOptions): Promise<void> {\n this.options = options;\n\n try {\n await this.loadWidget();\n this.state.isLoaded = true;\n this.emit(\"ready\", { timestamp: Date.now() });\n\n if (options.onReady) {\n options.onReady({ timestamp: Date.now() });\n }\n } catch (error) {\n const errorObj =\n error instanceof Error ? error : new Error(String(error));\n this.emit(\"error\", { error: errorObj, context: \"initialization\" });\n\n if (options.onError) {\n options.onError(errorObj);\n }\n throw errorObj;\n }\n }\n\n private async loadWidget(): Promise<void> {\n return new Promise((resolve, reject) => {\n // Create iframe for secure embedding\n const iframe = document.createElement(\"iframe\");\n const config = this.options.config || {};\n\n // Build URL with configuration parameters\n const params = new URLSearchParams({\n token: this.options.token,\n embedded: \"true\",\n theme: config.theme || \"light\",\n width: String(config.width || \"350px\"),\n height: String(config.height || \"650px\"),\n primaryColor: config.primaryColor || \"#795548\",\n secondaryColor: config.secondaryColor || \"#A67D67\",\n position: config.position || \"bottom-right\",\n showBranding: String(config.showBranding !== false),\n autoOpen: String(config.autoOpen === true),\n minimized: String(config.minimized === true),\n allowMinimize: String(config.allowMinimize !== false),\n showMinimize: String(config.showMinimize !== false),\n enableFileUpload: String(config.enableFileUpload === true),\n });\n\n // Add optional parameters\n if (config.customAvatar) params.set(\"customAvatar\", config.customAvatar);\n if (config.companyName) params.set(\"companyName\", config.companyName);\n if (config.welcomeMessage)\n params.set(\"welcomeMessage\", config.welcomeMessage);\n if (config.triggerText) params.set(\"triggerText\", config.triggerText);\n if (config.borderRadius) params.set(\"borderRadius\", config.borderRadius);\n\n iframe.src = `${this.getBaseUrl()}/embed/chat?${params.toString()}`;\n iframe.style.cssText = `\n position: fixed;\n border: none;\n z-index: 999999;\n width: ${config.width || \"350px\"};\n height: ${config.height || \"650px\"};\n ${this.getPositionStyles(config.position || \"bottom-right\")}\n display: ${config.hideDefaultTrigger ? \"none\" : \"block\"};\n `;\n iframe.setAttribute(\"allow\", \"clipboard-write\");\n iframe.setAttribute(\"title\", \"BuniAI Chat Widget\");\n\n iframe.onload = () => {\n this.widgetElement = iframe;\n this.setupPostMessageAPI(iframe);\n resolve();\n };\n\n iframe.onerror = () => {\n reject(new Error(\"Failed to load BuniAI widget iframe\"));\n };\n\n document.body.appendChild(iframe);\n });\n }\n\n private getPositionStyles(position: string): string {\n switch (position) {\n case \"bottom-right\":\n return \"bottom: 20px; right: 20px;\";\n case \"bottom-left\":\n return \"bottom: 20px; left: 20px;\";\n case \"top-right\":\n return \"top: 20px; right: 20px;\";\n case \"top-left\":\n return \"top: 20px; left: 20px;\";\n default:\n return \"bottom: 20px; right: 20px;\";\n }\n }\n\n private setupPostMessageAPI(iframe: HTMLIFrameElement): void {\n // Listen for messages from the iframe\n window.addEventListener(\"message\", (event) => {\n // Verify origin for security\n if (event.origin !== this.getBaseUrl()) {\n return;\n }\n\n const { type, data } = event.data;\n\n switch (type) {\n case \"ready\":\n this.state.isLoaded = true;\n this.emit(\"ready\", data);\n if (this.options.onReady) {\n this.options.onReady(data);\n }\n break;\n\n case \"visibility_changed\":\n this.state.isOpen = data.visibility === \"visible\";\n this.emit(\"visibility_changed\", data);\n if (this.options.onVisibilityChanged) {\n this.options.onVisibilityChanged(data);\n }\n break;\n\n case \"new_message\":\n if (data.isFromBot) {\n this.state.unreadCount++;\n }\n this.emit(\"new_message\", data);\n if (this.options.onNewMessage) {\n this.options.onNewMessage(data);\n }\n break;\n\n case \"minimized\":\n this.state.isMinimized = true;\n this.emit(\"minimized\", data);\n break;\n\n case \"maximized\":\n this.state.isMinimized = false;\n this.emit(\"maximized\", data);\n break;\n\n case \"customer_data_updated\":\n this.customerData = data;\n this.emit(\"customer_data_updated\", data);\n break;\n\n case \"session_updated\":\n this.sessionVariables = data.variables;\n this.emit(\"session_updated\", data);\n break;\n\n case \"error\":\n this.emit(\"error\", data);\n if (this.options.onError) {\n this.options.onError(data.error);\n }\n break;\n }\n });\n }\n\n private postMessageToWidget(type: string, data?: any): void {\n if (this.widgetElement && this.widgetElement instanceof HTMLIFrameElement) {\n this.widgetElement.contentWindow?.postMessage(\n { type, data },\n this.getBaseUrl()\n );\n }\n }\n\n private initializeWidgetAPI(): void {\n // Widget API is now handled via postMessage in setupPostMessageAPI\n // This method is kept for backward compatibility but no longer needed\n }\n\n private getBaseUrl(): string {\n // Return the base URL for the BuniAI platform\n return (globalThis as any).BUNI_API_URL || window.location.origin;\n }\n\n destroy(): void {\n this.postMessageToWidget(\"destroy\");\n\n if (this.widgetElement) {\n this.widgetElement.remove();\n this.widgetElement = null;\n }\n\n this.eventListeners.clear();\n this.state.isLoaded = false;\n this.customerData = null;\n this.sessionVariables = null;\n }\n\n show(): void {\n // Show the iframe if it was hidden (hideDefaultTrigger mode)\n if (this.widgetElement instanceof HTMLIFrameElement) {\n this.widgetElement.style.display = \"block\";\n }\n this.postMessageToWidget(\"show\");\n this.state.isOpen = true;\n this.state.unreadCount = 0;\n this.emit(\"visibility_changed\", { visibility: \"visible\" });\n }\n\n hide(): void {\n this.postMessageToWidget(\"hide\");\n // If hideDefaultTrigger is enabled, completely hide the iframe\n if (this.options.config?.hideDefaultTrigger && this.widgetElement instanceof HTMLIFrameElement) {\n this.widgetElement.style.display = \"none\";\n }\n this.state.isOpen = false;\n this.emit(\"visibility_changed\", { visibility: \"hidden\" });\n }\n\n toggle(): void {\n this.state.isOpen ? this.hide() : this.show();\n }\n\n minimize(): void {\n this.postMessageToWidget(\"minimize\");\n this.state.isMinimized = true;\n this.emit(\"minimized\", { timestamp: Date.now() });\n }\n\n maximize(): void {\n this.postMessageToWidget(\"maximize\");\n this.state.isMinimized = false;\n this.emit(\"maximized\", { timestamp: Date.now() });\n }\n\n setCustomerData(data: CustomerData): void {\n this.customerData = { ...this.customerData, ...data };\n this.postMessageToWidget(\"setCustomerData\", this.customerData);\n this.emit(\"customer_data_updated\", { data: this.customerData });\n }\n\n getCustomerData(): CustomerData | null {\n return this.customerData ? { ...this.customerData } : null;\n }\n\n setSessionVariables(variables: SessionVariables): void {\n this.sessionVariables = { ...this.sessionVariables, ...variables };\n this.postMessageToWidget(\"setSessionVariables\", this.sessionVariables);\n this.emit(\"session_updated\", { variables: this.sessionVariables });\n }\n\n getSessionVariables(): SessionVariables | null {\n return this.sessionVariables ? { ...this.sessionVariables } : null;\n }\n\n sendMessage(message: string): void {\n this.postMessageToWidget(\"sendMessage\", { message });\n\n const messageData = {\n message,\n isFromBot: false,\n timestamp: Date.now(),\n messageId: `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n };\n\n this.emit(\"new_message\", messageData);\n }\n\n clearChat(): void {\n this.postMessageToWidget(\"clearChat\");\n this.state.unreadCount = 0;\n }\n\n on(event: string, callback: Function): void {\n if (!this.eventListeners.has(event)) {\n this.eventListeners.set(event, []);\n }\n this.eventListeners.get(event)!.push(callback);\n }\n\n off(event: string, callback?: Function): void {\n const listeners = this.eventListeners.get(event);\n if (!listeners) return;\n\n if (callback) {\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n } else {\n this.eventListeners.set(event, []);\n }\n }\n\n emit(event: string, data?: any): void {\n const listeners = this.eventListeners.get(event);\n if (listeners) {\n listeners.forEach((callback) => {\n try {\n callback(data);\n } catch (error) {\n console.error(`Error in event listener for ${event}:`, error);\n }\n });\n }\n }\n\n getState(): BuniChatState {\n return { ...this.state };\n }\n\n isReady(): boolean {\n return this.state.isLoaded;\n }\n}\n\n// Utility function - named export\nexport function createBuniChatWidget(options: BuniChatOptions): BuniChatWidget {\n const widget = new BuniChatWidget();\n widget.initialize(options);\n return widget;\n}\n\n// Default export - the main widget class\nexport default BuniChatWidget;\n\n// Global type declaration for the widget API\ndeclare global {\n interface Window {\n BuniChat?: {\n configure: (config: any) => void;\n show: () => void;\n hide: () => void;\n minimize: () => void;\n maximize: () => void;\n destroy: () => void;\n setCustomerData: (data: CustomerData) => void;\n setSessionVariables: (variables: SessionVariables) => void;\n sendMessage: (message: string) => void;\n clearChat: () => void;\n on: (event: string, callback: Function) => void;\n off: (event: string, callback?: Function) => void;\n };\n }\n}\n","// Main exports for @buni.ai/chatbot-core\n\n// Export all types\nexport * from \"./types\";\n\n// Export everything from widget\nexport * from \"./widget\";\n\n// Make BuniChatWidget the default export as well\nimport { BuniChatWidget } from \"./widget\";\nexport default BuniChatWidget;\n"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -37,66 +37,147 @@ class BuniChatWidget {
|
|
|
37
37
|
}
|
|
38
38
|
async loadWidget() {
|
|
39
39
|
return new Promise((resolve, reject) => {
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
40
|
+
// Create iframe for secure embedding
|
|
41
|
+
const iframe = document.createElement("iframe");
|
|
42
|
+
const config = this.options.config || {};
|
|
43
|
+
// Build URL with configuration parameters
|
|
44
|
+
const params = new URLSearchParams({
|
|
45
|
+
token: this.options.token,
|
|
46
|
+
embedded: "true",
|
|
47
|
+
theme: config.theme || "light",
|
|
48
|
+
width: String(config.width || "350px"),
|
|
49
|
+
height: String(config.height || "650px"),
|
|
50
|
+
primaryColor: config.primaryColor || "#795548",
|
|
51
|
+
secondaryColor: config.secondaryColor || "#A67D67",
|
|
52
|
+
position: config.position || "bottom-right",
|
|
53
|
+
showBranding: String(config.showBranding !== false),
|
|
54
|
+
autoOpen: String(config.autoOpen === true),
|
|
55
|
+
minimized: String(config.minimized === true),
|
|
56
|
+
allowMinimize: String(config.allowMinimize !== false),
|
|
57
|
+
showMinimize: String(config.showMinimize !== false),
|
|
58
|
+
enableFileUpload: String(config.enableFileUpload === true),
|
|
59
|
+
});
|
|
60
|
+
// Add optional parameters
|
|
61
|
+
if (config.customAvatar)
|
|
62
|
+
params.set("customAvatar", config.customAvatar);
|
|
63
|
+
if (config.companyName)
|
|
64
|
+
params.set("companyName", config.companyName);
|
|
65
|
+
if (config.welcomeMessage)
|
|
66
|
+
params.set("welcomeMessage", config.welcomeMessage);
|
|
67
|
+
if (config.triggerText)
|
|
68
|
+
params.set("triggerText", config.triggerText);
|
|
69
|
+
if (config.borderRadius)
|
|
70
|
+
params.set("borderRadius", config.borderRadius);
|
|
71
|
+
iframe.src = `${this.getBaseUrl()}/embed/chat?${params.toString()}`;
|
|
72
|
+
iframe.style.cssText = `
|
|
73
|
+
position: fixed;
|
|
74
|
+
border: none;
|
|
75
|
+
z-index: 999999;
|
|
76
|
+
width: ${config.width || "350px"};
|
|
77
|
+
height: ${config.height || "650px"};
|
|
78
|
+
${this.getPositionStyles(config.position || "bottom-right")}
|
|
79
|
+
display: ${config.hideDefaultTrigger ? "none" : "block"};
|
|
80
|
+
`;
|
|
81
|
+
iframe.setAttribute("allow", "clipboard-write");
|
|
82
|
+
iframe.setAttribute("title", "BuniAI Chat Widget");
|
|
83
|
+
iframe.onload = () => {
|
|
84
|
+
this.widgetElement = iframe;
|
|
85
|
+
this.setupPostMessageAPI(iframe);
|
|
52
86
|
resolve();
|
|
53
87
|
};
|
|
54
|
-
|
|
55
|
-
reject(new Error("Failed to load BuniAI widget
|
|
88
|
+
iframe.onerror = () => {
|
|
89
|
+
reject(new Error("Failed to load BuniAI widget iframe"));
|
|
56
90
|
};
|
|
57
|
-
document.
|
|
91
|
+
document.body.appendChild(iframe);
|
|
58
92
|
});
|
|
59
93
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
94
|
+
getPositionStyles(position) {
|
|
95
|
+
switch (position) {
|
|
96
|
+
case "bottom-right":
|
|
97
|
+
return "bottom: 20px; right: 20px;";
|
|
98
|
+
case "bottom-left":
|
|
99
|
+
return "bottom: 20px; left: 20px;";
|
|
100
|
+
case "top-right":
|
|
101
|
+
return "top: 20px; right: 20px;";
|
|
102
|
+
case "top-left":
|
|
103
|
+
return "top: 20px; left: 20px;";
|
|
104
|
+
default:
|
|
105
|
+
return "bottom: 20px; right: 20px;";
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
setupPostMessageAPI(iframe) {
|
|
109
|
+
// Listen for messages from the iframe
|
|
110
|
+
window.addEventListener("message", (event) => {
|
|
111
|
+
// Verify origin for security
|
|
112
|
+
if (event.origin !== this.getBaseUrl()) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const { type, data } = event.data;
|
|
116
|
+
switch (type) {
|
|
117
|
+
case "ready":
|
|
118
|
+
this.state.isLoaded = true;
|
|
119
|
+
this.emit("ready", data);
|
|
120
|
+
if (this.options.onReady) {
|
|
121
|
+
this.options.onReady(data);
|
|
122
|
+
}
|
|
123
|
+
break;
|
|
124
|
+
case "visibility_changed":
|
|
125
|
+
this.state.isOpen = data.visibility === "visible";
|
|
126
|
+
this.emit("visibility_changed", data);
|
|
127
|
+
if (this.options.onVisibilityChanged) {
|
|
128
|
+
this.options.onVisibilityChanged(data);
|
|
129
|
+
}
|
|
130
|
+
break;
|
|
131
|
+
case "new_message":
|
|
132
|
+
if (data.isFromBot) {
|
|
133
|
+
this.state.unreadCount++;
|
|
134
|
+
}
|
|
135
|
+
this.emit("new_message", data);
|
|
136
|
+
if (this.options.onNewMessage) {
|
|
137
|
+
this.options.onNewMessage(data);
|
|
138
|
+
}
|
|
139
|
+
break;
|
|
140
|
+
case "minimized":
|
|
141
|
+
this.state.isMinimized = true;
|
|
142
|
+
this.emit("minimized", data);
|
|
143
|
+
break;
|
|
144
|
+
case "maximized":
|
|
145
|
+
this.state.isMinimized = false;
|
|
146
|
+
this.emit("maximized", data);
|
|
147
|
+
break;
|
|
148
|
+
case "customer_data_updated":
|
|
149
|
+
this.customerData = data;
|
|
150
|
+
this.emit("customer_data_updated", data);
|
|
151
|
+
break;
|
|
152
|
+
case "session_updated":
|
|
153
|
+
this.sessionVariables = data.variables;
|
|
154
|
+
this.emit("session_updated", data);
|
|
155
|
+
break;
|
|
156
|
+
case "error":
|
|
157
|
+
this.emit("error", data);
|
|
158
|
+
if (this.options.onError) {
|
|
159
|
+
this.options.onError(data.error);
|
|
160
|
+
}
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
postMessageToWidget(type, data) {
|
|
166
|
+
var _a;
|
|
167
|
+
if (this.widgetElement && this.widgetElement instanceof HTMLIFrameElement) {
|
|
168
|
+
(_a = this.widgetElement.contentWindow) === null || _a === void 0 ? void 0 : _a.postMessage({ type, data }, this.getBaseUrl());
|
|
90
169
|
}
|
|
91
170
|
}
|
|
171
|
+
initializeWidgetAPI() {
|
|
172
|
+
// Widget API is now handled via postMessage in setupPostMessageAPI
|
|
173
|
+
// This method is kept for backward compatibility but no longer needed
|
|
174
|
+
}
|
|
92
175
|
getBaseUrl() {
|
|
93
176
|
// Return the base URL for the BuniAI platform
|
|
94
177
|
return globalThis.BUNI_API_URL || window.location.origin;
|
|
95
178
|
}
|
|
96
179
|
destroy() {
|
|
97
|
-
|
|
98
|
-
window.BuniChat.destroy();
|
|
99
|
-
}
|
|
180
|
+
this.postMessageToWidget("destroy");
|
|
100
181
|
if (this.widgetElement) {
|
|
101
182
|
this.widgetElement.remove();
|
|
102
183
|
this.widgetElement = null;
|
|
@@ -107,16 +188,21 @@ class BuniChatWidget {
|
|
|
107
188
|
this.sessionVariables = null;
|
|
108
189
|
}
|
|
109
190
|
show() {
|
|
110
|
-
if (
|
|
111
|
-
|
|
191
|
+
// Show the iframe if it was hidden (hideDefaultTrigger mode)
|
|
192
|
+
if (this.widgetElement instanceof HTMLIFrameElement) {
|
|
193
|
+
this.widgetElement.style.display = "block";
|
|
112
194
|
}
|
|
195
|
+
this.postMessageToWidget("show");
|
|
113
196
|
this.state.isOpen = true;
|
|
114
197
|
this.state.unreadCount = 0;
|
|
115
198
|
this.emit("visibility_changed", { visibility: "visible" });
|
|
116
199
|
}
|
|
117
200
|
hide() {
|
|
118
|
-
|
|
119
|
-
|
|
201
|
+
var _a;
|
|
202
|
+
this.postMessageToWidget("hide");
|
|
203
|
+
// If hideDefaultTrigger is enabled, completely hide the iframe
|
|
204
|
+
if (((_a = this.options.config) === null || _a === void 0 ? void 0 : _a.hideDefaultTrigger) && this.widgetElement instanceof HTMLIFrameElement) {
|
|
205
|
+
this.widgetElement.style.display = "none";
|
|
120
206
|
}
|
|
121
207
|
this.state.isOpen = false;
|
|
122
208
|
this.emit("visibility_changed", { visibility: "hidden" });
|
|
@@ -125,24 +211,18 @@ class BuniChatWidget {
|
|
|
125
211
|
this.state.isOpen ? this.hide() : this.show();
|
|
126
212
|
}
|
|
127
213
|
minimize() {
|
|
128
|
-
|
|
129
|
-
window.BuniChat.minimize();
|
|
130
|
-
}
|
|
214
|
+
this.postMessageToWidget("minimize");
|
|
131
215
|
this.state.isMinimized = true;
|
|
132
216
|
this.emit("minimized", { timestamp: Date.now() });
|
|
133
217
|
}
|
|
134
218
|
maximize() {
|
|
135
|
-
|
|
136
|
-
window.BuniChat.maximize();
|
|
137
|
-
}
|
|
219
|
+
this.postMessageToWidget("maximize");
|
|
138
220
|
this.state.isMinimized = false;
|
|
139
221
|
this.emit("maximized", { timestamp: Date.now() });
|
|
140
222
|
}
|
|
141
223
|
setCustomerData(data) {
|
|
142
224
|
this.customerData = { ...this.customerData, ...data };
|
|
143
|
-
|
|
144
|
-
window.BuniChat.setCustomerData(this.customerData);
|
|
145
|
-
}
|
|
225
|
+
this.postMessageToWidget("setCustomerData", this.customerData);
|
|
146
226
|
this.emit("customer_data_updated", { data: this.customerData });
|
|
147
227
|
}
|
|
148
228
|
getCustomerData() {
|
|
@@ -150,18 +230,14 @@ class BuniChatWidget {
|
|
|
150
230
|
}
|
|
151
231
|
setSessionVariables(variables) {
|
|
152
232
|
this.sessionVariables = { ...this.sessionVariables, ...variables };
|
|
153
|
-
|
|
154
|
-
window.BuniChat.setSessionVariables(this.sessionVariables);
|
|
155
|
-
}
|
|
233
|
+
this.postMessageToWidget("setSessionVariables", this.sessionVariables);
|
|
156
234
|
this.emit("session_updated", { variables: this.sessionVariables });
|
|
157
235
|
}
|
|
158
236
|
getSessionVariables() {
|
|
159
237
|
return this.sessionVariables ? { ...this.sessionVariables } : null;
|
|
160
238
|
}
|
|
161
239
|
sendMessage(message) {
|
|
162
|
-
|
|
163
|
-
window.BuniChat.sendMessage(message);
|
|
164
|
-
}
|
|
240
|
+
this.postMessageToWidget("sendMessage", { message });
|
|
165
241
|
const messageData = {
|
|
166
242
|
message,
|
|
167
243
|
isFromBot: false,
|
|
@@ -171,9 +247,7 @@ class BuniChatWidget {
|
|
|
171
247
|
this.emit("new_message", messageData);
|
|
172
248
|
}
|
|
173
249
|
clearChat() {
|
|
174
|
-
|
|
175
|
-
window.BuniChat.clearChat();
|
|
176
|
-
}
|
|
250
|
+
this.postMessageToWidget("clearChat");
|
|
177
251
|
this.state.unreadCount = 0;
|
|
178
252
|
}
|
|
179
253
|
on(event, callback) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/widget.ts","../src/index.ts"],"sourcesContent":["import {\n BuniChatAPI,\n BuniChatOptions,\n BuniChatState,\n CustomerData,\n SessionVariables,\n} from \"./types\";\n\n// Core widget loader class\nexport class BuniChatWidget implements BuniChatAPI {\n private options!: BuniChatOptions;\n private state: BuniChatState;\n private eventListeners: Map<string, Function[]>;\n private widgetElement: HTMLElement | null;\n private customerData: CustomerData | null;\n private sessionVariables: SessionVariables | null;\n\n constructor() {\n this.state = {\n isOpen: false,\n isLoaded: false,\n isMinimized: false,\n unreadCount: 0,\n };\n this.eventListeners = new Map();\n this.widgetElement = null;\n this.customerData = null;\n this.sessionVariables = null;\n }\n\n async initialize(options: BuniChatOptions): Promise<void> {\n this.options = options;\n\n try {\n await this.loadWidget();\n this.state.isLoaded = true;\n this.emit(\"ready\", { timestamp: Date.now() });\n\n if (options.onReady) {\n options.onReady({ timestamp: Date.now() });\n }\n } catch (error) {\n const errorObj =\n error instanceof Error ? error : new Error(String(error));\n this.emit(\"error\", { error: errorObj, context: \"initialization\" });\n\n if (options.onError) {\n options.onError(errorObj);\n }\n throw errorObj;\n }\n }\n\n private async loadWidget(): Promise<void> {\n return new Promise((resolve, reject) => {\n // Check if widget is already loaded\n if (window.BuniChat) {\n resolve();\n return;\n }\n\n // Load the widget script dynamically\n const script = document.createElement(\"script\");\n script.src = `${this.getBaseUrl()}/api/embed/widget?token=${encodeURIComponent(this.options.token)}`;\n script.async = true;\n\n script.onload = () => {\n // Initialize the actual widget\n this.initializeWidgetAPI();\n resolve();\n };\n\n script.onerror = () => {\n reject(new Error(\"Failed to load BuniAI widget script\"));\n };\n\n document.head.appendChild(script);\n });\n }\n\n private initializeWidgetAPI(): void {\n // Set up communication with the loaded widget\n if (window.BuniChat) {\n // Configure the widget with our options\n window.BuniChat.configure(this.options.config || {});\n\n // Set up event forwarding from the widget to our event system\n window.BuniChat.on(\"visibility_changed\", (data: any) => {\n this.state.isOpen = data.visibility === \"visible\";\n this.emit(\"visibility_changed\", data);\n\n if (this.options.onVisibilityChanged) {\n this.options.onVisibilityChanged(data);\n }\n });\n\n window.BuniChat.on(\"new_message\", (data: any) => {\n if (data.isFromBot) {\n this.state.unreadCount++;\n }\n this.emit(\"new_message\", data);\n\n if (this.options.onNewMessage) {\n this.options.onNewMessage(data);\n }\n });\n\n window.BuniChat.on(\"minimized\", (data: any) => {\n this.state.isMinimized = true;\n this.emit(\"minimized\", data);\n });\n\n window.BuniChat.on(\"maximized\", (data: any) => {\n this.state.isMinimized = false;\n this.emit(\"maximized\", data);\n });\n }\n }\n\n private getBaseUrl(): string {\n // Return the base URL for the BuniAI platform\n return (globalThis as any).BUNI_API_URL || window.location.origin;\n }\n\n destroy(): void {\n if (window.BuniChat) {\n window.BuniChat.destroy();\n }\n\n if (this.widgetElement) {\n this.widgetElement.remove();\n this.widgetElement = null;\n }\n\n this.eventListeners.clear();\n this.state.isLoaded = false;\n this.customerData = null;\n this.sessionVariables = null;\n }\n\n show(): void {\n if (window.BuniChat) {\n window.BuniChat.show();\n }\n this.state.isOpen = true;\n this.state.unreadCount = 0;\n this.emit(\"visibility_changed\", { visibility: \"visible\" });\n }\n\n hide(): void {\n if (window.BuniChat) {\n window.BuniChat.hide();\n }\n this.state.isOpen = false;\n this.emit(\"visibility_changed\", { visibility: \"hidden\" });\n }\n\n toggle(): void {\n this.state.isOpen ? this.hide() : this.show();\n }\n\n minimize(): void {\n if (window.BuniChat) {\n window.BuniChat.minimize();\n }\n this.state.isMinimized = true;\n this.emit(\"minimized\", { timestamp: Date.now() });\n }\n\n maximize(): void {\n if (window.BuniChat) {\n window.BuniChat.maximize();\n }\n this.state.isMinimized = false;\n this.emit(\"maximized\", { timestamp: Date.now() });\n }\n\n setCustomerData(data: CustomerData): void {\n this.customerData = { ...this.customerData, ...data };\n\n if (window.BuniChat) {\n window.BuniChat.setCustomerData(this.customerData);\n }\n\n this.emit(\"customer_data_updated\", { data: this.customerData });\n }\n\n getCustomerData(): CustomerData | null {\n return this.customerData ? { ...this.customerData } : null;\n }\n\n setSessionVariables(variables: SessionVariables): void {\n this.sessionVariables = { ...this.sessionVariables, ...variables };\n\n if (window.BuniChat) {\n window.BuniChat.setSessionVariables(this.sessionVariables);\n }\n\n this.emit(\"session_updated\", { variables: this.sessionVariables });\n }\n\n getSessionVariables(): SessionVariables | null {\n return this.sessionVariables ? { ...this.sessionVariables } : null;\n }\n\n sendMessage(message: string): void {\n if (window.BuniChat) {\n window.BuniChat.sendMessage(message);\n }\n\n const messageData = {\n message,\n isFromBot: false,\n timestamp: Date.now(),\n messageId: `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n };\n\n this.emit(\"new_message\", messageData);\n }\n\n clearChat(): void {\n if (window.BuniChat) {\n window.BuniChat.clearChat();\n }\n this.state.unreadCount = 0;\n }\n\n on(event: string, callback: Function): void {\n if (!this.eventListeners.has(event)) {\n this.eventListeners.set(event, []);\n }\n this.eventListeners.get(event)!.push(callback);\n }\n\n off(event: string, callback?: Function): void {\n const listeners = this.eventListeners.get(event);\n if (!listeners) return;\n\n if (callback) {\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n } else {\n this.eventListeners.set(event, []);\n }\n }\n\n emit(event: string, data?: any): void {\n const listeners = this.eventListeners.get(event);\n if (listeners) {\n listeners.forEach((callback) => {\n try {\n callback(data);\n } catch (error) {\n console.error(`Error in event listener for ${event}:`, error);\n }\n });\n }\n }\n\n getState(): BuniChatState {\n return { ...this.state };\n }\n\n isReady(): boolean {\n return this.state.isLoaded;\n }\n}\n\n// Utility function - named export\nexport function createBuniChatWidget(options: BuniChatOptions): BuniChatWidget {\n const widget = new BuniChatWidget();\n widget.initialize(options);\n return widget;\n}\n\n// Default export - the main widget class\nexport default BuniChatWidget;\n\n// Global type declaration for the widget API\ndeclare global {\n interface Window {\n BuniChat?: {\n configure: (config: any) => void;\n show: () => void;\n hide: () => void;\n minimize: () => void;\n maximize: () => void;\n destroy: () => void;\n setCustomerData: (data: CustomerData) => void;\n setSessionVariables: (variables: SessionVariables) => void;\n sendMessage: (message: string) => void;\n clearChat: () => void;\n on: (event: string, callback: Function) => void;\n off: (event: string, callback?: Function) => void;\n };\n }\n}\n","// Main exports for @buni.ai/chatbot-core\n\n// Export all types\nexport * from \"./types\";\n\n// Export everything from widget\nexport * from \"./widget\";\n\n// Make BuniChatWidget the default export as well\nimport { BuniChatWidget } from \"./widget\";\nexport default BuniChatWidget;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/widget.ts","../src/index.ts"],"sourcesContent":["import {\n BuniChatAPI,\n BuniChatOptions,\n BuniChatState,\n CustomerData,\n SessionVariables,\n} from \"./types\";\n\n// Core widget loader class\nexport class BuniChatWidget implements BuniChatAPI {\n private options!: BuniChatOptions;\n private state: BuniChatState;\n private eventListeners: Map<string, Function[]>;\n private widgetElement: HTMLElement | null;\n private customerData: CustomerData | null;\n private sessionVariables: SessionVariables | null;\n\n constructor() {\n this.state = {\n isOpen: false,\n isLoaded: false,\n isMinimized: false,\n unreadCount: 0,\n };\n this.eventListeners = new Map();\n this.widgetElement = null;\n this.customerData = null;\n this.sessionVariables = null;\n }\n\n async initialize(options: BuniChatOptions): Promise<void> {\n this.options = options;\n\n try {\n await this.loadWidget();\n this.state.isLoaded = true;\n this.emit(\"ready\", { timestamp: Date.now() });\n\n if (options.onReady) {\n options.onReady({ timestamp: Date.now() });\n }\n } catch (error) {\n const errorObj =\n error instanceof Error ? error : new Error(String(error));\n this.emit(\"error\", { error: errorObj, context: \"initialization\" });\n\n if (options.onError) {\n options.onError(errorObj);\n }\n throw errorObj;\n }\n }\n\n private async loadWidget(): Promise<void> {\n return new Promise((resolve, reject) => {\n // Create iframe for secure embedding\n const iframe = document.createElement(\"iframe\");\n const config = this.options.config || {};\n\n // Build URL with configuration parameters\n const params = new URLSearchParams({\n token: this.options.token,\n embedded: \"true\",\n theme: config.theme || \"light\",\n width: String(config.width || \"350px\"),\n height: String(config.height || \"650px\"),\n primaryColor: config.primaryColor || \"#795548\",\n secondaryColor: config.secondaryColor || \"#A67D67\",\n position: config.position || \"bottom-right\",\n showBranding: String(config.showBranding !== false),\n autoOpen: String(config.autoOpen === true),\n minimized: String(config.minimized === true),\n allowMinimize: String(config.allowMinimize !== false),\n showMinimize: String(config.showMinimize !== false),\n enableFileUpload: String(config.enableFileUpload === true),\n });\n\n // Add optional parameters\n if (config.customAvatar) params.set(\"customAvatar\", config.customAvatar);\n if (config.companyName) params.set(\"companyName\", config.companyName);\n if (config.welcomeMessage)\n params.set(\"welcomeMessage\", config.welcomeMessage);\n if (config.triggerText) params.set(\"triggerText\", config.triggerText);\n if (config.borderRadius) params.set(\"borderRadius\", config.borderRadius);\n\n iframe.src = `${this.getBaseUrl()}/embed/chat?${params.toString()}`;\n iframe.style.cssText = `\n position: fixed;\n border: none;\n z-index: 999999;\n width: ${config.width || \"350px\"};\n height: ${config.height || \"650px\"};\n ${this.getPositionStyles(config.position || \"bottom-right\")}\n display: ${config.hideDefaultTrigger ? \"none\" : \"block\"};\n `;\n iframe.setAttribute(\"allow\", \"clipboard-write\");\n iframe.setAttribute(\"title\", \"BuniAI Chat Widget\");\n\n iframe.onload = () => {\n this.widgetElement = iframe;\n this.setupPostMessageAPI(iframe);\n resolve();\n };\n\n iframe.onerror = () => {\n reject(new Error(\"Failed to load BuniAI widget iframe\"));\n };\n\n document.body.appendChild(iframe);\n });\n }\n\n private getPositionStyles(position: string): string {\n switch (position) {\n case \"bottom-right\":\n return \"bottom: 20px; right: 20px;\";\n case \"bottom-left\":\n return \"bottom: 20px; left: 20px;\";\n case \"top-right\":\n return \"top: 20px; right: 20px;\";\n case \"top-left\":\n return \"top: 20px; left: 20px;\";\n default:\n return \"bottom: 20px; right: 20px;\";\n }\n }\n\n private setupPostMessageAPI(iframe: HTMLIFrameElement): void {\n // Listen for messages from the iframe\n window.addEventListener(\"message\", (event) => {\n // Verify origin for security\n if (event.origin !== this.getBaseUrl()) {\n return;\n }\n\n const { type, data } = event.data;\n\n switch (type) {\n case \"ready\":\n this.state.isLoaded = true;\n this.emit(\"ready\", data);\n if (this.options.onReady) {\n this.options.onReady(data);\n }\n break;\n\n case \"visibility_changed\":\n this.state.isOpen = data.visibility === \"visible\";\n this.emit(\"visibility_changed\", data);\n if (this.options.onVisibilityChanged) {\n this.options.onVisibilityChanged(data);\n }\n break;\n\n case \"new_message\":\n if (data.isFromBot) {\n this.state.unreadCount++;\n }\n this.emit(\"new_message\", data);\n if (this.options.onNewMessage) {\n this.options.onNewMessage(data);\n }\n break;\n\n case \"minimized\":\n this.state.isMinimized = true;\n this.emit(\"minimized\", data);\n break;\n\n case \"maximized\":\n this.state.isMinimized = false;\n this.emit(\"maximized\", data);\n break;\n\n case \"customer_data_updated\":\n this.customerData = data;\n this.emit(\"customer_data_updated\", data);\n break;\n\n case \"session_updated\":\n this.sessionVariables = data.variables;\n this.emit(\"session_updated\", data);\n break;\n\n case \"error\":\n this.emit(\"error\", data);\n if (this.options.onError) {\n this.options.onError(data.error);\n }\n break;\n }\n });\n }\n\n private postMessageToWidget(type: string, data?: any): void {\n if (this.widgetElement && this.widgetElement instanceof HTMLIFrameElement) {\n this.widgetElement.contentWindow?.postMessage(\n { type, data },\n this.getBaseUrl()\n );\n }\n }\n\n private initializeWidgetAPI(): void {\n // Widget API is now handled via postMessage in setupPostMessageAPI\n // This method is kept for backward compatibility but no longer needed\n }\n\n private getBaseUrl(): string {\n // Return the base URL for the BuniAI platform\n return (globalThis as any).BUNI_API_URL || window.location.origin;\n }\n\n destroy(): void {\n this.postMessageToWidget(\"destroy\");\n\n if (this.widgetElement) {\n this.widgetElement.remove();\n this.widgetElement = null;\n }\n\n this.eventListeners.clear();\n this.state.isLoaded = false;\n this.customerData = null;\n this.sessionVariables = null;\n }\n\n show(): void {\n // Show the iframe if it was hidden (hideDefaultTrigger mode)\n if (this.widgetElement instanceof HTMLIFrameElement) {\n this.widgetElement.style.display = \"block\";\n }\n this.postMessageToWidget(\"show\");\n this.state.isOpen = true;\n this.state.unreadCount = 0;\n this.emit(\"visibility_changed\", { visibility: \"visible\" });\n }\n\n hide(): void {\n this.postMessageToWidget(\"hide\");\n // If hideDefaultTrigger is enabled, completely hide the iframe\n if (this.options.config?.hideDefaultTrigger && this.widgetElement instanceof HTMLIFrameElement) {\n this.widgetElement.style.display = \"none\";\n }\n this.state.isOpen = false;\n this.emit(\"visibility_changed\", { visibility: \"hidden\" });\n }\n\n toggle(): void {\n this.state.isOpen ? this.hide() : this.show();\n }\n\n minimize(): void {\n this.postMessageToWidget(\"minimize\");\n this.state.isMinimized = true;\n this.emit(\"minimized\", { timestamp: Date.now() });\n }\n\n maximize(): void {\n this.postMessageToWidget(\"maximize\");\n this.state.isMinimized = false;\n this.emit(\"maximized\", { timestamp: Date.now() });\n }\n\n setCustomerData(data: CustomerData): void {\n this.customerData = { ...this.customerData, ...data };\n this.postMessageToWidget(\"setCustomerData\", this.customerData);\n this.emit(\"customer_data_updated\", { data: this.customerData });\n }\n\n getCustomerData(): CustomerData | null {\n return this.customerData ? { ...this.customerData } : null;\n }\n\n setSessionVariables(variables: SessionVariables): void {\n this.sessionVariables = { ...this.sessionVariables, ...variables };\n this.postMessageToWidget(\"setSessionVariables\", this.sessionVariables);\n this.emit(\"session_updated\", { variables: this.sessionVariables });\n }\n\n getSessionVariables(): SessionVariables | null {\n return this.sessionVariables ? { ...this.sessionVariables } : null;\n }\n\n sendMessage(message: string): void {\n this.postMessageToWidget(\"sendMessage\", { message });\n\n const messageData = {\n message,\n isFromBot: false,\n timestamp: Date.now(),\n messageId: `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n };\n\n this.emit(\"new_message\", messageData);\n }\n\n clearChat(): void {\n this.postMessageToWidget(\"clearChat\");\n this.state.unreadCount = 0;\n }\n\n on(event: string, callback: Function): void {\n if (!this.eventListeners.has(event)) {\n this.eventListeners.set(event, []);\n }\n this.eventListeners.get(event)!.push(callback);\n }\n\n off(event: string, callback?: Function): void {\n const listeners = this.eventListeners.get(event);\n if (!listeners) return;\n\n if (callback) {\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n } else {\n this.eventListeners.set(event, []);\n }\n }\n\n emit(event: string, data?: any): void {\n const listeners = this.eventListeners.get(event);\n if (listeners) {\n listeners.forEach((callback) => {\n try {\n callback(data);\n } catch (error) {\n console.error(`Error in event listener for ${event}:`, error);\n }\n });\n }\n }\n\n getState(): BuniChatState {\n return { ...this.state };\n }\n\n isReady(): boolean {\n return this.state.isLoaded;\n }\n}\n\n// Utility function - named export\nexport function createBuniChatWidget(options: BuniChatOptions): BuniChatWidget {\n const widget = new BuniChatWidget();\n widget.initialize(options);\n return widget;\n}\n\n// Default export - the main widget class\nexport default BuniChatWidget;\n\n// Global type declaration for the widget API\ndeclare global {\n interface Window {\n BuniChat?: {\n configure: (config: any) => void;\n show: () => void;\n hide: () => void;\n minimize: () => void;\n maximize: () => void;\n destroy: () => void;\n setCustomerData: (data: CustomerData) => void;\n setSessionVariables: (variables: SessionVariables) => void;\n sendMessage: (message: string) => void;\n clearChat: () => void;\n on: (event: string, callback: Function) => void;\n off: (event: string, callback?: Function) => void;\n };\n }\n}\n","// Main exports for @buni.ai/chatbot-core\n\n// Export all types\nexport * from \"./types\";\n\n// Export everything from widget\nexport * from \"./widget\";\n\n// Make BuniChatWidget the default export as well\nimport { BuniChatWidget } from \"./widget\";\nexport default BuniChatWidget;\n"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -10,9 +10,14 @@ export interface BuniChatConfig {
|
|
|
10
10
|
height?: number;
|
|
11
11
|
triggerText?: string;
|
|
12
12
|
autoOpen?: boolean;
|
|
13
|
+
minimized?: boolean;
|
|
14
|
+
allowMinimize?: boolean;
|
|
13
15
|
showMinimize?: boolean;
|
|
14
16
|
showBranding?: boolean;
|
|
15
17
|
enableMobile?: boolean;
|
|
18
|
+
enableFileUpload?: boolean;
|
|
19
|
+
borderRadius?: string;
|
|
20
|
+
hideDefaultTrigger?: boolean;
|
|
16
21
|
}
|
|
17
22
|
export interface BuniChatOptions {
|
|
18
23
|
token: string;
|
package/dist/widget.d.ts
CHANGED
|
@@ -9,6 +9,9 @@ export declare class BuniChatWidget implements BuniChatAPI {
|
|
|
9
9
|
constructor();
|
|
10
10
|
initialize(options: BuniChatOptions): Promise<void>;
|
|
11
11
|
private loadWidget;
|
|
12
|
+
private getPositionStyles;
|
|
13
|
+
private setupPostMessageAPI;
|
|
14
|
+
private postMessageToWidget;
|
|
12
15
|
private initializeWidgetAPI;
|
|
13
16
|
private getBaseUrl;
|
|
14
17
|
destroy(): void;
|