{
  "version": 3,
  "sources": ["../../src/errors/RoomExceptions.ts"],
  "sourcesContent": ["import type { Client } from '../Transport.js';\nimport type { ExtractAuthData, ExtractUserData, Room } from '../Room.js';\n\nexport type RoomException<R extends Room = Room> =\n  OnCreateException<R> |\n  OnAuthException<R> |\n  OnJoinException<R> |\n  OnLeaveException<R> |\n  OnDisposeException |\n  OnMessageException<R> |\n  SimulationIntervalException |\n  TimedEventException;\n\nexport class OnCreateException<R extends Room = Room> extends Error {\n  constructor(\n    cause: Error,\n    message: string,\n    public options: Parameters<R['onCreate']>[0],\n  ) {\n    super(message, { cause });\n    this.name = 'OnCreateException';\n  }\n}\n\nexport class OnAuthException<R extends Room = Room> extends Error {\n  constructor(\n    cause: Error,\n    message: string,\n    public client: Parameters<R['onAuth']>[0],\n    public options: Parameters<R['onAuth']>[1],\n  ) {\n    super(message, { cause });\n    this.name = 'OnAuthException';\n  }\n}\n\nexport class OnJoinException<R extends Room = Room> extends Error {\n  constructor(\n    cause: Error,\n    message: string,\n    public client: Parameters<R['onJoin']>[0],\n    public options: Parameters<R['onJoin']>[1],\n    public auth: Parameters<R['onJoin']>[2],\n  ) {\n    super(message, { cause });\n    this.name = 'OnJoinException';\n  }\n}\n\nexport class OnLeaveException<R extends Room = Room> extends Error {\n  constructor(\n    cause: Error,\n    message: string,\n    public client: Parameters<R['onLeave']>[0],\n    public consented: Parameters<R['onLeave']>[1],\n  ) {\n    super(message, { cause });\n    this.name = 'OnLeaveException';\n  }\n}\n\nexport class OnDisposeException extends Error {\n  constructor(\n    cause: Error,\n    message: string,\n  ) {\n    super(message, { cause });\n    this.name = 'OnDisposeException';\n  }\n}\n\nexport class OnMessageException<R extends Room = Room, MessagePayload = any> extends Error {\n  constructor(\n    cause: Error,\n    message: string,\n    public client: Client<ExtractUserData<R['clients']>, ExtractAuthData<R['clients']>>,\n    public payload: MessagePayload,\n    public type: string,\n  ) {\n    super(message, { cause });\n    this.name = 'OnMessageException';\n  }\n}\n\nexport class SimulationIntervalException extends Error {\n  constructor(\n    cause: Error,\n    message: string,\n  ) {\n    super(message, { cause });\n    this.name = 'SimulationIntervalException';\n  }\n}\n\nexport class TimedEventException extends Error {\n  public args: any[];\n  constructor(\n    cause: Error,\n    message: string,\n    ...args: any[]\n  ) {\n    super(message, { cause });\n    this.name = 'TimedEventException';\n    this.args = args;\n  }\n}"],
  "mappings": ";AAaO,IAAM,oBAAN,cAAuD,MAAM;AAAA,EAClE,YACE,OACA,SACO,SACP;AACA,UAAM,SAAS,EAAE,MAAM,CAAC;AAFjB;AAGP,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,kBAAN,cAAqD,MAAM;AAAA,EAChE,YACE,OACA,SACO,QACA,SACP;AACA,UAAM,SAAS,EAAE,MAAM,CAAC;AAHjB;AACA;AAGP,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,kBAAN,cAAqD,MAAM;AAAA,EAChE,YACE,OACA,SACO,QACA,SACA,MACP;AACA,UAAM,SAAS,EAAE,MAAM,CAAC;AAJjB;AACA;AACA;AAGP,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,mBAAN,cAAsD,MAAM;AAAA,EACjE,YACE,OACA,SACO,QACA,WACP;AACA,UAAM,SAAS,EAAE,MAAM,CAAC;AAHjB;AACA;AAGP,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,qBAAN,cAAiC,MAAM;AAAA,EAC5C,YACE,OACA,SACA;AACA,UAAM,SAAS,EAAE,MAAM,CAAC;AACxB,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,qBAAN,cAA8E,MAAM;AAAA,EACzF,YACE,OACA,SACO,QACA,SACA,MACP;AACA,UAAM,SAAS,EAAE,MAAM,CAAC;AAJjB;AACA;AACA;AAGP,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,8BAAN,cAA0C,MAAM;AAAA,EACrD,YACE,OACA,SACA;AACA,UAAM,SAAS,EAAE,MAAM,CAAC;AACxB,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,sBAAN,cAAkC,MAAM;AAAA,EAE7C,YACE,OACA,YACG,MACH;AACA,UAAM,SAAS,EAAE,MAAM,CAAC;AACxB,SAAK,OAAO;AACZ,SAAK,OAAO;AAAA,EACd;AACF;",
  "names": []
}
