bypilot-business-signup-sdk 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-ARDHIAFU.cjs +811 -0
- package/dist/chunk-ARDHIAFU.cjs.map +1 -0
- package/dist/chunk-B3CUULGV.js +805 -0
- package/dist/chunk-B3CUULGV.js.map +1 -0
- package/dist/index-DzVvaEqu.d.cts +493 -0
- package/dist/index-DzVvaEqu.d.ts +493 -0
- package/dist/index.cjs +30 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +13 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/whatsapp.cjs +12 -0
- package/dist/whatsapp.cjs.map +1 -0
- package/dist/whatsapp.d.cts +1 -0
- package/dist/whatsapp.d.ts +1 -0
- package/dist/whatsapp.js +3 -0
- package/dist/whatsapp.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/TokenManager.ts","../src/core/EventEmitter.ts","../src/core/PopupManager.ts","../src/providers/BaseProvider.ts","../src/providers/whatsapp/WhatsAppProvider.ts"],"names":["error"],"mappings":"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","file":"chunk-ARDHIAFU.cjs","sourcesContent":["import type { OAuthToken, StorageStrategy } from './types';\n\n/**\n * Token yönetimi için storage wrapper\n */\nexport class TokenManager {\n private strategy: StorageStrategy;\n private memoryStorage: Map<string, string> = new Map();\n private storageKey: string;\n\n constructor(providerName: string, strategy: StorageStrategy = 'memory') {\n this.strategy = strategy;\n this.storageKey = `bypilot_${providerName}_token`;\n }\n\n /**\n * Token'ı storage'a kaydet\n */\n save(token: OAuthToken): void {\n const serialized = JSON.stringify(token);\n\n switch (this.strategy) {\n case 'localStorage':\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(this.storageKey, serialized);\n }\n break;\n case 'sessionStorage':\n if (typeof sessionStorage !== 'undefined') {\n sessionStorage.setItem(this.storageKey, serialized);\n }\n break;\n case 'memory':\n default:\n this.memoryStorage.set(this.storageKey, serialized);\n break;\n }\n }\n\n /**\n * Token'ı storage'dan getir\n */\n get(): OAuthToken | null {\n let serialized: string | null = null;\n\n switch (this.strategy) {\n case 'localStorage':\n if (typeof localStorage !== 'undefined') {\n serialized = localStorage.getItem(this.storageKey);\n }\n break;\n case 'sessionStorage':\n if (typeof sessionStorage !== 'undefined') {\n serialized = sessionStorage.getItem(this.storageKey);\n }\n break;\n case 'memory':\n default:\n serialized = this.memoryStorage.get(this.storageKey) ?? null;\n break;\n }\n\n if (!serialized) return null;\n\n try {\n return JSON.parse(serialized) as OAuthToken;\n } catch {\n return null;\n }\n }\n\n /**\n * Token'ı sil\n */\n clear(): void {\n switch (this.strategy) {\n case 'localStorage':\n if (typeof localStorage !== 'undefined') {\n localStorage.removeItem(this.storageKey);\n }\n break;\n case 'sessionStorage':\n if (typeof sessionStorage !== 'undefined') {\n sessionStorage.removeItem(this.storageKey);\n }\n break;\n case 'memory':\n default:\n this.memoryStorage.delete(this.storageKey);\n break;\n }\n }\n\n /**\n * Token'ın geçerli olup olmadığını kontrol et\n */\n isValid(): boolean {\n const token = this.get();\n if (!token) return false;\n\n if (token.expiresAt) {\n return Date.now() < token.expiresAt;\n }\n\n return true;\n }\n\n /**\n * Token'ın süresinin dolmasına kalan süre (ms)\n */\n getTimeUntilExpiry(): number | null {\n const token = this.get();\n if (!token?.expiresAt) return null;\n\n return Math.max(0, token.expiresAt - Date.now());\n }\n}\n","import type { SDKEventType, SDKEventListener } from './types';\n\n/**\n * SDK için basit event emitter\n */\nexport class EventEmitter {\n private listeners: Map<SDKEventType, Set<SDKEventListener>> = new Map();\n\n /**\n * Event listener ekle\n */\n on<T = unknown>(event: SDKEventType, listener: SDKEventListener<T>): () => void {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, new Set());\n }\n\n this.listeners.get(event)!.add(listener as SDKEventListener);\n\n // Unsubscribe fonksiyonu döndür\n return () => this.off(event, listener);\n }\n\n /**\n * Event listener kaldır\n */\n off<T = unknown>(event: SDKEventType, listener: SDKEventListener<T>): void {\n const eventListeners = this.listeners.get(event);\n if (eventListeners) {\n eventListeners.delete(listener as SDKEventListener);\n }\n }\n\n /**\n * Event tetikle\n */\n emit<T = unknown>(event: SDKEventType, data?: T): void {\n const eventListeners = this.listeners.get(event);\n if (eventListeners) {\n eventListeners.forEach(listener => {\n try {\n listener(data);\n } catch (error) {\n console.error(`[ByPilot SDK] Event listener error for ${event}:`, error);\n }\n });\n }\n }\n\n /**\n * Tek seferlik event listener\n */\n once<T = unknown>(event: SDKEventType, listener: SDKEventListener<T>): () => void {\n const onceListener: SDKEventListener<T> = (data) => {\n this.off(event, onceListener);\n listener(data);\n };\n\n return this.on(event, onceListener);\n }\n\n /**\n * Tüm listener'ları temizle\n */\n removeAllListeners(event?: SDKEventType): void {\n if (event) {\n this.listeners.delete(event);\n } else {\n this.listeners.clear();\n }\n }\n}\n","import type { PopupConfig } from './types';\n\n/**\n * OAuth popup yönetimi\n */\nexport class PopupManager {\n private popup: Window | null = null;\n private checkInterval: number | null = null;\n\n /**\n * Popup aç ve URL'e yönlendir\n */\n open(url: string, config: PopupConfig = {}): Window | null {\n const {\n width = 600,\n height = 700,\n left = window.screenX + (window.outerWidth - width) / 2,\n top = window.screenY + (window.outerHeight - height) / 2\n } = config;\n\n const features = [\n `width=${width}`,\n `height=${height}`,\n `left=${left}`,\n `top=${top}`,\n 'toolbar=no',\n 'menubar=no',\n 'scrollbars=yes',\n 'resizable=yes'\n ].join(',');\n\n this.popup = window.open(url, 'bypilot_oauth', features);\n\n return this.popup;\n }\n\n /**\n * Popup'ın kapanmasını bekle\n */\n waitForClose(): Promise<void> {\n return new Promise((resolve) => {\n if (!this.popup) {\n resolve();\n return;\n }\n\n this.checkInterval = window.setInterval(() => {\n if (!this.popup || this.popup.closed) {\n this.cleanup();\n resolve();\n }\n }, 100);\n });\n }\n\n /**\n * Popup'tan callback al (postMessage ile)\n */\n waitForCallback<T>(origin: string, timeout = 300000): Promise<T> {\n return new Promise((resolve, reject) => {\n const timeoutId = window.setTimeout(() => {\n cleanup();\n reject(new Error('OAuth callback timeout'));\n }, timeout);\n\n const messageHandler = (event: MessageEvent) => {\n if (event.origin !== origin) return;\n\n if (event.data?.type === 'bypilot_oauth_callback') {\n cleanup();\n resolve(event.data.payload as T);\n }\n };\n\n const cleanup = () => {\n window.clearTimeout(timeoutId);\n window.removeEventListener('message', messageHandler);\n this.cleanup();\n };\n\n window.addEventListener('message', messageHandler);\n\n // Popup kapanma kontrolü\n this.checkInterval = window.setInterval(() => {\n if (!this.popup || this.popup.closed) {\n cleanup();\n reject(new Error('OAuth popup closed by user'));\n }\n }, 100);\n });\n }\n\n /**\n * Popup'ı kapat ve temizle\n */\n close(): void {\n if (this.popup && !this.popup.closed) {\n this.popup.close();\n }\n this.cleanup();\n }\n\n private cleanup(): void {\n if (this.checkInterval) {\n window.clearInterval(this.checkInterval);\n this.checkInterval = null;\n }\n this.popup = null;\n }\n\n /**\n * Popup aktif mi?\n */\n isOpen(): boolean {\n return this.popup !== null && !this.popup.closed;\n }\n}\n","import { TokenManager, EventEmitter, PopupManager } from '../core';\nimport type {\n ProviderConfig,\n OAuthToken,\n AuthResult,\n PopupConfig,\n StorageStrategy\n} from '../core';\n\n/**\n * Tüm OAuth provider'ları için base class\n */\nexport abstract class BaseProvider extends EventEmitter {\n protected config: ProviderConfig;\n protected tokenManager: TokenManager;\n protected popupManager: PopupManager;\n\n /**\n * Provider adı (alt sınıflar override etmeli)\n */\n abstract readonly name: string;\n\n /**\n * OAuth authorization URL'i\n */\n protected abstract readonly authorizationEndpoint: string;\n\n constructor(config: ProviderConfig) {\n super();\n this.config = config;\n this.tokenManager = new TokenManager(\n this.constructor.name.toLowerCase(),\n config.storage ?? 'memory'\n );\n this.popupManager = new PopupManager();\n }\n\n /**\n * Authorization URL'i oluştur\n */\n protected abstract buildAuthorizationUrl(state: string): string;\n\n /**\n * Callback'i işle ve token al\n */\n protected abstract handleCallback(callbackData: Record<string, unknown>): Promise<AuthResult>;\n\n /**\n * Random state oluştur\n */\n protected generateState(): string {\n const array = new Uint8Array(32);\n crypto.getRandomValues(array);\n return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');\n }\n\n /**\n * Popup ile login başlat\n */\n async loginWithPopup(popupConfig?: PopupConfig): Promise<AuthResult> {\n this.emit('auth:start');\n\n const state = this.config.state ?? this.generateState();\n const authUrl = this.buildAuthorizationUrl(state);\n\n // State'i session'da sakla (CSRF koruması)\n sessionStorage.setItem(`bypilot_state_${this.name}`, state);\n\n try {\n this.popupManager.open(authUrl, popupConfig);\n\n // Callback bekle\n const callbackData = await this.popupManager.waitForCallback<Record<string, unknown>>(\n window.location.origin\n );\n\n // State doğrula\n const savedState = sessionStorage.getItem(`bypilot_state_${this.name}`);\n if (callbackData.state !== savedState) {\n throw new Error('State mismatch - possible CSRF attack');\n }\n\n const result = await this.handleCallback(callbackData);\n\n if (result.success && result.token) {\n this.tokenManager.save(result.token);\n this.emit('auth:success', result);\n } else {\n this.emit('auth:error', result);\n }\n\n return result;\n } catch (error) {\n const errorResult: AuthResult = {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error'\n };\n\n if (error instanceof Error && error.message.includes('closed by user')) {\n this.emit('auth:cancel');\n } else {\n this.emit('auth:error', errorResult);\n }\n\n return errorResult;\n } finally {\n sessionStorage.removeItem(`bypilot_state_${this.name}`);\n }\n }\n\n /**\n * Redirect ile login başlat\n */\n loginWithRedirect(): void {\n this.emit('auth:start');\n\n const state = this.config.state ?? this.generateState();\n const authUrl = this.buildAuthorizationUrl(state);\n\n // State'i sakla\n sessionStorage.setItem(`bypilot_state_${this.name}`, state);\n\n window.location.href = authUrl;\n }\n\n /**\n * Redirect callback'ini işle (sayfa yüklendiğinde çağrılmalı)\n */\n async handleRedirectCallback(): Promise<AuthResult | null> {\n const urlParams = new URLSearchParams(window.location.search);\n const code = urlParams.get('code');\n const state = urlParams.get('state');\n const error = urlParams.get('error');\n\n if (!code && !error) {\n return null; // Callback değil\n }\n\n // State doğrula\n const savedState = sessionStorage.getItem(`bypilot_state_${this.name}`);\n if (state !== savedState) {\n const result: AuthResult = {\n success: false,\n error: 'state_mismatch',\n errorDescription: 'State mismatch - possible CSRF attack'\n };\n this.emit('auth:error', result);\n return result;\n }\n\n sessionStorage.removeItem(`bypilot_state_${this.name}`);\n\n if (error) {\n const result: AuthResult = {\n success: false,\n error,\n errorDescription: urlParams.get('error_description') ?? undefined\n };\n this.emit('auth:error', result);\n return result;\n }\n\n try {\n const callbackData: Record<string, unknown> = {};\n urlParams.forEach((value, key) => {\n callbackData[key] = value;\n });\n\n const result = await this.handleCallback(callbackData);\n\n if (result.success && result.token) {\n this.tokenManager.save(result.token);\n this.emit('auth:success', result);\n } else {\n this.emit('auth:error', result);\n }\n\n // URL'den parametreleri temizle\n window.history.replaceState({}, document.title, window.location.pathname);\n\n return result;\n } catch (error) {\n const errorResult: AuthResult = {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error'\n };\n this.emit('auth:error', errorResult);\n return errorResult;\n }\n }\n\n /**\n * Mevcut token'ı getir\n */\n getToken(): OAuthToken | null {\n return this.tokenManager.get();\n }\n\n /**\n * Access token'ı getir\n */\n getAccessToken(): string | null {\n return this.tokenManager.get()?.accessToken ?? null;\n }\n\n /**\n * Token geçerli mi?\n */\n isAuthenticated(): boolean {\n return this.tokenManager.isValid();\n }\n\n /**\n * Logout - token'ı temizle\n */\n logout(): void {\n this.tokenManager.clear();\n this.emit('token:expire');\n }\n\n /**\n * Storage stratejisini değiştir\n */\n setStorageStrategy(strategy: StorageStrategy): void {\n const currentToken = this.tokenManager.get();\n this.tokenManager = new TokenManager(this.name, strategy);\n if (currentToken) {\n this.tokenManager.save(currentToken);\n }\n }\n}\n","import { BaseProvider } from '../BaseProvider';\nimport type { AuthResult, OAuthToken, PopupConfig } from '../../core';\nimport type {\n WhatsAppConfig,\n WhatsAppAuthResponse,\n WhatsAppSessionInfo,\n FBLoginResponse\n} from './types';\n\n/**\n * WhatsApp Embedded Signup Provider\n *\n * Meta'nın WhatsApp Business Platform için Embedded Signup akışını yönetir.\n * Facebook SDK kullanarak OAuth 2.0 akışı gerçekleştirir.\n *\n * @example\n * ```typescript\n * const whatsapp = new WhatsAppProvider({\n * clientId: 'YOUR_FB_APP_ID',\n * configId: 'YOUR_CONFIG_ID',\n * redirectUri: 'https://yoursite.com/callback'\n * });\n *\n * // Event listener\n * whatsapp.on('auth:success', (result) => {\n * console.log('Authenticated!', result);\n * });\n *\n * // Login başlat\n * await whatsapp.loginWithPopup();\n * ```\n */\nexport class WhatsAppProvider extends BaseProvider {\n readonly name = 'whatsapp';\n protected readonly authorizationEndpoint = 'https://www.facebook.com/v24.0/dialog/oauth';\n\n private fbSDKLoaded = false;\n private fbSDKLoadPromise: Promise<void> | null = null;\n private whatsappConfig: WhatsAppConfig;\n\n constructor(config: WhatsAppConfig) {\n super(config);\n this.whatsappConfig = config;\n }\n\n /**\n * Facebook SDK'yı yükle\n */\n private async loadFacebookSDK(): Promise<void> {\n if (this.fbSDKLoaded && window.FB) {\n return;\n }\n\n if (this.fbSDKLoadPromise) {\n return this.fbSDKLoadPromise;\n }\n\n this.fbSDKLoadPromise = new Promise((resolve, reject) => {\n // Zaten yüklü mü kontrol et\n if (window.FB) {\n this.fbSDKLoaded = true;\n this.initFacebookSDK();\n resolve();\n return;\n }\n\n // SDK script'ini ekle\n const script = document.createElement('script');\n script.id = 'facebook-jssdk';\n script.src = `https://connect.facebook.net/en_US/sdk.js`;\n script.async = true;\n script.defer = true;\n\n window.fbAsyncInit = () => {\n this.initFacebookSDK();\n this.fbSDKLoaded = true;\n resolve();\n };\n\n script.onerror = () => {\n reject(new Error('Failed to load Facebook SDK'));\n };\n\n // Mevcut script varsa kaldır\n const existingScript = document.getElementById('facebook-jssdk');\n if (existingScript) {\n existingScript.remove();\n }\n\n document.head.appendChild(script);\n\n // Timeout\n setTimeout(() => {\n if (!this.fbSDKLoaded) {\n reject(new Error('Facebook SDK load timeout'));\n }\n }, 10000);\n });\n\n return this.fbSDKLoadPromise;\n }\n\n /**\n * Facebook SDK'yı başlat\n */\n private initFacebookSDK(): void {\n if (!window.FB) return;\n\n window.FB.init({\n appId: this.whatsappConfig.clientId,\n cookie: true,\n xfbml: true,\n version: this.whatsappConfig.sdkVersion ?? 'v24.0'\n });\n }\n\n /**\n * Authorization URL oluştur (redirect flow için)\n */\n protected buildAuthorizationUrl(state: string): string {\n const params = new URLSearchParams({\n client_id: this.whatsappConfig.clientId,\n redirect_uri: this.whatsappConfig.redirectUri,\n state,\n response_type: 'code',\n config_id: this.whatsappConfig.configId,\n scope: this.whatsappConfig.scope ?? 'whatsapp_business_management,whatsapp_business_messaging'\n });\n\n return `${this.authorizationEndpoint}?${params.toString()}`;\n }\n\n /**\n * Callback'i işle\n */\n protected async handleCallback(callbackData: Record<string, unknown>): Promise<AuthResult> {\n const code = callbackData.code as string | undefined;\n const error = callbackData.error as string | undefined;\n\n if (error) {\n return {\n success: false,\n error,\n errorDescription: callbackData.error_description as string | undefined\n };\n }\n\n if (!code) {\n return {\n success: false,\n error: 'missing_code',\n errorDescription: 'Authorization code not found in callback'\n };\n }\n\n // Not: Token exchange backend'de yapılmalı (client secret gerekli)\n // Frontend'de sadece code döndürüyoruz\n return {\n success: true,\n raw: { code },\n token: {\n accessToken: code, // Bu aslında code, backend'de token'a çevrilmeli\n tokenType: 'authorization_code'\n }\n };\n }\n\n /**\n * WhatsApp Embedded Signup popup ile başlat\n *\n * Facebook SDK kullanarak native popup deneyimi sağlar.\n * Session info message event'i ile WABA ID, Phone Number ID ve access token alır.\n */\n override async loginWithPopup(_popupConfig?: PopupConfig): Promise<AuthResult> {\n this.emit('auth:start');\n\n try {\n await this.loadFacebookSDK();\n\n if (!window.FB) {\n throw new Error('Facebook SDK not available');\n }\n\n // Session info'yu dinle (popup'tan önce başlat)\n const sessionInfoPromise = this.waitForSessionInfo();\n\n const response = await this.launchEmbeddedSignup();\n\n // Kullanıcı yetkilendirmeyi reddetti\n if (response.status === 'not_authorized') {\n this.emit('auth:cancel');\n return {\n success: false,\n error: 'not_authorized',\n errorDescription: 'User did not authorize the app'\n };\n }\n\n // Code-based flow: authResponse.code veya session info'dan token al\n const authResponse = response.authResponse;\n\n // Session info'yu bekle (5 saniye timeout)\n let sessionInfo: WhatsAppSessionInfo | null = null;\n try {\n sessionInfo = await Promise.race([\n sessionInfoPromise,\n new Promise<null>((resolve) => setTimeout(() => resolve(null), 5000))\n ]);\n } catch {\n // Session info alınamadı, devam et\n }\n\n // Token oluştur: session info'dan veya authResponse'dan\n let token: OAuthToken;\n\n if (sessionInfo?.accessToken) {\n // Session info'dan access token al (tercih edilen yöntem)\n token = {\n accessToken: sessionInfo.accessToken,\n tokenType: 'bearer',\n scope: this.whatsappConfig.scope\n };\n\n // Session info'yu kaydet\n this.lastSessionInfo = sessionInfo;\n } else if (authResponse?.code) {\n // Authorization code döndü (backend'de token'a çevrilmeli)\n token = {\n accessToken: authResponse.code,\n tokenType: 'authorization_code'\n };\n } else if (authResponse?.accessToken) {\n // Doğrudan access token döndü\n token = this.buildToken(authResponse);\n } else {\n // Hiçbir token/code alınamadı\n return {\n success: false,\n error: 'no_token',\n errorDescription: 'No access token or authorization code received'\n };\n }\n\n this.tokenManager.save(token);\n\n const result: AuthResult = {\n success: true,\n token,\n raw: {\n ...(authResponse as unknown as Record<string, unknown>),\n sessionInfo\n }\n };\n\n this.emit('auth:success', result);\n return result;\n\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n\n if (errorMessage.includes('closed') || errorMessage.includes('cancel')) {\n this.emit('auth:cancel');\n } else {\n this.emit('auth:error', { error: errorMessage });\n }\n\n return {\n success: false,\n error: errorMessage\n };\n }\n }\n\n /**\n * Session info için message event bekle\n */\n private waitForSessionInfo(): Promise<WhatsAppSessionInfo> {\n return new Promise((resolve) => {\n const handler = (event: MessageEvent) => {\n if (\n event.origin !== 'https://www.facebook.com' &&\n event.origin !== 'https://web.facebook.com'\n ) {\n return;\n }\n\n try {\n const data = JSON.parse(event.data);\n\n if (data.type === 'WA_EMBEDDED_SIGNUP') {\n window.removeEventListener('message', handler);\n\n const sessionInfo: WhatsAppSessionInfo = {\n accessToken: data.data?.access_token ?? '',\n phoneNumberId: data.data?.phone_number_id,\n wabaId: data.data?.waba_id,\n phoneNumber: data.data?.phone_number,\n businessId: data.data?.business_id\n };\n\n resolve(sessionInfo);\n }\n } catch {\n // JSON parse error, ignore\n }\n };\n\n window.addEventListener('message', handler);\n });\n }\n\n /**\n * Son alınan session info\n */\n private lastSessionInfo: WhatsAppSessionInfo | null = null;\n\n /**\n * Son session info'yu al\n */\n getLastSessionInfo(): WhatsAppSessionInfo | null {\n return this.lastSessionInfo;\n }\n\n /**\n * Embedded Signup akışını başlat\n */\n private launchEmbeddedSignup(): Promise<FBLoginResponse> {\n return new Promise((resolve) => {\n const extras: Record<string, unknown> = {\n ...(this.whatsappConfig.extras ?? {}),\n featureType: this.whatsappConfig.extras?.featureType ?? 'whatsapp_embedded_signup',\n sessionInfoVersion: this.whatsappConfig.extras?.sessionInfoVersion ?? 3\n };\n\n // Solution ID varsa ekle\n if (this.whatsappConfig.solutionId) {\n extras.solutionID = this.whatsappConfig.solutionId;\n }\n\n window.FB!.login(\n (response) => resolve(response),\n {\n config_id: this.whatsappConfig.configId,\n response_type: 'code',\n override_default_response_type: true,\n extras\n }\n );\n });\n }\n\n /**\n * Auth response'dan token oluştur\n */\n private buildToken(authResponse: WhatsAppAuthResponse): OAuthToken {\n return {\n accessToken: authResponse.accessToken ?? '',\n tokenType: 'bearer',\n expiresAt: authResponse.expiresIn\n ? Date.now() + authResponse.expiresIn * 1000\n : undefined,\n scope: this.whatsappConfig.scope\n };\n }\n\n /**\n * Session info al (Embedded Signup sonrası)\n *\n * Facebook SDK message event'i ile session bilgilerini alır\n */\n getSessionInfoListener(callback: (info: WhatsAppSessionInfo) => void): () => void {\n const handler = (event: MessageEvent) => {\n if (\n event.origin !== 'https://www.facebook.com' &&\n event.origin !== 'https://web.facebook.com'\n ) {\n return;\n }\n\n try {\n const data = JSON.parse(event.data);\n\n if (data.type === 'WA_EMBEDDED_SIGNUP') {\n const sessionInfo: WhatsAppSessionInfo = {\n accessToken: data.data?.access_token ?? '',\n phoneNumberId: data.data?.phone_number_id,\n wabaId: data.data?.waba_id,\n phoneNumber: data.data?.phone_number\n };\n\n callback(sessionInfo);\n }\n } catch {\n // JSON parse error, ignore\n }\n };\n\n window.addEventListener('message', handler);\n\n return () => window.removeEventListener('message', handler);\n }\n\n /**\n * Login durumunu kontrol et\n */\n async checkLoginStatus(): Promise<FBLoginResponse | null> {\n try {\n await this.loadFacebookSDK();\n\n if (!window.FB) return null;\n\n return new Promise((resolve) => {\n window.FB!.getLoginStatus((response) => {\n resolve(response);\n });\n });\n } catch {\n return null;\n }\n }\n\n /**\n * Facebook'tan logout\n */\n override logout(): void {\n super.logout();\n\n if (window.FB) {\n try {\n window.FB.logout();\n } catch {\n // Ignore errors\n }\n }\n }\n\n /**\n * Graph API çağrısı yap (Facebook SDK kullanarak)\n *\n * @param path - API endpoint (örn: 'me' veya 'v24.0/me')\n * @param method - HTTP method\n * @param params - Query/body parametreleri\n */\n async graphAPI<T = unknown>(\n path: string,\n method: 'GET' | 'POST' | 'DELETE' = 'GET',\n params?: Record<string, unknown>\n ): Promise<T> {\n await this.loadFacebookSDK();\n\n if (!window.FB) {\n throw new Error('Facebook SDK not available');\n }\n\n // Path'e version ekle (eğer yoksa)\n const version = this.whatsappConfig.graphApiVersion ?? 'v24.0';\n const versionedPath = path.startsWith('v') || path.startsWith('/v')\n ? path\n : `${version}/${path}`;\n\n return new Promise((resolve, reject) => {\n const accessToken = this.getAccessToken();\n\n window.FB!.api(\n versionedPath,\n method,\n { ...params, access_token: accessToken },\n (response: unknown) => {\n const resp = response as Record<string, unknown>;\n if (resp.error) {\n reject(new Error((resp.error as Record<string, string>).message ?? 'Graph API error'));\n } else {\n resolve(response as T);\n }\n }\n );\n });\n }\n\n /**\n * WhatsApp Cloud API'ye doğrudan HTTP çağrısı yap\n *\n * @param endpoint - API endpoint (örn: '123456/messages')\n * @param method - HTTP method\n * @param body - Request body\n */\n async whatsappAPI<T = unknown>(\n endpoint: string,\n method: 'GET' | 'POST' | 'DELETE' = 'GET',\n body?: Record<string, unknown>\n ): Promise<T> {\n const accessToken = this.getAccessToken();\n const version = this.whatsappConfig.graphApiVersion ?? 'v24.0';\n\n const url = `https://graph.facebook.com/${version}/${endpoint}`;\n\n const options: RequestInit = {\n method,\n headers: {\n 'Authorization': `Bearer ${accessToken}`,\n 'Content-Type': 'application/json'\n }\n };\n\n if (body && (method === 'POST' || method === 'DELETE')) {\n options.body = JSON.stringify(body);\n }\n\n const response = await fetch(url, options);\n\n if (!response.ok) {\n const error = await response.json().catch(() => ({ message: 'Unknown error' }));\n throw new Error(error.message || `HTTP ${response.status}`);\n }\n\n return response.json() as Promise<T>;\n }\n\n /**\n * Graph API version'unu al\n */\n getGraphApiVersion(): string {\n return this.whatsappConfig.graphApiVersion ?? 'v24.0';\n }\n}\n"]}
|