{"_id":"@saytv/chat-sdk","_rev":"42-dddb4f5342713715b416460447a4c048","name":"@saytv/chat-sdk","dist-tags":{"latest":"2.7.1"},"versions":{"2.1.0":{"name":"@saytv/chat-sdk","version":"2.1.0","_id":"@saytv/chat-sdk@2.1.0","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"9a99fe0598d8a002b2ab90645fef33ccd59642c3","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.1.0.tgz","fileCount":12,"integrity":"sha512-pkg94gejOKweVhH07NCMkTD5Rvc1obdOyPtNH3Dcgs9DfbJ8Td4WP0kJV0DlVwfog4w1z919anN9v/a+n6ISeQ==","signatures":[{"sig":"MEQCID2OgCKxxwTNJzkPiPaJ5giCHrjOP/oIyoZROQJJ1/SHAiAqfbRQjv2mlG3xCGwTEAP3kCNkxRjLe9m25wXTTnjn3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":959682},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"54f2d930019c0ba2276f3007876204120d6751aa","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","docs:preview":"pnpm --filter @saytv/docs preview","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.9.0","description":"Embeddable chat widget for SayTV — a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.1.0_1773169769524_0.6352586639442108","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@saytv/chat-sdk","version":"2.1.1","_id":"@saytv/chat-sdk@2.1.1","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"7662cc0b15052e168de73d485172f1e422fb3fbc","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.1.1.tgz","fileCount":12,"integrity":"sha512-ZYx5NzgXbZB8y8vywuD68WGe5bu4JbiLLt8qc+8RVk3VlUCOx6/exLYU/CZN/oWB8u5H2qEz/4rbJChT9DqGpQ==","signatures":[{"sig":"MEUCICNrPAkncLofLVNqkfL1SYDlvdcc78Cmsjfdge3yHOFlAiEA2WoEfuU898JlfFL92MxF7DOTwRNZ55Z9VikLh2aqNM0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":960410},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"238c81d8e9cbefa3eda067fc56eb40306be61ce0","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","docs:preview":"pnpm --filter @saytv/docs preview","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.9.0","description":"Embeddable chat widget for SayTV — a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.1.1_1773215685434_0.8924603254231342","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@saytv/chat-sdk","version":"2.1.2","_id":"@saytv/chat-sdk@2.1.2","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"14b6d6c4e4de5800d31b2bc6b75ed1afad4fc3c6","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.1.2.tgz","fileCount":15,"integrity":"sha512-DBLus4lKGfPkEhVDEXAcDlgEU+3/M0mBGCTWW24Id7nAuKDJ2jAdrw40M/Hib5X2wiWxWYSaCSzh/nT6Lw2WMA==","signatures":[{"sig":"MEQCICgl9c2/WjiItfVoG94LHSpw60n+GcSlJIjJiAh3jqDTAiBynnfTsEE8TCDfc0ZdQdkTkjJBzbd21hiEEJB7zcOwWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":999470},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"6d918351a2317386d21d2439411c422c5c01e74e","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","docs:preview":"pnpm --filter @saytv/docs preview","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.9.0","description":"Embeddable chat widget for SayTV — a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.14.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.1.2_1773346787600_0.25124491822040085","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"@saytv/chat-sdk","version":"2.1.4","_id":"@saytv/chat-sdk@2.1.4","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"8a6cf527b16600bd9e987fe441bc5e098139296c","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.1.4.tgz","fileCount":15,"integrity":"sha512-reIrtSynFcc2r0JRsJ1V9jc0afS1zY5ZJhub+Oh8khHGYnADlUurJYsUApaeH7JA/+YAtjznyDIn2bdA9JPUxg==","signatures":[{"sig":"MEQCID22Uoy9AOqebEsHTMTgfMsJpl1XXHGdEJjfpELXhGWPAiBC9Ke0WRd4mfHjZNGYheeQm2RbS/KxuK5zI6QhBPrHGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1000297},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"1c75b8a9a6aa77f8b5e3917be8ab5afb978fb271","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","docs:preview":"pnpm --filter @saytv/docs preview","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.9.0","description":"Embeddable chat widget for SayTV — a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.14.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.1.4_1773670346963_0.011804777600963101","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"@saytv/chat-sdk","version":"2.1.5","_id":"@saytv/chat-sdk@2.1.5","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"5fa9f6edc2943ecc5a580661a578fbecd1d60a1a","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.1.5.tgz","fileCount":15,"integrity":"sha512-wZlbIJXruyCmmPHoMHJOwWOk9uwT7mJkHpv6Qnt/a7XE5hJKhg+SmzSX4tgV4XmANJv9dlytQ6wQlIeDoN+rtA==","signatures":[{"sig":"MEYCIQDYeP502j78mWU0OjDnv1h8gBr4ajCpzpccdOYjuIRuTQIhAKsL4xSTCngpLRvDPFnhM8U8/+M0H1CHZNZd+YSWND37","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1004328},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"9fc7667d364787fb4960f06588b2e3c483ecc2d6","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","docs:preview":"pnpm --filter @saytv/docs preview","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.9.0","description":"Embeddable chat widget for SayTV — a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.14.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.1.5_1774425558779_0.312043163304226","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"@saytv/chat-sdk","version":"2.1.6","_id":"@saytv/chat-sdk@2.1.6","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"6aa4abd8b7158777d8d5571182c2197d1f888421","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.1.6.tgz","fileCount":15,"integrity":"sha512-8Xm6jy0pgmNnmPmgbXxuY/Sp55WcWA83VBA9ryOJGJ074bAFP2iM7/d1I76mDf5YWqDNp2/kLIQ+/0h3/AUYdQ==","signatures":[{"sig":"MEYCIQCPpo4XX31JYyI/Lfbt+JscxiW8krrildJhzaW395h9rwIhAJh5ABjEYfqncohnE8J71yPiT/1a/GYj4Iy87GD2m4tf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1004645},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"f8e5d498dfc75994229b6e2afd8bafc48633bb8f","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","docs:preview":"pnpm --filter @saytv/docs preview","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.11.0","description":"Embeddable chat widget for SayTV — a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.14.1","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.1.6_1775641172187_0.9271142168923983","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@saytv/chat-sdk","version":"2.2.0","_id":"@saytv/chat-sdk@2.2.0","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"ecdec718a7f1c59c91c23260d9630dd2f9218026","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.2.0.tgz","fileCount":15,"integrity":"sha512-QrQc/Esc+hABv9NM/lEHT30wHCs/Ww1cMnIpoFK7v5OkPRXNREHh2pblVni4JBH+Q0MlhH/Dz1mphxBUwVc2Aw==","signatures":[{"sig":"MEYCIQDO6WnS/1pqe3yp3byWBBTUldvzfz7RbdcHP9Bmaa/9cAIhAJ0dnr+i6yB0VYF1RaRblEpw48nL/VpypgdCoiTGuf3w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1391927},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"eeed479492bc2984bb43c9078bd541a804b997d4","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.13.0","description":"Embeddable chat widget for SayTV — a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.17.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.2.0_1782819069638_0.30103563816705026","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@saytv/chat-sdk","version":"2.2.1","_id":"@saytv/chat-sdk@2.2.1","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"69fb92dd15c6f989489d140a853bc03589aa32b8","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.2.1.tgz","fileCount":15,"integrity":"sha512-1sJbQhxT4nhcVu388MXaW0JiiZSxuA1gDESoNRVNuVHbNlP1jhxtDkflqvDDtkyW3Cg06p+aBT2pXkhbbbER7A==","signatures":[{"sig":"MEUCIQD3g/Y5UxwF5cewV9EdjtDfIUpNeRtIcmKhT/U1dBEpbwIgf8GbmcgSv0Pb/jVDBCbdvYVGexGHGktNNRw+904Vqc0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1392069},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"895974f968704bdace5800a47e7c7ffbebbb3d07","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.13.0","description":"Embeddable chat widget for SayTV — a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.17.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.2.1_1782819715076_0.023946914869819924","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"@saytv/chat-sdk","version":"2.2.2","_id":"@saytv/chat-sdk@2.2.2","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"f956f128649054b17144e3dbfac4e276e056eb84","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.2.2.tgz","fileCount":15,"integrity":"sha512-/oUUnOXF7fV8zuoTOo+w9skxwKS6GlrGQJTEzX0rCxoVW6i/+TvY8i3UmZcMeeSMLPtJC1k8fmmL+AN1M57bHw==","signatures":[{"sig":"MEUCIQCw/wlXy4RZJBy8S/fk0trrnrPnSyhlXOV0uQIVJabyFQIgCRVmu+/kvSvHH+04sj2EkInXCDgHDNacUjonle5xBrw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1049592},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"03bb91ba2625ccae064ee1773cd2acd679269dd9","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.13.0","description":"Embeddable chat widget for SayTV — a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.17.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.2.2_1782820636829_0.3505072558137774","host":"s3://npm-registry-packages-npm-production"}},"2.2.3":{"name":"@saytv/chat-sdk","version":"2.2.3","_id":"@saytv/chat-sdk@2.2.3","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"207a4e9c5e01f5a4dc5a6442d76fc1a636f1be6b","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.2.3.tgz","fileCount":15,"integrity":"sha512-bkEn3ZwPRdbvFUwgfnoSFb+9BPWTYakydqRdhapwLJrNKc1EavxxNeYmgDNgljlF3ZcdiGxLfUG7U0IG+dj6pg==","signatures":[{"sig":"MEQCIDrFORLPj2qFbtBkRdo0ihmaVazHpsx/HQlPmKveZbGwAiAmeEZLwH/RNhS4O5UpYIx2nZ5AcnGYDXXG4BcwdiLvIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1058968},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"7fd2320102bd1ffa0eb660665f1f996438989444","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.2.3_1784532464245_0.7842237580435403","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@saytv/chat-sdk","version":"2.3.0","_id":"@saytv/chat-sdk@2.3.0","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"c5eb38ff97fa6848e1901246fcce6de04e04e647","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.3.0.tgz","fileCount":15,"integrity":"sha512-Kj5PSoobN40LM9EHO9tAIjW36FgAAHJB468R+rGe4Gchg+TsnyIyLAJLYePEZQSllAqsyPMHeEhk65NLj6zFrg==","signatures":[{"sig":"MEQCIH7Vlp/VvRFXqU57n9zCQXLuJvwfKuQawjmdZUs5Z2laAiBx4TSYcjeAo3HM3kikkr0llab2S9JcU+lSWFrx/1+rKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1075234},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"02f5c4da3a2994ab9acc6bf94eef15a45799679a","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.3.0_1785335463691_0.816203207252445","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@saytv/chat-sdk","version":"2.4.0","_id":"@saytv/chat-sdk@2.4.0","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"8a354e70a91cc573d35faa146670b4a5cc40dc8a","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.4.0.tgz","fileCount":15,"integrity":"sha512-91Sg9h9a+zWDSLsF//Ses/Be8dVBrirKxiGtVuLj80JJbE9T+8sSGGsz1127HT0ZetS9vMK+BVFO9ot/g5+X5w==","signatures":[{"sig":"MEUCIQDUO4TyGQXBcbEZOl0+/JnW8x58Budfh95JGkl508T0bAIgZT1beA/RwQjS1YXpsFKFT3kj4FFFsJSzSm7ONP4qNiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1078353},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"29754968f5cb55b04a0f598efeed5f652480ec5a","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.4.0_1785476159381_0.25662823602536133","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"@saytv/chat-sdk","version":"2.4.1","_id":"@saytv/chat-sdk@2.4.1","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"bd99198c754310afe8c3d0d7703f8c2875f62a3e","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.4.1.tgz","fileCount":15,"integrity":"sha512-jW5XWnIb6n7GlJqQ85UhMuLdreFm3NV67hZZMpEXloQTU5JPFv3gR2g5iI8WX80F1XvIRlJOjbmWV3qAMJy9ng==","signatures":[{"sig":"MEUCIAQWSZU9ttBuXQVrJxYZS1znHG9KNYLmzoXj3tYZgF3aAiEAid9f4yx3r37t/JjNYR+vW9Nj6I28m3h/fN552RATLvg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1079992},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"24ccc7a39f3a05a6701ed43a3be2b63845fa9b56","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.4.1_1785838924133_0.32370915599160566","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"@saytv/chat-sdk","version":"2.4.2","_id":"@saytv/chat-sdk@2.4.2","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"e42714fc7aa597e5a8b7008fddfc74fdd90c9baf","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.4.2.tgz","fileCount":15,"integrity":"sha512-txv8oNGOTvtnQFrFeX/WkFwc1q0t4QkBm1W4FHckpJo9JbMUDeMru0E+EdU4cgV00QJc7VOikXc2g957jOVrGw==","signatures":[{"sig":"MEYCIQCD8SH/wde0itk5UqqsEllKP90a7oyOGMTujkoYrFxb/QIhAJ/aeC3xnFl0UQ4TM/xQwSISQgLvw1RQ3QwZ+HsuDiLl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1079992},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"d005621a95dbc91c7cea999e2cb14149ac40530d","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.4.2_1785839844837_0.0395053404090544","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"@saytv/chat-sdk","version":"2.4.3","_id":"@saytv/chat-sdk@2.4.3","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"86c2f3882adc97678322b5c0623373d3ae2decf6","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.4.3.tgz","fileCount":15,"integrity":"sha512-eyK6DmGaNVYO5WOEjGWV3bvRKdz7aYyQYQDdkERzsICPvkrXcymd6+IEoli0aDvno5aE7yU4pRnx5hagO5xc0A==","signatures":[{"sig":"MEQCIAE1B9ucZsOFb4v2S/0g8M5zEFlJuJVI8ZNTHRy1TDVhAiBiObfjy345Y2M3hsbUSlBLs5eoRE1LnIs5jKnPFbX/Wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1080961},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"998a8c3b122663e08ac09baebfa84a91cf430072","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.4.3_1785843626698_0.9873910642932457","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"@saytv/chat-sdk","version":"2.4.4","_id":"@saytv/chat-sdk@2.4.4","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"8a5fe52cd36544d4410dfab62b0164423b63a0c6","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.4.4.tgz","fileCount":15,"integrity":"sha512-070hE8CpE+ZQjDt32MREKlr2+Gvm0bvlvqqK5W5Jjlwq+Svv6Dei1GGC73w77Cg9fHj/GytrGbRuWoqakHP1sA==","signatures":[{"sig":"MEUCIQDF403CnwQIGzplu4Q9TeHiB8w1oGlip8YrCCHlfDQORgIgFsDzEQkiw3lyLGEUmFZ3eXPk517i9BAiyvdTYQkOc5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1081174},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"958ecbd46eea976f3ba9b4428a265bdf03a38f38","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.4.4_1785848603712_0.5696393462037972","host":"s3://npm-registry-packages-npm-production"}},"2.4.5":{"name":"@saytv/chat-sdk","version":"2.4.5","_id":"@saytv/chat-sdk@2.4.5","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"db26f2477e4a6909ae3da668a5e021cabad1a5cd","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.4.5.tgz","fileCount":15,"integrity":"sha512-HQvZlA9OWO/aiR/DFx2YfTuTRORcUfaWKxmc0R/eJW10Xu2qjlWX1+tiXan2793bIsMAm93OTM7hTYk647q+aQ==","signatures":[{"sig":"MEQCIAmrGRWD4OacQiKIJYU9M9orvu5v3oOFfJvNJGAjo519AiAc6EMs7dGe0WGi+d4SbMI9F3dKKdbcUYLxN7oHRJZgKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1085015},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"598202e6296567d4e0e75051b1d70b0edf5d503a","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.4.5_1785899372319_0.025484382159479457","host":"s3://npm-registry-packages-npm-production"}},"2.4.6":{"name":"@saytv/chat-sdk","version":"2.4.6","_id":"@saytv/chat-sdk@2.4.6","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"dffbd66b2cfcf50891a7d237ace757f2b932676d","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.4.6.tgz","fileCount":15,"integrity":"sha512-NPb7fLMnAVpszlW4G4ue072bfIMEsTrEUMZ1JQ/0/BIuZxHTWaVQOknYyMw9u6fujiO/w3M/kBCPTkoVzFo8Yg==","signatures":[{"sig":"MEUCIEC8ytW99VnlOrQ0+K56mGqcGwMJZLIgHN1Ir3M0WNvbAiEAgR0dwvTA3CF2JecCFq2C4DauRumuCDbOQX05Z/NEtN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1090809},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"026ca7ec9f785abfb3861308b077a0e7745b63f2","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.4.6_1786084569723_0.606173033801821","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@saytv/chat-sdk","version":"2.5.0","_id":"@saytv/chat-sdk@2.5.0","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"d3ecbfd4fa488e36a4fe4d2c33a567b81ca55b44","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.5.0.tgz","fileCount":15,"integrity":"sha512-IARfJrenbB3OAI4nMu9/4W5XSGZrGx6C/V3ZZwtSWEIiPsN0Q2ofnX/xWyBMmxb8hN+CrijaoYivovb8xOeECg==","signatures":[{"sig":"MEUCICbXOWVb/FssTX8vhwkVufkkkICjdAt4+2rzHfSP3k4eAiEAsvI+eHqBEZGQyoTZd/i+FgyEyV30nktLoJvXHKajN6U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1092276},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"d09af3771a86c97c222fc82b1aa32a9a48836c43","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.5.0_1786449681350_0.12884003443532","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@saytv/chat-sdk","version":"2.5.1","_id":"@saytv/chat-sdk@2.5.1","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"b91d6ee84b72a172640907d87a1bf0bc6431e472","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.5.1.tgz","fileCount":15,"integrity":"sha512-sh3lXsemjY1gu2LZxti04GnKqMuL6teqKt5s05k928EZiqIFhc5Fm3MSfFINAjoBeHd8mxmIg6vmpoJrZr/rNA==","signatures":[{"sig":"MEQCIEWIbKdF5stUj9HmuK4F1nI1ue+Jeq1w8wTOFx/qzds2AiArqG9GnsEznnxRjiG9avS4d6Uu1NkZfMYwHyIkMwGAnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1093935},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"d2b360117a7b49b7c0cdd00078c3bc8629f77bd3","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.5.1_1786542354966_0.7504311862312865","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"@saytv/chat-sdk","version":"2.5.2","_id":"@saytv/chat-sdk@2.5.2","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"c98a9fe29af331f137aa1bf1271112750df9168a","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.5.2.tgz","fileCount":15,"integrity":"sha512-4gY5kROX2lHCgiz/ZOs9uzgHIXecTsHUpxLVx5MlFTviJkvxvQJPKNfjpWDwAmRK/ymx03B7XlJhbDmxjXOuKA==","signatures":[{"sig":"MEUCIFubKOVpK8TEiX5ai6UEigX6hF8406ea+1HDehbWANZPAiEAqBLTpSxfTTvvSBf7mJnV5rCJjeilPnvzj07Q0/OqNVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1098391},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"67439176324c3fb43670c408bb4bd57dc55afbac","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.5.2_1786591681258_0.32128662151194765","host":"s3://npm-registry-packages-npm-production"}},"2.5.3":{"name":"@saytv/chat-sdk","version":"2.5.3","_id":"@saytv/chat-sdk@2.5.3","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"349430c550810f90add02024112a929910dbbaa3","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.5.3.tgz","fileCount":15,"integrity":"sha512-b1d5+28bMLxP7VC6BL37UPWUMnSmINtx2sfw2U31GZ9dGrTRArP6KmsHaKoj3x9KqU7ShwCppoNn73JwfMOqAA==","signatures":[{"sig":"MEYCIQChUJkIiWSJU37rhH85bfibC6XyobS+ELj7vkwHSQNMsgIhAM2GWvo8w8rnDZ/KASWeUUj2BVwzSZR6Y1Ak4NN+nsT0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1100308},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"39d2de8666dd337694341201557a8991ec060323","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.16.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.18.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.5.3_1786618946210_0.6165884783314977","host":"s3://npm-registry-packages-npm-production"}},"2.5.4":{"name":"@saytv/chat-sdk","version":"2.5.4","_id":"@saytv/chat-sdk@2.5.4","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"0357dbf55e5463fa087a442c0c5e83b12ca64b05","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.5.4.tgz","fileCount":15,"integrity":"sha512-VQEf8CPneMRHS5WhY5bqmJ75qz5RLiYk780OGRHk1fwJ9GtGIPtk5/Tnm0ybSVYZjqIPS6Pr2Me8V5G9+X4htw==","signatures":[{"sig":"MEUCIE4rh0RUVnix/wea6qCrl/+r0t3tQfOsBK5EzAppaYKkAiEAp9SX75xZDu1BlI9X6rjxr6kPdPJduP3mFAFCFed2z4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1100941},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"9b27c1d139cc38aa8fc301111d2bbf967f585055","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.17.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.19.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.5.4_1786948168228_0.8366683208259136","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@saytv/chat-sdk","version":"2.6.0","_id":"@saytv/chat-sdk@2.6.0","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"657b4316813e5d3eff67e8d37f1df9d32e0a50fc","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.6.0.tgz","fileCount":15,"integrity":"sha512-tKom2dQARxTIFI5Odh+Re+rlxixG49mqpu2W71ranseGlHKK4tdTVee8LTb6Hgzpe8829TkVLRwrVr2Slf6MNA==","signatures":[{"sig":"MEQCIHl8wIxyqhbuAT+3P4MYlSLbgi5o3d3emV+gIMdF7Ft+AiAG8SMnIVXXzD1V10SdHq58KGh4cJxH3CIOWqHjPGT6LA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1108026},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"6679f357e40a79bccaf9e72692a93389d69aebc2","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.17.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.19.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.6.0_1786977295592_0.11639545156346931","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@saytv/chat-sdk","version":"2.7.0","_id":"@saytv/chat-sdk@2.7.0","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"dist":{"shasum":"2ff9b15ebca22da21d709c56c425875033c9d816","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.7.0.tgz","fileCount":15,"integrity":"sha512-EHNT8U2Ze19ZSARNwl0ihfpouV+nn9v1sxxF3legNVQtLKkJHOBmYMs0vdiOAIaupGyYvPcj39VeiZEgdmViZw==","signatures":[{"sig":"MEUCIQC1wVxys4BAw9rXF6DzZ4agffnJUkuqoC+pDweK6oEJkgIgFRLQpyIeO5WqDvk20Exc5oepooN0HZc9ZxYzAHLUw3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1113359},"main":"./dist/index.mjs","pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./mobile":"./dist/mobile.html","./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"}},"gitHead":"d844ae16ef5506aebd385688c7f9368167cd659e","scripts":{"dev":"vite","lint":"biome check src/ tests/","test":"vitest run","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","format":"biome format --write src/ tests/","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs","docs:dev":"pnpm --filter @saytv/docs dev","lint:all":"turbo run lint","lint:fix":"biome check --write src/ tests/","test:all":"turbo run test","build:all":"turbo run build","typecheck":"tsc --noEmit","build:demo":"turbo run build --filter=@saytv/playground","docs:build":"pnpm --filter @saytv/docs build","playground":"pnpm build && pnpm --filter @saytv/playground dev","test:watch":"vitest","gen:locales":"node scripts/gen-locale-template.mjs","docs:preview":"pnpm --filter @saytv/docs preview","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","prepublishOnly":"pnpm build","sync:changelog":"node scripts/sync-changelog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"_npmVersion":"11.17.0","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","directories":{},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"_nodeVersion":"24.19.0","dependencies":{"dayjs":"^1.11.13","preact":"^10.25.4","pusher-js":"^8.4.0","idb-keyval":"^6.2.1","@preact/signals":"^1.3.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.3","devDependencies":{"vite":"^6.1.0","jsdom":"^26.0.0","turbo":"^2.4.0","terser":"^5.37.0","vitest":"^3.0.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","vite-plugin-dts":"^4.5.0","@preact/preset-vite":"^2.9.4","@testing-library/preact":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/chat-sdk_2.7.0_1787209585166_0.33809663757660013","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"@saytv/chat-sdk","version":"2.7.1","type":"module","packageManager":"pnpm@10.29.3","main":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.mjs"},"./loader":{"import":"./dist/loader.mjs"},"./bubble":{"import":"./dist/bubble.mjs"},"./mobile":"./dist/mobile.html"},"sideEffects":["./dist/widget.mjs","./dist/loader.mjs","./dist/bubble.mjs","./src/widget.ts","./src/loader.ts","./src/bubble.ts"],"scripts":{"dev":"vite","build":"tsc --noEmit && vite build && node scripts/minify-dist.mjs && node scripts/build-iife.mjs && node scripts/check-size.mjs","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","lint":"biome check src/ tests/","lint:fix":"biome check --write src/ tests/","format":"biome format --write src/ tests/","gen:locales":"node scripts/gen-locale-template.mjs","sync:changelog":"node scripts/sync-changelog.mjs","check:locales":"node scripts/gen-locale-template.mjs && git diff --exit-code -- examples/locales docs/public/locales packages/playground/src/locales docs/customization/_localization-keys-tables.md","playground":"pnpm build && pnpm --filter @saytv/playground dev","build:demo":"turbo run build --filter=@saytv/playground","prepublishOnly":"pnpm build","build:all":"turbo run build","test:all":"turbo run test","lint:all":"turbo run lint","docs:dev":"pnpm --filter @saytv/docs dev","docs:build":"pnpm --filter @saytv/docs build","docs:preview":"pnpm --filter @saytv/docs preview","release":"node scripts/release.mjs","cdn:sync":"node scripts/cdn-sync.mjs"},"dependencies":{"preact":"^10.25.4","@preact/signals":"^1.3.1","dayjs":"^1.11.13","idb-keyval":"^6.2.1","pusher-js":"^8.4.0"},"devDependencies":{"typescript":"^5.7.3","vite":"^6.1.0","@preact/preset-vite":"^2.9.4","vitest":"^3.0.5","@testing-library/preact":"^3.2.4","jsdom":"^26.0.0","@biomejs/biome":"^1.9.4","terser":"^5.37.0","turbo":"^2.4.0","vite-plugin-dts":"^4.5.0"},"pnpm":{"onlyBuiltDependencies":["@biomejs/biome","esbuild"]},"gitHead":"d64b1424a3d3bdc97e63e28a7bf71e988cd6ead5","_id":"@saytv/chat-sdk@2.7.1","description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-z23tuG3I69fZ71fuXKWA0NSgzWVdd6FT8Zpm0UXXYiJKq8p5vqIcaYztew9+FX32hzy08wb6FbUcnsQVcc18vA==","shasum":"feff8faa4e02577627874545093522c01282c6a1","tarball":"https://registry.npmjs.org/@saytv/chat-sdk/-/chat-sdk-2.7.1.tgz","fileCount":15,"unpackedSize":1114325,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID3R9SIZthsFRTKvhMGGba828aXwT0/Pjmiz3k5JnEOeAiEA+v40PCdEsKSoiCiNF7/iNtfZucOW+6UdmdcXYWSpUmo="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99baa728-c278-44e7-96a7-1234fd3ec951"}},"directories":{},"maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/chat-sdk_2.7.1_1787568289977_0.259210154727296"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-10T16:55:53.980Z","modified":"2026-08-24T10:44:50.301Z","2.0.0":"2026-03-10T16:55:54.324Z","2.0.2":"2026-03-10T17:58:49.163Z","2.0.3":"2026-03-10T18:04:30.171Z","2.0.4":"2026-03-10T18:06:58.007Z","2.0.5":"2026-03-10T18:09:26.174Z","2.0.6":"2026-03-10T18:20:41.854Z","2.0.7":"2026-03-10T18:23:57.475Z","2.0.8":"2026-03-10T18:31:05.279Z","2.1.0":"2026-03-10T19:09:29.741Z","2.1.1":"2026-03-11T07:54:45.582Z","2.1.2":"2026-03-12T20:19:47.790Z","2.1.4":"2026-03-16T14:12:27.157Z","2.1.5":"2026-03-25T07:59:18.974Z","2.1.6":"2026-04-08T09:39:32.428Z","2.2.0":"2026-06-30T11:31:09.852Z","2.2.1":"2026-06-30T11:41:55.229Z","2.2.2":"2026-06-30T11:57:17.019Z","2.2.3":"2026-07-20T07:27:44.437Z","2.3.0":"2026-07-29T14:31:03.875Z","2.4.0":"2026-07-31T05:35:59.578Z","2.4.1":"2026-08-04T10:22:04.276Z","2.4.2":"2026-08-04T10:37:25.039Z","2.4.3":"2026-08-04T11:40:26.889Z","2.4.4":"2026-08-04T13:03:23.859Z","2.4.5":"2026-08-05T03:09:32.463Z","2.4.6":"2026-08-07T06:36:09.895Z","2.5.0":"2026-08-11T12:01:21.559Z","2.5.1":"2026-08-12T13:45:55.108Z","2.5.2":"2026-08-13T03:28:01.444Z","2.5.3":"2026-08-13T11:02:26.376Z","2.5.4":"2026-08-17T06:29:28.379Z","2.6.0":"2026-08-17T14:34:55.740Z","2.7.0":"2026-08-20T07:06:25.339Z","2.7.1":"2026-08-24T10:44:50.126Z"},"description":"Embeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.","maintainers":[{"name":"aaalllaaa","email":"paulatidey@saytv.net"},{"name":"swapsq1","email":"swapnil@square1.io"}],"readme":"# @saytv/chat-sdk\r\n\r\nEmbeddable chat widget for SayTV, a fully featured, themeable web component with framework wrappers for React and Vue.\r\n\r\n## Features\r\n\r\n- **Web Component**: Drop a `<saytv-chat>` tag into any page, framework-agnostic\r\n- **Shadow DOM**: Fully encapsulated styles, zero CSS conflicts\r\n- **Real-time Chat**: Pusher-powered WebSocket messaging\r\n- **Authentication**: Built-in login, registration, and token management\r\n- **Theming**: Light/dark modes + 70+ CSS custom properties for full control\r\n- **Localization**: Any language via BCP-47 locales, automatic RTL, and runtime switching\r\n- **Framework Wrappers**: First-class React and Vue packages\r\n- **Mobile Bridge**: Native integration for React Native, Flutter, iOS, and Android\r\n- **Async Loader**: Tiny (< 1 kB) loader with command queue for deferred loading\r\n- **IIFE Bundle**: Script-tag friendly build for legacy environments\r\n\r\n## Quick Start\r\n\r\n```bash\r\nnpm install @saytv/chat-sdk\r\n```\r\n\r\n```html\r\n<saytv-chat\r\n  app-id=\"your-app-id\"\r\n  theme=\"light\"\r\n></saytv-chat>\r\n\r\n<script type=\"module\">\r\n  import '@saytv/chat-sdk/widget';\r\n</script>\r\n```\r\n\r\n## Installation\r\n\r\n### Package Manager\r\n\r\n```bash\r\n# npm\r\nnpm install @saytv/chat-sdk\r\n\r\n# pnpm\r\npnpm add @saytv/chat-sdk\r\n\r\n# yarn\r\nyarn add @saytv/chat-sdk\r\n```\r\n\r\n### CDN (IIFE)\r\n\r\n```html\r\n<script src=\"https://sdk.saytv.net/@saytv/chat-sdk@latest/dist/sdk.iife.js\"></script>\r\n```\r\n\r\nThe IIFE bundle exposes the SDK on `window.SayTV`.\r\n\r\n### Async Loader\r\n\r\nFor pages where you want to defer loading the full widget:\r\n\r\n```html\r\n<script type=\"module\" src=\"https://sdk.saytv.net/@saytv/chat-sdk@latest/dist/loader.mjs\"></script>\r\n<script>\r\n  SayTVChat('init', {\r\n    appId: 'your-app-id',\r\n    authToken: 'user-token-here',\r\n    theme: 'dark',\r\n    height: 700,\r\n    width: '100%',\r\n  });\r\n</script>\r\n```\r\n\r\nThe loader queues commands until the full widget is loaded, then flushes them automatically. It auto-creates a `<saytv-chat>` element if one is not already on the page.\r\n\r\n## Usage\r\n\r\n### Web Component\r\n\r\n```html\r\n<saytv-chat\r\n  app-id=\"your-app-id\"\r\n  auth-token=\"eyJhbGci...\"\r\n  built-in-auth=\"true\"\r\n  height=\"850\"\r\n  width=\"450px\"\r\n  theme=\"light\"\r\n></saytv-chat>\r\n```\r\n\r\nAll attributes are reactive, update them at any time via `setAttribute()`:\r\n\r\n```js\r\nconst chat = document.querySelector('saytv-chat');\r\nchat.setAttribute('theme', 'dark');\r\nchat.setAttribute('auth-token', newToken);\r\n```\r\n\r\n### Programmatic API\r\n\r\nThe main entry point exports the API client and all TypeScript types:\r\n\r\n```ts\r\nimport { apiRequest, ApiError } from '@saytv/chat-sdk';\r\nimport type { User, Comment, Episode, Room, PaginatedResponse } from '@saytv/chat-sdk';\r\n```\r\n\r\n### Package Exports\r\n\r\n| Import Path | Description |\r\n|---|---|\r\n| `@saytv/chat-sdk` | API client, error class, and all types |\r\n| `@saytv/chat-sdk/widget` | Registers the `<saytv-chat>` custom element |\r\n| `@saytv/chat-sdk/loader` | Async loader with command queue |\r\n| `@saytv/chat-sdk/mobile` | Mobile webview HTML shell |\r\n\r\n## Framework Wrappers\r\n\r\n### React\r\n\r\n```bash\r\nnpm install @saytv/chat-react\r\n```\r\n\r\n```tsx\r\nimport { SayTVChat, useSayTVChat } from '@saytv/chat-react';\r\n\r\nfunction App() {\r\n  const { chatRef, setToken, setTheme } = useSayTVChat();\r\n\r\n  return (\r\n    <SayTVChat\r\n      ref={chatRef}\r\n      appId=\"your-app-id\"\r\n      theme=\"light\"\r\n      height={700}\r\n      width=\"100%\"\r\n      onMessageSent={(e) => console.log('Sent:', e.detail)}\r\n      onError={(e) => console.error('Error:', e.detail)}\r\n    />\r\n  );\r\n}\r\n```\r\n\r\n**Props:**\r\n\r\n| Prop | Type | Required | Description |\r\n|---|---|---|---|\r\n| `appId` | `string` | No | App identifier (resolves API URL) |\r\n| `env` | `'production' \\| 'staging'` | No | Environment (default: `'production'`) |\r\n| `apiUrl` | `string` | No | API base URL (overrides appId/env) |\r\n| `authToken` | `string` | No | User access token |\r\n| `builtInAuth` | `boolean` | No | Enable built-in login UI (default: `true`) |\r\n| `height` | `number` | No | Height in pixels (default: `850`) |\r\n| `width` | `string` | No | CSS width (default: `'450px'`) |\r\n| `theme` | `'light' \\| 'dark'` | No | Color theme (default: `'light'`) |\r\n| `className` | `string` | No | CSS class on wrapper div |\r\n| `style` | `CSSProperties` | No | Inline styles on wrapper div |\r\n| `onMessageSent` | `(e: CustomEvent) => void` | No | Message sent callback |\r\n| `onUserLogin` | `(e: CustomEvent) => void` | No | Login callback |\r\n| `onUserLogout` | `(e: CustomEvent) => void` | No | Logout callback |\r\n| `onError` | `(e: CustomEvent) => void` | No | Error callback |\r\n\r\n**Hook:**\r\n\r\n```ts\r\nconst { chatRef, getElement, setToken, setTheme } = useSayTVChat();\r\n```\r\n\r\n- `chatRef`: Pass to `<SayTVChat ref={chatRef}>`\r\n- `getElement()`: Returns the underlying `<saytv-chat>` HTMLElement\r\n- `setToken(token)`: Update the access token\r\n- `setTheme(theme)`: Switch between `'light'` and `'dark'`\r\n\r\n### Vue\r\n\r\n```bash\r\nnpm install @saytv/chat-vue\r\n```\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { SayTVChat, useSayTVChat } from '@saytv/chat-vue';\r\n\r\nconst { chatRef, setToken, setTheme } = useSayTVChat();\r\n</script>\r\n\r\n<template>\r\n  <SayTVChat\r\n    ref=\"chatRef\"\r\n    app-id=\"your-app-id\"\r\n    theme=\"light\"\r\n    :height=\"700\"\r\n    width=\"100%\"\r\n    @message-sent=\"(e) => console.log('Sent:', e.detail)\"\r\n    @error=\"(e) => console.error('Error:', e.detail)\"\r\n  />\r\n</template>\r\n```\r\n\r\n**Props:** Same as React (except `className`/`style`). Uses kebab-case in templates.\r\n\r\n**Composable:**\r\n\r\n```ts\r\nconst { chatRef, getElement, setToken, setTheme } = useSayTVChat();\r\n```\r\n\r\n## Mobile Integration\r\n\r\nThe SDK includes a native bridge for embedding the chat widget inside mobile app webviews.\r\n\r\n### Supported Platforms\r\n\r\n| Platform | Detection |\r\n|---|---|\r\n| React Native | `window.ReactNativeWebView` |\r\n| Flutter | `window.flutter_inappwebview` |\r\n| iOS (WKWebView) | `window.webkit.messageHandlers.saytvBridge` |\r\n| Android (WebView) | `window.SayTVAndroidBridge` |\r\n\r\n### Mobile HTML Shell\r\n\r\nUse the pre-built mobile HTML for webview integration:\r\n\r\n```ts\r\nimport mobileHtml from '@saytv/chat-sdk/mobile';\r\n```\r\n\r\nThe shell listens for an `INIT_CONFIG` postMessage to configure the widget with your API URL and token.\r\n\r\n## Theming\r\n\r\nThe widget uses CSS custom properties scoped inside its Shadow DOM. Override them via inline styles on the `<saytv-chat>` element:\r\n\r\n```html\r\n<saytv-chat\r\n  app-id=\"your-app-id\"\r\n  theme=\"light\"\r\n  style=\"--stv-color-primary: #4f46e5; --stv-color-accent: #10b981;\"\r\n></saytv-chat>\r\n```\r\n\r\n### Dark Mode\r\n\r\nSet `theme=\"dark\"` to activate the built-in dark theme. The dark theme overrides background, text, and border colors automatically.\r\n\r\n### CSS Custom Properties Reference\r\n\r\n#### Colors\r\n\r\n| Property | Default (Light) | Description |\r\n|---|---|---|\r\n| `--stv-color-primary` | `#7e171c` | Primary brand color |\r\n| `--stv-color-primary-dark` | `#5d1014` | Darker primary variant |\r\n| `--stv-color-primary-light` | `#ad0000` | Lighter primary variant |\r\n| `--stv-color-accent` | `#0143d9` | Accent / link color |\r\n| `--stv-color-danger` | `#dc3545` | Error / danger color |\r\n| `--stv-color-success` | `#28a745` | Success color |\r\n| `--stv-color-warning` | `#ffc107` | Warning color |\r\n| `--stv-color-info` | `#87ceeb` | Info color |\r\n\r\n#### Backgrounds\r\n\r\n| Property | Default | Description |\r\n|---|---|---|\r\n| `--stv-bg-primary` | `#ffffff` | Main background |\r\n| `--stv-bg-secondary` | `#eae7e1` | Secondary background |\r\n| `--stv-bg-dark` | `#212529` | Dark surfaces |\r\n| `--stv-bg-light` | `#f5f5f5` | Light surfaces |\r\n| `--stv-bg-hover` | `#f0f0f0` | Hover state |\r\n| `--stv-bg-input` | `#ffffff` | Input fields |\r\n| `--stv-bg-chat-bubble` | `#28292d` | Chat message bubbles |\r\n| `--stv-bg-overlay` | `rgba(0,0,0,0.75)` | Modal overlays |\r\n\r\n#### Text\r\n\r\n| Property | Default | Description |\r\n|---|---|---|\r\n| `--stv-text-primary` | `#1a1a1a` | Primary text |\r\n| `--stv-text-secondary` | `#4a4a4a` | Secondary text |\r\n| `--stv-text-muted` | `#6f6f6f` | Muted / hint text |\r\n| `--stv-text-light` | `#ffffff` | Text on dark backgrounds |\r\n| `--stv-text-link` | `#0143d9` | Link text |\r\n| `--stv-text-placeholder` | `#999999` | Input placeholders |\r\n\r\n#### Typography\r\n\r\n| Property | Default | Description |\r\n|---|---|---|\r\n| `--stv-font-primary` | `'Lato', system-ui, sans-serif` | Body font |\r\n| `--stv-font-heading` | `'Exo', 'Lato', sans-serif` | Heading font |\r\n| `--stv-font-size-xs` | `0.6875rem` | Extra small text |\r\n| `--stv-font-size-sm` | `0.8125rem` | Small text |\r\n| `--stv-font-size-base` | `0.875rem` | Base text size |\r\n| `--stv-font-size-md` | `1rem` | Medium text |\r\n| `--stv-font-size-lg` | `1.25rem` | Large text |\r\n\r\n#### Spacing\r\n\r\n| Property | Default |\r\n|---|---|\r\n| `--stv-spacing-xs` | `0.25rem` |\r\n| `--stv-spacing-sm` | `0.5rem` |\r\n| `--stv-spacing-md` | `1rem` |\r\n| `--stv-spacing-lg` | `1.5rem` |\r\n| `--stv-spacing-xl` | `2rem` |\r\n| `--stv-spacing-2xl` | `3rem` |\r\n\r\n#### Borders\r\n\r\n| Property | Default | Description |\r\n|---|---|---|\r\n| `--stv-border-color` | `#dddddd` | Default border |\r\n| `--stv-border-focus` | `#0143d9` | Focus ring color |\r\n| `--stv-border-error` | `#dc3545` | Validation error border |\r\n| `--stv-border-radius-sm` | `0.5rem` | Small radius |\r\n| `--stv-border-radius-md` | `0.75rem` | Medium radius |\r\n| `--stv-border-radius-lg` | `1rem` | Large radius |\r\n\r\n#### Shadows\r\n\r\n| Property | Default |\r\n|---|---|\r\n| `--stv-shadow-sm` | `0 1px 2px rgba(0,0,0,0.06)` |\r\n| `--stv-shadow-md` | `0 2px 8px rgba(0,0,0,0.1)` |\r\n| `--stv-shadow-lg` | `0 4px 16px rgba(0,0,0,0.12)` |\r\n| `--stv-shadow-xl` | `0 8px 32px rgba(0,0,0,0.16)` |\r\n\r\n#### Transitions\r\n\r\n| Property | Default |\r\n|---|---|\r\n| `--stv-transition-fast` | `150ms ease` |\r\n| `--stv-transition-normal` | `250ms ease` |\r\n| `--stv-transition-slow` | `400ms ease` |\r\n\r\n## Configuration Reference\r\n\r\n| Attribute | Type | Default | Description |\r\n|---|---|---|---|\r\n| `app-id` | `string` | `''` | App identifier (resolves API URL) |\r\n| `env` | `'production' \\| 'staging'` | `'production'` | Environment |\r\n| `apiurl` | `string` |, | API base URL (overrides app-id/env) |\r\n| `auth-token` | `string` |, | User access token |\r\n| `built-in-auth` | `'true' \\| 'false'` | `'true'` | Show login/register UI |\r\n| `height` | `number` | `850` | Widget height in pixels |\r\n| `width` | `string` | `'450px'` | Widget width (any CSS unit) |\r\n| `theme` | `'light' \\| 'dark'` | `'light'` | Color theme |\r\n| `locale` | `string` | `'en'` | BCP-47 UI language (RTL auto). Supply catalogs via `translations-url` or the `translations` property |\r\n| `translations-url` | `string` |, | URL of a hosted flat JSON catalog to fetch and apply for the active `locale` |\r\n| `fanzone` | `'true' \\| 'false'` | `'false'` | Enable fanzone features |\r\n| `mode` | `'page-chat'` |, | Widget mode (page-chat embeds chat on current page) |\r\n| `page-id` | `string` | Current URL | Page identifier (used with `mode=\"page-chat\"`) |\r\n| `page-name` | `string` | Document title | Page display name (used with `mode=\"page-chat\"`) |\r\n\r\n## License\r\n\r\nProprietary. All rights reserved.\r\n","readmeFilename":"README.md"}