/** * postgres.do - PostgreSQL for Cloudflare Workers * * SQL tagged template client with Drizzle ORM compatibility * * @example * ```typescript * import postgres from 'postgres.do'; * * const sql = postgres('postgres://db.postgres.do/mydb'); * * // Tagged template queries * const users = await sql`SELECT * FROM users WHERE id = ${userId}`; * * // Works with Drizzle ORM * import { drizzle } from 'drizzle-orm/postgres-js'; * const db = drizzle(sql); * ``` */ // Main client exports export { postgres, createClient } from './client' export { default } from './client' // Authentication integration with oauth.do export { createAuthenticatedClient, createClientFromRequest, withAuth, extractUserId, validateToken, createUserScopedClient, extractBearerToken, generateDatabaseId, type AuthenticatedClientOptions, type AuthenticatedUser, type AuthenticatedContext, type TokenValidationResult, } from './auth' // Connection utilities export { parseConnectionUrl, type ConnectionInfo } from './connection' // Transport implementations export { createHttpTransport, HttpTransport } from './transport/http' // RpcTransport is the capnweb-based WebSocket transport (replaces legacy WsTransport) export { createRpcTransport, RpcTransport, type RpcTransportConfig } from './transport/rpc' // Backward-compatible aliases for legacy code using WsTransport export { RpcTransport as WsTransport, createRpcTransport as createWsTransport } from './transport/rpc' // CDC (Change Data Capture) Transports export { CDCWsTransport, createCdcWsTransport } from './transport/cdc-ws' export { CDCSseTransport, createCdcSseTransport } from './transport/cdc-sse' // CDC (Change Data Capture) Client Subscription export { CDCSubscription, validateTableName, generateSubscriptionId, type Subscription, type SubscribeOptions, type TypedSubscribeOptions, } from './subscription' // Types export type { // Core types Sql, TransactionSql, ReservedSql, PendingQuery, Row, QueryResult, FieldInfo, TypeParser, // Configuration PostgresConfig, TransactionOptions, IsolationLevel, // Transport types Transport, HttpTransportConfig, WsTransportConfig, // CDC (Change Data Capture) types CDCOperation, CDCChangeEvent, CDCTransport, CDCSubscriptionOptions, CDCWsTransportConfig, CDCSseTransportConfig, // CDC Client types (high-level API) CDCClientSubscription, CDCClientSubscribeOptions, CDCClientSubscriptionInfo, } from './types' // Errors export { PostgresError, ConnectionError, TimeoutError, type PostgresErrorFields, } from './types' // Streaming API for large datasets export type { StreamOptions, StreamResult, Cursor, CursorFetchResult, } from './types' export { createStreamResult, createCursor, buildParameterizedSql as buildStreamSql, } from './streaming' // Lazy Extension Loading export { LazyExtensionLoader, createLazyExtensionLoader, detectExtensions, EXTENSION_REGISTRY, type ExtensionName, type ExtensionMetadata, type QueryExecutor, type ExtensionLoadResult, type ExecuteWithAutoLoadResult, type ExtensionLoaderStats, type LazyExtensionLoaderOptions, } from './extensions' // Connection pool export { PGlitePool, PoolError, type PGLiteLike, type PoolClient, type PoolQueryResult, type PGlitePoolConfig, type PoolStats, type PoolTransactionOptions, type PoolIsolationLevel, } from './pool' // Query Middleware export { // Core middleware functions generateQueryId, executeWithMiddleware, composeMiddleware, // Built-in middlewares loggingMiddleware, metricsMiddleware, rateLimitMiddleware, tracingMiddleware, transformMiddleware, retryMiddleware, // Types type QueryRequest, type QueryResponse, type QueryMiddleware, type NextFunction, type LoggingMiddlewareOptions, type MetricsMiddlewareOptions, type QueryMetric, type RateLimitMiddlewareOptions, type TracingMiddlewareOptions, type QueryTrace, type TransformMiddlewareOptions, type RetryMiddlewareOptions, } from './middleware'