{"_id":"@qingzhenghust/game-sdk","_rev":"40-0b9d7e318f5068b34129d6c52c51e1f0","name":"@qingzhenghust/game-sdk","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@qingzhenghust/game-sdk","version":"0.1.0","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.1.0","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"dacb67b5cf4c282423362e99d8995a718577825f","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.1.0.tgz","fileCount":52,"integrity":"sha512-TGNKUqGK2Jav9ZnlJdrYQLQV4KQomc6Bnbsj7FFO07htbsWVpFA1HHxQiS7q4eiNAvueEvbmpNwkgpaIECl6kA==","signatures":[{"sig":"MEYCIQCYhuGr10q1GX0aol7XVIG2klEhm3JfplkIwgXBCi9+jQIhAOe5KwYOjVF/RRntIGZsuYILC4lLWIbkNHlbAaHYFVBj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176231},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"}},"gitHead":"417819e702183fe53e6073d726ee94a3d41115a3","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.1.0_1789386605743_0.20955445791790672","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@qingzhenghust/game-sdk","version":"0.2.0","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.0","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"c0b5ec3265882eb8ee8d7a048839b9edff10ff9d","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.0.tgz","fileCount":103,"integrity":"sha512-sYMd/43vIm3ojr8QoVZzhPgZanAYCRBv7RzKh+glV0msU/En6LIk2zL1YMpZSlqtABI2g7uHWVoGib3fL1q2lg==","signatures":[{"sig":"MEYCIQDCu5425F3RaVloIVIQd+tfzjuU5ZS7kC4G6TmLyTS6ZQIhALC0defzwrbV776B2oALRRZ7/B9ElfHaysNqFvMsb0l4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCQa2YQLvgzZVqGC0cdPnDn2fN8OtMWQQ4yllZFlJrX3QIgUW4DutHASTzlp1TEen4aTFWkg1IeeiRP08XSrGegd8U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243937},"main":"dist/index.js","type":"module","_from":"file:/Volumes/Zongjian01/workspace/riffle/riffle-game-sdk/build/qingzhenghust-game-sdk-0.2.0.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"_resolved":"/Volumes/Zongjian01/workspace/riffle/riffle-game-sdk/build/qingzhenghust-game-sdk-0.2.0.tgz","_integrity":"sha512-sYMd/43vIm3ojr8QoVZzhPgZanAYCRBv7RzKh+glV0msU/En6LIk2zL1YMpZSlqtABI2g7uHWVoGib3fL1q2lg==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.0_1789407482119_0.6931234871106269","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@qingzhenghust/game-sdk","version":"0.2.2","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.2","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"c02cf573bcccaceb62e4a8b0a8361e062d7b6b05","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.2.tgz","fileCount":115,"integrity":"sha512-Y8pwVKQcpuTkLJCrQKv1qhsDcv8DhcFitTVq2EP7S0wEw/ZXnv8F0n3FRUQzi7/p+Gl27HI251C/pSv5tZwoIg==","signatures":[{"sig":"MEQCIBCyDjRbx0BZIdMBr4v8oJgz5xdEBG6bkEV2IEmGSgZkAiAsLjozTeDPBGp/kJx79tk7QeTfUYWUJX5e4y6RRoKC8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCLB6B7Gt2jEvMlh/vGPro6PPOc1oNeZtWWP+7S8YPREAIgV5pCnCUVxZBdGOKOPExk7Vqdlm7JoBvjr5TJ86jDAUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309577},"main":"dist/index.js","type":"module","_from":"file:/tmp/qingzhenghust-game-sdk-0.2.2.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"_resolved":"/tmp/qingzhenghust-game-sdk-0.2.2.tgz","_integrity":"sha512-Y8pwVKQcpuTkLJCrQKv1qhsDcv8DhcFitTVq2EP7S0wEw/ZXnv8F0n3FRUQzi7/p+Gl27HI251C/pSv5tZwoIg==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.2_1789472514881_0.454567446958398","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@qingzhenghust/game-sdk","version":"0.2.3","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.3","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"baab05dd9db6dc323c51ccffe32c45912099b5c0","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.3.tgz","fileCount":123,"integrity":"sha512-OMW5CdjCzvNnaoYX9yNIoOIakRkrmwUL3yW6InBDR8HXBCu0VN6lFMH0NCuOl++QloriqQ+So/vSYLH6OvKuZw==","signatures":[{"sig":"MEUCIGqt/konMZbrnpZkp5OJUIeny9RSz/IbkzAPeVl759H+AiEAsl8lvvY6tvuxvkt7ZbOMzZ/nBIdP2M2FdzzC3n9bxpU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDgA27zn4WF+k4gTMI/6tm8JTIamOHxGQTky7/o9maVRAIhAKplCzMefTRXLDvYMCituwa6OfXXqoQL8D4dli4kPQJF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349238},"main":"dist/index.js","type":"module","_from":"file:/tmp/qingzhenghust-game-sdk-0.2.3.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"_resolved":"/tmp/qingzhenghust-game-sdk-0.2.3.tgz","_integrity":"sha512-OMW5CdjCzvNnaoYX9yNIoOIakRkrmwUL3yW6InBDR8HXBCu0VN6lFMH0NCuOl++QloriqQ+So/vSYLH6OvKuZw==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.15.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.3_1789482923499_0.5549252261164896","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@qingzhenghust/game-sdk","version":"0.2.4","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.4","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"e4e683896934483eb2a357012e632481cb225c07","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.4.tgz","fileCount":132,"integrity":"sha512-KXLGFu5v3IdkYk4TUOhRkW56RQMbrP7/Fx6QanBEVlEFp8CT2+/lKMggFO5XtH2AGfeDMHVHxSiyNYgzcbOa1Q==","signatures":[{"sig":"MEUCIAlS9EIMhAzVXRlZLw866YbcO+9OMDfR4D23h17wuAgDAiEA7adFYnotSVbst9g0WK5mFGB3KZ2wzOR38WEw5vyFP7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICFk+xpW5BQ/8Sn7hbZt6mgrux0XkJUu4h6dzh/nTUhsAiBTJM7wdC/FD1LuNutd7UcF+59sDp/+nzIX2U1hsR42Sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":383755},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"a269803be787828a13aabdbab0b1a2c36fa80c3a","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.4_1789543967455_0.8749310651361462","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@qingzhenghust/game-sdk","version":"0.2.5","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.5","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"7ba9fa035e4a31dd1005f03e703be5db71a14dc7","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.5.tgz","fileCount":138,"integrity":"sha512-3EV0gR2FZXHPCW8f2pKxnW1QEVL7LcIDKDXLmPb2T6+HKebmJTkKPuqRp0S/g4HCdB3zStmMi0FJOWhNLFeKVA==","signatures":[{"sig":"MEYCIQCztW5VuyZ+RAiHiJtWo1AWrS42cygDXmwpx3JkzKXxPQIhANY38uZ56q3C2UgN8RjGxlKfvxOIJEquLEf0zfMLJZ7/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBEIQQsxxQfhkvsWxAxzZFZklwrFrJEMKYzekUj1BLmGAiEAxg1LzxbYrIytAqmfnmn1EV8stvh8TXAPUnHxX2px/3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":417099},"main":"dist/index.js","type":"module","_from":"file:/Volumes/Zongjian01/workspace/riffle/aigames-frontend/build-cache/artifacts/p2p-turn/qingzhenghust-game-sdk-0.2.5.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"_resolved":"/Volumes/Zongjian01/workspace/riffle/aigames-frontend/build-cache/artifacts/p2p-turn/qingzhenghust-game-sdk-0.2.5.tgz","_integrity":"sha512-3EV0gR2FZXHPCW8f2pKxnW1QEVL7LcIDKDXLmPb2T6+HKebmJTkKPuqRp0S/g4HCdB3zStmMi0FJOWhNLFeKVA==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.5_1789560965098_0.29317860892144454","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@qingzhenghust/game-sdk","version":"0.2.6","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.6","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"6067867bc5f1240c9986ca1bbc257071675d6bd7","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.6.tgz","fileCount":157,"integrity":"sha512-dA3cFWDJHAscDkQ+98WwWQD4rkSt4Fm6m5SUyTdo6lLmdYcMoCGzOnHePOth+F3eL8mra6p6iiY3evyt/P3IPg==","signatures":[{"sig":"MEUCIFroZocYA5mIJoxsKwi0Xwy+1ePFedpsVKEmVDG695BaAiEAjLPtjphEeCUsTgJerzq+sL+p7yZzV8wmvNnPz4+H7vI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCugVFor5FXQC24XNJhMyf/WWHgIb/adspMb3ED0NB9lwIgKCBt7brfZT9Ml2kjGb2gyKSVYFAP7QGO5HpSdC/7biM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":664542},"main":"dist/index.js","type":"module","_from":"file:/Volumes/Zongjian01/workspace/riffle/aigames-frontend/build-cache/artifacts/p2p-turn/qingzhenghust-game-sdk-0.2.6.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"_resolved":"/Volumes/Zongjian01/workspace/riffle/aigames-frontend/build-cache/artifacts/p2p-turn/qingzhenghust-game-sdk-0.2.6.tgz","_integrity":"sha512-dA3cFWDJHAscDkQ+98WwWQD4rkSt4Fm6m5SUyTdo6lLmdYcMoCGzOnHePOth+F3eL8mra6p6iiY3evyt/P3IPg==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.6_1789630075416_0.12174896505157506","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@qingzhenghust/game-sdk","version":"0.2.7","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.7","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"29f0b4bd0b30f7d8338576135748eecc6f20e064","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.7.tgz","fileCount":158,"integrity":"sha512-HTaLOthsuJN37rCJq6DllajY+JzvZC7oBddshM/pOvv6uKk99FXS9oJZQoXgmZG7k/TZfoC8UUhQiBwhY3gpsA==","signatures":[{"sig":"MEYCIQDJCp0gVXwskx4aRLeBPmtuEavRF7lEYQb+ouVIpBsziwIhAO0a5qZ5rRcgkE1MAdGlmsvpro2Ohpnv2tUicMhzF8LK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDi8xZfLvmo/WuoanNCfha8dNKz1HdJR1Oe0eK46Yv+lAiEA0elC0Dsb6rQsreE1WdsYAFitDpKyD8KKcsCr4b1pAic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":670140},"main":"dist/index.js","type":"module","_from":"file:/Volumes/Zongjian01/workspace/riffle/aigames-frontend/build-cache/artifacts/p2p-turn/qingzhenghust-game-sdk-0.2.7.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"_resolved":"/Volumes/Zongjian01/workspace/riffle/aigames-frontend/build-cache/artifacts/p2p-turn/qingzhenghust-game-sdk-0.2.7.tgz","_integrity":"sha512-HTaLOthsuJN37rCJq6DllajY+JzvZC7oBddshM/pOvv6uKk99FXS9oJZQoXgmZG7k/TZfoC8UUhQiBwhY3gpsA==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.7_1789631017165_0.668897569292707","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@qingzhenghust/game-sdk","version":"0.2.8","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.8","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"0e30d14f7a3f2a0de55b2a84fc769c83befa0fed","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.8.tgz","fileCount":159,"integrity":"sha512-4cMRQQW2Ob4Nwe2pEckQWiQAgHyJteYqlLSwnDeX+E3shFGAs+oMp+RbI71XxJjfOttj0yVOsf20I0h4S1DqKQ==","signatures":[{"sig":"MEQCIAei8CMPGpiG+B5xrhOhHr3cDZU2N4SAzVj5e3P9X8qWAiBiiS73Cn1+YqB0DNsqvAvm5L1KPuQEKk8/bsPlAVt7Ww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICiKAWWp6XgUf+T4a+ejSRro5+naxeUVprP1urAqNhhxAiEAz9ebaG981Z5ILuyeNyA/Uf5D9o6MT610rBvLbpytxoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":683677},"main":"dist/index.js","type":"module","_from":"file:/Volumes/Zongjian01/workspace/riffle/aigames-frontend/build-cache/artifacts/p2p-turn/qingzhenghust-game-sdk-0.2.8.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"_resolved":"/Volumes/Zongjian01/workspace/riffle/aigames-frontend/build-cache/artifacts/p2p-turn/qingzhenghust-game-sdk-0.2.8.tgz","_integrity":"sha512-4cMRQQW2Ob4Nwe2pEckQWiQAgHyJteYqlLSwnDeX+E3shFGAs+oMp+RbI71XxJjfOttj0yVOsf20I0h4S1DqKQ==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.8_1789632563146_0.6056256108357749","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@qingzhenghust/game-sdk","version":"0.2.9","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.9","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"7478546ba8df05bb9ef756609bd7ee32e6db0f38","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.9.tgz","fileCount":161,"integrity":"sha512-PPHuEzpE/h9eFyGcAMxb//cNIoEV2+rhqgtKsjy6W1+TbYAybNqfZ7pDoYiAUSjxlxEyn0TnzWPw6KT+J0IHOg==","signatures":[{"sig":"MEYCIQDT73Rr8juGMyZEGG4ytj7ktlV3vrPdvmjVdbYuimagKwIhAP/cDYtCrNTywb4CMINqwB2IilWdnG46LjX9FX4qIqA/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICNGwdGOs3vvySgi34q5d5/hLQzldskTMfWYjUmHYBuEAiBKadV+8sotejM4JO3XUdYPioEKEIinf9uXlmTBHOkihA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":697705},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"9739a1416b70dcd1a1d19c15c24e15f71e1de8e2","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.9_1789645623379_0.020736168308871372","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@qingzhenghust/game-sdk","version":"0.2.10","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.10","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"a7ac6b25a734d546709962aeaeddda115de281d0","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.10.tgz","fileCount":162,"integrity":"sha512-+jvzf1YKOEOdqBpbhDFfPVm9WDECUJqpuPMm50GpttbFCbkAWblshkBkOmpfECr8FbvKRpiV4rAXYuPGDlheVA==","signatures":[{"sig":"MEUCIQDg01CoFAQAcKpr8PwHUiZRcaoD7sndtvKjNiJ4aP+XwAIgcShtSzQi9zCFHZMZctMqTqHPqBe1RpCkMlMIPm7d/5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDW2PBBN6K57qpAWkaJyV/72eH3d3JB6HGB6ZbAdtyVtwIgM+2Z+rdGucZ3CB6EbNx4YkvbDEXwINbIX9w2lns2Ef0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":708635},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"502e2d3b6c79e5204b230f0a7cf11c1345d8d5ee","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.10_1789648039915_0.5998337570309238","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@qingzhenghust/game-sdk","version":"0.2.11","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.11","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"4ebb03a8e8074e4d4b06ba9aa3ec0458829fca64","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.11.tgz","fileCount":163,"integrity":"sha512-58B02DZQ4NUhS/oLW4ldD8HK/uAi0qVACxAQx2Iqyequ9HxsoJ3AnC0kHpytfMYeoPpVMfiHzgVgv2L7bWHPwQ==","signatures":[{"sig":"MEUCIQCpBNT/uB4PP3HvnW1gyYQEoP01fxi1dzsGtk7m2jT7WgIgJQIJI/aM9wfKDpEj7CsXHmbubDTZ/kzRTAq4y+Ihkj8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH5kFGcopAR5mMILbSV+L1W1xkmk0Xu3Hpu8lh/lj8Z4AiB0eThG6SBfgqP4/RPbolMAGCTo4G33n0W4hDerQ/K1tg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":717030},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"5c500fb52551caca3a8521405ceb2fcc924fb4e3","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.11_1789651800291_0.7533362299005149","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@qingzhenghust/game-sdk","version":"0.2.12","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.12","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"91cd9f42ffd8e89e69b2549fb49ec216c1d5ed77","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.12.tgz","fileCount":164,"integrity":"sha512-JQSMCI3Jgfo2Nxy26gC/yviCl5UDbFmK9Pwlhx7L81+eTIsBadRVdXcI+PZIK6leG3dt210W+yVuPAf8j5G1Qw==","signatures":[{"sig":"MEYCIQDNrlD0T+3ugJ8meiej6dtqb1KdtnPSqVuRiH/j4oGzKgIhANufSDkNL5siuU+buqYSHrXvROmaGN4XxhHBrsTnNXa4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFLT2sWz0mbYXRYSQ68kJ++z/iRPvzReDo1H+2JR1Yo4AiEA5aEsOKTUxn63VaGgWq6Gy3IKr52n5LLf3Ahs79Y1yVc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":722086},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"173ce19af8416f6005c28abd24bea9d9471c2923","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.12_1789653488422_0.0669541396390747","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@qingzhenghust/game-sdk","version":"0.2.13","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.13","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"e661769b5602b27796769da1d4fb289cfa020928","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.13.tgz","fileCount":165,"integrity":"sha512-/2TmnMWJ/zBoHAcO3InsPhs4VAXq9EgtaB/CNX7MoBwFNx+6ou3GtEnrl75mkutNWJ+rLcnOkbS++eAVU90HEA==","signatures":[{"sig":"MEQCICgnPamNhc6/H4daoQhl2e1rd+MtydEy4YwybKQFFybjAiBUmC81NHDJCmDtVtEB48cmejw4vdNavAiPAGJ7ge965Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIG5JKYvBzemno3Y03ebOHnhQ0MfuhW0qmMJPUsK69Un1AiAv/HzQtq+HxGgp+//rtOX+QR0nEpCD6/3z5UfNq2l5qA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":724476},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"96d3769203ab4768ef66ceb0c91468fc8871707f","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.13_1789654031311_0.9161780846011867","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@qingzhenghust/game-sdk","version":"0.2.14","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.14","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"96253eea97d49a5e71e37efd2f50a1055f40990d","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.14.tgz","fileCount":166,"integrity":"sha512-5xWrrpwBw5BUluRiUnYZDnHLOb8ZOk7XJnO1EASwSeZnSc7XEuT2HEgSNuNBKsK00CKvfX/D6lGmV+bQBKHnhQ==","signatures":[{"sig":"MEYCIQD4mipySFVxPaz9mubIv0uXUHCWO8bo7swy4fCb3CzupQIhAP2WCMouQS3WD1PBJ863walCmhJ0+u9FZJWw3XMg6QGG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBRmnRO/UbZzb3xPAh1kAHVMNKhOczV7UNsaa3EdfZXnAiEA3UPHdZbLMhtsdZUipzCLFehGshvy0UM3ydWI/zR5V4s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":726539},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"73321cd9bc19f146674365ef3f6f7206aa70e271","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.14_1789654818954_0.8844369745159364","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@qingzhenghust/game-sdk","version":"0.2.15","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.15","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"686dde598bf1cd0638e5767d1a6c84f5cbff34a3","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.15.tgz","fileCount":167,"integrity":"sha512-FD7trAFWaCTKb96bEAhDeBo2pT4043EtzITSPnP+kviNNRLwha7WCU+L2TxfIvGPryqTcKJRD5eE0SpbGnybJg==","signatures":[{"sig":"MEYCIQDGTruH7Fop3zixG3v9EmG/CwlffP38aOrnG8hn+IA/YQIhAPPzplIB1n0QtWVsP2OFbce8JflDwCt3ZpISDNiOmhJp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC5CdBi5boCDJ3O2+npurrxAFAPHGoya8pCfN/vLGHsZAIhAJvBGc+zCk8SYnWb2Q1dBzbgMNKah8xTeVBNzl4W0rHV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":741352},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"e405d1f0f802d437da5bb6b49033a05816bea421","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.15_1789657133323_0.9229440996494378","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@qingzhenghust/game-sdk","version":"0.2.16","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.16","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"bc6641126cf984d6f19ea5fd543cc01b07ca38fc","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.16.tgz","fileCount":168,"integrity":"sha512-pD6BNjiMglMkT8BOJ0QIFNxy/O/uoWv7V9Ja/+JEDxc2eaTNJ6jwQrjiakX7ahLzxFK0/ncy6LXbLLB+u+GeZg==","signatures":[{"sig":"MEUCIQDIUzYCk7QtwC1V1XjRW525cYX8qCN0B3cTKyeCp1DU9wIgBrrZDoE2QoNNcfSJHZrDo1CnFDN/jEe6/yIzMqXExX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCcH4NROiMDnUX1E8hm0WKFzpkkPZnZ/Gyl0Vtdhq+M8QIgcCGNCgDUfvYZhtZtjkFTBLh29/WD/mCJBbMRhJSpZNA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":755786},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"2d1d9605ff97fca74fccfe2f874cbc206f65351f","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.16_1789658246610_0.8707560534621419","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"@qingzhenghust/game-sdk","version":"0.2.17","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.17","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"a80085dcab5c1bd0807aee0504e8a109d84289d0","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.17.tgz","fileCount":169,"integrity":"sha512-1cVcUzAryLvqBBP1qujhPpaezzdy9Iq7EY69ksDnp7miP+spuP7ck4jppPvieJ9YL+IEMl7o1AhtIlIzFJoxlA==","signatures":[{"sig":"MEUCID3IsXX4/52akiib7ib0AjTzUFkbZcC1mnWM1pCgvcldAiEArpuih5P3iWE89H9bjlN1S8aXmcgjbtNmhJGBsjSmtks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH7ZQ78+SHSgXzoL1EL9IHYdpEOpGiXrEhosxZnJlWAJAiEA7RMlm3RLqCOrMPGEgXBujzmrFXO1P7YdMiMn4WlVdO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":757843},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"7f42c58bab096e03c57fe5658fad96e5e2306967","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.17_1789658562591_0.6873372946440324","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"@qingzhenghust/game-sdk","version":"0.2.18","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.18","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"74986233227ce3105a672626fa301ebc1e832caf","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.18.tgz","fileCount":170,"integrity":"sha512-RizGFrR/CHp04pVgxKcFKT67FO99G2mJdp7xPOLZ/e1PeoAf6PWiWjWKPxmu8MQ7iSeCrv0gSKPKmgd0yKuyhQ==","signatures":[{"sig":"MEUCIQDL/WKPVvXuPiQSPL6ql2UcakHweppXrJam3OFH0OVwaQIgOchl05W/9OnWEe1+3lM4CEeMVwXMpADevi9Jh3KRYnM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCYfyVLdvsy/DDLPl1qwNEdBXf0N9xekMfkeJ0xMF4DQwIgJI1Vs5I4YsaefAnAyV7hK3ngnyZkOLbFSHQmOaAtb5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":766168},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"f3d6decdfc5f57e8d3b6e29f61db73ea3270b40f","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.18_1789659961008_0.6487488708393161","host":"s3://npm-registry-packages-npm-production"}},"0.2.19":{"name":"@qingzhenghust/game-sdk","version":"0.2.19","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.19","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"7b7c412820101af3a218737aca6cc80b6a74a0e6","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.19.tgz","fileCount":171,"integrity":"sha512-kZDOtZsL+QY8X/h5QZ6VNPkPsMVzKRtvAp2CjVblddjyF5Cmw+i4HhLmhK0EfPzq/MK+En/nEWRD2ITopWjlGQ==","signatures":[{"sig":"MEYCIQCe2Gsr0Qfs36cMw9NfcMixoZbuHVmne4g5Q7zVMSZWbQIhAMyslXv9ull9CGSFuRn0eSXvAt1puLgtQsmXV/ouOJT2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDxNQQorAkdZ940G3fgazqCOza4aOhBLB4W6FVkIJIGowIgVmWk5UPxTtB/RhKOHCFFQ3SRzZ1nxONnres2Zg0J76Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":774045},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"4e4fc7485b0c5b7caddc6ccca86e140be36cd81e","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.19_1789661082606_0.19221359703049723","host":"s3://npm-registry-packages-npm-production"}},"0.2.20":{"name":"@qingzhenghust/game-sdk","version":"0.2.20","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.20","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"a9f28565e4e58c14a5244d9032fedf2e4b9d640a","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.20.tgz","fileCount":175,"integrity":"sha512-rVkBMjspJ7m1qCSKronuBAv1NpE/WrrJhT38YR0o4UUIME4FJyL7Jva2s1aW9Xk13boJqMOyq6rZAvAgYoZvIw==","signatures":[{"sig":"MEUCIQDG8vCR/MAoZ6UqFWwUDSoP7yE/D35L8EUaHd69JifnWQIgYaXAPBH5pGu0LPCkVfzcb3bd6CaDt9htRPvH6Utd1YM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICp5InpFBm47y8+VF0HQlXAPKuq0tAPIIV4B4ktyKvuZAiEAhZ9hE1BLuPopCWnFOVmsZ0+ol64vMctZQyYfmH1FC+M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":796292},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"b3d9c17f554f8b83a0ea30d5c23a971889fdc706","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.20_1789662227039_0.8679900206688815","host":"s3://npm-registry-packages-npm-production"}},"0.2.21":{"name":"@qingzhenghust/game-sdk","version":"0.2.21","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.21","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"b1ddeb8eb65c35651ce548e2ec5790ace573671a","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.21.tgz","fileCount":176,"integrity":"sha512-Nfesfj85POwaIcG+AVKJTGuGGyJdUpuLwg7LpQ09kUJoTR/qwMd0lxnTLd3UksxM33pgj+GVTW5ed6+Vx3WKAA==","signatures":[{"sig":"MEUCIQDDcjhFcQhcByHA+C/F2Y6Y58ppAiy97OFDKhpSHEJ4jQIgbTmfQZNIc3H4Mj2RfvyYFD2XzjGoxeG3QoqE70JEPnM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHfkmWQMbStueNjitCDR8dl8TRkAcPx01OkRVThsYYT7AiB3mHtxfPHDwLGeSycsCy5Sc28eQIeIk4Qr1+BXTCXJHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":803634},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"08a9acd865faf7e5e440366f71caa595e128fb14","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.21_1789662980733_0.3762758531297501","host":"s3://npm-registry-packages-npm-production"}},"0.2.22":{"name":"@qingzhenghust/game-sdk","version":"0.2.22","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.22","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"f35238abb4a017eed128d3668308320aac79ea4e","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.22.tgz","fileCount":177,"integrity":"sha512-rvWEyqBHyRU2WX10woRjbr/B9uU9WKbMFAveXt+FpYZp/gA52GB/KR0ipxV3WhwIpe1No9qE7tRtuTJGYeQxlA==","signatures":[{"sig":"MEUCICseYgH0/yTxNPys8SkRupFPGFuZzmtUxz0pZLFWGJQhAiEAzmaaQT2fY8gHd+tA8ImB5FYhU5q10+NbI62ehEHVctU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC/Qnx+MuXPYCzptcC9vg3E8WLmul2D0NJhioonM7BqkAIgZZ37DCodWjicaVmqQjnrSiyR2LkJBNrFQDLlAAGHOi8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":806691},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"5217ad95f65779b424c4f15acabd494926ff1bce","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.22_1789663666173_0.5558122112996309","host":"s3://npm-registry-packages-npm-production"}},"0.2.23":{"name":"@qingzhenghust/game-sdk","version":"0.2.23","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.23","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"240c83674e5ba1bb2826c04afd0e8b09a16bc5ed","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.23.tgz","fileCount":178,"integrity":"sha512-FfGkoHT9hlXuQrWt2hfg3SYUlstXY66GAUMLTXacBNICtlViuqJREut7KXQ0QZgZ8EAwrBgmjQAClG+Dp7I85w==","signatures":[{"sig":"MEQCIFcHjHNbdM6D7ov+3pqTklt4Lq0/FWNvr3TnkG6nhXO7AiAPxziPTu/RhlPL2TRWHP2J1Hl41a0mPZDREX8gKx2NYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD3wlGmdqPPf/o1rx5jFNUMRkRjOlWnzfHWfJqJirGCvgIhANgZq+h//1edWuP2AOoohvmpfqSsC7RUKUlOtA9Cqx8l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":808722},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"bb6debcd4c7397143dcfca73a6ddcc6b9e3ada0f","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.23_1789663890956_0.5746596332404936","host":"s3://npm-registry-packages-npm-production"}},"0.2.24":{"name":"@qingzhenghust/game-sdk","version":"0.2.24","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.24","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"6338cca55bafe555510e9bd8485c017973545955","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.24.tgz","fileCount":178,"integrity":"sha512-vAtDqj4T3PTjMrBvTR/+akEwiF583NWT3KO7zq3nVv/M4pMYOBPlXu4HvMAiE2yh1dEvLdmppiLkNBf4uuoEwQ==","signatures":[{"sig":"MEUCIQCqHwNvZeEAyOjfgunctp/PmEEsMZyB+gMZxQcd9zE2QAIgfFS6ZXaCfiP4KpKTwZPr48VZJk/hXulL9HmPbzf8fVc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEMI8RYBrJI8e+1wp+Dyjly+dp8qTwmmpFMV/I0bQz1XAiApFVqlYBN6guugwWcOoTDzb8YQdiu2tMvJM5ZBT/rnjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":819333},"main":"dist/index.js","type":"module","_from":"file:build-cache/package-0.2.24-final/qingzhenghust-game-sdk-0.2.24.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"_resolved":"/Volumes/Zongjian01/workspace/riffle/riffle-game-sdk/build-cache/package-0.2.24-final/qingzhenghust-game-sdk-0.2.24.tgz","_integrity":"sha512-vAtDqj4T3PTjMrBvTR/+akEwiF583NWT3KO7zq3nVv/M4pMYOBPlXu4HvMAiE2yh1dEvLdmppiLkNBf4uuoEwQ==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.24_1789665337556_0.27557389136760846","host":"s3://npm-registry-packages-npm-production"}},"0.2.25":{"name":"@qingzhenghust/game-sdk","version":"0.2.25","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.25","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"6469f7357c7c6cd4f119ba38ec0a7eee031f2411","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.25.tgz","fileCount":179,"integrity":"sha512-M8NPJd35MxGNwDqINryWbUyS6MDYKtgTRWTyMo3y2fYUSVQ0ujN0o3L7AP/AQkRmTkvhERkPjCJvT+LPb/k9bg==","signatures":[{"sig":"MEQCIBAg07C+ZuIVwZo/klHq4i8ZDq9IL2E2QoG86OIPsV21AiBzxe2CpcySqOpaKQ8A3PRVi+onK48g6TV5eMicThHVDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCwvAsUrA/CLnzS2WPMVfawUFjoSQIk9XKneSPK9TwCcQIgZkDDLuHHrbwMyj1XjfWWN1RTYxjzBLvgohq6J+0x1YI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":836352},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"b5e98bd582f65648bdee348f90cd0e7d6a055a27","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.25_1789666735047_0.43362345080460796","host":"s3://npm-registry-packages-npm-production"}},"0.2.26":{"name":"@qingzhenghust/game-sdk","version":"0.2.26","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.26","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"0231d9446e474dd434fc41bea2f35294bcc5197e","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.26.tgz","fileCount":183,"integrity":"sha512-XD2jcunUlCs1Ds+zL2UsnDKTyWajRdOMdjLV7vXNhHXat5/QEAp6xdf+GwzPFc97fVYbCjgK2t3hlzEo64pjvQ==","signatures":[{"sig":"MEYCIQDQJG8xll4bMkBag5KGf1AUzXOuIb6OPj47m5FM28viBwIhAJPZCjDFvr+tiCkJaFnoC7NnYrsRwvv4Iz8eLSFf5sZH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF7Si3UjXgFbDAjjPGwdZNzRAd9BB1ppUz/S277LlFn9AiBfx+YlkJm6E2Q8LVvsc/sLLq62OybiAlUAHtI8YWMg0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":851321},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"f7c051f8d0070753402aa7892e14a8b2e0b4ca9c","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.26_1789667739713_0.9926721735691983","host":"s3://npm-registry-packages-npm-production"}},"0.2.27":{"name":"@qingzhenghust/game-sdk","version":"0.2.27","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.27","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"5f1431fbf34f9e25c0e7bce3615ae1bd7cd286d0","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.27.tgz","fileCount":184,"integrity":"sha512-sYaiUHKiAaummWYQu7tsRTtrsDQ3oCUYC0j7LA2tTNDK5fmxCM0N5pFxwWWiVoZWd8rWkKPllYpGTM2KUl1KQg==","signatures":[{"sig":"MEYCIQD4+/MUAnFNGaVataM53gDxUGDawQW0Nvg7pn12XgnMCQIhALFaeWB+Yahr6XIYN15XOeato7BWQ+DqQPxtMaXf8Fbz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGJT2/hiNgibtVan0ti9gJ2dUIcaqzZpgGwBrCaDJEdgAiEAnW2WjIH6RW+xpPUdL28i8ehjW1u3L5IvObBLHVVjnuo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":854686},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"aa6e9c3f819d914802f516aa9907704e28690c49","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.27_1789668858284_0.5253353294424057","host":"s3://npm-registry-packages-npm-production"}},"0.2.28":{"name":"@qingzhenghust/game-sdk","version":"0.2.28","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.28","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"f8ce87c399479bedda5ed6b352ea0efb1ea5f852","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.28.tgz","fileCount":185,"integrity":"sha512-s1YfAkEhAtFOgVWqci/t16bmuQA4oZ25KbuReJ3ti5Lo93FRUAUZ2wFfeqoJhiC6HI4okyS6rYYT1eWvIX2Thw==","signatures":[{"sig":"MEUCIGBsgxcNFVX5k7HpJz4g9D5vi4uJNz4L/Wa+RpcmqcBMAiEA008IP/CLLy4hMXhxDF6mPZCmGV+Q+VmoOceSIKW2h/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDrJfKXrt6prykgeNwMPEdG78R/t8Q92t0tmrTjnAy7uQIhAMrJ3AzP7NAmbcGHa7bqdAYsmFjljkqnPULeXEzr5bwt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":858674},"main":"dist/index.js","type":"module","_from":"file:build-cache/artifacts/release-0.2.28/qingzhenghust-game-sdk-0.2.28.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-matrix":"npm run build && node test/browser/communication-matrix.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"_resolved":"/Volumes/Zongjian01/workspace/riffle/riffle-game-sdk/build-cache/artifacts/release-0.2.28/qingzhenghust-game-sdk-0.2.28.tgz","_integrity":"sha512-s1YfAkEhAtFOgVWqci/t16bmuQA4oZ25KbuReJ3ti5Lo93FRUAUZ2wFfeqoJhiC6HI4okyS6rYYT1eWvIX2Thw==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.28_1789670890119_0.35347005441703194","host":"s3://npm-registry-packages-npm-production"}},"0.2.29":{"name":"@qingzhenghust/game-sdk","version":"0.2.29","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.29","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"2bb0e1a415fec754773af04b381004efb22c177d","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.29.tgz","fileCount":186,"integrity":"sha512-YVPYr6nQwJXA3LxjwQwJzQN+3PtRNUB8/UZRzob3VAO6110OqDDMO6EikwcvyrwtoC9trZ6QQiHoW9KADpLWCw==","signatures":[{"sig":"MEUCIDyi9INjZuQ7XW3tOywI/KWP/+f9Hy0ltLGh7sNN62+dAiEAkkfzfMQ4Tl7EUk2PCWs/RuPWnHdeqdXzLma9Fc7ch7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC2whs8aknYn59eHT3HVQ3xgx6fQ0PqZC5FQAjknTiOqgIhANkBvsAIOFSI3e39YJP92Q8gAoAniA1TaR9db/jlhfZL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":863102},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"0b5cd14271d1a4e1f37cb0a611fe13b192226f76","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-matrix":"npm run build && node test/browser/communication-matrix.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.29_1789671808848_0.10103802550529473","host":"s3://npm-registry-packages-npm-production"}},"0.2.30":{"name":"@qingzhenghust/game-sdk","version":"0.2.30","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.30","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"743af6aefd0dba0ca0aa5d6bb457efe3bd0da586","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.30.tgz","fileCount":190,"integrity":"sha512-3tqBmjMNw3eG5/wukAQUlNW/eb2F6/gN+0SIaCr5FjRYMAAhiwfUEMnxb3xx5OwmU2UQwlfdVmQB78Wio6RZrA==","signatures":[{"sig":"MEUCIQCSi0iUFUkHiYHm7o+2UCjYrNKVgXQQmUxYPTadCDjKGgIgPdtJnjCeoQyShQLbtQtVmwaxicLskFYp72CT+3oj90o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD1s6q5JxmpjLHRzm5BxEN5nWMIJ986m/Arrn2WZV9q+QIhAKooOb5CRSpM8bLw/9fMcGZeUgYaaju9DrJUUZtF9gNe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":913044},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"d7c5c81f17c31a83da3efadfc64f1cca0cf483d8","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-matrix":"npm run build && node test/browser/communication-matrix.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.30_1789829183301_0.5594284493394444","host":"s3://npm-registry-packages-npm-production"}},"0.2.31":{"name":"@qingzhenghust/game-sdk","version":"0.2.31","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.31","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"d8522cf5424d15b0014159263d2e757e9809f7b3","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.31.tgz","fileCount":194,"integrity":"sha512-yjQXTBhLFaTEOWyUD/NKmKEbEGu/ertILjpYkpMFFQu8+oeWHEdHN0uSWEDCOdNBtef4+X2jIuqAOhRAXmD4DA==","signatures":[{"sig":"MEYCIQD5BnKbEWcM+rFCKp+16a0TZsx6F7/3z48vmt8oR01ZrAIhANwRP1lk/bvh73w1Hktvw/WHSnOEMJSIWGdo+w3PxqvS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD1ouEEKl9jqzcJiJUDRY/5QmuxzT7KYkOHNr9yNt4n/QIgJuOG2eTVf6TfB+ewcr+0aCajeUiuzHqzc8nGVl6gCQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":927232},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"70aebab17dde3a2eb06973521a63278b02c781ef","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-matrix":"npm run build && node test/browser/communication-matrix.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.31_1789831169941_0.46262561610298825","host":"s3://npm-registry-packages-npm-production"}},"0.2.33":{"name":"@qingzhenghust/game-sdk","version":"0.2.33","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.33","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"ceeccad89c211ec66cc6db61fc75174661d6fa55","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.33.tgz","fileCount":203,"integrity":"sha512-xO2h8A4FPWB5nXeTjkFIQ1sgEMJq5WvSHmFkbxxDztXh4uM7gFNAPiIAkQxXPmRsED5IlnGOVbIijOlHFg4SWA==","signatures":[{"sig":"MEUCIQComg/2ui8uLEIiQwSiD8/Nw3Pe/gleagiQF8zkVSbsRwIgFJef+PverK2l7cS5nmFDHb9tPjnXSz6Apn66BKT7EMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC07QoIiS7+X2UA5uo9VAlg30C6zKFXFI1tlLzZXI1cNAiA1PHt39jhbSsfcVHWJmiLXozDBbKRdhpcnVffBLJ0sGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":942693},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"6c9ffa3b85edc40c392f4376f1741efbd3d5579a","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-matrix":"npm run build && node test/browser/communication-matrix.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.33_1789843178940_0.6252438125322344","host":"s3://npm-registry-packages-npm-production"}},"0.2.34":{"name":"@qingzhenghust/game-sdk","version":"0.2.34","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.34","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"49c80e41a2f060812944701c735a2e1f4c355701","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.34.tgz","fileCount":204,"integrity":"sha512-bE8R8qPnFEXqK2ldtKMbrwyM1hO66+aQgNrNG093RQ1Prqdq6GH+m1uIPLIOEw+hiTCAK2eLiQM9xkOFUBsK5A==","signatures":[{"sig":"MEYCIQCCCGk4x6w6ojbuA0H2fHA58mbvAzSMnjVIvLyZb1E3UAIhANbNw4C02KrFw4cM6lGx1y4MZgFNjxUZcJ/Y+8C5xltj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGQMefTIY/n+7Uq4r5GgPDzfK8J+k10Cct0Mp0IhcdmNAiEAtxiFG6t4tx/usqeycC3Bg7xE9TB0ScpBcXHkh0ChuMk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":952570},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"b216b9e2d331a81c041dfca4e9e5879211b95f37","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-matrix":"npm run build && node test/browser/communication-matrix.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.34_1789843981989_0.0902794072229347","host":"s3://npm-registry-packages-npm-production"}},"0.2.35":{"name":"@qingzhenghust/game-sdk","version":"0.2.35","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.35","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"27e70c0d22423a0e996318e5d3147f74cc8afb9c","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.35.tgz","fileCount":204,"integrity":"sha512-bcpQ77kVKKp3dUjMHPFzPX+L6C2WGFVIzuVLrLLlarlM75FDuQ8V+bCPMPbh33nOCiSoMkmsfr4vt3MiE2gaTA==","signatures":[{"sig":"MEYCIQD0zL8FRco9kp7cbb/GqW42P1umPocwpV3KihckE3E+1wIhANiU1/O7EngCds34t9IRljGbjPK+1h0BtmoB5kIu5tOu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDG+lE7hS9I7zgqbXN9aCfvZODMqosttUE3ayd6ASIPCAIhAM0LmHDudlc3FlHw3XxFM+btT7DTKAeBABC/P3qfviuG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":952968},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"12566651c4a12dc007b7a802908858774e18bcb6","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-matrix":"npm run build && node test/browser/communication-matrix.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle H5 multiplayer game runtime SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.35_1789879795756_0.48124506003969025","host":"s3://npm-registry-packages-npm-production"}},"0.2.36":{"name":"@qingzhenghust/game-sdk","version":"0.2.36","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.36","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"e3007c8dc98b51558d30d89b79fedc74e06f799a","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.36.tgz","fileCount":204,"integrity":"sha512-t6rYY0AoVwvS3MheHDZYvd4M4cKJZiW+yRT+xfeewiV5azHyQC43ALBBZeHOPjBvSC3QAg5Hvm3MIepXpuJkEw==","signatures":[{"sig":"MEQCIEaTBeyiFRyT+s3UezvKvZzRZ62tjHiDGKCQdhF9FGC8AiB536SpLkVErY4ApYvVyRAhcvAZl99FRPSQy5hVMlG6HQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD3G06PyAzN/x8WAocB7INBG7zRiiVAJUPR9qlZuDFyDQIhAMe7i1GInqX433ODBDI16EJpjCqHclgEh8+71P7Q6QkP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":955918},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"b829294b9584bbaa5c394cf43ec5a9366e7c8e9f","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:communication-matrix":"npm run build && node test/browser/communication-matrix.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle game backend HTTP/WebSocket and host capability SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.36_1789880940718_0.8564970592013217","host":"s3://npm-registry-packages-npm-production"}},"0.2.40":{"name":"@qingzhenghust/game-sdk","version":"0.2.40","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.2.40","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"1dcbe13eae1768146d888a2b7cdc851c666a67ce","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.2.40.tgz","fileCount":210,"integrity":"sha512-FMe206v5ZboPHgH1lXgjVdoP5tB4u3Tu65CNImIJrAQO4yxxnzkhuiiiZCEE1X7+uFn/3cbQpr8TH01BOesAIQ==","signatures":[{"sig":"MEQCIBgsyN3FP9wdq8qpdLJ07nMkDMIqyD2+AMp9mwD7bQ+kAiAWFo+UIgrUhhTBNx6eFDDsajBy5K/dyLzuXk2p5T+zBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAY7/YJ9jG+oBf26z1rlGYb8pcWeOUb53mcF2UX38wJtAiAzaXwvWm/tXSJo75RYrDXNsm5nnaW+3Sq29ZbnIrUEvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":979738},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v1":{"types":"./dist/v1/index.d.ts","import":"./dist/v1/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v1/browser":{"types":"./dist/v1/browser.d.ts","import":"./dist/v1/browser.js"}},"gitHead":"9098f3d7f1b2bafaee9f9afd598fa20dfbc0911f","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:backend-media-dev":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/backend-media-dev.mjs","test:communication-matrix":"npm run build && node test/browser/communication-matrix.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle game backend HTTP/WebSocket and host capability SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.2.40_1789895502933_0.6085911860995741","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@qingzhenghust/game-sdk","version":"0.3.0","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"license":"MIT","_id":"@qingzhenghust/game-sdk@0.3.0","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"862862d780da39c331aeba60e25efe6e72ad0732","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.3.0.tgz","fileCount":119,"integrity":"sha512-6cPakBNQfq25ZhEmmhiMI6d0KAp7K2YhH9kipoWtwsGNftKQ+o1JYqOfEESfquntxLhs4ciYgTUC6jfDKfTzfA==","signatures":[{"sig":"MEYCIQDfCAlTFAShLckdZVjOXqOPcrg5gMa3+sFPC5/2BOXYdQIhAPu4urMo+GQ1AQb0uK5QQ38jSVOqBta1WZdlc5+Wg2jl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFu4+Pb89kElt2HxFcgqKl95LzX7tEP89+pRIyQ0j/v4AiB9qjBBByROj8FZ40Qgw4ws7SdfDUGwv2qMCftCP4vngQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":405451},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v2":{"types":"./dist/v2/index.d.ts","import":"./dist/v2/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v2/browser":{"types":"./dist/v2/browser.d.ts","import":"./dist/v2/browser.js"}},"gitHead":"69ee3af5ce5570ba8aa82c5eea5ede8d0a65712d","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:backend-media-dev":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/backend-media-dev.mjs","test:communication-matrix":"npm run build && node test/browser/communication-matrix.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle game backend HTTP/WebSocket and host capability SDK","directories":{},"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_0.3.0_1789896930487_0.24103647095393077","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@qingzhenghust/game-sdk@0.4.0","bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"dist":{"shasum":"b95ed90add4b20cdccde6b8c2703770168393cb2","tarball":"https://registry.npmjs.org/@qingzhenghust/game-sdk/-/game-sdk-0.4.0.tgz","fileCount":121,"integrity":"sha512-Bg5bV3OaMDf2PpF9gThoR7x9otcVatk4f2P0QNbcR3KKyiScXLcxCPs6h6qjgjE2c4b59GYvS/9IBf2vwOCuCg==","signatures":[{"sig":"MEYCIQC5PeZ2iHzjChvIk2JyEciBnfjY5rCeYxRDlFzeVae/ZgIhAPbJRsT2xG88f6Y1xbpe/Vn56zOtdYhWSuzTpMmNnnuM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDG/wuTcUZCdelXW7CxDMW88XPaPLYh7l5DHpgbV4M+jQIhAIVHTIUAc1k4Zs7SRO8NkOuYHJiTrdKkgbH4CnXYtoff"}],"unpackedSize":411461},"main":"dist/index.js","name":"@qingzhenghust/game-sdk","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./v2":{"types":"./dist/v2/index.d.ts","import":"./dist/v2/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./v2/browser":{"types":"./dist/v2/browser.d.ts","import":"./dist/v2/browser.js"}},"gitHead":"69ee3af5ce5570ba8aa82c5eea5ede8d0a65712d","license":"MIT","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:video":"npm run build && node test/browser/video.mjs","test:voice":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/voice.mjs","prepublishOnly":"npm run build","build:test-game":"npm run build && node scripts/build-test-game.mjs","test:voice-game":"npm run build && node test/browser/voice-game.mjs","test:media-local":"node test/browser/local-media-resilience.mjs","test:media-native":"node test/browser/native-media-server.mjs","build:matrix-games":"node scripts/generate-matrix-games.mjs","game-data:migration":"node scripts/generate-migration.mjs","test:media-resilience":"node test/browser/media-resilience.mjs","test:backend-media-dev":"npm run build && node games/scripts/bundle-sdk.mjs && node test/browser/backend-media-dev.mjs","test:communication-matrix":"npm run build && node test/browser/communication-matrix.mjs","test:communication-resilience":"npm run build && node test/browser/communication-resilience.mjs"},"version":"0.4.0","_npmUser":{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"},"homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Riffle game backend HTTP/WebSocket and host capability SDK","directories":{},"maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"_nodeVersion":"25.6.1","dependencies":{"livekit-client":"2.22.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.28.2","playwright":"^1.63.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/game-sdk_0.4.0_1789919958143_0.8179923799598239"}}},"time":{"created":"2026-09-14T11:50:05.626Z","modified":"2026-09-20T15:59:18.399Z","0.1.0":"2026-09-14T11:50:05.870Z","0.2.0":"2026-09-14T17:38:02.252Z","0.2.2":"2026-09-15T11:41:54.954Z","0.2.3":"2026-09-15T14:35:23.657Z","0.2.4":"2026-09-16T07:32:47.688Z","0.2.5":"2026-09-16T12:16:05.204Z","0.2.6":"2026-09-17T07:27:55.520Z","0.2.7":"2026-09-17T07:43:37.277Z","0.2.8":"2026-09-17T08:09:23.233Z","0.2.9":"2026-09-17T11:47:03.465Z","0.2.10":"2026-09-17T12:27:20.014Z","0.2.11":"2026-09-17T13:30:00.401Z","0.2.12":"2026-09-17T13:58:08.515Z","0.2.13":"2026-09-17T14:07:11.428Z","0.2.14":"2026-09-17T14:20:19.047Z","0.2.15":"2026-09-17T14:58:53.411Z","0.2.16":"2026-09-17T15:17:26.709Z","0.2.17":"2026-09-17T15:22:42.685Z","0.2.18":"2026-09-17T15:46:01.102Z","0.2.19":"2026-09-17T16:04:42.697Z","0.2.20":"2026-09-17T16:23:47.123Z","0.2.21":"2026-09-17T16:36:20.880Z","0.2.22":"2026-09-17T16:47:46.286Z","0.2.23":"2026-09-17T16:51:31.088Z","0.2.24":"2026-09-17T17:15:37.653Z","0.2.25":"2026-09-17T17:38:55.177Z","0.2.26":"2026-09-17T17:55:39.807Z","0.2.27":"2026-09-17T18:14:18.402Z","0.2.28":"2026-09-17T18:48:10.206Z","0.2.29":"2026-09-17T19:03:28.955Z","0.2.30":"2026-09-19T14:46:23.370Z","0.2.31":"2026-09-19T15:19:30.050Z","0.2.33":"2026-09-19T18:39:39.044Z","0.2.34":"2026-09-19T18:53:02.096Z","0.2.35":"2026-09-20T04:49:55.843Z","0.2.36":"2026-09-20T05:09:00.830Z","0.2.40":"2026-09-20T09:11:43.017Z","0.3.0":"2026-09-20T09:35:30.587Z","0.4.0":"2026-09-20T15:59:18.238Z"},"bugs":{"url":"https://github.com/GenStyle/riffle-game-sdk/issues"},"license":"MIT","homepage":"https://github.com/GenStyle/riffle-game-sdk#readme","keywords":["riffle","multiplayer","realtime","room","game","websocket"],"repository":{"url":"git+https://github.com/GenStyle/riffle-game-sdk.git","type":"git"},"description":"Riffle game backend HTTP/WebSocket and host capability SDK","maintainers":[{"name":"qingzhenghust","email":"qingzhenghust@gmail.com"}],"readme":"# @qingzhenghust/game-sdk\n\nRiffle 游戏客户端 SDK。0.3 起，多人的业务规则和状态由每个游戏自己的 `backend/` 实现；平台负责身份、HTTP/WS 路由、隔离的 SQL/Redis，以及语音视频的短期 TURN/SFU 授权。\n\n## 初始化\n\n```ts\nimport { createGameSdkFromHost } from '@qingzhenghust/game-sdk';\n\nconst sdk = createGameSdkFromHost({ app: riffleBridge.app });\nawait sdk.ready();\n```\n\n宿主注入 Runtime URL、Launch Token、平台用户和 game ID。SDK 自动刷新临近过期的 Launch Token，并为 HTTP 和 WebSocket 请求附加同一个可信身份。游戏不得自己保存平台 token、拼接 Runtime backend URL 或传入用户 ID 冒充其他玩家。\n\nSDK 0.3 的默认入口只有这些能力：\n\n- `sdk.backend()`：游戏 backend 的 HTTP/WS 客户端；\n- `sdk.gameRooms()`：基于游戏 backend 约定的可选房间组件；\n- `sdk.media()`：语音、视频、TURN/SFU 和网络探针；\n- `sdk.llm()`、`sdk.uploads()` 和宿主 `sdk.app` 能力。\n\n旧 Runtime 的 `room()`、`rooms()`、`matchmaking()`、`leaderboard()`、`db()` 和实时模拟 capability 不在 0.3 的公开 API 中。匹配、排行榜、状态存储和服务端模拟应在游戏 backend 中实现。\n\n## HTTP 和 WebSocket\n\n```ts\nconst backend = sdk.backend();\n\nconst snapshot = await backend.get('/matches/m1');\nawait backend.post('/matches/m1/input', {\n  requestId: crypto.randomUUID(),\n  sequence: 18,\n  action: 'jump',\n});\n\nconst socket = await backend.connect('/matches/m1/events');\nconst unsubscribe = socket.onMessage(event => applyServerEvent(event));\nsocket.send({ type: 'subscribe', protocol: 1, requestId: crypto.randomUUID() });\n```\n\nHTTP 适合命令、CRUD、权限检查和恢复快照。WebSocket 适合订阅、服务端推送和短小的实时输入。业务 ACK 必须说明请求是已接收、已持久化还是已应用；socket open 和 HTTP 200 本身不代表比赛动作已经执行。\n\n游戏 backend 使用 `@qingzhenghust/game-sdk/server` 声明 HTTP/WS 入口：\n\n```ts\nimport { defineGameBackend } from '@qingzhenghust/game-sdk/server';\n\nexport default defineGameBackend({\n  async http(request, ctx) {\n    // ctx.identity 是可信平台身份；ctx.sql/ctx.redis 已按部署隔离。\n    return Response.json({ userId: ctx.identity.userId });\n  },\n  async websocket(socket, ctx) {\n    socket.send({ type: 'ready', protocol: 1 });\n  },\n});\n```\n\n服务端入口放在 `backend/index.ts`，迁移放在 `backend/migrations/`。部署平台以稳定的 `backendDeploymentId` 更新该游戏唯一 Runner；发布新 artifact 不会多建一套长期 Runner。完整约定见 [Backend API](docs/backend-api.md) 和 [多人快速开始](docs/multiplayer-quickstart.md)。\n\n## 房间组件\n\n房间不是平台隐式状态。游戏需要房间时，由自己的 backend 使用 `@qingzhenghust/game-backend-kit` 定义规则，客户端再调用：\n\n```ts\nconst rooms = sdk.gameRooms();\nconst room = await rooms.create({ maxPlayers: 4, metadata: { mode: 'casual' } });\nawait rooms.join(room.id, { team: 'blue' });\nconst current = await rooms.get(room.id);\nawait rooms.leave(room.id);\n```\n\n不需要房间的留言板、排行榜和异步协作可直接设计 HTTP/WS API。SDK 不会强迫这些玩法创建虚构房间。\n\n## 语音和视频\n\n先由游戏 backend 确认当前用户属于该房间。SDK 随后通过 backend 获取短期媒体授权，并管理采集、P2P/SFU、信令订阅、重连和资源释放。\n\n```ts\nconst voice = await sdk.media().voice(room.id);\nvoice.onTrack((_peerId, stream) => attachAudio(stream));\nawait voice.join(); // 必须由用户操作触发权限请求\nvoice.setMuted(true);\nawait voice.leave();\n\nconst video = await sdk.media().video(room.id);\nvideo.onLocalStream(stream => showPreview(stream));\nvideo.onTrack((peerId, stream) => attachRemoteVideo(peerId, stream));\nawait video.join();\nawait video.setCameraEnabled(false);\nawait video.switchCamera();\nawait video.leave();\n```\n\n双人房默认可用 P2P + TURN，多人房使用 SFU。选择结果来自服务端授权，游戏不接触 TURN 密钥或 SFU 签名密钥。媒体帧不会进入 Runner、SQL 或 Redis；backend 只处理成员权限、房间业务和信令路由。\n\n语音和视频都提供延迟与丢包探针：\n\n```ts\nconst stop = video.observeNetwork(snapshot => {\n  renderNetwork({\n    rttMs: snapshot.summary.rttMs,\n    loss: snapshot.summary.packetLossRate,\n    quality: snapshot.summary.quality,\n  });\n}, { intervalMs: 1000 });\n\nconst diagnostic = await video.probeNetwork({ sampleWindowMs: 1000 });\nstop();\n```\n\n探针读取浏览器 WebRTC 统计，不上传媒体内容、SDP、ICE 地址或凭据。\n\n## 可靠性边界\n\n- 客户端必须显式区分连接状态、业务状态、消息状态和状态版本。\n- 写命令携带稳定 `requestId`，连续输入携带递增 `sequence`，持久状态使用版本或事务。\n- 普通位置帧允许丢弃和覆盖，不能等待 ACK 后才继续模拟。\n- 开局、计分和结算使用去重、有限重试和快照恢复。\n- 断线恢复先读取服务端快照，再恢复订阅；旧连接回调不能覆盖新一代状态。\n- SQL 保存持久事实；Redis 保存短期租约、限流和在线协调；高频帧不写入数据库。\n\n更完整的状态机和测试要求见 [多人状态机](docs/multiplayer-state-machines.md) 与 [验证规范](docs/multiplayer-validation.md)。\n","readmeFilename":"README.md"}