@xpert-ai/chatkit-ui5 0.17.1 → 0.18.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.
@@ -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, _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;
54
+ 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;
55
55
  class EventEmitter {
56
56
  constructor() {
57
57
  __publicField(this, "callbacks", /* @__PURE__ */ new Map());
@@ -273,10 +273,12 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
273
273
  super(message);
274
274
  __publicField(this, "status");
275
275
  __publicField(this, "statusText");
276
+ __publicField(this, "retryAfterMs");
276
277
  __publicField(this, "metadata");
277
278
  this.name = "HttpError";
278
279
  this.statusText = res.statusText;
279
280
  this.status = res.status;
281
+ this.retryAfterMs = res.retryAfterMs;
280
282
  this.metadata = metadata;
281
283
  }
282
284
  static fromPossibleFrameSafeError(error) {
@@ -289,7 +291,8 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
289
291
  safeError.message,
290
292
  {
291
293
  status: safeError.status,
292
- statusText: safeError.statusText
294
+ statusText: safeError.statusText,
295
+ retryAfterMs: safeError.retryAfterMs
293
296
  },
294
297
  safeError.metadata
295
298
  );
@@ -307,11 +310,13 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
307
310
  __publicField(this, "stack");
308
311
  __publicField(this, "status");
309
312
  __publicField(this, "statusText");
313
+ __publicField(this, "retryAfterMs");
310
314
  __publicField(this, "metadata");
311
315
  this.message = message;
312
316
  this.stack = new Error(message).stack;
313
317
  this.status = res.status;
314
318
  this.statusText = res.statusText;
319
+ this.retryAfterMs = res.retryAfterMs;
315
320
  this.metadata = metadata;
316
321
  }
317
322
  static fromHttpError(error) {
@@ -319,7 +324,8 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
319
324
  error.message,
320
325
  {
321
326
  status: error.status,
322
- statusText: error.statusText
327
+ statusText: error.statusText,
328
+ retryAfterMs: error.retryAfterMs
323
329
  },
324
330
  error.metadata
325
331
  );
@@ -441,19 +447,42 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
441
447
  }
442
448
  }
443
449
  function serializeFrameError(error) {
450
+ if (error instanceof HttpError || error instanceof FrameSafeHttpError) {
451
+ try {
452
+ return structuredClone(
453
+ error instanceof HttpError ? FrameSafeHttpError.fromHttpError(error) : error
454
+ );
455
+ } catch {
456
+ }
457
+ }
458
+ if (error && typeof error === "object" && "status" in error && typeof error.status === "number") {
459
+ const message = "message" in error && typeof error.message === "string" ? error.message : "ChatKit host request failed";
460
+ return new FrameSafeHttpError(message, {
461
+ status: error.status,
462
+ statusText: "statusText" in error && typeof error.statusText === "string" ? error.statusText : void 0,
463
+ retryAfterMs: readRetryAfterMs(error)
464
+ });
465
+ }
444
466
  try {
445
467
  return structuredClone(error);
446
468
  } catch {
447
469
  const message = error && typeof error === "object" && "message" in error && typeof error.message === "string" ? error.message : "ChatKit host request failed";
448
- if (error && typeof error === "object" && "status" in error && typeof error.status === "number") {
449
- return new FrameSafeHttpError(message, {
450
- status: error.status,
451
- statusText: "statusText" in error && typeof error.statusText === "string" ? error.statusText : void 0
452
- });
453
- }
454
470
  return new Error(message);
455
471
  }
456
472
  }
