{"_id":"talking-head-studio","_rev":"34-4bc056feaff7602a19090e8349528500","name":"talking-head-studio","dist-tags":{"latest":"0.5.0"},"versions":{"0.2.0":{"name":"talking-head-studio","version":"0.2.0","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.2.0","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/nichochar/avatar-studio","bugs":{"url":"https://github.com/nichochar/avatar-studio/issues"},"dist":{"shasum":"fe0c76f2afa2e5cad30cb6901ac06a262ce4e1d9","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.2.0.tgz","fileCount":112,"integrity":"sha512-/Fux/GZ8i5Bs4/LnyvQtjUoTfZAbhCDmEtMobwlvY3bZXoucB/eMjNMbAJy18oFSp2r4up+SJKEMYJN67azB+g==","signatures":[{"sig":"MEQCIEgLhCJgDCLksSRtxjUtYDvSv8r4wuYZDtVb+VIOCpMrAiAwpNskk1eO/oHtWAc2Ro9ZFpGJhgyPyTU0UI5CvQAgog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200439},"main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"5475a438325d4b89956e2568c3af7c8501f24381","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc --project tsconfig.json","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/nichochar/avatar-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"react":">=18","three":">=0.170","react-native":">=0.73","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"three":{"optional":true},"react-native":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.2.0_1773328925692_0.22673304364927027","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"talking-head-studio","version":"0.2.1","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.2.1","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"e2a872734007db2541ac853be8dd9be7325bd52a","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.2.1.tgz","fileCount":112,"integrity":"sha512-fiiI9TLdrG2CIAf4pVM7ZKiMPsaDCYb3aDlyz9kdfMR65cb2ts9v3C7I4gWJ7WvFN6vIZv+dAzw73O37/Wfz0A==","signatures":[{"sig":"MEUCIQCxSdjlP+cqktPlKtKj+opoHLfDPkVx6ldYimXJQcnLfwIgcIpv9RFUynNpHBap/WlzHFzpCHgd2sgibucg4oNXgjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200451},"main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"5475a438325d4b89956e2568c3af7c8501f24381","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc --project tsconfig.json","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"react":">=18","three":">=0.170","react-native":">=0.73","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"three":{"optional":true},"react-native":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.2.1_1773329024977_0.31103794274426844","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"talking-head-studio","version":"0.2.2","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.2.2","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"2ee29b2ecffff69d29cef77fcc56edb0250f9e6e","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.2.2.tgz","fileCount":112,"integrity":"sha512-tHH4mBf7/UD/ODbKnmJwkVFqT9iXhowdV+gNJnxE2KhgE0cxP+VV1qniWvSLlRpQL7Bb/Pn3ZotLwDrC3N2Mbg==","signatures":[{"sig":"MEYCIQCVqBe3ylSWH6oGeuBeGTJKZZ2P3iEbtvGqKFM8vFBH/wIhAJA9vPEmzu2xQEliXNDf2BazR0ul7A0ZzxO2VumoIkHg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200501},"main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"1e0f478975bd392a4382f8d887b09cda4e5d4ea7","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc --project tsconfig.json","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"react":">=18","three":">=0.170","react-native":">=0.73","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"three":{"optional":true},"react-native":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.2.2_1773329314490_0.3671832249195941","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"talking-head-studio","version":"0.2.3","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.2.3","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"e32560adf8fec5e884fc4fc76aaa0458667489b3","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.2.3.tgz","fileCount":112,"integrity":"sha512-4vFN3MiXDxko6qIcrIHn7g2ovf51j6hPfhAth2arEIZaF8Z4/3+6XLre4xBcXtwUp3s6OpFXhPBBVEEc4usYuQ==","signatures":[{"sig":"MEQCIBRo1Zn/F0gggudMRSYkBGCBeZaOlplk1pbrqF3AQ7EIAiAM9QFF+t5c/LjXbC3VPr125bgl8pRRqxkJn/7yhO5wFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202479},"main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"57e7868dfdcb3187e2b9705a1f3c37c384b44dbe","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc --project tsconfig.json","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"react":">=18","three":">=0.170","react-native":">=0.73","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"three":{"optional":true},"react-native":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.2.3_1773673271678_0.0732553305652126","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"talking-head-studio","version":"0.2.4","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.2.4","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"f064aaf07194c8a9d97ea00a72edb063bd9e7d1d","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.2.4.tgz","fileCount":112,"integrity":"sha512-T190665kxUlPBVG0n5XNO1R8EJx2xNSfgJmK7+ZQFggVJAZHBRlxBgNpCg7wR+Lyaw/ipDx557DaKg1QPOEHcQ==","signatures":[{"sig":"MEUCIQDIkD/5BPnOYxmQOfWTPuDBdOqnhpL5delCU+yIAfQSXwIgL7Qq6+MT2rw6Byc+1rizAmNBpliUxxA/wCR3Tol/Vfc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202539},"main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"ea26ad7ba8d38342bb5cc6337dcf0e2a0031ece4","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc --project tsconfig.json","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"react":">=18","three":">=0.170","react-native":">=0.73","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"three":{"optional":true},"react-native":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.2.4_1773857004702_0.4660199395544953","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"talking-head-studio","version":"0.2.5","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.2.5","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"996ab88610393609a6d504e6672c4dedc7fa7966","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.2.5.tgz","fileCount":112,"integrity":"sha512-qlQl6G6J1AaOhhCVTQWBFoOSV942KbRYcZvgLSwL7LELS5FcNk5BDnesh3GrX5sQTWx4qIsguziSZo/U4RvOPA==","signatures":[{"sig":"MEUCIBD5jBJoGnBzLVqi97SmyUgL7ZZui6rveBrrnYg8xKfMAiEAhw4Lw+tZnDvCr5ACnGuG32vAua/I8pZ69yZ8KWISoyg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217845},"main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"3ead4e9132b05557eb8343a2889cf3986f706855","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc --project tsconfig.json","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"react":">=18","three":">=0.170","react-native":">=0.73","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"three":{"optional":true},"react-native":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.2.5_1773861772187_0.5018026377438494","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"talking-head-studio","version":"0.2.6","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.2.6","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"3176fabe2c7b96723849f2e5a1e027dab50d9d03","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.2.6.tgz","fileCount":112,"integrity":"sha512-7Czgsa9nc145rt1LxMLnZ5VVX/xR26GReeQslxzjyv8oXY9paWOam/0jTg6Fc21dSg7z/L7MyZhzGoLhH4MWFg==","signatures":[{"sig":"MEYCIQCILsnIacS6QMV17XMfZR5VF4fajRe8U/j9/yYr/u0mFgIhAM7ErUSGOBgEu1mo6NWuIJ4IJfDxCa1rtfPhb/2IqrAz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217845},"main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"03817ac0cea35417306e3847c81e15934e99ac00","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc --project tsconfig.json","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"react":">=18","three":">=0.170","react-native":">=0.73","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"three":{"optional":true},"react-native":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.2.6_1773877693210_0.9921615965041128","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"talking-head-studio","version":"0.2.7","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.2.7","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"4513632ef909b72236f1dd403d5132224b2bf374","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.2.7.tgz","fileCount":53,"integrity":"sha512-WSsUEVS1AWB5g0pcxnhSUFcgs5vnT+VmvpUKjmcio5fzOw7H3gnGSkcKtCO93ogvs0bOVo/o5T95pVN652vclg==","signatures":[{"sig":"MEUCIEXZztva7s9RNkssChvfzyn1mINwkqXX7HnDVRefIkECAiEA1xxrtAqQeeTfiXmEg+fIqhDD2EC+aEDGO5lZqIr+ELY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122446},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"8ebd2c1764ef582fde61ecac9d69eeea1d31792c","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"react":">=18","three":">=0.170","react-native":">=0.73","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"three":{"optional":true},"react-native":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.2.7_1773878310624_0.9308494910245233","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"talking-head-studio","version":"0.2.8","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.2.8","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"1921c85e68cd5da246147d6a8fd69553adee89f9","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.2.8.tgz","fileCount":53,"integrity":"sha512-gifaL+FDhWaPdaqJtrsUh7bnNidigGPy2BXw1FGTO4QLvniQjYW9wkZuO9tTJDrAvyLwxX5rWuad/ssrs6scAg==","signatures":[{"sig":"MEYCIQD7WPkZA3jz2mKeO9oV6DfPRaK0V0vb0X0k3t8C8Fr0yQIhAKWzBEKyV/qYh+P1pQB9sBeHi+QhCNm2ACPD/Y0GiXY7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125622},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"baf88772d9f90f42faac3a7e1d2734d60d47ecec","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"react":">=18","three":">=0.170","react-native":">=0.73","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"three":{"optional":true},"react-native":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.2.8_1773883384928_0.09430188203236067","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"talking-head-studio","version":"0.2.9","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.2.9","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"7602863fe57d9eb3aeaef2ddbb5925ab6f2ae9cb","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.2.9.tgz","fileCount":53,"integrity":"sha512-RnKf6kwVIj7qLpRRUxWgWfr9GfgvBBWUvEFvfE1tbBWjIssODcLZhsgEYhRC47+Wz1zOzfhbBMTNKyd4VmegJQ==","signatures":[{"sig":"MEQCIHfGeVtEKQ1Gubq5/4GzmAHrXEVkpmpP4JwOfvQyvCa/AiBerxljdohNRfiRBr8S2JiFdx655naMjTE855Aaqad46g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139373},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"0ce916ed5bc746d0923f788bb700e5c7529f79d2","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"react":">=18","three":">=0.170","react-native":">=0.73","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"three":{"optional":true},"react-native":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.2.9_1774280228978_0.6238725399087055","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"talking-head-studio","version":"0.3.0","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.3.0","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"772332a5d0181c49dbdff5fc0594589fba890b74","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.3.0.tgz","fileCount":80,"integrity":"sha512-VKer5g5nDFzlcYEhENNg6rjdsZHX2Xrxf0hgF39lQ+nuJO6KR5q/T8T1xyuDZS5d6q1/Wfq+PQm89EM9MtBRYQ==","signatures":[{"sig":"MEUCIA8EQxZJiL5BGxcqPFtMVHRi0VZHsJc6IOaqI/jwI9lSAiEA+lx/nI7e+hr03KCNumlkfCFP2+BdXkpP+AJNJCWMH20=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5706667},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./filament":{"types":"./dist/filament/index.d.ts","default":"./dist/filament/index.js","react-native":"./dist/filament/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"8d2e284d45748779299f1857ac1eab7558a02e6a","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zustand":"^5.0.12"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13","react-native-filament":">=1"},"peerDependenciesMeta":{"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true},"react-native-filament":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.3.0_1774295942395_0.922859678046206","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"talking-head-studio","version":"0.3.1","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.3.1","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"a5c5425a4c74cf08dc01c78cc4d2df06ed7109e3","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.3.1.tgz","fileCount":82,"integrity":"sha512-NgojNw1AnIrUNq/mjBesN4CtozZMm/ZYXclgtU71kJhWe3L9JDRHXQoL9tQ8Q9jSmHExQAzlIkmYxgMQUxoDgw==","signatures":[{"sig":"MEQCIBAltni84BfhzYu7GRrtwBPL1GB0KFRtQfD8H+xwMM20AiAr3VD0NosjWmBSgKrFat1KXjWuQzID9vktDNixFq066Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5713664},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./filament":{"types":"./dist/filament/index.d.ts","default":"./dist/filament/index.js","react-native":"./dist/filament/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"6228d7ddb2c27e3be8b16d569d9106adee00094a","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zustand":"^5.0.12"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13","react-native-filament":">=1"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true},"react-native-filament":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.3.1_1774297465620_0.595553138115916","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"talking-head-studio","version":"0.3.2","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.3.2","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"3bfa68450900ae1e13d9d09459dbdcb6a233dbf9","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.3.2.tgz","fileCount":82,"integrity":"sha512-0uDgLDNAjg72SYZtfUq5cPz2/AL2HqNX/kvTgmwe6VWwFax7e95fHbtyooKc+LK8jd5kElZ7jUOq1ddhH0tJ8A==","signatures":[{"sig":"MEYCIQD4V85R4EcFBp7omEdC0ekfbivIffLDazjRtMkbM6uQMQIhAMfnFLY2a0/x2sLIHeEt1YXUQxKQS6c0bB4d2IbKFXoK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5716582},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./filament":{"types":"./dist/filament/index.d.ts","default":"./dist/filament/index.js","react-native":"./dist/filament/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"3d8a6614bec6684c6ccba5c58da771c3dcb8e59b","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zustand":"^5.0.12"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13","react-native-filament":">=1"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true},"react-native-filament":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.3.2_1774297566214_0.4883659891707153","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"talking-head-studio","version":"0.3.3","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.3.3","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"1f033be9b98404fd7bcc272f2f1ceea3ccc7aaf1","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.3.3.tgz","fileCount":84,"integrity":"sha512-alFbAbJ5OwUQD0Ftt5ds3q4h/EgskrkUjHpskyPwqk3IyMQL//Exz/glukdMCQnxaKzSmiDiWITAUwbdIrQpMg==","signatures":[{"sig":"MEUCIB6xtSj5yc4On80dhPrHQjTdrBEfRjCZHqhUoM4OhbXeAiEA6UPuqBILaWqiUZgkXfYqgJf4uxUEr8mwY6rccMl98CI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5719102},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./filament":{"types":"./dist/filament/index.d.ts","default":"./dist/filament/index.js","react-native":"./dist/filament/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"403d88a7aacfef0d00b0ff30ff4d3509aa5fff10","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zustand":"^5.0.12"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13","react-native-filament":">=1"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true},"react-native-filament":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.3.3_1774298486206_0.15530661007042745","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"talking-head-studio","version":"0.3.4","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.3.4","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"10fd2fc5597f6e5089d6b144c74d71aaf5f3bfac","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.3.4.tgz","fileCount":84,"integrity":"sha512-LKKVOVm4uYndg4/YD7NTgQWATGZH1M0D/57LqZOsUJN6qwpsZmsz+50DFHQW1Z21eqTcSZCjAwd0mP7rxtXRTA==","signatures":[{"sig":"MEQCIHycLj9+EePG5zyTRcnGLgRtCodV8AIHHkQEas9aOgHNAiAITGfZUACsR6vN5Pbu/VglF4itoPOP4vyJYYpT1nm11Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5719328},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./filament":{"types":"./dist/filament/index.d.ts","default":"./dist/filament/index.js","react-native":"./dist/filament/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"c48f210db33594af0a730b8f5df28859abab3f6a","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zustand":"^5.0.12"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13","react-native-filament":">=1"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true},"react-native-filament":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.3.4_1774298662231_0.6414217110337381","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"talking-head-studio","version":"0.3.5","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.3.5","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"eed3996da136ade55ba220979cf3ba6378900772","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.3.5.tgz","fileCount":84,"integrity":"sha512-8u8fhoTXdRBS/CB8kSpja1+3gcTt/KXDXjUmjnahcBJpqyAnvJmu8wLVQEmGJVTI/+h9s9ak231/dmgDC9dtSQ==","signatures":[{"sig":"MEYCIQCqPGNAjg/J61OVRgJfGdDNya+FhydDBHavNKy2bqWzWQIhAIMxiyYdz88MN9yutuiu4qXRl+3kHovlidZu8gjWvKZ8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5729394},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./filament":{"types":"./dist/filament/index.d.ts","default":"./dist/filament/index.js","react-native":"./dist/filament/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"ecf5344aad1c96223c1e2ede2ab5347993f53153","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zustand":"^5.0.12"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@babel/preset-env":"^7.29.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13","react-native-filament":">=1"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true},"react-native-filament":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.3.5_1774299173963_0.282509382851446","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"talking-head-studio","version":"0.3.6","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.3.6","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"5e064ecfb30c8f27a3a6bd3a5ff502f62e5e7f21","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.3.6.tgz","fileCount":96,"integrity":"sha512-L/paWyD6eY62VcDljh4Zb451A4jv6grMC+BC6Hr20o3jM/yLk0tRUveXpRCbiX8MIoYLcNjq1Ehk3LyXncH1+Q==","signatures":[{"sig":"MEYCIQCzrWV4CSoZMvG2rGWkujAgfIL90Hu1gkQpm31q5YaEkwIhAOgxhLgFdzIebhTTzHsUwF753TiElLSl9hWsjrBfh6co","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5803759},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./filament":{"types":"./dist/filament/index.d.ts","default":"./dist/filament/index.js","react-native":"./dist/filament/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./filament/editor":{"types":"./dist/filament/editor/index.d.ts","default":"./dist/filament/editor/index.js","react-native":"./dist/filament/editor/index.js"}},"gitHead":"002ca3c7f4e26a5541a29db539adf34060fd5372","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zustand":"^5.0.12"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","babel-jest":"^30.2.0","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","expo-haptics":"^55.0.9","@babel/preset-env":"^7.29.0","@expo/vector-icons":"^15.1.1","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13","react-native-filament":">=1"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true},"react-native-filament":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.3.6_1774301577716_0.45118021856085533","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"talking-head-studio","version":"0.3.7","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.3.7","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"45b222659bb3a7142b73ad14aaa25313d71cbe09","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.3.7.tgz","fileCount":100,"integrity":"sha512-DxMRriz1LKSynevV6Z5aT2EacBxmcVxOzy2dtznISxr4VxlmaCJXUkQlwWX3Z742nnvt4PN+2oUXDMpirrkptg==","signatures":[{"sig":"MEQCIByHKBY+ectCRZK1nOkSoJlaz9uYjtvMw4kM1Ge1VvXsAiASmtyU9a9Q42u+L80EepgD9wAleFzFpMTrTGf6LxU9Jw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5813278},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./filament":{"types":"./dist/filament/index.d.ts","default":"./dist/filament/index.js","react-native":"./dist/filament/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./filament/editor":{"types":"./dist/filament/editor/index.d.ts","default":"./dist/filament/editor/index.js","react-native":"./dist/filament/editor/index.js"}},"gitHead":"7552bbc3ccfbfe4a670f3f8b77d12f03309e09f9","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13","react-native-filament":">=1"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true},"react-native-filament":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.3.7_1774313216695_0.4205330378042833","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"talking-head-studio","version":"0.3.8","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.3.8","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"69f4844e1b62c5b7d5a9ca646b8e1591ff0ac2c4","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.3.8.tgz","fileCount":100,"integrity":"sha512-veG3nmQW5uLPbro7qWIwnvfKCnqM5DFpfbq7eyx/Ff0adzDtw2W/13ONMZPwUu0M3/k+Vf5ad17GKdobxmcMhA==","signatures":[{"sig":"MEQCIAdMQ46ZRfSxtQSZ0px+7HfP78ppjbVigEvYH15T2qEGAiB3OSKsbWIc/4d6CHeXzIZb5O2PnE3Ha/I2h3imslCz+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5813279},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./filament":{"types":"./dist/filament/index.d.ts","default":"./dist/filament/index.js","react-native":"./dist/filament/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./filament/editor":{"types":"./dist/filament/editor/index.d.ts","default":"./dist/filament/editor/index.js","react-native":"./dist/filament/editor/index.js"}},"gitHead":"3e33d07ab49ce37f55a1c6bb5f6c2a62ed0f8f1d","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13","react-native-filament":">=1"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true},"react-native-filament":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.3.8_1774313260851_0.7131274446713747","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"talking-head-studio","version":"0.3.9","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.3.9","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"5253e85eb4fb2f466d0afb506c4397a6a9a78b47","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.3.9.tgz","fileCount":100,"integrity":"sha512-Yo9Gx7lOMcDBlBpIaGsw41WQWOgljGmWxztQEciW1OKCvrw0s1JvuadJB2oD+IubC0HHzUauTCAGTWnMOI+/PQ==","signatures":[{"sig":"MEUCIBOZYmGuNSKoinWAAI9k6P/sg7E3XRUJRx4KphywgeWhAiEApN8ytdA/lf62JZ/Ed/wAN7vYN3T6Fzpf9y+eGHlzWZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5813666},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./filament":{"types":"./dist/filament/index.d.ts","default":"./dist/filament/index.js","react-native":"./dist/filament/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./filament/editor":{"types":"./dist/filament/editor/index.d.ts","default":"./dist/filament/editor/index.js","react-native":"./dist/filament/editor/index.js"}},"gitHead":"0cbf479d79cf510146572249054fe3b3b9dc9a82","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^19.2.4","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","@react-three/fiber":">=8","react-native-webview":">=13","react-native-filament":">=1"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true},"react-native-filament":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.3.9_1774321250767_0.3419115663538883","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"talking-head-studio","version":"0.4.0","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.0","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"88505e9914567521f1ee56d97bd172c7e5427b4f","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.0.tgz","fileCount":104,"integrity":"sha512-2IB6LXHpSMPVnMMsRNU9Ib2mWb2F6i7H7TZbbHieblxluzHwtct5j6PEpAVccd/PKmVOQkkAvNuo0X2oqRXoUw==","signatures":[{"sig":"MEUCIQDBLOwPTCgAdnS2Phq/oCiI2fHPkkbd4Ef/RnjjQ84YdgIgMLLeZnQhIwci4FRHM2NdSYQgyQOKJ+EgO44ow3RQlTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5830899},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./filament":{"types":"./dist/filament/index.d.ts","default":"./dist/filament/index.js","react-native":"./dist/filament/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./filament/editor":{"types":"./dist/filament/editor/index.d.ts","default":"./dist/filament/editor/index.js","react-native":"./dist/filament/editor/index.js"}},"gitHead":"fcc69953ae0453fbf65ed2b1d0ae17521354cf36","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^18.3.1","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@react-three/fiber":">=8","react-native-webview":">=13","react-native-filament":">=1"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true},"react-native-filament":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.0_1774378109299_0.6438601775248007","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"talking-head-studio","version":"0.4.1","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.1","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"2af6916ddc002a9752b9a453a4dcce5c24c1563d","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.1.tgz","fileCount":88,"integrity":"sha512-iTOU7U0lTwrIZecnvrILlvGqGv8VaR+CQw2wNwC3WacjqGMlILUGOlaY5oPBa0yCI3BVtJIhLX5crBf/JUc2Vg==","signatures":[{"sig":"MEQCIBEUZxuU43cg+3TqEcR3/pk0KghxmWY+viH5Dw7MdBmoAiBFHsnjsz6nwHcaziSwEstVMT0bQyNYL9GD06e26J1cdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5715512},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"fcc69953ae0453fbf65ed2b1d0ae17521354cf36","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^18.3.1","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.1_1774378315213_0.6472453199492842","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"talking-head-studio","version":"0.4.2","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.2","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"77d11941002d23e161a0ee712a5b8dfa649e40ea","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.2.tgz","fileCount":96,"integrity":"sha512-bfT1VVaXikF6L3cfahLL9BzFLbbhly9hQTRE27wqyQKgie22NAemN2D5ItGc7wjpwbwhrbqg2BBjzpquhXhQOA==","signatures":[{"sig":"MEYCIQCzLX6yrY3LhJELUwg41R8rxndN8R1CjSTzoG+nZCX1hgIhAK2mV2BLhkpwZeH6LdmSFr4vkFufnkuEB6eVTHBpsEsi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5732210},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"4c02b350fc9ae0a7dc0f490f1ac4a00e63829fb8","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"expo-gl":"^55.0.10","zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^18.3.1","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.2_1774380386493_0.6135983240416201","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"talking-head-studio","version":"0.4.3","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.3","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"f96da0f1ba47d58a8664904f4c1717d1d9a4e2df","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.3.tgz","fileCount":96,"integrity":"sha512-oepkcUTRz7eoHyH8xAUC3PoZJmIBPTcN2VjW2cxx4o7lXCgxmWE0D0eb3Gfp5hkEZNXtgbs4WpzIUJQM0eh6DA==","signatures":[{"sig":"MEQCICIIQl0v8mEsNt5qfzYwqyx3xHKNZJjDyx02PM2+xKy+AiB3oxxyimBkF0m5udk+XmLoohs6f9IAKB/3bI4hoPiSMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5733132},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"0d9dcbd1f2ad72e1348c71e19483b935c5a9c6d2","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"expo-gl":"^55.0.10","zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^18.3.1","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.3_1774382969624_0.8383517571693657","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"talking-head-studio","version":"0.4.4","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.4","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"bc3c1066cc34f5fb9cd7ef8c8f1260625da97a8e","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.4.tgz","fileCount":96,"integrity":"sha512-8Zqjy7RZP/w5dFTS12QFQevQOptDWtRTBIUq2DUViqh+/beAAdolMnF75jMBxzRkmo5Bph9pTllua0FIvsGEAg==","signatures":[{"sig":"MEYCIQCIuDzgFMyO2q+6E6widgjCxzVyNg03sjj3w9H8kYvOAAIhAMIMBb0pvs6utWYoQ85VX3w2K85tiBoafhtrJzL4moc8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5733131},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"}},"gitHead":"6793a5a2670b6528bb10005fe050c94603e5728e","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"expo-gl":"^55.0.10","zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^18.3.1","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.4_1774383187003_0.018341090448371844","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"talking-head-studio","version":"0.4.5","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.5","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"a07cfa6e9931f7af79bc8690c366afe9349154ae","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.5.tgz","fileCount":96,"integrity":"sha512-6VAO4tpT6Kj1nM2VkSZ+kK7cfrxyZ6oHazWbwaP60yA5vSVfITPai1Qt4qVycy6+gdPgfWjRziRD6vB2Bo3Abg==","signatures":[{"sig":"MEQCIBa4xmrZYrBX0BbD6zhsnMUJcxh7Ip4X1uQYh6/VVsy0AiAqKAcjdY3n+C3FnWZbT+1CTgUqSw165IESUxuDa2Yu/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5733181},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./dist/assets/*.glb":"./dist/assets/*.glb"},"gitHead":"6793a5a2670b6528bb10005fe050c94603e5728e","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"expo-gl":"^55.0.10","zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^18.3.1","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.5_1774385317999_0.8376376422941623","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"talking-head-studio","version":"0.4.6","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.6","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"c877f170581807405cfa7ebb9f1c11bb4d6f086e","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.6.tgz","fileCount":96,"integrity":"sha512-yAwEBxhs5QoLR6nw+EJBKCi21ukleNqc2cDJ3KNLU8CfLmG9LlNWViv2lzAu8K6yZPPK2h/QG8Y0IFLRHuJhDA==","signatures":[{"sig":"MEUCIEX511ZBJgpq4L3w26kWGzobL+VvZiDxpvUj2mqZWQD1AiEAvGUxe4Nh4ncipAa7tlpu6IGZKbQpLDL9RH9jG/opLqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5734925},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./dist/assets/*.glb":"./dist/assets/*.glb"},"gitHead":"8d75cda665991ed9f01e43b3436ad3463033227e","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"expo-gl":"^55.0.10","zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^18.3.1","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.6_1774387060446_0.1803873869379291","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"talking-head-studio","version":"0.4.8","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.8","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"270d5450da6b6940a4b6ee11c126537eae4fc76f","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.8.tgz","fileCount":96,"integrity":"sha512-q5mubuuRuS10S+A+gPCr8EUEiDnjZMYuceZJETI8hpw8FjBqjN3Tx3OyboOUb8rRLqrvBYq7cKmndIejpTZq6Q==","signatures":[{"sig":"MEUCIFKhaMNsZO33McBnaBiSZnxnbDOXRdx0AEbyDkPHZ4l5AiEA4bZIdpzOlZw+TqWUmz670yKOlbkwkQT9huut/Z/XFWE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5734649},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./dist/assets/*.glb":"./dist/assets/*.glb"},"gitHead":"d395aff1071d10ada460b5824a7a7c40282a3e47","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"9.2.0","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"expo-gl":"^55.0.10","zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^18.3.1","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.8_1774467364905_0.7467283339011845","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"talking-head-studio","version":"0.4.9","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.9","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"7bd179710ba9ec94beeacd3bea9c819a809abaa7","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.9.tgz","fileCount":100,"integrity":"sha512-L1b0H4iUJggTsvWQr5A6hFQ4UKIS+PgbP4ZpDs2ewbkqbYqyKvW6jSw+PlhSjWpnsVwMThw//G7l2ceZF4r1jg==","signatures":[{"sig":"MEUCIQDNxyle857sJyUVf21yHqr1Ie6xf8Vi478STVf/mx6QoAIgQIm/1E+UiwBUHfhaqsBhbf1yKDRO5E0/BO6P3UqVh/Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5764945},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./dist/assets/*.glb":"./dist/assets/*.glb"},"gitHead":"d395aff1071d10ada460b5824a7a7c40282a3e47","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"expo-gl":"^55.0.10","zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^18.3.1","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","expo-audio":">=0.3","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"expo-audio":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.9_1774492536269_0.6751881203238927","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"talking-head-studio","version":"0.4.10","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.10","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"b50afbb3b8e130d5e007424a6177d91d26cb5b6b","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.10.tgz","fileCount":102,"integrity":"sha512-7aG/WeNR2rjmw0jXNoMWFfB1jNLkZ3zTlFGML6Itix5yIIAoqNrh3nf+laPSFeNYjsRi4aLkerwRacQFhXcrAQ==","signatures":[{"sig":"MEUCIQDGBzPjfJHfYx2R3g+E6j3QQZmg3+rUPpWaGOCf1jAWIQIgba9tOCo6TFHMvkuKvLJX/GIcmc+Do4gasZb4LELuw6k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5766351},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./dist/assets/*.glb":"./dist/assets/*.glb"},"gitHead":"d395aff1071d10ada460b5824a7a7c40282a3e47","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config creator-app/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"expo-gl":"^55.0.10","zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^5.4.21","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^18.3.7","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^18.3.1","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","expo-audio":">=0.3","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"expo-audio":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.10_1774493375112_0.5334174456051599","host":"s3://npm-registry-packages-npm-production"}},"0.4.11":{"name":"talking-head-studio","version":"0.4.11","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.11","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"54cf57b9adba029a1b78ce04a066f0a39b216da0","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.11.tgz","fileCount":130,"integrity":"sha512-2lQeHRpB7BlP61zvLSdXARtgro8iS+6cNLBRIh5vqf8vQBaczv5Q7SnceCnhiePcRKyMREyfXNGFVlMII7X6Gw==","signatures":[{"sig":"MEQCICkXnCKcbY52SjPKwo0GsTa1ZWON1CkNhhOKbR3Q3FOFAiBmwAOJ/lrx+nDsnoY2YjjTzCDT+idM75LuEfZACXCm9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5838017},"main":"dist/index.web.js","types":"dist/index.web.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.web.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","default":"./dist/editor/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./dist/assets/*.glb":"./dist/assets/*.glb"},"gitHead":"ee3437dcc6efd0de12ac499f6e488ff9a810d76a","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && mkdir -p dist/assets && cp src/assets/*.glb dist/assets/","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config packages/avatar-creator/vite.config.ts","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"expo-gl":"^55.0.10","zustand":"^5.0.12","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","moti":"^0.30.0","vite":"^8.0.3","react":"^18.3.1","three":"^0.180.0","eslint":"^9.39.3","multer":"^2.1.0","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","react-dom":"^18.3.1","babel-jest":"^30.2.0","expo-audio":"^55.0.9","typescript":"^5.3.3","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/react":"^19.2.14","@types/three":"^0.180.0","expo-haptics":"^55.0.9","@types/react-dom":"^19.0.0","@babel/preset-env":"^7.29.0","@react-three/drei":"^9.122.0","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^8.18.0","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"^18.3.1","@vitejs/plugin-react":"^4.7.0","react-native-webview":"^13.16.0","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.2.0","react-native-reanimated":"^4.2.3","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"^2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"expo":">=51","react":">=18","three":">=0.170","expo-asset":">=10","expo-audio":">=0.3","react-native":">=0.73","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@react-three/fiber":">=8","react-native-webview":">=13"},"peerDependenciesMeta":{"expo":{"optional":true},"three":{"optional":true},"expo-asset":{"optional":true},"expo-audio":{"optional":true},"react-native":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@react-three/fiber":{"optional":true},"react-native-webview":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.11_1774510034856_0.6467108623026596","host":"s3://npm-registry-packages-npm-production"}},"0.4.12":{"name":"talking-head-studio","version":"0.4.12","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.12","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"1a3d7e3502e5981a181cd674b1de77b476987418","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.12.tgz","fileCount":219,"integrity":"sha512-u8PCyVRIC4b/qyley9exz5ADQCeCNMrelto0OPkTzHJ0ZikPMg29/PrEPOSnUkkvv0mh9JX5QLJAUGRuOCWTFg==","signatures":[{"sig":"MEUCIQCrQ1TkJ8EW0FJy6FHyukuEQxJqk6u6zITmKgczI8LpRgIgCObfDNIuPsM6QGup8Am+E6dll3pgUwO2f99X2vD4RYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6529456},"main":"dist/index.web.js","types":"dist/index.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./html":{"types":"./dist/html.d.ts","default":"./dist/html.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","browser":"./dist/editor/index.web.js","default":"./dist/editor/index.js"},"./studio":{"types":"./dist/studio/index.d.ts","default":"./dist/studio/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./dist/assets/*.glb":"./dist/assets/*.glb"},"gitHead":"51b81551a4d8975713fb13b2dfa0c47f98a28961","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && node tools/copy-build-assets.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config packages/avatar-creator/vite.config.ts","test:metadata":"node --test 'tests/*.test.mjs'","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run test:metadata && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.9.7","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zustand":"^5.0.12","base64-js":"^1.5.1","@gltf-transform/core":"^4.3.0","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","moti":"^0.30.0","vite":"^8.0.3","react":"19.2.0","three":"^0.183.2","eslint":"^9.39.4","multer":"^2.1.1","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","expo-blur":"55.0.12","react-dom":"19.2.0","babel-jest":"^30.3.0","expo-asset":"55.0.13","expo-audio":"55.0.11","expo-image":"55.0.8","typescript":"^6.0.2","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/node":"^25.5.0","@types/react":"^19.2.14","@types/three":"^0.183.1","expo-haptics":"55.0.11","three-stdlib":"^2.36.1","@types/react-dom":"^19.2.3","expo-file-system":"55.0.15","@babel/preset-env":"^7.29.2","@react-three/drei":"^10.7.7","react-native-wgpu":"0.5.11","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^9.5.0","@shopify/flash-list":"2.0.2","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.0","@gorhom/bottom-sheet":"^5.2.8","@vitejs/plugin-react":"^6.0.1","expo-document-picker":"55.0.11","react-native-webview":"13.16.0","react-native-worklets":"0.7.2","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.3.0","react-native-reanimated":"4.2.1","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"~2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.57.2"},"peerDependencies":{"expo":">=51","moti":">=0.29","react":">=18","three":">=0.170","expo-blur":">=13","expo-asset":">=10","expo-audio":">=0.3","expo-image":">=1","expo-haptics":">=13","react-native":">=0.81","three-stdlib":">=2","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@expo/vector-icons":">=14","@react-three/fiber":">=8","@shopify/flash-list":">=1","@gorhom/bottom-sheet":">=5","expo-document-picker":">=12","react-native-webview":">=13","react-native-reanimated":">=3"},"peerDependenciesMeta":{"expo":{"optional":true},"moti":{"optional":true},"three":{"optional":true},"expo-blur":{"optional":true},"expo-asset":{"optional":true},"expo-audio":{"optional":true},"expo-image":{"optional":true},"expo-haptics":{"optional":true},"react-native":{"optional":true},"three-stdlib":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@expo/vector-icons":{"optional":true},"@react-three/fiber":{"optional":true},"@shopify/flash-list":{"optional":true},"@gorhom/bottom-sheet":{"optional":true},"expo-document-picker":{"optional":true},"react-native-webview":{"optional":true},"react-native-reanimated":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.12_1783168772334_0.04034168405049532","host":"s3://npm-registry-packages-npm-production"}},"0.4.13":{"name":"talking-head-studio","version":"0.4.13","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","_id":"talking-head-studio@0.4.13","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"homepage":"https://github.com/sitebay/talking-head-studio","bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"dist":{"shasum":"889e6b7ac3f8cefe6dde3e891db2d1e63633ae98","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.4.13.tgz","fileCount":219,"integrity":"sha512-zz5aBhtKvgH6Z1QnFh1NwGukFc7l4Xi4RNLjEV05TGqhCdAU4dSYmV9F+AH3oh/CNjZxiC9YM2cjv5kPaAt1pw==","signatures":[{"sig":"MEQCIF2oEhsYT4BJaSpvlDAs4MYAy0jNQ8CFU2pW91u3+eNZAiAMNt2NVV2bk/udHlaFbWJTXiRKQwiLUaPGX+EQhzrPJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6534172},"main":"dist/index.web.js","types":"dist/index.d.ts","source":"src/index.ts","browser":"dist/index.web.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.web.js","react-native":"./dist/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./html":{"types":"./dist/html.d.ts","default":"./dist/html.js"},"./wgpu":{"types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js","react-native":"./dist/wgpu/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./editor":{"types":"./dist/editor/index.d.ts","browser":"./dist/editor/index.web.js","default":"./dist/editor/index.js"},"./studio":{"types":"./dist/studio/index.d.ts","default":"./dist/studio/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./dist/assets/*.glb":"./dist/assets/*.glb"},"gitHead":"57a501bc2a557c5f1df80b10ede5ff4be0e33c4c","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"npm run clean && tsc --project tsconfig.json && node tools/copy-build-assets.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node server.js","format":"prettier --write 'src/**/*.{ts,tsx}'","typecheck":"tsc --noEmit","build:creator":"vite build --config packages/avatar-creator/vite.config.ts","test:metadata":"node --test 'tests/*.test.mjs'","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run test:metadata && npm run build"},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"repository":{"url":"git+https://github.com/sitebay/talking-head-studio.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"11.11.0","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"zustand":"^5.0.12","base64-js":"^1.5.1","@gltf-transform/core":"^4.3.0","@mediapipe/tasks-vision":"^0.10.34"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","moti":"^0.30.0","vite":"^8.0.3","react":"19.2.0","three":"^0.183.2","eslint":"^9.39.4","multer":"^2.1.1","express":"^5.2.1","ts-jest":"^29.4.6","prettier":"^3.8.1","expo-blur":"55.0.12","react-dom":"19.2.0","babel-jest":"^30.3.0","expo-asset":"55.0.13","expo-audio":"55.0.11","expo-image":"55.0.8","typescript":"^6.0.2","@babel/core":"^7.29.0","@types/jest":"^30.0.0","@types/node":"^25.5.0","@types/react":"^19.2.14","@types/three":"^0.183.1","expo-haptics":"55.0.11","three-stdlib":"^2.36.1","@types/react-dom":"^19.2.3","expo-file-system":"55.0.15","@babel/preset-env":"^7.29.2","@react-three/drei":"^10.7.7","react-native-wgpu":"0.5.11","@expo/vector-icons":"^15.1.1","@react-three/fiber":"^9.5.0","@shopify/flash-list":"2.0.2","@types/react-native":"^0.73.0","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.0","@gorhom/bottom-sheet":"^5.2.8","@vitejs/plugin-react":"^6.0.1","expo-document-picker":"55.0.11","react-native-webview":"13.16.0","react-native-worklets":"0.7.2","eslint-config-prettier":"^10.1.8","jest-environment-jsdom":"^30.3.0","react-native-reanimated":"4.2.1","@babel/preset-typescript":"^7.28.5","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","@react-native/babel-preset":"^0.84.1","eslint-plugin-react-native":"^5.0.0","react-native-gesture-handler":"~2.30.0","@testing-library/react-native":"^13.3.3","metro-react-native-babel-preset":"^0.77.0","@typescript-eslint/eslint-plugin":"^8.57.2"},"peerDependencies":{"expo":">=51","moti":">=0.29","react":">=18","three":">=0.170","expo-blur":">=13","expo-asset":">=10","expo-audio":">=0.3","expo-image":">=1","expo-haptics":">=13","react-native":">=0.81","three-stdlib":">=2","expo-file-system":">=17","@react-three/drei":">=9","react-native-wgpu":">=0.1","@expo/vector-icons":">=14","@react-three/fiber":">=8","@shopify/flash-list":">=1","@gorhom/bottom-sheet":">=5","expo-document-picker":">=12","react-native-webview":">=13","react-native-reanimated":">=3"},"peerDependenciesMeta":{"expo":{"optional":true},"moti":{"optional":true},"three":{"optional":true},"expo-blur":{"optional":true},"expo-asset":{"optional":true},"expo-audio":{"optional":true},"expo-image":{"optional":true},"expo-haptics":{"optional":true},"react-native":{"optional":true},"three-stdlib":{"optional":true},"expo-file-system":{"optional":true},"@react-three/drei":{"optional":true},"react-native-wgpu":{"optional":true},"@expo/vector-icons":{"optional":true},"@react-three/fiber":{"optional":true},"@shopify/flash-list":{"optional":true},"@gorhom/bottom-sheet":{"optional":true},"expo-document-picker":{"optional":true},"react-native-webview":{"optional":true},"react-native-reanimated":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talking-head-studio_0.4.13_1783352155519_0.05964678257498135","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"talking-head-studio","version":"0.5.0","description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","main":"dist/index.web.js","browser":"dist/index.web.js","react-native":"dist/index.js","types":"dist/index.d.ts","source":"src/index.ts","exports":{".":{"react-native":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.web.js"},"./editor":{"types":"./dist/editor/index.d.ts","browser":"./dist/editor/index.web.js","default":"./dist/editor/index.js"},"./voice":{"types":"./dist/voice/index.d.ts","default":"./dist/voice/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"},"./appearance":{"types":"./dist/appearance/index.d.ts","default":"./dist/appearance/index.js"},"./sketchfab":{"types":"./dist/sketchfab/index.d.ts","default":"./dist/sketchfab/index.js"},"./api":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.js"},"./wardrobe":{"types":"./dist/wardrobe/index.d.ts","default":"./dist/wardrobe/index.js"},"./wgpu":{"react-native":"./dist/wgpu/index.js","types":"./dist/wgpu/index.d.ts","default":"./dist/wgpu/index.js"},"./studio":{"types":"./dist/studio/index.d.ts","default":"./dist/studio/index.js"},"./html":{"types":"./dist/html.d.ts","default":"./dist/html.js"},"./dist/assets/*.glb":"./dist/assets/*.glb"},"scripts":{"clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","build":"npm run clean && tsc --project tsconfig.json && node tools/copy-build-assets.mjs","typecheck":"tsc --noEmit","lint":"eslint 'src/**/*.{ts,tsx}'","format":"prettier --write 'src/**/*.{ts,tsx}'","test":"jest","test:metadata":"node --test 'tests/*.test.mjs'","prepublishOnly":"npm run lint && npm run typecheck && npm test -- --runInBand && npm run test:metadata && npm run build","build:creator":"vite build --config packages/avatar-creator/vite.config.ts","start":"node server.js"},"keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","homepage":"https://github.com/sitebay/talking-head-studio","repository":{"type":"git","url":"git+https://github.com/sitebay/talking-head-studio.git"},"bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"workspaces":["packages/*"],"sideEffects":false,"dependencies":{"@gltf-transform/core":"^4.3.0","@mediapipe/tasks-vision":"^0.10.34","base64-js":"^1.5.1","zustand":"^5.0.12"},"peerDependencies":{"@expo/vector-icons":">=14","@gorhom/bottom-sheet":">=5","@react-three/drei":">=9","@react-three/fiber":">=8","@shopify/flash-list":">=1","expo":">=51","expo-asset":">=10","expo-audio":">=0.3","expo-blur":">=13","expo-document-picker":">=12","expo-file-system":">=17","expo-haptics":">=13","expo-image":">=1","moti":">=0.29","react":">=18","react-native":">=0.81","react-native-reanimated":">=3","react-native-webview":">=13","react-native-wgpu":">=0.1","three":">=0.170","three-stdlib":">=2"},"peerDependenciesMeta":{"@expo/vector-icons":{"optional":true},"@gorhom/bottom-sheet":{"optional":true},"@shopify/flash-list":{"optional":true},"react-native":{"optional":true},"react-native-webview":{"optional":true},"react-native-wgpu":{"optional":true},"expo":{"optional":true},"expo-asset":{"optional":true},"expo-audio":{"optional":true},"expo-blur":{"optional":true},"expo-document-picker":{"optional":true},"expo-file-system":{"optional":true},"expo-haptics":{"optional":true},"expo-image":{"optional":true},"moti":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/drei":{"optional":true},"three":{"optional":true},"three-stdlib":{"optional":true},"react-native-reanimated":{"optional":true}},"devDependencies":{"@babel/core":"^7.29.0","@babel/preset-env":"^7.29.2","@babel/preset-typescript":"^7.28.5","@expo/vector-icons":"^15.1.1","@gorhom/bottom-sheet":"^5.2.8","@react-native/babel-preset":"^0.84.1","@react-three/drei":"^10.7.7","@react-three/fiber":"^9.5.0","@shopify/flash-list":"2.0.2","@testing-library/react-native":"^13.3.3","@types/jest":"^30.0.0","@types/node":"^25.5.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/react-native":"^0.73.0","@types/three":"^0.183.1","@typescript-eslint/eslint-plugin":"^8.57.2","@typescript-eslint/parser":"^8.57.2","@vitejs/plugin-react":"^6.0.1","babel-jest":"^30.3.0","eslint":"^9.39.4","eslint-config-prettier":"^10.1.8","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-native":"^5.0.0","expo-asset":"55.0.13","expo-audio":"55.0.11","expo-blur":"55.0.12","expo-document-picker":"55.0.11","expo-file-system":"55.0.15","expo-font":"^57.0.0","expo-haptics":"55.0.11","expo-image":"55.0.8","expo-modules-core":"^57.0.3","express":"^5.2.1","jest":"^30.3.0","jest-environment-jsdom":"^30.3.0","metro-react-native-babel-preset":"^0.77.0","moti":"^0.30.0","multer":"^2.1.1","prettier":"^3.8.1","react":"19.2.0","react-dom":"19.2.0","react-native-gesture-handler":"~2.30.0","react-native-reanimated":"4.2.1","react-native-web":"^0.21.2","react-native-webview":"13.16.0","react-native-wgpu":"0.5.11","react-native-worklets":"0.7.2","react-test-renderer":"19.2.0","three":"^0.183.2","three-stdlib":"^2.36.1","ts-jest":"^29.4.6","typescript":"^6.0.2","vite":"^8.0.3"},"_id":"talking-head-studio@0.5.0","gitHead":"57a501bc2a557c5f1df80b10ede5ff4be0e33c4c","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-HLztC/WcGkQU06zv28olHfvqYBLa+sFEpjCBZKujTNkjpL2wTp20mugl4aBhBWmWOR14h6FD7eg81w6/UyRoJA==","shasum":"61f06140e9f81200667716784bbd66b05472bd44","tarball":"https://registry.npmjs.org/talking-head-studio/-/talking-head-studio-0.5.0.tgz","fileCount":241,"unpackedSize":6669397,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD2QJVWqi7sgxQ/AOLUyyNL3CoyM7h+fj1gXNfYNy5DIAIhAMHbslDEJ1tiecxW8iKbW6HceXzgDX19mFXZP7XMwLVC"}]},"_npmUser":{"name":"sitebay.org","email":"support@sitebay.org"},"directories":{},"maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/talking-head-studio_0.5.0_1783800989545_0.32528663428089666"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-12T15:22:05.594Z","modified":"2026-07-11T20:16:29.929Z","0.2.0":"2026-03-12T15:22:05.868Z","0.2.1":"2026-03-12T15:23:45.137Z","0.2.2":"2026-03-12T15:28:34.655Z","0.2.3":"2026-03-16T15:01:11.858Z","0.2.4":"2026-03-18T18:03:24.849Z","0.2.5":"2026-03-18T19:22:52.374Z","0.2.6":"2026-03-18T23:48:13.370Z","0.2.7":"2026-03-18T23:58:30.793Z","0.2.8":"2026-03-19T01:23:05.113Z","0.2.9":"2026-03-23T15:37:09.134Z","0.3.0":"2026-03-23T19:59:02.727Z","0.3.1":"2026-03-23T20:24:25.941Z","0.3.2":"2026-03-23T20:26:06.462Z","0.3.3":"2026-03-23T20:41:26.524Z","0.3.4":"2026-03-23T20:44:22.553Z","0.3.5":"2026-03-23T20:52:54.280Z","0.3.6":"2026-03-23T21:32:57.969Z","0.3.7":"2026-03-24T00:46:57.089Z","0.3.8":"2026-03-24T00:47:41.151Z","0.3.9":"2026-03-24T03:00:51.197Z","0.4.0":"2026-03-24T18:48:29.608Z","0.4.1":"2026-03-24T18:51:55.548Z","0.4.2":"2026-03-24T19:26:26.820Z","0.4.3":"2026-03-24T20:09:29.960Z","0.4.4":"2026-03-24T20:13:07.358Z","0.4.5":"2026-03-24T20:48:38.279Z","0.4.6":"2026-03-24T21:17:40.733Z","0.4.8":"2026-03-25T19:36:05.219Z","0.4.9":"2026-03-26T02:35:36.612Z","0.4.10":"2026-03-26T02:49:35.459Z","0.4.11":"2026-03-26T07:27:15.178Z","0.4.12":"2026-07-04T12:39:32.546Z","0.4.13":"2026-07-06T15:35:55.736Z","0.5.0":"2026-07-11T20:16:29.830Z"},"bugs":{"url":"https://github.com/sitebay/talking-head-studio/issues"},"author":{"name":"SiteBay","email":"hello@sitebay.org"},"license":"MIT","homepage":"https://github.com/sitebay/talking-head-studio","keywords":["react-native","avatar","3d","talking-head","lipsync","tts","threejs","glb","lip-sync","voice","webview","expo","cross-platform","llm","motion","gesture","face-tracking","avatar-editor","gizmo","accessories","audio-recording","react-three-fiber","self-hosted"],"repository":{"type":"git","url":"git+https://github.com/sitebay/talking-head-studio.git"},"description":"Cross-platform 3D avatar component for React Native & web — lip-sync, gestures, accessories, and LLM integration. Powered by TalkingHead + Three.js.","maintainers":[{"name":"sitebay.org","email":"support@sitebay.org"}],"readme":"# talking-head-studio\n\n**Make any GLB model talk — on the web and on React Native — with phoneme-accurate, audio-aligned lip-sync. With or without blend shapes.**\n\n[![npm version](https://img.shields.io/npm/v/talking-head-studio.svg)](https://www.npmjs.com/package/talking-head-studio)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Build Status](https://github.com/sitebay/talking-head-studio/actions/workflows/ci.yml/badge.svg)](https://github.com/sitebay/talking-head-studio/actions)\n\n---\n\n## The point: lip-sync that's driven by the audio, not guessed\n\nMost avatar libraries flap a jaw open in proportion to audio loudness. That reads as\n\"mouth moving,\" not \"speaking.\" talking-head-studio is built around a different model: a\n**viseme schedule** — a timed list of mouth shapes derived from the actual synthesized\nspeech — drives morph targets on the model.\n\n```\nTTS server  ──▶  AgentVisemePayload          ──▶  scheduleVisemes()  ──▶  morph drive\n(word-aligned     { cues: [{ viseme, startMs,      (this library,         (Three.js\n phonemes)          endMs }], durationMs }          web + native)          morph targets)\n```\n\nThe wire format is `AgentVisemePayload`: per-phoneme cues using the 9-shape Rhubarb\nvocabulary (`A`–`H`, `X`), each with a start/end time in milliseconds. The library maps\nthose onto Oculus viseme morphs and schedules them against the audio clock, so the mouth\nhits each shape *when that sound is actually heard*.\n\nThis pairs directly with a TTS server that emits viseme timings from real word alignment\n(we built [Qwen3-TTS](https://github.com/sitebay/Qwen3-TTS) for exactly this — it serves\n`AgentVisemePayload` over an SSE endpoint). But the format is open: emit cues from any\nsource and the renderer consumes them identically.\n\n### Four lip-sync tiers — every model works\n\nThe model decides the fidelity; you don't have to pre-process anything.\n\n| Your model has… | Method | Quality |\n|---|---|---|\n| Oculus viseme morphs | Direct morph drive (`MorphTargetBackend`) | Excellent |\n| ARKit blend shapes (52 AUs) | `remapArkitToOculus()` → morph drive | Good |\n| Only `jawOpen` / `mouthOpen` | Amplitude fallback | Acceptable |\n| No face rig at all | Gaussian splat backend *(roadmap — not yet built)* | Excellent |\n\nIf a model has no viseme morphs, scheduled cues still fall back to the jaw/amplitude path\nautomatically — you never get a frozen face.\n\n---\n\n## Two renderers, one contract\n\nThe same `AgentVisemePayload` / `FaceControl` contract drives both render paths, so you\nwrite your voice pipeline once:\n\n- **Web** — an isolated `<iframe>` running [met4citizen TalkingHead](https://github.com/met4citizen/TalkingHead)\n  as the rig (`TalkingHead.web.tsx`). Drop it into any React / Next / Vite app.\n- **React Native** — a native WebGPU renderer (`WgpuAvatar`, via `react-native-wgpu` +\n  react-three-fiber). No WebView, no postMessage latency, morphs driven on the GPU.\n\nCapabilities differ slightly between the two — see the [capability matrix](#runtime-capability-matrix).\n\n---\n\n## Install\n\n```bash\n# React Native / Expo WebView path\nnpm install talking-head-studio react-native-webview\n\n# React Native / Expo native WebGPU path\nnpx expo install react-native-wgpu @react-three/fiber three three-stdlib expo-asset\n\n# Web (React, Next.js, Vite)\nnpm install talking-head-studio\n```\n\n`three`, `@react-three/fiber`, and the platform packages are peer dependencies — bring your\nown versions. `react-native-webview` is only required for the WebView renderer. Native\nWebGPU uses `react-native-wgpu` and must run in a native build, not Expo Go.\n\n### React Native / Expo WebGPU setup\n\nNative WebGPU needs the React Native new architecture and the WebGPU build of Three.js.\nThe example app in `example/` has the full working config; these are the important parts:\n\n```jsonc\n// app.json\n{\n  \"expo\": {\n    \"newArchEnabled\": true,\n    \"plugins\": [\"expo-asset\"]\n  }\n}\n```\n\n```js\n// metro.config.js\nconst path = require('path');\nconst { getDefaultConfig } = require('expo/metro-config');\n\nconst config = getDefaultConfig(__dirname);\nconst nodeModules = path.resolve(__dirname, 'node_modules');\nconst threeWebgpu = path.resolve(nodeModules, 'three/build/three.webgpu.js');\n\nconfig.resolver.assetExts.push('glb');\nconfig.resolver.extraNodeModules = {\n  three: threeWebgpu,\n};\n\nmodule.exports = config;\n```\n\nBuild and launch a native app so `WebGPUModule` is linked:\n\n```bash\nnpx expo prebuild --platform android --no-install\nnpx expo run:android\n```\n\nExpo Go cannot load the native WebGPU module.\n\n---\n\n## Quick start\n\n### Web / React Native component\n\n```tsx\nimport { useRef } from 'react';\nimport { TalkingHead, type TalkingHeadRef } from 'talking-head-studio';\n\nexport default function Avatar() {\n  const ref = useRef<TalkingHeadRef>(null);\n\n  return (\n    <TalkingHead\n      ref={ref}\n      avatarUrl=\"https://example.com/your-model.glb\"\n      mood=\"happy\"\n      cameraView=\"upper\"\n      style={{ width: 400, height: 600 }}\n      onReady={() => {\n        // Drive the mouth from a viseme schedule (e.g. from your TTS server)\n        ref.current?.scheduleVisemes({\n          cues: [\n            { viseme: 'A', startMs: 0, endMs: 90 },\n            { viseme: 'E', startMs: 90, endMs: 170 },\n            { viseme: 'X', startMs: 170, endMs: 220 },\n          ],\n          durationMs: 220,\n          audioStartedAtMs: Date.now(),\n        });\n      }}\n    />\n  );\n}\n```\n\n### Native WebGPU (React Native, no WebView)\n\n```tsx\nimport { WgpuAvatar, type WgpuAvatarRef } from 'talking-head-studio/wgpu';\n\nconst ref = useRef<WgpuAvatarRef>(null);\n\n<WgpuAvatar\n  ref={ref}\n  avatarUrl=\"https://example.com/your-model.glb\"\n  mood=\"neutral\"\n  style={{ flex: 1 }}\n/>;\n// ref.current?.scheduleVisemes(payload) — same contract as the web component\n```\n\n---\n\n## TalkingHead component — props & ref\n\n### Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `avatarUrl` | `string` | required | Any `.glb`. Rigged or not. |\n| `authToken` | `string \\| null` | `null` | Bearer token for authenticated GLB URLs. |\n| `mood` | `TalkingHeadMood` | `'neutral'` | `neutral \\| happy \\| sad \\| angry \\| fear \\| disgust \\| love \\| sleep \\| excited \\| thinking \\| concerned \\| surprised` |\n| `cameraView` | `'head' \\| 'upper' \\| 'full'` | `'upper'` | Framing preset. |\n| `cameraDistance` | `number` | `-0.5` | Zoom offset. Negative = closer. |\n| `hairColor` | `string` | — | Hex color. Applied to materials named `hair`, `fur`. |\n| `skinColor` | `string` | — | Applied to `skin`, `body`, `face`. |\n| `eyeColor` | `string` | — | Applied to `eye`, `iris`. |\n| `accessories` | `TalkingHeadAccessory[]` | `[]` | Bone-attached GLB items. |\n| `onReady` | `() => void` | — | Fired when fully loaded. |\n| `onError` | `(msg: string) => void` | — | Fired on load failure. |\n| `style` | `ViewStyle / CSSProperties` | — | Container style. |\n\n### Ref methods\n\n```ts\n// Lip-sync\nref.current?.scheduleVisemes(payload); // AgentVisemePayload → full timed lip-sync schedule\nref.current?.clearVisemes();\nref.current?.sendAmplitude(0.7);       // amplitude 0..1 → jaw (fallback / no schedule)\n\n// Expression & appearance\nref.current?.setMood('excited');\nref.current?.setHairColor('#ff0000');\nref.current?.setSkinColor('#8d5524');\nref.current?.setEyeColor('#2e86de');\nref.current?.setAccessories([...]);\n\n// Body — procedural motions, gestures, poses, animation clips\nref.current?.dispatchMotion('groove');                       // looping procedural motion\nref.current?.stopMotion();\nref.current?.playGesture('thumbup');                         // upstream hand gesture\nref.current?.playPose('oneknee');                            // upstream pose template\nref.current?.playAnimation('/animations/wave.glb', { dur: 2 });\nref.current?.lookAt(120, 80, 500);                           // turn toward viewport coords\n```\n\nThe motion vocabulary (`groove`, `wave`, `nod`, `idle`, `attack`, `defend`, `celebrate`,\nplus every upstream gesture/pose name) is exported as typed constants —\n`MOTION_KEYS`, `TALKINGHEAD_GESTURES`, `TALKINGHEAD_POSES`, and the `isMotionKey()` guard —\nfrom both the package root and `talking-head-studio/contract`.\n\n### Runtime capability matrix\n\nBoth renderers share one API; where native can't match the WebView's upstream rig, it\nfalls back to a procedural approximation rather than failing. This table is the honest gap\nlist.\n\n| Feature | Web (iframe) | Native (WGPU) | Notes |\n|---|:---:|:---:|---|\n| Viseme schedules (`scheduleVisemes`) | ✅ | ✅ | Both consume `AgentVisemePayload`. |\n| Amplitude jaw fallback (`sendAmplitude`) | ✅ | ⚠️ | Web drives jaw from amplitude; native exposes the method for API parity. |\n| Core procedural motions (`groove`, `attack`, `defend`) | ✅ | ✅ | Shared `MOTION_DEFS` source of truth. |\n| Gesture names (`thumbup`, `shrug`, …) | ✅ | ⚠️ | Web delegates to TalkingHead; native uses procedural approximations. |\n| Pose names (`oneknee`, `kneel`, `sitting`, …) | ✅ | ⚠️ | Web delegates to TalkingHead; native uses static procedural poses. |\n| Full mood vocabulary | ✅ | ✅ | All 8 upstream moods + friendly aliases. |\n| External animation clips (`playAnimation`) | ✅ | ⚠️ | Web delegates to TalkingHead; native plays GLB clips via `AnimationMixer`. |\n| Gaze (`lookAt`) | ✅ | ❌ | Native eye/head-gaze bridge is future work. |\n| Listening / mic-reactive mouth | ⚠️ | ❌ | Web can route host-provided audio; native bridge not implemented. |\n\n---\n\n## Self-hosting the runtime assets\n\nBy default the web iframe pulls the TalkingHead rig, three.js, and the HeadAudio model\nfrom public CDNs (jsDelivr, gstatic). To run fully self-hosted — no external CDN — vendor\nthose files and point the renderer at your own origin:\n\n```ts\nimport { buildAvatarHtml } from 'talking-head-studio/html';\n\nconst html = buildAvatarHtml({\n  avatarUrl: 'https://your-cdn/model.glb',\n  vendorBaseUrl: 'https://your-cdn/vendor', // serves three.module.js, talkinghead.mjs, etc.\n  // ...\n});\n```\n\n`vendorBaseUrl` replaces every CDN reference; `dracoDecoderUrl` overrides the DRACO decoder\nlocation independently.\n\n---\n\n## FaceControl — the lower-level contract\n\nIf you're writing a custom backend or a game-engine integration, `FaceControl` is the\nsingle value that flows between a voice pipeline and any avatar backend.\n\n```ts\nimport type { FaceControl, ExpressionState, HeadPose, EyeGaze } from 'talking-head-studio';\n\ntype HeadPose = { yaw: number; pitch: number; roll: number };  // each -1..1\ntype EyeGaze = { x: number; y: number };                       // each -1..1\n\ntype ExpressionState = {\n  jawOpen: number; mouthSmile: number; mouthFunnel: number; mouthPucker: number;\n  mouthWide: number; upperLipRaise: number; lowerLipDepress: number; cheekRaise: number;\n  blinkLeft: number; blinkRight: number; browInnerUp: number;\n  browDownLeft: number; browDownRight: number;\n  eyeGazeLeft: EyeGaze; eyeGazeRight: EyeGaze;\n}; // all weights 0..1 unless noted\n```\n\nDrive it from a viseme schedule:\n\n```ts\nimport { useFaceControlsFromVisemes } from 'talking-head-studio';\n\nconst faceControl = useFaceControlsFromVisemes(schedule); // rAF-sampled FaceControl\n```\n\nOr implement a backend against it:\n\n```ts\nimport type { AvatarBackend, AvatarRenderTarget, FaceControl } from 'talking-head-studio';\n\nclass MyBackend implements AvatarBackend {\n  initialize() {}\n  attach(target: AvatarRenderTarget) {}\n  setControl(control: FaceControl) {}\n  renderFrame() {}\n  dispose() {}\n}\n```\n\n### MorphTargetBackend — the built-in Three.js adapter\n\nThe concrete `AvatarBackend` for GLB-with-morphs. Hand it a loaded scene; it discovers\nmorph targets, builds a lookup cache, and drives them from `FaceControl`.\n\n```ts\nimport { MorphTargetBackend, createNeutralExpression } from 'talking-head-studio';\n\nconst backend = new MorphTargetBackend(gltf.scene, {\n  mood: 'neutral',\n  expressionScale: 1.0,\n  calibration: {\n    neutral: { pose: { yaw: 0, pitch: 0, roll: 0 }, expr: createNeutralExpression() },\n    ranges: { jawOpen: { min: 0, max: 0.85 } }, // clamp jaw for this model\n    gazeLimits: { x: { min: -0.6, max: 0.6 } },\n  },\n});\n\nbackend.setControl(faceControl);\nbackend.renderFrame();\nconsole.log(backend.availableChannels); // what this model actually supports\n```\n\n### ARKit → Oculus remap (no ML, no artist work)\n\n```ts\nimport { remapArkitToOculus, getArkitWeightsForViseme } from 'talking-head-studio';\n\nremapArkitToOculus({ jawOpen: 0.7, mouthLowerDownLeft: 0.4 }); // → { aa: 0.68, oh: 0.12, ... }\ngetArkitWeightsForViseme('ou');                                // → { mouthPucker: 0.9, ... }\n```\n\nThe full `ARKIT_TO_OCULUS` coefficient table is exported for building your own bake pipeline.\n\n---\n\n## Accessories\n\nAny GLB attached to any skeleton bone, placeable at runtime.\n\n```ts\ninterface TalkingHeadAccessory {\n  id: string;\n  url: string;\n  bone: string;                       // 'Head' | 'Spine' | 'RightHand' | ...\n  position: [number, number, number];\n  rotation: [number, number, number]; // Euler, radians\n  scale: number;\n}\n```\n\nCommon Mixamo bones: `Head, Neck, Spine, Spine1, Spine2, LeftHand, RightHand, LeftFoot, RightFoot, Hips`.\nThe 3D editor (`talking-head-studio/editor`, web only) provides a gizmo for live placement.\n\n---\n\n## Subpath exports\n\n| Import | Description |\n|------|-------------|\n| `talking-head-studio` | Avatar component + `FaceControl` contracts + motion constants |\n| `talking-head-studio/contract` | Stable type-only entrypoint — visemes, FaceControl, backends, motion |\n| `talking-head-studio/html` | `buildAvatarHtml()` for self-hosted / custom iframe embedding |\n| `talking-head-studio/wgpu` | React Native WebGPU renderer (`WgpuAvatar`) |\n| `talking-head-studio/editor` | R3F 3D editor with placement gizmo (web only) |\n| `talking-head-studio/appearance` | Material color system for any GLB |\n| `talking-head-studio/voice` | Audio recording + WAV conversion hooks |\n| `talking-head-studio/sketchfab` | Sketchfab search + download hooks |\n| `talking-head-studio/api` | Studio API client (avatar CRUD, voice profiles) |\n| `talking-head-studio/wardrobe` | Accessory + outfit state management |\n\nWorkspace packages (`packages/avatar-creator`, `packages/agent-avatar`) ship an embeddable\ncreator widget and a LiveKit + MCP agent integration.\n\n---\n\n## Roadmap\n\n> **Status legend:** ✅ shipped · 🔜 in progress · 🧪 designed, not yet built\n\n**Shipped today**\n- ✅ `FaceControl` face-control space (pose + expression + gaze) and `AvatarBackend` interface\n- ✅ `MorphTargetBackend` — GLB morph discovery + mood layering\n- ✅ ARKit → Oculus analytical remap with full coefficient table\n- ✅ `AgentVisemePayload` viseme schedule format + `scheduleVisemes` on both renderers\n- ✅ Shared procedural motion engine (web + native WGPU), gestures, poses, animation clips\n- ✅ Self-hosting via `buildAvatarHtml({ vendorBaseUrl })`\n- ✅ `packages/avatar-creator`, `packages/agent-avatar`\n\n**In progress**\n- 🔜 Native (WGPU) gaze bridge (`lookAt`) and mic-reactive listening\n- 🔜 GLB schema walker — report morph coverage, bones, LODs, viseme tier for any model\n\n**Designed, not yet built**\n- 🧪 `GaussianBackend` — Gaussian-splat renderer + FLAME per-viseme delta transfer, so a\n  model with *no* face rig still gets excellent lip-sync. This is the zero-prerequisite path.\n- 🧪 FLAME viseme transfer pipeline (companion backend) — bake Oculus visemes into a GLB\n  that lacks them\n- 🧪 Unity / Unreal SDKs implementing the same `AvatarBackend` contract\n- 🧪 Avatar marketplace + RPM import tooling (`CatalogItem` / `AvatarAsset` types exist;\n  backend and store do not)\n\n---\n\n## Contributing\n\n```bash\ngit clone https://github.com/sitebay/talking-head-studio.git\ncd talking-head-studio\nnpm install\nnpm run typecheck   # must be clean\nnpm test\n```\n\nMonorepo with `packages/*` as npm workspaces; the main library is the root package. The\npublish gate (`prepublishOnly`) runs lint, typecheck, tests, and metadata checks.\n\n---\n\n## Credits & license\n\nBuilt on [met4citizen/TalkingHead](https://github.com/met4citizen/TalkingHead) (rig +\ngestures/poses on the web path) and [Three.js](https://threejs.org). MIT licensed.\n","readmeFilename":"README.md"}