{"version":3,"file":"error.cjs","sources":["../../src/error.ts"],"sourcesContent":["import { omit } from 'radash'\n\nexport class ExobaseError<TMetadata extends {} = {}> extends Error {\n  metadata: Omit<TMetadata, 'key' | 'cause'>\n  key: string\n  status: number = 500\n  cause?: Error\n  constructor(\n    message: string,\n    metadata: TMetadata & {\n      key: string\n      cause?: Error\n    }\n  ) {\n    super(message)\n    this.cause = metadata.cause\n    this.key = metadata.key\n    this.metadata = omit(metadata, ['cause', 'key'])\n  }\n}\n\nexport class BadRequestError extends ExobaseError {\n  status = 400\n}\n\nexport class NotAuthenticatedError extends ExobaseError {\n  status = 401\n}\n\nexport class NotAuthorizedError extends ExobaseError {\n  status = 403\n}\n\nexport class RateLimitError extends ExobaseError {\n  status = 429\n}\n\nexport class InternalServerError extends ExobaseError {\n  status = 500\n}\n"],"names":["omit"],"mappings":";;;;AAEO,MAAM,qBAAgD,KAAM,CAAA;AAAA,EAKjE,WAAA,CACE,SACA,QAIA,EAAA;AACA,IAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AATf,IAAiB,IAAA,CAAA,MAAA,GAAA,GAAA,CAAA;AAUf,IAAA,IAAA,CAAK,QAAQ,QAAS,CAAA,KAAA,CAAA;AACtB,IAAA,IAAA,CAAK,MAAM,QAAS,CAAA,GAAA,CAAA;AACpB,IAAA,IAAA,CAAK,WAAWA,WAAK,CAAA,QAAA,EAAU,CAAC,OAAA,EAAS,KAAK,CAAC,CAAA,CAAA;AAAA,GACjD;AACF,CAAA;AAEO,MAAM,wBAAwB,YAAa,CAAA;AAAA,EAA3C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA;AACL,IAAS,IAAA,CAAA,MAAA,GAAA,GAAA,CAAA;AAAA,GAAA;AACX,CAAA;AAEO,MAAM,8BAA8B,YAAa,CAAA;AAAA,EAAjD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA;AACL,IAAS,IAAA,CAAA,MAAA,GAAA,GAAA,CAAA;AAAA,GAAA;AACX,CAAA;AAEO,MAAM,2BAA2B,YAAa,CAAA;AAAA,EAA9C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA;AACL,IAAS,IAAA,CAAA,MAAA,GAAA,GAAA,CAAA;AAAA,GAAA;AACX,CAAA;AAEO,MAAM,uBAAuB,YAAa,CAAA;AAAA,EAA1C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA;AACL,IAAS,IAAA,CAAA,MAAA,GAAA,GAAA,CAAA;AAAA,GAAA;AACX,CAAA;AAEO,MAAM,4BAA4B,YAAa,CAAA;AAAA,EAA/C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA;AACL,IAAS,IAAA,CAAA,MAAA,GAAA,GAAA,CAAA;AAAA,GAAA;AACX;;;;;;;;;"}