{"version":3,"file":"hive.B_YAgiNh.mjs","sources":["../../../@hive/api/dist/response.mjs"],"sourcesContent":["import { KNOWN_ERRORS, SerializedErrorSchema, deserializeError } from \"@hive/sdk/errors\";\nimport { ZodError, z } from \"zod\";\nimport { ByteStream } from \"@hive/streams\";\n\n//#region src/response.ts\nconst ApiResponseSchema = z.union([z.object({\n\tdata: z.unknown(),\n\terror: z.null()\n}), z.object({\n\tdata: z.null(),\n\terror: SerializedErrorSchema\n})]);\n/**\n* Parses the given `Response`, checks for potential errors and extracts the\n* response data.\n*\n* @param res `Response` object to parse.\n*\n* @returns The parsed response body.\n*\n* @throws If the response body contains an error, it is deserialized\n* and re-thrown.\n*/\nconst parseApiResponse = async (res) => {\n\tif (res.status >= 400) {\n\t\tif (!res.headers.get(\"content-type\")?.includes(\"application/json\")) {\n\t\t\tconsole.warn(`Unable to parse API response, contents must be JSON. (${res.status} ${res.statusText})`);\n\t\t\tconsole.warn(await res.text());\n\t\t\tthrow new Error(`Unable to parse API response, contents must be JSON. (${res.status} ${res.statusText})`);\n\t\t}\n\t\tconst json$1 = await res.json();\n\t\tconst parsed$1 = await z.object({\n\t\t\tdata: z.null(),\n\t\t\terror: SerializedErrorSchema\n\t\t}).parseAsync(json$1).catch(async (err) => {\n\t\t\tconsole.warn(`Unable to parse API response, contents must follow \\`SerializedErrorSchema\\`. (${res.status} ${res.statusText})`);\n\t\t\tconsole.warn(json$1);\n\t\t\tthrow err instanceof ZodError ? new Error(`Unable to parse API response, contents must follow \\`SerializedErrorSchema\\`. (${res.status} ${res.statusText})`) : err;\n\t\t});\n\t\tthrow deserializeError(parsed$1.error, KNOWN_ERRORS);\n\t}\n\tif (!res.headers.get(\"content-type\")?.includes(\"application/json\")) {\n\t\tconsole.warn(`Unable to parse API response, contents must be JSON. (${res.status} ${res.statusText})`);\n\t\tconsole.warn(await res.text());\n\t\tthrow new Error(`Unable to parse API response, contents must be JSON. (${res.status} ${res.statusText})`);\n\t}\n\tconst json = await res.json();\n\tconst parsed = await ApiResponseSchema.parseAsync(json).catch(async (err) => {\n\t\tconsole.warn(`Unable to parse API response, contents must follow \\`ApiResponseSchema\\`. (${res.status} ${res.statusText})`);\n\t\tconsole.warn(json);\n\t\tthrow err instanceof ZodError ? new Error(`Unable to parse API response, contents must follow \\`ApiResponseSchema\\`. (${res.status} ${res.statusText})`) : err;\n\t});\n\tif (parsed.error) {\n\t\tconsole.warn(`API returned an invalid response. Response with status code ${res.status} (${res.statusText}) should not contain an error.`);\n\t\tconsole.warn(json);\n\t\tthrow new Error(`API returned an invalid response. Response with status code ${res.status} (${res.statusText}) should not contain an error.`);\n\t}\n\treturn parsed.data;\n};\n/**\n* Parses the given `Response`, checks for potential errors and extracts the\n* response data as a `ByteStream`.\n*\n* @param res `Response` object to parse.\n*\n* @returns The parsed response body as a `ByteStream`.\n*\n* @throws If the response body contains an error, it is deserialized\n* and re-thrown.\n*/\nconst parseApiBinaryResponse = async (res) => {\n\tif (res.status >= 400) {\n\t\tif (!res.headers.get(\"content-type\")?.includes(\"application/json\")) {\n\t\t\tconsole.warn(`Unable to parse API response, contents must be JSON. (${res.status} ${res.statusText})`);\n\t\t\tconsole.warn(await res.text());\n\t\t\tthrow new Error(`Unable to parse API response, contents must be JSON. (${res.status} ${res.statusText})`);\n\t\t}\n\t\tconst json = await res.json();\n\t\tconst parsed = await z.object({\n\t\t\tdata: z.null(),\n\t\t\terror: SerializedErrorSchema\n\t\t}).parseAsync(json).catch((err) => {\n\t\t\tconsole.warn(`Unable to parse API response, contents must follow \\`SerializedErrorSchema\\`. (${res.status} ${res.statusText})`);\n\t\t\tconsole.warn(json);\n\t\t\tthrow err instanceof ZodError ? new Error(`Unable to parse API response, contents must follow \\`SerializedErrorSchema\\`. (${res.status} ${res.statusText})`) : err;\n\t\t});\n\t\tthrow deserializeError(parsed.error, KNOWN_ERRORS);\n\t}\n\tconst length = Number(res.headers.get(\"content-length\") ?? res.headers.get(\"binary-size\") ?? Number.NaN);\n\tif (!length || Number.isNaN(length)) {\n\t\tconsole.warn(`Unable to parse API response, contents must contain a \\`Content-Length\\` or \\`Binary-Size\\` header. (${res.status} ${res.statusText})`);\n\t\tconsole.warn(res.headers);\n\t\tthrow new Error(`Unable to parse API response, contents must contain a \\`Content-Length\\` or \\`Binary-Size\\` header. (${res.status} ${res.statusText})`);\n\t}\n\tconst stream = new ByteStream(res.body, { length });\n\treturn stream;\n};\n\n//#endregion\nexport { ApiResponseSchema, parseApiBinaryResponse, parseApiResponse };"],"names":[],"mappings":"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"}