2026-01-20 16:21:11 -08:00
/ * *
* Brainy Integration Hub
*
* Connect Brainy to external tools with zero configuration :
* - Google Sheets ( two - way sync )
* - Excel / Power BI / Tableau ( OData 4.0 )
* - Real - time dashboards ( SSE streaming )
* - External webhooks ( push notifications )
*
2026-01-27 15:38:21 -08:00
* @example Enable integrations ( recommended )
2026-01-20 16:21:11 -08:00
* ` ` ` typescript
* import { Brainy } from '@soulcraft/brainy'
*
* const brain = new Brainy ( { integrations : true } )
* await brain . init ( )
*
* // Access the hub
* console . log ( brain . hub . endpoints )
* // { odata: '/odata', sheets: '/sheets', sse: '/events', webhooks: '/webhooks' }
*
* // Handle requests (Express, Hono, etc.)
* app . all ( '/odata/*' , async ( req , res ) = > {
* const response = await brain . hub . handleRequest ( req )
* res . status ( response . status ) . json ( response . body )
* } )
* ` ` `
* /
// ============================================================================
// Integration Hub (used internally by brain.hub)
// ============================================================================
export {
IntegrationHub ,
createIntegrationHub ,
type IntegrationHubConfig ,
type IntegrationRequest ,
type IntegrationResponse
} from './core/IntegrationHub.js'
// ============================================================================
// Core Infrastructure
// ============================================================================
export {
// Event system for real-time updates
EventBus ,
// Entity → rows/columns conversion
TabularExporter ,
// Base class for custom integrations
IntegrationBase ,
// Lazy-loading manager
IntegrationLoader ,
createIntegrationLoader ,
// Environment detection
detectEnvironment ,
// Integration catalog
INTEGRATION_CATALOG
} from './core/index.js'
// Types
export type {
HTTPIntegration ,
StreamingIntegration ,
IntegrationType ,
RuntimeEnvironment ,
IntegrationInfo ,
IntegrationLoaderConfig
} from './core/index.js'
export type {
BrainyEvent ,
EventFilter ,
EventHandler ,
EventSubscription ,
TabularRow ,
RelationTabularRow ,
TabularExporterConfig ,
IntegrationConfig ,
IntegrationHealthStatus ,
ODataQueryOptions ,
WebhookRegistration ,
WebhookDeliveryResult
} from './core/index.js'
// ============================================================================
// Individual Integrations
// ============================================================================
/ * *
* OData 4.0 Integration
*
* Connect Excel Power Query , Power BI , Tableau , and any OData client .
* /
export { ODataIntegration , type ODataConfig } from './odata/index.js'
/ * *
* Google Sheets Integration
*
* Two - way sync between Brainy and Google Sheets via Apps Script .
* /
export { GoogleSheetsIntegration , type GoogleSheetsConfig } from './sheets/index.js'
/ * *
* SSE Streaming Integration
*
* Real - time event streaming via Server - Sent Events .
* /
export { SSEIntegration , type SSEConfig } from './sse/index.js'
/ * *
* Webhook Integration
*
* Push events to external URLs with retry and signing .
* /
export { WebhookIntegration , type WebhookConfig } from './webhooks/index.js'
// ============================================================================
// OData Utilities (for advanced use)
// ============================================================================
export {
parseODataQuery ,
parseFilter ,
parseOrderBy ,
parseSelect ,
odataToFindParams ,
applyFilter ,
applySelect ,
applyOrderBy ,
applyPagination
} from './odata/ODataQueryParser.js'
export {
generateEdmx ,
generateMetadataJson ,
generateServiceDocument
} from './odata/EdmxGenerator.js'