{"version":3,"sources":["../../src/lib/error.ts"],"names":["PublissueError","input","graphQLErrors","_a","_b","_c","e","ensurePublissueError","error"],"mappings":"AAaO,6EAAMA,CAAAA,CAAN,MAAA,QAA6B,KAAM,CAIxC,WAAA,CACEC,CAAAA,CACOC,CAAAA,CACP,CACA,KAAA,CACE,GACM,OAAOD,CAAAA,EAAU,QAAA,CACZ,CAACA,CAAK,CAAA,CAEXC,CAAAA,CACK,CAAC,CAAA;AAAA,EAAA,CAAA,CAAwBA,CAAAA,CAAc,GAAA,CAAK,CAAA,EAAM,CAAA,CAAE,OAAO,CAAA,CAAE,IAAA,CAAK,CAAA;AAAA,EAAA,CAAM,CAAC,CAAA,CAE9ED,EAAAA,WAAiB,QAAA,CACZ,CAACA,CAAAA,CAAM,UAAU,CAAA,CAEnB,CAACA,CAAAA,CAAM,OAAA,CAAS,CAAE,KAAA,CAAOA,CAAM,CAAC,CAE3C,CAAA,CAfO,IAAA,CAAA,aAAA,CAAAC,CAAAA,CALT,IAAA,CAAA,IAAA,CAAO,gBAAA,CAsBDA,CAAAA,EAAAA,CACF,IAAA,CAAK,aAAA,CAAgBA,CAAAA,CAAAA,CAGnBD,EAAAA,WAAiB,QAAA,EAAA,CACnB,IAAA,CAAK,QAAA,CAAWA,CAAAA,CAEpB,CAEA,WAAA,CAAA,CAAqD,CA7CvD,IAAAE,CAAAA,CA8CI,MAAA,CAAA,CAAOA,CAAAA,CAAA,IAAA,CAAK,QAAA,CAAA,EAAL,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAAA,CAAe,EAAA,CAAA,GAAO,CAAA,CAC/B,CAEA,aAAA,CAAA,CAAqG,CACnG,MAAO,CAAC,CAAC,IAAA,CAAK,aAChB,CAEA,WAAA,CAAA,CAAc,CArDhB,IAAAA,CAAAA,CAAAC,CAAAA,CAAAC,CAAAA,CAsDI,MAAA,CAAQA,CAAAA,CAAAA,CAAAA,CAAAF,CAAAA,CAAA,IAAA,CAAK,QAAA,CAAA,EAAL,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAAA,CAAe,MAAA,CAAA,GAAW,GAAA,EAAA,CAAA,CAAOC,CAAAA,CAAA,IAAA,CAAK,aAAA,CAAA,EAAL,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAAA,CAAoB,IAAA,CAAME,CAAAA,EAAMA,CAAAA,CAAE,IAAA,GAAS,WAAA,CAAA,CAAA,CAAA,EAA5E,IAAA,CAAAD,CAAAA,CAA6F,CAAA,CACvG,CAEA,UAAA,CAAA,CAAa,CAzDf,IAAAF,CAAAA,CAAAC,CAAAA,CAAAC,CAAAA,CA0DI,MAAA,CAAQA,CAAAA,CAAAA,CAAAA,CAAAF,CAAAA,CAAA,IAAA,CAAK,QAAA,CAAA,EAAL,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAAA,CAAe,MAAA,CAAA,GAAW,GAAA,EAAA,CAAA,CAAOC,CAAAA,CAAA,IAAA,CAAK,aAAA,CAAA,EAAL,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAAA,CAAoB,IAAA,CAAME,CAAAA,EAAMA,CAAAA,CAAE,IAAA,GAAS,WAAA,CAAA,CAAA,CAAA,EAA5E,IAAA,CAAAD,CAAAA,CAA6F,CAAA,CACvG,CACF,CAAA,CAEaE,CAAAA,aAAwBC,CAAAA,EAC/BA,EAAAA,WAAiBR,CAAAA,CACZQ,CAAAA,CAELA,EAAAA,WAAiB,KAAA,CACZ,IAAIR,CAAAA,CAAeQ,CAAK,CAAA,CAE1B,IAAIR,CAAAA,CAAe,CAAA,sBAAA,EAAyBQ,CAAK,CAAA,CAAA","file":"/home/renatorib/p/publissue/packages/api/dist/__chunks/2N6AAPM4.cjs","sourcesContent":["export interface GithubGraphQLFormattedError {\n  message: string;\n  locations?: { line: number; column: number }[];\n  path?: (string | number)[];\n  extensions?: { [key: string]: unknown };\n  /**\n   * GraphQL spec do not include `type` on error, but\n   * github does.\n   * See: https://spec.graphql.org/draft/#sec-Errors\n   */\n  type?: string;\n}\n\nexport class PublissueError extends Error {\n  name = \"PublissueError\";\n  response?: Response;\n\n  constructor(\n    input: string | Error | Response,\n    public graphQLErrors?: GithubGraphQLFormattedError[],\n  ) {\n    super(\n      ...((): [string?, ErrorOptions?] => {\n        if (typeof input === \"string\") {\n          return [input];\n        }\n        if (graphQLErrors) {\n          return [\"GraphQL errors:\\n- \" + graphQLErrors.map((e) => e.message).join(\"\\n- \")];\n        }\n        if (input instanceof Response) {\n          return [input.statusText];\n        }\n        return [input.message, { cause: input }];\n      })(),\n    );\n\n    if (graphQLErrors) {\n      this.graphQLErrors = graphQLErrors;\n    }\n\n    if (input instanceof Response) {\n      this.response = input;\n    }\n  }\n\n  isHttpError(): this is this & { response: Response } {\n    return this.response?.ok === false;\n  }\n\n  isGrapQLError(): this is this & { graphQLErrors: GithubGraphQLFormattedError[]; response: Response } {\n    return !!this.graphQLErrors;\n  }\n\n  isForbidden() {\n    return (this.response?.status === 403 || this.graphQLErrors?.some((e) => e.type === \"FORBIDDEN\")) ?? false;\n  }\n\n  isNotFound() {\n    return (this.response?.status === 404 || this.graphQLErrors?.some((e) => e.type === \"NOT_FOUND\")) ?? false;\n  }\n}\n\nexport const ensurePublissueError = (error: unknown) => {\n  if (error instanceof PublissueError) {\n    return error;\n  }\n  if (error instanceof Error) {\n    return new PublissueError(error);\n  }\n  return new PublissueError(`Non error was thrown: ${error}`);\n};\n"]}