{"_id":"@beta-gamer/react","_rev":"17-c794e416b2b14a33f9846cc02d73e0c7","name":"@beta-gamer/react","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@beta-gamer/react","version":"0.1.0","license":"MIT","_id":"@beta-gamer/react@0.1.0","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer/issues"},"dist":{"shasum":"e4d21f6fc5a3f43c683a1d188850a1257f374875","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.0.tgz","fileCount":5,"integrity":"sha512-Z8/tBW0tYTqFm0inVC8FWDZTouFQk41Zyvoe+5SRBsLqvQ2d/CpCbE6KG4Hhnyuh2gdmTgreAxHxb5dNyNAYGg==","signatures":[{"sig":"MEUCIDDuj++o0oIKESNXqwhR7rxBfuq8E5iXDJzcmpdkVZgeAiEAq5wB78KdsluZR+0KLAQziHCjglvTrG8qAemCrVVPAWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39351},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"1d0f3200382355b7a0b8bb6b9db06f47f812146f","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.0_1773598020954_0.32996610641294555","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@beta-gamer/react","version":"0.1.1","license":"MIT","_id":"@beta-gamer/react@0.1.1","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"987798fb7aff2f1cbc3488381ac0c0054cb7c6e9","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.1.tgz","fileCount":6,"integrity":"sha512-Sv/0WDB4oynmdrsBn3Z3bZU6T1fgFh+efEzNobIHEt7b6ezHq5DB4UPLbHwS4zVX8WxrD9pb9k9zZRp5ugPfGA==","signatures":[{"sig":"MEUCIQDGMLHVsF4/3ynSFM0XeddSXLzqRln0lFFUFkglgonqbwIgFTpvhcEf/dPCt4Lr96C8p6rZQE9gJaBPJ4dWOSO336U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43228},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3b0997df53ee35bbf302b87d8e17bd08046c78e8","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.1_1773603424541_0.6608548098161799","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@beta-gamer/react","version":"0.1.2","license":"MIT","_id":"@beta-gamer/react@0.1.2","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"ac0e08bbcead1e6896204b8eb3af133b31543f41","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.2.tgz","fileCount":6,"integrity":"sha512-9qclc5S56Q6DcRLcc+L5ceDlbaSWonR5xRB5kVxbm1Ztf7e44lQV7VoT2UD+lp57naPoBR2ZMY+AwOwle0da4w==","signatures":[{"sig":"MEQCIHp/uC1ZbEhgQZNLPTui1hYg7EWKC0cPTxeu539uzChPAiBMAEWWPHPoSqubPhLmogpA+FiQbW2nJlx2Rw7lkFw6jQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43228},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7138f585d529781e01fe36e85452f2dc8d2ad7f9","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.2_1773666429183_0.6952442141931883","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@beta-gamer/react","version":"0.1.3","license":"MIT","_id":"@beta-gamer/react@0.1.3","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"99f18bd73f86504a6adaae24557a2d8f0de8c18f","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.3.tgz","fileCount":6,"integrity":"sha512-055wuqFR3xpVv6FMkDI+ic2ix3DK+9hyttEGh/TjVPN4EKPpqE+jC39nptdwZvbATZrbWKzZCwSPfi4RTqRwEQ==","signatures":[{"sig":"MEUCIQCoCDmnkDMZ5fUB+0xXeOZ4mlrjIUTH2+gmzP1gw/U5hAIgIgMLg5HSEhw2XN8WSt1b9kmWLMGWni7uFvt9JJSxD68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43638},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"133b9c4a5e077761f77d339880618643aad3bf39","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.3_1773699754246_0.13194021157741087","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@beta-gamer/react","version":"0.1.5","license":"MIT","_id":"@beta-gamer/react@0.1.5","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"9438266622563ee420aa9d286c4f1d040f77f8dc","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.5.tgz","fileCount":6,"integrity":"sha512-HxiBb4ZmJPe7T79CvPZ7xtTtQZOEdvnLF0iGIaFtgXHUbcMP2apCuFKoPNfCIQOxJe6Ey6uu9lQ18y1pujRyhA==","signatures":[{"sig":"MEUCIQDnk/d0TGac5dJbpP+1Qr012yraqjrU0XsXC9al9MUaFAIgcRqyieLy7HYmTqxdq3zsfcNZdbn7Qzqltl3aHUAgJ5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43638},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"133b9c4a5e077761f77d339880618643aad3bf39","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.5_1773702423690_0.01715794928885228","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@beta-gamer/react","version":"0.1.7","license":"MIT","_id":"@beta-gamer/react@0.1.7","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"98a056011761e60ca3896605270016536684d83b","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.7.tgz","fileCount":6,"integrity":"sha512-2itSvY6PcV7E6xezkGu971DiPghna6MGBCnmxBBv/8Xp2+4+k+ByZC+c/L609ENdXqF0SJQECet7nc9sh73vFw==","signatures":[{"sig":"MEYCIQDzT4I1uGGY71DOYSxVtfLOdib3LHuirCiJLdXNLJIk5QIhAMtxQTetzhJqouxbvDPkFLFjE31FJYYb0baskaJyTKUJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45354},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"29ab9499967a29dcc3ce9b8f322018e85b870884","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.7_1773751343830_0.5547962800970263","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@beta-gamer/react","version":"0.1.8","license":"MIT","_id":"@beta-gamer/react@0.1.8","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"acf20693a5b902de49b39283d008e95cb634b22b","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.8.tgz","fileCount":6,"integrity":"sha512-WnnPxZZcXYTpeJosYL6TMiCEa5Tgt7NfbRHwNBy13wAe0wLZ0FMyNF8UD1kYRTCaCSPMntmcxmDOTxNU849ELQ==","signatures":[{"sig":"MEUCIQDeUrTrxnmTiE+3iTDryZZG5V9NM/lXhRyEkYGSufokBAIgIIHHCvUVAS5NMMHPWRxoSx5Hmd55v/IhoxOXdz2Xn98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44712},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"364b93c20530e7d0d628eb976191ab9f1a06b52a","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.8_1773759336891_0.5564190533530655","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@beta-gamer/react","version":"0.1.10","license":"MIT","_id":"@beta-gamer/react@0.1.10","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"0160c73e563ee69f8272af3f4747fb1bb536ad63","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.10.tgz","fileCount":6,"integrity":"sha512-NHjcRIMns/2+KdvlbJw+sTHb18BHsFUdNZT/Hn35ejN1vB5S7mLvJHwPI4tlUnT3wpxjgkJ45E0SfsqkNU+foQ==","signatures":[{"sig":"MEUCIQDnjRQ0irbdwCWIOppi7ebtQI1JsKl9a5xVel3j2az+vQIgHXbZ7PEu2GI/NJopB0/U0GCS8Rd2fljPuJyC9r9ZpVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44713},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"364b93c20530e7d0d628eb976191ab9f1a06b52a","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.10_1773760370010_0.4672328848972329","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@beta-gamer/react","version":"0.1.11","license":"MIT","_id":"@beta-gamer/react@0.1.11","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"435eb5f51b2851fd2c5445dcc8c68b9396fe27dd","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.11.tgz","fileCount":6,"integrity":"sha512-8DIZnIvuMabmoBN9WhTxFQEUUG6Ln1lMto1cM+K/GsHGJg/ha0qWHAzbZnvMS8zfzVZsGcxV+Oj8ntr0DbpxXA==","signatures":[{"sig":"MEUCIQD55O88ynZmijo0OnWqbGFe2azNPFWQdOK4HT+P23dbYQIgBxiawZ0cviN216qyWTu2hV5E34WAAOBm4Xu48z8EJNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46206},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"baa94f19cb0d8ef84f54748153edc12c23f54f04","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.11_1773776376004_0.6666073316668839","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@beta-gamer/react","version":"0.1.12","license":"MIT","_id":"@beta-gamer/react@0.1.12","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"6ea50e87c7ff97d25f0e6c8c3ad7ed212a9b33ee","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.12.tgz","fileCount":6,"integrity":"sha512-a3Xu7zJtxafI3J3K9LB/3/t34jSy3f9qoEL0qtZTfV9GbED08t8pR41e7J0qumrpxZWOhiqZFrhz6yIcDHU4sA==","signatures":[{"sig":"MEQCIAqjjUEDV++6+RezaicgRJbaUn1YveV4pZcsWEa9jDH6AiBowXZ1srdrH26L5iM4sMsABW5HZqnRsxBQWDylCzCiqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47060},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"baa94f19cb0d8ef84f54748153edc12c23f54f04","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.12_1773792558084_0.42017997912923843","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@beta-gamer/react","version":"0.1.13","license":"MIT","_id":"@beta-gamer/react@0.1.13","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"5228ab2ede95a23d23c1460824acc1bc818e0b0c","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.13.tgz","fileCount":6,"integrity":"sha512-gQ+FqGALk9z1fyGw2p4IxygQrySG3uLNMhSjmCxhQphauIbGQnpy6K7U+syBmRUxV5uqbOO34edVph1sF8NXHA==","signatures":[{"sig":"MEQCIE7Qv5Telho9RB0SfQGYVbuWJg77Aelgs1CQpFQbmv4nAiAsbNNIWVVqSHgSqU9shyVYwn6CoAcxliiCh8uv0ImRsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325888},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"baa94f19cb0d8ef84f54748153edc12c23f54f04","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.13_1773904575621_0.34113514409395895","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@beta-gamer/react","version":"0.1.14","license":"MIT","_id":"@beta-gamer/react@0.1.14","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"47b3f8e0af3a6d459e5d2e67b5d9c954950ed319","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.14.tgz","fileCount":6,"integrity":"sha512-pmluciftQerEtZNMPzn2zMJPc8USM8OPoqst1iYDZ8fZnxHUa23BkrjcBCYpWos3ddhMS8qydqtt617IlAqXNQ==","signatures":[{"sig":"MEQCIEkPdUbQWbDLIuum9msDBdCzdnGjlqddFHzF6dApPZ8/AiAVIBAQKfQmDOhgwb33EgvOVUvLyJfgcdQtDJoNtsJf8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334790},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"baa94f19cb0d8ef84f54748153edc12c23f54f04","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.14_1773904914173_0.11044494655345094","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@beta-gamer/react","version":"0.1.15","license":"MIT","_id":"@beta-gamer/react@0.1.15","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"98b93e9bd461bf26b55ec3d22c28157fcc68a595","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.15.tgz","fileCount":6,"integrity":"sha512-klkjwJcyyaGG1SrVPkMZzMxYya/MB8CsoLO5Ckat2GgQu4PfZ7Sc+lfnaP46VjEoUsHtAXjzznKzXn8AJFtwXg==","signatures":[{"sig":"MEQCIASspLhzAkPISInDIGPVWb7R7uv8Tk3KKGz7I+LIHmXWAiBShyQfpl8BDdvXYonZgFhlNQrCf1HIclqd+fo8BeEsnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329299},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"43d151520b59b81e061356fb481bd4920c07ae69","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.15_1774103462371_0.36639036663896163","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@beta-gamer/react","version":"0.1.16","license":"MIT","_id":"@beta-gamer/react@0.1.16","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"f6cba08421abba43dba4b83b64ac389564f7f16b","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.16.tgz","fileCount":6,"integrity":"sha512-koEtkdQDowVKkVN6O5PGigpg5wiMGYDESrWRzTTFuOHBKYQhvU4RjrQgdKYCB+WdWBS/FPfiZUEE9hMAIzZCCQ==","signatures":[{"sig":"MEUCIQDaRUBS6MeCTXDE9rtlZNVkQv1jo/qYNSMZUg859ckNhQIgKnQM9zjn1SkEHvAd72B0fcc4nvFu1KLbPbAZ5cF4pQE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335716},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3ccf996ce78e221032bc503048e5d2b769bb6da5","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.16_1774110432146_0.37088996316562706","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@beta-gamer/react","version":"0.1.17","license":"MIT","_id":"@beta-gamer/react@0.1.17","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"dd647ad0d855be4a722319f1290b37b5db005a56","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.1.17.tgz","fileCount":6,"integrity":"sha512-0jsFpcYFR5Y20jcNgNByELEV3tUTWpFxjElx1U9wwLUN6RzsyKnlbQaF1uyKSqSsB5V6/vUpD4rPzuAlBorlyw==","signatures":[{"sig":"MEUCIEFMpzmAho5iW3bouAhiFzFEM64lSboLBQgiEY0HaCi6AiEA2QqLi9N5vnZVh+7bEqlO66FVBEqjv/9vRcSw1z5zkzM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336348},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"36668cd5a3db705371099d82b3892dc340728df4","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.10.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"22.14.0","dependencies":{"socket.io-client":"^4.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.17_1774130911123_0.7821057683601182","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@beta-gamer/react","version":"0.2.0","license":"MIT","_id":"@beta-gamer/react@0.2.0","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"d5856eb626cc348886fdae964976456b480b7212","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.2.0.tgz","fileCount":6,"integrity":"sha512-ggCLYNUqmtiBj/v1ITp8F8GWajvRb+YJKLCYyZuLyRkup6P0KVZJAWsBUZ2Tq3W75GrnSw4++FSTBZ821lmkZQ==","signatures":[{"sig":"MEUCIBnUzwkvN3YeogAz6DLnJxp5+Gii3xRKIPuOLy4v5un4AiEA3uoHu+4Iolbp8OJ8bKFmR57THhax2UOqvpbzvv0FmKE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDBqdcgGFvs7P4tZ/jsQLrsJiEym7zT5mLc6DDEzCHh2wIhAL8gZOsM9qeS31q3ANNsR+t7yaTHbOzo6ZeRRo1JprBV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56223},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"4d37712d7c92e3979ecd329e5c695a7800ac2ae9","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"_nodeVersion":"24.19.0","dependencies":{"socket.io-client":"^4.8.1","@beta-gamer/react-ui":"*","@beta-gamer/react-chess":"*","@beta-gamer/react-chkobe":"*","@beta-gamer/react-checkers":"*","@beta-gamer/react-connect4":"*","@beta-gamer/react-tictactoe":"*"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react_0.2.0_1788613859663_0.9939799943986403","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"_id":"@beta-gamer/react@0.3.0","bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"dist":{"shasum":"e6b34c97411d4e0775cd8e25a800d390479469fa","tarball":"https://registry.npmjs.org/@beta-gamer/react/-/react-0.3.0.tgz","fileCount":6,"integrity":"sha512-s2XYk2qGW9fgpXia55qvQ1RLZyn30KNsIDyLSpQXXk7yEzJFqaZqBrz1UOBFfISZVB+7tlSHx61UlugOPuJU+Q==","signatures":[{"sig":"MEMCIFC7vE+FiSuFCsPfbKJpTs99oTKHtthXzcyoTIp6LQmNAh9/CBzBuN0xGnXYnYUeyGuhco4CQpqIpvcUwUwaLpEW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF0UblGT2P1KwztolreWF+aMy7V1rMzgnBftxFWfBgsmAiEAi+ubqx3dt9eEUeUckjApAbnsAGCYHzs1Hoi+V5Keqok="}],"unpackedSize":57453},"main":"./dist/index.js","name":"@beta-gamer/react","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"4d37712d7c92e3979ecd329e5c695a7800ac2ae9","license":"MIT","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --external react --watch","build":"tsup src/index.ts --format esm,cjs --dts --external react"},"version":"0.3.0","_npmUser":{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"},"homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"React SDK for Beta Gamer GaaS — composable game components","directories":{},"maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"_nodeVersion":"24.19.0","dependencies":{"socket.io-client":"^4.8.1","@beta-gamer/react-ui":"*","@beta-gamer/react-chess":"*","@beta-gamer/react-chkobe":"*","@beta-gamer/react-checkers":"*","@beta-gamer/react-connect4":"*","@beta-gamer/react-tictactoe":"*"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/react":"^19"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react_0.3.0_1788613863387_0.5210220293472854"}}},"time":{"created":"2026-03-15T18:07:00.875Z","modified":"2026-09-05T13:11:03.667Z","0.1.0":"2026-03-15T18:07:01.108Z","0.1.1":"2026-03-15T19:37:04.677Z","0.1.2":"2026-03-16T13:07:09.326Z","0.1.3":"2026-03-16T22:22:34.404Z","0.1.5":"2026-03-16T23:07:03.852Z","0.1.7":"2026-03-17T12:42:23.975Z","0.1.8":"2026-03-17T14:55:37.027Z","0.1.10":"2026-03-17T15:12:50.194Z","0.1.11":"2026-03-17T19:39:36.141Z","0.1.12":"2026-03-18T00:09:18.285Z","0.1.13":"2026-03-19T07:16:15.786Z","0.1.14":"2026-03-19T07:21:54.329Z","0.1.15":"2026-03-21T14:31:02.571Z","0.1.16":"2026-03-21T16:27:12.310Z","0.1.17":"2026-03-21T22:08:31.264Z","0.2.0":"2026-09-05T13:10:59.776Z","0.3.0":"2026-09-05T13:11:03.497Z"},"bugs":{"url":"https://github.com/acetennyson/beta-gamer-sdk/issues"},"license":"MIT","homepage":"https://github.com/acetennyson/beta-gamer-sdk#readme","repository":{"url":"git+https://github.com/acetennyson/beta-gamer-sdk.git","type":"git"},"description":"React SDK for Beta Gamer GaaS — composable game components","maintainers":[{"name":"iamsupreme.developers","email":"danybeloved@gmail.com"}],"readme":"# @beta-gamer/react\r\n\r\n<div align=\"center\">\r\n\r\n![Beta Gamer React SDK](https://img.shields.io/badge/React-SDK-61DAFB?style=for-the-badge&logo=react&logoColor=white)\r\n![Version](https://img.shields.io/npm/v/@beta-gamer/react?style=for-the-badge&color=success)\r\n![License](https://img.shields.io/npm/l/@beta-gamer/react?style=for-the-badge&color=blue)\r\n![Downloads](https://img.shields.io/npm/dm/@beta-gamer/react?style=for-the-badge&color=orange)\r\n\r\n**React SDK for [Beta Gamer](https://beta-gamer.com) — embed multiplayer games into your app as composable components.**\r\n\r\n*You control the layout; we handle matchmaking, game logic, and real-time sync.*\r\n\r\n[🚀 Quick Start](#quick-start) • [📖 Documentation](#documentation) • [🎮 Games](#supported-games) • [🔧 API Reference](#api-reference) • [💡 Examples](#examples)\r\n\r\n</div>\r\n\r\n---\r\n\r\n## ✨ Features\r\n\r\n- 🎯 **Drop-in Components** — Add multiplayer games with a single component\r\n- 🔄 **Real-time Sync** — Automatic state synchronization across players\r\n- 🤖 **Bot Support** — Built-in AI opponents with configurable difficulty\r\n- 🎨 **Customizable UI** — Full control over styling and layout\r\n- 📱 **Responsive Design** — Works on desktop, tablet, and mobile\r\n- 🔐 **Secure Sessions** — JWT-based authentication with your backend\r\n- ⚡ **TypeScript Ready** — Full type safety and IntelliSense support\r\n\r\n## 📦 Installation\r\n\r\n```bash\r\nnpm install @beta-gamer/react\r\n```\r\n\r\n### Requirements\r\n\r\n- **React 18+**\r\n- **A Beta Gamer account** → [Sign up at beta-gamer.com](https://beta-gamer.com)\r\n\r\n---\r\n\r\n## 🚀 Quick Start\r\n\r\n### 1. Create a Session (Backend)\r\n\r\n**Never expose your API key on the client.** Create sessions from your backend:\r\n\r\n```typescript\r\n// Your server — Express, Next.js API route, Cloudflare Worker, etc.\r\nconst response = await fetch('https://api.beta-gamer.com/v1/sessions', {\r\n  method: 'POST',\r\n  headers: {\r\n    'Authorization': 'Bearer bg_live_your_api_key_here',\r\n    'Content-Type': 'application/json',\r\n  },\r\n  body: JSON.stringify({\r\n    game: 'chess',\r\n    matchType: 'matchmaking', // or 'bot' or 'private'\r\n    players: [{ id: 'user_123', displayName: 'Alex' }],\r\n  }),\r\n});\r\n\r\nconst { sessionId, sessionToken } = await response.json();\r\n```\r\n\r\n### 2. Render the Game (Frontend)\r\n\r\n```tsx\r\nimport { BetaGamerProvider, ChessBoardInline } from '@beta-gamer/react';\r\n\r\nexport default function GamePage({ sessionToken }: { sessionToken: string }) {\r\n  return (\r\n    <BetaGamerProvider token={sessionToken}>\r\n      <ChessBoardInline className=\"w-full max-w-lg mx-auto\" />\r\n    </BetaGamerProvider>\r\n  );\r\n}\r\n```\r\n\r\n**That's it!** Your users can now play chess with real-time multiplayer, matchmaking, and bot opponents.\r\n\r\n---\r\n\r\n## 🎮 Supported Games\r\n\r\n| Game | Component | Description |\r\n|------|-----------|-------------|\r\n| ♟️ **Chess** | `ChessBoardInline` | Full-featured chess with move validation |\r\n| ⬤ **Checkers** | `CheckersBoardInline` | Classic checkers with king promotion |\r\n| 🔴 **Connect 4** | `Connect4BoardInline` | Drop pieces to get four in a row |\r\n| ❌ **Tic-tac-toe** | `TictactoeBoardInline` | Simple 3x3 grid game |\r\n| 🃏 **Chkobe** | `ChkobeBoardInline` | Strategic card game |\r\n\r\n### Game-Specific Packages\r\n\r\nFor advanced customization, install individual game packages:\r\n\r\n```bash\r\nnpm install @beta-gamer/react-chess\r\nnpm install @beta-gamer/react-checkers\r\nnpm install @beta-gamer/react-connect4\r\nnpm install @beta-gamer/react-tictactoe\r\nnpm install @beta-gamer/react-chkobe\r\n```\r\n\r\n---\r\n\r\n## 📖 Documentation\r\n\r\n### Architecture Overview\r\n\r\n```\r\n┌─────────────────────────────────────────────────────────────┐\r\n│                    Your React App                           │\r\n├─────────────────────────────────────────────────────────────┤\r\n│  BetaGamerProvider (Session Management + Socket.IO)        │\r\n│  ├── useSession() - Session data & player info             │\r\n│  ├── useSocket() - Raw socket for custom events            │\r\n│  ├── useGameState() - Current game state                   │\r\n│  └── useTheme() - Theming tokens                           │\r\n├─────────────────────────────────────────────────────────────┤\r\n│  Game Components (ChessBoardInline, etc.)                  │\r\n│  ├── Game Logic & State Management                         │\r\n│  ├── Move Validation & Turn Management                     │\r\n│  └── UI Rendering & Event Handling                         │\r\n├─────────────────────────────────────────────────────────────┤\r\n│  Beta Gamer Backend                                         │\r\n│  ├── Matchmaking & Room Management                         │\r\n│  ├── Game Engine & Move Processing                         │\r\n│  ├── Bot AI & Difficulty Scaling                           │\r\n│  └── Real-time Event Broadcasting                          │\r\n└─────────────────────────────────────────────────────────────┘\r\n```\r\n\r\n### Session Flow\r\n\r\n```mermaid\r\nsequenceDiagram\r\n    participant Client\r\n    participant YourBackend\r\n    participant BetaGamer\r\n    participant SDK\r\n\r\n    Client->>YourBackend: Request game session\r\n    YourBackend->>BetaGamer: POST /v1/sessions\r\n    BetaGamer-->>YourBackend: sessionId + sessionToken (JWT)\r\n    YourBackend-->>Client: sessionToken\r\n    Client->>SDK: <BetaGamerProvider token={sessionToken}>\r\n    SDK->>BetaGamer: Connect via Socket.IO\r\n    BetaGamer-->>SDK: Real-time game events\r\n```\r\n\r\n### BetaGamerProvider\r\n\r\nThe `BetaGamerProvider` is the root component that manages session state and Socket.IO connections:\r\n\r\n```tsx\r\n<BetaGamerProvider\r\n  token={sessionToken}           // Required: JWT session token\r\n  serverUrl=\"https://api.beta-gamer.com\"  // Optional: API server URL\r\n  socketPath=\"/socket.io\"        // Optional: Socket.IO path\r\n  connectSocket={true}           // Optional: Auto-connect socket\r\n>\r\n  {/* Your game components */}\r\n</BetaGamerProvider>\r\n```\r\n\r\n### Hooks\r\n\r\n#### `useSession()`\r\n\r\nAccess decoded session data:\r\n\r\n```tsx\r\nimport { useSession } from '@beta-gamer/react';\r\n\r\nfunction GameInfo() {\r\n  const session = useSession();\r\n  \r\n  return (\r\n    <div>\r\n      <h2>Game: {session.game}</h2>\r\n      <p>Mode: {session.mode}</p>\r\n      <p>Match Type: {session.matchType}</p>\r\n      <p>Players: {session.players.map(p => p.displayName).join(', ')}</p>\r\n    </div>\r\n  );\r\n}\r\n```\r\n\r\n#### `useSocket()`\r\n\r\nAccess raw Socket.IO instance for custom events:\r\n\r\n```tsx\r\nimport { useSocket } from '@beta-gamer/react';\r\n\r\nfunction CustomGameLogic() {\r\n  const socket = useSocket();\r\n  \r\n  useEffect(() => {\r\n    if (!socket) return;\r\n    \r\n    socket.on('custom:event', (data) => {\r\n      console.log('Custom event received:', data);\r\n    });\r\n    \r\n    return () => socket.off('custom:event');\r\n  }, [socket]);\r\n  \r\n  const sendCustomEvent = () => {\r\n    socket?.emit('custom:action', { data: 'example' });\r\n  };\r\n  \r\n  return <button onClick={sendCustomEvent}>Send Custom Event</button>;\r\n}\r\n```\r\n\r\n#### `useGameState()`\r\n\r\nAccess current game state:\r\n\r\n```tsx\r\nimport { useGameState } from '@beta-gamer/react';\r\n\r\nfunction GameStatus() {\r\n  const gameState = useGameState();\r\n  \r\n  return (\r\n    <div>\r\n      <p>Status: {gameState.status}</p>\r\n      {gameState.status === 'ended' && (\r\n        <p>Winner: {gameState.winner || 'Draw'}</p>\r\n      )}\r\n    </div>\r\n  );\r\n}\r\n```\r\n\r\n#### `useTheme()`\r\n\r\nAccess theme tokens for custom styling:\r\n\r\n```tsx\r\nimport { useTheme } from '@beta-gamer/react';\r\n\r\nfunction ThemedComponent() {\r\n  const theme = useTheme();\r\n  \r\n  return (\r\n    <div style={{\r\n      backgroundColor: theme.backgroundColor,\r\n      color: theme.primaryColor,\r\n      fontFamily: theme.fontFamily,\r\n    }}>\r\n      Themed content\r\n    </div>\r\n  );\r\n}\r\n```\r\n\r\n---\r\n\r\n## 💡 Examples\r\n\r\n### Basic Chess Game\r\n\r\n```tsx\r\nimport { BetaGamerProvider, ChessBoardInline } from '@beta-gamer/react';\r\n\r\nexport default function ChessGame({ sessionToken }: { sessionToken: string }) {\r\n  return (\r\n    <div className=\"min-h-screen bg-gray-900 flex items-center justify-center\">\r\n      <BetaGamerProvider token={sessionToken}>\r\n        <div className=\"max-w-2xl w-full p-4\">\r\n          <h1 className=\"text-white text-2xl mb-4 text-center\">Chess Game</h1>\r\n          <ChessBoardInline \r\n            className=\"w-full\"\r\n            showCoords={true}\r\n            showLastMove={true}\r\n          />\r\n        </div>\r\n      </BetaGamerProvider>\r\n    </div>\r\n  );\r\n}\r\n```\r\n\r\n### Custom Game Layout\r\n\r\n```tsx\r\nimport { \r\n  BetaGamerProvider, \r\n  CheckersBoardInline,\r\n  useSession,\r\n  useGameState \r\n} from '@beta-gamer/react';\r\n\r\nfunction GameLayout() {\r\n  const session = useSession();\r\n  const gameState = useGameState();\r\n  \r\n  return (\r\n    <div className=\"grid grid-cols-1 lg:grid-cols-3 gap-6 p-6\">\r\n      {/* Game Board */}\r\n      <div className=\"lg:col-span-2\">\r\n        <CheckersBoardInline className=\"w-full\" />\r\n      </div>\r\n      \r\n      {/* Sidebar */}\r\n      <div className=\"space-y-4\">\r\n        <div className=\"bg-white rounded-lg p-4\">\r\n          <h3 className=\"font-bold mb-2\">Players</h3>\r\n          {session.players.map(player => (\r\n            <div key={player.id} className=\"flex items-center gap-2\">\r\n              <div className=\"w-3 h-3 bg-blue-500 rounded-full\" />\r\n              <span>{player.displayName}</span>\r\n            </div>\r\n          ))}\r\n        </div>\r\n        \r\n        <div className=\"bg-white rounded-lg p-4\">\r\n          <h3 className=\"font-bold mb-2\">Game Status</h3>\r\n          <p className=\"capitalize\">{gameState.status}</p>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default function CustomGame({ sessionToken }: { sessionToken: string }) {\r\n  return (\r\n    <BetaGamerProvider token={sessionToken}>\r\n      <GameLayout />\r\n    </BetaGamerProvider>\r\n  );\r\n}\r\n```\r\n\r\n### Bot Game with Difficulty Selection\r\n\r\n```tsx\r\nimport { useState } from 'react';\r\nimport { BetaGamerProvider, TictactoeBoardInline } from '@beta-gamer/react';\r\n\r\nexport default function BotGame() {\r\n  const [sessionToken, setSessionToken] = useState<string | null>(null);\r\n  const [difficulty, setDifficulty] = useState<'easy' | 'medium' | 'hard'>('medium');\r\n  \r\n  const startBotGame = async () => {\r\n    const response = await fetch('/api/create-session', {\r\n      method: 'POST',\r\n      headers: { 'Content-Type': 'application/json' },\r\n      body: JSON.stringify({\r\n        game: 'tictactoe',\r\n        matchType: 'bot',\r\n        botDifficulty: difficulty,\r\n        players: [{ id: 'user_123', displayName: 'Player' }],\r\n      }),\r\n    });\r\n    \r\n    const { sessionToken } = await response.json();\r\n    setSessionToken(sessionToken);\r\n  };\r\n  \r\n  if (!sessionToken) {\r\n    return (\r\n      <div className=\"flex flex-col items-center gap-4 p-8\">\r\n        <h1 className=\"text-2xl font-bold\">Tic-tac-toe vs Bot</h1>\r\n        \r\n        <div className=\"flex gap-2\">\r\n          {(['easy', 'medium', 'hard'] as const).map(level => (\r\n            <button\r\n              key={level}\r\n              onClick={() => setDifficulty(level)}\r\n              className={`px-4 py-2 rounded ${\r\n                difficulty === level \r\n                  ? 'bg-blue-500 text-white' \r\n                  : 'bg-gray-200'\r\n              }`}\r\n            >\r\n              {level}\r\n            </button>\r\n          ))}\r\n        </div>\r\n        \r\n        <button \r\n          onClick={startBotGame}\r\n          className=\"bg-green-500 text-white px-6 py-2 rounded\"\r\n        >\r\n          Start Game\r\n        </button>\r\n      </div>\r\n    );\r\n  }\r\n  \r\n  return (\r\n    <BetaGamerProvider token={sessionToken}>\r\n      <div className=\"flex justify-center p-8\">\r\n        <TictactoeBoardInline className=\"w-80\" />\r\n      </div>\r\n    </BetaGamerProvider>\r\n  );\r\n}\r\n```\r\n\r\n### Advanced: Custom Socket Events\r\n\r\n```tsx\r\nimport { useEffect, useState } from 'react';\r\nimport { BetaGamerProvider, useSocket, useSession } from '@beta-gamer/react';\r\n\r\nfunction CustomGameRoom() {\r\n  const socket = useSocket();\r\n  const session = useSession();\r\n  const [messages, setMessages] = useState<string[]>([]);\r\n  const [message, setMessage] = useState('');\r\n  \r\n  useEffect(() => {\r\n    if (!socket) return;\r\n    \r\n    // Join the game room\r\n    socket.emit('matchmaking:join', {\r\n      username: session.players[0].displayName,\r\n      playerId: session.players[0].id,\r\n      wantsBot: session.matchType === 'bot',\r\n    });\r\n    \r\n    // Listen for game events\r\n    socket.on('game:started', (data) => {\r\n      setMessages(prev => [...prev, `Game started! Room: ${data.roomId}`]);\r\n    });\r\n    \r\n    socket.on('game:move:made', (data) => {\r\n      setMessages(prev => [...prev, `Move made: ${JSON.stringify(data)}`]);\r\n    });\r\n    \r\n    socket.on('game:over', (data) => {\r\n      setMessages(prev => [...prev, `Game over! Winner: ${data.winner || 'Draw'}`]);\r\n    });\r\n    \r\n    return () => {\r\n      socket.off('game:started');\r\n      socket.off('game:move:made');\r\n      socket.off('game:over');\r\n    };\r\n  }, [socket, session]);\r\n  \r\n  const sendMessage = () => {\r\n    if (socket && message.trim()) {\r\n      socket.emit('chat:message', { message });\r\n      setMessage('');\r\n    }\r\n  };\r\n  \r\n  return (\r\n    <div className=\"p-4\">\r\n      <div className=\"bg-gray-100 p-4 rounded mb-4 h-40 overflow-y-auto\">\r\n        {messages.map((msg, i) => (\r\n          <div key={i} className=\"text-sm\">{msg}</div>\r\n        ))}\r\n      </div>\r\n      \r\n      <div className=\"flex gap-2\">\r\n        <input\r\n          value={message}\r\n          onChange={(e) => setMessage(e.target.value)}\r\n          onKeyDown={(e) => e.key === 'Enter' && sendMessage()}\r\n          placeholder=\"Type a message...\"\r\n          className=\"flex-1 border rounded px-2 py-1\"\r\n        />\r\n        <button \r\n          onClick={sendMessage}\r\n          className=\"bg-blue-500 text-white px-4 py-1 rounded\"\r\n        >\r\n          Send\r\n        </button>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default function AdvancedGame({ sessionToken }: { sessionToken: string }) {\r\n  return (\r\n    <BetaGamerProvider token={sessionToken}>\r\n      <CustomGameRoom />\r\n    </BetaGamerProvider>\r\n  );\r\n}\r\n```\r\n\r\n---\r\n\r\n## 🔧 API Reference\r\n\r\n### Components\r\n\r\n#### `BetaGamerProvider`\r\n\r\nRoot provider component that manages session and socket state.\r\n\r\n**Props:**\r\n- `token: string` - **Required.** JWT session token from your backend\r\n- `serverUrl?: string` - API server URL (default: `https://api.beta-gamer.com`)\r\n- `socketPath?: string` - Socket.IO path (default: `/socket.io`)\r\n- `connectSocket?: boolean` - Auto-connect socket (default: `true`)\r\n- `children: React.ReactNode` - Child components\r\n\r\n#### Game Components\r\n\r\nAll game components accept these common props:\r\n\r\n- `className?: string` - CSS classes for styling\r\n- `style?: React.CSSProperties` - Inline styles\r\n\r\n**Chess: `ChessBoardInline`**\r\n- `showCoords?: boolean` - Show board coordinates (default: `false`)\r\n- `showLastMove?: boolean` - Highlight last move (default: `true`)\r\n- `showCaptured?: boolean` - Show captured pieces (default: `false`)\r\n\r\n**Checkers: `CheckersBoardInline`**\r\n- `showLastMove?: boolean` - Highlight last move (default: `true`)\r\n- `orientation?: 'red' | 'black'` - Board orientation (default: player color)\r\n\r\n**Connect 4: `Connect4BoardInline`**\r\n- `showLastMove?: boolean` - Highlight last move (default: `true`)\r\n\r\n**Tic-tac-toe: `TictactoeBoardInline`**\r\n- `showLastMove?: boolean` - Highlight last move (default: `true`)\r\n\r\n**Chkobe: `ChkobeBoardInline`**\r\n- `theme?: ChkobeTheme` - Custom theme object\r\n- `cardAssets?: CardAssets` - Custom card images\r\n\r\n### Hooks\r\n\r\n#### `useSession(): SessionTokenPayload`\r\n\r\nReturns decoded session data:\r\n\r\n```typescript\r\ninterface SessionTokenPayload {\r\n  sessionId: string;\r\n  tenantId: string;\r\n  game: GameType;\r\n  mode: SessionMode;\r\n  matchType: MatchType;\r\n  players: SessionPlayer[];\r\n  theme?: SessionTheme;\r\n  iat: number;\r\n  exp: number;\r\n}\r\n```\r\n\r\n#### `useSocket(): Socket | null`\r\n\r\nReturns Socket.IO instance for custom event handling.\r\n\r\n#### `useGameState(): GameState`\r\n\r\nReturns current game state:\r\n\r\n```typescript\r\ninterface GameState {\r\n  status: 'pending' | 'active' | 'ended';\r\n  players: SessionPlayer[];\r\n  winner?: string;\r\n  reason?: string;\r\n}\r\n```\r\n\r\n#### `useTheme(): SessionTheme`\r\n\r\nReturns theme tokens:\r\n\r\n```typescript\r\ninterface SessionTheme {\r\n  primaryColor?: string;\r\n  backgroundColor?: string;\r\n  boardLight?: string;\r\n  boardDark?: string;\r\n  fontFamily?: string;\r\n}\r\n```\r\n\r\n### Types\r\n\r\n```typescript\r\ntype GameType = 'chess' | 'checkers' | 'connect4' | 'tictactoe' | 'chkobe';\r\ntype SessionMode = 'live' | 'test' | 'training';\r\ntype MatchType = 'matchmaking' | 'private' | 'bot';\r\n\r\ninterface SessionPlayer {\r\n  id: string;\r\n  displayName: string;\r\n}\r\n```\r\n\r\n---\r\n\r\n## 🎨 Styling & Theming\r\n\r\n### CSS Variables\r\n\r\nThe SDK automatically injects theme tokens as CSS variables:\r\n\r\n```css\r\n:root {\r\n  --bg-primary: #3b82f6;      /* Primary color */\r\n  --bg-surface: #ffffff;      /* Background color */\r\n  --board-light: #f0d9b5;     /* Light board squares */\r\n  --board-dark: #b58863;      /* Dark board squares */\r\n  --font-family: 'Inter';     /* Font family */\r\n}\r\n```\r\n\r\n### Custom Styling\r\n\r\nAll components accept `className` and `style` props:\r\n\r\n```tsx\r\n<ChessBoardInline \r\n  className=\"border-2 border-gray-300 rounded-lg shadow-lg\"\r\n  style={{ maxWidth: '500px' }}\r\n/>\r\n```\r\n\r\n### Responsive Design\r\n\r\nComponents are responsive by default. Use CSS Grid or Flexbox for layouts:\r\n\r\n```tsx\r\n<div className=\"grid grid-cols-1 lg:grid-cols-2 gap-4\">\r\n  <ChessBoardInline className=\"w-full\" />\r\n  <div className=\"space-y-4\">\r\n    {/* Sidebar content */}\r\n  </div>\r\n</div>\r\n```\r\n\r\n---\r\n\r\n## 🔍 Troubleshooting\r\n\r\n### Common Issues\r\n\r\n**❌ \"useBetaGamer must be used inside <BetaGamerProvider>\"**\r\n\r\nMake sure all game components are wrapped in `BetaGamerProvider`:\r\n\r\n```tsx\r\n// ❌ Wrong\r\n<ChessBoardInline />\r\n\r\n// ✅ Correct\r\n<BetaGamerProvider token={sessionToken}>\r\n  <ChessBoardInline />\r\n</BetaGamerProvider>\r\n```\r\n\r\n**❌ \"Connection refused: invalid or expired session token\"**\r\n\r\n- Check that your API key is valid and not expired\r\n- Ensure you're using the correct server URL\r\n- Verify the session token is properly passed from backend to frontend\r\n\r\n**❌ Games not loading or connecting**\r\n\r\n- Check browser console for errors\r\n- Verify your backend can reach `api.beta-gamer.com`\r\n- Ensure WebSocket connections aren't blocked by firewall/proxy\r\n\r\n**❌ TypeScript errors**\r\n\r\nMake sure you have the correct peer dependencies:\r\n\r\n```bash\r\nnpm install --save-dev @types/react\r\n```\r\n\r\n### Debug Mode\r\n\r\nEnable debug logging by setting localStorage:\r\n\r\n```javascript\r\nlocalStorage.setItem('debug', 'socket.io-client:*');\r\n```\r\n\r\n### Network Issues\r\n\r\nIf you're behind a corporate firewall, ensure these domains are whitelisted:\r\n- `api.beta-gamer.com`\r\n- `*.beta-gamer.com`\r\n\r\n---\r\n\r\n## 📚 FAQ\r\n\r\n**Q: Can I use this with Next.js?**\r\nA: Yes! The SDK works with all React frameworks. For Next.js, create sessions in API routes.\r\n\r\n**Q: How do I handle user authentication?**\r\nA: Pass your user ID and display name when creating sessions. The SDK doesn't handle auth directly.\r\n\r\n**Q: Can I customize the game UI?**\r\nA: Yes! Use the `className` and `style` props, or build custom components using the hooks.\r\n\r\n**Q: Is this free to use?**\r\nA: Beta Gamer has a free tier. Check [pricing](https://beta-gamer.com/pricing) for details.\r\n\r\n**Q: Can I host the games myself?**\r\nA: No, games run on Beta Gamer's infrastructure. This ensures optimal performance and security.\r\n\r\n**Q: How do I report bugs?**\r\nA: Open an issue on [GitHub](https://github.com/acetennyson/beta-gamer-sdk) or contact support.\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\nMIT © [Beta Gamer](https://beta-gamer.com)\r\n\r\n---\r\n\r\n<div align=\"center\">\r\n\r\n**Made with ❤️ by the Beta Gamer team**\r\n\r\n[Website](https://beta-gamer.com) • [Documentation](https://docs.beta-gamer.com) • [Discord](https://discord.gg/beta-gamer) • [Twitter](https://twitter.com/betagamerdev)\r\n\r\n</div>","readmeFilename":"README.md"}