{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAYpB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE3F,MAAM,WAAW,qBAAqB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,qBAAa,aAAc,SAAQ,KAAK;IACvC,SAAgB,IAAI,EAAE,iBAAiB,CAAC;IACxC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElD,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAKtF;CACD;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAM5F;AAED,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAQhG","sourcesContent":["/** Structured error codes for the pi-server HTTP protocol. */\n\nexport const PiServerErrorCode = {\n\tSESSION_NOT_FOUND: \"SESSION_NOT_FOUND\",\n\tSESSION_NO_STATIC_CONTEXT: \"SESSION_NO_STATIC_CONTEXT\",\n\tPARENT_ENTRY_NOT_FOUND: \"PARENT_ENTRY_NOT_FOUND\",\n\tLEAF_ID_NOT_FOUND: \"LEAF_ID_NOT_FOUND\",\n\tENTRY_ALREADY_EXISTS: \"ENTRY_ALREADY_EXISTS\",\n\tINVALID_REQUEST: \"INVALID_REQUEST\",\n\tREQUIRED_FIELD_MISSING: \"REQUIRED_FIELD_MISSING\",\n\tRUN_NOT_FOUND: \"RUN_NOT_FOUND\",\n\tRUN_IN_PROGRESS: \"RUN_IN_PROGRESS\",\n\tSESSION_STATE_CONFLICT: \"SESSION_STATE_CONFLICT\",\n\tINTERNAL_ERROR: \"INTERNAL_ERROR\",\n} as const;\n\nexport type PiServerErrorCode = (typeof PiServerErrorCode)[keyof typeof PiServerErrorCode];\n\nexport interface PiServerErrorResponse {\n\terror: string;\n\tcode?: PiServerErrorCode;\n\tdetails?: Record<string, unknown>;\n}\n\nexport class PiServerError extends Error {\n\tpublic readonly code: PiServerErrorCode;\n\tpublic readonly details?: Record<string, unknown>;\n\n\tconstructor(message: string, code: PiServerErrorCode, details?: Record<string, unknown>) {\n\t\tsuper(message);\n\t\tthis.name = \"PiServerError\";\n\t\tthis.code = code;\n\t\tthis.details = details;\n\t}\n}\n\nexport function isRecoverableTreeDivergenceCode(code: PiServerErrorCode | undefined): boolean {\n\treturn (\n\t\tcode === PiServerErrorCode.PARENT_ENTRY_NOT_FOUND ||\n\t\tcode === PiServerErrorCode.LEAF_ID_NOT_FOUND ||\n\t\tcode === PiServerErrorCode.ENTRY_ALREADY_EXISTS\n\t);\n}\n\nexport function isRecoverableMissingServerStateCode(code: PiServerErrorCode | undefined): boolean {\n\treturn (\n\t\tcode === PiServerErrorCode.SESSION_NOT_FOUND ||\n\t\tcode === PiServerErrorCode.SESSION_NO_STATIC_CONTEXT ||\n\t\tcode === PiServerErrorCode.PARENT_ENTRY_NOT_FOUND ||\n\t\tcode === PiServerErrorCode.LEAF_ID_NOT_FOUND ||\n\t\tcode === PiServerErrorCode.ENTRY_ALREADY_EXISTS\n\t);\n}\n"]}