{"version":3,"file":"errors-B--PnHjv.mjs","names":[],"sources":["../src/adapters/errors.ts"],"sourcesContent":["/**\n * The kind of failure an adapter ran into while bridging messages.\n *\n * - `parse`        — an inbound message could not be parsed/deserialized. The\n *                    transport is still alive; only this one message was lost.\n * - `fatal`        — an unrecoverable transport error (load / syntax / runtime\n *                    `error` event). The context is aborted and in-flight\n *                    invokes reject.\n * - `messageerror` — a message could not be deserialized by the transport\n *                    itself (structured-clone failure). The context is aborted.\n */\nexport type AdapterErrorKind = 'parse' | 'fatal' | 'messageerror'\n\n/**\n * Normalized payload emitted by every adapter when it encounters an error.\n *\n * `error` is always unwrapped to a real `Error` (with a stack where one is\n * available) so subscribers never have to dig a thrown value out of an\n * `ErrorEvent`. The `kind` discriminator tells callers whether the transport\n * is still usable (`parse`) or has been torn down (`fatal` / `messageerror`).\n *\n * For `messageerror`, `message` carries the original (undeserializable)\n * `MessageEvent`/message so the failed payload isn't silently dropped.\n */\nexport interface AdapterErrorPayload {\n  kind: AdapterErrorKind\n  error: Error\n  message?: unknown\n}\n\ninterface ErrorEventLike {\n  error?: unknown\n  message?: unknown\n}\n\n/**\n * Coerce whatever a transport hands us — an `Error`, a browser `ErrorEvent`, a\n * `MessageEvent`, or some host-specific object — into a real `Error`, without\n * losing the original message/stack.\n *\n * `ErrorEvent` is referenced defensively because it does not exist in every\n * runtime that uses these adapters (e.g. Node's worker_threads).\n */\nexport function toError(input: unknown, fallbackMessage: string): Error {\n  if (input instanceof Error) {\n    return input\n  }\n\n  // Browser ErrorEvent: prefer the actual thrown value, then its message.\n  if (typeof ErrorEvent !== 'undefined' && input instanceof ErrorEvent) {\n    if (input.error instanceof Error) {\n      return input.error\n    }\n    if (typeof input.message === 'string' && input.message) {\n      return new Error(input.message)\n    }\n  }\n\n  // Any error-event-like object carrying a thrown Error or a message string.\n  if (input != null && typeof input === 'object') {\n    const candidate = input as ErrorEventLike\n    if (candidate.error instanceof Error) {\n      return candidate.error\n    }\n    if (typeof candidate.message === 'string' && candidate.message) {\n      return new Error(candidate.message)\n    }\n  }\n\n  return new Error(fallbackMessage)\n}\n"],"mappings":";;;;;;;;;AA2CA,SAAgB,QAAQ,OAAgB,iBAAgC;CACtE,IAAI,iBAAiB,OACnB,OAAO;CAIT,IAAI,OAAO,eAAe,eAAe,iBAAiB,YAAY;EACpE,IAAI,MAAM,iBAAiB,OACzB,OAAO,MAAM;EAEf,IAAI,OAAO,MAAM,YAAY,YAAY,MAAM,SAC7C,OAAO,IAAI,MAAM,MAAM,OAAO;CAElC;CAGA,IAAI,SAAS,QAAQ,OAAO,UAAU,UAAU;EAC9C,MAAM,YAAY;EAClB,IAAI,UAAU,iBAAiB,OAC7B,OAAO,UAAU;EAEnB,IAAI,OAAO,UAAU,YAAY,YAAY,UAAU,SACrD,OAAO,IAAI,MAAM,UAAU,OAAO;CAEtC;CAEA,OAAO,IAAI,MAAM,eAAe;AAClC"}