surreal-better-auth
Version:
SurrealDB adapter for Better Auth
1 lines • 78.9 kB
Source Map (JSON)
{"version":3,"sources":["../src/types.ts","../src/helpers.ts","../src/schema.ts","../src/surreal-adapter.ts"],"names":["DEFAULT_FIELD_REFERENCES","COMPARISON_OPERATORS","STRING_OPERATORS","FIELD_MAPPING_RULES","data","mapNullToUndefined","out","k","toRecordId","model","id","RecordId","recordIdsToStrings","value","v","buildRecordIdMap","tables","getModelName","getFieldName","map","internalModelName","tableDef","actualTableName","internalFieldName","fieldDef","actualFieldName","referencedActualTableName","logQuery","config","debugLog","method","query","fills","encoded","queryTemplate","params","decodeCbor","readableQuery","paramName","paramPattern","formattedValue","colors","formatLogLine","lang","transationId","stepString","methodString","preparedString","PADDING","formattedString","ERROR_HANDLERS","modelName","logger","rule","reason","operator","getReferencedModel","tableName","fieldName","recordIdMap","getDefaultModelName","getDefaultFieldName","defaultModel","defaultField","referencedModel","tableSpecificRef","buildSpecialCasesMapping","specialCases","sourceModelName","targetModelName","e","error","serializeRecordIdFields","getReferencedModelFn","buildSpecialCasesFn","specialCase","recordId","extractDirectRecords","where","idEqIndex","w","idEqCondition","remainingWhere","_","index","idInIndex","recordIds","buildQuerySuffix","options","sortBy","limit","offset","groupAll","returnAfter","returnFields","limitOne","suffix","field","direction","buildWhereClauseParts","bindings","conditions","idx","internalField","connector","param","gap","Gap","conditionStr","vals","finalVals","referencedModelName","generateCreateQuery","content","customId","selectFields","generateId","targetClause","providedId","queryString","PreparedQuery","generateSchema","file","schemaLines","date","formatted","buildTableBox","text","totalWidth","contentWidth","lineContent","top","mid","bot","mapFieldType","type","accountModelName","userModelName","accountIdFieldName","oauthAccessTokenModelName","oauthApplicationModelName","oauthAccessTokenIdFieldName","oauthConsentModelName","oauthConsentIdFieldName","baseType","finalType","fieldsToIndex","surrealdbAdapter","db","createAdapter","Uuid","serializeRecordIdFieldsFn","extractDirectRecordsFn","buildQuerySuffixFn","buildWhereClausePartsFn","generateCreateQueryFn","executeOptimizedQuery","baseQuery","directRecordQuery","processResult","r","returnCount","singleRecord","directRecordInfo","directQuery","result","whereStr","values","select","mappedFields","f","selectClause"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { AdapterDebugLogs } from \"better-auth/adapters\";\n\n/**\n * ID generation strategies for SurrealDB records.\n */\nexport type IdGenerator =\n | \"sdk.UUIDv4\"\n | \"sdk.UUIDv7\"\n | \"surreal\"\n | \"surreal.ULID\"\n | \"surreal.UUID\"\n | \"surreal.UUIDv4\"\n | \"surreal.UUIDv7\"\n | \"surreal.guid\";\n\n/**\n * Maps table fields to their referenced tables for RecordId conversion.\n */\nexport interface RecordIdMap {\n tableSpecific: Record<string, Record<string, string>>;\n}\n\n/**\n * Configuration options for the SurrealDB adapter.\n */\nexport interface SurrealDBAdapterConfig {\n /** Enable debug logging for adapter operations. */\n debugLogs?: AdapterDebugLogs;\n\n /** Use plural table names (e.g., 'users' instead of 'user'). @default false */\n usePlural?: boolean;\n\n /** ID generation strategy. @default undefined (uses Better Auth default) */\n idGenerator?: IdGenerator;\n\n /** Allow passing custom IDs in data objects. @default false */\n allowPassingId?: boolean;\n}\n\n/**\n * Adapter method names for logging and debugging.\n */\nexport type AdapterMethod =\n | \"create\"\n | \"update\"\n | \"updateMany\"\n | \"findOne\"\n | \"findMany\"\n | \"delete\"\n | \"deleteMany\"\n | \"count\";\n\n/**\n * Rule for special field-to-table mappings with optional conditions.\n */\nexport interface FieldMappingRule {\n sourceModel: string;\n sourceField: string;\n targetModel: string;\n condition?: (data: Record<string, any>) => boolean;\n}\n\n/**\n * Options for building query suffix clauses (ORDER BY, LIMIT, etc.).\n */\nexport interface QuerySuffixOptions {\n sortBy?: { field: string; direction?: \"asc\" | \"desc\" };\n limit?: number;\n offset?: number;\n groupAll?: boolean;\n returnAfter?: boolean;\n returnFields?: string;\n limitOne?: boolean;\n model?: string;\n}\n\n/**\n * Options for optimized query execution with direct record access.\n */\nexport interface ExecuteOptimizedQueryOptions {\n method: AdapterMethod;\n model: string;\n where?: any[];\n baseQuery: string;\n directRecordQuery?: (recordIds: any[]) => string;\n content?: any;\n suffix?: string;\n processResult?: (result: any) => any;\n returnCount?: boolean;\n singleRecord?: boolean;\n}\n\n/**\n * Default field-to-table reference mappings for common Better Auth fields.\n */\nexport const DEFAULT_FIELD_REFERENCES: Record<string, string> = {\n userId: \"user\",\n organizationId: \"organization\",\n teamId: \"team\",\n inviterId: \"user\",\n activeOrganizationId: \"organization\",\n activeTeamId: \"team\",\n};\n\n/**\n * Comparison operator mappings for SurrealDB WHERE clauses.\n */\nexport const COMPARISON_OPERATORS: Record<string, string> = {\n eq: \"=\",\n ne: \"!=\",\n gt: \">\",\n gte: \">=\",\n lt: \"<\",\n lte: \"<=\",\n};\n\n/**\n * String operator mappings for SurrealDB text operations.\n */\nexport const STRING_OPERATORS: Record<string, string> = {\n contains: \"CONTAINS\",\n starts_with: \"starts_with\",\n ends_with: \"ends_with\",\n};\n\n/**\n * Special field mapping rules with conditional logic.\n */\nexport const FIELD_MAPPING_RULES: FieldMappingRule[] = [\n {\n sourceModel: \"account\",\n sourceField: \"accountId\",\n targetModel: \"user\",\n condition: (data) => data.providerId === \"credential\",\n },\n {\n sourceModel: \"oauthAccessToken\",\n sourceField: \"clientId\",\n targetModel: \"oauthApplication\",\n },\n {\n sourceModel: \"oauthConsent\",\n sourceField: \"clientId\",\n targetModel: \"oauthApplication\",\n },\n];\n\n/**\n * Parameters for schema generation from Better Auth tables.\n */\nexport interface GenerateSchemaParams {\n file?: string;\n tables: Record<string, any>;\n getModelName: (model: string) => string;\n getFieldName: (opts: { model: string; field: string }) => string;\n getReferencedModel: (tableName: string, fieldName: string) => string | null;\n}\n\n/**\n * Result of schema generation with path and content.\n */\nexport interface GenerateSchemaResult {\n path: string;\n code: string;\n overwrite: boolean;\n}\n","/**\n * Helper utilities for SurrealDB Better Auth adapter.\n * Handles ID conversion, data transformation, and schema mapping.\n */\n\nimport { decodeCbor, PreparedQuery, RecordId, type Fill, Gap } from \"surrealdb\";\nimport type { Where } from \"better-auth/types\";\nimport { logger } from \"better-auth\";\nimport type {\n AdapterMethod,\n RecordIdMap,\n SurrealDBAdapterConfig,\n QuerySuffixOptions,\n // FieldMappingRule\n} from \"./types\";\nimport {\n COMPARISON_OPERATORS,\n STRING_OPERATORS,\n DEFAULT_FIELD_REFERENCES,\n FIELD_MAPPING_RULES,\n} from \"./types\";\n\n/**\n * Converts null values to undefined to prevent SurrealDB errors with option<record<table>> fields.\n */\nexport function mapNullToUndefined(\n data: Record<string, any>,\n): Record<string, any> {\n const out: Record<string, any> = { ...data };\n for (const k of Object.keys(out)) {\n if (out[k] === null) out[k] = undefined;\n }\n return out;\n}\n\n/**\n * Converts various ID formats to SurrealDB RecordId.\n * Handles RecordId instances, \"table:id\" strings, plain IDs, and numbers.\n */\nexport function toRecordId(model: string, id: any): RecordId {\n if (id instanceof RecordId) return id;\n if (typeof id === \"string\") {\n if (id.includes(\":\"))\n return new RecordId(id.split(\":\")[0], id.split(\":\")[1]);\n return new RecordId(model, id);\n }\n return new RecordId(model, id);\n}\n\n/**\n * Recursively converts RecordId objects to \"table:id\" strings throughout data structures.\n */\nexport function recordIdsToStrings<T>(value: T): T {\n if (value === null || value === undefined) return value;\n if (value instanceof RecordId)\n return (value.id\n ? `${(value as RecordId).tb}:${(value as RecordId).id}`\n : value.toString()) as unknown as T;\n if (value instanceof Date) {\n return value;\n }\n if (Array.isArray(value))\n return value.map((v) => recordIdsToStrings(v)) as unknown as T;\n if (typeof value === \"object\") {\n const out: any = {};\n for (const [k, v] of Object.entries(value as any)) {\n out[k] = recordIdsToStrings(v as any);\n }\n return out as T;\n }\n return value;\n}\n\n/**\n * Builds field-to-table reference mappings from Better Auth schema for RecordId conversion.\n */\nexport function buildRecordIdMap(\n tables: any,\n getModelName: (model: string) => string,\n getFieldName: (opts: { model: string; field: string }) => string,\n): RecordIdMap {\n const map: RecordIdMap = { tableSpecific: {} };\n if (!tables) return map;\n\n for (const internalModelName in tables) {\n const tableDef = tables[internalModelName];\n if (!tableDef?.fields) continue;\n\n const actualTableName = getModelName(internalModelName);\n if (!map.tableSpecific[actualTableName]) {\n map.tableSpecific[actualTableName] = {};\n }\n\n for (const internalFieldName in tableDef.fields) {\n const fieldDef = tableDef.fields[internalFieldName];\n if (fieldDef?.references?.model) {\n const actualFieldName = getFieldName({\n model: internalModelName,\n field: internalFieldName,\n });\n const referencedActualTableName = getModelName(\n fieldDef.references.model,\n );\n map.tableSpecific[actualTableName][actualFieldName] =\n referencedActualTableName;\n }\n }\n }\n return map;\n}\n\n/**\n * Logs SurrealDB queries with formatted output when debug logging is enabled.\n */\nexport function logQuery(\n config: SurrealDBAdapterConfig | undefined,\n debugLog: (...args: any[]) => void,\n method: AdapterMethod,\n query: PreparedQuery,\n fills: Fill<any>[],\n): void {\n if (!config?.debugLogs) return;\n if (\n config.debugLogs &&\n typeof config.debugLogs === \"object\" &&\n !(\"isRunningAdapterTests\" in config.debugLogs)\n ) {\n if (method === \"create\" && !config.debugLogs.create) {\n return;\n }\n if (method === \"update\" && !config.debugLogs.update) {\n return;\n }\n if (method === \"updateMany\" && !config.debugLogs.updateMany) {\n return;\n }\n if (method === \"findOne\" && !config.debugLogs.findOne) {\n return;\n }\n if (method === \"findMany\" && !config.debugLogs.findMany) {\n return;\n }\n if (method === \"delete\" && !config.debugLogs.delete) {\n return;\n }\n if (method === \"deleteMany\" && !config.debugLogs.deleteMany) {\n return;\n }\n if (method === \"count\" && !config.debugLogs.count) {\n return;\n }\n }\n\n const encoded = query.build(fills);\n const [queryTemplate, params] = decodeCbor(encoded);\n let readableQuery = queryTemplate;\n\n // Replace parameters with actual values\n Object.entries(params).forEach(([paramName, value]) => {\n const paramPattern = new RegExp(`\\\\$${paramName}\\\\b`, \"g\");\n let formattedValue: string;\n\n if (value instanceof RecordId) {\n // RecordId should be displayed without quotes\n formattedValue = value.toString();\n } else if (typeof value === \"string\" && value.includes(\":\")) {\n // String that looks like RecordId should be displayed without quotes\n formattedValue = value;\n } else {\n // Other values should be JSON stringified\n formattedValue = JSON.stringify(value);\n }\n\n readableQuery = readableQuery.replace(paramPattern, formattedValue);\n });\n const colors = {\n reset: \"\\x1b[0m\",\n bright: \"\\x1b[1m\",\n dim: \"\\x1b[2m\",\n fg: {\n surreal_pink: \"\\x1b[38;5;200m\",\n surreal_purple: \"\\x1b[38;5;93m\",\n yellow: \"\\x1b[33m\",\n magenta: \"\\x1b[35m\",\n },\n bg: {\n obsidian_violet: \"\\x1b[48;5;233m\",\n black: \"\\x1b[40m\",\n },\n };\n function formatLogLine(lang: string, query: string) {\n const transationId = `${colors.fg.magenta}###`;\n const stepString = `${colors.bg.black}${colors.fg.yellow}[0/#]${colors.reset}`;\n const methodString = `${colors.bright}${method}`;\n const preparedString = `${colors.dim}(PreparedQuery)${colors.reset}:`;\n const PADDING = \" \";\n let formattedString = `${colors.bg.obsidian_violet}`;\n formattedString += PADDING;\n formattedString += `${colors.fg.surreal_purple}[${lang}]`;\n formattedString += ` ${colors.fg.surreal_pink}${query}`;\n formattedString += PADDING;\n formattedString += `${colors.reset}`;\n return `${transationId} ${stepString} ${methodString} ${preparedString} \\n\\n${formattedString}\\n\\n`;\n }\n\n debugLog(`${formatLogLine(\"SurrealQL\", readableQuery)}`);\n}\n/**\n * Declarative error handling configuration for adapter operations.\n */\nexport const ERROR_HANDLERS = {\n modelNotFound: (modelName: string, config?: SurrealDBAdapterConfig) => {\n if (config?.debugLogs) {\n logger.debug(\n `[surreal-better-auth]: Model '${modelName}' not found in schema, skipping operation `,\n );\n }\n },\n fieldMappingSkipped: (\n rule: string,\n reason: string,\n config?: SurrealDBAdapterConfig,\n ) => {\n if (config?.debugLogs) {\n logger.debug(\n `[surreal-better-auth]: Skipping field mapping rule for '${rule}': ${reason} `,\n );\n }\n },\n unsupportedOperator: (operator: string, config?: SurrealDBAdapterConfig) => {\n if (config?.debugLogs) {\n logger.warn(\n `[surreal-better-auth]: Unknown operator '${operator}', falling back to equality comparison `,\n );\n }\n },\n};\n\n/**\n * Gets the referenced table name for a field using default mappings and schema.\n */\nexport function getReferencedModel(\n tableName: string,\n fieldName: string,\n recordIdMap: RecordIdMap,\n getDefaultModelName: (tableName: string) => string,\n getDefaultFieldName: (opts: { model: string; field: string }) => string,\n getModelName: (model: string) => string,\n config?: SurrealDBAdapterConfig,\n): string | null {\n const defaultModel = getDefaultModelName(tableName);\n const defaultField = getDefaultFieldName({\n model: defaultModel,\n field: fieldName,\n });\n\n // Check default references first\n const referencedModel = DEFAULT_FIELD_REFERENCES[defaultField];\n if (referencedModel) {\n try {\n const modelName = getModelName(referencedModel);\n if (config?.debugLogs) {\n logger.debug(\n `[surreal-better-auth]: Found default reference: ${tableName}.${fieldName} -> ${modelName} `,\n );\n }\n return modelName;\n } catch (error) {\n ERROR_HANDLERS.modelNotFound(referencedModel, config);\n }\n }\n\n // Fallback to table-specific mappings\n const tableSpecificRef = recordIdMap.tableSpecific[tableName]?.[fieldName];\n if (tableSpecificRef && config?.debugLogs) {\n logger.debug(\n `[surreal-better-auth]: Found table-specific reference: ${tableName}.${fieldName} -> ${tableSpecificRef} `,\n );\n }\n\n return tableSpecificRef || null;\n}\n\n/**\n * Builds special field mapping cases from declarative rules.\n */\nexport function buildSpecialCasesMapping(\n getModelName: (model: string) => string,\n getFieldName: (opts: { model: string; field: string }) => string,\n config?: SurrealDBAdapterConfig,\n): Record<\n string,\n Record<\n string,\n {\n condition?: (data: Record<string, any>) => boolean;\n recordTable: string;\n }\n >\n> {\n const specialCases: Record<\n string,\n Record<\n string,\n {\n condition?: (data: Record<string, any>) => boolean;\n recordTable: string;\n }\n >\n > = {};\n\n for (const rule of FIELD_MAPPING_RULES) {\n try {\n const sourceModelName = getModelName(rule.sourceModel);\n const targetModelName = getModelName(rule.targetModel);\n const fieldName = getFieldName({\n model: rule.sourceModel,\n field: rule.sourceField,\n });\n\n if (!specialCases[sourceModelName]) {\n specialCases[sourceModelName] = {};\n }\n\n specialCases[sourceModelName][fieldName] = {\n recordTable: targetModelName,\n condition: rule.condition,\n };\n\n if (config?.debugLogs) {\n logger.debug(\n `[surreal-better-auth]: Registered field mapping: ${sourceModelName}.${fieldName} -> to record ${targetModelName} `,\n );\n }\n } catch (e) {\n const error = e as Error;\n ERROR_HANDLERS.fieldMappingSkipped(\n `${rule.sourceModel}.${rule.sourceField}`,\n error.message,\n config,\n );\n }\n }\n\n return specialCases;\n}\n\n/**\n * Converts string IDs to RecordId objects for fields that reference other tables.\n */\nexport function serializeRecordIdFields(\n tableName: string,\n data: Record<string, any>,\n getReferencedModelFn: (tableName: string, fieldName: string) => string | null,\n buildSpecialCasesFn: () => Record<\n string,\n Record<\n string,\n {\n condition?: (data: Record<string, any>) => boolean;\n recordTable: string;\n }\n >\n >,\n config?: SurrealDBAdapterConfig,\n): Record<string, any> {\n const out = { ...data };\n const specialCases = buildSpecialCasesFn();\n\n if (config?.debugLogs) {\n logger.debug(\n `[surreal-better-auth]: Serializing record ID fields for table: ${tableName} `,\n {\n fieldCount: Object.keys(out).length,\n hasSpecialCases: !!specialCases[tableName],\n },\n );\n }\n\n for (const fieldName in out) {\n const value = out[fieldName];\n\n if (typeof value !== \"string\" || !value) {\n continue;\n }\n\n const specialCase = specialCases[tableName]?.[fieldName];\n\n if (specialCase) {\n const shouldApply = !specialCase.condition || specialCase.condition(out);\n\n if (shouldApply) {\n const recordId = toRecordId(specialCase.recordTable, value);\n out[fieldName] = recordId;\n\n if (config?.debugLogs) {\n logger.debug(\n `[surreal-better-auth]: Applied special case mapping: ${tableName}.${fieldName} = \"${value}\" -> \"${recordId}\" `,\n );\n }\n } else if (config?.debugLogs) {\n logger.debug(\n `[surreal-better-auth]: Special case condition not met for: ${tableName}.${fieldName} `,\n );\n }\n } else {\n const referencedModel = getReferencedModelFn(tableName, fieldName);\n\n if (referencedModel) {\n const recordId = toRecordId(referencedModel, value);\n out[fieldName] = recordId;\n\n if (config?.debugLogs) {\n logger.debug(\n `[surreal-better-auth]: Applied default reference mapping: ${tableName}.${fieldName} = \"${value}\" -> \"${recordId}\" `,\n );\n }\n }\n }\n }\n\n return out;\n}\n\n/**\n * Extracts direct record IDs from WHERE conditions for query optimization.\n */\nexport function extractDirectRecords(\n where: Where[] | undefined,\n model: string,\n getModelName: (model: string) => string,\n): { recordIds: RecordId[]; remainingWhere: Where[] } | null {\n if (!where || where.length === 0) return null;\n\n const tableName = getModelName(model);\n\n // Find id = value condition (single record)\n const idEqIndex = where.findIndex(\n (w) => w.field === \"id\" && w.operator === \"eq\",\n );\n if (idEqIndex !== -1) {\n const idEqCondition = where[idEqIndex];\n const recordId = toRecordId(tableName, idEqCondition.value as any);\n const remainingWhere = where.filter((_, index) => index !== idEqIndex);\n return { recordIds: [recordId], remainingWhere };\n }\n\n // Find id IN [...] condition (multiple records)\n const idInIndex = where.findIndex(\n (w) => w.field === \"id\" && w.operator === \"in\" && Array.isArray(w.value),\n );\n if (idInIndex !== -1) {\n const idInCondition = where[idInIndex];\n const recordIds = (idInCondition.value as any[]).map((id) =>\n toRecordId(tableName, id),\n );\n const remainingWhere = where.filter((_, index) => index !== idInIndex);\n return { recordIds, remainingWhere };\n }\n\n return null;\n}\n\n/**\n * Builds query suffix with ORDER BY, LIMIT, RETURN clauses.\n */\nexport function buildQuerySuffix(\n options: QuerySuffixOptions = {},\n getFieldName?: (opts: { model: string; field: string }) => string,\n): string {\n const {\n sortBy,\n limit,\n offset,\n groupAll,\n returnAfter,\n returnFields,\n limitOne,\n model,\n } = options;\n\n let suffix = \"\";\n\n // ORDER BY clause\n if (sortBy && model && getFieldName) {\n const field = getFieldName({ model, field: sortBy.field });\n const direction = sortBy.direction === \"desc\" ? \"DESC\" : \"ASC\";\n suffix += ` ORDER BY ${field} ${direction}