drizzle-edge-pg-proxy-client
Version:
PostgreSQL HTTP client compatible with Neon's interface for edge environments
1 lines • 68.6 kB
Source Map (JSON)
{"version":3,"sources":["../src/drizzle.ts","../src/client/types.ts","../src/client/errors.ts","../src/client/parsing.ts","../src/client/query-promise.ts","../src/client/utils.ts","../src/client/index.ts"],"names":["LogLevel","PgError","_PgError","message","__publicField","PG_ERROR_FIELDS","parsePostgresError","err","pgError","field","PgTypeId","isArrayType","typeId","getElementTypeId","arrayTypeId","TypeParser","customTypes","key","val","parsePostgresArray","parseFn","elementTypeId","elementParser","value","arrayString","content","result","inQuotes","inEscape","currentItem","nestLevel","i","char","parseArrayItem","item","processQueryResult","typeParser","arrayMode","fields","rowsData","parsers","colNames","processedRows","row","obj","_a","QueryPromise","executeFn","queryObj","opts","onfulfilled","onrejected","onfinally","promise","isDone","resolvedValue","UnsafeRawSql","sql","encodeBuffersAsBytea","generateUUID","c","toParameterizedQuery","strings","values","query","params","len","createPgHttpClient","proxyUrl","authToken","customFetch","fullResults","customTypeParser","sessionId","loggerOptions","configuredLevel","customLogFn","log","level","data","logData","logMessage","fetchFn","formattedProxyUrl","clientSessionId","execute","queryText","startTime","fetchOptions","param","response","errorData","duration","error","connError","options","callArrayMode","parameterizedQuery","q","p","rawSql","queries","formattedQueries","queryParams","txnArrayMode","txnFullResults","headers","results","json","parseError","formattedResults","processed","txError","drizzle","schema","fetch","logger","pgClient","db","drizzleOrm"],"mappings":"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","file":"index.cjs","sourcesContent":["import { drizzle as drizzleOrm } from 'drizzle-orm/neon-http';\nimport { createPgHttpClient, TypeParser, LogLevel } from './client'; // Updated import path\nimport type { LoggerOptions } from './client'; // Correct: LoggerOptions is a type\n\n/**\n * Creates a Drizzle client connecting to PostgreSQL via HTTP proxy.\n * This client is compatible with both drizzle-orm and Auth.js.\n * \n * @param options Configuration options\n * @returns Drizzle ORM instance for your database\n */\nexport function drizzle<TSchema extends Record<string, unknown>>(options: {\n proxyUrl: string;\n authToken?: string;\n schema: TSchema;\n fetch?: typeof globalThis.fetch;\n arrayMode?: boolean;\n fullResults?: boolean;\n typeParser?: TypeParser | Record<number, (value: string) => any>;\n logger?: LoggerOptions; // Add logger option\n}) {\n const {\n proxyUrl,\n authToken, \n schema, \n fetch, \n arrayMode = false,\n fullResults = false,\n typeParser,\n logger // Destructure logger\n } = options;\n\n // Create our custom HTTP client that mirrors Neon's client interface exactly\n const pgClient = createPgHttpClient({ \n proxyUrl, \n authToken, \n fetch,\n arrayMode,\n fullResults,\n typeParser,\n logger // Pass logger option\n });\n\n // Create a drizzle instance using our client\n const db = drizzleOrm(pgClient as any, { schema });\n\n // CRITICAL: Expose the client's query method directly on the db object\n // This is what Auth.js DrizzleAdapter looks for\n // Wrap the query method to ensure it's always called with proper context\n // and always returns a properly structured result\n Object.defineProperty(db, 'query', {\n enumerable: true,\n configurable: true,\n writable: true,\n value: async function(queryText: string, params?: any[], options?: any) {\n try {\n // Call the query method with the correct context and arguments\n const result = await pgClient.query(queryText, params || [], options);\n \n // Ensure the result has a rows property\n if (!result || !result.rows) {\n return {\n command: 'SELECT',\n rowCount: 0,\n fields: [],\n rows: [],\n rowAsArray: false\n };\n }\n \n return result;\n } catch (error) {\n console.error('Error in query method:', error);\n throw error;\n }\n }\n });\n \n // Also expose other methods for direct access if needed\n Object.defineProperty(db, 'sql', {\n enumerable: true,\n configurable: true,\n writable: true,\n value: pgClient.sql\n });\n \n Object.defineProperty(db, 'transaction', {\n enumerable: true,\n configurable: true,\n writable: true, \n value: pgClient.transaction.bind(pgClient)\n });\n \n Object.defineProperty(db, 'client', {\n enumerable: true,\n configurable: true,\n writable: false,\n value: pgClient\n });\n \n // Expose the type parser for custom type handling\n Object.defineProperty(db, 'typeParser', {\n enumerable: true,\n configurable: true,\n writable: false,\n value: pgClient.typeParser\n });\n\n return db;\n}\n","import type { QueryPromise } from './query-promise'; // Import from new file\nimport type { TypeParser } from './parsing'; // Use type-only import\n\n// Define basic types based on Neon's HTTP client\nexport interface PgQueryResult {\n command: string;\n fields: PgField[];\n rowCount: number;\n rows: any[];\n rowAsArray: boolean;\n // Additional properties for compatibility with Neon\n _parsers?: any[];\n _types?: TypeParser;\n}\n\nexport interface PgField {\n name: string;\n tableID: number;\n columnID: number;\n dataTypeID: number;\n dataTypeSize: number;\n dataTypeModifier: number;\n format: string;\n}\n\nexport interface ParameterizedQuery {\n query: string;\n params: any[];\n}\n\n// This is used to tag template literals in SQL queries\nexport type SQLTemplateTag = (strings: TemplateStringsArray, ...values: any[]) => QueryPromise<PgQueryResult>;\n\n// Transaction query interface with support for query metadata\nexport interface TransactionQuery {\n text: string;\n values: unknown[];\n captureGeneratedId?: boolean; // Flag to indicate this query generates an ID that will be used in subsequent queries\n}\n\nexport interface ClientOptions {\n proxyUrl: string;\n authToken?: string;\n fetch?: typeof globalThis.fetch;\n arrayMode?: boolean;\n fullResults?: boolean;\n typeParser?: TypeParser | Record<number, (value: string) => any>;\n sessionId?: string; // Optional explicit session ID, will be auto-generated if not provided\n logger?: LoggerOptions; // Add logger configuration\n}\n\n// Define Log Levels\nexport enum LogLevel {\n Debug = 1,\n Info = 2,\n Warn = 3,\n Error = 4,\n None = 5, // Special level to disable logging\n}\n\n// Define Logger Options\nexport interface LoggerOptions {\n level?: LogLevel; // Minimum level to log\n // Optional custom log function: (level: LogLevel, message: string, data?: any) => void\n logFn?: (level: LogLevel, message: string, data?: any) => void;\n}\n","// Custom PostgreSQL Error Class following Neon's pattern\nexport class PgError extends Error {\n override name = 'PgError' as const;\n\n // PostgreSQL specific error fields\n severity?: string;\n code?: string;\n detail?: string;\n hint?: string;\n position?: string;\n internalPosition?: string;\n internalQuery?: string;\n where?: string;\n schema?: string;\n table?: string;\n column?: string;\n dataType?: string;\n constraint?: string;\n file?: string;\n line?: string;\n routine?: string;\n\n // Original error if wrapped\n sourceError?: Error;\n\n constructor(message: string) {\n super(message);\n\n if ('captureStackTrace' in Error && typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, PgError);\n }\n }\n}\n\n// Standard PostgreSQL error fields for parsing from server responses\nexport const PG_ERROR_FIELDS = [\n 'severity',\n 'code',\n 'detail',\n 'hint',\n 'position',\n 'internalPosition',\n 'internalQuery',\n 'where',\n 'schema',\n 'table',\n 'column',\n 'dataType',\n 'constraint',\n 'file',\n 'line',\n 'routine',\n] as const;\n\n\n// Helper function to handle PostgreSQL error parsing\nexport function parsePostgresError(err: any): PgError {\n const pgError = new PgError(err.message || 'Unknown PostgreSQL error');\n\n // Copy all PostgreSQL error fields if they exist\n for (const field of PG_ERROR_FIELDS) {\n if (err[field] !== undefined) {\n pgError[field] = err[field];\n }\n }\n\n // Store original error if available\n if (err instanceof Error) {\n pgError.sourceError = err;\n }\n\n return pgError;\n}\n","// PostgreSQL Data Types IDs\n// Based on https://github.com/brianc/node-pg-types/blob/master/lib/builtins.js\nexport enum PgTypeId {\n BOOL = 16,\n BYTEA = 17,\n CHAR = 18,\n INT8 = 20,\n INT2 = 21,\n INT4 = 23,\n REGPROC = 24,\n TEXT = 25,\n OID = 26,\n TID = 27,\n XID = 28,\n CID = 29,\n JSON = 114,\n XML = 142,\n PG_NODE_TREE = 194,\n JSONB = 3802,\n FLOAT4 = 700,\n FLOAT8 = 701,\n ABSTIME = 702,\n RELTIME = 703,\n TINTERVAL = 704,\n CIRCLE = 718,\n MONEY = 790,\n MACADDR = 829,\n INET = 869,\n CIDR = 650,\n MACADDR8 = 774,\n ACLITEM = 1033,\n BPCHAR = 1042,\n VARCHAR = 1043,\n DATE = 1082,\n TIME = 1083,\n TIMESTAMP = 1114,\n TIMESTAMPTZ = 1184,\n INTERVAL = 1186,\n TIMETZ = 1266,\n BIT = 1560,\n VARBIT = 1562,\n NUMERIC = 1700,\n REFCURSOR = 1790,\n REGPROCEDURE = 2202,\n REGOPER = 2203,\n REGOPERATOR = 2204,\n REGCLASS = 2205,\n REGTYPE = 2206,\n UUID = 2950,\n TXID_SNAPSHOT = 2970,\n PG_LSN = 3220,\n PG_NDISTINCT = 3361,\n PG_DEPENDENCIES = 3402,\n TSVECTOR = 3614,\n TSQUERY = 3615,\n GTSVECTOR = 3642,\n REGCONFIG = 3734,\n REGDICTIONARY = 3769,\n JSONPATH = 4072,\n REGNAMESPACE = 4089,\n REGROLE = 4096,\n\n // Array types (OIDs are element type OID + 1 dimension)\n // Defining common array types explicitly\n BOOL_ARRAY = 1000, // Boolean Array -> 16 + 1000 - 16 = 1000\n BYTEA_ARRAY = 1001, // Bytea Array -> 17 + 1000 - 16 = 1001\n CHAR_ARRAY = 1002, // Char Array -> 18 + 1000 - 16 = 1002\n INT8_ARRAY = 1016, // BigInt Array -> 20 + 1000 - 4 = 1016\n INT2_ARRAY = 1005, // SmallInt Array -> 21 + 1000 - 16 = 1005\n INT4_ARRAY = 1007, // Integer Array -> 23 + 1000 - 16 = 1007\n TEXT_ARRAY = 1009, // Text Array -> 25 + 1000 - 16 = 1009\n JSON_ARRAY = 199, // JSON Array -> 114 + 1000 - 915 = 199\n JSONB_ARRAY = 3807, // JSONB Array -> 3802 + 5 = 3807\n FLOAT4_ARRAY = 1021, // Float4 Array -> 700 + 1000 - 679 = 1021\n FLOAT8_ARRAY = 1022, // Float8 Array -> 701 + 1000 - 679 = 1022\n NUMERIC_ARRAY = 1231, // Numeric Array -> 1700 + 1000 - 1469 = 1231\n DATE_ARRAY = 1182, // Date Array -> 1082 + 100 = 1182\n TIMESTAMP_ARRAY = 1115, // Timestamp Array -> 1114 + 1 = 1115\n TIMESTAMPTZ_ARRAY = 1185, // Timestamptz Array -> 1184 + 1 = 1185\n UUID_ARRAY = 2951, // UUID Array -> 2950 + 1 = 2951\n VARCHAR_ARRAY = 1015, // VarChar Array -> 1043 + 1000 - 1028 = 1015\n}\n\n// Helper function to check if a type is an array type\nexport function isArrayType(typeId: number): boolean {\n // Array types in PostgreSQL are typically in ranges that follow patterns\n return (\n (typeId >= 1000 && typeId <= 1099) || // Common 1-dimensional array types\n (typeId >= 1115 && typeId <= 1185) || // Date/time array types\n typeId === 199 || // JSON array\n typeId === 3807 || // JSONB array\n typeId === 1231 || // Numeric array\n typeId === 2951 // UUID array\n // Add other ranges as needed\n );\n}\n\n// Get the element type ID for an array type ID\nexport function getElementTypeId(arrayTypeId: number): number {\n // Some common mappings for array types to their element types\n const arrayToElementMap: Record<number, number> = {\n 1000: PgTypeId.BOOL, // Boolean array -> Boolean\n 1001: PgTypeId.BYTEA, // Bytea array -> Bytea\n 1002: PgTypeId.CHAR, // Char array -> Char\n 1005: PgTypeId.INT2, // SmallInt array -> SmallInt\n 1007: PgTypeId.INT4, // Integer array -> Integer\n 1009: PgTypeId.TEXT, // Text array -> Text\n 1016: PgTypeId.INT8, // BigInt array -> BigInt\n 1021: PgTypeId.FLOAT4, // Float4 array -> Float4\n 1022: PgTypeId.FLOAT8, // Float8 array -> Float8\n 1231: PgTypeId.NUMERIC, // Numeric array -> Numeric\n 1015: PgTypeId.VARCHAR, // VarChar array -> VarChar\n 1182: PgTypeId.DATE, // Date array -> Date\n 1115: PgTypeId.TIMESTAMP, // Timestamp array -> Timestamp\n 1185: PgTypeId.TIMESTAMPTZ, // TimestampTZ array -> TimestampTZ\n 199: PgTypeId.JSON, // JSON array -> JSON\n 3807: PgTypeId.JSONB, // JSONB array -> JSONB\n 2951: PgTypeId.UUID, // UUID array -> UUID\n };\n\n return arrayToElementMap[arrayTypeId] || 0;\n}\n\n\n// Type parser for PostgreSQL types\nexport class TypeParser {\n private parsers: Record<number, (value: string) => any> = {};\n\n constructor(customTypes?: Record<number, (value: string) => any>) {\n // Initialize with default parsers\n this.initializeDefaultParsers();\n\n // Add custom type parsers if provided\n if (customTypes) {\n Object.keys(customTypes).forEach(key => {\n const typeId = parseInt(key, 10);\n if (!isNaN(typeId) && customTypes[typeId]) {\n this.setTypeParser(typeId, customTypes[typeId] as (value: string) => any);\n }\n });\n }\n }\n\n private initializeDefaultParsers() {\n // Boolean type\n this.setTypeParser(PgTypeId.BOOL, val => val === 't' || val === 'true');\n\n // Integer types\n this.setTypeParser(PgTypeId.INT2, val => parseInt(val, 10));\n this.setTypeParser(PgTypeId.INT4, val => parseInt(val, 10));\n this.setTypeParser(PgTypeId.INT8, val => BigInt(val));\n this.setTypeParser(PgTypeId.OID, val => parseInt(val, 10));\n\n // Floating point types\n this.setTypeParser(PgTypeId.FLOAT4, val => parseFloat(val));\n this.setTypeParser(PgTypeId.FLOAT8, val => parseFloat(val));\n this.setTypeParser(PgTypeId.NUMERIC, val => parseFloat(val));\n\n // JSON types\n this.setTypeParser(PgTypeId.JSON, val => JSON.parse(val));\n this.setTypeParser(PgTypeId.JSONB, val => JSON.parse(val));\n\n // Date/Time types\n this.setTypeParser(PgTypeId.DATE, val => new Date(val));\n this.setTypeParser(PgTypeId.TIMESTAMP, val => new Date(val));\n this.setTypeParser(PgTypeId.TIMESTAMPTZ, val => new Date(val));\n\n // UUID\n this.setTypeParser(PgTypeId.UUID, val => val);\n\n // Set up array type parsers\n this.setupArrayTypeParsers();\n }\n\n private setupArrayTypeParsers() {\n // Define array type parsers for all base types\n // Boolean array\n this.setTypeParser(PgTypeId.BOOL_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.BOOL)));\n\n // Integer arrays\n this.setTypeParser(PgTypeId.INT2_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.INT2)));\n this.setTypeParser(PgTypeId.INT4_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.INT4)));\n this.setTypeParser(PgTypeId.INT8_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.INT8)));\n\n // Floating point arrays\n this.setTypeParser(PgTypeId.FLOAT4_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.FLOAT4)));\n this.setTypeParser(PgTypeId.FLOAT8_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.FLOAT8)));\n this.setTypeParser(PgTypeId.NUMERIC_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.NUMERIC)));\n\n // Text arrays\n this.setTypeParser(PgTypeId.TEXT_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.TEXT)));\n this.setTypeParser(PgTypeId.VARCHAR_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.VARCHAR)));\n\n // JSON arrays\n this.setTypeParser(PgTypeId.JSON_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.JSON)));\n this.setTypeParser(PgTypeId.JSONB_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.JSONB)));\n\n // Date/Time arrays\n this.setTypeParser(PgTypeId.DATE_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.DATE)));\n this.setTypeParser(PgTypeId.TIMESTAMP_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.TIMESTAMP)));\n this.setTypeParser(PgTypeId.TIMESTAMPTZ_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.TIMESTAMPTZ)));\n\n // UUID array\n this.setTypeParser(PgTypeId.UUID_ARRAY, val =>\n parsePostgresArray(val, this.getTypeParser(PgTypeId.UUID)));\n }\n\n public setTypeParser(typeId: number, parseFn: (value: string) => any): void {\n this.parsers[typeId] = parseFn;\n }\n\n public getTypeParser(typeId: number): (value: string) => any {\n // If we're asked for a parser for an array type that doesn't have one explicitly defined,\n // create an array parser dynamically using the element type parser\n if (isArrayType(typeId) && !this.parsers[typeId]) {\n const elementTypeId = getElementTypeId(typeId);\n if (elementTypeId) {\n const elementParser = this.getTypeParser(elementTypeId);\n return (value: string) => parsePostgresArray(value, elementParser);\n }\n }\n\n return this.parsers[typeId] || (value => value);\n }\n}\n\n\n/**\n * Parse a PostgreSQL array string into a JavaScript array\n * This handles various array types and dimensions using the appropriate element parser\n */\nexport function parsePostgresArray(arrayString: string, elementParser: (value: string) => any): any[] {\n if (!arrayString || arrayString === '{}') return [];\n if (arrayString[0] !== '{' || arrayString[arrayString.length - 1] !== '}') {\n throw new Error(`Invalid PostgreSQL array format: ${arrayString}`);\n }\n\n // Extract the content inside the outer braces\n const content = arrayString.substring(1, arrayString.length - 1);\n\n // Quick return for empty arrays\n if (!content) return [];\n\n const result: any[] = [];\n let inQuotes = false;\n let inEscape = false;\n let currentItem = '';\n let nestLevel = 0;\n\n // Process each character to handle quotes, escapes, and nested arrays\n for (let i = 0; i < content.length; i++) {\n const char = content[i];\n\n // Handle escape sequences\n if (inEscape) {\n currentItem += char;\n inEscape = false;\n continue;\n }\n\n // Start of escape sequence\n if (char === '\\\\') {\n inEscape = true;\n continue;\n }\n\n // Toggle quote mode when we see a quote\n if (char === '\"') {\n inQuotes = !inQuotes;\n continue;\n }\n\n // Track nesting level for nested arrays\n if (char === '{') {\n nestLevel++;\n currentItem += char;\n continue;\n }\n\n if (char === '}') {\n nestLevel--;\n currentItem += char;\n continue;\n }\n\n // If we're inside quotes or a nested array, add the character to current item\n if (inQuotes || nestLevel > 0) {\n currentItem += char;\n continue;\n }\n\n // Handle item separator (comma)\n if (char === ',') {\n // Process the completed item\n result.push(parseArrayItem(currentItem, elementParser));\n currentItem = '';\n continue;\n }\n\n // Normal character, add to current item\n currentItem += char;\n }\n\n // Add the last item if there is one\n if (currentItem) {\n result.push(parseArrayItem(currentItem, elementParser));\n }\n\n return result;\n}\n\n/**\n * Parse a single item from a PostgreSQL array\n */\nexport function parseArrayItem(item: string, elementParser: (value: string) => any): any {\n // Trim whitespace\n item = item.trim();\n\n // Handle NULL values\n if (item === 'NULL' || item === '') {\n return null;\n }\n\n // Handle nested arrays recursively\n if (item[0] === '{' && item[item.length - 1] === '}') {\n return parsePostgresArray(item, elementParser);\n }\n\n // Parse normal values using the element parser\n return elementParser(item);\n}\n\n// Process raw query results to apply type parsing\nexport function processQueryResult(\n result: any,\n typeParser: TypeParser,\n arrayMode: boolean\n): any {\n if (!result) return null;\n\n const fields = result.fields || [];\n const rowsData = result.rows || [];\n\n // Create parsers for each column based on its data type\n const parsers = fields.map((field: { dataTypeID: number }) => {\n const typeId = field.dataTypeID;\n\n // If it's an array type, create a special parser that handles the array format\n // and applies the element type parser to each item\n if (isArrayType(typeId)) {\n const elementTypeId = getElementTypeId(typeId);\n const elementParser = typeParser.getTypeParser(elementTypeId);\n\n // Return a function that parses the PostgreSQL array format\n return (value: string) => parsePostgresArray(value, elementParser);\n }\n\n // For non-array types, use the normal type parser\n return typeParser.getTypeParser(typeId);\n });\n\n // Extract column names\n const colNames = fields.map((field: { name: string }) => field.name);\n\n // Process rows with type parsers - with additional safety checks for Auth.js compatibility\n let processedRows: any[] = [];\n\n if (Array.isArray(rowsData)) {\n processedRows = arrayMode\n ? rowsData.map((row: any) => {\n // Ensure row is an array before trying to map over it\n if (!Array.isArray(row)) {\n return row; // Return as is if not an array\n }\n return row.map((val, i) => val === null ? null : parsers[i](val));\n })\n : rowsData.map((row: any) => {\n // Handle cases where row might not be an array (Auth.js sometimes sends objects directly)\n if (!Array.isArray(row)) {\n return row; // Return as is if not an array\n }\n\n const obj: Record<string, any> = {};\n row.forEach((val, i) => {\n if (i < colNames.length) { // Ensure index is within bounds\n obj[colNames[i]] = val === null ? null : parsers[i](val);\n }\n });\n return obj;\n });\n }\n\n // Return a complete result object\n return {\n ...result,\n rows: processedRows,\n rowAsArray: arrayMode,\n _parsers: parsers,\n _types: typeParser\n };\n}\n","import type { ParameterizedQuery } from './types'; // Import necessary type\n\n// Create a class implementing Promise for SQL queries with expanded functionality to match Neon's\nexport class QueryPromise<T = any> implements Promise<T> {\n readonly [Symbol.toStringTag]: string = 'Promise';\n public queryData: ParameterizedQuery;\n public opts?: any;\n\n constructor(\n private executeFn: (query: string, params: any[]) => Promise<T>,\n queryObj: ParameterizedQuery,\n opts?: any\n ) {\n this.queryData = queryObj;\n this.opts = opts;\n }\n\n then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined\n ): Promise<TResult1 | TResult2> {\n return this.executeFn(this.queryData.query, this.queryData.params).then(onfulfilled, onrejected);\n }\n\n catch<TResult = never>(\n onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined\n ): Promise<T | TResult> {\n return this.executeFn(this.queryData.query, this.queryData.params).catch(onrejected);\n }\n\n finally(onfinally?: (() => void) | null | undefined): Promise<T> {\n return this.executeFn(this.queryData.query, this.queryData.params).finally(onfinally);\n }\n\n // For compatibility with result iteration, implement Symbol.iterator\n [Symbol.iterator](): Iterator<T> {\n // Create a reference to the promise outside the iterator\n const promise = this;\n let isDone = false;\n let resolvedValue: T | undefined = undefined;\n\n return {\n next(): IteratorResult<T> {\n if (isDone) {\n return { done: true, value: undefined as any };\n }\n\n if (resolvedValue === undefined) {\n // For the first call, return the promise result\n return promise.then((value: T) => {\n resolvedValue = value;\n return { done: false, value };\n }) as any; // Cast needed\n }\n\n // For subsequent calls\n isDone = true;\n return { done: true, value: undefined as any }; // Mark as done\n }\n };\n }\n}\n","import type { ParameterizedQuery } from './types'; // Assuming types are in types.ts\nimport { QueryPromise } from './query-promise'; // Import QueryPromise from new file\n// Removed incorrect self-import