@yourgpt/widget-web-sdk
Version:
Official YourGPT SDK for JavaScript/TypeScript and React applications
1 lines • 62.7 kB
Source Map (JSON)
{"version":3,"sources":["../../src/types/core.ts","../../src/utils/index.ts","../../src/core/YourGPT.ts","../../src/react/hooks/useYourGPT.ts","../../src/react/hooks/useYourGPTChatbot.ts","../../src/react/hooks/useAIActions.ts","../../src/react/components/YourGPTProvider.tsx","../../src/react/components/YourGPTWidget.tsx","../../src/react/index.ts"],"names":["useState","useRef","useEffect","useCallback","isBrowser","useYourGPT","jsx"],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Core Types for YourGPT SDK\n */\n\nimport { WidgetRenderModeE } from \"./enum\";\n\n// Core SDK Configuration\nexport interface YourGPTConfig {\n widgetId: string;\n endpoint?: string;\n autoLoad?: boolean;\n debug?: boolean;\n whitelabel?: boolean;\n mode?: WidgetRenderModeE;\n}\n\n// Widget State\nexport interface WidgetState {\n isOpen: boolean;\n isVisible: boolean;\n isConnected: boolean;\n isLoaded: boolean;\n lastMessageId?: string;\n messageCount: number;\n connectionRetries: number;\n}\n\n// Event Types\nexport type EventHandler<T = any> = (data: T) => void;\nexport type EventUnsubscriber = () => void;\n\n// Error Types\nexport class YourGPTError extends Error {\n constructor(message: string, public code?: string) {\n super(message);\n this.name = \"YourGPTError\";\n }\n}\n\n// Utility Types\nexport type DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\nexport type RequiredKeys<T, K extends keyof T> = T & Required<Pick<T, K>>;\n","/**\n * YourGPT SDK Utilities\n */\n\nimport { YourGPTError } from '../types';\n\n/**\n * Check if we're in a browser environment\n */\nexport const isBrowser = (): boolean => {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n};\n\n/**\n * Check if we're in a development environment\n */\nexport const isDevelopment = (): boolean => {\n return typeof process !== 'undefined' && process.env?.NODE_ENV === 'development';\n};\n\n/**\n * Create a debug logger that only logs in development\n */\nexport const createDebugLogger = (namespace: string) => {\n return {\n log: (message: string, ...args: any[]) => {\n if (isDevelopment()) {\n console.log(`[YourGPT SDK:${namespace}] ${message}`, ...args);\n }\n },\n warn: (message: string, ...args: any[]) => {\n if (isDevelopment()) {\n console.warn(`[YourGPT SDK:${namespace}] ${message}`, ...args);\n }\n },\n error: (message: string, ...args: any[]) => {\n if (isDevelopment()) {\n console.error(`[YourGPT SDK:${namespace}] ${message}`, ...args);\n }\n }\n };\n};\n\n/**\n * Wait for a condition to be true\n */\nexport const waitFor = async (\n condition: () => boolean,\n timeout: number = 5000,\n interval: number = 100\n): Promise<void> => {\n const start = Date.now();\n \n while (!condition()) {\n if (Date.now() - start > timeout) {\n throw new YourGPTError(`Timeout after ${timeout}ms waiting for condition`);\n }\n await new Promise(resolve => setTimeout(resolve, interval));\n }\n};\n\n/**\n * Retry a function with exponential backoff\n */\nexport const withRetry = async <T>(\n operation: () => Promise<T>,\n maxRetries: number = 3,\n baseDelay: number = 1000\n): Promise<T> => {\n let lastError: Error;\n \n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n try {\n return await operation();\n } catch (error) {\n lastError = error as Error;\n \n if (attempt === maxRetries) {\n throw lastError;\n }\n \n // Exponential backoff\n const delay = baseDelay * Math.pow(2, attempt);\n await new Promise(resolve => setTimeout(resolve, delay));\n }\n }\n \n throw lastError!;\n};\n\n/**\n * Deep merge objects\n */\nexport const deepMerge = <T extends Record<string, any>>(\n target: T,\n source: Partial<T>\n): T => {\n const result = { ...target };\n \n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n if (\n typeof source[key] === 'object' &&\n source[key] !== null &&\n !Array.isArray(source[key]) &&\n typeof result[key] === 'object' &&\n result[key] !== null &&\n !Array.isArray(result[key])\n ) {\n result[key] = deepMerge(result[key], source[key] as any);\n } else {\n result[key] = source[key] as any;\n }\n }\n }\n \n return result;\n};\n\n/**\n * Generate a unique ID\n */\nexport const generateId = (): string => {\n return Math.random().toString(36).substring(2, 15) + \n Math.random().toString(36).substring(2, 15);\n};\n\n/**\n * Validate widget ID format\n */\nexport const validateWidgetId = (widgetId: string): boolean => {\n // UUID format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\n const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n return uuidRegex.test(widgetId);\n};\n\n/**\n * Validate URL format\n */\nexport const validateUrl = (url: string): boolean => {\n try {\n new URL(url);\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Sanitize HTML content\n */\nexport const sanitizeHtml = (html: string): string => {\n if (!isBrowser()) return html;\n \n const div = document.createElement('div');\n div.textContent = html;\n return div.innerHTML;\n};\n\n/**\n * Debounce function\n */\nexport const debounce = <T extends (...args: any[]) => any>(\n func: T,\n wait: number\n): ((...args: Parameters<T>) => void) => {\n let timeout: NodeJS.Timeout | null = null;\n \n return (...args: Parameters<T>) => {\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => func(...args), wait);\n };\n};\n\n/**\n * Throttle function\n */\nexport const throttle = <T extends (...args: any[]) => any>(\n func: T,\n wait: number\n): ((...args: Parameters<T>) => void) => {\n let lastCallTime = 0;\n \n return (...args: Parameters<T>) => {\n const now = Date.now();\n if (now - lastCallTime >= wait) {\n lastCallTime = now;\n func(...args);\n }\n };\n};\n\n/**\n * Check if element is in viewport\n */\nexport const isInViewport = (element: Element): boolean => {\n if (!isBrowser()) return false;\n \n const rect = element.getBoundingClientRect();\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n );\n};\n\n/**\n * Load external script\n */\nexport const loadScript = (src: string, async: boolean = true): Promise<void> => {\n return new Promise((resolve, reject) => {\n if (!isBrowser()) {\n reject(new YourGPTError('Cannot load script in non-browser environment'));\n return;\n }\n \n // Check if script already exists\n if (document.querySelector(`script[src=\"${src}\"]`)) {\n resolve();\n return;\n }\n \n const script = document.createElement('script');\n script.src = src;\n script.async = async;\n \n script.onload = () => resolve();\n script.onerror = () => reject(new YourGPTError(`Failed to load script: ${src}`));\n \n document.head.appendChild(script);\n });\n};\n\n/**\n * Load external CSS\n */\nexport const loadCSS = (href: string): Promise<void> => {\n return new Promise((resolve, reject) => {\n if (!isBrowser()) {\n reject(new YourGPTError('Cannot load CSS in non-browser environment'));\n return;\n }\n \n // Check if CSS already exists\n if (document.querySelector(`link[href=\"${href}\"]`)) {\n resolve();\n return;\n }\n \n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.href = href;\n \n link.onload = () => resolve();\n link.onerror = () => reject(new YourGPTError(`Failed to load CSS: ${href}`));\n \n document.head.appendChild(link);\n });\n};\n\n/**\n * Event emitter utility\n */\nexport class EventEmitter<T extends Record<string, any>> {\n private events: { [K in keyof T]?: Array<(data: T[K]) => void> } = {};\n \n on<K extends keyof T>(event: K, callback: (data: T[K]) => void): () => void {\n if (!this.events[event]) {\n this.events[event] = [];\n }\n \n this.events[event]!.push(callback);\n \n // Return unsubscribe function\n return () => {\n this.off(event, callback);\n };\n }\n \n off<K extends keyof T>(event: K, callback?: (data: T[K]) => void): void {\n if (!this.events[event]) return;\n \n if (callback) {\n this.events[event] = this.events[event]!.filter(cb => cb !== callback);\n } else {\n delete this.events[event];\n }\n }\n \n emit<K extends keyof T>(event: K, data: T[K]): void {\n if (!this.events[event]) return;\n \n this.events[event]!.forEach(callback => {\n try {\n callback(data);\n } catch (error) {\n console.error(`Error in event handler for ${String(event)}:`, error);\n }\n });\n }\n \n removeAllListeners(): void {\n this.events = {};\n }\n}","/**\n * YourGPT Core SDK\n */\n\nimport { YourGPTConfig, YourGPTError, WidgetState, EventHandler, EventUnsubscriber } from \"../types/core\";\n\nimport { ChatbotAPI, AIActionsAPI, MessageData, EscalationData, SessionData, VisitorData, ContactData, GameOptions, AIActionHandler } from \"../types\";\n\nimport { isBrowser, createDebugLogger, validateWidgetId, validateUrl, loadScript, waitFor, EventEmitter } from \"../utils\";\nimport { WidgetRenderModeE } from \"../types/enum\";\n\ninterface YourGPTEvents {\n stateChange: WidgetState;\n init: void;\n messageReceived: MessageData;\n escalatedToHuman: EscalationData;\n widgetPopup: boolean;\n}\n\n/**\n * Main YourGPT SDK class\n */\nclass YourGPTSDK extends EventEmitter<YourGPTEvents> {\n private static instance: YourGPTSDK | null = null;\n private config: YourGPTConfig | null = null;\n private isInitialized = false;\n private logger = createDebugLogger(\"Core\");\n private state: WidgetState = {\n isOpen: false,\n isVisible: true,\n isConnected: false,\n isLoaded: false,\n messageCount: 0,\n connectionRetries: 0,\n };\n private aiActionHandlers = new Map<string, AIActionHandler>();\n\n private constructor() {\n super();\n this.setupGlobalAPI();\n }\n\n /**\n * Get singleton instance\n */\n public static getInstance(): YourGPTSDK {\n if (!YourGPTSDK.instance) {\n YourGPTSDK.instance = new YourGPTSDK();\n }\n return YourGPTSDK.instance;\n }\n\n /**\n * Initialize the SDK\n */\n public async init(config: YourGPTConfig): Promise<YourGPTSDK> {\n window.YGC_WIDGET_RENDER_MODE = config.mode || WidgetRenderModeE.floating;\n\n if (this.isInitialized) {\n this.logger.warn(\"SDK already initialized\");\n return this;\n }\n\n // Validate configuration\n this.validateConfig(config);\n\n this.config = config;\n this.logger.log(\"Initializing SDK with config:\", config);\n\n // Set up global variables\n this.setupGlobalVariables();\n\n // Load widget if auto-load is enabled\n if (config.autoLoad !== false) {\n await this.loadWidget();\n }\n\n this.isInitialized = true;\n this.logger.log(\"SDK initialized successfully\");\n\n return this;\n }\n\n /**\n * Validate configuration\n */\n private validateConfig(config: YourGPTConfig): void {\n if (!config.widgetId) {\n throw new YourGPTError(\"Widget ID is required\", \"MISSING_WIDGET_ID\");\n }\n\n if (!validateWidgetId(config.widgetId)) {\n throw new YourGPTError(\"Invalid widget ID format\", \"INVALID_WIDGET_ID\");\n }\n\n if (config.endpoint && !validateUrl(config.endpoint)) {\n throw new YourGPTError(\"Invalid endpoint URL\", \"INVALID_ENDPOINT\");\n }\n }\n\n /**\n * Set up global variables\n */\n private setupGlobalVariables(): void {\n if (!isBrowser()) return;\n\n window.YOURGPT_WIDGET_UID = this.config!.widgetId;\n\n if (!window.$yourgptChatbot) {\n window.$yourgptChatbot = {};\n }\n\n window.$yourgptChatbot.WIDGET_ENDPOINT = this.getEndpoint();\n }\n\n /**\n * Get endpoint URL\n */\n private getEndpoint(): string {\n if (this.config?.endpoint) {\n return this.config.endpoint;\n }\n\n // Default endpoints\n return this.config?.whitelabel ? \"https://widget.d4ai.chat\" : \"\";\n }\n\n /**\n * Load widget assets\n */\n private async loadWidget(): Promise<void> {\n if (!isBrowser()) {\n throw new YourGPTError(\"Cannot load widget in non-browser environment\", \"NOT_BROWSER\");\n }\n\n const endpoint = this.getEndpoint();\n\n try {\n // Create root container\n this.createRootContainer();\n\n // Load JavaScript\n await loadScript(`${endpoint}/chatbot.js`);\n\n // Wait for widget to be ready\n await waitFor(() => this.isWidgetReady(), 10000);\n\n this.updateState({ isLoaded: true });\n this.logger.log(\"Widget loaded successfully\");\n } catch (error) {\n this.logger.error(\"Failed to load widget:\", error);\n throw new YourGPTError(\"Failed to load widget\", \"WIDGET_LOAD_FAILED\");\n }\n }\n\n /**\n * Create root container for widget\n */\n private createRootContainer(): void {\n if (document.getElementById(\"yourgpt_root\")) {\n return; // Already exists\n }\n\n const root = document.createElement(\"div\");\n root.id = \"yourgpt_root\";\n root.style.cssText = `\n position: fixed;\n z-index: 99999;\n `;\n\n document.body.appendChild(root);\n }\n\n /**\n * Check if widget is ready\n */\n private isWidgetReady(): boolean {\n return Boolean(window.$yourgptChatbot?.execute && window.$yourgptChatbot?.on && window.$yourgptChatbot?.set);\n }\n\n /**\n * Set up global API for backwards compatibility\n */\n private setupGlobalAPI(): void {\n if (!isBrowser()) return;\n\n // Initialize command queue\n if (!window.$yourgptChatbot) {\n window.$yourgptChatbot = {\n q: [],\n execute: (action: string, ...args: any[]) => {\n window.$yourgptChatbot!.q!.push([\"execute\", action, ...args]);\n },\n on: (event: string, callback: Function) => {\n window.$yourgptChatbot!.q!.push([\"on\", event, callback]);\n },\n off: (event: string, callback?: Function) => {\n window.$yourgptChatbot!.q!.push([\"off\", event, callback]);\n },\n set: (key: string, value: any) => {\n window.$yourgptChatbot!.q!.push([\"set\", key, value]);\n },\n };\n }\n }\n\n /**\n * Update widget state\n */\n private updateState(updates: Partial<WidgetState>): void {\n this.state = { ...this.state, ...updates };\n this.emit(\"stateChange\", this.state);\n }\n\n /**\n * Execute widget command\n */\n private executeCommand(command: string, ...args: any[]): void {\n if (!this.isWidgetReady()) {\n this.logger.warn(\"Widget not ready, queueing command:\", command);\n window.$yourgptChatbot?.q?.push([\"execute\", command, ...args]);\n return;\n }\n\n window.$yourgptChatbot!.execute!(command, ...args);\n }\n\n /**\n * Register event listener\n */\n private registerEventListener(event: string, callback: Function): void {\n if (!this.isWidgetReady()) {\n this.logger.warn(\"Widget not ready, queueing event listener:\", event);\n window.$yourgptChatbot?.q?.push([\"on\", event, callback]);\n return;\n }\n\n window.$yourgptChatbot!.on!(event, callback);\n }\n\n /**\n * Set widget data\n */\n private setWidgetData(key: string, value: any): void {\n if (!this.isWidgetReady()) {\n this.logger.warn(\"Widget not ready, queueing data:\", key);\n window.$yourgptChatbot?.q?.push([\"set\", key, value]);\n return;\n }\n\n window.$yourgptChatbot!.set!(key, value);\n }\n\n /**\n * Get current configuration\n */\n public getConfig(): YourGPTConfig | null {\n return this.config;\n }\n\n /**\n * Get current state\n */\n public getState(): WidgetState {\n return { ...this.state };\n }\n\n /**\n * Check if SDK is initialized\n */\n public isReady(): boolean {\n return this.isInitialized;\n }\n\n /**\n * Widget Controls\n */\n public open(): void {\n this.executeCommand(\"widget:open\");\n this.updateState({ isOpen: true });\n }\n\n public close(): void {\n this.executeCommand(\"widget:close\");\n this.updateState({ isOpen: false });\n }\n\n public toggle(): void {\n if (this.state.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n public show(): void {\n this.executeCommand(\"widget:show\");\n this.updateState({ isVisible: true });\n }\n\n public hide(): void {\n this.executeCommand(\"widget:hide\");\n this.updateState({ isVisible: false });\n }\n\n /**\n * Messaging\n */\n public sendMessage(text: string, autoSend: boolean = true): void {\n this.executeCommand(\"message:send\", { text, send: autoSend });\n }\n\n /**\n * Advanced Features\n */\n public openBottomSheet(url: string): void {\n this.executeCommand(\"bottomSheet:open\", { url });\n }\n\n public startGame(gameId: string, options: GameOptions = {}): void {\n this.executeCommand(\"game:start\", { id: gameId, ...options });\n }\n\n /**\n * Data Management\n */\n public setSessionData(data: SessionData): void {\n this.setWidgetData(\"session:data\", data);\n }\n\n public setVisitorData(data: VisitorData): void {\n this.setWidgetData(\"visitor:data\", data);\n }\n\n public setContactData(data: ContactData): void {\n this.setWidgetData(\"contact:data\", data);\n }\n\n /**\n * Event Listeners\n */\n public onInit(callback: EventHandler<void>): EventUnsubscriber {\n const wrappedCallback = () => {\n this.updateState({ isConnected: true });\n callback();\n };\n\n this.registerEventListener(\"init\", wrappedCallback);\n return () => window.$yourgptChatbot?.off?.(\"init\", wrappedCallback);\n }\n\n public onMessageReceived(callback: EventHandler<MessageData>): EventUnsubscriber {\n const wrappedCallback = (data: MessageData) => {\n this.updateState({ messageCount: this.state.messageCount + 1 });\n callback(data);\n };\n\n this.registerEventListener(\"message:received\", wrappedCallback);\n return () => window.$yourgptChatbot?.off?.(\"message:received\", wrappedCallback);\n }\n\n public onEscalatedToHuman(callback: EventHandler<EscalationData>): EventUnsubscriber {\n this.registerEventListener(\"escalatedToHuman\", callback);\n return () => window.$yourgptChatbot?.off?.(\"escalatedToHuman\", callback);\n }\n\n public onWidgetPopup(callback: EventHandler<boolean>): EventUnsubscriber {\n const wrappedCallback = (isOpen: boolean) => {\n this.updateState({ isOpen });\n callback(isOpen);\n };\n\n this.registerEventListener(\"widget:popup\", wrappedCallback);\n return () => window.$yourgptChatbot?.off?.(\"widget:popup\", wrappedCallback);\n }\n\n /**\n * AI Actions\n */\n public registerAIAction(actionName: string, handler: AIActionHandler): void {\n this.aiActionHandlers.set(actionName, handler);\n this.registerEventListener(`ai:action:${actionName}`, handler);\n }\n\n public unregisterAIAction(actionName: string): void {\n this.aiActionHandlers.delete(actionName);\n window.$yourgptChatbot?.off?.(`ai:action:${actionName}`);\n }\n\n public getRegisteredAIActions(): string[] {\n return Array.from(this.aiActionHandlers.keys());\n }\n\n /**\n * Create complete chatbot API\n */\n public createChatbotAPI(): ChatbotAPI {\n return {\n // State\n ...this.getState(),\n\n // Widget Controls\n open: this.open.bind(this),\n close: this.close.bind(this),\n toggle: this.toggle.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n\n // Messaging\n sendMessage: this.sendMessage.bind(this),\n\n // Advanced Features\n openBottomSheet: this.openBottomSheet.bind(this),\n startGame: this.startGame.bind(this),\n\n // Data Management\n setSessionData: this.setSessionData.bind(this),\n setVisitorData: this.setVisitorData.bind(this),\n setContactData: this.setContactData.bind(this),\n\n // Event Listeners\n onInit: this.onInit.bind(this),\n onMessageReceived: this.onMessageReceived.bind(this),\n onEscalatedToHuman: this.onEscalatedToHuman.bind(this),\n onWidgetPopup: this.onWidgetPopup.bind(this),\n };\n }\n\n /**\n * Create AI Actions API\n */\n public createAIActionsAPI(): AIActionsAPI {\n return {\n registerAction: this.registerAIAction.bind(this),\n unregisterAction: this.unregisterAIAction.bind(this),\n registerActions: (actions: Record<string, AIActionHandler>) => {\n Object.entries(actions).forEach(([name, handler]) => {\n this.registerAIAction(name, handler);\n });\n },\n getRegisteredActions: this.getRegisteredAIActions.bind(this),\n get registeredActions() {\n return this.getRegisteredActions();\n },\n };\n }\n\n /**\n * Cleanup\n */\n public destroy(): void {\n this.removeAllListeners();\n this.aiActionHandlers.clear();\n this.isInitialized = false;\n this.config = null;\n YourGPTSDK.instance = null;\n }\n}\n\n/**\n * Static methods for easier usage\n */\nconst YourGPT = {\n /**\n * Initialize the SDK\n */\n init: (config: YourGPTConfig) => {\n const sdk = YourGPTSDK.getInstance();\n return sdk.init(config);\n },\n\n /**\n * Get the SDK instance\n */\n getInstance: () => {\n return YourGPTSDK.getInstance();\n },\n};\n\nexport { YourGPTSDK };\nexport default YourGPT;\n","/**\n * React Hook for YourGPT SDK\n */\n\nimport { useEffect, useRef, useState, useCallback } from 'react';\nimport YourGPT, { YourGPTSDK } from '../../core/YourGPT';\nimport { YourGPTConfig, WidgetState, YourGPTError } from '../../types';\n\ninterface UseYourGPTOptions {\n config?: YourGPTConfig;\n autoInit?: boolean;\n}\n\ninterface UseYourGPTReturn {\n sdk: YourGPTSDK | null;\n isInitialized: boolean;\n isLoading: boolean;\n error: YourGPTError | null;\n state: WidgetState;\n init: (config: YourGPTConfig) => Promise<void>;\n destroy: () => void;\n}\n\n/**\n * Main hook for YourGPT SDK\n */\nexport function useYourGPT(options: UseYourGPTOptions = {}): UseYourGPTReturn {\n const { config, autoInit = true } = options;\n \n const [sdk, setSdk] = useState<YourGPTSDK | null>(null);\n const [isInitialized, setIsInitialized] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<YourGPTError | null>(null);\n const [state, setState] = useState<WidgetState>({\n isOpen: false,\n isVisible: true,\n isConnected: false,\n isLoaded: false,\n messageCount: 0,\n connectionRetries: 0\n });\n\n const sdkRef = useRef<YourGPTSDK | null>(null);\n\n const init = useCallback(async (initConfig: YourGPTConfig) => {\n if (isInitialized) {\n return;\n }\n\n setIsLoading(true);\n setError(null);\n\n try {\n const sdkInstance = await YourGPT.init(initConfig);\n \n // Listen for state changes\n const unsubscribe = sdkInstance.on('stateChange', (newState: WidgetState) => {\n setState(newState);\n });\n\n sdkRef.current = sdkInstance;\n setSdk(sdkInstance);\n setIsInitialized(true);\n setState(sdkInstance.getState());\n\n // Store unsubscribe function for cleanup\n (sdkInstance as any)._unsubscribeStateChange = unsubscribe;\n\n } catch (err) {\n const sdkError = err instanceof YourGPTError ? err : new YourGPTError(String(err));\n setError(sdkError);\n } finally {\n setIsLoading(false);\n }\n }, [isInitialized]);\n\n const destroy = useCallback(() => {\n if (sdkRef.current) {\n // Cleanup state change listener\n if ((sdkRef.current as any)._unsubscribeStateChange) {\n (sdkRef.current as any)._unsubscribeStateChange();\n }\n \n sdkRef.current.destroy();\n sdkRef.current = null;\n setSdk(null);\n setIsInitialized(false);\n setState({\n isOpen: false,\n isVisible: true,\n isConnected: false,\n isLoaded: false,\n messageCount: 0,\n connectionRetries: 0\n });\n }\n }, []);\n\n // Auto-initialize if config is provided\n useEffect(() => {\n if (config && autoInit && !isInitialized && !isLoading) {\n init(config);\n }\n }, [config, autoInit, isInitialized, isLoading, init]);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n if (sdkRef.current) {\n // Cleanup state change listener\n if ((sdkRef.current as any)._unsubscribeStateChange) {\n (sdkRef.current as any)._unsubscribeStateChange();\n }\n }\n };\n }, []);\n\n return {\n sdk,\n isInitialized,\n isLoading,\n error,\n state,\n init,\n destroy\n };\n}","/**\n * React Hook for YourGPT Chatbot functionality\n */\n\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport YourGPT, { YourGPTSDK } from '../../core/YourGPT';\nimport { \n ChatbotAPI, \n WidgetState, \n MessageData, \n EscalationData, \n SessionData, \n VisitorData, \n ContactData, \n GameOptions,\n EventUnsubscriber\n} from '../../types';\n\n/**\n * Hook for controlling the chatbot widget\n */\nexport function useYourGPTChatbot(): ChatbotAPI {\n const [state, setState] = useState<WidgetState>({\n isOpen: false,\n isVisible: true,\n isConnected: false,\n isLoaded: false,\n messageCount: 0,\n connectionRetries: 0\n });\n\n const sdkRef = useRef<YourGPTSDK | null>(null);\n const unsubscribersRef = useRef<EventUnsubscriber[]>([]);\n\n // Get SDK instance\n useEffect(() => {\n const sdk = YourGPT.getInstance();\n sdkRef.current = sdk;\n \n // Update state\n setState(sdk.getState());\n\n // Listen for state changes\n const unsubscribe = sdk.on('stateChange', (newState: WidgetState) => {\n setState(newState);\n });\n\n unsubscribersRef.current.push(unsubscribe);\n\n return () => {\n unsubscribersRef.current.forEach(unsub => unsub());\n unsubscribersRef.current = [];\n };\n }, []);\n\n // Widget control functions\n const widgetControls = useMemo(() => ({\n open: () => sdkRef.current?.open(),\n close: () => sdkRef.current?.close(),\n toggle: () => sdkRef.current?.toggle(),\n show: () => sdkRef.current?.show(),\n hide: () => sdkRef.current?.hide(),\n }), []);\n\n // Messaging functions\n const messaging = useMemo(() => ({\n sendMessage: (text: string, autoSend: boolean = true) => {\n sdkRef.current?.sendMessage(text, autoSend);\n },\n }), []);\n\n // Advanced features\n const advanced = useMemo(() => ({\n openBottomSheet: (url: string) => {\n sdkRef.current?.openBottomSheet(url);\n },\n startGame: (gameId: string, options: GameOptions = {}) => {\n sdkRef.current?.startGame(gameId, options);\n },\n }), []);\n\n // Data management\n const dataManagement = useMemo(() => ({\n setSessionData: (data: SessionData) => {\n sdkRef.current?.setSessionData(data);\n },\n setVisitorData: (data: VisitorData) => {\n sdkRef.current?.setVisitorData(data);\n },\n setContactData: (data: ContactData) => {\n sdkRef.current?.setContactData(data);\n },\n }), []);\n\n // Event listeners\n const eventListeners = useMemo(() => ({\n onInit: (callback: () => void) => {\n const unsubscribe = sdkRef.current?.onInit(callback);\n if (unsubscribe) {\n unsubscribersRef.current.push(unsubscribe);\n }\n return unsubscribe || (() => {});\n },\n onMessageReceived: (callback: (data: MessageData) => void) => {\n const unsubscribe = sdkRef.current?.onMessageReceived(callback);\n if (unsubscribe) {\n unsubscribersRef.current.push(unsubscribe);\n }\n return unsubscribe || (() => {});\n },\n onEscalatedToHuman: (callback: (data: EscalationData) => void) => {\n const unsubscribe = sdkRef.current?.onEscalatedToHuman(callback);\n if (unsubscribe) {\n unsubscribersRef.current.push(unsubscribe);\n }\n return unsubscribe || (() => {});\n },\n onWidgetPopup: (callback: (isOpen: boolean) => void) => {\n const unsubscribe = sdkRef.current?.onWidgetPopup(callback);\n if (unsubscribe) {\n unsubscribersRef.current.push(unsubscribe);\n }\n return unsubscribe || (() => {});\n },\n }), []);\n\n return {\n // State\n ...state,\n // Functions\n ...widgetControls,\n ...messaging,\n ...advanced,\n ...dataManagement,\n ...eventListeners,\n };\n}","/**\n * React Hook for AI Actions functionality\n */\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport YourGPT, { YourGPTSDK } from '../../core/YourGPT';\nimport { AIActionsAPI, AIActionHandler } from '../../types';\n\n/**\n * Hook for managing AI action handlers\n */\nexport function useAIActions(): AIActionsAPI {\n const [registeredActions, setRegisteredActions] = useState<string[]>([]);\n const handlersRef = useRef<Map<string, AIActionHandler>>(new Map());\n const sdkRef = useRef<YourGPTSDK | null>(null);\n\n // Get SDK instance\n useEffect(() => {\n const sdk = YourGPT.getInstance();\n sdkRef.current = sdk;\n \n // Update registered actions\n setRegisteredActions(sdk.getRegisteredAIActions());\n }, []);\n\n // Register an AI action\n const registerAction = useCallback((actionName: string, handler: AIActionHandler) => {\n if (!sdkRef.current) return;\n\n // Store locally\n handlersRef.current.set(actionName, handler);\n \n // Register with SDK\n sdkRef.current.registerAIAction(actionName, handler);\n \n // Update state\n setRegisteredActions(Array.from(handlersRef.current.keys()));\n }, []);\n\n // Unregister an AI action\n const unregisterAction = useCallback((actionName: string) => {\n if (!sdkRef.current) return;\n\n // Remove locally\n handlersRef.current.delete(actionName);\n \n // Unregister from SDK\n sdkRef.current.unregisterAIAction(actionName);\n \n // Update state\n setRegisteredActions(Array.from(handlersRef.current.keys()));\n }, []);\n\n // Get registered actions\n const getRegisteredActions = useCallback(() => {\n return Array.from(handlersRef.current.keys());\n }, []);\n\n // Batch register multiple actions\n const registerActions = useCallback((actions: Record<string, AIActionHandler>) => {\n Object.entries(actions).forEach(([name, handler]) => {\n registerAction(name, handler);\n });\n }, [registerAction]);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n // Clean up all registered handlers\n handlersRef.current.forEach((_, actionName) => {\n sdkRef.current?.unregisterAIAction(actionName);\n });\n handlersRef.current.clear();\n };\n }, []);\n\n return {\n registerAction,\n unregisterAction,\n registerActions,\n getRegisteredActions,\n registeredActions,\n };\n}","/**\n * React Provider for YourGPT SDK\n */\n\nimport { createContext, useContext, useEffect, useState, ReactNode } from \"react\";\nimport YourGPT, { YourGPTSDK } from \"../../core/YourGPT\";\nimport { YourGPTConfig, YourGPTError, WidgetState } from \"../../types\";\ndeclare global {\n interface Window {\n YGC_WIDGET?: {\n renderEmbedded: (container: HTMLElement) => void;\n };\n }\n}\n\ninterface YourGPTContextValue {\n sdk: YourGPTSDK | null;\n isInitialized: boolean;\n isLoading: boolean;\n error: YourGPTError | null;\n state: WidgetState;\n}\n\nconst YourGPTContext = createContext<YourGPTContextValue | null>(null);\n\ninterface YourGPTProviderProps {\n children: ReactNode;\n config: YourGPTConfig;\n onError?: (error: YourGPTError) => void;\n onInitialized?: (sdk: YourGPTSDK) => void;\n}\n\n/**\n * Provider component for YourGPT SDK\n */\nexport function YourGPTProvider({ children, config, onError, onInitialized }: YourGPTProviderProps) {\n const [isBrowser, setIsBrowser] = useState(false);\n const [sdk, setSdk] = useState<YourGPTSDK | null>(null);\n const [isInitialized, setIsInitialized] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<YourGPTError | null>(null);\n const [state, setState] = useState<WidgetState>({\n isOpen: false,\n isVisible: true,\n isConnected: false,\n isLoaded: false,\n messageCount: 0,\n connectionRetries: 0,\n });\n\n // Set browser state\n useEffect(() => {\n setIsBrowser(true);\n }, []);\n\n useEffect(() => {\n // Don't initialize during SSR\n if (!isBrowser) return;\n\n const initializeSDK = async () => {\n setIsLoading(true);\n setError(null);\n\n try {\n const sdkInstance = await YourGPT.init(config);\n\n // Listen for state changes\n const unsubscribe = sdkInstance.on(\"stateChange\", (newState: WidgetState) => {\n setState(newState);\n });\n\n setSdk(sdkInstance);\n setIsInitialized(true);\n setState(sdkInstance.getState());\n\n // Store unsubscribe function for cleanup\n (sdkInstance as any)._unsubscribeStateChange = unsubscribe;\n\n if (onInitialized) {\n onInitialized(sdkInstance);\n }\n } catch (err) {\n const sdkError = err instanceof YourGPTError ? err : new YourGPTError(String(err));\n setError(sdkError);\n\n if (onError) {\n onError(sdkError);\n }\n } finally {\n setIsLoading(false);\n }\n };\n\n initializeSDK();\n\n return () => {\n if (sdk) {\n // Cleanup state change listener\n if ((sdk as any)._unsubscribeStateChange) {\n (sdk as any)._unsubscribeStateChange();\n }\n }\n };\n }, [config, onError, onInitialized, isBrowser]);\n\n const value: YourGPTContextValue = {\n sdk,\n isInitialized,\n isLoading,\n error,\n state,\n };\n\n return <YourGPTContext.Provider value={value}>{children}</YourGPTContext.Provider>;\n}\n\n/**\n * Hook to use YourGPT context\n */\nexport function useYourGPT(): YourGPTContextValue {\n const context = useContext(YourGPTContext);\n\n if (!context) {\n throw new YourGPTError(\"useYourGPT must be used within a YourGPTProvider\");\n }\n\n return context;\n}\n","import { useEffect, useRef, useState } from \"react\";\nimport { useYourGPT } from \"./YourGPTProvider\";\nimport { WidgetRenderModeE } from \"../../types/enum\";\n\ninterface YourGPTWidgetProps {\n className?: string;\n style?: React.CSSProperties;\n /** Optional callback when widget is mounted */\n onMount?: () => void;\n /** Optional callback when widget is unmounted */\n onUnmount?: () => void;\n}\n\nexport function YourGPTWidget({ className, style, onMount, onUnmount }: YourGPTWidgetProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const { isInitialized } = useYourGPT();\n const [isBrowser, setIsBrowser] = useState(false);\n const mode = typeof window !== \"undefined\" ? window.YGC_WIDGET_RENDER_MODE : WidgetRenderModeE.floating;\n\n useEffect(() => {\n setIsBrowser(true);\n }, []);\n\n // Handle embedded mode container\n useEffect(() => {\n if (!isInitialized || !isBrowser) return undefined;\n\n // Handle widget rendering and cleanup\n const container = containerRef.current;\n if (!container || mode !== \"embedded\") return undefined;\n\n window.YGC_WIDGET?.renderEmbedded(container);\n onMount?.();\n\n return () => {\n // @ts-ignore\n window.YGC_WIDGET?.cleanup?.();\n onUnmount?.();\n };\n }, [isInitialized, isBrowser, mode]);\n\n // Don't render anything during SSR\n if (!isBrowser) {\n return null;\n }\n\n // Only render container for embedded mode\n if (mode === \"embedded\") {\n return (\n <div\n ref={containerRef}\n id={`yourgpt-container-${Math.random()}`}\n className={className}\n style={{\n position: \"relative\",\n width: \"100%\",\n height: \"100%\",\n ...style,\n }}\n />\n );\n }\n\n // Nothing to render for floating mode\n return null;\n}\n","/**\n * YourGPT React SDK\n *\n * React-specific hooks and components for YourGPT integration\n */\n\n// Hooks\nexport { useYourGPT } from \"./hooks/useYourGPT\";\nexport { useYourGPTChatbot } from \"./hooks/useYourGPTChatbot\";\nexport { useAIActions } from \"./hooks/useAIActions\";\n\n// Components\nexport { YourGPTProvider } from \"./components/YourGPTProvider\";\nexport { YourGPTWidget } from \"./components/YourGPTWidget\";\n\n// Re-export core SDK for convenience\nexport { default as YourGPT, YourGPTSDK } from \"../core/YourGPT\";\n\n// Re-export types\nexport type {\n YourGPTConfig,\n WidgetState,\n MessageData,\n EscalationData,\n SessionData,\n VisitorData,\n ContactData,\n GameOptions,\n AIActionData,\n AIActionHelpers,\n AIActionHandler,\n ConfirmOptions,\n ChatbotAPI,\n AIActionsAPI,\n EventHandler,\n EventUnsubscriber,\n WidgetControls,\n MessagingControls,\n AdvancedFeatures,\n DataManagement,\n EventListeners,\n} from \"../types\";\n\n// Re-export error class\nexport { YourGPTError } from \"../types\";\n\n// Version\nexport const VERSION = \"1.0.0\";\n"]}