{"_id":"@caputchin/game-sdk","_rev":"6-0996f66d4a30f9e0818f9985768e3bcd","name":"@caputchin/game-sdk","dist-tags":{"latest":"3.2.0"},"versions":{"1.0.0":{"name":"@caputchin/game-sdk","version":"1.0.0","keywords":["caputchin","game-sdk","captcha","game","register"],"license":"MIT","_id":"@caputchin/game-sdk@1.0.0","maintainers":[{"name":"caputchiner","email":"info@caputchin.com"}],"homepage":"https://github.com/Caputchin/caputchin-sdk#readme","bugs":{"url":"https://github.com/Caputchin/caputchin-sdk/issues"},"dist":{"shasum":"4fbebb7be53d96a4935a0232dada3d41b786dd4b","tarball":"https://registry.npmjs.org/@caputchin/game-sdk/-/game-sdk-1.0.0.tgz","fileCount":7,"integrity":"sha512-iCXa0JAewEK3spGPTxpsiQYTymTpboKSvDwpKoZMHEqaQ3Szg/rfazYzXubj902td8n+eDWcW6RrImVHOvBhOA==","signatures":[{"sig":"MEYCIQD0r0N7HiGd908sCJ6K7p4r6U5kXqwr5nqtgnQ3NS2QfAIhAJ+g0oHBjhvugfvYdaVolhyczL7BwAY/qqQTD38VPaUB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6215},"type":"module","_from":"file:caputchin-game-sdk-1.0.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"caputchiner","email":"info@caputchin.com"},"_resolved":"/tmp/6aa2561a991b6adafb4c86367f0a00b1/caputchin-game-sdk-1.0.0.tgz","_integrity":"sha512-iCXa0JAewEK3spGPTxpsiQYTymTpboKSvDwpKoZMHEqaQ3Szg/rfazYzXubj902td8n+eDWcW6RrImVHOvBhOA==","repository":{"url":"git+https://github.com/Caputchin/caputchin-sdk.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript helpers and types for building Caputchin games","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","happy-dom":"^15.0.0","typescript":"^5.4.0","@vitest/coverage-v8":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_1.0.0_1778672455115_0.3807315491661496","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@caputchin/game-sdk","version":"2.0.0","keywords":["caputchin","game-sdk","captcha","game","register"],"license":"Apache-2.0","_id":"@caputchin/game-sdk@2.0.0","maintainers":[{"name":"caputchiner","email":"info@caputchin.com"}],"homepage":"https://github.com/Caputchin/caputchin-sdk#readme","bugs":{"url":"https://github.com/Caputchin/caputchin-sdk/issues"},"dist":{"shasum":"25888c1681b4a0aff11230050099964648687b19","tarball":"https://registry.npmjs.org/@caputchin/game-sdk/-/game-sdk-2.0.0.tgz","fileCount":7,"integrity":"sha512-Y7x7jLAsT7pgTv7Te/9xwAZHT7cvAiaVo64f+jiQLRP2HnuoDU3W9Zn9SHDRjdFEB7RIzqoPn88wZCz7bD2Y6g==","signatures":[{"sig":"MEQCIGWWsCgWdiNuQHZZASyvop5uBAbJIFfeDCZ+HFtmI2f/AiAPbtdCXpWTtu2HbRpAxqfZpoZVZnN3dABaI+GwPqN+KQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40680},"type":"module","_from":"file:caputchin-game-sdk-2.0.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"caputchiner","email":"info@caputchin.com"},"_resolved":"/tmp/ada47c95fe240edc61022b5c9d42d864/caputchin-game-sdk-2.0.0.tgz","_integrity":"sha512-Y7x7jLAsT7pgTv7Te/9xwAZHT7cvAiaVo64f+jiQLRP2HnuoDU3W9Zn9SHDRjdFEB7RIzqoPn88wZCz7bD2Y6g==","repository":{"url":"git+https://github.com/Caputchin/caputchin-sdk.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript helpers and types for building Caputchin games","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","happy-dom":"^15.0.0","typescript":"^5.4.0","@vitest/coverage-v8":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_2.0.0_1779554487696_0.10949475344903892","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@caputchin/game-sdk","version":"2.1.0","keywords":["caputchin","game-sdk","captcha","game","register"],"license":"Apache-2.0","_id":"@caputchin/game-sdk@2.1.0","maintainers":[{"name":"caputchiner","email":"info@caputchin.com"}],"homepage":"https://github.com/Caputchin/caputchin-sdk#readme","bugs":{"url":"https://github.com/Caputchin/caputchin-sdk/issues"},"dist":{"shasum":"5e6625738eaa738b39fb5c41cce3ee1df2e03803","tarball":"https://registry.npmjs.org/@caputchin/game-sdk/-/game-sdk-2.1.0.tgz","fileCount":7,"integrity":"sha512-BV7U59NvTBQE8D+SxqlrUQS2aP0iwnHKhafroknW7Dd5BAkZDkR08isLMJu+WfnmBk34DV5P/Cirk4FzFyLB9Q==","signatures":[{"sig":"MEQCIDk4kXI1wTz8lp74aZt6h6GtTVTjcMK4ZBmLinaLBYXqAiAx2tRvHdOuqg1u/Ri4tWSx6MYLwO+GcFdWmbobzFCLxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40878},"type":"module","_from":"file:caputchin-game-sdk-2.1.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"caputchiner","email":"info@caputchin.com"},"_resolved":"/tmp/75f5aa8ac1d2d587d84e016b88a14eb3/caputchin-game-sdk-2.1.0.tgz","_integrity":"sha512-BV7U59NvTBQE8D+SxqlrUQS2aP0iwnHKhafroknW7Dd5BAkZDkR08isLMJu+WfnmBk34DV5P/Cirk4FzFyLB9Q==","repository":{"url":"git+https://github.com/Caputchin/caputchin-sdk.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript helpers and types for building Caputchin games","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","happy-dom":"^15.0.0","typescript":"^5.4.0","@vitest/coverage-v8":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_2.1.0_1779664789538_0.3480567719601808","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@caputchin/game-sdk","version":"3.0.0","keywords":["caputchin","game-sdk","captcha","game","register"],"license":"Apache-2.0","_id":"@caputchin/game-sdk@3.0.0","maintainers":[{"name":"caputchiner","email":"info@caputchin.com"}],"homepage":"https://github.com/Caputchin/caputchin-sdk#readme","bugs":{"url":"https://github.com/Caputchin/caputchin-sdk/issues"},"dist":{"shasum":"c9418bb5488500eb2be73739a52359bfa82f62ac","tarball":"https://registry.npmjs.org/@caputchin/game-sdk/-/game-sdk-3.0.0.tgz","fileCount":7,"integrity":"sha512-weupaQuzlufT5UweTA+aJC1pzZIFyK7//lMzqyGImDr4CTVeSKzyZJD8SMq1AlSu+ocmrSagLQQi54LMfw5kMw==","signatures":[{"sig":"MEUCIArhZYryrmu57dCOBa5XpjYh4hAkKsuBmR7RQ4ncb8C6AiEAi3i8tOwuCnko6E8L7JOMW7ahxi7a44tncwKn4MbUCdM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54803},"type":"module","_from":"file:caputchin-game-sdk-3.0.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"docs":"typedoc && node ../../scripts/normalize-docs.mjs docs","test":"vitest run","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"caputchiner","email":"info@caputchin.com"},"_resolved":"/tmp/b2eceb08d3f46faaedf5a930426e76e5/caputchin-game-sdk-3.0.0.tgz","_integrity":"sha512-weupaQuzlufT5UweTA+aJC1pzZIFyK7//lMzqyGImDr4CTVeSKzyZJD8SMq1AlSu+ocmrSagLQQi54LMfw5kMw==","repository":{"url":"git+https://github.com/Caputchin/caputchin-sdk.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript helpers and types for building Caputchin games","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@caputchin/replay-contract":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typedoc":"^0.28.19","happy-dom":"^15.0.0","typescript":"^5.4.0","@vitest/coverage-v8":"^2.0.0","typedoc-plugin-markdown":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_3.0.0_1780317820721_0.9403173301773926","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@caputchin/game-sdk","version":"3.1.0","keywords":["caputchin","game-sdk","captcha","game","register"],"license":"Apache-2.0","_id":"@caputchin/game-sdk@3.1.0","maintainers":[{"name":"caputchiner","email":"info@caputchin.com"}],"homepage":"https://github.com/Caputchin/caputchin-sdk#readme","bugs":{"url":"https://github.com/Caputchin/caputchin-sdk/issues"},"dist":{"shasum":"faa9605d3fca2b8271fa82d795049397fbea9a08","tarball":"https://registry.npmjs.org/@caputchin/game-sdk/-/game-sdk-3.1.0.tgz","fileCount":7,"integrity":"sha512-h/GDGFUc3bQmLlfY4WpST4rq+Nd6rShIa8/f8XBdybRawHUWwK4vPZBsD0potP1tdKOFqiZp1hpulPx67MF/AQ==","signatures":[{"sig":"MEUCIHwhjZCpUMQchyZ8cppg2xOzX8QITrbt7ZZEELbIXm9BAiEA+HXu+7fZ3SfPztpb3DWZSk0VyakqB7XaiTD5cSIs8zg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57990},"type":"module","_from":"file:caputchin-game-sdk-3.1.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"docs":"typedoc && node ../../scripts/normalize-docs.mjs docs","test":"vitest run","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"caputchiner","email":"info@caputchin.com"},"_resolved":"/tmp/e2306480c264c3c1289dbfee2dbf0104/caputchin-game-sdk-3.1.0.tgz","_integrity":"sha512-h/GDGFUc3bQmLlfY4WpST4rq+Nd6rShIa8/f8XBdybRawHUWwK4vPZBsD0potP1tdKOFqiZp1hpulPx67MF/AQ==","repository":{"url":"git+https://github.com/Caputchin/caputchin-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"TypeScript helpers and types for building Caputchin games","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@caputchin/replay-contract":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typedoc":"^0.28.19","happy-dom":"^15.0.0","typescript":"^5.4.0","@vitest/coverage-v8":"^2.0.0","typedoc-plugin-markdown":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/game-sdk_3.1.0_1780536371367_0.6604124931490922","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@caputchin/game-sdk","version":"3.2.0","description":"TypeScript helpers and types for building Caputchin games","keywords":["caputchin","game-sdk","captcha","game","register"],"homepage":"https://github.com/Caputchin/caputchin-sdk#readme","repository":{"type":"git","url":"git+https://github.com/Caputchin/caputchin-sdk.git"},"bugs":{"url":"https://github.com/Caputchin/caputchin-sdk/issues"},"license":"Apache-2.0","type":"module","publishConfig":{"access":"public"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"sideEffects":false,"dependencies":{"@caputchin/replay-contract":"0.3.0"},"devDependencies":{"typescript":"^5.4.0","tsup":"^8.0.0","typedoc":"^0.28.19","typedoc-plugin-markdown":"^4.11.0","vitest":"^2.0.0","@vitest/coverage-v8":"^2.0.0","happy-dom":"^15.0.0"},"scripts":{"build":"tsup","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","coverage":"vitest run --coverage","docs":"typedoc && node ../../scripts/normalize-docs.mjs docs"},"_id":"@caputchin/game-sdk@3.2.0","_integrity":"sha512-1Adau1hOtIbxmtwDGDG1dPYJM//9mF1/UkEuj4Acw8REPUP0lQ3wC/xljRMXK6Mj8uli5G4YPkk6kqK2fsF3oA==","_resolved":"/tmp/46f1102b1aa54f4ce6e1210479d3b68b/caputchin-game-sdk-3.2.0.tgz","_from":"file:caputchin-game-sdk-3.2.0.tgz","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-1Adau1hOtIbxmtwDGDG1dPYJM//9mF1/UkEuj4Acw8REPUP0lQ3wC/xljRMXK6Mj8uli5G4YPkk6kqK2fsF3oA==","shasum":"843aad9408ba5665ded98a6a6287ce01b094c490","tarball":"https://registry.npmjs.org/@caputchin/game-sdk/-/game-sdk-3.2.0.tgz","fileCount":7,"unpackedSize":59000,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD+gXV8BidL4B/H1uKY10dBPr1c+RIVCAWvoG2eLx2pVwIhANq3WNCvem8LQg6S9HHXi+1fifkc1V9siE4DMaw3VGnu"}]},"_npmUser":{"name":"caputchiner","email":"info@caputchin.com"},"directories":{},"maintainers":[{"name":"caputchiner","email":"info@caputchin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/game-sdk_3.2.0_1780843373734_0.4890163793828348"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-13T11:40:55.014Z","modified":"2026-06-07T14:42:54.009Z","1.0.0":"2026-05-13T11:40:55.268Z","2.0.0":"2026-05-23T16:41:27.837Z","2.1.0":"2026-05-24T23:19:49.690Z","3.0.0":"2026-06-01T12:43:40.854Z","3.1.0":"2026-06-04T01:26:11.498Z","3.2.0":"2026-06-07T14:42:53.888Z"},"bugs":{"url":"https://github.com/Caputchin/caputchin-sdk/issues"},"license":"Apache-2.0","homepage":"https://github.com/Caputchin/caputchin-sdk#readme","keywords":["caputchin","game-sdk","captcha","game","register"],"repository":{"type":"git","url":"git+https://github.com/Caputchin/caputchin-sdk.git"},"description":"TypeScript helpers and types for building Caputchin games","maintainers":[{"name":"caputchiner","email":"info@caputchin.com"}],"readme":"# @caputchin/game-sdk\n\nTypeScript helpers and types for authors building games that run inside the Caputchin widget. First-party and third-party games use the same public API; no private contract.\n\n## Install\n\n```sh\nnpm install @caputchin/game-sdk\n```\n\n## Usage\n\n```javascript\nimport { register } from '@caputchin/game-sdk';\n\nregister((container, bridge) => {\n  // Render your game UI into container (inside the sandboxed iframe).\n  // Call bridge.pass() only when the player passes the round.\n  // If the player fails or abandons, do not call bridge.pass; silence is the failure signal.\n  bridge.pass({ score: 850, durationMs: 4200 });\n\n  // Return an optional cleanup function.\n  return () => { /* teardown */ };\n});\n```\n\n`score` is any number; the platform doesn't interpret it. Compare scores within a single game only. The bridge is push-only: your game calls `bridge.pass()` (success only) or `bridge.error()` (game crashed); the widget drives the rest.\n\n## Full reference\n\n[docs/game-sdk.md](../../docs/game-sdk.md); `register()` signature, Bridge interface, score semantics.\n\n[Publishing to the marketplace](../../docs/guides/publish-to-marketplace.md); how to list your game.\n","readmeFilename":"README.md"}