@quantabit/lottery-sdk 1.0.0
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/LICENSE +21 -0
- package/README.md +68 -0
- package/dist/index.cjs +1136 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.esm.js +1106 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.iife.js +1137 -0
- package/dist/index.iife.js.map +1 -0
- package/dist/index.umd.js +1138 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/styles.css +1 -0
- package/package.json +79 -0
- package/types/index.d.ts +36 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../src/services/lotteryApi.js","../src/types.js","../src/i18n/index.js","../src/hooks/useLottery.js","../src/components/Lottery.jsx","../src/index.js"],"sourcesContent":["/**\n * Lottery SDK - API 客户端\n * 抽奖系统后端接口封装\n * \n * 使用 BaseApiClient 基类简化代码\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\n/**\n * 抽奖 API 客户端\n */\nexport class LotteryApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/lottery', config);\n }\n\n // ============ 抽奖活动 ============\n\n /**\n * 获取进行中的抽奖活动\n */\n async getActiveLotteries() {\n return this.get('/active');\n }\n\n /**\n * 获取抽奖活动列表\n * @param {Object} params - 查询参数\n */\n async getLotteries(params = {}) {\n return this.get('/list', params);\n }\n\n /**\n * 获取抽奖活动详情\n * @param {string} lotteryId - 活动 ID\n */\n async getLottery(lotteryId) {\n return this.get(`/${lotteryId}`);\n }\n\n /**\n * 获取奖品列表\n * @param {string} lotteryId - 活动 ID\n */\n async getPrizes(lotteryId) {\n return this.get(`/${lotteryId}/prizes`);\n }\n\n // ============ 抽奖操作 ============\n\n /**\n * 执行抽奖\n * @param {string} lotteryId - 活动 ID\n * @param {number} times - 抽奖次数\n */\n async draw(lotteryId, times = 1) {\n return this.post(`/${lotteryId}/draw`, { times });\n }\n\n /**\n * 批量抽奖(十连抽等)\n * @param {string} lotteryId - 活动 ID\n * @param {number} count - 次数\n */\n async batchDraw(lotteryId, count) {\n return this.post(`/${lotteryId}/draw/batch`, { count });\n }\n\n /**\n * 获取抽奖资格\n * @param {string} lotteryId - 活动 ID\n */\n async getDrawChances(lotteryId) {\n return this.get(`/${lotteryId}/chances`);\n }\n\n /**\n * 获取额外抽奖机会(观看广告等)\n * @param {string} lotteryId - 活动 ID\n * @param {string} method - 获取方式\n */\n async earnChance(lotteryId, method) {\n return this.post(`/${lotteryId}/chances/earn`, { method });\n }\n\n // ============ 中奖记录 ============\n\n /**\n * 获取中奖记录\n * @param {string} lotteryId - 活动 ID\n * @param {Object} params - 查询参数\n */\n async getWinningRecords(lotteryId, params = {}) {\n return this.get(`/${lotteryId}/records`, params);\n }\n\n /**\n * 获取我的中奖记录\n * @param {Object} params - 查询参数\n */\n async getMyWinnings(params = {}) {\n return this.get('/my/winnings', params);\n }\n\n /**\n * 获取最新中奖公告\n * @param {string} lotteryId - 活动 ID\n * @param {number} limit - 返回数量\n */\n async getLatestWinners(lotteryId, limit = 10) {\n return this.get(`/${lotteryId}/winners/latest`, { limit });\n }\n\n // ============ 奖品领取 ============\n\n /**\n * 领取奖品\n * @param {string} recordId - 中奖记录 ID\n * @param {Object} receiveData - 领取信息\n */\n async claimPrize(recordId, receiveData = {}) {\n return this.post(`/winnings/${recordId}/claim`, receiveData);\n }\n\n /**\n * 获取待领取奖品\n */\n async getPendingPrizes() {\n return this.get('/my/pending');\n }\n\n /**\n * 获取奖品物流信息\n * @param {string} recordId - 中奖记录 ID\n */\n async getPrizeShipping(recordId) {\n return this.get(`/winnings/${recordId}/shipping`);\n }\n\n // ============ 活动统计 ============\n\n /**\n * 获取活动统计\n * @param {string} lotteryId - 活动 ID\n */\n async getLotteryStats(lotteryId) {\n return this.get(`/${lotteryId}/stats`);\n }\n\n /**\n * 获取中奖概率(如果公开)\n * @param {string} lotteryId - 活动 ID\n */\n async getOdds(lotteryId) {\n return this.get(`/${lotteryId}/odds`);\n }\n\n // ============ 管理员操作 ============\n\n /**\n * 创建抽奖活动(管理员)\n * @param {Object} data - 活动数据\n */\n async createLottery(data) {\n return this.post('/admin', data);\n }\n\n /**\n * 更新抽奖活动(管理员)\n * @param {string} lotteryId - 活动 ID\n * @param {Object} updates - 更新数据\n */\n async updateLottery(lotteryId, updates) {\n return this.put(`/admin/${lotteryId}`, updates);\n }\n\n /**\n * 获取活动统计(管理员)\n * @param {string} lotteryId - 活动 ID\n */\n async getAdminStats(lotteryId) {\n return this.get(`/admin/${lotteryId}/stats`);\n }\n\n // ============ 兼容性别名 ============\n\n /**\n * 获取我的奖品 (别名)\n */\n async getMyPrizes(params = {}) {\n return this.getMyWinnings(params);\n }\n\n /**\n * 获取中奖者 (别名)\n */\n async getWinners(lotteryId, limit = 10) {\n return this.getLatestWinners(lotteryId, limit);\n }\n}\n\n// 创建默认实例\nexport const lotteryApi = new LotteryApiClient();\n\n\n\nexport default lotteryApi;\n","\nexport const LotteryType = {};\n\nexport const PrizeLevel = {};\n","/**\n * Lottery SDK - 国际化\n * 抽奖系统多语言支持\n */\n\nexport const SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\n\nexport const messages = {\n zh: {\n // 抽奖\n lottery: '抽奖',\n draw: '抽奖',\n luckyDraw: '幸运抽奖',\n \n // 类型\n wheel: '转盘',\n scratch: '刮刮卡',\n slot: '老虎机',\n card: '翻牌',\n shake: '摇一摇',\n \n // 操作\n start: '开始抽奖',\n draw: '抽奖',\n spin: '转动',\n scratch: '刮开',\n flip: '翻牌',\n shake: '摇一摇',\n tryAgain: '再试一次',\n \n // 机会\n chances: '抽奖次数',\n remaining: '剩余',\n noChances: '暂无抽奖机会',\n getMoreChances: '获取更多机会',\n \n // 结果\n congratulations: '恭喜!',\n won: '获得',\n thanksForPlaying: '谢谢参与',\n noLuck: '未中奖',\n prizeClaimed: '奖品已发放',\n \n // 奖品\n prize: '奖品',\n prizes: '奖品列表',\n myPrizes: '我的奖品',\n grandPrize: '大奖',\n firstPrize: '一等奖',\n secondPrize: '二等奖',\n thirdPrize: '三等奖',\n consolation: '安慰奖',\n \n // 概率\n probability: '概率',\n rare: '稀有',\n normal: '普通',\n \n // 规则\n rules: '抽奖规则',\n howToPlay: '玩法说明',\n \n // 历史\n history: '抽奖记录',\n winners: '中奖名单',\n recentWinners: '最近中奖',\n \n // 状态\n loading: '加载中...',\n processing: '正在抽奖...',\n \n // 时间\n startsIn: '距开始',\n endsIn: '距结束',\n ended: '已结束',\n \n // 活动\n eventName: '活动名称',\n eventPeriod: '活动时间',\n },\n en: {\n lottery: 'Lottery',\n draw: 'Draw',\n luckyDraw: 'Lucky Draw',\n \n wheel: 'Wheel',\n scratch: 'Scratch Card',\n slot: 'Slot Machine',\n card: 'Card Flip',\n shake: 'Shake',\n \n start: 'Start',\n spin: 'Spin',\n flip: 'Flip',\n tryAgain: 'Try Again',\n \n chances: 'Chances',\n remaining: 'remaining',\n noChances: 'No chances left',\n getMoreChances: 'Get More Chances',\n \n congratulations: 'Congratulations!',\n won: 'You won',\n thanksForPlaying: 'Thanks for playing',\n noLuck: 'No Luck',\n prizeClaimed: 'Prize claimed',\n \n prize: 'Prize',\n prizes: 'Prizes',\n myPrizes: 'My Prizes',\n grandPrize: 'Grand Prize',\n firstPrize: '1st Prize',\n secondPrize: '2nd Prize',\n thirdPrize: '3rd Prize',\n consolation: 'Consolation',\n \n probability: 'Probability',\n rare: 'Rare',\n normal: 'Normal',\n \n rules: 'Rules',\n howToPlay: 'How to Play',\n \n history: 'History',\n winners: 'Winners',\n recentWinners: 'Recent Winners',\n \n loading: 'Loading...',\n processing: 'Drawing...',\n \n startsIn: 'Starts in',\n endsIn: 'Ends in',\n ended: 'Ended',\n \n eventName: 'Event Name',\n eventPeriod: 'Event Period',\n },\n ja: {\n lottery: '抽選',\n draw: '抽選',\n luckyDraw: 'ラッキードロー',\n \n wheel: 'ルーレット',\n scratch: 'スクラッチカード',\n slot: 'スロット',\n card: 'カードフリップ',\n shake: 'シェイク',\n \n start: 'スタート',\n spin: '回す',\n flip: 'めくる',\n tryAgain: 'もう一度',\n \n chances: '残り回数',\n remaining: '回',\n noChances: 'チャンスなし',\n getMoreChances: 'チャンスを獲得',\n \n congratulations: 'おめでとう!',\n won: '獲得',\n thanksForPlaying: 'ご参加ありがとう',\n noLuck: '残念',\n prizeClaimed: '賞品を獲得',\n \n prize: '賞品',\n prizes: '賞品リスト',\n myPrizes: 'マイ賞品',\n grandPrize: '大賞',\n firstPrize: '1等',\n secondPrize: '2等',\n thirdPrize: '3等',\n consolation: '参加賞',\n \n probability: '確率',\n rare: 'レア',\n normal: 'ノーマル',\n \n rules: 'ルール',\n howToPlay: '遊び方',\n \n history: '履歴',\n winners: '当選者',\n recentWinners: '最近の当選者',\n \n loading: '読み込み中...',\n processing: '抽選中...',\n \n startsIn: '開始まで',\n endsIn: '終了まで',\n ended: '終了',\n \n eventName: 'イベント名',\n eventPeriod: 'イベント期間',\n },\n ko: {\n lottery: '추첨',\n draw: '추첨',\n luckyDraw: '행운 추첨',\n \n wheel: '룰렛',\n scratch: '스크래치 카드',\n slot: '슬롯',\n card: '카드 뒤집기',\n shake: '흔들기',\n \n start: '시작',\n spin: '돌리기',\n flip: '뒤집기',\n tryAgain: '다시 시도',\n \n chances: '남은 기회',\n remaining: '회',\n noChances: '기회 없음',\n getMoreChances: '기회 받기',\n \n congratulations: '축하합니다!',\n won: '획득',\n thanksForPlaying: '참가해 주셔서 감사합니다',\n noLuck: '아쉽네요',\n prizeClaimed: '경품 획득',\n \n prize: '경품',\n prizes: '경품 목록',\n myPrizes: '내 경품',\n grandPrize: '대상',\n firstPrize: '1등',\n secondPrize: '2등',\n thirdPrize: '3등',\n consolation: '참가상',\n \n probability: '확률',\n rare: '레어',\n normal: '일반',\n \n rules: '규칙',\n howToPlay: '플레이 방법',\n \n history: '기록',\n winners: '당첨자',\n recentWinners: '최근 당첨자',\n \n loading: '로딩 중...',\n processing: '추첨 중...',\n \n startsIn: '시작까지',\n endsIn: '종료까지',\n ended: '종료',\n \n eventName: '이벤트 이름',\n eventPeriod: '이벤트 기간',\n },\n};\n\nlet currentLanguage = 'zh';\n\nexport function setLanguage(lang) {\n if (SUPPORTED_LANGUAGES.includes(lang)) currentLanguage = lang;\n}\n\nexport function getLanguage() {\n return currentLanguage;\n}\n\nexport function t(key) {\n return (messages[currentLanguage] || messages.en)[key] || key;\n}\n\nexport default { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t };\n","/**\n * Lottery SDK - React Hooks\n * 抽奖系统相关的状态管理\n */\n\nimport { useState, useEffect, useCallback, useRef } from 'react';\nimport { lotteryApi } from '../services/lotteryApi';\n\n/**\n * 抽奖活动\n */\nexport function useLottery(lotteryId) {\n const [lottery, setLottery] = useState(null);\n const [chances, setChances] = useState(0);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n\n const fetchLottery = useCallback(async () => {\n if (!lotteryId) return;\n \n try {\n setLoading(true);\n const response = await lotteryApi.getLottery(lotteryId);\n setLottery(response.lottery);\n setChances(response.chances || 0);\n setError(null);\n } catch (err) {\n setError(err.message);\n } finally {\n setLoading(false);\n }\n }, [lotteryId]);\n\n useEffect(() => {\n fetchLottery();\n }, [fetchLottery]);\n\n return { lottery, chances, loading, error, refresh: fetchLottery };\n}\n\n/**\n * 抽奖\n */\nexport function useDraw(lotteryId) {\n const [drawing, setDrawing] = useState(false);\n const [result, setResult] = useState(null);\n const [error, setError] = useState(null);\n\n const draw = useCallback(async () => {\n try {\n setDrawing(true);\n setResult(null);\n setError(null);\n \n const response = await lotteryApi.draw(lotteryId);\n setResult(response);\n return response;\n } catch (err) {\n setError(err.message);\n throw err;\n } finally {\n setDrawing(false);\n }\n }, [lotteryId]);\n\n const reset = useCallback(() => {\n setResult(null);\n setError(null);\n }, []);\n\n return { draw, drawing, result, error, reset };\n}\n\n/**\n * 转盘抽奖\n */\nexport function useSpinWheel(prizes) {\n const [spinning, setSpinning] = useState(false);\n const [rotation, setRotation] = useState(0);\n const [resultIndex, setResultIndex] = useState(null);\n\n const spin = useCallback((targetIndex) => {\n if (spinning) return;\n \n setSpinning(true);\n setResultIndex(null);\n\n // 计算旋转角度\n const segments = prizes.length;\n const segmentAngle = 360 / segments;\n const extraRotations = 5; // 额外转5圈\n const targetRotation = rotation + (extraRotations * 360) + (segments - targetIndex) * segmentAngle + segmentAngle / 2;\n\n setRotation(targetRotation);\n\n // 动画完成后\n setTimeout(() => {\n setSpinning(false);\n setResultIndex(targetIndex);\n }, 4000);\n }, [spinning, rotation, prizes.length]);\n\n const reset = useCallback(() => {\n setResultIndex(null);\n }, []);\n\n return { spin, spinning, rotation, resultIndex, reset };\n}\n\n/**\n * 刮刮卡\n */\nexport function useScratchCard() {\n const [scratched, setScratched] = useState(false);\n const [scratchPercent, setScratchPercent] = useState(0);\n const canvasRef = useRef(null);\n\n const initCard = useCallback((canvas, coverImage) => {\n if (!canvas) return;\n \n const ctx = canvas.getContext('2d');\n const img = new Image();\n img.onload = () => {\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n };\n img.src = coverImage || 'data:image/png;base64,...'; // 默认封面\n \n canvasRef.current = canvas;\n }, []);\n\n const handleScratch = useCallback((e) => {\n if (!canvasRef.current) return;\n \n const canvas = canvasRef.current;\n const ctx = canvas.getContext('2d');\n const rect = canvas.getBoundingClientRect();\n \n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n \n ctx.globalCompositeOperation = 'destination-out';\n ctx.beginPath();\n ctx.arc(x, y, 20, 0, Math.PI * 2);\n ctx.fill();\n \n // 计算已刮开百分比\n const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n let scratched = 0;\n for (let i = 3; i < imageData.data.length; i += 4) {\n if (imageData.data[i] === 0) scratched++;\n }\n const percent = (scratched / (imageData.data.length / 4)) * 100;\n setScratchPercent(percent);\n \n if (percent > 50) {\n setScratched(true);\n }\n }, []);\n\n return { scratched, scratchPercent, initCard, handleScratch };\n}\n\n/**\n * 翻牌\n */\nexport function useCardFlip(cardCount = 9) {\n const [flippedCards, setFlippedCards] = useState([]);\n const [selectedCard, setSelectedCard] = useState(null);\n const [revealed, setRevealed] = useState(false);\n\n const flipCard = useCallback((index) => {\n if (revealed || flippedCards.includes(index)) return;\n \n setSelectedCard(index);\n setFlippedCards([index]);\n }, [revealed, flippedCards]);\n\n const revealAll = useCallback(() => {\n setRevealed(true);\n setFlippedCards(Array.from({ length: cardCount }, (_, i) => i));\n }, [cardCount]);\n\n const reset = useCallback(() => {\n setFlippedCards([]);\n setSelectedCard(null);\n setRevealed(false);\n }, []);\n\n return { flippedCards, selectedCard, revealed, flipCard, revealAll, reset };\n}\n\n/**\n * 抽奖历史\n */\nexport function useLotteryHistory(lotteryId) {\n const [history, setHistory] = useState([]);\n const [loading, setLoading] = useState(true);\n\n const fetchHistory = useCallback(async () => {\n try {\n setLoading(true);\n const response = await lotteryApi.getHistory(lotteryId);\n setHistory(response.data || []);\n } catch (err) {\n console.error('Get history error:', err);\n } finally {\n setLoading(false);\n }\n }, [lotteryId]);\n\n useEffect(() => {\n fetchHistory();\n }, [fetchHistory]);\n\n return { history, loading, refresh: fetchHistory };\n}\n\n/**\n * 中奖名单\n */\nexport function useWinners(lotteryId) {\n const [winners, setWinners] = useState([]);\n const [loading, setLoading] = useState(true);\n\n const fetchWinners = useCallback(async () => {\n try {\n setLoading(true);\n const response = await lotteryApi.getWinners(lotteryId);\n setWinners(response.data || []);\n } catch (err) {\n console.error('Get winners error:', err);\n } finally {\n setLoading(false);\n }\n }, [lotteryId]);\n\n useEffect(() => {\n fetchWinners();\n }, [fetchWinners]);\n\n return { winners, loading, refresh: fetchWinners };\n}\n\n/**\n * 我的奖品\n */\nexport function useMyPrizes() {\n const [prizes, setPrizes] = useState([]);\n const [loading, setLoading] = useState(true);\n\n const fetchPrizes = useCallback(async () => {\n try {\n setLoading(true);\n const response = await lotteryApi.getMyPrizes();\n setPrizes(response.data || []);\n } catch (err) {\n console.error('Get my prizes error:', err);\n } finally {\n setLoading(false);\n }\n }, []);\n\n useEffect(() => {\n fetchPrizes();\n }, [fetchPrizes]);\n\n const claimPrize = useCallback(async (prizeId) => {\n try {\n await lotteryApi.claimPrize(prizeId);\n setPrizes(prev => prev.map(p => \n p.id === prizeId ? { ...p, claimed: true } : p\n ));\n } catch (err) {\n console.error('Claim prize error:', err);\n throw err;\n }\n }, []);\n\n return { prizes, loading, claimPrize, refresh: fetchPrizes };\n}\n\n/**\n * 倒计时\n */\nexport function useLotteryCountdown(endTime) {\n const [remaining, setRemaining] = useState({ days: 0, hours: 0, minutes: 0, seconds: 0 });\n const [isEnded, setIsEnded] = useState(false);\n\n useEffect(() => {\n if (!endTime) return;\n\n const updateCountdown = () => {\n const now = Date.now();\n const end = new Date(endTime).getTime();\n const diff = end - now;\n\n if (diff <= 0) {\n setIsEnded(true);\n setRemaining({ days: 0, hours: 0, minutes: 0, seconds: 0 });\n return;\n }\n\n setRemaining({\n days: Math.floor(diff / (1000 * 60 * 60 * 24)),\n hours: Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)),\n minutes: Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)),\n seconds: Math.floor((diff % (1000 * 60)) / 1000),\n });\n };\n\n updateCountdown();\n const timer = setInterval(updateCountdown, 1000);\n\n return () => clearInterval(timer);\n }, [endTime]);\n\n return { remaining, isEnded };\n}\n\n","/**\n * Lottery SDK - React 组件\n * 抽奖系统可视化组件\n */\n\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport {\n useLottery,\n useDraw,\n useSpinWheel,\n useCardFlip,\n useLotteryHistory,\n useWinners,\n useMyPrizes,\n useLotteryCountdown,\n} from '../hooks/useLottery';\nimport { t } from '../i18n';\nimport './Lottery.css';\n\n/**\n * 转盘抽奖\n */\nexport function SpinWheel({ lotteryId, prizes, onResult }) {\n const { chances, refresh } = useLottery(lotteryId);\n const { draw, drawing } = useDraw(lotteryId);\n const { spin, spinning, rotation, resultIndex, reset } = useSpinWheel(prizes);\n\n const handleSpin = useCallback(async () => {\n if (spinning || drawing || chances <= 0) return;\n\n try {\n const result = await draw();\n // 找到获奖奖品的索引\n const prizeIndex = prizes.findIndex(p => p.id === result.prizeId);\n spin(prizeIndex >= 0 ? prizeIndex : 0);\n \n // 动画完成后回调\n setTimeout(() => {\n onResult?.(result);\n refresh();\n }, 4500);\n } catch (err) {\n console.error('Draw error:', err);\n }\n }, [spinning, drawing, chances, draw, spin, prizes, onResult, refresh]);\n\n return (\n <div className=\"eco-lottery-wheel\">\n <div className=\"eco-lottery-wheel-container\">\n <div\n className=\"eco-lottery-wheel-disc\"\n style={{ transform: `rotate(${rotation}deg)` }}\n >\n {prizes.map((prize, qbit) => {\n const angle = (360 / prizes.length) * qbit;\n return (\n <div\n key={prize.id}\n className=\"eco-lottery-wheel-segment\"\n style={{\n transform: `rotate(${angle}deg)`,\n backgroundColor: qbit % 2 === 0 ? '#6366f1' : '#8b5cf6',\n }}\n >\n <span className=\"eco-lottery-wheel-prize\">{prize.name}</span>\n </div>\n );\n })}\n </div>\n <div className=\"eco-lottery-wheel-pointer\">▼</div>\n </div>\n\n <div className=\"eco-lottery-chances\">\n {t('chances')}: <strong>{chances}</strong>\n </div>\n\n <button\n className=\"eco-lottery-spin-btn\"\n onClick={handleSpin}\n disabled={spinning || drawing || chances <= 0}\n >\n {spinning ? t('processing') : t('spin')}\n </button>\n </div>\n );\n}\n\n/**\n * 翻牌抽奖\n */\nexport function CardFlipGame({ lotteryId, cardCount = 9, prizes, onResult }) {\n const { chances, refresh } = useLottery(lotteryId);\n const { draw, drawing } = useDraw(lotteryId);\n const { flippedCards, selectedCard, flipCard, revealAll, reset } = useCardFlip(cardCount);\n const [result, setResult] = React.useState(null);\n\n const handleFlip = useCallback(async (index) => {\n if (drawing || chances <= 0 || flippedCards.length > 0) return;\n\n try {\n const drawResult = await draw();\n setResult(drawResult);\n flipCard(index);\n \n setTimeout(() => {\n revealAll();\n onResult?.(drawResult);\n refresh();\n }, 1500);\n } catch (err) {\n console.error('Draw error:', err);\n }\n }, [drawing, chances, flippedCards, draw, flipCard, revealAll, onResult, refresh]);\n\n const handleReset = useCallback(() => {\n reset();\n setResult(null);\n }, [reset]);\n\n return (\n <div className=\"eco-lottery-cards\">\n <div className=\"eco-lottery-cards-grid\">\n {Array.from({ length: cardCount }).map((_, qbit) => {\n const isFlipped = flippedCards.includes(qbit);\n const isSelected = selectedCard === qbit;\n const prizeForCard = isSelected ? result?.prize : prizes[qbit % prizes.length];\n\n return (\n <div\n key={qbit}\n className={`eco-lottery-card ${isFlipped ? 'flipped' : ''} ${isSelected ? 'selected' : ''}`}\n onClick={() => handleFlip(qbit)}\n >\n <div className=\"eco-lottery-card-inner\">\n <div className=\"eco-lottery-card-front\">?</div>\n <div className=\"eco-lottery-card-back\">\n {isFlipped && (\n <>\n <img src={prizeForCard?.image || '/prize.png'} alt={prizeForCard?.name} />\n <span>{prizeForCard?.name}</span>\n </>\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n\n <div className=\"eco-lottery-chances\">\n {t('chances')}: <strong>{chances}</strong>\n </div>\n\n {flippedCards.length > 0 && (\n <button className=\"eco-lottery-reset-btn\" onClick={handleReset}>\n {t('tryAgain')}\n </button>\n )}\n </div>\n );\n}\n\n/**\n * 抽奖结果弹窗\n */\nexport function LotteryResultModal({ result, onClose }) {\n if (!result) return null;\n\n const isWin = result.prize && !result.prize.isConsolation;\n\n return (\n <div className=\"eco-lottery-result-modal\">\n <div className=\"eco-lottery-result-overlay\" onClick={onClose} />\n <div className=\"eco-lottery-result-content\">\n <div className={`eco-lottery-result-icon ${isWin ? 'win' : 'lose'}`}>\n {isWin ? '🎉' : '😢'}\n </div>\n <h3>{isWin ? t('congratulations') : t('thanksForPlaying')}</h3>\n {result.prize ? (\n <>\n <img src={result.prize.image || '/prize.png'} alt={result.prize.name} />\n <p>{t('won')}: <strong>{result.prize.name}</strong></p>\n </>\n ) : (\n <p>{t('noLuck')}</p>\n )}\n <button onClick={onClose}>{t('tryAgain')}</button>\n </div>\n </div>\n );\n}\n\n/**\n * 中奖名单滚动\n */\nexport function WinnersMarquee({ lotteryId }) {\n const { winners } = useWinners(lotteryId);\n\n if (winners.length === 0) return null;\n\n return (\n <div className=\"eco-lottery-marquee\">\n <span className=\"eco-lottery-marquee-label\">🏆 {t('recentWinners')}</span>\n <div className=\"eco-lottery-marquee-content\">\n <div className=\"eco-lottery-marquee-track\">\n {[...winners, ...winners].map((w, qbit) => (\n <span key={qbit} className=\"eco-lottery-marquee-item\">\n {w.userName} 获得 {w.prizeName}\n </span>\n ))}\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * 奖品列表\n */\nexport function PrizeList({ prizes }) {\n return (\n <div className=\"eco-lottery-prizes\">\n <h4>{t('prizes')}</h4>\n <div className=\"eco-lottery-prizes-grid\">\n {prizes.map((prize) => (\n <div key={prize.id} className={`eco-lottery-prize ${prize.rare ? 'rare' : ''}`}>\n <img src={prize.image || '/prize.png'} alt={prize.name} />\n <span className=\"eco-lottery-prize-name\">{prize.name}</span>\n {prize.probability && (\n <span className=\"eco-lottery-prize-prob\">{prize.probability}%</span>\n )}\n </div>\n ))}\n </div>\n </div>\n );\n}\n\n/**\n * 我的奖品\n */\nexport function MyPrizesList() {\n const { prizes, loading, claimPrize } = useMyPrizes();\n\n if (loading) {\n return (\n <div className=\"eco-lottery-loading\">\n <div className=\"eco-lottery-spinner\" />\n </div>\n );\n }\n\n if (prizes.length === 0) {\n return (\n <div className=\"eco-lottery-empty\">\n <span>🎁</span>\n <p>暂无奖品</p>\n </div>\n );\n }\n\n return (\n <div className=\"eco-lottery-my-prizes\">\n <h4>{t('myPrizes')}</h4>\n {prizes.map((prize) => (\n <div key={prize.id} className=\"eco-lottery-my-prize\">\n <img src={prize.image || '/prize.png'} alt={prize.name} />\n <div className=\"eco-lottery-my-prize-info\">\n <span className=\"eco-lottery-my-prize-name\">{prize.name}</span>\n <span className=\"eco-lottery-my-prize-time\">\n {new Date(prize.wonAt).toLocaleDateString()}\n </span>\n </div>\n {!prize.claimed ? (\n <button onClick={() => claimPrize(prize.id)}>领取</button>\n ) : (\n <span className=\"eco-lottery-claimed\">{t('prizeClaimed')}</span>\n )}\n </div>\n ))}\n </div>\n );\n}\n\n/**\n * 倒计时\n */\nexport function LotteryCountdown({ endTime }) {\n const { remaining, isEnded } = useLotteryCountdown(endTime);\n\n if (isEnded) {\n return <div className=\"eco-lottery-countdown ended\">{t('ended')}</div>;\n }\n\n return (\n <div className=\"eco-lottery-countdown\">\n <span className=\"eco-lottery-countdown-label\">{t('endsIn')}</span>\n <div className=\"eco-lottery-countdown-timer\">\n <div className=\"eco-lottery-countdown-item\">\n <span className=\"eco-lottery-countdown-value\">{remaining.days}</span>\n <span className=\"eco-lottery-countdown-unit\">天</span>\n </div>\n <span className=\"eco-lottery-countdown-sep\">:</span>\n <div className=\"eco-lottery-countdown-item\">\n <span className=\"eco-lottery-countdown-value\">{String(remaining.hours).padStart(2, '0')}</span>\n <span className=\"eco-lottery-countdown-unit\">时</span>\n </div>\n <span className=\"eco-lottery-countdown-sep\">:</span>\n <div className=\"eco-lottery-countdown-item\">\n <span className=\"eco-lottery-countdown-value\">{String(remaining.minutes).padStart(2, '0')}</span>\n <span className=\"eco-lottery-countdown-unit\">分</span>\n </div>\n <span className=\"eco-lottery-countdown-sep\">:</span>\n <div className=\"eco-lottery-countdown-item\">\n <span className=\"eco-lottery-countdown-value\">{String(remaining.seconds).padStart(2, '0')}</span>\n <span className=\"eco-lottery-countdown-unit\">秒</span>\n </div>\n </div>\n </div>\n );\n}\n\n","/**\n * @quantabit/lottery-sdk\n * Lottery System SDK - Full Version\n */\n\n// API Client\nexport { lotteryApi, LotteryApiClient } from './services/lotteryApi';\n\n// Types\nexport { LotteryType, PrizeLevel } from './types';\n\n// i18n\nexport { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t } from './i18n';\n\n// React Hooks\nexport {\n useLottery,\n useDraw,\n useSpinWheel,\n useScratchCard,\n useCardFlip,\n useLotteryHistory,\n useWinners,\n useMyPrizes,\n useLotteryCountdown,\n} from './hooks/useLottery';\n\n// React Components\nexport {\n SpinWheel,\n CardFlipGame,\n LotteryResultModal,\n WinnersMarquee,\n PrizeList,\n MyPrizesList,\n LotteryCountdown,\n} from './components/Lottery';\n\n// Shortcut Methods\nimport { lotteryApi } from './services/lotteryApi';\n\nexport const getLottery = (...args) => lotteryApi.getLottery(...args);\nexport const draw = (...args) => lotteryApi.draw(...args);\nexport const getMyPrizes = (...args) => lotteryApi.getMyPrizes(...args);\nexport const getWinners = (...args) => lotteryApi.getWinners(...args);\n"],"names":["LotteryApiClient","BaseApiClient","constructor","config","getActiveLotteries","get","getLotteries","params","getLottery","lotteryId","getPrizes","draw","times","post","batchDraw","count","getDrawChances","earnChance","method","getWinningRecords","getMyWinnings","getLatestWinners","limit","claimPrize","recordId","receiveData","getPendingPrizes","getPrizeShipping","getLotteryStats","getOdds","createLottery","data","updateLottery","updates","put","getAdminStats","getMyPrizes","getWinners","lotteryApi","LotteryType","PrizeLevel","SUPPORTED_LANGUAGES","messages","zh","lottery","luckyDraw","wheel","scratch","slot","card","shake","start","spin","flip","tryAgain","chances","remaining","noChances","getMoreChances","congratulations","won","thanksForPlaying","noLuck","prizeClaimed","prize","prizes","myPrizes","grandPrize","firstPrize","secondPrize","thirdPrize","consolation","probability","rare","normal","rules","howToPlay","history","winners","recentWinners","loading","processing","startsIn","endsIn","ended","eventName","eventPeriod","en","ja","ko","currentLanguage","setLanguage","lang","includes","getLanguage","t","key","useLottery","setLottery","useState","setChances","setLoading","error","setError","fetchLottery","useCallback","response","err","message","useEffect","refresh","useDraw","drawing","setDrawing","result","setResult","reset","useSpinWheel","spinning","setSpinning","rotation","setRotation","resultIndex","setResultIndex","targetIndex","segments","length","segmentAngle","extraRotations","targetRotation","setTimeout","useScratchCard","scratched","setScratched","scratchPercent","setScratchPercent","canvasRef","useRef","initCard","canvas","coverImage","ctx","getContext","img","Image","onload","drawImage","width","height","src","current","handleScratch","e","rect","getBoundingClientRect","x","clientX","left","y","clientY","top","globalCompositeOperation","beginPath","arc","Math","PI","fill","imageData","getImageData","i","percent","useCardFlip","cardCount","flippedCards","setFlippedCards","selectedCard","setSelectedCard","revealed","setRevealed","flipCard","index","revealAll","Array","from","_","useLotteryHistory","setHistory","fetchHistory","getHistory","console","useWinners","setWinners","fetchWinners","useMyPrizes","setPrizes","fetchPrizes","prizeId","prev","map","p","id","claimed","useLotteryCountdown","endTime","setRemaining","days","hours","minutes","seconds","isEnded","setIsEnded","updateCountdown","now","Date","end","getTime","diff","floor","timer","setInterval","clearInterval","SpinWheel","onResult","handleSpin","prizeIndex","findIndex","React","createElement","className","style","transform","qbit","angle","backgroundColor","name","onClick","disabled","CardFlipGame","handleFlip","drawResult","handleReset","isFlipped","isSelected","prizeForCard","Fragment","image","alt","LotteryResultModal","onClose","isWin","isConsolation","WinnersMarquee","w","userName","prizeName","PrizeList","MyPrizesList","wonAt","toLocaleDateString","LotteryCountdown","String","padStart","args"],"mappings":"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"}
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.eco-lottery-root,:root{--eco-lottery-primary:#6366f1;--eco-lottery-secondary:#8b5cf6;--eco-lottery-gold:#fbbf24;--eco-lottery-bg:#fff;--eco-lottery-bg-secondary:#f8fafc;--eco-lottery-border:#e2e8f0;--eco-lottery-text:#1e293b;--eco-lottery-text-secondary:#64748b;--eco-lottery-radius:12px;--eco-lottery-transition:all 0.3s ease}@media (prefers-color-scheme:dark){.eco-lottery-root,:root{--eco-lottery-bg:#1e1e2e;--eco-lottery-bg-secondary:#2a2a3e;--eco-lottery-border:#3a3a4e;--eco-lottery-text:#f1f5f9;--eco-lottery-text-secondary:#94a3b8}}.eco-lottery-wheel{align-items:center;display:flex;flex-direction:column;padding:20px}.eco-lottery-wheel-container{height:300px;position:relative;width:300px}.eco-lottery-wheel-disc{border-radius:50%;box-shadow:0 0 20px rgba(99,102,241,.3);height:100%;position:relative;transition:transform 4s cubic-bezier(.17,.67,.12,.99);width:100%}.eco-lottery-wheel-segment{align-items:center;clip-path:polygon(0 100%,100% 0,0 0);display:flex;height:50%;justify-content:center;left:50%;position:absolute;top:0;transform-origin:bottom left;width:50%}.eco-lottery-wheel-prize{color:#fff;font-size:12px;font-weight:600;left:30%;position:absolute;top:40%;transform:rotate(67.5deg);white-space:nowrap}.eco-lottery-wheel-pointer{color:var(--eco-lottery-gold);filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));font-size:30px;left:50%;position:absolute;top:-15px;transform:translateX(-50%);z-index:10}.eco-lottery-spin-btn{background:linear-gradient(135deg,var(--eco-lottery-primary),var(--eco-lottery-secondary));border:none;border-radius:30px;box-shadow:0 4px 15px rgba(99,102,241,.4);color:#fff;cursor:pointer;font-size:18px;font-weight:700;margin-top:24px;padding:16px 48px;transition:var(--eco-lottery-transition)}.eco-lottery-spin-btn:hover:not(:disabled){transform:scale(1.05)}.eco-lottery-spin-btn:disabled{cursor:not-allowed;opacity:.6}.eco-lottery-cards{padding:20px}.eco-lottery-cards-grid{display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin:0 auto;max-width:320px}.eco-lottery-card{aspect-ratio:1;cursor:pointer;perspective:1000px}.eco-lottery-card-inner{height:100%;position:relative;transform-style:preserve-3d;transition:transform .6s;width:100%}.eco-lottery-card.flipped .eco-lottery-card-inner{transform:rotateY(180deg)}.eco-lottery-card-back,.eco-lottery-card-front{align-items:center;backface-visibility:hidden;border-radius:var(--eco-lottery-radius);display:flex;flex-direction:column;inset:0;justify-content:center;position:absolute}.eco-lottery-card-front{background:linear-gradient(135deg,var(--eco-lottery-primary),var(--eco-lottery-secondary));color:#fff;font-size:36px;font-weight:700}.eco-lottery-card-back{background:var(--eco-lottery-bg);border:2px solid var(--eco-lottery-border);transform:rotateY(180deg)}.eco-lottery-card.selected .eco-lottery-card-back{border-color:var(--eco-lottery-gold);box-shadow:0 0 20px rgba(251,191,36,.5)}.eco-lottery-card-back img{height:50%;object-fit:contain;width:50%}.eco-lottery-card-back span{color:var(--eco-lottery-text);font-size:12px;margin-top:8px}.eco-lottery-result-modal{align-items:center;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.eco-lottery-result-overlay{background:rgba(0,0,0,.7);inset:0;position:absolute}.eco-lottery-result-content{background:var(--eco-lottery-bg);border-radius:20px;max-width:340px;padding:40px 30px;position:relative;text-align:center;width:90%}.eco-lottery-result-icon{font-size:64px;margin-bottom:16px}.eco-lottery-result-icon.win{animation:eco-lottery-bounce .5s ease}@keyframes eco-lottery-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.eco-lottery-result-content h3{color:var(--eco-lottery-text);font-size:24px;margin:0 0 20px}.eco-lottery-result-content img{height:100px;margin-bottom:16px;object-fit:contain;width:100px}.eco-lottery-result-content p{color:var(--eco-lottery-text-secondary);font-size:16px;margin:0 0 24px}.eco-lottery-result-content p strong{color:var(--eco-lottery-primary)}.eco-lottery-result-content button{background:var(--eco-lottery-primary);border:none;border-radius:25px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 40px}.eco-lottery-marquee{align-items:center;background:rgba(99,102,241,.1);border-radius:8px;display:flex;overflow:hidden;padding:12px 16px}.eco-lottery-marquee-label{color:var(--eco-lottery-primary);flex-shrink:0;font-size:14px;font-weight:500;margin-right:16px}.eco-lottery-marquee-content{flex:1;overflow:hidden}.eco-lottery-marquee-track{animation:eco-lottery-scroll 20s linear infinite;display:flex;gap:40px}@keyframes eco-lottery-scroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.eco-lottery-marquee-item{color:var(--eco-lottery-text-secondary);font-size:13px;white-space:nowrap}.eco-lottery-prizes{padding:20px}.eco-lottery-prizes h4{color:var(--eco-lottery-text);font-size:16px;margin:0 0 16px}.eco-lottery-prizes-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.eco-lottery-prize{align-items:center;background:var(--eco-lottery-bg);border:1px solid var(--eco-lottery-border);border-radius:var(--eco-lottery-radius);display:flex;flex-direction:column;padding:16px 12px;text-align:center}.eco-lottery-prize.rare{background:linear-gradient(135deg,rgba(251,191,36,.1),transparent);border-color:var(--eco-lottery-gold)}.eco-lottery-prize img{height:50px;margin-bottom:8px;object-fit:contain;width:50px}.eco-lottery-prize-name{color:var(--eco-lottery-text);font-size:13px}.eco-lottery-prize-prob{color:var(--eco-lottery-text-secondary);font-size:11px;margin-top:4px}.eco-lottery-my-prizes h4{color:var(--eco-lottery-text);font-size:16px;margin:0 0 16px;padding:0 20px}.eco-lottery-my-prize{align-items:center;border-bottom:1px solid var(--eco-lottery-border);display:flex;gap:16px;padding:16px 20px}.eco-lottery-my-prize img{height:50px;object-fit:contain;width:50px}.eco-lottery-my-prize-info{flex:1}.eco-lottery-my-prize-name{color:var(--eco-lottery-text);display:block;font-size:15px;margin-bottom:4px}.eco-lottery-my-prize-time{color:var(--eco-lottery-text-secondary);font-size:12px}.eco-lottery-my-prize button{background:var(--eco-lottery-primary);border:none;border-radius:16px;color:#fff;cursor:pointer;font-size:13px;padding:8px 20px}.eco-lottery-claimed{color:var(--eco-lottery-text-secondary);font-size:13px}.eco-lottery-countdown{align-items:center;display:flex;flex-direction:column;padding:20px}.eco-lottery-countdown.ended{color:var(--eco-lottery-text-secondary);font-size:18px}.eco-lottery-countdown-label{color:var(--eco-lottery-text-secondary);font-size:14px;margin-bottom:12px}.eco-lottery-countdown-timer{align-items:center;display:flex;gap:8px}.eco-lottery-countdown-item{align-items:center;display:flex;flex-direction:column}.eco-lottery-countdown-value{background:var(--eco-lottery-bg-secondary);border-radius:8px;color:var(--eco-lottery-text);font-size:28px;font-weight:700;min-width:50px;padding:8px 12px}.eco-lottery-countdown-unit{color:var(--eco-lottery-text-secondary);font-size:11px;margin-top:4px}.eco-lottery-countdown-sep{color:var(--eco-lottery-text-secondary);font-size:24px;font-weight:700}.eco-lottery-chances{color:var(--eco-lottery-text-secondary);font-size:14px;margin-top:16px}.eco-lottery-chances strong{color:var(--eco-lottery-primary);font-size:18px}.eco-lottery-reset-btn{background:transparent;border:1px solid var(--eco-lottery-border);border-radius:20px;color:var(--eco-lottery-text);cursor:pointer;font-size:14px;margin-top:20px;padding:12px 32px}.eco-lottery-loading{align-items:center;display:flex;justify-content:center;padding:60px}.eco-lottery-spinner{animation:eco-lottery-spin 1s linear infinite;border:3px solid var(--eco-lottery-border);border-radius:50%;border-top-color:var(--eco-lottery-primary);height:32px;width:32px}@keyframes eco-lottery-spin{to{transform:rotate(1turn)}}.eco-lottery-empty{align-items:center;color:var(--eco-lottery-text-secondary);display:flex;flex-direction:column;padding:60px}.eco-lottery-empty span{font-size:48px;margin-bottom:12px;opacity:.5}
|
package/package.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@quantabit/lottery-sdk",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "QuantaBit Lottery SDK - Lucky draw and prize management",
|
|
6
|
+
"main": "dist/index.cjs",
|
|
7
|
+
"module": "dist/index.esm.js",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"README.md",
|
|
11
|
+
"LICENSE",
|
|
12
|
+
"types"
|
|
13
|
+
],
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./types/index.d.ts",
|
|
17
|
+
"import": "./dist/index.esm.js",
|
|
18
|
+
"require": "./dist/index.cjs"
|
|
19
|
+
},
|
|
20
|
+
"./styles": "./dist/styles.css",
|
|
21
|
+
"./styles.css": "./dist/styles.css"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "rollup -c",
|
|
25
|
+
"dev": "rollup -c -w",
|
|
26
|
+
"clean": "rm -rf dist",
|
|
27
|
+
"prepublishOnly": "npm run build",
|
|
28
|
+
"test": "jest --passWithNoTests"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@rollup/plugin-commonjs": "^25.0.0",
|
|
32
|
+
"@rollup/plugin-node-resolve": "^15.0.0",
|
|
33
|
+
"rollup": "^4.0.0",
|
|
34
|
+
"@babel/core": "^7.23.0",
|
|
35
|
+
"@babel/preset-react": "^7.23.0",
|
|
36
|
+
"@rollup/plugin-babel": "^6.0.0",
|
|
37
|
+
"rollup-plugin-postcss": "^4.0.0"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@quantabit/sdk-config": "^1.0.6"
|
|
41
|
+
},
|
|
42
|
+
"author": "QuantaBit Team",
|
|
43
|
+
"license": "MIT",
|
|
44
|
+
"publishConfig": {
|
|
45
|
+
"access": "public",
|
|
46
|
+
"registry": "https://registry.npmjs.org"
|
|
47
|
+
},
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"react": ">=17.0.0",
|
|
50
|
+
"react-dom": ">=17.0.0"
|
|
51
|
+
},
|
|
52
|
+
"repository": {
|
|
53
|
+
"type": "git",
|
|
54
|
+
"url": "https://github.com/quantabit-chain/qbit-sdk.git",
|
|
55
|
+
"directory": "packages/lottery-sdk"
|
|
56
|
+
},
|
|
57
|
+
"homepage": "https://github.com/quantabit-chain/qbit-sdk/tree/main/packages/lottery-sdk#readme",
|
|
58
|
+
"bugs": {
|
|
59
|
+
"url": "https://github.com/quantabit-chain/qbit-sdk/issues"
|
|
60
|
+
},
|
|
61
|
+
"keywords": [
|
|
62
|
+
"quantabit",
|
|
63
|
+
"lottery",
|
|
64
|
+
"sdk"
|
|
65
|
+
],
|
|
66
|
+
"types": "types/index.d.ts",
|
|
67
|
+
"engines": {
|
|
68
|
+
"node": ">=18.0.0"
|
|
69
|
+
},
|
|
70
|
+
"sideEffects": false,
|
|
71
|
+
"qbit": {
|
|
72
|
+
"privacy": {
|
|
73
|
+
"level": "functional",
|
|
74
|
+
"dataCollection": "Feature-related data for personalization. Requires user consent.",
|
|
75
|
+
"gdprCompliant": true,
|
|
76
|
+
"ccpaCompliant": true
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @quantabit/lottery-sdk TypeScript Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Auto-generated type stubs. Enhance with specific types as the SDK matures.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { FC, ReactNode } from 'react';
|
|
8
|
+
|
|
9
|
+
// ============ Services ============
|
|
10
|
+
|
|
11
|
+
export declare const lotteryApi: any;
|
|
12
|
+
|
|
13
|
+
export declare class LotteryApiClient {
|
|
14
|
+
constructor(config?: Record<string, any>);
|
|
15
|
+
setToken(token: string): void;
|
|
16
|
+
setBaseUrl(url: string): void;
|
|
17
|
+
destroy(): void;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// ============ Types & Enums ============
|
|
21
|
+
|
|
22
|
+
export declare const LotteryType: Record<string, string>;
|
|
23
|
+
export declare const PrizeLevel: any;
|
|
24
|
+
|
|
25
|
+
// ============ Functions & Utilities ============
|
|
26
|
+
|
|
27
|
+
export declare const messages: Record<string, Record<string, string>>;
|
|
28
|
+
export declare const SUPPORTED_LANGUAGES: string[];
|
|
29
|
+
export declare function setLanguage(lang: string): void;
|
|
30
|
+
export declare function getLanguage(): string;
|
|
31
|
+
export declare function t(key: string, params?: Record<string, any>): string;
|
|
32
|
+
export declare function getLottery(...args: any[]): any;
|
|
33
|
+
export declare function draw(...args: any[]): any;
|
|
34
|
+
export declare function getMyPrizes(...args: any[]): any;
|
|
35
|
+
export declare function getWinners(...args: any[]): any;
|
|
36
|
+
|