UNPKG

@gftdcojp/gftd-orm

Version:

Enterprise-grade real-time data platform with ksqlDB, inspired by Supabase architecture

206 lines 7.19 kB
/** * GFTD ORM - Enterprise-grade real-time data platform * Inspired by Supabase architecture with ksqlDB backend */ // Re-export core types and functionality export * from './types'; // Re-export remaining modules export * from './realtime'; // config exports conflict with @gftdcojp/ksqldb-orm exports export { validateConfig, initializeConfig, getCoreConfig, getDatabaseConfig, getRealtimeConfig } from './config'; export * from './rate-limit'; export * from './browser-client'; // 🆕 NEW: Supabase-like Authentication & Security Features // @deprecated - 認証機能は @gftdcojp/auth パッケージに移行されました // export * from './anon-key-system'; export * from './supabase-like-client'; // 🔐 NEW: Auth0 Integration // @deprecated - 認証機能は @gftdcojp/auth パッケージに移行されました // export * from './auth0-integration'; // export * from './auth0-supabase-client'; // 🚀 NEW: Next.js Auth0 Integration // 注意: 認証関連のエクスポートは @gftdcojp/auth パッケージに移行されました // 下記の認証機能は @gftdcojp/auth からインポートしてください // React Hooks are exported separately due to JSX requirements // Note: For client-side usage, import from '@gftdcojp/gftd-orm/client' // import { useUser, UserProvider, withPageAuthRequired, withApiAuthRequired } from './nextjs-auth0-hooks'; // Mock implementations for ksqlDB functionality // @todo [P2] Replace with actual ksqlDB implementation // Assigned: Backend Team | Milestone: Q2 2025 | Impact: Core functionality const initializeKsqlDbClient = (config) => { console.log('[MOCK] ksqlDB client initialized:', config); }; const getKsqlConfig = () => ({ url: 'http://localhost:8088' }); const initializeSchemaRegistryClient = (config) => { console.log('[MOCK] Schema Registry client initialized:', config); }; const getSchemaRegistryConfig = () => ({ url: 'http://localhost:8081' }); import { createRealtime } from './realtime'; import { validateConfig, getCoreConfig, getDatabaseConfig, getRealtimeConfig } from './config'; import { log } from './utils/logger'; /** * 統合クライアント */ export class GftdOrmClient { constructor(config) { this.config = config; this.realtimeClient = null; this.initialized = false; } /** * クライアント初期化 */ async initialize() { if (this.initialized) { log.info('GFTD ORM Client already initialized'); return; } try { // ksqlDBクライアントを初期化 initializeKsqlDbClient(this.config.database.ksql); // Schema Registryクライアントを初期化 initializeSchemaRegistryClient(this.config.database.schemaRegistry); // Realtimeクライアントを初期化(設定がある場合) if (this.config.realtime) { this.realtimeClient = createRealtime(this.config.realtime); } this.initialized = true; log.success('GFTD ORM Client initialized successfully'); } catch (error) { log.failure('Failed to initialize GFTD ORM Client:', error); throw error; } } /** * ヘルスチェック */ async health() { const ksqlConfig = getKsqlConfig(); const schemaRegistryConfig = getSchemaRegistryConfig(); return { status: 'ok', version: '25.07.6', features: this.initialized ? ['database', 'schema-registry', 'realtime', 'audit', 'rate-limit'] : ['basic'], connections: { ksqldb: ksqlConfig ? 'connected' : 'disconnected', schemaRegistry: schemaRegistryConfig ? 'connected' : 'disconnected', realtime: this.realtimeClient ? 'connected' : 'disconnected', }, }; } /** * リアルタイムチャンネルを取得 */ channel(topic) { if (!this.realtimeClient) { throw new Error('Realtime client is not initialized. Please provide realtime configuration.'); } return this.realtimeClient.channel(topic); } /** * 接続状態を確認 */ isConnected() { return this.initialized; } /** * クライアントを閉じる */ disconnect() { if (this.realtimeClient) { this.realtimeClient.disconnect(); } this.initialized = false; log.info('GFTD ORM Client disconnected'); } } /** * 統合クライアント作成関数 */ export function createClient(config) { return new GftdOrmClient(config); } // Re-export commonly used functions for convenience // AuditLogManager is now re-exported from @gftdcojp/ksqldb-orm export { RateLimitManager } from './rate-limit'; /** * 設定の初期化と検証 */ export function init() { validateConfig(); log.success('GFTD ORM configuration validated'); } /** * ヘルスチェック(スタンドアロン) */ export async function healthCheck() { const core = getCoreConfig(); const database = getDatabaseConfig(); const realtime = getRealtimeConfig(); return { status: 'ok', version: '25.07.6', config: { core: !!core.url, database: !!database.ksql.url && !!database.schemaRegistry.url, realtime: !!realtime.url, }, }; } // 🌐 NEW: 翻訳機能 - Weblate統合 export * from './translator-client'; export { translator } from './translator-client'; // React Hooks for Translation export * from './hooks'; // 🔐 統一認証設定 (auth.gftd.ai ドメイン) export { UnifiedAuthManager, getUnifiedAuthManager, UnifiedAuthPresets, unifiedAuthRedirectMiddleware, } from './unified-auth-config'; // 🔐 認証機能 - @gftdcojp/auth パッケージからの再エクスポート // NOTE: @gftdcojp/auth パッケージが適切にビルドされたら以下のコメントを解除してください // Server-side Auth0 SDK // export { // getSession, // getAccessToken, // updateSession, // withMiddlewareAuthRequired, // auth0Middleware, // withApiAuthRequired, // handleAuth, // handleAuthLogin, // handleAuthLogout, // handleAuthCallback, // handleAuthMe, // createNextJsAuth0Client, // type Session, // type NextJsAuth0Config, // } from '@gftdcojp/auth/nextjs-auth0'; // Client-side React SDK // export { // useUser, // useAccessToken, // useLogout, // UserProvider, // withPageAuthRequired, // AuthenticatedLayout, // type UseUserReturn, // type UseAccessTokenReturn, // type LogoutFunction, // type UserProviderProps, // type AuthenticatedLayoutProps, // } from '@gftdcojp/auth/client'; // Components // export { // SafeAuthComponent, // } from '@gftdcojp/auth/components'; // Core Auth0 Integration // export { // Auth0Integration, // auth0, // type Auth0Config, // type Auth0Organization, // type Auth0OrganizationMember, // type Auth0OrganizationInvitation, // type Auth0User, // type Auth0ManagementResponse, // } from '@gftdcojp/auth'; //# sourceMappingURL=index.js.map