473
+ function readRetryAfterMs(error) {
474
+ if ("retryAfterMs" in error && typeof error.retryAfterMs === "number" && Number.isFinite(error.retryAfterMs)) {
475
+ return Math.max(0, error.retryAfterMs);
476
+ }
477
+ if (!("headers" in error) || !error.headers || typeof error.headers !== "object")
478
+ return;
479
+ const headers = error.headers;
480
+ if (!("get" in headers) || typeof headers.get !== "function") return;
481
+ const value = headers.get("Retry-After");
482
+ if (typeof value !== "string" || !value.trim()) return;
483
+ const duration = /^\d+(\.\d+)?$/.test(value.trim()) ? Number(value) * 1e3 : Date.parse(value) - Date.now();
484
+ return Number.isFinite(duration) ? Math.max(0, duration) : void 0;
485
+ }
457
486
  class BaseMessenger {
458
487
  constructor({
459
488
  handlers,
@@ -756,6 +785,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
756
785
  "command.setThreadId",
757
786
  "command.focusComposer",
758
787
  "command.focusMessage",
788
+ "command.prepareLeave",
759
789
  "command.fetchUpdates",
760
790
  "command.sendCustomAction",
761
791
  "command.showHistory",
@@ -2505,7 +2535,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
2505
2535
  return value.apply(this, args);
2506
2536
  };
2507
2537
  }
2508
- 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) {
2538
+ 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) {
2509
2539
  constructor({ profile }) {
2510
2540
  super();
2511
2541
  __runInitializers(_init, 5, this);
@@ -3051,6 +3081,11 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
3051
3081
  await __privateGet(this, _loaded);
3052
3082
  await ((_a2 = __privateGet(this, _messenger)) == null ? void 0 : _a2.commands.setThreadId({ threadId }));
3053
3083
  }
3084
+ async prepareLeave() {
3085
+ await __privateGet(this, _loaded);
3086
+ if (!__privateGet(this, _messenger)) return false;
3087
+ return __privateGet(this, _messenger).commands.prepareLeave();
3088
+ }
3054
3089
  async focusMessage(request) {
3055
3090
  await __privateGet(this, _loaded);
3056
3091
  if (!__privateGet(this, _messenger)) return { success: false, code: "not_ready" };
@@ -3120,7 +3155,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
3120
3155
  return null;
3121
3156
  }
3122
3157
  if (__privateMethod(this, _ChatKitElementBase_instances, getDisplayMode_fn).call(this, options) === "pet" && !chatkitTypes.normalizePetOptions(options.pet ?? null)) {
3123
- return true;
3158
+ return typeof options.pet === "object" ? { ...options.pet, enabled: true } : true;
3124
3159
  }
3125
3160
  return options.pet ?? null;
3126
3161
  };
@@ -3178,7 +3213,11 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
3178
3213
  }
3179
3214
  };
3180
3215
  resolveOverlayPetOptions_fn = function(pet) {
3181
- const normalized = chatkitTypes.normalizePetOptions(pet ?? null);
3216
+ var _a2;
3217
+ const assetsBaseUrl = chatkitTypes.getPetAssetsBaseUrl(pet ?? void 0) ?? chatkitTypes.getPetAssetsBaseUrl((_a2 = __privateGet(this, _opts)) == null ? void 0 : _a2.pet);
3218
+ const normalized = chatkitTypes.normalizePetOptions(
3219
+ pet ? { ...pet === true ? {} : pet, assetsBaseUrl } : null
3220
+ );
3182
3221
  if (!normalized) {
3183
3222
  return null;
3184
3223
  }
@@ -3324,6 +3363,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
3324
3363
  __decorateElement(_init, 1, "setComposerValue", _setComposerValue_dec, ChatKitElementBase);
3325
3364
  __decorateElement(_init, 1, "setRuntimeCapabilities", _setRuntimeCapabilities_dec, ChatKitElementBase);
3326
3365
  __decorateElement(_init, 1, "setThreadId", _setThreadId_dec, ChatKitElementBase);
3366
+ __decorateElement(_init, 1, "prepareLeave", _prepareLeave_dec, ChatKitElementBase);
3327
3367
  __decorateElement(_init, 1, "focusMessage", _focusMessage_dec, ChatKitElementBase);
3328
3368
  __decorateElement(_init, 1, "shareThread", _shareThread_dec, ChatKitElementBase);
3329
3369
  __decorateElement(_init, 1, "sendCustomAction", _sendCustomAction_dec, ChatKitElementBase);
@@ -3540,6 +3580,9 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
3540
3580
  }
3541
3581
  return methodRef.apply(el, args);
3542
3582
  },
3583
+ async prepareLeave() {
3584
+ return await this._callMethod("prepareLeave") === true;
3585
+ },
3543
3586
  focusComposer(...args) {
3544
3587
  return this._callMethod("focusComposer", ...args);
3545
3588
  },