/** * Salesforce API Adapters * * This module provides testable, typed adapters for Salesforce APIs. * All adapters follow the Interface + Class pattern for DI/testability. * * @module adapters * * @example * ```typescript * import { createConnectionFacade, SoqlQueryAdapter } from './adapters'; * import { Org } from '@salesforce/core'; * * const org = await Org.create({ aliasOrUsername: 'myOrg' }); * const facade = createConnectionFacade(org.getConnection()); * const adapter = new SoqlQueryAdapter(facade); * * const result = await adapter.query('SELECT Id, Name FROM Account'); * ``` */ export { createConnectionFacade, validateConnection } from './connection-facade.js'; export type { IConnectionFacade, IToolingApi, ISObjectApi, ISObjectQueryBuilder, HttpRequest, ConnectionValidationResult, } from './connection-facade.js'; export type { QueryResult, DescribeSObjectResult, DescribeFieldResult, DescribeGlobalResult, DescribeGlobalSObjectResult, ExecuteAnonymousResult, PicklistEntry, ChildRelationship, RecordTypeInfo, ServiceResult, ServiceResultMetadata, AdapterErrorCode, } from './types.js'; export { createSuccessResult, createFailureResult, getCacheTtl, DEFAULT_CACHE_TTL, MINIMUM_API_VERSION, parseApiVersion, isApiVersionSupported, assertApiVersion, } from './types.js'; export { AdapterErrorCodes, mapSalesforceError, mapDmlInsertError, extractSalesforceErrorCode, ErrorCodeDescriptions, sanitizeSoqlIdentifier, escapeSoqlString, isOrgConnectivityError, } from './errors.js'; export { emitLifecycleEvent, createLifecycleEmitter, type AdapterLifecycleEvent, type LifecycleEventPayload, type LifecycleConfig, } from './lifecycle.js'; export { withRetry, createRetryWrapper, isTransientError, calculateBackoffDelay, DEFAULT_RETRY_CONFIG, type RetryConfig, } from './retry.js'; export { SoqlQueryAdapter, type ISoqlQueryAdapter, type SoqlQueryAdapterConfig } from './soql/index.js'; export { DEFAULT_CHUNK_SIZE, type ChunkOptions } from './soql/index.js'; export { CuneiformQueryBuilder, type ICuneiformQueryBuilder } from './soql/index.js'; export { RestApiAdapter, type IRestApiAdapter, type InsertRecordResult, type RestApiAdapterConfig, LruCache, } from './rest/index.js'; export { ToolingApiAdapter, type IToolingApiAdapter, type ToolingApiAdapterConfig, type CustomField, type ValidationRule, type TabDefinition, } from './tooling/index.js'; export { createMockConnection, createMockSoqlQueryAdapter, createMockRestApiAdapter, createMockToolingApiAdapter, type MockConnectionFacade, type CallRecord, type MockAdapterConfig, type MockAdapter, type MockConnectionConfig, } from './testing/index.js';