{"version":3,"sources":["/Users/grichardson/Documents/dev/supabase/pg-gateway/packages/pg-gateway/dist/platforms/web/index.cjs","../../../src/platforms/web/index.ts"],"names":["fromWebSocketStream","wss","options","duplex","duplexFromWebSocketStream","PostgresConnection","readable","writable","ensureBinaryStream","error","ensureBinaryIterable","iterable","chunk"],"mappings":"AAAA,qIAA4C,MCQ5C,SAAsBA,CAAAA,CACpBC,CAAAA,CACAC,CAAAA,CACA,CACA,IAAMC,CAAAA,CAAS,MAAMC,CAAAA,CAA0BH,CAAG,CAAA,CAClD,OAAO,IAAII,wBAAAA,CAAmBF,CAAAA,CAAQD,CAAO,CAC/C,CAKA,MAAA,SAAsBE,CAAAA,CACpBH,CAAAA,CACmC,CACnC,GAAM,CAAE,QAAA,CAAAK,CAAAA,CAAU,QAAA,CAAAC,CAAS,CAAA,CAAI,MAAMN,CAAAA,CAAI,MAAA,CAEzC,MAAO,CACL,QAAA,CAAUO,CAAAA,CACRF,CAAAA,CACA,IAAI,KAAA,CAAM,+EAA+E,CAC3F,CAAA,CACA,QAAA,CAAAC,CACF,CACF,CAKA,SAASC,CAAAA,CAAmBF,CAAAA,CAA+CG,CAAAA,CAAc,CACvF,OAAO,cAAA,CAAe,IAAA,CAAKC,CAAAA,CAAqBJ,CAAAA,CAAUG,CAAK,CAAC,CAClE,CAKA,MAAA,QAAA,CAAgBC,CAAAA,CAAqBC,CAAAA,CAA8CF,CAAAA,CAAc,CAC/F,IAAA,KAAA,CAAA,IAAiBG,EAAAA,GAASD,CAAAA,CAAU,CAClC,EAAA,CAAI,OAAOC,CAAAA,EAAU,QAAA,CACnB,MAAMH,CAAAA,CAER,MAAMG,CACR,CACF,CAAA,uEAAA","file":"/Users/grichardson/Documents/dev/supabase/pg-gateway/packages/pg-gateway/dist/platforms/web/index.cjs","sourcesContent":[null,"import PostgresConnection, { type PostgresConnectionOptions } from '../../connection.js';\nimport type { DuplexStream } from '../../streams.js';\n\n/**\n * Creates a `PostgresConnection` from a `WebSocketStream`.\n *\n * Note Postgres `SSLRequest` upgrades are not supported in a `WebSocketStream`.\n */\nexport async function fromWebSocketStream(\n  wss: WebSocketStream,\n  options?: PostgresConnectionOptions,\n) {\n  const duplex = await duplexFromWebSocketStream(wss);\n  return new PostgresConnection(duplex, options);\n}\n\n/**\n * Creates a `DuplexStream<Uint8Array>` from a `WebSocketStream`.\n */\nexport async function duplexFromWebSocketStream(\n  wss: WebSocketStream,\n): Promise<DuplexStream<Uint8Array>> {\n  const { readable, writable } = await wss.opened;\n\n  return {\n    readable: ensureBinaryStream(\n      readable,\n      new Error('WebSocketStream must contain binary data for a PostgresConnection, found text'),\n    ),\n    writable,\n  };\n}\n\n/**\n * Ensures that a `ReadableStream` contains binary data and not text.\n */\nfunction ensureBinaryStream(readable: ReadableStream<string | Uint8Array>, error: Error) {\n  return ReadableStream.from(ensureBinaryIterable(readable, error));\n}\n\n/**\n * Ensures that an `AsyncIterable` contains binary data and not text.\n */\nasync function* ensureBinaryIterable(iterable: AsyncIterable<string | Uint8Array>, error: Error) {\n  for await (const chunk of iterable) {\n    if (typeof chunk === 'string') {\n      throw error;\n    }\n    yield chunk;\n  }\n}\n"]}