{"_id":"softbox","_rev":"42-1fe586f9b8d99fa986a1617b35b97206","name":"softbox","dist-tags":{"latest":"4.25.1"},"versions":{"4.0.0":{"name":"softbox","version":"4.0.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.0.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"47217f59a897a75b5a5224e38fb54e025dd4d1ea","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.0.0.tgz","fileCount":11,"integrity":"sha512-VuTbEGlRJ8sVx1+azSOg9H2eWIRqV78nh6CqzWXeHt7nfzu2Er1sMtP56I0z7MVW0JEmfPbprThWnJQ/tFhAlw==","signatures":[{"sig":"MEUCIDVB+gHe3O7XtAh/mBHVJ1m+8ZUwqQ8fLJvvZYLhOTh2AiEAt3Y790U5oB2dkh+E1twtga+KNVJZhrr4wW2Lv3IrtOo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1160748},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.9.3","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.0.0_1783353183523_0.522172316807257","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"softbox","version":"4.1.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.1.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"e6bdc1d2b664f535d0c30e8b42c3589672f99e7f","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.1.0.tgz","fileCount":11,"integrity":"sha512-4bY8KTv1nd8p4Xe63DNPvZ8Xyj9UJItFOCKqQeUtvgOZSvbBS7uv93Vq2aDT16dp2TdKh2sjt3TmQE/4P6+4Zw==","signatures":[{"sig":"MEYCIQCaC3OjmnuOYpAEIrKowJUEp6X9saO23jscgfTSB34IvgIhAJ7x8V1CdSIqP2s/W2P8GnuxbwtUtNcnHhvQkGQQTms+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1164251},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"5756ad28b03b0463396fea670e9af62ff8b190f3","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.1.0_1783367349238_0.8527290317892144","host":"s3://npm-registry-packages-npm-production"}},"4.1.1":{"name":"softbox","version":"4.1.1","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.1.1","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"36ee6245d63d364bfc1da9db0deee022552e551f","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.1.1.tgz","fileCount":11,"integrity":"sha512-B4fuz3I5sHAKSGg9HOxp0jebkVVB7XiezvpMnqvsLjB149wDuaBpNfBWJ+yEh5R/5twibz/s4G0XgYjQ41Opdw==","signatures":[{"sig":"MEUCIFqvmqWI2BqPTatMqWcKUseptK8QB5j/aRq9o/Vbws5xAiEA5t4yHoyAWwctAdwgEJudrIO+6a6HrIjZvq8LJqfXUjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1164548},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"3c660e9f334fa1556cfae028e415c12403f85e8a","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.1.1_1783417848791_0.29069114303183397","host":"s3://npm-registry-packages-npm-production"}},"4.1.2":{"name":"softbox","version":"4.1.2","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.1.2","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"c7bb283bc8d9ce66e8141d527679a666357f6e6f","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.1.2.tgz","fileCount":11,"integrity":"sha512-2p+cNEhyWzP3GJa8odH3A6JiV4XLtFBqA8Hv5k551zBUma2QlLwWH5kg5ewVPOfrUmVjxFDVZvSjw9IIzLwaRg==","signatures":[{"sig":"MEQCIGm5HO7s4pOuIVCMxN9OkBNBaui2ePB5K+2uerGNz7/oAiBuF2jWheJjfsEWaUBpkvtqqhHvIwPnP7NpNqe7E3frvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1165516},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"9a3148d4a877e8f20c941cf0e4ee6d378f6d2014","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.1.2_1783418889712_0.18580294063725944","host":"s3://npm-registry-packages-npm-production"}},"4.1.3":{"name":"softbox","version":"4.1.3","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.1.3","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"51f07c48113c31cba3d8eb88dde0e8136e98d73b","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.1.3.tgz","fileCount":11,"integrity":"sha512-yFXN8pVli1Dv2KjKgPRcXVo20scTiyTVGQOPcrGnIF9/w0M4puabdLdOJJLxdB/1AixG52IC+RnTOnYD9pEmmg==","signatures":[{"sig":"MEUCIASdfII3ZFdG/9/drec68y3PX5bn/wXXMrkyW1+qs6NzAiEAzNvmG6FiDdlcmdZLIUoHQ5y+3mV2T19Ap6r8xWiv2xM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1165727},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"db33073f3e8c56324edb3ef074d1c3e864eb3848","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.1.3_1783419489081_0.696558453866682","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"softbox","version":"4.2.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.2.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"3ce433b300a2268111af0e6eb6860af9b5057f97","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.2.0.tgz","fileCount":11,"integrity":"sha512-UKGfLeBhU5n//8xSGE/vfJZ+Juoge9Yl7JL9bOsyBUBu9ziwXKLUbVPLqpJokadjLaNKlQwmWb5jeQ6J67FWrA==","signatures":[{"sig":"MEUCIHU1Cfnbt0Bo03Txrb9GmhVEMerten29rDMcGl4hOW0lAiEA9XqX5jNobq0t5zcgvIQ24aCmWFLI19P/O2WqR8/YvEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1169764},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"81a9fbda0c7dd7f14cc4e61a79e9882bf969a020","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.2.0_1783420649141_0.49323949632565633","host":"s3://npm-registry-packages-npm-production"}},"4.2.1":{"name":"softbox","version":"4.2.1","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.2.1","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"8088bd64411cf2a41100068c2bb8bf124df707c5","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.2.1.tgz","fileCount":11,"integrity":"sha512-LmcU5EMs6Cbf/ycsGOUiToOCG/61OWhRIgOYXJDLdpl/uvQVCa2dRI3Ma+voytWA+YU/aecKjADd9A3l0leLEw==","signatures":[{"sig":"MEYCIQDnRykeUMYQrl1/kHTwwWmGHE9v5P764jTc894AddBahAIhAN1pMkm6+5a+9AQYU4Aq13l81CkJd7krV1Gk1GNBODqq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1171009},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"1bd9588e49d5c9962870bd0cb462304b99d0d6ff","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.2.1_1783421747632_0.6039269456712384","host":"s3://npm-registry-packages-npm-production"}},"4.2.2":{"name":"softbox","version":"4.2.2","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.2.2","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"bc43d03bcd2fbb79a19b812b1c79ac4d7a539a2e","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.2.2.tgz","fileCount":11,"integrity":"sha512-XgnRU1xL3PzQ4vOQ3F2dj2sDzqgApkugGMzwnktksIpexhaQavpOEJ2GGLAxrz8GE86pIfuda8amI6FnK215Pw==","signatures":[{"sig":"MEQCIFjfppGtXB1cz5+ayXtyAacUY4XlgRwHKSVIMqZVTHRPAiBpJy+aUDoEc6DLP6UdKACC+1bi9uzRDKJjXxLiztgHIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1172728},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"613745cd2855758bb56b4b9408032532e2fc91a0","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.2.2_1783434066206_0.8489579452265847","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"softbox","version":"4.3.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.3.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"f5b3cd01be7224a9e80f234572b2852edc432f6c","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.3.0.tgz","fileCount":11,"integrity":"sha512-69NhIRyz8FeKbnJremROel0/Wm47QO2XYQWAVpdfHnFKI6jtSuDH//xEpSZhxCe1IN0WTWIQDoihfzCg9cYpRw==","signatures":[{"sig":"MEUCIGFIv/dlB5S4t6ShosS/2iT9TX0E6TeyrCJ9kvUPLMBWAiEA9Lg1bL0P8uzdxtQyQoEUhqySGr641YL/+8+M3dTL6Gc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1174988},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"f469ca00fe4a9d1a1ae0c4fb264a010776aa81bf","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.3.0_1783435490796_0.9283211612148565","host":"s3://npm-registry-packages-npm-production"}},"4.3.1":{"name":"softbox","version":"4.3.1","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.3.1","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"a8f7196b7e948dceb234aee2c3f38d7c280a5819","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.3.1.tgz","fileCount":11,"integrity":"sha512-sMquukt9o66atFceSRMNmXLJuIHEpiARos7dcACpIR+An2fY2co9zzxye5Klm10cuwX+XgTdpWqIXg3CVZKaYw==","signatures":[{"sig":"MEUCIHMB9T3b4wMOQXTycAXghBFDAbf/0C3R84x+UwuG/y/WAiEAm4IG3AMwRDv8Dc0ro/ywNHvcLWASy0colNvGvuJSQsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1176992},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"79a33a3b76f1466801f971404093b3d51ce86323","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.3.1_1783436765414_0.3069247561637942","host":"s3://npm-registry-packages-npm-production"}},"4.3.2":{"name":"softbox","version":"4.3.2","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.3.2","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"4bf3bebf65248e5b97b014222a656cbc8a7b0682","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.3.2.tgz","fileCount":11,"integrity":"sha512-drW1KkzvKIhEnOFoIuZqufJBvMKlwCnPDEb7rNJRvQFf4n2UfUb2OhGygHoyddAPKzYEvYamdjR8uuWIhvEWJA==","signatures":[{"sig":"MEQCIBXH2uWQbGmFrrJmUmlB6SATa/VoNhndHGYsCYqjvJhYAiAkjB20GES22Eff+t+aXAEF/L0kgxuiTJWB+ome66sQ6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1180673},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"49719ba3de96204e62235c20c46e5b2160ccbb61","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.3.2_1783438566930_0.01795422761121923","host":"s3://npm-registry-packages-npm-production"}},"4.4.0":{"name":"softbox","version":"4.4.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.4.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"9bd89731f98b6f4d50004c6eafa41793f2abf045","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.4.0.tgz","fileCount":11,"integrity":"sha512-ClyPCrax5X9/6YW9DasMmh9kDCKWYFnMUuy2vQ7bTHseYNJBjqp9URLJb8oGvhGPY3yoUm7i8n6jSo0GQHnTyA==","signatures":[{"sig":"MEUCIQC2L+j6Ry7Rkn89ck4ya6Mz3CqO0ffpa1rvQx6DJ3rCOwIgE6KkMM4AV/J0fYjFOTNAJyiK37Ezyh43qOFbRfFY5IA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1182922},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"e796f19e957a23e3ff4ee47f091938230d12413c","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.4.0_1783439765256_0.9297078208965524","host":"s3://npm-registry-packages-npm-production"}},"4.4.1":{"name":"softbox","version":"4.4.1","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.4.1","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"90a2d1fd6bc1e0ed124b7715419137439e1f9b8b","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.4.1.tgz","fileCount":11,"integrity":"sha512-7nvk1FvhD51EQtd5PYbr+SrI/WfAVTVbtCP8yvAnxVeLJByaDYWSkA8YWQIEAVvGa+/HaqCxPdSbdwhYnGCjdw==","signatures":[{"sig":"MEUCIQDmk/8BO8TkH4NhB5UnD2+LAyUyj7BF2saM/bMLyUGf0AIgYWPmmWEKMUI5jYkvM5K3GuIlBHRFRos/kogSf30/5vU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1194500},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"217d5cf795181fa3f7b93c093f480ffc431f1b81","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.4.1_1783444465034_0.9669687987600644","host":"s3://npm-registry-packages-npm-production"}},"4.4.2":{"name":"softbox","version":"4.4.2","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.4.2","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"324fa6804aef3bdadd96b432c402bc1426062355","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.4.2.tgz","fileCount":11,"integrity":"sha512-r7ZKgJHs5VbWyYnswm61L5Uy8BbXtk/+Jevq/cgXG3cVc3WeLvYJcgdGTgDFX/FeicDL3clAGYAxLnj9QoubqA==","signatures":[{"sig":"MEYCIQCR39LAnDsIxodHbMc/5h0mpQCR9o5GXlnrbMMFpGQfHAIhAJWLzRpld5iJkLgLykzBgvox9zMxHrg/IM8bHbBTAOGe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1195400},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"2b8c332eb409cc00ca5d371b6cc725ce68094eb9","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.4.2_1783451779843_0.30516763789106416","host":"s3://npm-registry-packages-npm-production"}},"4.5.0":{"name":"softbox","version":"4.5.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.5.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"5a2d8b684413e6f1e562c90cabd9c6a9db7912c4","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.5.0.tgz","fileCount":11,"integrity":"sha512-DWP91KVE0gNYo4pNewGs1l/0n8gPeyHpJoeOENo7bNcFed9wzQLPdCWdiPil8gDbENFYiF5oEkLG2ZOBfSAdNg==","signatures":[{"sig":"MEUCIQDhjqFy48eL41zm0L2bmChDxB3YBFgwtIPzZMllSQbMLQIgazYMJUggThcLQDXLEo2R4QWFM3tzHFaOo7A57oQz5zI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1202639},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"0d12f50979722efe62dc343fb32ec1fb484d447b","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.5.0_1783459902934_0.3688130347164087","host":"s3://npm-registry-packages-npm-production"}},"4.6.0":{"name":"softbox","version":"4.6.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.6.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"e0362fc3c3e1dec14c3b6576873593c00f21b8b4","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.6.0.tgz","fileCount":11,"integrity":"sha512-Q4NdLlvM/UG5R24CKxedRQKe3hbW196X0S5t1Bh7bw/g2QXnJVgWdoVfnl1F5mpkxDCLf0rG7czH929Z2Q38mQ==","signatures":[{"sig":"MEUCIGh+o+5kpCJeEQs/T1ystL1a3VxspMAhFpfvJEjONYaLAiEA+2F5GdB12tw3MhJp087CXFt+OVY5OWfu5Ufxyh5nIsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1207416},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"c50e6ee97eebd09808021f5880308859c1eff306","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.6.0_1783506742528_0.5017961286436377","host":"s3://npm-registry-packages-npm-production"}},"4.7.0":{"name":"softbox","version":"4.7.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.7.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"b212dc2dbb73e546976a3647cef7d2a0f0d7d256","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.7.0.tgz","fileCount":11,"integrity":"sha512-cmmoPeWWJAg0MMJsfkIB8OJ/amDELh6UkAvJLkqoffEW3VIB+hJQirafldQfrVU39C4yCU5Tc8/CtlL0VukX5w==","signatures":[{"sig":"MEQCIBT1uHPpDeg21Z0BO0YbRjb1fYPD/wHZs8ezUane3/A3AiAP2BIwz4/MIlZEYBHhfp5B9wMbS6EmA1U8c1lAjXv5yQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1208510},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"99b79ced922e438ec83a564406652892a7c937c6","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.7.0_1783519655854_0.9400845311331725","host":"s3://npm-registry-packages-npm-production"}},"4.8.0":{"name":"softbox","version":"4.8.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.8.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"d96243c6b03a3a9079c3d4f9b215f7ea333d1ad7","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.8.0.tgz","fileCount":27,"integrity":"sha512-bvWj/McFQXkv/hu6DmbmhPZc8aK2LljertX6GPrSDRPN45sT6+FRUCD5Vpf8jgAss/LNw2nP0b/b904xFIs7WQ==","signatures":[{"sig":"MEYCIQC0OCviyulJftCi0TcpIQ5otXbumVVDHq0BsWFiUVa5WQIhAImFhCN/6hnaS0ibqg+L39VM/4N1qdJkHVNPJW/+Boda","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1273133},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"eddbf09048bba8ee925696dba26fc7c920c99286","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.8.0_1783549323467_0.3924378574934986","host":"s3://npm-registry-packages-npm-production"}},"4.9.0":{"name":"softbox","version":"4.9.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.9.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"4cb7eb32dad11aae5951edbe51b85916ae8ec0ce","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.9.0.tgz","fileCount":27,"integrity":"sha512-XsHHEn3kf1mJunm6dpF9Yw8tfPPyDalAi8e+VURzItUmvHPe8flljjX1SubnGERanU6LtzbtnEN34FCaQcNIzQ==","signatures":[{"sig":"MEQCIDHNFgu3668c21CuxpTyRVhXJnIb+j4b7RRSWsseUd44AiBAxHDdCzBub78jCPhd2RVKCDOl7Xmi53QpVziIFWim0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1291014},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"23b75596ba2491db864e6eee400c31810f9034c8","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.9.0_1783590745914_0.04243252895944094","host":"s3://npm-registry-packages-npm-production"}},"4.10.0":{"name":"softbox","version":"4.10.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.10.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"70fd9b2e6840bbea9879c67ad1524d02e0dc387a","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.10.0.tgz","fileCount":27,"integrity":"sha512-TPlAVRpfBY3winwxUBtAjjdhHUutUUYShDiVDchtaPNg5gV+ZqYhGg2pe6EDmI7KoUiECA8ALfJzXStqYfh7BA==","signatures":[{"sig":"MEUCIQC+LRQS+KYD/PRrQd9fs4xFE1eNsUsDSZ8a75v+H6inrgIgMFVNCdcyYbHdnYcshDbo9LfsvbpH7h2v4weo5ZEFzHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1292242},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"ed20eb67852322a0de7abb0715bc7ecde755ed00","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.10.0_1783592950004_0.20074304098392237","host":"s3://npm-registry-packages-npm-production"}},"4.10.1":{"name":"softbox","version":"4.10.1","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.10.1","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"f6b334426a891ac928a166661c53bc11983cfb81","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.10.1.tgz","fileCount":27,"integrity":"sha512-7nL8RSfXGMQNgBqxXS/z63N4HaCu9oTYeQU9uctBNMl/3oYUP09oGrsezZeYqYVijnC0FBb4aA4oBh+s6aFp4A==","signatures":[{"sig":"MEUCIEYaQ5cd3VU/YXSAioNcu4Q9uMd5qMLJPOsrOAKMh+MBAiEAieu4nmFjtSh3bgpjUfELcxvNI9vWAeBiIwOJanRnyCQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1286841},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"cbf448a49732e8d2279663959c6836ff74f797b1","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.10.1_1783603334243_0.24681740333708735","host":"s3://npm-registry-packages-npm-production"}},"4.11.0":{"name":"softbox","version":"4.11.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.11.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"280823e68d582c142177f09c177c14a37f155a47","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.11.0.tgz","fileCount":27,"integrity":"sha512-iU40ijPAc3fMNzixpZsTCsB3MxUAA2BIdzYiPce5e1EbA/V4aAAzhHDkp9Saycg0SMib9ZUEvoV+EScikelDSQ==","signatures":[{"sig":"MEUCIQCku940xStaUBrGvxIB9WyXMNiXpNhixzwm19hwAHbhUQIgLryEyOFlLNxlCQCAVSuyGxHjY0h0KGrF+NQxK6K8Z/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1297511},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"b2a527750480059ed1a00e0d1617116e844a7fdc","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.11.0_1783607474029_0.15113375883322466","host":"s3://npm-registry-packages-npm-production"}},"4.12.0":{"name":"softbox","version":"4.12.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.12.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"a03e58fc38448e7547eb8a98de5d9779c85ece10","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.12.0.tgz","fileCount":27,"integrity":"sha512-jLnEOJQF++Nq0WrJVjesTVqvNp5A/Kirf3mSGXfkT88oxsL3Fxc32u2J2/6poqIz/yxAwPhCapN0mTAxdor0SA==","signatures":[{"sig":"MEUCIQD3LJX+/9AEqaUXzAtlc2NT1l7F87MsHXZ4WiQj/HQinAIgAuQ4TB3XiPGgFAM2Exh2OE/0FVkvgsTgzgz10U3SwjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1300678},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"ef3e2e8204c44f791f56d6e272f446841c2c0693","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.12.0_1783673607157_0.25594899725002795","host":"s3://npm-registry-packages-npm-production"}},"4.13.0":{"name":"softbox","version":"4.13.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.13.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"bcac1e2b30201bcc0872d7123ea8c8f3a8169f98","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.13.0.tgz","fileCount":27,"integrity":"sha512-vLQ4RqaeFT3kys2FHV1F1ufKGZsKOZbZbH+OB/1rgIpqSmKOdyC7Bvr6PHEGpdTtKsKkYuQMxaJSb3fg6EKq/g==","signatures":[{"sig":"MEUCIQDel8Inm9kWTmeF/aGDWpWzS3RoZtefu9R7C3SAuNV9mQIgc1KzW+8OHClq3Cg5KqoeWRAP5gGLfrJDRONLYI/3EOQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1305142},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"03931b8c56c4824f925f6fa11cc7f7971f372b8d","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.13.0_1783675852620_0.17776732684297025","host":"s3://npm-registry-packages-npm-production"}},"4.14.0":{"name":"softbox","version":"4.14.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.14.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"34caff7b15e416727cfce8f86362965adc119d25","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.14.0.tgz","fileCount":27,"integrity":"sha512-K8RyTa6pSydfHWhV5bzXeTGamrMzRhERor73L8e9OAoV9h65PnKWZaoxZMeKeT/k7OxiVsBjWoCUZqyD4AReNw==","signatures":[{"sig":"MEYCIQCJ+qOJlNzqbB15z82hFBfJFiNfPXPFTQHQeR83rV49YwIhAIpCqD6TGujj6KYc+UqmEhyL0MA5ZGArrXzz5rzg1VR6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1306004},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"20660b41c3ccd47bf054319e597afbcc1d130eb9","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.14.0_1783677962570_0.764684457960563","host":"s3://npm-registry-packages-npm-production"}},"4.15.0":{"name":"softbox","version":"4.15.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.15.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"6192524aa68211ba3bfacb0d920f1399e8d20d8f","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.15.0.tgz","fileCount":31,"integrity":"sha512-TSz2khJqjz8jApq+j2zCL+BITJkiULNYnsSj2NT98h+6qD2HYC0cFcJFsv5SeSH9naL+Z6pbgRW3OmTHCQRKIg==","signatures":[{"sig":"MEQCICoKHYNsutgQPJOBYIBeGJ7BQUDFAJVe97kzE1V9ZLSDAiAqe5rWwEl6qXgz+2Q0uAbjctbNavLodsSMMBnc38ypUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1313197},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"57f35b37d8700b164a28e85ae9a793f6cf5ce316","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.15.0_1783679704271_0.40234864088581745","host":"s3://npm-registry-packages-npm-production"}},"4.15.1":{"name":"softbox","version":"4.15.1","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.15.1","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"baafc900e99578897a55ef8c2a4c045b5aa9abdd","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.15.1.tgz","fileCount":31,"integrity":"sha512-qm6wHxXnARRmWeNnPfYpB7xrzkKUpXTXahx8qQX/GZHR3rmD2Uui0Z9uUPA5RGXUly+T4DOg/WzbMABf/M6F5g==","signatures":[{"sig":"MEUCIQDC+P5uJg84A8xMqcdVrNscVKgvvzoRRKSf24+JTi+rqAIgC9hfP11+pYEXLWRgGZ7ARD8p2MXz/xn7ukwSrg33w84=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1313602},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"692532121a4bd9037ce2864ccee94b845c7a7017","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.15.1_1783689022376_0.1656167249030165","host":"s3://npm-registry-packages-npm-production"}},"4.15.2":{"name":"softbox","version":"4.15.2","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.15.2","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"179b327fc68bdc3cd73711c9e5d10feeb720634f","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.15.2.tgz","fileCount":31,"integrity":"sha512-+BJ5A4UqijnKLinFVV338zXP1g5aDxarruDS5sHiahtTBEeCNT0zmN8UOh536/tx+AyausVaNIIKKEbOnL2h7A==","signatures":[{"sig":"MEUCIQCiqBVocgQymoiUp6gQ36m2pJJBfNiUuG7NpDvHnvQpnwIgbeKavhYEU1lQx4ZaJ+Ma4K2TXAQBFsPcTf8BF8HIRb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.15.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1313857},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"dc331ffcfd9342791a8631ab523739b72a8e4f3b","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.15.2_1783692037048_0.25467105683040625","host":"s3://npm-registry-packages-npm-production"}},"4.15.3":{"name":"softbox","version":"4.15.3","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.15.3","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"0905461968041f474f52239ac3d457b5ca4bf97d","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.15.3.tgz","fileCount":31,"integrity":"sha512-ptnrRekgtFj6Nai9Zb3QLWlwgq+AVhlbdQ0lpCVW1Cl3PuSoAW7QLuCq3xSpKROWcGKtPui0gE6z1ZyVq6j5kw==","signatures":[{"sig":"MEUCIQDWXDSGcf2SSEniChC063gqX6Dm5ft38bM7lfJUoBuB8AIgMZLKgGXx9noeAv4mGVYXBF1tZIe5/KS35eq5h+8wsWw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.15.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1314590},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"1149ab9ff32218a8e45a5a908448605851aa26ac","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.15.3_1783698581681_0.6061873763889918","host":"s3://npm-registry-packages-npm-production"}},"4.15.4":{"name":"softbox","version":"4.15.4","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.15.4","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"9865d62eb690e1ebfd90e2f90c2cacbac76f36a3","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.15.4.tgz","fileCount":31,"integrity":"sha512-+I2/LYEUkChKyQ3ogewVkW6VW5h5mXj6soUPeYuS14uI2Od1mUfGfyxWv5Kw9PoHDS2kt4UIK9Qod7Woa/KsJQ==","signatures":[{"sig":"MEUCIQDkGcWqUFP5mopEvv6uLtrcHUiyGwbRuKBCBz7IEkGfBgIgYAVOGrXhMb8Cu8I4o3SGrBQI9E2D7/iYtscU1zjsKns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.15.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1316474},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"2fe13df2521204b6a43d15d7c68994569a6dd1d4","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.15.4_1783704575405_0.8183761516234991","host":"s3://npm-registry-packages-npm-production"}},"4.16.0":{"name":"softbox","version":"4.16.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.16.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"c309d6b6f6d66f786bd624dc918de9e81e4e185d","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.16.0.tgz","fileCount":31,"integrity":"sha512-hPDtVX+I+YrgbAzYdOQPq+Sp8uEOWGXv8AImJnIZmSNKnSAk/vPISHLBvXh/t1sjrck8z2g7mJTi1SoquwU8sA==","signatures":[{"sig":"MEUCIQCfZgivW5W4IG8bPsnPAd1WwaEW7UMfdwZ7cjmQR2ce7QIgSdVANxu4T+ehL85o27hQXil87qxNl/0L8mzjekngksE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1320695},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"f9678f781c8922218423ad64addcb7bea03e6422","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.16.0_1783792621798_0.32155939689033697","host":"s3://npm-registry-packages-npm-production"}},"4.16.1":{"name":"softbox","version":"4.16.1","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.16.1","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"4fa4f0c3929c8a812d15134eed20fb44e051f244","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.16.1.tgz","fileCount":31,"integrity":"sha512-VMyP7IA0A3rjhIQW66WTj1lwYazveySH75loUXaHaEDtP61182Qlv6tPOLDwVkB0K9C3SZyCQHabDTp1fZj+Ww==","signatures":[{"sig":"MEUCIQDADKcBUb1uAc2gdK8WXoVZNFxbAfKwuIRhKz2ODBdnRgIgf3rJCzDXlfkTb0sNndSdVwlpcuFMEhWQbZBhWPXz7Ko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.16.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1322790},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"cb5716c1a363c475c3995c4e2d8b6fde4d1f80f7","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.16.1_1783843334332_0.30591829188156305","host":"s3://npm-registry-packages-npm-production"}},"4.17.0":{"name":"softbox","version":"4.17.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer"],"license":"MIT","_id":"softbox@4.17.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"0908e4fbe901ad8853c4365177e589cae837c1f8","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.17.0.tgz","fileCount":31,"integrity":"sha512-tsYn5smjTbUMvWb6UzL1G7P7/mMpFXG++LD7B0PalnGP6zn+WBgeqh0sKBDyumFHjz7xjBqgClLKT93NZzNj1A==","signatures":[{"sig":"MEQCIAbqN/2bzeMjUHeGoJ/CAB1DOXSM1HxNLXRA1qPE+b0yAiBPIzPjDYDnDM4L7YW+gFLo+N9vtjSSlsB8o5MlbrA2/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1326478},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"14f7de37b0998a7d6d90beb5e85b02333da9e910","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.8.2","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^6.23.0","vite":"^6.3.5","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^9.30.1","ts-jest":"^29.2.4","react-dom":"^19.0.0","@eslint/js":"^9.30.1","typescript":"^5.5.3","@types/jest":"^29.5.12","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"0.185.0","three-mesh-bvh":"^0.9.9","vite-plugin-dts":"^4.0.3","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.35.1","@vitejs/plugin-react":"^4.3.1","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.17.0_1783852692639_0.6478659985889943","host":"s3://npm-registry-packages-npm-production"}},"4.18.0":{"name":"softbox","version":"4.18.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer","webgl","model-viewer","path-tracing","turntable"],"license":"MIT","_id":"softbox@4.18.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"46321e23dd6e996de93651db7d5e5ed60b77b995","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.18.0.tgz","fileCount":31,"integrity":"sha512-PbNpkASVHICYnvLWmpNZrRciolytb2e+xMoCyYe/4cUG89n3GSy4NgfqpuTiIbl3Zz+3yWH0ceNwuMoe4dGqnQ==","signatures":[{"sig":"MEQCIFd4AJJAyt1wWH/Hl2Ywh36Jc+kwbcSRYdzJF+n7hlIyAiBd0w3QhgldQ4P4k2NMQlxqn6SMZwXmIUx/XkBHjxw1XQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1205648},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=22.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"a9195fff6f71ffe1811827d9a801600cc7c6b5a3","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"overrides":{"@babel/plugin-transform-runtime":"^7.28.0"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.9.8","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.26.0","vite":"^8.1.4","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^10.7.0","ts-jest":"^29.4.11","react-dom":"^19.0.0","@eslint/js":"^10.0.1","typescript":"^5.5.3","@types/jest":"^30.0.0","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"^0.185.1","unplugin-dts":"^1.0.3","three-mesh-bvh":"^0.9.11","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.63.0","@vitejs/plugin-react":"^6.0.3","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.5","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^30.4.1","@microsoft/api-extractor":"^7.58.9","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.18.0_1783880318921_0.41198781862915834","host":"s3://npm-registry-packages-npm-production"}},"4.19.0":{"name":"softbox","version":"4.19.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer","webgl","model-viewer","path-tracing","turntable"],"license":"MIT","_id":"softbox@4.19.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"bebbc5792b62b562a7d0f10fe3a4e170320aa29e","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.19.0.tgz","fileCount":31,"integrity":"sha512-QAWi67qNkjcHhieRDqZ7+FGFeJB+POAuehDsqSFETi82pQGJkGNWXZrsKaAn7N5W4u2i17rEoEmOVXFquLPRiA==","signatures":[{"sig":"MEUCIEVKdyJYPe8qw/Ha1MQH+VIl50877wZGGPXcDn4vEY5tAiEAhZB19/vbRk5FOSe/22JrXA5RVM64QCzGt0QLeDR1JdY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1211619},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=22.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"7d25cc9e92833dc07240a6a98e3f3a28bc0621a8","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.9.8","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"sideEffects":["./dist/simple-viewer.es.js","./dist/simple-viewer.cjs"],"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.26.0","vite":"^8.1.4","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^10.7.0","ts-jest":"^29.4.11","react-dom":"^19.0.0","@eslint/js":"^10.0.1","typescript":"^5.5.3","@types/jest":"^30.0.0","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"^0.185.1","unplugin-dts":"^1.0.3","three-mesh-bvh":"^0.9.11","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.63.0","@vitejs/plugin-react":"^6.0.3","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.5","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^30.4.1","@microsoft/api-extractor":"^7.58.9","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.19.0_1783928204541_0.056837713176727034","host":"s3://npm-registry-packages-npm-production"}},"4.20.0":{"name":"softbox","version":"4.20.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer","webgl","model-viewer","path-tracing","turntable"],"license":"MIT","_id":"softbox@4.20.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"284cb6fabaa0c85dcb2286543c86a1fb6180a51a","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.20.0.tgz","fileCount":31,"integrity":"sha512-apy6VHH4whH0+6cADAo0WoeOQy833mh7DTCt+RTer0s//OhZZp9GH5olixnr3QTudvVsQ75adXFkHEjutEnBlA==","signatures":[{"sig":"MEQCIE/lGLieBxSGJWazW7ece+euxHfjJQJM159gNZy+RCFAAiBbrlJjkFPnCQJ5nVCMfhV6l0NV2g0L3DEawbi3BUT2OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1219561},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=22.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"631208d9b5e14a9404403895b3c5481894334290","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.9.8","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"sideEffects":["./dist/simple-viewer.es.js","./dist/simple-viewer.cjs"],"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.26.0","vite":"^8.1.4","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^10.7.0","ts-jest":"^29.4.11","react-dom":"^19.0.0","@eslint/js":"^10.0.1","typescript":"^5.5.3","@types/jest":"^30.0.0","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"^0.185.1","unplugin-dts":"^1.0.3","three-mesh-bvh":"^0.9.11","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.63.0","@vitejs/plugin-react":"^6.0.3","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.5","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^30.4.1","@microsoft/api-extractor":"^7.58.9","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.20.0_1783935797055_0.223321027349064","host":"s3://npm-registry-packages-npm-production"}},"4.21.0":{"name":"softbox","version":"4.21.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer","webgl","model-viewer","path-tracing","turntable"],"license":"MIT","_id":"softbox@4.21.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"05f3370bc368b7d3e0c2ad90bebff81f9d0d4fd7","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.21.0.tgz","fileCount":31,"integrity":"sha512-2cMtIZw48mY8yoogKNz03Yy/Wy56ImFRG0iVtVCxZKHtrRQdcsT4ENOWiq8JXBoGG3EQ+bEnM89/PpS1LHHvSQ==","signatures":[{"sig":"MEYCIQDN0UkmOxPgSNRPiyNuSKIGG3/9YOucdMFU9eFciP0EjQIhALSZu7qyK9yfwcMhIlsAVDxwpkVZ+o/xdClsyZjxsIv7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1219931},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=22.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"7430e1b9058f25970c66a4c4ccc4148ddf7257ed","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.9.8","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"sideEffects":["./dist/simple-viewer.es.js","./dist/simple-viewer.cjs"],"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.26.0","vite":"^8.1.4","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^10.7.0","ts-jest":"^29.4.11","react-dom":"^19.0.0","@eslint/js":"^10.0.1","typescript":"^5.5.3","@types/jest":"^30.0.0","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"^0.185.1","unplugin-dts":"^1.0.3","three-mesh-bvh":"^0.9.11","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.63.0","@vitejs/plugin-react":"^6.0.3","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.5","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^30.4.1","@microsoft/api-extractor":"^7.58.9","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.21.0_1783939469703_0.9439789123617837","host":"s3://npm-registry-packages-npm-production"}},"4.22.0":{"name":"softbox","version":"4.22.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer","webgl","model-viewer","path-tracing","turntable"],"license":"MIT","_id":"softbox@4.22.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"c05b45eca91b22cd99bd881f0623c2b500a33b99","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.22.0.tgz","fileCount":31,"integrity":"sha512-g116EhKIr7i4Fj9EgsfR3UadjLemZrU2qdTwUvG/G0TrQv/KNRVNG47cwcWOvWUnJPOgtGXmjQ9+bX8YazM5qg==","signatures":[{"sig":"MEUCICaB9sAjNyZQILcvE/4oX7kKWOYFNGY5AYkr0yW3yvDjAiEAyKgaNzRm2iY1LZrLdaPpoGFrt0Ubm4vhkKLh7CV0uHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1250071},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=22.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"bd954f89d60ca4c01117837f07a014edf2cd7d1e","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.9.8","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"sideEffects":["./dist/simple-viewer.es.js","./dist/simple-viewer.cjs"],"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.26.0","vite":"^8.1.4","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^10.7.0","ts-jest":"^29.4.11","react-dom":"^19.0.0","@eslint/js":"^10.0.1","typescript":"^5.5.3","@types/jest":"^30.0.0","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"^0.185.1","unplugin-dts":"^1.0.3","three-mesh-bvh":"^0.9.11","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.63.0","@vitejs/plugin-react":"^6.0.3","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.5","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^30.4.1","@microsoft/api-extractor":"^7.58.9","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.22.0_1783961958287_0.35709233951624975","host":"s3://npm-registry-packages-npm-production"}},"4.23.0":{"name":"softbox","version":"4.23.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer","webgl","model-viewer","path-tracing","turntable"],"license":"MIT","_id":"softbox@4.23.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"b0bb8e7dc4a1c619d3b179de43779ab074b7acda","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.23.0.tgz","fileCount":31,"integrity":"sha512-sUXejOhRe7A81xs8FB4kBMTmuxALiYuz3fujpusu4S3TmLXu04XUZlZnXKHPD3H3WiRXnrahO3YFdiQA9qv5vA==","signatures":[{"sig":"MEUCIHdcOGimStbQFiqVMoLKllduNfuLShteEQmmLbqfmEVIAiEAqbYHezT/AX8xluF14hAdLkU0uDBHNUr/Xub9OKQ+vAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1259946},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=22.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"5054a3cdb142a6bc243356b008e324a3f06028c6","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.9.8","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"sideEffects":["./dist/simple-viewer.es.js","./dist/simple-viewer.cjs"],"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.26.0","vite":"^8.1.4","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^10.7.0","ts-jest":"^29.4.11","react-dom":"^19.0.0","@eslint/js":"^10.0.1","typescript":"^5.5.3","@types/jest":"^30.0.0","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"^0.185.1","unplugin-dts":"^1.0.3","three-mesh-bvh":"^0.9.11","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.63.0","@vitejs/plugin-react":"^6.0.3","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.5","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^30.4.1","@microsoft/api-extractor":"^7.58.9","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.23.0_1783970032687_0.7346654138988249","host":"s3://npm-registry-packages-npm-production"}},"4.24.0":{"name":"softbox","version":"4.24.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer","webgl","model-viewer","path-tracing","turntable"],"license":"MIT","_id":"softbox@4.24.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"53e931d0943e2854c1322db04e5ebbc4163e613d","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.24.0.tgz","fileCount":31,"integrity":"sha512-PwbOxP/VtxuzKlHQ2k+jM9AJnbsSm1AUgKYkDEQh/1cj6zoGGSR1nQlNw1VFnkaG74/6hEotfo5amkFQMMRgmA==","signatures":[{"sig":"MEUCIQDzQ+HDZsWjIpA7iOlqWOhlAHXrB9ZMc85Uk6+ZcrEM9wIgaVxEIf1BHIw3uM5EmZL3VqJxFtzDRarwwjm7D/PKeMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1270480},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=22.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"4a3e8bb385dc9450fa0cffeec32af7bb2859a281","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.9.8","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"sideEffects":["./dist/simple-viewer.es.js","./dist/simple-viewer.cjs"],"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.26.0","vite":"^8.1.4","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^10.7.0","ts-jest":"^29.4.11","react-dom":"^19.0.0","@eslint/js":"^10.0.1","typescript":"^5.5.3","@types/jest":"^30.0.0","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"^0.185.1","unplugin-dts":"^1.0.3","three-mesh-bvh":"^0.9.11","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.63.0","@vitejs/plugin-react":"^6.0.3","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.5","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^30.4.1","@microsoft/api-extractor":"^7.58.9","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.24.0_1784017151272_0.8502761279462967","host":"s3://npm-registry-packages-npm-production"}},"4.25.0":{"name":"softbox","version":"4.25.0","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer","webgl","model-viewer","path-tracing","turntable"],"license":"MIT","_id":"softbox@4.25.0","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"homepage":"https://leming.github.io/softbox/","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"2d90598634e175af75ea24583db3459042211d9a","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.25.0.tgz","fileCount":31,"integrity":"sha512-NH4Qh+nq+9Bnu39McpgiEJHiR2N1BrtAr9horwoNRZPvQZKKIzFPLd3oFuAqynKd42UgM57TsxW4e0FoijIjSg==","signatures":[{"sig":"MEQCIHa+IbF63csjt2RosIICWeJ+Jqy5y4tOmhW4olF7nGsMAiA8BaL8VjmKLcr9uAo0ue7VshgHTFS2dnwZ6MSQoFDYSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1274337},"main":"dist/simple-viewer.cjs","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=22.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"8991bbcbad532ba7419615a17d4cc21cd76244ca","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.9.8","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"sideEffects":["./dist/simple-viewer.es.js","./dist/simple-viewer.cjs"],"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.26.0","vite":"^8.1.4","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^10.7.0","ts-jest":"^29.4.11","react-dom":"^19.0.0","@eslint/js":"^10.0.1","typescript":"^5.5.3","@types/jest":"^30.0.0","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"^0.185.1","unplugin-dts":"^1.0.3","three-mesh-bvh":"^0.9.11","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","typescript-eslint":"^8.63.0","@vitejs/plugin-react":"^6.0.3","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.5","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^30.4.1","@microsoft/api-extractor":"^7.58.9","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/softbox_4.25.0_1784017622301_0.5745125968207976","host":"s3://npm-registry-packages-npm-production"}},"4.25.1":{"_id":"softbox@4.25.1","bugs":{"url":"https://github.com/LEMing/softbox/issues"},"dist":{"shasum":"3ff275ca93ebecbc331ce925bdabbf9d2ce9b212","tarball":"https://registry.npmjs.org/softbox/-/softbox-4.25.1.tgz","fileCount":31,"integrity":"sha512-dPAYUqA9owzx4wsqCzF3NbAgLc5FvgKUB954eHGawKiLwCxjQLN9LNTTE10gV3lHMPJBOlvYS82XWu+uWDosbA==","signatures":[{"sig":"MEUCIQDwxIXcMQOAlfe4bEP321wBR3C8BaUXddcVLjk3bVkbGwIgde34bHDIy9WtQAt6DyxLldufAhrciYn6KpbvUPRAAIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHqqLTxHw6CCAW7Gif3hn8evUgmXxeJEKNESTpETJhGkAiBxghXk/NMuF8nVMe2u1W78JOIocATHlPRaoJKKrNW97w=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/softbox@4.25.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1275904},"main":"dist/simple-viewer.cjs","name":"softbox","type":"module","types":"dist/index.d.ts","module":"dist/simple-viewer.es.js","engines":{"node":">=22.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/simple-viewer.es.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/simple-viewer.cjs"}},"./package.json":"./package.json"},"gitHead":"40222a038bb63eea2844581414b9b60b50e5ba7e","license":"MIT","private":false,"scripts":{"dev":"vite","attw":"attw --pack .","knip":"knip","lint":"eslint 'src/**/*.{ts,tsx}' --max-warnings 0","test":"jest --runInBand","build":"NODE_ENV=production tsc --noEmit && vite build","smoke":"node scripts/smoke.mjs","preview":"vite preview","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","postbuild":"node scripts/copy-cjs-types.mjs","typecheck":"tsc --noEmit","build:site":"vite build --config vite.site.config.ts","type-smoke":"node scripts/type-smoke.mjs","postpublish":"echo 'Published successfully!'","test:render":"playwright test","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test && npm run smoke && npm run type-smoke && npm run attw","typecheck:smoke":"tsc -p tsconfig.smoke.json","typecheck:examples":"tsc -p tsconfig.examples.json"},"version":"4.25.1","_npmUser":{"name":"muhmundr","email":"muhmundr@gmail.com"},"homepage":"https://leming.github.io/softbox/","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer","webgl","model-viewer","path-tracing","turntable"],"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"_npmVersion":"10.9.8","description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","directories":{},"maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"sideEffects":["./dist/simple-viewer.es.js","./dist/simple-viewer.cjs"],"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.26.0","vite":"^8.1.4","pngjs":"^7.0.0","react":"^19.0.0","three":"^0.185.1","eslint":"^10.7.0","ts-jest":"^29.4.11","react-dom":"^19.0.0","@eslint/js":"^10.0.1","typescript":"^5.5.3","@types/jest":"^30.0.0","tailwindcss":"^4.3.2","threedgizmo":"^1.2.1","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@types/three":"^0.185.1","unplugin-dts":"^1.0.3","three-mesh-bvh":"^0.9.11","@playwright/test":"^1.61.1","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.3.2","typescript-eslint":"^8.63.0","@vitejs/plugin-react":"^6.0.3","three-gpu-pathtracer":"^0.0.23","@arethetypeswrong/cli":"^0.18.5","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^30.4.1","@microsoft/api-extractor":"^7.58.9","@testing-library/jest-dom":"^6.4.8","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":">=18.0.0 <20.0.0","three":">=0.177.0 <0.186.0","react-dom":">=18.0.0 <20.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/softbox_4.25.1_1790269959401_0.4696067228407339"}}},"time":{"created":"2026-07-06T15:53:03.339Z","modified":"2026-09-24T17:12:39.834Z","4.0.0":"2026-07-06T15:53:03.692Z","4.1.0":"2026-07-06T19:49:09.417Z","4.1.1":"2026-07-07T09:50:48.979Z","4.1.2":"2026-07-07T10:08:09.934Z","4.1.3":"2026-07-07T10:18:09.290Z","4.2.0":"2026-07-07T10:37:29.316Z","4.2.1":"2026-07-07T10:55:47.787Z","4.2.2":"2026-07-07T14:21:06.417Z","4.3.0":"2026-07-07T14:44:50.947Z","4.3.1":"2026-07-07T15:06:05.644Z","4.3.2":"2026-07-07T15:36:07.091Z","4.4.0":"2026-07-07T15:56:05.411Z","4.4.1":"2026-07-07T17:14:25.259Z","4.4.2":"2026-07-07T19:16:19.989Z","4.5.0":"2026-07-07T21:31:43.076Z","4.6.0":"2026-07-08T10:32:22.699Z","4.7.0":"2026-07-08T14:07:36.035Z","4.8.0":"2026-07-08T22:22:03.687Z","4.9.0":"2026-07-09T09:52:26.095Z","4.10.0":"2026-07-09T10:29:10.215Z","4.10.1":"2026-07-09T13:22:14.480Z","4.11.0":"2026-07-09T14:31:14.209Z","4.12.0":"2026-07-10T08:53:27.342Z","4.13.0":"2026-07-10T09:30:52.778Z","4.14.0":"2026-07-10T10:06:02.713Z","4.15.0":"2026-07-10T10:35:04.450Z","4.15.1":"2026-07-10T13:10:22.589Z","4.15.2":"2026-07-10T14:00:37.269Z","4.15.3":"2026-07-10T15:49:41.920Z","4.15.4":"2026-07-10T17:29:35.582Z","4.16.0":"2026-07-11T17:57:02.040Z","4.16.1":"2026-07-12T08:02:14.511Z","4.17.0":"2026-07-12T10:38:12.807Z","4.18.0":"2026-07-12T18:18:39.137Z","4.19.0":"2026-07-13T07:36:44.735Z","4.20.0":"2026-07-13T09:43:17.201Z","4.21.0":"2026-07-13T10:44:29.884Z","4.22.0":"2026-07-13T16:59:18.431Z","4.23.0":"2026-07-13T19:13:52.867Z","4.24.0":"2026-07-14T08:19:11.410Z","4.25.0":"2026-07-14T08:27:02.492Z","4.25.1":"2026-09-24T17:12:39.491Z"},"bugs":{"url":"https://github.com/LEMing/softbox/issues"},"license":"MIT","homepage":"https://leming.github.io/softbox/","keywords":["3d","three.js","react","viewer","glb","gltf","product viewer","webgl","model-viewer","path-tracing","turntable"],"repository":{"url":"git+https://github.com/LEMing/softbox.git","type":"git"},"description":"Batteries-included React 3D viewer — any GLB looks studio-shot in one line","maintainers":[{"name":"muhmundr","email":"muhmundr@gmail.com"}],"readme":"# softbox\n\n<!-- The size badges are static (bundlephobia/bundlejs both mismeasure this\n     multi-chunk package: they bundle `three`, our peer dep, or read the tiny\n     re-export entry). Refresh the numbers from our own build after a release\n     that changes the bundle:\n       npm run build && for f in dist/simple-viewer.es.js dist/ContactShadowBaker-*.js dist/ThreePathTracingService-*.js; do\n         b=$(gzip -c \"$f\" | wc -c); awk -v b=\"$b\" -v n=\"$f\" 'BEGIN{printf \"%s %.1f kB gzip\\n\", n, b/1000}'; done\n     core = simple-viewer.es.js + ContactShadowBaker-* (the entry statically\n     imports that shared chunk, so both load eagerly);\n     ThreePathTracingService-* = the lazy path-tracer chunk. -->\n[![npm version](https://img.shields.io/npm/v/softbox)](https://www.npmjs.com/package/softbox)\n[![core size](https://img.shields.io/badge/core-102%20kB%20gzip-blue)](https://bundlephobia.com/package/softbox)\n[![path tracer chunk](https://img.shields.io/badge/%2B%20path%20tracer-49%20kB%20gzip-lightgrey)](https://bundlephobia.com/package/softbox)\n[![CI](https://github.com/LEMing/softbox/actions/workflows/ci.yml/badge.svg)](https://github.com/LEMing/softbox/actions/workflows/ci.yml)\n[![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/LEMing/softbox/blob/main/LICENSE)\n\n**The batteries-included React 3D viewer — any GLB looks studio-shot in one line.**\n\n> Formerly published as [`threedviewer`](https://www.npmjs.com/package/threedviewer) — renamed in 4.0.0, same API. See [MIGRATION_GUIDE.md](MIGRATION_GUIDE.md).\n\n```tsx\n<SimpleViewer object=\"/model.glb\" />\n```\n\nBalanced studio lighting, a baked soft contact shadow that grounds the model, auto-framing, compressed-asset decoders — all on by default, zero configuration (the real-scale concrete paver floor is [one option away](#configuration)). Lighting needs zero network requests (the studio environment is procedural); the DRACO/KTX2 decoder wasm is fetched only when a model actually uses that compression, from a CDN by default or [self-hosted](#loaders) for offline use. The core is ~102 kB gzip; the path tracer lives in a lazy chunk that loads only when enabled. Every release is gated by 790+ unit tests plus a Playwright suite that asserts **real WebGL pixels** in CI.\n\n[![softbox playground](https://raw.githubusercontent.com/LEMing/softbox/main/public/og-image.jpg)](https://leming.github.io/softbox/)\n\n**▶ [Live playground](https://leming.github.io/softbox/)** — drag & drop your own `.glb`, switch presets live, click the model to pin hotspots, download a still.\n\n## What you get\n\n- **[Visual presets](#visual-presets)** — `studio · product · neutral · dark · outdoor`, one word, switched live\n- **[Scenes](#scenes)** — `studio_dome · studio_soft · outdoor_concrete`, one word picks the set the model stands in\n- **[Turntable](#turntable)** — one-word showcase auto-rotate that pauses while the user drags\n- **[Animations](#animations)** — GLTF clips autoplay with one word; play/pause/clip-picker API\n- **[Material variants](#material-variants)** — KHR_materials_variants colorways, switched live with one option\n- **[AR](#ar)** — one option hands the model to AR Quick Look (iOS) / Scene Viewer (Android)\n- **[Poster](#poster)** — an image is the instant first paint; the live model dissolves in when ready\n- **[Photoreal mode](#photoreal-mode--stills)** — progressive path tracing + `captureStill()` PNG export\n- **[Video capture](#video-capture)** — `captureVideo()` records the canvas to WebM/MP4, zero dependencies\n- **[Hotspots & click selection](#hotspot-annotations--click-selection)** — DOM pins on world-space points, BVH-accelerated picking\n- **Compressed assets** — DRACO, KTX2/Basis and Meshopt decoders wired in, fetched lazily\n- **Built-in chrome** — loading overlay, preset picker, viewport gizmo — all optional, all off-or-subtle by default\n- **Typed end to end** — every option, event payload and handle method ships TypeScript types\n\n## Install\n\n```bash\nnpm install softbox\n```\n\nPeer dependencies: `react` / `react-dom` `>=18 <20`, `three` `>=0.177 <0.186`.\n\n## Quick start\n\n```tsx\nimport { SimpleViewer } from 'softbox';\n\nfunction App() {\n  return (\n    <div style={{ width: '100%', height: '400px' }}>\n      <SimpleViewer object=\"https://modelviewer.dev/shared-assets/models/RobotExpressive.glb\" />\n    </div>\n  );\n}\n```\n\nA `THREE.Object3D` works too:\n\n```tsx\n<SimpleViewer object={new THREE.Mesh(geometry, material)} />\n```\n\n## Visual presets\n\nOne word sets a cohesive look — background, tone mapping, environment intensity. Presets switch **live**: no rebuild, no model reload.\n\n```tsx\n<SimpleViewer object={url} preset=\"product\" />\n// studio | product | neutral | dark | outdoor\n```\n\nLet your users switch presets with the built-in picker (off by default):\n\n```tsx\n<SimpleViewer object={url} options={{ ui: { presets: true } }} />\n```\n\n## Scenes\n\nPresets grade the picture; **scenes** choose the set. `options.scene` selects\nthe physical set the model stands in — the floor, the backdrop and how the\nbuilt-in studio environment is built. Unlike presets, a scene is structural:\nswitching one rebuilds the viewer.\n\n```tsx\n<SimpleViewer object={url} options={{ scene: 'outdoor_concrete' }} />\n// studio_dome (default) | studio_soft | outdoor_concrete\n```\n\n- `studio_dome` — the default set: shadow-catcher floor, baked soft contact\n  shadow and a crisp, contrast-pushed studio light with distinct highlights.\n- `studio_soft` — the same set lit softly: an even, low-contrast wraparound\n  light that flatters matte materials and softens speculars.\n- `outdoor_concrete` — open air: a daylight HDRI lights the model and paints\n  the sky (ground-projected, so the model stands *in* the world), on a large\n  photographic PBR concrete ground rendered with untiled sampling — no\n  visible texture repetition at any distance. The HDRI and concrete maps\n  (CC0, [Poly Haven](https://polyhaven.com/), ~6 MB total on first view)\n  come from their CDN by default; override or self-host via\n  `environment.url` and `helpers.grid.styleOptions`, like the\n  [decoder paths](#loaders). Offline, the ground falls back to a built-in\n  procedural concrete and the lighting to the studio environment.\n\nScenes compose with presets — `scene` picks the set, `preset` grades it, and\nany explicit option you pass overrides both.\n\n## Material variants\n\nModels that carry [KHR_materials_variants](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_variants)\n(product colorways baked into one GLB) switch **live** — no rebuild, no\nreload:\n\n```tsx\n<SimpleViewer object={url} options={{ variant: 'beach' }} />\n```\n\nEnumerate and switch imperatively via the handle:\n\n```tsx\nviewerRef.current.getVariantNames();   // e.g. ['midnight', 'beach', 'street']\nviewerRef.current.setVariant('street');\nviewerRef.current.setVariant(null);    // back to the authored materials\n```\n\nSemantics worth knowing: `variant: null` is the declarative reset, while\n*leaving the option out* is \"uncontrolled\" — an imperative `setVariant()`\npick survives unrelated option changes. Variant materials materialize in\nthe background right after load (first paint never waits for colorways\nnobody opened); an early pick is applied the moment they're ready.\n\n## AR\n\nOne option puts an **AR** button over the canvas that opens the model in the\nplatform's native AR viewer — no WebXR session, no extra bundle:\n\n```tsx\n<SimpleViewer object={url} options={{ ar: true }} />\n\n// iOS AR Quick Look cannot read GLB — give it the USDZ counterpart:\n<SimpleViewer object={url} options={{ ar: { iosSrc: '/shoe.usdz', title: 'Runner' } }} />\n```\n\n- **Android** → Scene Viewer, straight from the model's own URL (`ar: true`\n  is enough). The model must be loaded from an **https** URL — a dropped\n  `blob:` file has no address a native app could fetch, and Scene Viewer\n  refuses plain http. Imperative `loadModel()` swaps are tracked — the\n  button always hands off the model that is on stage.\n- **iOS** → AR Quick Look, from `iosSrc` (USDZ).\n- **Desktop / unsupported** → the button simply never renders, so setting\n  `ar` unconditionally is safe. On an Android-UA device that turns out to\n  have no AR component (Quest, TV boxes), the failed handoff bounces back\n  reload-free and the button retires itself.\n\n`placement` picks the corner (`bottom-left` by default; it lifts above the\nbuilt-in preset picker on its own). UI-only: toggling `ar` never rebuilds\nthe viewer or reloads the model.\n\n## Poster\n\nA poster image is the viewer's **instant first paint** — shown until the\nmodel's first painted frame, then dissolved into the live scene:\n\n```tsx\n<SimpleViewer object={url} options={{ poster: '/hero.webp', loading: 'lazy' }} />\n```\n\nWith `loading: 'lazy'` the combination is LCP-friendly: the page paints the\nposter immediately with zero WebGL work, and the real viewer boots only\nwhen scrolled into view. Generate posters with `handle.captureStill()` —\nsame studio look, pixel-identical to what the live viewer will show. While\nopaque, the poster catches input (nothing invisible underneath can be\ntapped). If the load fails, the poster stays up as the backdrop under the\nbuilt-in error overlay — with `loadingIndicator: false` it steps aside\ninstead, so a dead load never masquerades as a frozen hero image.\n\n## Turntable\n\nOne word puts the model on a slowly rotating showcase turntable. It pauses while the user drags and resumes on release; toggling is live, like presets.\n\n```tsx\n<SimpleViewer object={url} turntable />\n// speed: options.controls.autoRotateSpeed (2 ≈ one orbit / 30 s)\n```\n\n## Animations\n\nOne word plays everything the GLTF carries — all clips, looped, from the moment the model loads.\n\n```tsx\n<SimpleViewer object={url} animations />\n```\n\nPick one clip, tune the speed, or build your own play/pause UI via the handle:\n\n```tsx\n<SimpleViewer object={url} options={{ animations: { autoplay: 'Walk', speed: 1.5 } }} />\n\nviewerRef.current.getAnimationNames(); // ['Walk', 'Idle', ...]\nviewerRef.current.pauseAnimations();\nviewerRef.current.playAnimations('Idle');\n```\n\nTurntable and animations compose — a spinning, walking robot is two words.\n\n## Photoreal mode & stills\n\n```tsx\n<SimpleViewer object={url} pathTraced />\n```\n\n`pathTraced` turns on interactive progressive path tracing: the frame converges whenever the camera rests, and orbiting shows plain raster frames until the camera settles again — then a fresh accumulation starts from the new viewpoint. It works with every preset, including the default procedural studio. Capture a PNG programmatically — in raster mode at any resolution, in path-traced mode once the accumulation completes:\n\n```tsx\nconst handle = viewerRef.current;\nconst dataUrl = await handle.captureStill({ width: 1920 }); // PNG data URL\n```\n\n## Video capture\n\nRecord the live canvas into a clip — no dependencies, straight through `MediaRecorder` (WebM in Chromium/Firefox, MP4 in Safari). Motion is captured as it happens, so `turntable` + `captureVideo` is a ready-made product-card orbit:\n\n```tsx\n<SimpleViewer ref={viewerRef} object={url} turntable />\n\nconst blob = await viewerRef.current.captureVideo({ duration: 5 }); // Blob\n// also: fps, mimeType, videoBitsPerSecond\n```\n\n## Hotspot annotations & click selection\n\nPin DOM content to a world-space point — it tracks orbiting, zooming and resizes:\n\n```tsx\nimport { SimpleViewer, Hotspot } from 'softbox';\n\n<SimpleViewer object=\"/model.glb\">\n  <Hotspot position={[0, 1.2, 0]}>\n    <div className=\"pin\">Engine</div>\n  </Hotspot>\n  <Hotspot position={[0.4, 0.2, 0.8]} occlude /> {/* hidden when the model covers it */}\n</SimpleViewer>\n```\n\nWithout children a built-in dot pin is rendered. `occlude` hides the hotspot while the model blocks the line of sight to its anchor.\n\nA click on the model (drags and pinches are ignored) emits `object:selected` with the hit object and world-space point — feed it straight into a `<Hotspot>`:\n\n```tsx\nhandle.events.on('object:selected', ({ object, point }) => {\n  addPin([point.x, point.y, point.z]);\n});\n```\n\nRaycasts are BVH-accelerated per loaded model (logarithmic on high-poly meshes); opt out with `options.selection = { bvh: false }`.\n\n## Events\n\nSubscribe through the imperative handle:\n\n```tsx\nconst { events } = viewerRef.current;\nevents.on('model:loaded', ({ model, loadTime }) => console.log('loaded in', loadTime, 'ms'));\n```\n\n| Event | Fires |\n|---|---|\n| `model:loading` / `model:loaded` / `model:error` | around every model load |\n| `render:complete` | after each rendered frame |\n| `pathtracing:complete` | once the sample cap is reached |\n| `controls:change` | when the camera controls move |\n| `object:selected` | when a click hits the loaded model (`{ object, point }`) |\n| `error` | any viewer error |\n\n## Imperative handle\n\n```tsx\nconst viewerRef = useRef<SimpleViewerHandle>(null);\n<SimpleViewer ref={viewerRef} object={url} />\n```\n\nThe handle exposes `scene`, `camera`, `renderer`, `controls`, `events`, `loadModel(source)`, `captureStill(options?)`, `captureVideo(options?)`, `getAnimationNames()`, `playAnimations(name?)`, `pauseAnimations()` and `dispose()`.\n\n## Configuration\n\nEverything is optional — the defaults are the point. Pass `options` to override any part:\n\n```ts\nimport { ControlType, defaultOptions } from 'softbox';\n\nconst options: SimpleViewerOptions = {\n  preset: 'studio',              // one-word look; explicit options below win over it\n  backgroundColor: '#f0f0f7',\n  staticScene: false,            // stop the render loop when nothing moves\n\n  // Unit your model is authored in: meters (default) | centimeters | millimeters\n  // | feet | inches. Non-meter models are rescaled on load to the viewer's\n  // 1-unit-=-1-meter convention (the real-scale floor, shadows and framing\n  // depend on it) without touching the model's own transform.\n  units: 'meters',\n\n  camera: { position: [60, 60, 60], fov: 45, autoFitToObject: true },\n\n  // The procedural studio environment lights the scene by default (zero network\n  // requests). Point environment.url at an HDR/EXR/image to use your own.\n  environment: { environmentIntensity: 0.5 },\n\n  // Khronos PBR Neutral tone mapping by default — keeps saturated material\n  // colours through the highlight rolloff (see renderer.toneMapping to change).\n  renderer: { antialias: true, toneMappingExposure: 1.0 },\n\n  controls: { type: ControlType.OrbitControls, enableDamping: true, autoRotate: false },\n\n  animations: { autoplay: true, speed: 1 }, // GLTF clip playback\n\n  helpers: {\n    grid: { type: 'hexagonal_glass' }, // hex-tile floor (matte concrete by default); also: hexagonal_wire, square_wire, stone_tiles\n    gizmo: false,                      // optional viewport orientation gizmo\n    studioEnvironment: true,\n  },\n\n  pathTracing: { enabled: false, maxSamples: 16 },\n\n  ui: { presets: false },        // built-in preset picker chips\n  selection: { bvh: true },      // BVH-accelerated raycasts for picking/occlusion\n  loadingIndicator: true,        // built-in loading overlay (object form customizes it)\n  loaders: {},                   // DRACO/KTX2/Meshopt decoder config (self-host paths, toggles)\n\n  // Like <img loading=\"lazy\">: defer the WebGL context and model download until\n  // the viewer first approaches the viewport. On pages with many viewers only\n  // the visible ones boot — browsers cap concurrent WebGL contexts, so an\n  // eager grid can silently kill the oldest ones. Once booted, always booted.\n  loading: 'eager',              // or 'lazy'\n};\n```\n\nSee [`defaultOptions`](https://github.com/LEMing/softbox/blob/main/src/defaultOptions.ts) for the full annotated set and the typed option interfaces exported from the package root.\n\n### Loading indicator\n\nA built-in overlay shows while a model loads (and an error state if it fails) — the scene is never blank. Customize or disable it:\n\n```tsx\n<SimpleViewer object={url} options={{ loadingIndicator: { label: 'Loading…' } }} />\n<SimpleViewer object={url} options={{ loadingIndicator: false }} /> // drive your own via events\n```\n\n### Loaders\n\nDRACO, KTX2/Basis and Meshopt decoders are wired into the glTF loader by default — compressed exports from Blender, `gltfpack` or `gltf-transform` just load. Meshopt is bundled; the DRACO/KTX2 wasm decoders are fetched **on demand** (only the first time a model actually uses that compression) from a version-pinned jsDelivr URL. For a fully offline, no-CDN setup, self-host the decoder directories:\n\n```ts\nloaders: {\n  dracoDecoderPath: '/decoders/draco/',   // copy of three/examples/jsm/libs/draco/\n  ktx2TranscoderPath: '/decoders/basis/', // copy of three/examples/jsm/libs/basis/\n}\n```\n\n### Viewport gizmo\n\n```ts\nhelpers: { gizmo: { placement: 'top-right', size: 128 } }\n```\n\nInteractive orientation cube: click to snap the camera to axis views, synchronized with the controls.\n\n### Path tracing options\n\n`pathTracing`: `enabled`, `maxSamples` (completion cap), `bounces`, `transmissiveBounces`, `renderScale`, `lowResScale`, `dynamicLowRes`. The converged frame stays on the live canvas and re-accumulates on camera moves; `replaceWithScreenshotOnComplete: true` (off by default) restores the legacy behavior of swapping in a DOM snapshot instead.\n\n## Next.js / SSR\n\nThe viewer renders into a WebGL canvas, so it is client-only. In Next.js, load it dynamically:\n\n```tsx\n'use client';\nimport dynamic from 'next/dynamic';\n\nconst SimpleViewer = dynamic(\n  () => import('softbox').then((m) => m.SimpleViewer),\n  { ssr: false }\n);\n```\n\n## Upgrading\n\n- **3.x → 4.0**: the package was renamed — `threedviewer` is now **`softbox`**. Swap the dependency and the import specifier; the API is unchanged. See [MIGRATION_GUIDE.md](MIGRATION_GUIDE.md).\n- **3.0 → 3.x**: additive all the way — presets, `ui`, `pathTraced`, `captureStill`, `Hotspot`, `object:selected`, `selection`, `turntable`, `animations` are new surface on top of 3.0; existing options keep working. React peer is `>=18 <20`.\n- **2.x → 3.0**: breaking release (removed no-op APIs, ESM+CJS packaging). See [MIGRATION_GUIDE.md](https://github.com/LEMing/softbox/blob/main/MIGRATION_GUIDE.md).\n\nFull history: [CHANGELOG.md](https://github.com/LEMing/softbox/blob/main/CHANGELOG.md)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}