UNPKG

@api-buddy/types

Version:

Shared types for API Buddy

1 lines 91.9 kB
{"version":3,"sources":["../src/types.ts","../src/adapters/auth.ts","../src/adapters/database.ts","../src/adapters/storage.ts","../src/adapters/base.ts","../src/adapters/types.ts","../src/adapters/core/base-auth-adapter.ts","../src/adapters/core/registry.ts","../src/schemas.ts","../src/guards.ts","../src/errors/index.ts"],"names":["z","AdapterEventType","AdapterType","uuidv4","_a","event"],"mappings":"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","file":"index.mjs","sourcesContent":["import { z } from 'zod';\n\nexport type FieldType =\n | 'String'\n | 'Number'\n | 'Boolean'\n | 'Date'\n | 'JSON'\n | 'ID'\n | 'Relation';\n\nexport const fieldTypeSchema = z.enum([\n 'String',\n 'Number',\n 'Boolean',\n 'Date',\n 'JSON',\n 'ID',\n 'Relation',\n]);\n\nexport interface BaseFieldDefinition {\n type: FieldType;\n required?: boolean;\n unique?: boolean;\n default?: any;\n isArray?: boolean;\n validators?: Array<(value: any) => string | null>;\n description?: string;\n}\n\nexport interface StringFieldDefinition extends BaseFieldDefinition {\n type: 'String';\n enum?: string[];\n minLength?: number;\n maxLength?: number;\n pattern?: string;\n format?: 'email' | 'uri' | 'uuid' | 'date-time' | 'date' | 'time' | string;\n}\n\nexport interface NumberFieldDefinition extends BaseFieldDefinition {\n type: 'Number';\n minimum?: number;\n maximum?: number;\n exclusiveMinimum?: boolean;\n exclusiveMaximum?: boolean;\n multipleOf?: number;\n}\n\nexport interface BooleanFieldDefinition extends BaseFieldDefinition {\n type: 'Boolean';\n}\n\nexport interface DateFieldDefinition extends BaseFieldDefinition {\n type: 'Date';\n}\n\nexport interface JsonFieldDefinition extends BaseFieldDefinition {\n type: 'JSON';\n}\n\nexport interface IDFieldDefinition extends BaseFieldDefinition {\n type: 'ID';\n autoIncrement?: boolean;\n autoGenerate?: boolean;\n}\n\nexport interface RelationFieldDefinition extends BaseFieldDefinition {\n type: 'Relation';\n relation: {\n model: string;\n type: 'hasOne' | 'hasMany' | 'belongsTo' | 'manyToMany';\n foreignKey?: string;\n through?: string;\n };\n}\n\nexport type FieldDefinition =\n | StringFieldDefinition\n | NumberFieldDefinition\n | BooleanFieldDefinition\n | DateFieldDefinition\n | JsonFieldDefinition\n | IDFieldDefinition\n | RelationFieldDefinition;\n\nexport interface ModelDefinition {\n fields: Record<string, FieldDefinition>;\n timestamps?: boolean;\n softDelete?: boolean;\n tableName?: string;\n indexes?: Array<{\n fields: string | string[];\n unique?: boolean;\n name?: string;\n }>;\n}\n\nexport interface Schema {\n models: Record<string, ModelDefinition>;\n enums?: Record<string, string[]>;\n config?: {\n database?: {\n provider?: 'postgresql' | 'mysql' | 'sqlite' | 'mongodb';\n url?: string;\n ssl?: boolean;\n };\n auth?: {\n enabled?: boolean;\n providers?: ('credentials' | 'github' | 'google')[];\n };\n };\n}\n","// packages/types/src/adapters/auth.ts\nimport { z } from 'zod';\nimport type { BaseAdapter } from './base.js';\nimport { AdapterType } from './types.js';\n\nexport interface AuthProvider {\n id: string;\n name: string;\n type: 'oauth' | 'oidc' | 'saml' | 'email' | 'phone' | 'password' | 'magic-link' | 'webauthn';\n clientId?: string;\n clientSecret?: string;\n scopes?: string[];\n authorizationUrl?: string;\n tokenUrl?: string;\n userInfoUrl?: string;\n issuer?: string;\n jwksUri?: string;\n redirectUri?: string;\n params?: Record<string, string>;\n style?: {\n logo?: string;\n logoDark?: string;\n bgColor?: string;\n textColor?: string;\n bgDark?: string;\n textDark?: string;\n };\n [key: string]: any;\n}\n\n// Schemas\nexport const userProfileSchema = z.object({\n id: z.string(),\n email: z.string().email().optional(),\n emailVerified: z.boolean().optional(),\n name: z.string().optional(),\n avatar: z.string().url().optional(),\n // Allow additional properties\n}).passthrough();\n\nexport const authSessionSchema = z.object({\n user: userProfileSchema,\n accessToken: z.string(),\n refreshToken: z.string().optional(),\n expiresAt: z.date().or(z.string().datetime()).optional(),\n});\n\nexport const emailPasswordCredentialsSchema = z.object({\n email: z.string().email(),\n password: z.string().min(6),\n});\n\nexport interface UserProfile {\n id: string;\n email?: string;\n emailVerified?: boolean;\n name?: string;\n avatar?: string;\n [key: string]: any;\n }\n \n export interface AuthSession<TUser extends UserProfile = UserProfile> {\n user: TUser;\n accessToken: string;\n refreshToken?: string;\n expiresAt?: Date;\n }\n \n export interface EmailPasswordCredentials {\n email: string;\n password: string;\n }\n \n export interface AuthAdapter<TUser extends UserProfile = UserProfile> extends BaseAdapter {\n readonly type: AdapterType.AUTH;\n \n // Core authentication methods\n signIn(credentials: any): Promise<AuthSession<TUser>>;\n signOut(): Promise<void>;\n getCurrentUser(): Promise<TUser | null>;\n onAuthStateChanged(callback: (user: TUser | null) => void): () => void;\n \n // Common auth operations (optional)\n signUp?(credentials: any): Promise<TUser>;\n sendPasswordResetEmail?(email: string): Promise<void>;\n confirmPasswordReset?(code: string, newPassword: string): Promise<void>;\n updateProfile?(updates: Partial<TUser>): Promise<TUser>;\n updateEmail?(email: string, currentPassword?: string): Promise<void>;\n updatePassword?(newPassword: string, currentPassword?: string): Promise<void>;\n signInWithProvider?(providerId: string, options?: any): Promise<AuthSession<TUser>>;\n getAccessToken?(forceRefresh?: boolean): Promise<string | null>;\n refreshSession?(): Promise<AuthSession<TUser>>;\n getIdToken?(forceRefresh?: boolean): Promise<string | null>;\n }\n\n/**\n * Options for configuring an auth adapter\n */\nexport interface AuthAdapterOptions {\n /**\n * Unique identifier for the auth adapter instance\n * If not provided, a UUID will be generated automatically\n */\n id?: string;\n \n /**\n * The persistence mechanism to use for the auth state\n * @default 'local'\n */\n persistence?: 'local' | 'session' | 'none';\n \n /**\n * Whether to automatically refresh the access token when it expires\n * @default true\n */\n autoRefreshToken?: boolean;\n \n /**\n * The threshold in seconds before token expiration to attempt a refresh\n * @default 300 (5 minutes)\n */\n refreshThreshold?: number;\n \n /**\n * The URL to redirect to after successful authentication\n */\n redirectTo?: string;\n \n /**\n * The URL to redirect to after sign out\n */\n redirectAfterSignOut?: string;\n}\n\n/**\n * Configuration for a social authentication provider\n */\nexport interface SocialProviderConfig {\n /** The OAuth client ID */\n clientId: string;\n \n /** The OAuth client secret (server-side only) */\n clientSecret?: string;\n \n /** The OAuth scopes to request */\n scopes?: string[];\n \n /** The redirect URI for OAuth callbacks */\n redirectUri?: string;\n \n /** Additional provider-specific parameters */\n params?: Record<string, string>;\n}\n\n/**\n * Schema for validating social provider configurations\n */\nexport const socialProviderConfigSchema = z.object({\n clientId: z.string().min(1, 'Client ID is required'),\n clientSecret: z.string().optional(),\n scopes: z.array(z.string()).default([]),\n redirectUri: z.string().url('Invalid redirect URI').optional(),\n params: z.record(z.string()).optional(),\n});\n\n/**\n * Type guard for UserProfile\n * @param value - The value to check\n * @returns True if the value is a valid UserProfile\n */\nexport function isUserProfile(value: unknown): value is UserProfile {\n try {\n userProfileSchema.parse(value);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Type guard for AuthSession\n * @param value - The value to check\n * @returns True if the value is a valid AuthSession\n */\nexport function isAuthSession<T extends UserProfile = UserProfile>(\n value: unknown\n): value is AuthSession<T> {\n try {\n authSessionSchema.parse(value);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Type guard for EmailPasswordCredentials\n * @param value - The value to check\n * @returns True if the value is a valid EmailPasswordCredentials\n */\nexport function isEmailPasswordCredentials(\n value: unknown\n): value is EmailPasswordCredentials {\n try {\n emailPasswordCredentialsSchema.parse(value);\n return true;\n } catch {\n return false;\n }\n}","import type { BaseAdapter } from './base.js';\r\nimport { AdapterType } from './types.js';\r\nimport { z } from 'zod';\r\n\r\n/**\r\n * Supported comparison operators for database queries\r\n */\r\nexport type Operator = \r\n | '==' | '!=' | '<' | '<=' | '>' | '>='\r\n | 'in' | 'not-in' | 'array-contains' | 'array-contains-any';\r\n\r\n/**\r\n * Schema for validating query operators\r\n */\r\nexport const operatorSchema = z.union([\r\n z.literal('=='),\r\n z.literal('!='),\r\n z.literal('<'),\r\n z.literal('<='),\r\n z.literal('>'),\r\n z.literal('>='),\r\n z.literal('in'),\r\n z.literal('not-in'),\r\n z.literal('array-contains'),\r\n z.literal('array-contains-any'),\r\n]);\r\n\r\n/**\r\n * Represents a filter condition for database queries\r\n */\r\nexport interface QueryFilter<T = unknown> {\r\n /** The field to filter on */\r\n field: string;\r\n \r\n /** The comparison operator */\r\n operator: Operator;\r\n \r\n /** The value to compare against */\r\n value: T;\r\n}\r\n\r\n/**\r\n * Schema for validating query filters\r\n */\r\nexport const queryFilterSchema = z.object({\r\n field: z.string().min(1, 'Field name is required'),\r\n operator: operatorSchema,\r\n value: z.any(),\r\n});\r\n\r\n/**\r\n * Options for database adapter queries\r\n * @template T - Type of the document being queried\r\n */\r\nexport interface DatabaseAdapterQueryOptions<T = unknown> {\r\n /** Filter conditions */\r\n where?: QueryFilter[];\r\n \r\n /** Sorting order as [field, direction] */\r\n orderBy?: [string, 'asc' | 'desc'];\r\n \r\n /** Maximum number of results to return */\r\n limit?: number;\r\n \r\n /** Cursor for pagination - start after this document */\r\n startAfter?: unknown;\r\n \r\n /** Cursor for pagination - end before this document */\r\n endBefore?: unknown;\r\n \r\n /** Fields to include in the result */\r\n select?: (keyof T)[];\r\n \r\n /** Number of documents to skip */\r\n offset?: number;\r\n}\r\n\r\n/**\r\n * Schema for validating database query options\r\n */\r\nexport const databaseQueryOptionsSchema = z.object({\r\n where: z.array(queryFilterSchema).optional(),\r\n orderBy: z.tuple([z.string(), z.enum(['asc', 'desc'])]).optional(),\r\n limit: z.number().int().positive().optional(),\r\n startAfter: z.any().optional(),\r\n endBefore: z.any().optional(),\r\n select: z.array(z.any()).optional(),\r\n offset: z.number().int().nonnegative().optional(),\r\n}).strict();\r\n\r\n/**\r\n * Options for database transactions\r\n */\r\nexport interface TransactionOptions {\r\n /** Maximum number of retry attempts */\r\n maxAttempts?: number;\r\n \r\n /** Whether to allow writes in the transaction */\r\n readOnly?: boolean;\r\n \r\n /** Transaction timeout in milliseconds */\r\n timeout?: number;\r\n}\r\n\r\n/**\r\n * Schema for validating transaction options\r\n */\r\nexport const transactionOptionsSchema = z.object({\r\n maxAttempts: z.number().int().positive().optional(),\r\n readOnly: z.boolean().optional(),\r\n timeout: z.number().int().positive().optional(),\r\n}).strict();\r\n\r\n/**\r\n * Interface for database adapters\r\n * @template T - Default document type\r\n * @template TConfig - Type of the configuration object\r\n */\r\nexport interface DatabaseAdapter<\r\n T = unknown,\r\n TConfig = unknown\r\n> extends BaseAdapter<TConfig> {\r\n readonly type: AdapterType.DATABASE;\r\n \r\n /**\r\n * Creates a new document in the specified collection\r\n * @param collection - The name of the collection\r\n * @param data - The document data (without ID)\r\n * @returns A promise that resolves to the created document with ID\r\n * @throws {DatabaseError} If the operation fails\r\n */\r\n create(collection: string, data: Omit<T, 'id'>): Promise<T & { id: string }>;\r\n \r\n /**\r\n * Finds multiple documents matching the query options\r\n * @param collection - The name of the collection\r\n * @param options - Query options for filtering, sorting, and pagination\r\n * @returns A promise that resolves to an array of matching documents\r\n * @throws {DatabaseError} If the operation fails\r\n */\r\n findMany(collection: string, options?: DatabaseAdapterQueryOptions<T>): Promise<T[]>;\r\n \r\n /**\r\n * Reads a document by ID\r\n * @param collection - The name of the collection\r\n * @param id - The document ID\r\n * @returns A promise that resolves to the document, or null if not found\r\n * @throws {DatabaseError} If the operation fails\r\n */\r\n read(collection: string, id: string): Promise<T | null>;\r\n \r\n /**\r\n * Updates a document\r\n * @param collection - The name of the collection\r\n * @param id - The document ID\r\n * @param data - The fields to update\r\n * @returns A promise that resolves to the updated document\r\n * @throws {DatabaseError} If the operation fails\r\n */\r\n update(collection: string, id: string, data: Partial<T>): Promise<T>;\r\n \r\n /**\r\n * Deletes a document\r\n * @param collection - The name of the collection\r\n * @param id - The document ID\r\n * @returns A promise that resolves when the operation completes\r\n * @throws {DatabaseError} If the operation fails\r\n */\r\n delete(collection: string, id: string): Promise<void>;\r\n \r\n /**\r\n * Finds documents matching the query options\r\n * @template TQuery - Type of the document being queried\r\n * @param collection - The name of the collection\r\n * @param options - Query options\r\n * @returns A promise that resolves to an array of matching documents\r\n * @throws {DatabaseError} If the operation fails\r\n */\r\n find<TQuery = T>(\r\n collection: string,\r\n options?: DatabaseAdapterQueryOptions<TQuery>\r\n ): Promise<TQuery[]>;\r\n\r\n /**\r\n * Finds a single document by ID with optional query options\r\n * @template TQuery - Type of the document being queried\r\n * @param collection - The name of the collection\r\n * @param id - The document ID\r\n * @param options - Additional query options\r\n * @returns A promise that resolves to the document, or null if not found\r\n * @throws {DatabaseError} If the operation fails\r\n */\r\n findOne<TQuery = T>(\r\n collection: string,\r\n id: string,\r\n options?: Omit<DatabaseAdapterQueryOptions<TQuery>, 'limit' | 'offset'>\r\n ): Promise<TQuery | null>;\r\n\r\n /**\r\n * Counts documents matching the query criteria\r\n * @template TQuery - Type of the document being queried\r\n * @param collection - The name of the collection\r\n * @param options - Query options\r\n * @returns A promise that resolves to the count of matching documents\r\n * @throws {DatabaseError} If the operation fails\r\n */\r\n count<TQuery = T>(\r\n collection: string,\r\n options?: Pick<DatabaseAdapterQueryOptions<TQuery>, 'where'>\r\n ): Promise<number>;\r\n \r\n // Real-time\r\n subscribe(collection: string, callback: (data: T[]) => void, options?: DatabaseAdapterQueryOptions<T>): () => void;\r\n \r\n // Transactions\r\n transaction<U>(updateFunction: (transaction: any) => Promise<U>): Promise<U>;\r\n}","/// <reference lib=\"dom\" />\n\nimport type { BaseAdapter } from \"./base.js\";\nimport { AdapterType } from \"./types.js\";\nimport { z } from 'zod';\n\n/**\n * Represents a file-like object that can be uploaded to storage\n */\nexport type FileLike = File | Blob | ArrayBuffer | Uint8Array | string;\n\n/**\n * Schema for validating file metadata\n */\nexport const fileMetadataSchema = z.object({\n /** Name of the file */\n name: z.string().min(1, 'File name is required'),\n \n /** Size of the file in bytes */\n size: z.number().int().nonnegative('File size must be a non-negative number'),\n \n /** MIME type of the file */\n type: z.string().min(1, 'File type is required'),\n \n /** Last modified timestamp */\n lastModified: z.number().int().positive().optional(),\n \n /** Custom metadata key-value pairs */\n customMetadata: z.record(z.string()).optional(),\n}).strict();\n\n/**\n * Represents metadata for a stored file\n */\nexport interface FileMetadata extends z.infer<typeof fileMetadataSchema> {}\n\n/**\n * Represents a file in storage with its metadata\n */\nexport interface StoredFile extends FileMetadata {\n /** Full path to the file in storage */\n path: string;\n \n /** Public URL to access the file */\n url: string;\n \n /** When the file was created */\n createdAt: Date;\n \n /** When the file was last updated */\n updatedAt: Date;\n}\n\n/**\n * Schema for validating stored file objects\n */\nexport const storedFileSchema = fileMetadataSchema.extend({\n path: z.string().min(1, 'File path is required'),\n url: z.string().url('Invalid URL'),\n createdAt: z.date(),\n updatedAt: z.date(),\n}).strict();\n\n/**\n * Options for file uploads\n */\nexport interface UploadOptions {\n /** Whether to make the file publicly accessible */\n public?: boolean;\n \n /** Custom metadata to store with the file */\n metadata?: Omit<FileMetadata, 'name' | 'size' | 'type'>;\n \n /** Content type override */\n contentType?: string;\n \n /** Cache control header value */\n cacheControl?: string;\n \n /** Content encoding */\n contentEncoding?: string;\n \n /** Content disposition header value */\n contentDisposition?: string;\n}\n\n/**\n * Schema for validating upload options\n */\nexport const uploadOptionsSchema = z.object({\n public: z.boolean().default(false),\n metadata: fileMetadataSchema.omit({ name: true, size: true, type: true }).optional(),\n contentType: z.string().optional(),\n cacheControl: z.string().optional(),\n contentEncoding: z.string().optional(),\n contentDisposition: z.string().optional(),\n}).strict();\n\n/**\n * Options for file downloads\n */\nexport interface DownloadOptions {\n /** Whether to get a temporary download URL */\n temporary?: boolean;\n \n /** Expiration time in seconds for temporary URLs */\n expiresIn?: number;\n \n /** Response content type override */\n responseContentType?: string;\n \n /** Response content disposition */\n responseContentDisposition?: string;\n}\n\n/**\n * Schema for validating download options\n */\nexport const downloadOptionsSchema = z.object({\n temporary: z.boolean().default(false),\n expiresIn: z.number().int().positive().optional(),\n responseContentType: z.string().optional(),\n responseContentDisposition: z.string().optional(),\n}).strict();\n\n/**\n * Options for listing files\n */\nexport interface ListOptions {\n /** Maximum number of results to return */\n maxResults?: number;\n \n /** Pagination token */\n pageToken?: string;\n \n /** Whether to include file metadata in results */\n includeMetadata?: boolean;\n}\n\n/**\n * Schema for validating list options\n */\nexport const listOptionsSchema = z.object({\n maxResults: z.number().int().positive().optional(),\n pageToken: z.string().optional(),\n includeMetadata: z.boolean().default(false),\n}).strict();\n\n/**\n * Result of a list operation\n */\nexport interface ListResult {\n /** Array of file paths or objects */\n items: (string | StoredFile)[];\n \n /** Pagination token for the next page */\n nextPageToken?: string;\n \n /** Whether there are more results */\n hasMore: boolean;\n}\n\n/**\n * Schema for validating list results\n */\nexport const listResultSchema = z.object({\n items: z.array(z.union([z.string(), storedFileSchema])),\n nextPageToken: z.string().optional(),\n hasMore: z.boolean(),\n}).strict();\n\n/**\n * Interface for storage adapters\n * @template TConfig - Type of the configuration object\n */\nexport interface StorageAdapter<TConfig = unknown> extends BaseAdapter<TConfig> {\n readonly type: AdapterType.STORAGE;\n \n /**\n * Uploads a file to storage\n * @param file - The file to upload\n * @param path - The destination path in storage\n * @param options - Upload options\n * @returns A promise that resolves to the public URL of the uploaded file\n * @throws {StorageError} If the upload fails\n */\n upload(\n file: FileLike, \n path: string, \n options?: UploadOptions\n ): Promise<string>;\n \n /**\n * Downloads a file from storage\n * @param path - The path to the file in storage\n * @param options - Download options\n * @returns A promise that resolves to the file data as a Blob\n * @throws {StorageError} If the download fails\n */\n download(\n path: string, \n options?: DownloadOptions\n ): Promise<Blob>;\n \n /**\n * Gets a download URL for a file\n * @param path - The path to the file in storage\n * @param options - Download options\n * @returns A promise that resolves to a download URL\n * @throws {StorageError} If the operation fails\n */\n getDownloadUrl(\n path: string, \n options?: Omit<DownloadOptions, 'temporary'>\n ): Promise<string>;\n \n /**\n * Deletes a file from storage\n * @param path - The path to the file in storage\n * @returns A promise that resolves when the operation completes\n * @throws {StorageError} If the deletion fails\n */\n delete(path: string): Promise<void>;\n \n /**\n * Lists files in a storage path\n * @param path - The directory path to list\n * @param options - List options\n * @returns A promise that resolves to a list of file paths or objects\n * @throws {StorageError} If the operation fails\n */\n list(\n path: string, \n options?: ListOptions\n ): Promise<ListResult>;\n \n /**\n * Gets metadata for a file\n * @param path - The path to the file in storage\n * @returns A promise that resolves to the file metadata\n * @throws {StorageError} If the operation fails\n */\n getMetadata(path: string): Promise<StoredFile>;\n \n /**\n * Updates file metadata\n * @param path - The path to the file in storage\n * @param metadata - The metadata to update\n * @returns A promise that resolves to the updated file metadata\n * @throws {StorageError} If the operation fails\n */\n updateMetadata(\n path: string, \n metadata: Partial<FileMetadata>\n ): Promise<StoredFile>;\n}","import type { AdapterType } from './types.js';\nimport type { z } from 'zod';\n\n/**\n * Base interface that all adapters must implement\n * @template TConfig - Type of the configuration object\n * @template TSchema - Type of the Zod schema for the configuration\n * @template TType - Type of the adapter (from AdapterType)\n */\nexport interface BaseAdapter<\n TConfig = unknown,\n TSchema extends z.ZodType<any, any, any> = z.ZodType<any, any, any>,\n TType extends AdapterType = AdapterType\n> {\n /** Unique identifier for the adapter instance */\n readonly id: string;\n \n /** Type of the adapter (auth, database, storage, etc.) */\n readonly type: TType;\n \n /** Current configuration of the adapter */\n readonly config: TConfig;\n \n /** Zod schema for validating the configuration */\n readonly schema: TSchema;\n \n /**\n * Initialize the adapter with the given configuration\n * @param config Configuration object for the adapter\n */\n init(config: TConfig): Promise<void>;\n \n /**\n * Clean up resources when the adapter is no longer needed\n */\n destroy(): Promise<void>;\n \n /**\n * Check if the adapter is properly initialized\n */\n isInitialized(): boolean;\n \n /**\n * Update the adapter's configuration\n * @param config Partial configuration to update\n */\n updateConfig(config: Partial<TConfig>): Promise<void>;\n \n /**\n * Validate the configuration against the schema\n * @param config Configuration to validate\n * @returns The validated configuration\n */\n validateConfig(config: unknown): TConfig;\n}\n\n/**\n * Adapter that can execute operations\n * @template TConfig - Type of the configuration object\n * @template TSchema - Zod schema for the configuration\n * @template TResult - Type of the result\n * @template TInput - Type of the input parameters\n */\nexport interface ExecutableAdapter<\n TConfig = unknown,\n TSchema extends z.ZodType = z.ZodType,\n TResult = unknown,\n TInput = unknown\n> extends BaseAdapter<TConfig, TSchema> {\n /**\n * Execute an operation with the given parameters\n