@xpert-ai/chatkit-web-component 0.17.0 → 0.19.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.
@@ -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());
@@ -381,7 +381,13 @@ function createSecureChannelId() {
381
381
  return null;
382
382
  }
383
383
  function safeRandomUUID() {
384
- return createSecureChannelId() ?? `ck_${Date.now()}_${Math.random().toString(16).slice(2)}`;
384
+ const id = createSecureChannelId();
385
+ if (id === null) {
386
+ throw new Error(
387
+ "ChatKit requires crypto.randomUUID or crypto.getRandomValues to generate secure UUIDs."
388
+ );
389
+ }
390
+ return id;
385
391
  }
386
392
  function isTrustedChatKitMessageEvent(event, { channelId, expectedOrigin, expectedSource }) {
387
393
  const payload = event.data;
@@ -746,6 +752,7 @@ const BASE_CAPABILITY_ALLOWLIST = [
746
752
  "command.setThreadId",
747
753
  "command.focusComposer",
748
754
  "command.focusMessage",
755
+ "command.prepareLeave",
749
756
  "command.fetchUpdates",
750
757
  "command.sendCustomAction",
751
758
  "command.showHistory",
@@ -1039,6 +1046,14 @@ const DEFAULT_PET_BOUNDS_PADDING = {
1039
1046
  left: 0
1040
1047
  };
1041
1048
  const DEFAULT_PET_STORAGE_KEY = "chatkit:pet:position:v1";
1049
+ function getPetAssetsBaseUrl(pet) {
1050
+ return pet && typeof pet === "object" ? pet.assetsBaseUrl : void 0;
1051
+ }
1052
+ function getPetAssetUrl(id, assetsBaseUrl) {
1053
+ const base = ((assetsBaseUrl == null ? void 0 : assetsBaseUrl.trim()) || "/pets").replace(/\/+$/, "");
1054
+ const resourceId = id;
1055
+ return `${base}/${encodeURIComponent(resourceId)}/spritesheet.webp`;
1056
+ }
1042
1057
  const DEFAULT_PET_SPRITESHEET_URL = "/pets/boba/spritesheet.webp";
1043
1058
  const DEFAULT_PET_CHARACTER = {
1044
1059
  type: "sprite-atlas",
@@ -1085,12 +1100,16 @@ function normalizeCharacter(character) {
1085
1100
  return DEFAULT_PET_CHARACTER;
1086
1101
  }
1087
1102
  function normalizePetOptions(pet) {
1103
+ var _a2;
1088
1104
  if (!pet) {
1089
1105
  return null;
1090
1106
  }
1091
1107
  if (pet === true) {
1092
1108
  return {
1093
- character: DEFAULT_PET_CHARACTER,
1109
+ character: {
1110
+ ...DEFAULT_PET_CHARACTER,
1111
+ src: getPetAssetUrl("boba")
1112
+ },
1094
1113
  position: DEFAULT_POSITION,
1095
1114
  behavior: "auto",
1096
1115
  ariaLabel: "Animated pet",
@@ -1101,7 +1120,10 @@ function normalizePetOptions(pet) {
1101
1120
  return null;
1102
1121
  }
1103
1122
  return {
1104
- character: normalizeCharacter(pet.character),
1123
+ character: ((_a2 = pet.character) == null ? void 0 : _a2.src) ? normalizeCharacter(pet.character) : {
1124
+ ...DEFAULT_PET_CHARACTER,
1125
+ src: getPetAssetUrl("boba", pet.assetsBaseUrl)
1126
+ },
1105
1127
  position: {
1106
1128
  ...DEFAULT_POSITION,
1107
1129
  ...pet.position
@@ -2741,7 +2763,7 @@ function requireCommandCapability(value, context) {
2741
2763
  return value.apply(this, args);
2742
2764
  };
2743
2765
  }
2744
- 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) {
2766
+ 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) {
2745
2767
  constructor({ profile }) {
2746
2768
  super();
2747
2769
  __runInitializers(_init, 5, this);
@@ -2861,6 +2883,10 @@ class ChatKitElementBase extends (_c = HTMLElement, _focusComposer_dec = [requir
2861
2883
  }
2862
2884
  return connect(request);
2863
2885
  },
2886
+ onWorkbenchNavigationChange: async (navigation) => {
2887
+ var _a2, _b2, _c2;
2888
+ await ((_c2 = (_b2 = (_a2 = __privateGet(this, _opts)) == null ? void 0 : _a2.workbench) == null ? void 0 : _b2.onNavigationChange) == null ? void 0 : _c2.call(_b2, navigation));
2889
+ },
2864
2890
  onWorkbenchClientCommand: async ({
2865
2891
  commandKey,
2866
2892
  payload,
@@ -3283,6 +3309,11 @@ class ChatKitElementBase extends (_c = HTMLElement, _focusComposer_dec = [requir
3283
3309
  await __privateGet(this, _loaded);
3284
3310
  await ((_a2 = __privateGet(this, _messenger)) == null ? void 0 : _a2.commands.setThreadId({ threadId }));
3285
3311
  }
3312
+ async prepareLeave() {
3313
+ await __privateGet(this, _loaded);
3314
+ if (!__privateGet(this, _messenger)) return false;
3315
+ return __privateGet(this, _messenger).commands.prepareLeave();
3316
+ }
3286
3317
  async focusMessage(request) {
3287
3318
  await __privateGet(this, _loaded);
3288
3319
  if (!__privateGet(this, _messenger)) return { success: false, code: "not_ready" };
@@ -3352,7 +3383,7 @@ getConfiguredPetOptions_fn = function(options = __privateGet(this, _opts)) {
3352
3383
  return null;
3353
3384
  }
3354
3385
  if (__privateMethod(this, _ChatKitElementBase_instances, getDisplayMode_fn).call(this, options) === "pet" && !normalizePetOptions(options.pet ?? null)) {
3355
- return true;
3386
+ return typeof options.pet === "object" ? { ...options.pet, enabled: true } : true;
3356
3387
  }
3357
3388
  return options.pet ?? null;
3358
3389
  };
@@ -3410,7 +3441,11 @@ resolvePetAssetUrl_fn = function(src) {
3410
3441
  }
3411
3442
  };
3412
3443
  resolveOverlayPetOptions_fn = function(pet) {
3413
- const normalized = normalizePetOptions(pet ?? null);
3444
+ var _a2;
3445
+ const assetsBaseUrl = getPetAssetsBaseUrl(pet ?? void 0) ?? getPetAssetsBaseUrl((_a2 = __privateGet(this, _opts)) == null ? void 0 : _a2.pet);
3446
+ const normalized = normalizePetOptions(
3447
+ pet ? { ...pet === true ? {} : pet, assetsBaseUrl } : null
3448
+ );
3414
3449
  if (!normalized) {
3415
3450
  return null;
3416
3451
  }
@@ -3556,6 +3591,7 @@ __decorateElement(_init, 1, "sendUserMessage", _sendUserMessage_dec, ChatKitElem
3556
3591
  __decorateElement(_init, 1, "setComposerValue", _setComposerValue_dec, ChatKitElementBase);
3557
3592
  __decorateElement(_init, 1, "setRuntimeCapabilities", _setRuntimeCapabilities_dec, ChatKitElementBase);
3558
3593
  __decorateElement(_init, 1, "setThreadId", _setThreadId_dec, ChatKitElementBase);
3594
+ __decorateElement(_init, 1, "prepareLeave", _prepareLeave_dec, ChatKitElementBase);
3559
3595
  __decorateElement(_init, 1, "focusMessage", _focusMessage_dec, ChatKitElementBase);
3560
3596
  __decorateElement(_init, 1, "shareThread", _shareThread_dec, ChatKitElementBase);
3561
3597
  __decorateElement(_init, 1, "sendCustomAction", _sendCustomAction_dec, ChatKitElementBase);