@xpert-ai/chatkit-ui5 0.4.1 → 0.4.2
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/chatkit.cjs +125 -23
- package/dist/chatkit.cjs.map +1 -1
- package/dist/chatkit.ui5.js +125 -23
- package/dist/chatkit.ui5.js.map +1 -1
- package/dist/index.js +125 -23
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/chatkit.ui5.js
CHANGED
|
@@ -51,7 +51,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
51
51
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
52
52
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
53
53
|
|
|
54
|
-
var _a, _b, _setTrainingOptOut_dec, _hideHistory_dec, _showHistory_dec, _sendCustomAction_dec, _shareThread_dec, _setThreadId_dec, _setRuntimeCapabilities_dec, _setComposerValue_dec, _sendUserMessage_dec, _fetchUpdates_dec, _focusComposer_dec, _c, _opts, _frameUrl, _frame, _wrapper, _launcherCloseButton, _launcherOpen, _chatMinimizedToPet, _framePetOptionsOverride, _petClosedByContextMenu, _shadow, _petOverlay, _resolveLoaded, _loaded, _messenger, _ChatKitElementBase_instances, emitAndThrow_fn, setOptionsDataAttributes_fn, getDisplayMode_fn, getConfiguredPetOptions_fn, mergeConfiguredPetPositionDefaults_fn, getOverlayPetOptions_fn, resolvePetAssetUrl_fn, resolveOverlayPetOptions_fn, getFrameOptions_fn, setLauncherOpen_fn, setChatMinimizedToPet_fn, syncPetOverlayOptions_fn, handlePetActivate_fn, handlePetClose_fn, handlePetReply_fn, handlePetThreadSummaryActivate_fn, _handleLauncherClose, getFrameUrl_fn, setFrameUrl_fn, consumeFrameUrl_fn, _handleFrameLoad, _initialized, maybeInit_fn, _init;
|
|
54
|
+
var _a, _b, _setTrainingOptOut_dec, _hideHistory_dec, _showHistory_dec, _sendCustomAction_dec, _shareThread_dec, _setThreadId_dec, _setRuntimeCapabilities_dec, _setComposerValue_dec, _sendUserMessage_dec, _fetchUpdates_dec, _focusComposer_dec, _c, _opts, _frameUrl, _frame, _wrapper, _launcherCloseButton, _launcherOpen, _chatMinimizedToPet, _framePetOptionsOverride, _petClosedByContextMenu, _shadow, _petOverlay, _resolveLoaded, _loaded, _channelId, _messenger, _ChatKitElementBase_instances, emitAndThrow_fn, setOptionsDataAttributes_fn, getDisplayMode_fn, getConfiguredPetOptions_fn, mergeConfiguredPetPositionDefaults_fn, getOverlayPetOptions_fn, resolvePetAssetUrl_fn, resolveOverlayPetOptions_fn, getFrameOptions_fn, setLauncherOpen_fn, setChatMinimizedToPet_fn, syncPetOverlayOptions_fn, handlePetActivate_fn, handlePetClose_fn, handlePetReply_fn, handlePetThreadSummaryActivate_fn, _handleLauncherClose, getFrameUrl_fn, setFrameUrl_fn, consumeFrameUrl_fn, _handleFrameLoad, _initialized, maybeInit_fn, _init;
|
|
55
55
|
class EventEmitter {
|
|
56
56
|
constructor() {
|
|
57
57
|
__publicField(this, "callbacks", /* @__PURE__ */ new Map());
|
|
@@ -370,7 +370,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
370
370
|
}
|
|
371
371
|
});
|
|
372
372
|
};
|
|
373
|
-
function
|
|
373
|
+
function createSecureChannelId() {
|
|
374
374
|
const cryptoRef = globalThis.crypto;
|
|
375
375
|
if (typeof (cryptoRef == null ? void 0 : cryptoRef.randomUUID) === "function") {
|
|
376
376
|
return cryptoRef.randomUUID();
|
|
@@ -382,7 +382,30 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
382
382
|
bytes[8] = bytes[8] & 63 | 128;
|
|
383
383
|
return [...bytes].map((byte) => byte.toString(16).padStart(2, "0")).join("").replace(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/, "$1-$2-$3-$4-$5");
|
|
384
384
|
}
|
|
385
|
-
return
|
|
385
|
+
return null;
|
|
386
|
+
}
|
|
387
|
+
function safeRandomUUID() {
|
|
388
|
+
return createSecureChannelId() ?? `ck_${Date.now()}_${Math.random().toString(16).slice(2)}`;
|
|
389
|
+
}
|
|
390
|
+
function isTrustedChatKitMessageEvent(event, { channelId, expectedOrigin, expectedSource }) {
|
|
391
|
+
const payload = event.data;
|
|
392
|
+
if (!payload || typeof payload !== "object" || !("__xpaiChatKit" in payload)) {
|
|
393
|
+
return false;
|
|
394
|
+
}
|
|
395
|
+
if (payload.__xpaiChatKit !== true) {
|
|
396
|
+
return false;
|
|
397
|
+
}
|
|
398
|
+
if (expectedOrigin !== "*" && event.origin !== expectedOrigin) {
|
|
399
|
+
return false;
|
|
400
|
+
}
|
|
401
|
+
if (event.source === expectedSource) {
|
|
402
|
+
return true;
|
|
403
|
+
}
|
|
404
|
+
const normalizedChannelId = channelId == null ? void 0 : channelId.trim();
|
|
405
|
+
if (normalizedChannelId) {
|
|
406
|
+
return "channelId" in payload && payload.channelId === normalizedChannelId;
|
|
407
|
+
}
|
|
408
|
+
return false;
|
|
386
409
|
}
|
|
387
410
|
let IntegrationError$1 = class IntegrationError2 extends Error {
|
|
388
411
|
constructor(message) {
|
|
@@ -416,10 +439,12 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
416
439
|
handlers,
|
|
417
440
|
target,
|
|
418
441
|
targetOrigin,
|
|
442
|
+
channelId,
|
|
419
443
|
fetch: fetch2 = window.fetch
|
|
420
444
|
}) {
|
|
421
445
|
__publicField(this, "targetOrigin");
|
|
422
446
|
__publicField(this, "target");
|
|
447
|
+
__publicField(this, "channelId");
|
|
423
448
|
__publicField(this, "commandHandlers");
|
|
424
449
|
__publicField(this, "_fetch");
|
|
425
450
|
__publicField(this, "emitter", new EventEmitter());
|
|
@@ -450,7 +475,11 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
450
475
|
));
|
|
451
476
|
__publicField(this, "handleMessage", async (event) => {
|
|
452
477
|
var _a2, _b2, _c2, _d;
|
|
453
|
-
if (!event
|
|
478
|
+
if (!isTrustedChatKitMessageEvent(event, {
|
|
479
|
+
channelId: this.channelId,
|
|
480
|
+
expectedOrigin: this.targetOrigin,
|
|
481
|
+
expectedSource: this.target()
|
|
482
|
+
})) {
|
|
454
483
|
return;
|
|
455
484
|
}
|
|
456
485
|
const data = event.data;
|
|
@@ -591,6 +620,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
591
620
|
this.commandHandlers = handlers;
|
|
592
621
|
this.target = target;
|
|
593
622
|
this.targetOrigin = targetOrigin;
|
|
623
|
+
this.channelId = (channelId == null ? void 0 : channelId.trim()) || void 0;
|
|
594
624
|
this._fetch = (...args) => fetch2(...args);
|
|
595
625
|
}
|
|
596
626
|
setTargetOrigin(targetOrigin) {
|
|
@@ -600,6 +630,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
600
630
|
var _a2;
|
|
601
631
|
const message = {
|
|
602
632
|
__xpaiChatKit: true,
|
|
633
|
+
...this.channelId ? { channelId: this.channelId } : {},
|
|
603
634
|
...data
|
|
604
635
|
};
|
|
605
636
|
(_a2 = this.target()) == null ? void 0 : _a2.postMessage(message, this.targetOrigin, transfer);
|
|
@@ -715,6 +746,8 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
715
746
|
"event.response.end",
|
|
716
747
|
"event.response.stop",
|
|
717
748
|
"event.thread.change",
|
|
749
|
+
"event.project.change",
|
|
750
|
+
"event.connectors.change",
|
|
718
751
|
"event.tool.change",
|
|
719
752
|
"event.thread.load.start",
|
|
720
753
|
"event.thread.load.end",
|
|
@@ -820,7 +853,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
820
853
|
"widget.Map"
|
|
821
854
|
];
|
|
822
855
|
const PROFILE_TO_RULES = {
|
|
823
|
-
|
|
856
|
+
chatkit: {
|
|
824
857
|
allow: [...BASE_CAPABILITY_ALLOWLIST, "thread.item.image_generation"],
|
|
825
858
|
deny: BASE_CAPABILITY_DENYLIST
|
|
826
859
|
}
|
|
@@ -1154,6 +1187,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
1154
1187
|
this.lastDragPosition = null;
|
|
1155
1188
|
this.lastDragClientX = null;
|
|
1156
1189
|
this.dragAnimation = null;
|
|
1190
|
+
this.activePointerId = null;
|
|
1157
1191
|
this.isDragging = false;
|
|
1158
1192
|
this.isHovering = false;
|
|
1159
1193
|
this.movedDuringDrag = false;
|
|
@@ -1285,7 +1319,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
1285
1319
|
};
|
|
1286
1320
|
this.handlePointerDown = (event) => {
|
|
1287
1321
|
var _a2, _b2;
|
|
1288
|
-
if (event.button !== 0 || event.ctrlKey) {
|
|
1322
|
+
if (event.button !== 0 || event.ctrlKey || this.isDragging) {
|
|
1289
1323
|
return;
|
|
1290
1324
|
}
|
|
1291
1325
|
this.closeContextMenu();
|
|
@@ -1311,12 +1345,17 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
1311
1345
|
this.movedDuringDrag = false;
|
|
1312
1346
|
this.dragPosition = nextPosition;
|
|
1313
1347
|
this.isDragging = true;
|
|
1348
|
+
this.activePointerId = event.pointerId;
|
|
1314
1349
|
this.clearRestingDelayTimer();
|
|
1315
1350
|
this.isHovering = true;
|
|
1351
|
+
this.captureActivePointer();
|
|
1316
1352
|
this.installDragListeners();
|
|
1317
1353
|
this.rescheduleAnimation();
|
|
1318
1354
|
};
|
|
1319
1355
|
this.handlePointerMove = (event) => {
|
|
1356
|
+
if (!this.isActiveDragPointer(event)) {
|
|
1357
|
+
return;
|
|
1358
|
+
}
|
|
1320
1359
|
const nextPosition = this.getNextDragPosition(event);
|
|
1321
1360
|
const last = this.lastDragPosition;
|
|
1322
1361
|
if (last && (Math.abs(last.x - nextPosition.x) > DRAG_DIRECTION_THRESHOLD_PX || Math.abs(last.y - nextPosition.y) > DRAG_DIRECTION_THRESHOLD_PX)) {
|
|
@@ -1336,20 +1375,18 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
1336
1375
|
this.render();
|
|
1337
1376
|
};
|
|
1338
1377
|
this.handlePointerUp = (event) => {
|
|
1378
|
+
if (!this.isActiveDragPointer(event)) {
|
|
1379
|
+
return;
|
|
1380
|
+
}
|
|
1339
1381
|
const finalPosition = this.lastDragPosition ?? this.getNextDragPosition(event);
|
|
1340
|
-
this.
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
this.
|
|
1344
|
-
|
|
1345
|
-
this.persistPosition(finalPosition);
|
|
1346
|
-
if (event.pointerType === "mouse" && this.isPointerOverPet(event)) {
|
|
1347
|
-
this.isHovering = true;
|
|
1348
|
-
this.rescheduleAnimation();
|
|
1349
|
-
} else {
|
|
1350
|
-
this.enterRestingAfterDelay();
|
|
1351
|
-
this.rescheduleAnimation();
|
|
1382
|
+
this.finishDrag(finalPosition, event);
|
|
1383
|
+
};
|
|
1384
|
+
this.handleLostPointerCapture = (event) => {
|
|
1385
|
+
if (!this.isActiveDragPointer(event)) {
|
|
1386
|
+
return;
|
|
1352
1387
|
}
|
|
1388
|
+
const finalPosition = this.lastDragPosition ?? this.getNextDragPosition(event);
|
|
1389
|
+
this.finishDrag(finalPosition, event);
|
|
1353
1390
|
};
|
|
1354
1391
|
this.handleClick = () => {
|
|
1355
1392
|
var _a2;
|
|
@@ -1553,6 +1590,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
1553
1590
|
pet.addEventListener("pointerenter", this.handlePointerEnter);
|
|
1554
1591
|
pet.addEventListener("pointerleave", this.handlePointerLeave);
|
|
1555
1592
|
pet.addEventListener("pointerdown", this.handlePointerDown);
|
|
1593
|
+
pet.addEventListener("lostpointercapture", this.handleLostPointerCapture);
|
|
1556
1594
|
pet.addEventListener("contextmenu", this.handleContextMenu);
|
|
1557
1595
|
pet.addEventListener("click", this.handleClick);
|
|
1558
1596
|
overlay.append(style, pet);
|
|
@@ -1562,6 +1600,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
1562
1600
|
}
|
|
1563
1601
|
removeOverlay() {
|
|
1564
1602
|
var _a2;
|
|
1603
|
+
this.cancelActiveDrag();
|
|
1565
1604
|
this.clearRestingDelayTimer();
|
|
1566
1605
|
this.clearTimers();
|
|
1567
1606
|
this.closeContextMenu();
|
|
@@ -1578,6 +1617,10 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
1578
1617
|
"pointerdown",
|
|
1579
1618
|
this.handlePointerDown
|
|
1580
1619
|
);
|
|
1620
|
+
this.petElement.removeEventListener(
|
|
1621
|
+
"lostpointercapture",
|
|
1622
|
+
this.handleLostPointerCapture
|
|
1623
|
+
);
|
|
1581
1624
|
this.petElement.removeEventListener(
|
|
1582
1625
|
"contextmenu",
|
|
1583
1626
|
this.handleContextMenu
|
|
@@ -2295,6 +2338,34 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
2295
2338
|
this.render();
|
|
2296
2339
|
}
|
|
2297
2340
|
}
|
|
2341
|
+
captureActivePointer() {
|
|
2342
|
+
const pointerId = this.activePointerId;
|
|
2343
|
+
const pet = this.petElement;
|
|
2344
|
+
if (pointerId === null || typeof (pet == null ? void 0 : pet.setPointerCapture) !== "function") {
|
|
2345
|
+
return;
|
|
2346
|
+
}
|
|
2347
|
+
try {
|
|
2348
|
+
pet.setPointerCapture(pointerId);
|
|
2349
|
+
} catch {
|
|
2350
|
+
}
|
|
2351
|
+
}
|
|
2352
|
+
releaseActivePointer() {
|
|
2353
|
+
const pointerId = this.activePointerId;
|
|
2354
|
+
const pet = this.petElement;
|
|
2355
|
+
this.activePointerId = null;
|
|
2356
|
+
if (pointerId === null || typeof (pet == null ? void 0 : pet.hasPointerCapture) !== "function" || typeof pet.releasePointerCapture !== "function") {
|
|
2357
|
+
return;
|
|
2358
|
+
}
|
|
2359
|
+
try {
|
|
2360
|
+
if (pet.hasPointerCapture(pointerId)) {
|
|
2361
|
+
pet.releasePointerCapture(pointerId);
|
|
2362
|
+
}
|
|
2363
|
+
} catch {
|
|
2364
|
+
}
|
|
2365
|
+
}
|
|
2366
|
+
isActiveDragPointer(event) {
|
|
2367
|
+
return this.isDragging && event.pointerId === this.activePointerId;
|
|
2368
|
+
}
|
|
2298
2369
|
getNextDragPosition(event) {
|
|
2299
2370
|
if (!this.options) {
|
|
2300
2371
|
return { x: 0, y: 0 };
|
|
@@ -2309,12 +2380,35 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
2309
2380
|
chatkitTypes.normalizeBoundsPadding(this.options.position.boundsPadding)
|
|
2310
2381
|
);
|
|
2311
2382
|
}
|
|
2383
|
+
finishDrag(finalPosition, event) {
|
|
2384
|
+
this.isDragging = false;
|
|
2385
|
+
this.dragPosition = null;
|
|
2386
|
+
this.dragAnimation = null;
|
|
2387
|
+
this.lastDragClientX = null;
|
|
2388
|
+
this.removeDragListeners();
|
|
2389
|
+
this.releaseActivePointer();
|
|
2390
|
+
this.persistPosition(finalPosition);
|
|
2391
|
+
if (event.pointerType === "mouse" && this.isPointerOverPet(event)) {
|
|
2392
|
+
this.isHovering = true;
|
|
2393
|
+
this.rescheduleAnimation();
|
|
2394
|
+
} else {
|
|
2395
|
+
this.enterRestingAfterDelay();
|
|
2396
|
+
this.rescheduleAnimation();
|
|
2397
|
+
}
|
|
2398
|
+
}
|
|
2399
|
+
cancelActiveDrag() {
|
|
2400
|
+
this.isDragging = false;
|
|
2401
|
+
this.dragPosition = null;
|
|
2402
|
+
this.dragAnimation = null;
|
|
2403
|
+
this.lastDragPosition = null;
|
|
2404
|
+
this.lastDragClientX = null;
|
|
2405
|
+
this.removeDragListeners();
|
|
2406
|
+
this.releaseActivePointer();
|
|
2407
|
+
}
|
|
2312
2408
|
installDragListeners() {
|
|
2313
2409
|
window.addEventListener("pointermove", this.handlePointerMove);
|
|
2314
|
-
window.addEventListener("pointerup", this.handlePointerUp
|
|
2315
|
-
window.addEventListener("pointercancel", this.handlePointerUp
|
|
2316
|
-
once: true
|
|
2317
|
-
});
|
|
2410
|
+
window.addEventListener("pointerup", this.handlePointerUp);
|
|
2411
|
+
window.addEventListener("pointercancel", this.handlePointerUp);
|
|
2318
2412
|
}
|
|
2319
2413
|
removeDragListeners() {
|
|
2320
2414
|
window.removeEventListener("pointermove", this.handlePointerMove);
|
|
@@ -2361,7 +2455,9 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
2361
2455
|
__privateAdd(this, _loaded, new Promise((resolve) => {
|
|
2362
2456
|
__privateSet(this, _resolveLoaded, resolve);
|
|
2363
2457
|
}));
|
|
2458
|
+
__privateAdd(this, _channelId, createSecureChannelId());
|
|
2364
2459
|
__privateAdd(this, _messenger, new ChatFrameMessenger({
|
|
2460
|
+
channelId: __privateGet(this, _channelId) ?? void 0,
|
|
2365
2461
|
fetch: (...args) => {
|
|
2366
2462
|
var _a2;
|
|
2367
2463
|
const customFetch = ((_a2 = __privateGet(this, _opts)) == null ? void 0 : _a2.api) && "fetch" in __privateGet(this, _opts).api && __privateGet(this, _opts).api.fetch;
|
|
@@ -2860,6 +2956,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
2860
2956
|
_petOverlay = new WeakMap();
|
|
2861
2957
|
_resolveLoaded = new WeakMap();
|
|
2862
2958
|
_loaded = new WeakMap();
|
|
2959
|
+
_channelId = new WeakMap();
|
|
2863
2960
|
_messenger = new WeakMap();
|
|
2864
2961
|
_ChatKitElementBase_instances = new WeakSet();
|
|
2865
2962
|
emitAndThrow_fn = function(error) {
|
|
@@ -3070,7 +3167,8 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
3070
3167
|
frameURL.hash = encodeBase64({
|
|
3071
3168
|
options: getInnerOptions(__privateMethod(this, _ChatKitElementBase_instances, getFrameOptions_fn).call(this, __privateGet(this, _opts))),
|
|
3072
3169
|
referrer: window.location.origin,
|
|
3073
|
-
profile: this.profile
|
|
3170
|
+
profile: this.profile,
|
|
3171
|
+
...__privateGet(this, _channelId) ? { channelId: __privateGet(this, _channelId) } : {}
|
|
3074
3172
|
});
|
|
3075
3173
|
__privateGet(this, _messenger).connect();
|
|
3076
3174
|
__privateGet(this, _frame).src = frameURL.toString();
|
|
@@ -3114,6 +3212,8 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
3114
3212
|
"chatkit.response.start": "onResponseStart",
|
|
3115
3213
|
"chatkit.log": "onLog",
|
|
3116
3214
|
"chatkit.thread.change": "onThreadChange",
|
|
3215
|
+
"chatkit.project.change": "onProjectChange",
|
|
3216
|
+
"chatkit.connectors.change": "onConnectorsChange",
|
|
3117
3217
|
"chatkit.thread.load.start": "onThreadLoadStart",
|
|
3118
3218
|
"chatkit.thread.load.end": "onThreadLoadEnd",
|
|
3119
3219
|
"chatkit.ready": "onReady",
|
|
@@ -3125,6 +3225,8 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
3125
3225
|
"chatkit.response.start": "responseStart",
|
|
3126
3226
|
"chatkit.log": "log",
|
|
3127
3227
|
"chatkit.thread.change": "threadChange",
|
|
3228
|
+
"chatkit.project.change": "projectChange",
|
|
3229
|
+
"chatkit.connectors.change": "connectorsChange",
|
|
3128
3230
|
"chatkit.thread.load.start": "threadLoadStart",
|
|
3129
3231
|
"chatkit.thread.load.end": "threadLoadEnd",
|
|
3130
3232
|
"chatkit.ready": "ready",
|