Files
sentence1/G102-sequence/sdk/package/dist/esm/index.js
lubukhu 65fd0158a3
All checks were successful
Deploy to Production / deploy (push) Successful in 8s
up
2026-01-24 13:35:11 +07:00

94 lines
3.9 KiB
JavaScript

/**
* Game Iframe SDK - Main Entry Point
*
* @packageDocumentation
* @module game-iframe-sdk
*
* Architecture:
* - types.ts: Type definitions
* - mappers.ts: Data transformation/mapping
* - EventEmitter.ts: Simple typed event emitter
* - MessageHandler.ts: Handle incoming messages from iframe
* - MessageSender.ts: Send messages to iframe
* - GameIframeSDK.ts: Main SDK (composes above layers)
* - useGameIframeSDK.ts: React hook
*
* @example Browser/Vanilla JS
* ```typescript
* import { GameIframeSDK } from 'game-iframe-sdk';
*
* const sdk = new GameIframeSDK({
* iframeOrigin: 'http://senaai.vn:1357',
* debug: true
* });
*
* sdk.setIframe(document.getElementById('gameIframe'));
*
* sdk.on('gameReady', () => {
* sdk.sendGameData({ game_id: 'xxx', user_id: 'yyy', questions: [...] });
* });
* ```
*
* @example React
* ```tsx
* import { useGameIframeSDK } from 'game-iframe-sdk';
*
* function GamePlayer() {
* const iframeRef = useRef<HTMLIFrameElement>(null);
*
* const { isReady, sendGameData } = useGameIframeSDK({
* iframeRef,
* iframeOrigin: 'http://senaai.vn:1357',
* onAnswerReport: (data) => submitToServer(data),
* });
*
* return <iframe ref={iframeRef} src={gameUrl} />;
* }
* ```
*/
// =============================================================================
// CORE SDK
// =============================================================================
export { GameIframeSDK, createGameIframeSDK, getGameIframeSDK, destroyGameIframeSDK, } from './GameIframeSDK';
// =============================================================================
// LAYERS (for advanced usage)
// =============================================================================
export { MessageHandler } from './MessageHandler';
export { MessageSender } from './MessageSender';
export { EventEmitter } from './EventEmitter';
// Mappers removed - mapped data should be handled by the application
// =============================================================================
// =============================================================================
// REACT HOOK
// =============================================================================
export { useGameIframeSDK } from './useGameIframeSDK';
// =============================================================================
// TYPES
// =============================================================================
export {
// Message Types
MESSAGE_TYPES, DEFAULT_CONFIG, } from './types';
// =============================================================================
// KIT (Helper Mappers, API, Components)
// =============================================================================
import * as Kit from './kit';
export { Kit };
// =============================================================================
// CLIENT SDK (for Game Iframe - used by game developers)
// =============================================================================
import * as Client from './client';
export { Client };
export { GameClientSDK, getGameClientSDK, destroyGameClientSDK, } from './client';
// =============================================================================
// SDK IFRAME (Hidden iframe - runs on separate domain for security)
// =============================================================================
import * as SdkIframe from './sdk-iframe';
export { SdkIframe };
export { SdkIframeCore, SDK_MESSAGE_TYPES, } from './sdk-iframe';
// =============================================================================
// GAME BRIDGE (For game developers - communicates with SDK Iframe)
// =============================================================================
import * as GameBridgeModule from './game-bridge';
export { GameBridgeModule };
export { GameBridge, getGameBridge, destroyGameBridge, } from './game-bridge';
//# sourceMappingURL=index.js.map