@xpert-ai/chatkit-web-component 0.19.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.
@@ -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,