errors.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. export class MethodNotImplementedError extends Error {}
  2. /**
  3. * Custom error for indicating timeouts
  4. * @namespace converse.env
  5. */
  6. export class TimeoutError extends Error {
  7. /**
  8. * @param {string} message
  9. */
  10. constructor(message) {
  11. super(message);
  12. this.retry_event_id = null;
  13. }
  14. }
  15. export class StanzaError extends Error {
  16. /**
  17. * @typedef {import("./types").ErrorName} ErrorName
  18. * @typedef {import("./types").ErrorType} ErrorType
  19. * @typedef {import("./types").ErrorExtra} ErrorExtra
  20. */
  21. /**
  22. * @param {ErrorName|'unknown'} name
  23. * @param {Element} e - The <error> element from a stanza
  24. * @param {Object} extra - Extra properties from plugin parsers
  25. */
  26. constructor(name, e, extra) {
  27. super(e.querySelector('text')?.textContent ?? '');
  28. /** @type {ErrorName} */
  29. this.name = name
  30. /** @type {ErrorType} */
  31. this.type = /** @type {ErrorType} */ (e.getAttribute('type'));
  32. /** @type {Element} */
  33. this.el = e;
  34. /** @type {ErrorExtra} */
  35. this.extra = extra;
  36. }
  37. }
  38. export class StanzaParseError extends Error {
  39. /**
  40. * @param {Element} stanza
  41. * @param {string} [message]
  42. */
  43. constructor(stanza, message) {
  44. super(message);
  45. this.name = 'StanzaParseError';
  46. this.stanza = stanza;
  47. }
  48. }
  49. export class BadRequestError extends StanzaError {}
  50. export class ConflictError extends StanzaError {}
  51. export class FeatureNotImplementedError extends StanzaError {}
  52. export class ForbiddenError extends StanzaError {}
  53. export class GoneError extends StanzaError {}
  54. export class InternalServerError extends StanzaError {}
  55. export class ItemNotFoundError extends StanzaError {}
  56. export class JIDMalformedError extends StanzaError {}
  57. export class NotAcceptableError extends StanzaError {}
  58. export class NotAllowedError extends StanzaError {}
  59. export class NotAuthorizedError extends StanzaError {}
  60. export class PaymentRequiredError extends StanzaError {}
  61. export class RecipientUnavailableError extends StanzaError {}
  62. export class RedirectError extends StanzaError {}
  63. export class RegistrationRequiredError extends StanzaError {}
  64. export class RemoteServerNotFoundError extends StanzaError {}
  65. export class RemoteServerTimeoutError extends StanzaError {}
  66. export class ResourceConstraintError extends StanzaError {}
  67. export class ServiceUnavailableError extends StanzaError {}
  68. export class SubscriptionRequiredError extends StanzaError {}
  69. export class UndefinedConditionError extends StanzaError {}
  70. export class UnexpectedRequestError extends StanzaError {}