@xpert-ai/chatkit-web-component 0.18.0 → 0.19.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/xpert-chatkit.js
CHANGED
|
@@ -47,7 +47,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
|
|
|
47
47
|
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
48
48
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
49
49
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
50
|
-
var _a, _b, _setTrainingOptOut_dec, _hideHistory_dec, _showHistory_dec, _sendCustomAction_dec, _shareThread_dec, _focusMessage_dec, _setThreadId_dec, _setRuntimeCapabilities_dec, _setComposerValue_dec, _sendUserMessage_dec, _fetchUpdates_dec, _focusComposer_dec, _c, _opts, _frameUrl, _frame, _wrapper, _windowDrag, _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;
|
|
50
|
+
var _a, _b, _setTrainingOptOut_dec, _hideHistory_dec, _showHistory_dec, _sendCustomAction_dec, _shareThread_dec, _focusMessage_dec, _prepareLeave_dec, _setThreadId_dec, _setRuntimeCapabilities_dec, _setComposerValue_dec, _sendUserMessage_dec, _fetchUpdates_dec, _focusComposer_dec, _c, _opts, _frameUrl, _frame, _wrapper, _windowDrag, _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;
|
|
51
51
|
class EventEmitter {
|
|
52
52
|
constructor() {
|
|
53
53
|
__publicField(this, "callbacks", /* @__PURE__ */ new Map());
|
|
@@ -269,10 +269,12 @@ class HttpError extends Error {
|
|
|
269
269
|
super(message);
|
|
270
270
|
__publicField(this, "status");
|
|
271
271
|
__publicField(this, "statusText");
|
|
272
|
+
__publicField(this, "retryAfterMs");
|
|
272
273
|
__publicField(this, "metadata");
|
|
273
274
|
this.name = "HttpError";
|
|
274
275
|
this.statusText = res.statusText;
|
|
275
276
|
this.status = res.status;
|
|
277
|
+
this.retryAfterMs = res.retryAfterMs;
|
|
276
278
|
this.metadata = metadata;
|
|
277
279
|
}
|
|
278
280
|
static fromPossibleFrameSafeError(error) {
|
|
@@ -285,7 +287,8 @@ class HttpError extends Error {
|
|
|
285
287
|
safeError.message,
|
|
286
288
|
{
|
|
287
289
|
status: safeError.status,
|
|
288
|
-
statusText: safeError.statusText
|
|
290
|
+
statusText: safeError.statusText,
|
|
291
|
+
retryAfterMs: safeError.retryAfterMs
|
|
289
292
|
},
|
|
290
293
|
safeError.metadata
|
|
291
294
|
);
|
|
@@ -303,11 +306,13 @@ const _FrameSafeHttpError = class _FrameSafeHttpError {
|
|
|
303
306
|
__publicField(this, "stack");
|
|
304
307
|
__publicField(this, "status");
|
|
305
308
|
__publicField(this, "statusText");
|
|
309
|
+
__publicField(this, "retryAfterMs");
|
|
306
310
|
__publicField(this, "metadata");
|
|
307
311
|
this.message = message;
|
|
308
312
|
this.stack = new Error(message).stack;
|
|
309
313
|
this.status = res.status;
|
|
310
314
|
this.statusText = res.statusText;
|
|
315
|
+
this.retryAfterMs = res.retryAfterMs;
|
|
311
316
|
this.metadata = metadata;
|
|
312
317
|
}
|
|
313
318
|
static fromHttpError(error) {
|
|
@@ -315,7 +320,8 @@ const _FrameSafeHttpError = class _FrameSafeHttpError {
|
|
|
315
320
|
error.message,
|
|
316
321
|
{
|
|
317
322
|
status: error.status,
|
|
318
|
-
statusText: error.statusText
|
|
323
|
+
statusText: error.statusText,
|
|
324
|
+
retryAfterMs: error.retryAfterMs
|
|
319
325
|
},
|
|
320
326
|
error.metadata
|
|
321
327
|
);
|
|
@@ -437,19 +443,42 @@ class FrameSafeIntegrationError {
|
|
|
437
443
|
}
|
|
438
444
|
}
|
|
439
445
|
function serializeFrameError(error) {
|
|
446
|
+
if (error instanceof HttpError || error instanceof FrameSafeHttpError) {
|
|
447
|
+
try {
|
|
448
|
+
return structuredClone(
|
|
449
|
+
error instanceof HttpError ? FrameSafeHttpError.fromHttpError(error) : error
|
|
450
|
+
);
|
|
451
|
+
} catch {
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
if (error && typeof error === "object" && "status" in error && typeof error.status === "number") {
|
|
455
|
+
const message = "message" in error && typeof error.message === "string" ? error.message : "ChatKit host request failed";
|
|
456
|
+
return new FrameSafeHttpError(message, {
|
|
457
|
+
status: error.status,
|
|
458
|
+
statusText: "statusText" in error && typeof error.statusText === "string" ? error.statusText : void 0,
|
|
459
|
+
retryAfterMs: readRetryAfterMs(error)
|
|
460
|
+
});
|
|
461
|
+
}
|
|
440
462
|
try {
|
|
441
463
|
return structuredClone(error);
|
|
442
464
|
} catch {
|
|
443
465
|
const message = error && typeof error === "object" && "message" in error && typeof error.message === "string" ? error.message : "ChatKit host request failed";
|
|
444
|
-
if (error && typeof error === "object" && "status" in error && typeof error.status === "number") {
|
|
445
|
-
return new FrameSafeHttpError(message, {
|
|
446
|
-
status: error.status,
|
|
447
|
-
statusText: "statusText" in error && typeof error.statusText === "string" ? error.statusText : void 0
|
|
448
|
-
});
|
|
449
|
-
}
|
|
450
466
|
return new Error(message);
|
|
451
467
|
}
|
|
452
468
|
}
|
|
469
|
+
function readRetryAfterMs(error) {
|
|
470
|
+
if ("retryAfterMs" in error && typeof error.retryAfterMs === "number" && Number.isFinite(error.retryAfterMs)) {
|
|
471
|
+
return Math.max(0, error.retryAfterMs);
|
|
472
|
+
}
|
|
473
|
+
if (!("headers" in error) || !error.headers || typeof error.headers !== "object")
|
|
474
|
+
return;
|
|
475
|
+
const headers = error.headers;
|
|
476
|
+
if (!("get" in headers) || typeof headers.get !== "function") return;
|
|
477
|
+
const value = headers.get("Retry-After");
|
|
478
|
+
if (typeof value !== "string" || !value.trim()) return;
|
|
479
|
+
const duration = /^\d+(\.\d+)?$/.test(value.trim()) ? Number(value) * 1e3 : Date.parse(value) - Date.now();
|
|
480
|
+
return Number.isFinite(duration) ? Math.max(0, duration) : void 0;
|
|
481
|
+
}
|
|
453
482
|
class BaseMessenger {
|
|
454
483
|
constructor({
|
|
455
484
|
handlers,
|
|
@@ -752,6 +781,7 @@ const BASE_CAPABILITY_ALLOWLIST = [
|
|
|
752
781
|
"command.setThreadId",
|
|
753
782
|
"command.focusComposer",
|
|
754
783
|
"command.focusMessage",
|
|
784
|
+
"command.prepareLeave",
|
|
755
785
|
"command.fetchUpdates",
|
|
756
786
|
"command.sendCustomAction",
|
|
757
787
|
"command.showHistory",
|
|
@@ -1045,6 +1075,14 @@ const DEFAULT_PET_BOUNDS_PADDING = {
|
|
|
1045
1075
|
left: 0
|
|
1046
1076
|
};
|
|
1047
1077
|
const DEFAULT_PET_STORAGE_KEY = "chatkit:pet:position:v1";
|
|
1078
|
+
function getPetAssetsBaseUrl(pet) {
|
|
1079
|
+
return pet && typeof pet === "object" ? pet.assetsBaseUrl : void 0;
|
|
1080
|
+
}
|
|
1081
|
+
function getPetAssetUrl(id, assetsBaseUrl) {
|
|
1082
|
+
const base = ((assetsBaseUrl == null ? void 0 : assetsBaseUrl.trim()) || "/pets").replace(/\/+$/, "");
|
|
1083
|
+
const resourceId = id;
|
|
1084
|
+
return `${base}/${encodeURIComponent(resourceId)}/spritesheet.webp`;
|
|
1085
|
+
}
|
|
1048
1086
|
const DEFAULT_PET_SPRITESHEET_URL = "/pets/boba/spritesheet.webp";
|
|
1049
1087
|
const DEFAULT_PET_CHARACTER = {
|
|
1050
1088
|
type: "sprite-atlas",
|
|
@@ -1091,12 +1129,16 @@ function normalizeCharacter(character) {
|
|
|
1091
1129
|
return DEFAULT_PET_CHARACTER;
|
|
1092
1130
|
}
|
|
1093
1131
|
function normalizePetOptions(pet) {
|
|
1132
|
+
var _a2;
|
|
1094
1133
|
if (!pet) {
|
|
1095
1134
|
return null;
|
|
1096
1135
|
}
|
|
1097
1136
|
if (pet === true) {
|
|
1098
1137
|
return {
|
|
1099
|
-
character:
|
|
1138
|
+
character: {
|
|
1139
|
+
...DEFAULT_PET_CHARACTER,
|
|
1140
|
+
src: getPetAssetUrl("boba")
|
|
1141
|
+
},
|
|
1100
1142
|
position: DEFAULT_POSITION,
|
|
1101
1143
|
behavior: "auto",
|
|
1102
1144
|
ariaLabel: "Animated pet",
|
|
@@ -1107,7 +1149,10 @@ function normalizePetOptions(pet) {
|
|
|
1107
1149
|
return null;
|
|
1108
1150
|
}
|
|
1109
1151
|
return {
|
|
1110
|
-
character: normalizeCharacter(pet.character)
|
|
1152
|
+
character: ((_a2 = pet.character) == null ? void 0 : _a2.src) ? normalizeCharacter(pet.character) : {
|
|
1153
|
+
...DEFAULT_PET_CHARACTER,
|
|
1154
|
+
src: getPetAssetUrl("boba", pet.assetsBaseUrl)
|
|
1155
|
+
},
|
|
1111
1156
|
position: {
|
|
1112
1157
|
...DEFAULT_POSITION,
|
|
1113
1158
|
...pet.position
|
|
@@ -2747,7 +2792,7 @@ function requireCommandCapability(value, context) {
|
|
|
2747
2792
|
return value.apply(this, args);
|
|
2748
2793
|
};
|
|
2749
2794
|
}
|
|
2750
|
-
class ChatKitElementBase extends (_c = HTMLElement, _focusComposer_dec = [requireCommandCapability], _fetchUpdates_dec = [requireCommandCapability], _sendUserMessage_dec = [requireCommandCapability], _setComposerValue_dec = [requireCommandCapability], _setRuntimeCapabilities_dec = [requireCommandCapability], _setThreadId_dec = [requireCommandCapability], _focusMessage_dec = [requireCommandCapability], _shareThread_dec = [requireCommandCapability], _sendCustomAction_dec = [requireCommandCapability], _showHistory_dec = [requireCommandCapability], _hideHistory_dec = [requireCommandCapability], _setTrainingOptOut_dec = [requireCommandCapability], _c) {
|
|
2795
|
+
class ChatKitElementBase extends (_c = HTMLElement, _focusComposer_dec = [requireCommandCapability], _fetchUpdates_dec = [requireCommandCapability], _sendUserMessage_dec = [requireCommandCapability], _setComposerValue_dec = [requireCommandCapability], _setRuntimeCapabilities_dec = [requireCommandCapability], _setThreadId_dec = [requireCommandCapability], _prepareLeave_dec = [requireCommandCapability], _focusMessage_dec = [requireCommandCapability], _shareThread_dec = [requireCommandCapability], _sendCustomAction_dec = [requireCommandCapability], _showHistory_dec = [requireCommandCapability], _hideHistory_dec = [requireCommandCapability], _setTrainingOptOut_dec = [requireCommandCapability], _c) {
|
|
2751
2796
|
constructor({ profile }) {
|
|
2752
2797
|
super();
|
|
2753
2798
|
__runInitializers(_init, 5, this);
|
|
@@ -3293,6 +3338,11 @@ class ChatKitElementBase extends (_c = HTMLElement, _focusComposer_dec = [requir
|
|
|
3293
3338
|
await __privateGet(this, _loaded);
|
|
3294
3339
|
await ((_a2 = __privateGet(this, _messenger)) == null ? void 0 : _a2.commands.setThreadId({ threadId }));
|
|
3295
3340
|
}
|
|
3341
|
+
async prepareLeave() {
|
|
3342
|
+
await __privateGet(this, _loaded);
|
|
3343
|
+
if (!__privateGet(this, _messenger)) return false;
|
|
3344
|
+
return __privateGet(this, _messenger).commands.prepareLeave();
|
|
3345
|
+
}
|
|
3296
3346
|
async focusMessage(request) {
|
|
3297
3347
|
await __privateGet(this, _loaded);
|
|
3298
3348
|
if (!__privateGet(this, _messenger)) return { success: false, code: "not_ready" };
|
|
@@ -3362,7 +3412,7 @@ getConfiguredPetOptions_fn = function(options = __privateGet(this, _opts)) {
|
|
|
3362
3412
|
return null;
|
|
3363
3413
|
}
|
|
3364
3414
|
if (__privateMethod(this, _ChatKitElementBase_instances, getDisplayMode_fn).call(this, options) === "pet" && !normalizePetOptions(options.pet ?? null)) {
|
|
3365
|
-
return true;
|
|
3415
|
+
return typeof options.pet === "object" ? { ...options.pet, enabled: true } : true;
|
|
3366
3416
|
}
|
|
3367
3417
|
return options.pet ?? null;
|
|
3368
3418
|
};
|
|
@@ -3420,7 +3470,11 @@ resolvePetAssetUrl_fn = function(src) {
|
|
|
3420
3470
|
}
|
|
3421
3471
|
};
|
|
3422
3472
|
resolveOverlayPetOptions_fn = function(pet) {
|
|
3423
|
-
|
|
3473
|
+
var _a2;
|
|
3474
|
+
const assetsBaseUrl = getPetAssetsBaseUrl(pet ?? void 0) ?? getPetAssetsBaseUrl((_a2 = __privateGet(this, _opts)) == null ? void 0 : _a2.pet);
|
|
3475
|
+
const normalized = normalizePetOptions(
|
|
3476
|
+
pet ? { ...pet === true ? {} : pet, assetsBaseUrl } : null
|
|
3477
|
+
);
|
|
3424
3478
|
if (!normalized) {
|
|
3425
3479
|
return null;
|
|
3426
3480
|
}
|
|
@@ -3566,6 +3620,7 @@ __decorateElement(_init, 1, "sendUserMessage", _sendUserMessage_dec, ChatKitElem
|
|
|
3566
3620
|
__decorateElement(_init, 1, "setComposerValue", _setComposerValue_dec, ChatKitElementBase);
|
|
3567
3621
|
__decorateElement(_init, 1, "setRuntimeCapabilities", _setRuntimeCapabilities_dec, ChatKitElementBase);
|
|
3568
3622
|
__decorateElement(_init, 1, "setThreadId", _setThreadId_dec, ChatKitElementBase);
|
|
3623
|
+
__decorateElement(_init, 1, "prepareLeave", _prepareLeave_dec, ChatKitElementBase);
|
|
3569
3624
|
__decorateElement(_init, 1, "focusMessage", _focusMessage_dec, ChatKitElementBase);
|
|
3570
3625
|
__decorateElement(_init, 1, "shareThread", _shareThread_dec, ChatKitElementBase);
|
|
3571
3626
|
__decorateElement(_init, 1, "sendCustomAction", _sendCustomAction_dec, ChatKitElementBase);
|