{"_id":"@blotout/qinto-sdk-browser","_rev":"15-41c69ffc42b3211de75026fc82300e35","name":"@blotout/qinto-sdk-browser","dist-tags":{"latest":"0.1.14"},"versions":{"0.1.0":{"name":"@blotout/qinto-sdk-browser","version":"0.1.0","_id":"@blotout/qinto-sdk-browser@0.1.0","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"dist":{"shasum":"05ce515be7a1fcd3c3fcd8f303b76baf19af15ca","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.0.tgz","fileCount":4,"integrity":"sha512-lqvFTmLXJgZ5kOKiO05I6IZVh0uvJkKxWskBqErUjEEWJ00DP+b2fAtnLnPE1gxPieQeMQdTVzOAiDemPO8LQQ==","signatures":[{"sig":"MEQCIAR7m3JqhmZfHAAK0oOS4cCuvVZw3K4Qtf347uOgHivAAiAWXKAH+mxAK5tKScZbT/3m2eHU/qibtJ3Qikjo5BaYbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41630},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"nejc-blotout","email":"nejc@blotout.io"},"repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","vite":"^8.0.0","vitest":"4.1.10","wrangler":"4.124.0","happy-dom":"20.10.6","typescript":"6.0.3","@types/node":"25.6.0","vite-plugin-dts":"5.0.3","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.10","@microsoft/api-extractor":"7.58.12"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.0_1787646677893_0.19110242201681515","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@blotout/qinto-sdk-browser","version":"0.1.1","_id":"@blotout/qinto-sdk-browser@0.1.1","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"0a74951f339a0589e619989d8a74181b9e5b9c30","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.1.tgz","fileCount":5,"integrity":"sha512-9f8YRFOuADtNwrFqOL0k2yQGYe2ZH8ArWeVnjG1wj0kWL6oy2LqRbA4kEryUIu/T/aSugUVBaMEoHtF4YX4cFA==","signatures":[{"sig":"MEYCIQCPphOxd2/yKF8ZJvq4srgMcKMjghGVkmmNgB3Q+qajowIhAOWGPTGluc4YeGBRWlFLu1WOp82Itx2xsvP/WWgz+z6z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49698},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.1.tgz","_integrity":"sha512-9f8YRFOuADtNwrFqOL0k2yQGYe2ZH8ArWeVnjG1wj0kWL6oy2LqRbA4kEryUIu/T/aSugUVBaMEoHtF4YX4cFA==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","vite":"^8.0.0","vitest":"4.1.10","wrangler":"4.124.0","happy-dom":"20.10.6","typescript":"6.0.3","@types/node":"25.6.0","vite-plugin-dts":"5.0.3","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.10","@microsoft/api-extractor":"7.58.12"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.1_1787652763144_0.4195851478913408","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@blotout/qinto-sdk-browser","version":"0.1.2","_id":"@blotout/qinto-sdk-browser@0.1.2","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"8e856cee78ac2c5658c9a69d71d6ab3dfdb3de6c","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.2.tgz","fileCount":5,"integrity":"sha512-hVxE9tpiVpspaNadg/qIe8mrt8QDvtUtEn/HqVPBPSz8xucj/KY66EX2R+LIQiLbTjHwpZQUG4Wc5PtN5XjwOg==","signatures":[{"sig":"MEUCIQC1gaxAo6oj8tmGwYWK6CgaRHrtLR4IAMUlTgje9TGP9wIgPkTg5Ml1yyMgNsMbv9d2FQv0nss83o1usxk/yBE4Luw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50701},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.2.tgz","_integrity":"sha512-hVxE9tpiVpspaNadg/qIe8mrt8QDvtUtEn/HqVPBPSz8xucj/KY66EX2R+LIQiLbTjHwpZQUG4Wc5PtN5XjwOg==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","vite":"^8.0.0","vitest":"4.1.10","wrangler":"4.124.0","happy-dom":"20.10.6","typescript":"6.0.3","@types/node":"25.6.0","vite-plugin-dts":"5.0.3","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.10","@microsoft/api-extractor":"7.58.12"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.2_1787720871754_0.27536201478377653","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@blotout/qinto-sdk-browser","version":"0.1.3","_id":"@blotout/qinto-sdk-browser@0.1.3","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"bdf327238270eceb5b62bdb2085fc7775c48b83f","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.3.tgz","fileCount":5,"integrity":"sha512-PREHAKm8D5BLMzCNUFejQGuiR2OD8h+fxhyiWJvsN/n/q/WGMep+Li0xNtHlOh5zj/N4JtbrRMAl3hwqGQNCvg==","signatures":[{"sig":"MEYCIQCGIptOCEGU0Ca2xmf03X+64zv5NzIPgazjtLkfLSxOYQIhAJ3AkSep/zC1Uf2ShIe7kCvpGapi8cDiuY9mYSnDHCjm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50701},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.3.tgz","_integrity":"sha512-PREHAKm8D5BLMzCNUFejQGuiR2OD8h+fxhyiWJvsN/n/q/WGMep+Li0xNtHlOh5zj/N4JtbrRMAl3hwqGQNCvg==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","vite":"^8.0.0","vitest":"4.1.10","wrangler":"4.124.0","happy-dom":"20.10.6","typescript":"6.0.3","@types/node":"25.6.0","vite-plugin-dts":"5.0.3","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.10","@microsoft/api-extractor":"7.58.12"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.3_1787761833300_0.24262934164176464","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@blotout/qinto-sdk-browser","version":"0.1.4","_id":"@blotout/qinto-sdk-browser@0.1.4","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"15b6866f8d1c76c20303531948c45c4f7813ba2f","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.4.tgz","fileCount":5,"integrity":"sha512-tMp4oc9+UkVnRzT6zhCJky+vr3uaryXb2cHApwb1CZp09KVW9kLmDIkR5248RQll0145rOk3ITzGevpD7B0BKA==","signatures":[{"sig":"MEYCIQCULkhNiTwyF74KYMaRn/H3OfYTalNlo0YINjMmQ1K4WwIhAL3dB7EuGYhSd1rau++S+vIox+Nys9mn658nyTdrMPFL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51458},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.4.tgz","_integrity":"sha512-tMp4oc9+UkVnRzT6zhCJky+vr3uaryXb2cHApwb1CZp09KVW9kLmDIkR5248RQll0145rOk3ITzGevpD7B0BKA==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","vite":"^8.0.0","vitest":"4.1.10","wrangler":"4.124.0","happy-dom":"20.10.6","typescript":"6.0.3","@types/node":"25.6.0","vite-plugin-dts":"5.0.3","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.10","@microsoft/api-extractor":"7.58.12"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.4_1787937766731_0.05108654528101986","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@blotout/qinto-sdk-browser","version":"0.1.5","_id":"@blotout/qinto-sdk-browser@0.1.5","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"60bdfbec84c9bb30197e1988c7b23a85e9e716c5","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.5.tgz","fileCount":5,"integrity":"sha512-JzAvzCtZ9WTFSPu/liz0zwnjoerbBI5HDdbvg+JJv0i7vhuBvusbI1ZibGHFqCkgRCXIa7TY2XVUNST83CU5YQ==","signatures":[{"sig":"MEQCIG3RsP0nnPN1fZOPiEY3m54IORyy8KK/xbcuz7tS4O4jAiBLNz6rFAXe5rcCsmkRFxqiCc753RAfA6hHetPYWyXJ4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51458},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.5.tgz","_integrity":"sha512-JzAvzCtZ9WTFSPu/liz0zwnjoerbBI5HDdbvg+JJv0i7vhuBvusbI1ZibGHFqCkgRCXIa7TY2XVUNST83CU5YQ==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","vite":"^8.0.0","vitest":"4.1.10","wrangler":"4.124.0","happy-dom":"20.10.6","typescript":"6.0.3","@types/node":"25.6.0","vite-plugin-dts":"5.0.3","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.10","@microsoft/api-extractor":"7.58.12"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.5_1788168977933_0.8511248761643393","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@blotout/qinto-sdk-browser","version":"0.1.6","_id":"@blotout/qinto-sdk-browser@0.1.6","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"9f5db399b486495322362f19c171d35159930f0e","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.6.tgz","fileCount":5,"integrity":"sha512-XluchtjmQ2AilK44e2bHq/ztIkVWOT81KT5erDnOpubDN5eDFFQFSakjzp+CcCOSr78utv3vADxhnEiQRkq16Q==","signatures":[{"sig":"MEUCIAiN4dnw037+CtztrCe8p2VhMIU3abBBxn/ZFL9XqcT8AiEA6wMAQAAfCk6tJRdfGuGnGH3rMDySKy/B79Z/FPWbxyg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50320},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.6.tgz","_integrity":"sha512-XluchtjmQ2AilK44e2bHq/ztIkVWOT81KT5erDnOpubDN5eDFFQFSakjzp+CcCOSr78utv3vADxhnEiQRkq16Q==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","vite":"^8.0.0","vitest":"4.1.10","wrangler":"4.124.0","happy-dom":"20.10.6","typescript":"6.0.3","@types/node":"25.6.0","vite-plugin-dts":"5.0.3","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.10","@microsoft/api-extractor":"7.58.12"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.6_1788513358715_0.8313437478062462","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@blotout/qinto-sdk-browser","version":"0.1.7","_id":"@blotout/qinto-sdk-browser@0.1.7","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"a054d559903a1da3573861b17d7174b98bc542f7","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.7.tgz","fileCount":5,"integrity":"sha512-ZfXMjZHegEMFsau7hDVQv3f4764stKAIaPldjRmVhOJcNJUlThBN8VJpaB/qyyJ9G8KBg67Tbs0px9WWSjCy/g==","signatures":[{"sig":"MEYCIQDZtuEvXkAdSjuCLcL3WLEHvQJi0Um0KUd8CWpfFgnzygIhAMYgYMu6/rAG2DZnDkFZtOwT1JOgrKnQBR3/URMA8wie","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125912},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.7.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.7.tgz","_integrity":"sha512-ZfXMjZHegEMFsau7hDVQv3f4764stKAIaPldjRmVhOJcNJUlThBN8VJpaB/qyyJ9G8KBg67Tbs0px9WWSjCy/g==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","vite":"8.2.2","vitest":"4.1.11","wrangler":"4.128.0","happy-dom":"20.13.2","typescript":"6.0.3","@types/node":"25.9.5","vite-plugin-dts":"5.1.0","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.11","@microsoft/api-extractor":"7.59.0"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.7_1788892948807_0.5622164557302078","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@blotout/qinto-sdk-browser","version":"0.1.8","_id":"@blotout/qinto-sdk-browser@0.1.8","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"9caa38efe6f05f5f49e6452e92f8d59cb90db7c7","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.8.tgz","fileCount":5,"integrity":"sha512-wOjErOa05cVB7S4d+ZQ18tyU6BFOcdDI4DvQS6xbr8021r98eMYGEaUxySS6ZY2Yu8CaPfUHdGK0W3NqXbT09w==","signatures":[{"sig":"MEYCIQD1VHGF1CzIRACi4Qk9TmTtpcucx1n1bj+50eNIyOvQ3AIhAISiQ9GsoNHHl1ovUMEMAyk8MUwwdNqOA1UDuc8oLSQI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126092},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.8.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.8.tgz","_integrity":"sha512-wOjErOa05cVB7S4d+ZQ18tyU6BFOcdDI4DvQS6xbr8021r98eMYGEaUxySS6ZY2Yu8CaPfUHdGK0W3NqXbT09w==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","vite":"8.2.2","vitest":"4.1.11","wrangler":"4.128.0","happy-dom":"20.13.2","typescript":"6.0.3","@types/node":"25.9.5","vite-plugin-dts":"5.1.0","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.11","@microsoft/api-extractor":"7.59.0"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.8_1789388685415_0.8443212985740465","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@blotout/qinto-sdk-browser","version":"0.1.9","_id":"@blotout/qinto-sdk-browser@0.1.9","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"e4e70fce8d02e33d85de0026475f44f13d79e6d7","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.9.tgz","fileCount":5,"integrity":"sha512-uc/IqxRdULba8qwRi2tc10N4TXtG3NsWp5ZdLgChBJV6c3onBHC6EPaqKU/INof9HTQKt+D1h+YX+KBTB380EQ==","signatures":[{"sig":"MEQCIAliJTz1F/GA/Ay6WuOsNWc1y5a8+MJjgxURAyBvAu7VAiAvVm/4FhA/LlnBvEySvwMpiA3d1REl612kTchOuROWbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFyHc0Q3ojaEqKx4BTeCEY3HvjWPyO4cQHQ/y9je+J6MAiBItVW5tlefG2zyqEHy15nt9puuOxkq4Aiok2gSXTLK2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126092},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.9.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.9.tgz","_integrity":"sha512-uc/IqxRdULba8qwRi2tc10N4TXtG3NsWp5ZdLgChBJV6c3onBHC6EPaqKU/INof9HTQKt+D1h+YX+KBTB380EQ==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","vite":"8.2.2","vitest":"4.1.11","wrangler":"4.128.0","happy-dom":"20.13.2","typescript":"6.0.3","@types/node":"25.9.5","vite-plugin-dts":"5.1.0","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.11","@microsoft/api-extractor":"7.59.0"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.9_1789994310458_0.7991841026518824","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@blotout/qinto-sdk-browser","version":"0.1.10","_id":"@blotout/qinto-sdk-browser@0.1.10","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"11328891a85877eb0f0c8e0495c9169293bd5d68","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.10.tgz","fileCount":5,"integrity":"sha512-G84I8lsc4evte0bUaURyg1hNY2fyEXwLQ4UqohmslVKWR8gY8p21+GES7LlUqD1xyg20XV1GiguYAtRlDl/GGQ==","signatures":[{"sig":"MEQCIAeaeZG8hkCpMLB8d2cCJDbrO0HaaJxw6i8Mx5P7LRmpAiAKgudMS4uKwrdCt6z+3+HDgVs7yOAZD309I8KTti5XrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDALHcqUbkGt17ZdXgKnSV897lhd4bpcbWu2kvVUM3sPgIhAOiuxubvhopp7+wwpwuF97gbQxoXWcPlC0ZSEwHleyog","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126235},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.10.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.10.tgz","_integrity":"sha512-G84I8lsc4evte0bUaURyg1hNY2fyEXwLQ4UqohmslVKWR8gY8p21+GES7LlUqD1xyg20XV1GiguYAtRlDl/GGQ==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","vite":"8.2.2","vitest":"4.1.11","wrangler":"4.128.0","happy-dom":"20.13.2","typescript":"6.0.3","@types/node":"25.9.5","vite-plugin-dts":"5.1.0","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.11","@microsoft/api-extractor":"7.59.0"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.10_1790177807281_0.08164436979022427","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@blotout/qinto-sdk-browser","version":"0.1.11","_id":"@blotout/qinto-sdk-browser@0.1.11","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"563d958045c3d37243f3bf402791aa8b8132caf5","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.11.tgz","fileCount":5,"integrity":"sha512-7L1jfva+Px7zXplVv3cUkveMFxPdPJTWJbJ0XTsbFUSlCpk8j3SZmNdBAiYnPvxkb1tnhNV0NHjG6I3tbbN5Yg==","signatures":[{"sig":"MEUCIQCiCwG7UB/NlAwERW3tDkETYV/iX54dMRPu193RVX3oxQIgWsQUsNNNdUK9x+Li9haqeOsTTI9yaJ4RbSIDwFLHuxs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBcSYeMACNY+CQyC2H5G5KRT5uLg/hIWSVsOm29CLQ1jAiATCaJBz1RL9yZvwX010MaAz40u+//CG8l1p43GT+umnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127810},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.11.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.11.tgz","_integrity":"sha512-7L1jfva+Px7zXplVv3cUkveMFxPdPJTWJbJ0XTsbFUSlCpk8j3SZmNdBAiYnPvxkb1tnhNV0NHjG6I3tbbN5Yg==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","vite":"8.2.2","vitest":"4.1.11","wrangler":"4.128.0","happy-dom":"20.13.2","typescript":"6.0.3","@types/node":"25.9.5","vite-plugin-dts":"5.1.0","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.11","@microsoft/api-extractor":"7.59.0"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.11_1790570241861_0.4235988098206025","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@blotout/qinto-sdk-browser","version":"0.1.12","_id":"@blotout/qinto-sdk-browser@0.1.12","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"753acd515f05d899886f5b5a7bafa398c287d87a","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.12.tgz","fileCount":5,"integrity":"sha512-V5LfB55J0pcLw/M4+9ke9sj1ZC4VNRROoOglNhnGtlUFcVbx2NFQCUCD1HDmve0yFotEM8OpdhpIpTne3j7/1A==","signatures":[{"sig":"MEUCICs/WU9XViY2O4RYqysZpSDYww6/Ip8fIgnfOcLinnP4AiEA2AXldnUJWJs06jGIqnRBMmf9zXqVQy/2UuwFuGTy8eE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDZuRQeBeFmN0GatxDBVAUHhG+RAq22hIfIV28D5eTxZgIhALVPRzSOpvKlKYYmml6pqL9JQQIMCqa3yLtuSgAmFr6x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132897},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.12.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.12.tgz","_integrity":"sha512-V5LfB55J0pcLw/M4+9ke9sj1ZC4VNRROoOglNhnGtlUFcVbx2NFQCUCD1HDmve0yFotEM8OpdhpIpTne3j7/1A==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","vite":"8.2.2","vitest":"4.1.11","wrangler":"4.128.0","happy-dom":"20.13.2","typescript":"6.0.3","@types/node":"25.9.5","vite-plugin-dts":"5.1.0","@qinto/sdk-shared":"0.1.0","@vitest/coverage-v8":"4.1.11","@microsoft/api-extractor":"7.59.0"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.12_1790775351837_0.08068668746725671","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@blotout/qinto-sdk-browser","version":"0.1.13","_id":"@blotout/qinto-sdk-browser@0.1.13","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"homepage":"https://github.com/blotoutio/qinto#readme","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"95b7415416ebdacce2a3757faad7b27ef1adec12","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.13.tgz","fileCount":5,"integrity":"sha512-Kl5XzNUzdH8X8Y/ZaHjsez1NcHkDY/BynK08AZ7M/ncv/JYdkuTLzsVF26jWAmX2TPjif3BJTilQ0MQbmApjag==","signatures":[{"sig":"MEUCIDGxx4NWQDuac/U+84XSOV3aWiSm0uix3XmMX8gkrU3wAiEAmBz3kLDn7emWa90ikC5fYf+RULKonCAn9vw+liOdEd4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDssBREt2vZusyuwAVvJidclzFVcPl4qKNPGDaShMCHhwIhAIfDq7GscLT+l4pRcYGqPpJwjcgBE5CAbe4ULGvG0xDk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140406},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.13.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.13.tgz","_integrity":"sha512-Kl5XzNUzdH8X8Y/ZaHjsez1NcHkDY/BynK08AZ7M/ncv/JYdkuTLzsVF26jWAmX2TPjif3BJTilQ0MQbmApjag==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","vite":"8.2.2","vitest":"4.1.11","wrangler":"4.128.0","happy-dom":"20.13.2","typescript":"6.0.3","@types/node":"25.9.5","vite-plugin-dts":"5.1.0","@qinto/sdk-shared":"0.1.0","@qinto/app-envelope":"0.0.0","@vitest/coverage-v8":"4.1.11","@microsoft/api-extractor":"7.59.0"},"_npmOperationalInternal":{"tmp":"tmp/qinto-sdk-browser_0.1.13_1790843647715_0.49879443600719475","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"_id":"@blotout/qinto-sdk-browser@0.1.14","bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"dist":{"shasum":"9dcaa6ce91f566e99800d89503999782b0d802ff","tarball":"https://registry.npmjs.org/@blotout/qinto-sdk-browser/-/qinto-sdk-browser-0.1.14.tgz","fileCount":5,"integrity":"sha512-lob854/P71RuYdz+JfUwK77fg9jQGEVOqdDSYXWxyZRNXtQjZ+5U0QMIMC73UQ0kGFDCx7rkPuz21zJi+Mktsg==","signatures":[{"sig":"MEYCIQDH5GcCz19LnrQ9MFVLLoryEBL+nr0Z2I8VanbaijN9VQIhAI7LBc+D2clQu4qMqMH9MolWtYOUuhZInh5oBApgc9Ej","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIQDh3+7MrT/4IqgzRbybsjEvfmq9wFfIls97RflkRFLXiQIfMukNmHj/oCM0BIKaOxokjpe0XJMZ8/F1NyXoYl28OA=="}],"unpackedSize":141254},"main":"./dist/index.js","name":"@blotout/qinto-sdk-browser","type":"module","_from":"file:/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.14.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"vite build","artifact":"vite build -c vite.tag.config.ts && tsx scripts/embed-artifact.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"version":"0.1.14","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"48c28f6b-23d5-4d3f-81d3-4a4873876d70"}},"homepage":"https://github.com/blotoutio/qinto#readme","_resolved":"/home/runner/work/_temp/pack/blotout-qinto-sdk-browser-0.1.14.tgz","_integrity":"sha512-lob854/P71RuYdz+JfUwK77fg9jQGEVOqdDSYXWxyZRNXtQjZ+5U0QMIMC73UQ0kGFDCx7rkPuz21zJi+Mktsg==","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"_npmVersion":"11.6.1","description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","directories":{},"maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","vite":"8.2.2","vitest":"4.1.11","wrangler":"4.128.0","happy-dom":"20.13.2","typescript":"6.0.3","@types/node":"25.9.5","vite-plugin-dts":"5.1.0","@qinto/sdk-shared":"0.1.0","@qinto/app-envelope":"0.0.0","@vitest/coverage-v8":"4.1.11","@microsoft/api-extractor":"7.59.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/qinto-sdk-browser_0.1.14_1790927795546_0.9113140837599958"}}},"time":{"created":"2026-08-25T08:31:17.695Z","modified":"2026-10-02T07:56:35.802Z","0.1.0":"2026-08-25T08:31:18.027Z","0.1.1":"2026-08-25T10:12:43.300Z","0.1.2":"2026-08-26T05:07:51.903Z","0.1.3":"2026-08-26T16:30:33.431Z","0.1.4":"2026-08-28T17:22:46.874Z","0.1.5":"2026-08-31T09:36:18.072Z","0.1.6":"2026-09-04T09:15:58.830Z","0.1.7":"2026-09-08T18:42:28.947Z","0.1.8":"2026-09-14T12:24:45.557Z","0.1.9":"2026-09-21T12:38:30.543Z","0.1.10":"2026-09-23T15:36:47.392Z","0.1.11":"2026-09-28T04:37:21.936Z","0.1.12":"2026-09-30T13:35:51.939Z","0.1.13":"2026-10-01T08:34:07.808Z","0.1.14":"2026-10-02T07:56:35.637Z"},"bugs":{"url":"https://github.com/blotoutio/qinto/issues"},"homepage":"https://github.com/blotoutio/qinto#readme","repository":{"url":"git+https://github.com/blotoutio/qinto.git","type":"git","directory":"projects/sdk/browser"},"description":"Qinto browser SDK: the cookie-backed WebSocket client for the identity graph, and the source of the /q.js tag. Zero runtime dependencies.","maintainers":[{"name":"nejc-blotout","email":"nejc@blotout.io"}],"readme":"# @blotout/qinto-sdk-browser\n\nThe Qinto browser client. It sends events, identity, and consent from your page to your own Qinto host over one\nWebSocket connection, and gives you a promise per call that settles when the edge accepted it. Zero runtime\ndependencies.\n\n## Why we built it\n\nA page normally carries one script per vendor: one for the ad platform, one for analytics, one for the CRM. Each is a\nseparate connection to a separate company, a separate copy of your tracking code, and a separate thing to keep working.\n\nQinto turns that around. Your site sends each action **once**, to a Qinto host on your own domain. The edge resolves who\nthe visitor is, applies the consent that visitor gave, and fans the action out server-side to every app the site has\ninstalled. Adding or removing a destination is a change in the Qinto platform — not a change in your page.\n\nThis package is the client for that connection:\n\n- **First-party.** The socket goes to your own hostname, and the visitor id is a first-party cookie your Qinto host\n  sets. No vendor origin, no third-party pixel.\n- **One integration, not one per vendor.** Destinations are installed on the site; your page never learns their names.\n- **Acknowledged.** Every method returns a promise that settles when the edge accepted the action, so you can `await` a\n  `Purchase` before you navigate away from the page.\n- **Typed, and dependency-free.** The types ship with the package, and installing it pulls in nothing else.\n\nIf you would rather paste a `<script>` tag than bundle a client, you do not need this package: the Qinto platform gives\nyou a snippet built from this same source. Install the package when you build your site — an SPA, a framework, a\nTypeScript app — and want the client in your bundle. [The tag](#the-tag) lists what differs.\n\n## Install\n\n```sh\nnpm i @blotout/qinto-sdk-browser\n```\n\n## Connect\n\nCall `init` once, where your app starts. Nothing to `await`, nothing to keep:\n\n```ts\nimport { init } from '@blotout/qinto-sdk-browser'\n\ninit({ destination: 'https://q.example.com' })\n```\n\nThen import the calls you need from any file:\n\n```ts\nimport { track } from '@blotout/qinto-sdk-browser'\n\nawait track('PageView')\n```\n\n`destination` is your site's Qinto host — the same origin the platform's snippet loads `/q.js` from. The Qinto platform\nshows it on the site's snippet page: your own mapped hostname (`q.example.com`), or the site's development URL while\nDNS is still pending.\n\n| Option | Default | What it does |\n| --- | --- | --- |\n| `destination` | — | Required. The origin of your Qinto host. |\n| `globalName` | `qinto` | The `window` property this instance lives on. Change it when the page already has a `window.qinto`, or to run [a second host](#a-second-host). |\n| `onError` | — | Receives connection errors that belong to no single call — a dropped socket, an unreadable frame. |\n| `requestTimeoutMs` | `10000` | How long one call waits for its acknowledgement before it rejects with `QintoTimeoutError`. |\n\nThe instance lives on `window[globalName]`, and every call goes through it. A call made before `init` has connected\nwaits there and is sent, in order, once the connection is open — so a component can `track` on mount without knowing\nwhether `init` has finished. If that first connection fails, `init` rejects and so does every call that was waiting.\n\n`init` does two things, in order. It loads the browser code of the apps the site installed from\n`<destination>/q.js?tag=0` — the same script the snippet loads, minus the client this package already is — and then opens\nthe connection. It resolves, to the same handle `client(globalName)` returns, once both are done, so the first call you\nmake already runs through every app. A page with a Content Security Policy must allow the destination in\n`script-src` (for `/q.js`) and `wss://<destination host>` in `connect-src` (for `/open`): an `https:` source never\nmatches a `wss:` URL, and a blocked socket leaves `init` pending with every queued call.\n\nThat wait is capped at three seconds, because your events matter more than the apps. A script that is still loading at\nthat point no longer holds `init`: the client connects, your calls go out, a line in the console says so, and the apps\nactivate the moment the script lands. A script that fails to load is logged the same way and leaves the site's browser\napps off for this page. After the first connection the client reconnects on its own with an exponential backoff up to\n30 seconds; a call made while the socket is down waits in a queue and is sent on the next open, up to its timeout.\n\nCall `init` once per page. A second `init` on a name that is already running rejects with `QintoError` rather than run\nevery app twice. If the page pasted the snippet as well, `init` takes over its global: the calls the snippet buffered are\nsent by this client, and the tag skips its own boot.\n\n`init` runs in a browser only. On a server it throws `QintoEnvironmentError` — every reconnect there would mint a new\nanonymous visitor. Use [`@blotout/qinto-sdk-server`](https://www.npmjs.com/package/@blotout/qinto-sdk-server) instead.\n\n### A second host\n\nA page that sends to two Qinto hosts starts each under its own name, and addresses the second by that name:\n\n```ts\ninit({ destination: 'https://q.example.com' })\ninit({ destination: 'https://q.partner.com', globalName: 'partner' })\n\nimport { client, track } from '@blotout/qinto-sdk-browser'\n\nawait track('AddToCart', { value: 10.5 })\nawait client('partner').track('AddToCart', { value: 10.5 })\n```\n\n`client(name)` looks the instance up on `window[name]`; it creates nothing and holds only the name, so it can be written\nat every call site. The module-level functions are `client('qinto')`.\n\n## Send\n\n```ts\nimport { alias, identify, track } from '@blotout/qinto-sdk-browser'\n\nawait track('AddToCart', { currency: 'USD', value: 10.5 })\n\nawait identify({ email: 'ada@example.com', plan: 'pro' })\nawait identify({ plan: 'pro' }, 'crm-user-8412')\n\nawait alias('crm-user-8412')\n```\n\n| Method | What it does |\n| --- | --- |\n| `track(event, properties?, options?)` | Records something the visitor did. Resolves to `{ eventId }`. |\n| `identify(traits?, id?)` | Merges identity traits into the visitor's profile, and links `id` — an identifier of your own — to them. |\n| `alias(alias)` | Links an identifier of your own to the visitor without touching traits. |\n| `consent(input)` | Records the visitor's consent choices. See [Consent](#consent). |\n\nDetails worth knowing:\n\n- **Event names are free-form**, but the [eleven standard events](https://docs.blotout.io) are the vocabulary apps\n  recognize without per-site configuration. An app that does not know your own name does nothing with it.\n- **`track` returns the event id.** A payload carrying a non-empty `orderId` uses that as the event id, so a purchase\n  you also send from your backend deduplicates across the two. Otherwise one is minted. Pass your own with\n  `track(event, properties, { eventId })`; a supplied id always wins.\n- **`options.installs` picks the app installs that receive a track.** `{ mode: 'except', installIds }` reaches every\n  install but the listed ones, and `{ mode: 'only', installIds }` reaches the listed ones alone. An unknown id is\n  ignored. An empty `only` list reaches no install, but the event is still sent and stored as usual. On the page, an\n  install the rule leaves out does not see the event in its `onEvent`; on the server, it does not receive it, though its\n  transform still runs.\n- **Traits merge.** Only the traits you send change. A trait sent as `null` clears the stored one, so\n  `identify({ plan: null })` is an unset, not a no-op.\n- **A trait never links an identifier.** An `email` or `phone` trait is stored as a\n  [standard trait](#standard-traits), nothing more; call `alias` with the value so a later call from your server can\n  address the same person by it.\n- **A link is permanent.** Repeating `alias` is safe, and an identifier that already belongs to someone else does not\n  move.\n\n### Standard traits\n\nEight trait keys are the visitor's identity fields. Qinto stores them as such, and apps read them by these names;\nany other key is a custom trait, kept as sent.\n\n| Key | Meaning | Handling |\n| --- | --- | --- |\n| `email` | Email address | Trimmed and lowercased. Must look like `name@host.tld`, or the trait is dropped. |\n| `phone` | Phone number | Trimmed; spaces, `()`, `.` and `-` removed; a leading `+` kept. Needs at least 7 digits and no other characters, or the trait is dropped. |\n| `first_name` | Given name | Stored as sent. |\n| `last_name` | Family name | Stored as sent. |\n| `country` | Country | Stored as sent. |\n| `state` | State or region | Stored as sent. |\n| `city` | City | Stored as sent. |\n| `postal_code` | Postal or ZIP code | Stored as sent. |\n\n```ts\nawait identify({ firstName: 'Ada', email: ' Ada@Example.com ', phone: '+1 (415) 555-0142' })\n// stored: first_name 'Ada', email 'ada@example.com', phone '+14155550142'\n```\n\n- **camelCase keys fold to these names.** `firstName` and `first_name` are the same field, as are `postalCode` and\n  `postal_code`.\n- **A dropped value changes nothing.** An invalid `email` or `phone` leaves the stored one in place; the other traits\n  in the same call still apply.\n- **Values are not hashed.** The SDK sends what you pass, over HTTPS. A non-string value on a standard key other than\n  `email` or `phone` is stored as its JSON.\n\n## Read\n\n```ts\nimport { getSession } from '@blotout/qinto-sdk-browser'\n\nconst { anonId, globalId, ip, geo } = await getSession()\n```\n\n| Method | What it returns |\n| --- | --- |\n| `getSession()` | `{ anonId, globalId, ip, geo }` — visitor identity plus the server-observed IP and narrow Cloudflare location. `geo` contains `country`, EdgeTag-compatible subdivision code `region`, full subdivision name `state`, and `isEU`; unavailable values are `null`. |\n| `getAnonId()` | The `anon_…` id alone. It reads the session on the first call and remembers it. |\n| `getConsent()` | The consent state stored for this visitor. |\n\nA choice saved on one of the visitor's other sessions reaches this one separately, so a read taken right after a write\nsomewhere else can still return the previous value.\n\n## Consent\n\n```ts\nimport { consent } from '@blotout/qinto-sdk-browser'\n\nawait consent({ categories: { analytics: true, marketing: false } })\nawait consent({ apps: { 'facebook-capi': false } })\n```\n\nChoices merge, so a banner can send one toggle at a time. The five categories are exported as `CONSENT_CATEGORIES`:\n`necessary`, `functional`, `analytics`, `marketing`, `salesOfData`. `necessary` is always granted and accepts only\n`true`.\n\nConsent decides **which apps receive an action**: an app is delivered to only when the visitor granted the category its\nmanifest declares, and the per-app map overrides that for one app. It is not a switch on whether Qinto accepts the\naction. A site that collects no consent at all turns enforcement off in the platform instead.\n\n## Geo filters\n\nAn install can have a **geo filter**: the visitor locations where it runs. You set it in the Qinto\nplatform, on the install's card under **Site → Apps**, or through the API or the MCP tool\n`qinto_set_install_geo_filter`. Your page code does not change.\n\nA geo filter has a list of locations to include (\"Run only in\"), a list to exclude (\"Never run in\"),\nor both. Each entry is one of these:\n\n| Entry | Example | Matches |\n| --- | --- | --- |\n| Country code (ISO 3166-1 alpha-2) | `SI` | A visitor in that country |\n| `EU` | `EU` | A visitor in a European Union country |\n| US state code (ISO 3166-2) | `US-CA` | A US visitor in that state. The 50 states and DC; US territories use their own country codes |\n\nAn install with a geo filter runs for a visitor only when the location is known, the include list\nis empty or one of its entries matches, and no exclude entry matches. The exclude list wins:\ninclude `US` with exclude `US-CA` runs everywhere in the US except California. The location is\nwhere the visitor is on this page load, not where they first visited the site.\n\n**An unknown location turns the install off**, because a geo filter is a compliance control. The\nlocation is unknown when:\n\n- the visitor's country is not known (no country, `XX`, or `T1` for Tor);\n- a list names a US state, and a US visitor's state is not known;\n- a list holds `EU`, and the request does not say whether the country is in the EU.\n\n**What it covers.** The visitor's browser session: the app's browser code, the connect call, the\nevents and transforms from the page, pushes to the page, stored click ids and cookies, and calls to\nthe app's visitor endpoints. It does **not** limit events sent with the server SDK or the HTTP API,\nthe app's schedules, its webhooks and API endpoints, MCP tools, or calls from other apps.\n\n**A new install runs in all locations.** You cannot give an install a geo filter when you create\nit, and a new install is on and deploys at once, so it runs until you turn it off or save its geo\nfilter. To add an install that must never run in the wrong location, turn the whole app off on the\nsite first, add the install, save its geo filter, then turn the app on. The app's other installs\nare off for that time too.\n\n**When a change takes effect.** Saving a geo filter redeploys an active site. The server applies\nit as soon as the deploy is done; on a site that shares another site's identity graph, pushes,\nstored click ids and cookies, and the browser's answer can take up to 60 seconds more. A page loaded after that gets a changed list at once; after you\nadd or remove a geo filter, it can take about 10 minutes, because `q.js` is cached. A page that is\nalready open keeps the installs it started with until it reloads.\n\n**What it costs the page.** On a site with a geo-filtered install, the client asks once, when it\nconnects, which of those installs it may run, and holds the page's first calls until the answer\narrives. If the request fails, those installs stay off for the page and the console says so; all\nother tracking continues. A site with no geo filter sends no extra request. Every app's browser code\nstill downloads in `q.js`, as it does for an app the visitor has not consented to; it does not run.\n\n## Close\n\n```ts\nimport { close } from '@blotout/qinto-sdk-browser'\n\nawait close()\n```\n\nStops reconnecting and rejects every call still in flight. A page that lives for its whole session rarely needs it.\n\n## Errors\n\nEvery error the client throws extends `QintoError`.\n\n| Class | When |\n| --- | --- |\n| `QintoEnvironmentError` | `init` or a call was made outside a browser. |\n| `QintoError` | `window[globalName]` belongs to something else on the page, or `init` was called on a name that is already running. |\n| `QintoTimeoutError` | The call waited `requestTimeoutMs` with no acknowledgement. |\n| `QintoProtocolError` | The edge refused the frame, or the socket closed with the call in flight. Its message is the edge's own. |\n\n```ts\nimport { QintoTimeoutError } from '@blotout/qinto-sdk-browser'\n\ntry {\n  await track('Purchase', { currency: 'USD', value: 20.5, orderId: '190315' })\n} catch (error) {\n  if (error instanceof QintoTimeoutError) {\n    // queue it and retry: the order id keeps the retry from double-counting\n  }\n}\n```\n\n## The tag\n\nThe Qinto platform also gives you a `<script>` snippet, built from this same source, that binds a global (`window.qinto`\nby default) and queues calls made before it finishes loading. Both talk to the same edge and mint the same ids, so a\nsite can move from one to the other without losing a visitor.\n\nThe apps the site installed run in both, `init` fetches their browser bundles from the same `/q.js`, consent gates\nthem the same way, and both queue a call made before the connection is open. Two things differ in this package:\n\n- **You choose when it loads.** The snippet loads the tag as soon as the page parses it; here, `init` runs when your\n  code calls it, and the calls are typed imports rather than `window.qinto`.\n- **The page load is yours.** The tag can record it for you; here, `track('PageView')` is yours to call.\n\n## Types\n\n`QintoBrowserClient` (what `client(name)` and `init` return), `QintoInitOptions`, `ConsentCategory`, `ConsentInput`, `ConsentState`, `InstallRule`, `Properties`,\n`SessionInfo`, `TrackOptions`, and `Traits` are all exported.\n\n## Documentation\n\nThe standard events, the identity model, and the platform itself are documented at\n[docs.blotout.io](https://docs.blotout.io).\n","readmeFilename":"README.md"}