{"_id":"demo-reel","_rev":"47-f30eaf2f4de0d3b5c7b8805639886233","name":"demo-reel","dist-tags":{"beta":"0.1.2-beta.2","latest":"0.14.0"},"versions":{"0.1.0":{"name":"demo-reel","version":"0.1.0","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.0","maintainers":[{"name":"fenerinyo","email":"alican1503@hotmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"498416c16e7abd3b1952d1b028acf20e7e8e7765","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.0.tgz","fileCount":33,"integrity":"sha512-I8cfCFdiPXKj9diEk33gflSwBz4TeN7KgTh44fqS0kPmRIRtHEZZM92SJh10Sb7X8bJTgzHbrmTuJ1JGkw9TAw==","signatures":[{"sig":"MEUCIFM+8OexjgLhqXQxhwMM5l1QRlUmvh+lkJe6ttIUSvUjAiEA3peutVoizPpkWlXaBaBGRcAaEPJoQIjzoPy99yamqS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174542},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"bdb733293bd79e6ec74f3800e164881866b52221","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican1503@hotmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.0_1773931286433_0.5096945134651523","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-beta.0":{"name":"demo-reel","version":"0.1.1-beta.0","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.1-beta.0","maintainers":[{"name":"fenerinyo","email":"alican1503@hotmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"38bdc97921bf091cacd1c3b52573ab7e0d3e7241","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.1-beta.0.tgz","fileCount":37,"integrity":"sha512-dRX78MOMG52D2nDME1CXK3xXXvfo5YkC5xkFXcAyDe9VYYL5LRcgP+nizZEzLAg0l70axJkgLHNhjl7wI2RXDQ==","signatures":[{"sig":"MEQCIBe8kjBLIvA/efHY2QpQW6rx/D9ltj0LhZdmSGeaLx3nAiAvaZnQJMeGkqojxE8qz6S4bzqpROiBfLgEBOWT/ViYwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187679},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f2090dd4b64032735e05501552acdd0903edf757","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican1503@hotmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.1-beta.0_1773938669603_0.6492172277569819","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-beta.1":{"name":"demo-reel","version":"0.1.1-beta.1","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.1-beta.1","maintainers":[{"name":"fenerinyo","email":"alican1503@hotmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"694ee7cdf587d87099fb3cc60b165b811ca11ee2","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.1-beta.1.tgz","fileCount":37,"integrity":"sha512-NnrxcnEWiWWyAoNijVezJN4H0zHpvYC+GNn/i2V6rcYt5ctqXlMeAbrvF+fiL2PCGyRgPCMnaQNfxT4400qiUA==","signatures":[{"sig":"MEYCIQDPBbyTnxx3fkfvZJbIx8e2/gd+lLDV5ifg6cLm0AR7awIhAKSERTgy/DY9IYDXpTLP1pU27oMRzYTC3T0arLT/kDU2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187910},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f2090dd4b64032735e05501552acdd0903edf757","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican1503@hotmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.1-beta.1_1773938838499_0.8930527274981257","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-beta.2":{"name":"demo-reel","version":"0.1.1-beta.2","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.1-beta.2","maintainers":[{"name":"fenerinyo","email":"alican1503@hotmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"69a577f63f1708cc05b1c1a1201e41b6cefee44e","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.1-beta.2.tgz","fileCount":37,"integrity":"sha512-52Rqo9CLOLJFVpmUYEko5s5ocQHXU6UQm2OK8NsfOEPWmc3molf/PMXBZfHq531a5h5cNQYfoFXPPrWo8coaYA==","signatures":[{"sig":"MEUCIFQVcAt5Vs42YTRezumngyJblx/3QR+qZp7Zg5CI5aDRAiEA3U6x+rxcYaCY1JW0Ik558prIbAr98zK7JWllWEwrX/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":188238},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f2090dd4b64032735e05501552acdd0903edf757","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican1503@hotmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.1-beta.2_1773938949984_0.8349606036009298","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-beta.3":{"name":"demo-reel","version":"0.1.1-beta.3","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.1-beta.3","maintainers":[{"name":"fenerinyo","email":"alican1503@hotmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"cce4584fc9844e2c01ef6df90fc650b00bba9970","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.1-beta.3.tgz","fileCount":37,"integrity":"sha512-AsjdFBmIanfGh6ayWjK6KCmy9aIYOzulma8CpWVRZx3WOYBwYoDbjBL4PXolMacrdCDK+SFlvZ7mY4J7x7q78g==","signatures":[{"sig":"MEQCIDsPZrjSFeEQ55e8TyZRF2z3Lcv8MHbG2BLTnfhGW9RXAiAUn62e4EFqFZtGIEBzAs7kjHL41qqwNX2EkQH5PajLpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189026},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"1dcacdc4e725e571b54f65e2c5b642f6e125b19f","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican1503@hotmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.1-beta.3_1773988640489_0.18938595063095454","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-beta.4":{"name":"demo-reel","version":"0.1.1-beta.4","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.1-beta.4","maintainers":[{"name":"fenerinyo","email":"alican1503@hotmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"c6498de85e8b774f16f62614f5c51a456982a8f3","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.1-beta.4.tgz","fileCount":37,"integrity":"sha512-qWqAe2BhrSUW8SUe+B2KJbpJyfjZZSD94hUo0Gu4E1KnF9EZBCTDKyVrDTud0Xywf9OpNzl+1TnVl8fg/f/Q/A==","signatures":[{"sig":"MEYCIQC1Uak683hxolb/CCVi1jLCtWzQZMiReSCarFpTf25cNwIhAI0+BBnBzzpMBxxkl0KM0qQvL2br0UBybYGDJajIyGPW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189706},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"ab97937c20c8158521278f3c478cd0c35a3c4acd","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican1503@hotmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.1-beta.4_1773988957661_0.5859278002020603","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-beta.5":{"name":"demo-reel","version":"0.1.1-beta.5","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.1-beta.5","maintainers":[{"name":"fenerinyo","email":"alican1503@hotmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"f22b7cb8041b4a849ad040d5a0b848d68157cd52","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.1-beta.5.tgz","fileCount":37,"integrity":"sha512-TK4mIpWqxPEtXV3H1oUGjHQUCQUgpORS2eNZGtLZaYIJjFjGICFwLMIOMq/Z3ZqPyITxKYFNEBGsqeZGXOA55g==","signatures":[{"sig":"MEUCIQCDn8kq1f4YavZPAn8K6FvGePm6oCNr/B+U8/uDkFCXvgIgL7/DrlAGWwXzsEP5uui9Wn4a8jrVhH34PVXmkGHUn2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191453},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"ab97937c20c8158521278f3c478cd0c35a3c4acd","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican1503@hotmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.1-beta.5_1773989326097_0.6526674786869016","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-beta.6":{"name":"demo-reel","version":"0.1.1-beta.6","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.1-beta.6","maintainers":[{"name":"fenerinyo","email":"alican1503@hotmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"3a97a10d12c742ff9664a9c169c86f3e04edd52a","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.1-beta.6.tgz","fileCount":37,"integrity":"sha512-tdATQfsCkhp60tq2nFBT84EObNYJxWJSv/97wzJFoZtj3G11T3YsCAFClb3UB9C3KhN+ZdOJAEdrHXK+hJAXOA==","signatures":[{"sig":"MEUCIEHmkmiw66NYw4+fMgNNGbYChq7U9ZWurQ3bccwbr0Z5AiEAuPzW6y2UOcaRF/UzyqfxyCLcFCjLzg1G1vkmZsotUEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191803},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"270b1ee6c211e0c3426c76382f88d476c36f016c","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican1503@hotmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.1-beta.6_1773991418187_0.18388171423949817","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-beta.7":{"name":"demo-reel","version":"0.1.1-beta.7","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.1-beta.7","maintainers":[{"name":"fenerinyo","email":"alican1503@hotmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"b47f6873fe3fdb2702fb640474cfaa98b112f68a","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.1-beta.7.tgz","fileCount":37,"integrity":"sha512-ZLHdHw3XvNbSwv5AYVOlQMqLwzzCHvYAgtZGZ7pzaFHcEpb8u7rNaHwsQXziBHswmSzm7GazQVauyFoMjIr8bw==","signatures":[{"sig":"MEYCIQCm1hyXtaw9JvZwfdibPuQhRr/88fNvR+FD4lmrhtSvIwIhAPQjYdBQBrQpAruKlG70tjkeoFD0dVrOuWBLgwE39k5D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191910},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f9650a6907adbbc12ede14de10ff42197f6ea5e7","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican1503@hotmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.1-beta.7_1773992060987_0.07349385993648139","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-beta.8":{"name":"demo-reel","version":"0.1.1-beta.8","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.1-beta.8","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"fc49dcab6f0b070e6452c3beca87ca33cefc8213","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.1-beta.8.tgz","fileCount":41,"integrity":"sha512-sduUcogBlOLCLBzmwnOMRsWLjN32mU6q86NK9hZcbqsu5KR0smXmf6Oi5pK2xOHgG2aIf4b7kdRYf0URtl4pDw==","signatures":[{"sig":"MEUCIQCne8EBbnH2mDyMolDR/bnUSaATr++WCDMDX7+tmQYsYgIgO2e9D7iMUywAUTNc6vYxQVsOyrzWbIEU6fkWVWOC8BE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200940},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"013b916378109b035caa1abd9f11e72049da7e7a","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.1-beta.8_1774000576469_0.16720142169166197","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-beta.9":{"name":"demo-reel","version":"0.1.1-beta.9","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.1-beta.9","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"2aa665e402f38ea1314605b7d9da5999caa12a4d","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.1-beta.9.tgz","fileCount":41,"integrity":"sha512-Fm2ajh00BcBPbGzt/WSO0AejFfdX4Zy/6CcFseCbpOVphDUYWo6LVS1QUve0sxEsF3IcHd4thfNRMMTv9x3/0g==","signatures":[{"sig":"MEYCIQCgDzSejU+1YW/hdhAX8KFpA9mPqXbzF0HFlO3CiXAdkQIhAIFheLqbflSDOC7WmMAj7EkS/LFVwOyMdspggQd85FP5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201449},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"013b916378109b035caa1abd9f11e72049da7e7a","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.1-beta.9_1774000753197_0.1897903508498504","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"demo-reel","version":"0.1.1","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.1","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"cc8ce6a3a7550513bdb6c0d4d54091ed38be4478","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.1.tgz","fileCount":41,"integrity":"sha512-jdHl1CaHbLtpyIojTLkUrdzBITcI1w6wA8Em7bGbkxku7+AWs2yD7VrnwhcOCEezdQesQeY/sC0P42uG2as3uA==","signatures":[{"sig":"MEYCIQDiNdXKzF/4MMTU09pFoanqGEApAC4Z4zQrI9F9zp0e4wIhAOFCJrJMT8ZlhTCi6NfMXfN+pcN2E96AHlHh9/OzxupA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202293},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"7b64ab043b12a78c410dca75c1076ae8e6097e5c","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.1_1774002459838_0.8187918079527192","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"demo-reel","version":"0.1.2","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.2","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"5e8e22cd34428a08383643db7ce52144ef8dbb45","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.2.tgz","fileCount":41,"integrity":"sha512-dDsAzqDkSAy8xEFz6I7xypcBFD511j2rtWAnqAi49DZFBUteb3alcRe+arxJTJKSiieEaowXnRJvlBaFNQvfUg==","signatures":[{"sig":"MEQCIEIm/bW0PaiK0QBgwRPFcMHlddOQBXtyF8u3zyRQUm3GAiAjJU1j1kl7PP0M8QZ4aanHe1DfJEUcNs3bX3x698NOxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202490},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"7b64ab043b12a78c410dca75c1076ae8e6097e5c","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.2_1774002508018_0.5511213418698941","host":"s3://npm-registry-packages-npm-production"}},"0.1.2-beta.0":{"name":"demo-reel","version":"0.1.2-beta.0","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.2-beta.0","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"5ce7238c7ff9c7cfaedc03ace3aadfd2044b8425","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.2-beta.0.tgz","fileCount":42,"integrity":"sha512-K7Uo5pe5p1ebs/tZmrBQ8kFACGnMGQEIMBcPxTiKy96+RYyKGqFy3R8Pu900N0S9P0lnvgiDZrVZ87ThWw6YmA==","signatures":[{"sig":"MEYCIQDzfQztmupTLuXdAIpgKvEp85Av99uqfhRhc2tVUtNxEgIhAO4hh1hTxR/gFA+Zv6idtSczOHnHnh5HIKVGxbqisWEp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334954},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"d82e64ed17ae5f2ced3ca8c2ae69a65ee071a6d0","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.2-beta.0_1774123819873_0.3454108399012097","host":"s3://npm-registry-packages-npm-production"}},"0.1.2-beta.1":{"name":"demo-reel","version":"0.1.2-beta.1","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.2-beta.1","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"81d2c3b0cf088db44f7e4a6a595edcf928859f73","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.2-beta.1.tgz","fileCount":42,"integrity":"sha512-1Cx4otpaK9Ksui6lrayRc9+kLjIYJORXVGfUuyKfhClD57P3ZIWfY1Z8FfJePK39GNBD1XTvQ0xdc8L6/DjPdQ==","signatures":[{"sig":"MEYCIQCXd4ScrrLcAPGNmwmcUsX0m7QSeO+01Qe6ewEcTgrQBgIhAPNFKzBfEtt6YMb2DbhfTFJuFpzbHCSx18Hd7S/9BLlR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335264},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"a5a88bbb6c911485a76649bed8dea3cd453bab67","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","demo-reel":"0.1.2-beta.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.2-beta.1_1774125087893_0.37413577137942067","host":"s3://npm-registry-packages-npm-production"}},"0.1.2-beta.2":{"name":"demo-reel","version":"0.1.2-beta.2","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.2-beta.2","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"6b5aa2ecb1490bf80223eb4cb8baa539eb233ab4","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.2-beta.2.tgz","fileCount":42,"integrity":"sha512-J0yZUXQPMcxbfr3+Mx5o0ndFPGoCWZhfbR+i6zjfD9DlAXYDjnen6SxwJac0jfLT+3IDFSFEN6mpmWpU/89+Aw==","signatures":[{"sig":"MEUCIHQ47GOl+/FD5KIBi8UxDyGC3uj0DQtA+OF+08svjDFWAiEAm2bnPFC4pwaiiADk11m+c2x1wZ2B7UokUtIphOlnopc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337827},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"e156ab767afef5e893bc07780f39a47db6626584","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^10.3.0","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.2-beta.2_1774125723222_0.5501099013881368","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"demo-reel","version":"0.1.3","keywords":["demo","video","playwright","automation","cli"],"author":"","license":"MIT","_id":"demo-reel@0.1.3","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"dist/cli.js"},"dist":{"shasum":"e9f9c4c51bda94a04349ff29fe52b11602c3575b","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.1.3.tgz","fileCount":42,"integrity":"sha512-OTXvJAdc9X+6KvZSZaINC3ru45ZIRryT1LI3X0wHn/2VF815J0X/8OZhiWAo9E9I/ccfORmWx9HfVj5vE4JW8A==","signatures":[{"sig":"MEYCIQC13tvnyquDRGClRQjlOe34mFlHXdKU45AGyj3ZhRh8cQIhAJhf+e8fTcGzyC6Q1tzXyvkkQHT2//bOPpKtjGlYNg6i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337920},"main":"./dist/index.js","type":"module","_from":"file:demo-reel-0.1.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_resolved":"/tmp/371c37506d87805749a4dcd002033674/demo-reel-0.1.3.tgz","_integrity":"sha512-OTXvJAdc9X+6KvZSZaINC3ru45ZIRryT1LI3X0wHn/2VF815J0X/8OZhiWAo9E9I/ccfORmWx9HfVj5vE4JW8A==","_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","glob":"^13.0.6","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","@vitest/ui":"^4.1.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"playwright":"^1.58.0"},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.1.3_1774127031989_0.446202730136384","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"demo-reel","version":"0.2.0","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.2.0","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"d0cb816a8154a5816911c0b02fbd4014bbde81de","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.2.0.tgz","fileCount":130,"integrity":"sha512-ELFEllgccyJL+qsKWTRhKFTfcOG4zR1eVGXnTpsCpk0x6TJvdz+w0Up+IQtw4Ujfeb6lW54Ts5ERp1koPd4BhA==","signatures":[{"sig":"MEUCIHBJfzZhakKgnb8cNZzv8sTpucI8mpUjvkYb08q7sWDoAiEA77UueEbjGAk1CDIjw4S2Fmac8xMX+owDTBOIJTtGA7Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":926438},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"1dedf132f14791b4b1f8b41f9b2332a91b1beb46","scripts":{"dev":"tsc --watch","demo":"node --import tsx/esm src/cli.ts","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","prepare":"pnpm run build","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","demo:voice":"node --import tsx/esm src/script/voice-cli.ts","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","prepublishOnly":"pnpm run build && pnpm test"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"tsx":"^4.21.0","zod":"^4.3.6","glob":"^13.0.6","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"oxfmt":"^0.45.0","dotenv":"^17.4.1","oxlint":"^1.58.0","vitest":"^4.1.4","@vitest/ui":"^4.1.4","typescript":"^5.0.0","@types/node":"^25.6.0","@vitest/coverage-v8":"^4.1.4","@typescript/native-preview":"7.0.0-dev.20260413.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.2.0_1776103315457_0.6230243473407135","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"demo-reel","version":"0.3.0","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.3.0","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"9230a77c65b335271436208cd8ef2f07a929f969","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.3.0.tgz","fileCount":205,"integrity":"sha512-uEaV56FqRluxm8kk+bA5RCDo1+CKeLRV2fuZ1qYv5QSKMWgillGK6j3llDzAmfXQAThrosghbkuBsFyGkbMOcw==","signatures":[{"sig":"MEUCIGomiHYtGlf4gQiika9mjKJTBevoESj/RDkalWpv84JaAiEA57IgiyHUHR4fQF0VdVX7Fqh0xBsbfrYainKTTB4a3jU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1013797},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"12393bd52eb7d57de3c28d7b9628cdba46a2a2bd","scripts":{"dev":"tsc --watch","demo":"node --import tsx/esm src/cli.ts","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","prepare":"pnpm run build","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","demo:voice":"node --import tsx/esm src/script/voice-cli.ts","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","prepublishOnly":"pnpm run build && pnpm test"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.13.0","dependencies":{"tsx":"^4.21.0","zod":"^4.3.6","glob":"^13.0.6","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"node":"link:@@types/node","oxfmt":"^0.45.0","dotenv":"^17.4.1","oxlint":"^1.58.0","vitest":"^4.1.4","@vitest/ui":"^4.1.4","typescript":"^6.0.3","@types/node":"^25.6.0","@vitest/coverage-v8":"^4.1.4","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.3.0_1776665171426_0.7589713799056756","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"demo-reel","version":"0.3.1","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.3.1","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"edb84eb00f1fc43b3647357d180b3b1eba65058d","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.3.1.tgz","fileCount":213,"integrity":"sha512-x6d7CsAmBkggDWnMsVKYZGRfYPsoU96bpYivRQr69VXS9hBFLcIbvJ3uhZ3mYtS9rTQKDmtQHVOyfso8uPrJ8w==","signatures":[{"sig":"MEQCIDZghUM7c3HeKg73JtZGwLPtJlz80qPWQmMym8k3WKneAiAOW69oOx8LZ1FEc4sZmDZA2wo8YqP18yP52djOkbhR8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1064959},"main":"./dist/index.js","type":"module","_from":"file:demo-reel-0.3.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","demo":"node --import tsx/esm src/cli.ts","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","demo:voice":"node --import tsx/esm src/script/voice-cli.ts","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_resolved":"/tmp/91877d9a50ec05865b1fbc7ed9a2cfa9/demo-reel-0.3.1.tgz","_integrity":"sha512-x6d7CsAmBkggDWnMsVKYZGRfYPsoU96bpYivRQr69VXS9hBFLcIbvJ3uhZ3mYtS9rTQKDmtQHVOyfso8uPrJ8w==","_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.13.0","dependencies":{"tsx":"^4.21.0","zod":"^4.3.6","glob":"^13.0.6","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"devDependencies":{"node":"link:@@types/node","oxfmt":"^0.45.0","dotenv":"^17.4.1","oxlint":"^1.58.0","vitest":"^4.1.4","@vitest/ui":"^4.1.4","typescript":"^6.0.3","@types/node":"^25.6.0","@vitest/coverage-v8":"^4.1.4","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.3.1_1776772525570_0.13316209073276064","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"demo-reel","version":"0.4.1","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.4.1","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"9c2167bd4f7010b9e2e176496422ed941e85397f","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.4.1.tgz","fileCount":231,"integrity":"sha512-as8zMlAavm55JrtHxJHZZTwxFWgOL9o7Qx6QtpyoeMARsvBOEMf40TAsRKmEHFGld5T2NuWkxirHJlPjLerpPg==","signatures":[{"sig":"MEUCIF0ROUMpdGHlu/1gNAMWAvKedu9+34NwrWNtjAKyz23uAiEA+28Ixu4iEFeh5ttQFhcFcKYeVUxCYMeIF/il6xzMAms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1169293},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"gitHead":"296f9310d1069d2e1d15f9d05f4e639b9fb9e678","scripts":{"dev":"tsc --watch","demo":"node --import tsx/esm src/cli.ts","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","prepare":"pnpm run build","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","demo:voice":"node --import tsx/esm src/script/voice-cli.ts","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","prepublishOnly":"pnpm run build && pnpm test"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"tsx":"^4.21.0","zod":"^4.3.6","glob":"^13.0.6","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"node":"link:@@types/node","oxfmt":"^0.45.0","dotenv":"^17.4.1","oxlint":"^1.58.0","vitest":"^4.1.4","@vitest/ui":"^4.1.4","typescript":"^6.0.3","@types/node":"^25.6.0","@vitest/coverage-v8":"^4.1.4","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.4.1_1776942632530_0.48440020764556","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"demo-reel","version":"0.4.2","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.4.2","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"1b2c87997a91d0cddcf4b5e3437d29ef6b54ea8b","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.4.2.tgz","fileCount":231,"integrity":"sha512-y8m/HN6iG83/r3YMw4htbsaCmnX+kZbDjGs/rCbc4SgOWIbHROaMhbcad0AJIUVlTx0f/rNAVk+OWCAjM4SItQ==","signatures":[{"sig":"MEUCIH1lgCnRkFpXo4VpUpIE6FV4F7TcF49g0c+/J4kIr8WfAiEAjTudG9ZLXOM2RgmyEoqrvLw13fFfNRpbxrlZyBXHwiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1170071},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"gitHead":"e961fa7c3edf071e50b2100f0f08b76121a41aff","scripts":{"dev":"tsc --watch","demo":"node --import tsx/esm src/cli.ts","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","prepare":"pnpm run build","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","demo:voice":"node --import tsx/esm src/script/voice-cli.ts","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","prepublishOnly":"pnpm run build && pnpm test"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"tsx":"^4.21.0","zod":"^4.3.6","glob":"^13.0.6","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"node":"link:@@types/node","oxfmt":"^0.45.0","dotenv":"^17.4.1","oxlint":"^1.58.0","vitest":"^4.1.4","@vitest/ui":"^4.1.4","typescript":"^6.0.3","@types/node":"^25.6.0","@vitest/coverage-v8":"^4.1.4","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.4.2_1776962103402_0.6991583083681954","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"demo-reel","version":"0.5.0","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.5.0","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"9895a4a2a30c71ee8f64d32ef0784beabb362006","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.5.0.tgz","fileCount":231,"integrity":"sha512-qsqV8GB3Kx4ZPlWCBBLtlrZQ3CGkVK6aSs9zbkKN2fqgzW568AmxNdRi6uYxeqzdDLhtpWnK0qw5PDt1YO0frg==","signatures":[{"sig":"MEYCIQDHCxAoB8nE5LO5TNf0RCOX+6pqeLMs9PMrVscJ2xcy7AIhAKsbVFQcfXzrNfT9g4dk93eh15LkaQECdZakp3jUqdnj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1174547},"main":"./dist/index.js","type":"module","_from":"file:demo-reel-0.5.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","demo":"node --import tsx/esm src/cli.ts","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","demo:voice":"node --import tsx/esm src/script/voice-cli.ts","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_resolved":"/tmp/2b13dfa5231ad217e55305ac8bbb429f/demo-reel-0.5.0.tgz","_integrity":"sha512-qsqV8GB3Kx4ZPlWCBBLtlrZQ3CGkVK6aSs9zbkKN2fqgzW568AmxNdRi6uYxeqzdDLhtpWnK0qw5PDt1YO0frg==","_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.12.0","dependencies":{"tsx":"^4.21.0","zod":"^4.3.6","glob":"^13.0.6","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"devDependencies":{"node":"link:@@types/node","oxfmt":"^0.45.0","dotenv":"^17.4.1","oxlint":"^1.58.0","vitest":"^4.1.4","@vitest/ui":"^4.1.4","typescript":"^6.0.3","@types/node":"^25.6.0","@vitest/coverage-v8":"^4.1.4","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.5.0_1777064032988_0.8885574221224557","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"demo-reel","version":"0.5.1","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.5.1","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"f68650ba7c3b06acead430e131c005ed56be5e53","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.5.1.tgz","fileCount":215,"integrity":"sha512-SeEg3/4P2CV6MsSThw8RMT4uT3fE3knyVoir63S3gyQThCqWIEObdx3ZOyO4po/NSLi9dO+xPuQjIZ8kVPULsQ==","signatures":[{"sig":"MEUCIFQmjeG/zFz3GgvRKHtZBs9H3TvoD8uOq4NUhKu4vTV1AiEApdaZnOvumgk8huIy1g4Gl8uAYQ+RKzGCc6VmPUpl0kg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1095344},"main":"./dist/index.js","type":"module","_from":"file:demo-reel-0.5.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","demo":"node --import tsx/esm src/cli.ts","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","demo:voice":"node --import tsx/esm src/script/voice-cli.ts","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_resolved":"/tmp/fcb698467b7311b2c152081444e29b47/demo-reel-0.5.1.tgz","_integrity":"sha512-SeEg3/4P2CV6MsSThw8RMT4uT3fE3knyVoir63S3gyQThCqWIEObdx3ZOyO4po/NSLi9dO+xPuQjIZ8kVPULsQ==","_npmVersion":"11.6.2","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"24.13.0","dependencies":{"tsx":"^4.21.0","zod":"^4.3.6","glob":"^13.0.6","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"devDependencies":{"node":"link:@@types/node","oxfmt":"^0.45.0","dotenv":"^17.4.1","oxlint":"^1.58.0","vitest":"^4.1.4","@vitest/ui":"^4.1.4","typescript":"^6.0.3","@types/node":"^25.6.0","@vitest/coverage-v8":"^4.1.4","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.5.1_1777893819879_0.3520963540184321","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"demo-reel","version":"0.6.0","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.6.0","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"bd75c1e0784079fede4da543c7eb548a43131adf","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.6.0.tgz","fileCount":215,"integrity":"sha512-lWYzwRCveuGayQw8Kq0BlhYeV3C3Ecl8WanTBC+lSJ/tPVCFBNnc8heqiUCug3oA5uZRTI04sZuEf+g+CMzXVw==","signatures":[{"sig":"MEUCIQDzIlWGQ/y4TQd3p6MOCvwhfjkraoc+0X2/DPsLHrXv3QIgXJG9/XWolET2a6cXFdTjre6E7w+XJiaW/2umywVMvxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1186107},"main":"./dist/index.js","type":"module","_from":"file:demo-reel-0.6.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","demo":"node --import tsx/esm src/cli.ts","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","demo:voice":"node --import tsx/esm src/script/voice-cli.ts","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"_resolved":"/tmp/8eea8bbf6cf8e01948218bf94d5fdf97/demo-reel-0.6.0.tgz","_integrity":"sha512-lWYzwRCveuGayQw8Kq0BlhYeV3C3Ecl8WanTBC+lSJ/tPVCFBNnc8heqiUCug3oA5uZRTI04sZuEf+g+CMzXVw==","_npmVersion":"10.9.7","description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.22.2","dependencies":{"tsx":"^4.21.0","zod":"^4.3.6","glob":"^13.0.6","ffmpeg-static":"^5.2.0"},"_hasShrinkwrap":false,"devDependencies":{"node":"link:@@types/node","oxfmt":"^0.45.0","dotenv":"^17.4.1","oxlint":"^1.58.0","vitest":"^4.1.4","@vitest/ui":"^4.1.4","typescript":"^6.0.3","@types/node":"^25.6.0","@vitest/coverage-v8":"^4.1.4","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.6.0_1779344099104_0.7452138424144388","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"demo-reel","version":"0.7.3","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.7.3","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"f61bee9c6984b9174ffb43a6ee79492b8873d3d1","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.7.3.tgz","fileCount":218,"integrity":"sha512-wqzRSJZnWktoDWVXd0CYjyW+rfvbLAlYBNKybItPjEk7Jsxw21PLX89i0mGmrqaMpokzhY3UWgIFhGUEDPQFOw==","signatures":[{"sig":"MEQCIGjtvsrrufWA/3rRCmZ1BzpGD3Za9SMmCm85wBa9H481AiBZT3lLLznA8E9ThMpgGzfZYKRfj9O7+UMfPRlKISJFEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1188010},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.22.3","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.45.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.7.3_1779570384659_0.7329000537491253","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"demo-reel","version":"0.7.4","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.7.4","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"e2bc36923daa1763308fc47c8354192b0db73e30","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.7.4.tgz","fileCount":218,"integrity":"sha512-5X8akkLSZNV/4zNjymQUBjndccqX8lJtyDYPiNLxMHLwFo4zzoVun5nFJjKdN6RVryTP7jg7TQFL2pYnQSEMIg==","signatures":[{"sig":"MEQCIDMlpUIGzJavlZS2GV1rPLRCA3BqBROEzcTSzvUqe8wSAiB88YRCQL5ZqiMCSFsV66xG+Xvh/Ke0D2vnpZTa7Yidmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1188010},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.22.3","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.45.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.7.4_1779572358776_0.8614368615281669","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"demo-reel","version":"0.7.5","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.7.5","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"8693f448886565950dc735f972d0996f01049e35","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.7.5.tgz","fileCount":218,"integrity":"sha512-dVvxW6hIwRO314UA3rQlCRHuI+OoFd+CmHHsgUy0P102QpvFww8+e/fVYHGQEYAYCJMGPM2x/apfF7w6yrdPuQ==","signatures":[{"sig":"MEUCIQDwgtNUBwpGKmMtAiqttC68daV7mw0ZFqZ6UeiKIarmSAIga2YyFPrlcxZVgzROLwuvF9aeqKWPd0Hn4VvkZG1PQVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1204657},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.22.3","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.45.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.7.5_1779717455417_0.4697380763793162","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"demo-reel","version":"0.7.6","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.7.6","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"9d39744c5d27b266fcc4f8279ad84f0f46d34732","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.7.6.tgz","fileCount":223,"integrity":"sha512-6d35lgVw8uV2t9c6+v3rRP0AZkDTiJ6XeTsKMEEc0Vxef5MICpZEqA8MwZzLQWr5PJCeUVs3hTxfPpBO4N6HYw==","signatures":[{"sig":"MEUCIQDMJhIzm9h/VIuvRioe+UZpZOlcyfGtNdjnJVuNv+MR2gIgR3iYIKvcPIxtdbaQkxG0iaSEnpfwIDYsHwOEuHuio7g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1209291},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.22.3","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.45.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.7.6_1779720368439_0.019572537043974547","host":"s3://npm-registry-packages-npm-production"}},"0.7.7":{"name":"demo-reel","version":"0.7.7","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.7.7","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"2d578f3b2da9b629ac26ba9a70a623191dcb263c","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.7.7.tgz","fileCount":223,"integrity":"sha512-shBqtWOzC9kfB49SfjTqji7DBvvAEoi9lnq0BTiNKjDujZwysJK+d7pmdl2al5bTbb3NX0+lefqIe+TuMSKKqQ==","signatures":[{"sig":"MEUCIG87UroRSS1t2iLN/AxQ+lkC6UOtvOGZ0UzK/5kNMVkDAiEAl2B4dndG7fVDMRepJm+vVLNVi6xuSoKb2pvuwe2vi5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1209724},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.22.3","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.7.7_1779730651033_0.16627451348247102","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"demo-reel","version":"0.8.0","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.8.0","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"243430db4bba0a1010d7cc2dffd4d3267fecfa32","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.8.0.tgz","fileCount":413,"integrity":"sha512-BECNlF5FyWWNcPZfKN4BvcMdlA+sjFgcbARZWYWPAhgAT0ME5h1WRQFQQPpQnF8dxcBzcq7XfqFUcrfLlOknOw==","signatures":[{"sig":"MEQCIEd26LQtZQiffVBakqlJlborQskqY7QZNBhpxYa20DoNAiAO+fGvklveLW9ekKuK90OKfYjHvpShvbA7FsNaD59RlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1309876},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.22.3","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.8.0_1780074557578_0.19249728138223499","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"demo-reel","version":"0.8.1","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.8.1","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"fc9e3dbda316f0034648e51c0807a4d78b88cb69","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.8.1.tgz","fileCount":413,"integrity":"sha512-fnsP8Ovnl9ollwfipFUrgV2crGWlXYqA952De+nCujMaCjj93RL6Yk16T36SNuWRdTlZzZl98nYE4Z63GvG3Gg==","signatures":[{"sig":"MEQCIG9+bUTexz88h7tBysD5QROKBJxkksu/lrgUbZG0nnG+AiAru1Li0Dm4c5Kn3EHDH+qje3j75mW2uIX9GMrQKFw/iw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1309874},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.22.3","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.8.1_1780138106509_0.631072803262704","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"demo-reel","version":"0.8.2","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.8.2","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"38af3c83061868b409afc48ba432063b2ccd66fd","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.8.2.tgz","fileCount":413,"integrity":"sha512-wv/HGY2ZtoivX9HRtvXyjwiTw/zbupOEQZdVY7km415ipdmibphOSprUuAHVEJe0zHezaaUkQmvHsU4QBwXYXQ==","signatures":[{"sig":"MEUCIBw2FhqrjvKNr/xZ8fiXLk0Bxs/9npOY5y+p+iDsa5IUAiEAwOEs78UfkbPWsVY0NLgpKmgrKDMdxCP2conx8hpZZZs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1315030},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.22.3","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.8.2_1781596134093_0.19271587003870305","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"demo-reel","version":"0.8.3","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.8.3","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"7a4e50b584e6b83ffd02818fc4e159dd16fd8aa4","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.8.3.tgz","fileCount":413,"integrity":"sha512-o5Yk+0B7gkkyp/VPGAQQrqhRbO78J6vbX5moydSYRKJCOtQCNTbAmU1kHyxz6ukGxDvcsAO90Jq4bUL6Xy+hjw==","signatures":[{"sig":"MEUCIQCbSRGSQgXfA4CVcLoFiMuPORLaJCWXgezGPS+5pzPTxgIgeMHbw3PSZBBLzN13KJWabjpFQnHknV4W8Lnc5IJbug4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1316989},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.22.3","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.8.3_1781793214616_0.2873936648374187","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"demo-reel","version":"0.8.4","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.8.4","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"09ed9be9a510737004d69f190e7e45505f8fdaac","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.8.4.tgz","fileCount":413,"integrity":"sha512-7q2BqZcPIzYr6SdRaJqLgfMrS4KcnrFIJTgcSjUmEYEOvZYOZns0OZEgcBTbs1734/bVRemP2K/ro7ks0P81KQ==","signatures":[{"sig":"MEUCIBDKjoTAsehWgJa0JRqp74JSSXy6xOQWMbipCTDQLopCAiEAxW1f6hi+jV5cvex5M1KHDcojlsjvruS/i/L6S51Ax4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1321233},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.22.3","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.8.4_1781799571666_0.6617155858437296","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"demo-reel","version":"0.9.0","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.9.0","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"a2daf58c47410249993bf83191a0c7169191a6be","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.9.0.tgz","fileCount":413,"integrity":"sha512-QFgcI9X1zAvghtNQS2vXP/A89Oc307PeZ9xG9vNvf9S/CvUYF27LuFkM8pFLPDI3TyJNQ3rRbX9OELSHWo1CXQ==","signatures":[{"sig":"MEYCIQC9tb/Xfe5/L23CsJe5Rpqi5sE77o9trF6qEGStUNv3bgIhAMTt3Wu/hgoX2i2RFuutNyRTZuAgg2X+JfvLQVlHQjqO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1326473},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.9.0_1785141098678_0.17578378361489078","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"demo-reel","version":"0.9.1","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.9.1","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"6393d378014683103742c9b437ef0679d8f9c118","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.9.1.tgz","fileCount":413,"integrity":"sha512-T3Vox2kTEgFHmvGygR1NaLmINpRfQlvqiN4pzwn0lfbYIg3dzoVK3bLdQgk7gJ6IRrCaMFF0z+98uRd4NhU1VA==","signatures":[{"sig":"MEUCIDN7LyFG5Ep2Mt+cztSXmP0YrmouooDUeWk34bpP+zwYAiEAhE+NEVTyu5+0CbJRVzP3RBwoBuGTCEvj04opNtmwcpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1329834},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.9.1_1785141524205_0.22272460185665244","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"demo-reel","version":"0.9.2","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.9.2","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"6fca37ca4b3217501cc7a4538eaa6910a452c6dd","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.9.2.tgz","fileCount":413,"integrity":"sha512-fSbJq6uI15w/7ygiACLetFMHGStxq5m8Z+HyoOlDpEZZhskS26RSYfYyYXUW0dWlIKPWapbDcB4WAHy0aQq0NQ==","signatures":[{"sig":"MEQCIFaUGIw6dcVfwHr5fJVZIZql+HOkqsdi6oFjFEc9jaX+AiA7v6Eh5zjnnZNZ3OnauXGQSiOWUpXyUY12WwHnSpM9Zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1337350},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.9.2_1785149550797_0.22455111984868603","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"demo-reel","version":"0.9.3","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.9.3","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"87d6d0b4fc1bda7ec04465261fe6c0d198db86cf","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.9.3.tgz","fileCount":413,"integrity":"sha512-gUUcHe+oxlsq7ludxeLtnvYe7RwQpd3shQsyp1Oe03BNUuFf9103Aihoi2F0QysUj79Lm6Gmp3Pvz3dnw6+yjA==","signatures":[{"sig":"MEYCIQDlLdMzmVw+o15FiMLRlyNJD+aUBKc+z03WBlg2HQZy4wIhAM8Qefim7hLR39d7HR8rhG/knCcf7K1a2Eenz85L6QHy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1357127},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.9.3_1785161007513_0.4778826559087237","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"demo-reel","version":"0.9.4","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.9.4","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"18ab8107b6490c1081aa60a76403df67845ff769","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.9.4.tgz","fileCount":413,"integrity":"sha512-bVoefEZi9s7PZwLc5XhJM0gEdlini0Pin5Q/0UQaQWjKZOgR8lbIN8IFv00LgnsI1k117TFQjXagiZkjRk7EGg==","signatures":[{"sig":"MEQCIHj873reuiXNY3YRE9yvDF8oUjP7sqB8+jda/pC5EhqrAiAnNmkm3zDG8nZYyvylVPRaUS6RCFtS8+Gv6cs0LPeFOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1364388},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.9.4_1785178207397_0.6214528898892777","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"demo-reel","version":"0.9.5","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.9.5","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"61123771147671e83b78199b3809298486de2dcf","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.9.5.tgz","fileCount":413,"integrity":"sha512-Ey7og1x3kS0DrieWOVfP7irh7zrWfjdp1EIIFuqWNj11JdDlBceWkBGf8DFowYwlxdbcLB8nNELrWC1tr9AHSg==","signatures":[{"sig":"MEUCIH2G+C7Tb3cYiRIt0NXkxsFWh1tXtGs+U8rZbX3EmMvWAiEAjsKgif7v7biDTSg/fXPWuvVnL44b7P8u9eEpNSHkAi4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1370964},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tsx":"^4.22.3","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.66.0","vitest":"^4.1.7","@vitest/ui":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.7","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":"^0.80.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.9.5_1785216927267_0.3034786981168238","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"demo-reel","version":"0.10.0","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.10.0","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"8194206dedab59fddbd43d6955ee23d1ea3c3d62","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.10.0.tgz","fileCount":419,"integrity":"sha512-himC4oP/AwuUb5XwXGGfyjuAwlzC2ED2skZplC3vP9hQr8yb+JCwFiXM49H0goE9y82xYq2zQ1ZgMoQLnX4H/Q==","signatures":[{"sig":"MEQCIQCoq/ihy8kij5ccPEROuT+3JaXaVush2q3352HTaANOfgIfbkp/umT0ToD36EqyNl/avgcEqDHS26ODcEjZjIWASA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1425529},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tsx":"^4.23.1","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.76.0","vitest":"^4.1.10","@vitest/ui":"^4.1.10","typescript":"^6.0.3","@types/node":"^25.9.5","@vitest/coverage-v8":"^4.1.10","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":">=0.91.1 <1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.10.0_1785262947295_0.06268013786043025","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"demo-reel","version":"0.10.1","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.10.1","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"507de7f798a0aad0f0d1ac549af97008fe4a0e86","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.10.1.tgz","fileCount":419,"integrity":"sha512-DKZ8dvlHt68TYG3YALQjCMeL+VC2TbDe69nRDcageyBiaYzsRogbxqzIwlSgJKApZmQJ1rvdhYxvhlgdMESmQw==","signatures":[{"sig":"MEUCIQCH+g0/R84ZPn+iPNrhJzBNo3UAyOEUtLp8sVLVt0syHwIgH6b6zTPpskJDRQJEcknsRtgDOJFQ0PRU1StbnPN6kqI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1428462},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tsx":"^4.23.1","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.51.0","dotenv":"^17.4.2","oxlint":"^1.76.0","vitest":"^4.1.10","@vitest/ui":"^4.1.10","typescript":"^6.0.3","@types/node":"^25.9.5","@vitest/coverage-v8":"^4.1.10","@typescript/native-preview":"7.0.0-dev.20260417.1"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":">=0.91.1 <1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.10.1_1785268196642_0.1974518808045731","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"demo-reel","version":"0.11.0","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.11.0","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"0db793c2cd6b3f674231d0a11ae135c392653b45","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.11.0.tgz","fileCount":419,"integrity":"sha512-+L9VS27JCnz4QlGOHFM8gt1u04xKS6kIqr6J10N0f7AKy1illXAdNdKilZoKrcW5rJXz2rOza9Xm10HEvhYV4w==","signatures":[{"sig":"MEUCIQCZDLmfeiNtIS6dYumCtA+EodQbXmawPiqKWGtIlS5FhgIgA3RfPF15AEFZ5iAvqIzywl/VI8CN1yG7e/zPAv35Xzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1428463},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"fenerinyo","email":"alican15033@gmail.com"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tsx":"^4.23.10","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.62.0","dotenv":"^17.4.2","oxlint":"^1.77.0","vitest":"^4.1.10","@vitest/ui":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.2","@vitest/coverage-v8":"^4.1.10","@typescript/native-preview":"7.0.0-dev.20260707.2"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":">=0.91.1 <1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.11.0_1786191964776_0.41600969420111533","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"demo-reel","version":"0.12.0","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.12.0","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"homepage":"https://github.com/whit3st/demo-reel#readme","bugs":{"url":"https://github.com/whit3st/demo-reel/issues"},"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"7dcc35ccb61d31eb0ff4dfe17d52c850c1d265f1","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.12.0.tgz","fileCount":419,"integrity":"sha512-9x7waERIdQGotWIdKT7NGXZXPpiDwpDXsJkUHrHF15hc0p+Zq/qCvugLAwgOFUMAhM3kNXsvwXDRWRzpl8EckQ==","signatures":[{"sig":"MEUCIB9rgGAhIIIUZRZASZ8dQ75Xt8Of8pVyP+Ll2Xno4xsuAiEAw6TIFY0YrLtca1HVwcFvpOdQM7g8zZD+QdoINPQCdRY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDBWNvgtxW/vNPZeLe3xfQ1c4jXBIMNLl1nZF6edRVttQIgckvMxgeRd77Xii7GoVnw+YWv2VgKps9vYnrPSN8ivDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/demo-reel@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1472550},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:033a1d95-cc8e-43be-bcd3-00fc8ff9c1a9"}},"repository":{"url":"git+https://github.com/whit3st/demo-reel.git","type":"git"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.23.2","dependencies":{"tsx":"^4.23.10","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.62.0","dotenv":"^17.4.2","oxlint":"^1.77.0","vitest":"^4.1.10","@vitest/ui":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.2","@vitest/coverage-v8":"^4.1.10","@typescript/native-preview":"7.0.0-dev.20260707.2"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":">=0.91.1 <1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.12.0_1787483403163_0.8694860826113222","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"demo-reel","version":"0.13.0","keywords":["automation","cli","demo","playwright","video"],"author":"","license":"MIT","_id":"demo-reel@0.13.0","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"homepage":"https://github.com/whit3st/demo-reel#readme","bugs":{"url":"https://github.com/whit3st/demo-reel/issues"},"bin":{"demo-reel":"bin/demo-reel.mjs"},"dist":{"shasum":"587e87a1d16a2e0c78d33c02eca2c3db0ec1fa23","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.13.0.tgz","fileCount":429,"integrity":"sha512-KOfAQ9ofFrsqk1taUXVv9wYPc0JLk+o7tW6P/3qeZVXKuO/qUbtJTr7S5K98tJNn66XJ+DptbXRPQJmIJnmQ0Q==","signatures":[{"sig":"MEQCIGTNR7C4uZRGAK9FaW5FU50clxmXKA08TozeRFuMsBU+AiBagQxGyNfSPdaIhZP+B3EULp8yuEfSw+8yrVDJhKgswA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBzU65Qm0M8laGwLqH+VGETvuyqrI9plcJO/7Gx761RwAiEA3zdppo3fKDUMMhFvbia3zWdwpXD6apKukZD0DhoPKyo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/demo-reel@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1631242},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:033a1d95-cc8e-43be-bcd3-00fc8ff9c1a9"}},"repository":{"url":"git+https://github.com/whit3st/demo-reel.git","type":"git"},"description":"Create demo videos from web apps using Playwright","directories":{},"_nodeVersion":"22.23.2","dependencies":{"tsx":"^4.23.10","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.62.0","dotenv":"^17.4.2","oxlint":"^1.77.0","vitest":"^4.1.10","@vitest/ui":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.2","@vitest/coverage-v8":"^4.1.10","@typescript/native-preview":"7.0.0-dev.20260707.2"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":">=0.91.1 <1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/demo-reel_0.13.0_1787905603570_0.04578874906028796","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"_id":"demo-reel@0.14.0","bin":{"demo-reel":"bin/demo-reel.mjs"},"bugs":{"url":"https://github.com/whit3st/demo-reel/issues"},"dist":{"shasum":"01259454c169e8ec44c3442cacdb01cc4c114767","tarball":"https://registry.npmjs.org/demo-reel/-/demo-reel-0.14.0.tgz","fileCount":429,"integrity":"sha512-Y7UXM1JUhBzCeR1U8e1RqUx7fcNPEnBfR0yH+7eYZFge1yq+22aBzjSOLJGo3UqlYYszMzhCeGU5n9ftRHIozw==","signatures":[{"sig":"MEUCIEbxX0BRLXNjk9z8nbidxarIhTGYbxkKsxBizUdj4KJGAiEA7sUKwwk3PIfsaqacwMP0dVAnxuwucmAlNTshS6HCTHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEzyGV72JZyVvhPLkGgytdwsxBjxDf5fwKF8WJI0flm7AiA8mcLhcQWdxPUa0joFcNz1NxT7EsmcFVerYILo+RdHHQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/demo-reel@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1631242},"main":"./dist/index.js","name":"demo-reel","type":"module","types":"./dist/index.d.ts","author":"","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./helpers/*":"./helpers/*.ts","./package.json":"./package.json"},"license":"MIT","scripts":{"dev":"tsc --watch","lint":"oxlint .","test":"vitest run","build":"tsgo","format":"oxfmt . --write","lint:ci":"oxlint .","test:ui":"vitest --ui","build:tsc":"tsc","format:ci":"oxfmt . --check","test:watch":"vitest","test:coverage":"vitest run --coverage","coverage:badge":"node scripts/write-coverage-badge.mjs coverage/coverage-summary.json .github/badges/coverage.json","security:audit":"pnpm audit --json --prod > audit.json || true","security:badge":"node scripts/write-security-badge.mjs audit.json .github/badges/security.json"},"version":"0.14.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:033a1d95-cc8e-43be-bcd3-00fc8ff9c1a9"}},"homepage":"https://github.com/whit3st/demo-reel#readme","keywords":["automation","cli","demo","playwright","video"],"repository":{"url":"git+https://github.com/whit3st/demo-reel.git","type":"git"},"description":"Create demo videos from web apps using Playwright","directories":{},"maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"dependencies":{"tsx":"^4.23.10","zod":"^4.4.3","glob":"^13.0.6","citty":"^0.2.2","ffmpeg-static":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.62.0","dotenv":"^17.4.2","oxlint":"^1.77.0","vitest":"^4.1.10","@vitest/ui":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.2","@vitest/coverage-v8":"^4.1.10","@typescript/native-preview":"7.0.0-dev.20260707.2"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0","playwright":"^1.58.0","@anthropic-ai/sdk":">=0.91.1 <1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/demo-reel_0.14.0_1788102690781_0.7398581109118656"}}},"time":{"created":"2026-03-19T14:41:26.432Z","modified":"2026-08-30T15:11:31.201Z","0.1.0":"2026-03-19T14:41:26.589Z","0.1.1-beta.0":"2026-03-19T16:44:29.747Z","0.1.1-beta.1":"2026-03-19T16:47:18.637Z","0.1.1-beta.2":"2026-03-19T16:49:10.135Z","0.1.1-beta.3":"2026-03-20T06:37:20.652Z","0.1.1-beta.4":"2026-03-20T06:42:37.810Z","0.1.1-beta.5":"2026-03-20T06:48:46.238Z","0.1.1-beta.6":"2026-03-20T07:23:38.341Z","0.1.1-beta.7":"2026-03-20T07:34:21.143Z","0.1.1-beta.8":"2026-03-20T09:56:16.611Z","0.1.1-beta.9":"2026-03-20T09:59:13.359Z","0.1.1":"2026-03-20T10:27:39.984Z","0.1.2":"2026-03-20T10:28:28.133Z","0.1.2-beta.0":"2026-03-21T20:10:20.056Z","0.1.2-beta.1":"2026-03-21T20:31:28.071Z","0.1.2-beta.2":"2026-03-21T20:42:03.378Z","0.1.3":"2026-03-21T21:03:52.145Z","0.2.0":"2026-04-13T18:01:55.638Z","0.3.0":"2026-04-20T06:06:11.631Z","0.3.1":"2026-04-21T11:55:25.714Z","0.4.1":"2026-04-23T11:10:32.704Z","0.4.2":"2026-04-23T16:35:03.626Z","0.5.0":"2026-04-24T20:53:53.199Z","0.5.1":"2026-05-04T11:23:40.029Z","0.6.0":"2026-05-21T06:14:59.339Z","0.7.3":"2026-05-23T21:06:24.826Z","0.7.4":"2026-05-23T21:39:18.948Z","0.7.5":"2026-05-25T13:57:35.602Z","0.7.6":"2026-05-25T14:46:08.654Z","0.7.7":"2026-05-25T17:37:31.421Z","0.8.0":"2026-05-29T17:09:17.781Z","0.8.1":"2026-05-30T10:48:26.670Z","0.8.2":"2026-06-16T07:48:54.278Z","0.8.3":"2026-06-18T14:33:34.788Z","0.8.4":"2026-06-18T16:19:31.903Z","0.9.0":"2026-07-27T08:31:38.882Z","0.9.1":"2026-07-27T08:38:44.395Z","0.9.2":"2026-07-27T10:52:30.944Z","0.9.3":"2026-07-27T14:03:27.732Z","0.9.4":"2026-07-27T18:50:07.560Z","0.9.5":"2026-07-28T05:35:27.435Z","0.10.0":"2026-07-28T18:22:27.480Z","0.10.1":"2026-07-28T19:49:56.837Z","0.11.0":"2026-08-08T12:26:04.942Z","0.12.0":"2026-08-23T11:10:03.270Z","0.13.0":"2026-08-28T08:26:43.718Z","0.14.0":"2026-08-30T15:11:30.893Z"},"bugs":{"url":"https://github.com/whit3st/demo-reel/issues"},"license":"MIT","homepage":"https://github.com/whit3st/demo-reel#readme","keywords":["automation","cli","demo","playwright","video"],"repository":{"url":"git+https://github.com/whit3st/demo-reel.git","type":"git"},"description":"Create demo videos from web apps using Playwright","maintainers":[{"name":"fenerinyo","email":"alican15033@gmail.com"}],"readme":"# Demo Reel\n\n![Coverage](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/whit3st/demo-reel/main/.github/badges/coverage.json)\n![Vulnerabilities](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/whit3st/demo-reel/main/.github/badges/security.json)\n\nCreate professional demo videos from web apps. Code your demos in TypeScript, with automatic voiceover and subtitles.\n\n## Quick Start\n\n```bash\npnpm add -D demo-reel\n```\n\n```typescript\n// demos/my-feature.demo.ts\nimport { generate } from \"demo-reel\";\n\nawait generate(\n  {\n    name: \"signup\",\n    outputDir: \"./output\",\n    video: { resolution: \"FHD\" },\n    cursor: \"dot\",\n    motion: \"smooth\",\n    typing: \"humanlike\",\n    timing: \"normal\",\n    outputFormat: \"mp4\",\n\n    voice: {\n      provider: \"piper\", // \"piper\" | \"chatterbox\" | \"chatterbox-multilingual\" (local/free) | \"openai\" | \"elevenlabs\"\n      voice: \"en_US-amy-medium\", // auto-downloaded on first use\n    },\n\n    auth: {\n      loginSteps: [\n        { action: \"goto\", url: \"https://myapp.com/login\" },\n        { action: \"type\", selector: { strategy: \"id\", value: \"email\" }, text: \"demo@example.com\" },\n        { action: \"type\", selector: { strategy: \"id\", value: \"password\" }, text: \"password\" },\n        { action: \"click\", selector: { strategy: \"class\", value: \"btn-primary\" } },\n      ],\n      validate: {\n        protectedUrl: \"https://myapp.com/dashboard\",\n        successIndicator: { strategy: \"custom\", value: \"h1:has-text('Dashboard')\" },\n      },\n      storage: { name: \"demo-session\", types: [\"cookies\"] },\n    },\n\n    setup: [\n      // Runs before recording (off-screen) — create test data, navigate\n      { action: \"goto\", url: \"https://myapp.com/dashboard\" },\n    ],\n\n    cleanup: [\n      // Runs after recording — delete test data\n    ],\n\n    scenes: [\n      {\n        narration: \"Welcome to our app. Let's create a new project.\",\n        isIntro: true,\n        steps: [\n          {\n            action: \"hover\",\n            selector: { strategy: \"testId\", value: \"new-project\" },\n            delayAfterMs: 800,\n          },\n          {\n            action: \"click\",\n            selector: { strategy: \"testId\", value: \"new-project\" },\n            delayAfterMs: 1500,\n          },\n        ],\n      },\n      {\n        narration: \"Fill in the details and click Create.\",\n        steps: [\n          {\n            action: \"type\",\n            selector: { strategy: \"id\", value: \"name\" },\n            text: \"My Project\",\n            delayAfterMs: 500,\n          },\n          {\n            action: \"hover\",\n            selector: { strategy: \"custom\", value: \"button[type='submit']\" },\n            delayAfterMs: 600,\n          },\n          {\n            action: \"click\",\n            selector: { strategy: \"custom\", value: \"button[type='submit']\" },\n            delayAfterMs: 2000,\n          },\n        ],\n      },\n    ],\n  },\n  { verbose: true },\n);\n```\n\n```bash\npnpm build && pnpm demo-reel demos/my-feature\n```\n\nOutput: `output/signup.mp4` + `.srt` + `.vtt` + `.meta.json`\n\nAdd a deterministic cover image by placing one `cover` action in the recorded\ndemo steps. The action waits for a meaningful ready marker instead of relying\non a fixed timestamp:\n\n```typescript\n{\n  action: \"cover\",\n  selector: { strategy: \"testId\", value: \"dashboard-ready\" },\n  timeoutMs: 15000,\n  settleMs: 300,\n}\n```\n\nThis produces `output/signup.png` beside the video. A config may contain zero\nor one cover action; more than one is rejected during validation. The locator\nshould identify content that is rendered only when the desired scene is ready.\n\n## How It Works\n\n1. **You write a `.demo.ts`** — TypeScript config with steps, scenes, and narration\n2. **`generate()` handles everything** — compiles config, generates voiceover, records the video, outputs subtitles and metadata\n\n### Requirements\n\n- **Node.js 18+** — for running your demo scripts\n- **Playwright** — `pnpm exec playwright install chromium` (peer dependency)\n- **FFmpeg** — for video/audio processing (installed via `ffmpeg-static` or system package)\n- **Piper** (optional) — for local TTS voiceover (auto-downloaded on first use, no setup needed)\n- **Chatterbox** (optional) — highest-quality local TTS, English or 23 languages; needs a one-time Python env (see [Provider Details](#provider-details))\n- **API keys** (optional) — `ELEVENLABS_KEY` or `OPENAI_API_KEY` for cloud TTS\n\n## Claude Code Integration\n\nBuild demo scripts interactively with Claude Code:\n\n```bash\npnpm demo-reel setup   # shows how to install the /demo-script plugin\n```\n\nThen use `/demo-script` in Claude Code:\n\n```\n/demo-script https://myapp.com show the signup flow\n```\n\nClaude crawls your app, builds the script with you scene by scene, and generates the `.demo.ts`.\n\n## Track CLI\n\nUse `track` when you already know the flow you want to capture and want AI to start from your real interactions instead of re-exploring the app.\n\n```bash\ndemo-reel track --name=create-template\ndemo-reel track --name=create-template --url=app.example.com/templates\ndemo-reel track --name=create-template --session=my-app --url=app.example.com/templates\n```\n\nThat opens a headed Playwright browser, optionally navigates to the provided URL first, and writes `create-template.track.json` in the current directory when you close the browser or press `q` in the terminal.\n\nIf `--url` does not include a scheme, `track` prepends `https://` automatically.\n\n`track` also supports pause/resume controls in the terminal:\n\n- `r` resumes recording\n- `p` pauses recording\n- `q` stops and writes the track file\n\nFor login-heavy flows, use `--session <name>`. That starts `track` paused, restores any previously saved auth state, and enables:\n\n- `s` to save the current browser session into `.demo-reel-sessions/<name>.json`\n\nRecommended auth-safe flow:\n\n1. Run `demo-reel track --name=create-template --session=my-app --url=app.example.com/templates`\n2. Log in while recording is paused\n3. Press `s` to save the session\n4. Press `r` to start recording the real demo flow\n\nThe written `.track.json` is normalized for AI consumption before it is saved.\n\nIt still reflects your real flow, but it now collapses noisy low-level browser activity:\n\n- scroll bursts become a small number of meaningful scroll events\n- typing bursts become final field values instead of one event per keystroke\n- duplicate navigation bursts are reduced\n- obvious weak selectors like generic buttons are upgraded when possible\n\nSee `TRACKING.md` for the raw file format and guidance for AI tools that consume `.track.json` files.\n\n## Configuration\n\n### Voice / TTS\n\n```typescript\nvoice: {\n  provider: \"piper\",             // \"piper\" | \"chatterbox\" | \"chatterbox-multilingual\" | \"openai\" | \"elevenlabs\"\n  voice: \"en_US-amy-medium\",      // any voice name or ID supported by the provider\n  speed: 1.0,\n  pronunciation: {                // word replacements before TTS\n    \"template\": \"template\",       // prevent Dutch pronunciation of English words\n  },\n},\n```\n\nVoiceover is auto-generated when `scenes` have `narration` text and `voice` is configured. Cached by content hash — only regenerates when narration changes.\n\n#### Provider Details\n\n**Piper** (local, free) — voice is a model name like `en_US-amy-medium`. Auto-downloaded from HuggingFace on first use. Models are cached in `$PIPER_VOICE_DIR` (defaults to `~/.local/share/piper-voices`). For custom models, use `voicePath` instead of `voice`:\n\n```typescript\nvoice: {\n  provider: \"piper\",\n  voicePath: \"/path/to/custom-voice.onnx\",\n  speed: 1.0,\n}\n```\n\n#### Chatterbox (local, free, highest quality)\n\nResemble AI's Chatterbox ships as **two separate checkpoints**, exposed here as two providers. They are different models with different sampling defaults, not one model with a language switch — so picking between them is an explicit choice rather than something inferred from your config:\n\n| Provider                  | Model                   | Languages    | Use when                                             |\n| ------------------------- | ----------------------- | ------------ | ---------------------------------------------------- |\n| `chatterbox`              | Chatterbox Turbo        | English only | You want the English-tuned checkpoint                |\n| `chatterbox-multilingual` | Chatterbox Multilingual | 23           | Anything non-English, or one provider for everything |\n\nBoth do zero-shot voice cloning: point `voicePath` at a 7-15s reference clip, or omit it for the built-in voice.\n\n```typescript\nvoice: {\n  provider: \"chatterbox-multilingual\",\n  language: \"nl\",                         // required for multilingual; defaults to \"en\"\n  voicePath: \"./voices/brand-voice.wav\",  // omit to use the built-in voice\n  speed: 1.0,\n}\n```\n\nSupported `language` values: `ar` `da` `de` `el` `en` `es` `fi` `fr` `he` `hi` `it` `ja` `ko` `ms` `nl` `no` `pl` `pt` `ru` `sv` `sw` `tr` `zh`. Anything else is rejected at config-validation time.\n\nCached audio is keyed on the language too, so switching languages regenerates rather than serving stale audio.\n\nTrade-offs versus Piper: ~3x slower than realtime on CPU (a 3-minute narration takes ~9 minutes to generate, once — results are cached by content hash), a multi-GB one-time model download per checkpoint, and output carries an inaudible Resemble watermark. `speed` is applied with FFmpeg `atempo` since Chatterbox has no native pace control.\n\nSetup (shared by both providers):\n\n```bash\nuv venv --python 3.12 ~/.local/share/demo-reel-tts/venv\nVIRTUAL_ENV=~/.local/share/demo-reel-tts/venv uv pip install \\\n  --index-url https://download.pytorch.org/whl/cpu torch==2.6.0 torchaudio==2.6.0\nVIRTUAL_ENV=~/.local/share/demo-reel-tts/venv uv pip install chatterbox-tts\n```\n\nBoth providers look for `~/.local/share/demo-reel-tts/venv/bin/python`, then fall back to `python3`. Override with `DEMO_REEL_CHATTERBOX_PYTHON`. Model weights download on first use and are cached under `~/.cache/huggingface`.\n\n**OpenAI** — voice is an OpenAI TTS voice name (e.g. `alloy`, `nova`, `shimmer`). Requires `OPENAI_API_KEY` env var.\n\n**ElevenLabs** — voice is an ElevenLabs voice ID string. Requires `ELEVENLABS_KEY` or `ELEVENLABS_API_KEY` env var.\n\n### Setup & Cleanup\n\n```typescript\nsetup: [\n  // Runs in a separate browser BEFORE recording (not visible in video)\n  { action: \"goto\", url: \"https://myapp.com/\" },\n  { action: \"click\", selector: { strategy: \"id\", value: \"create-workspace\" } },\n],\n\ncleanup: [\n  // Runs AFTER recording (even on failure) — delete test data\n  { action: \"goto\", url: \"https://myapp.com/admin\" },\n  { action: \"click\", selector: { strategy: \"custom\", value: \"button.delete\" } },\n],\n```\n\nSetup and cleanup run in tolerant mode — failed steps are skipped.\n\n### Scenes & Subtitles\n\n```typescript\nscenes: [\n  {\n    narration: \"Welcome to our app.\",\n    isIntro: true,\n    steps: [\n      { action: \"goto\", url: \"https://myapp.com\" },\n      { action: \"wait\", ms: 1500 },\n    ],\n  },\n  {\n    narration: \"Let's create something.\",\n    steps: [\n      { action: \"click\", selector: { strategy: \"id\", value: \"create\" } },\n    ],\n  },\n],\n```\n\n- `narration` — voiceover text (also used for subtitles)\n- `steps` — steps that belong to this scene\n- `isIntro` — marks the intro scene (used by presentation systems to skip context)\n\nGenerates `.srt`, `.vtt` (subtitles) and `.meta.json` (scene timestamps for interactive players).\n\n> **Legacy compatibility:** You can also use the older format with a single top-level `steps` array and `scenes` referencing `stepIndex`. The two formats cannot be mixed.\n\n### Steps\n\n| Action    | Description                                                          |\n| --------- | -------------------------------------------------------------------- |\n| `goto`    | Navigate to URL                                                      |\n| `click`   | Click an element                                                     |\n| `hover`   | Hover over element                                                   |\n| `type`    | Type text into input                                                 |\n| `press`   | Press a key                                                          |\n| `scroll`  | Scroll element                                                       |\n| `select`  | Select dropdown option(s)                                            |\n| `check`   | Check/uncheck checkbox                                               |\n| `upload`  | Upload files                                                         |\n| `drag`    | Drag and drop                                                        |\n| `wait`    | Wait for duration                                                    |\n| `waitFor` | Wait for condition (selector, URL, load state, network, JS function) |\n| `cover`   | Wait for a ready locator and capture the deterministic cover image   |\n\n### Selectors\n\n```typescript\n{ strategy: \"testId\", value: \"submit-button\" }     // data-testid\n{ strategy: \"id\", value: \"username\" }               // id (no #)\n{ strategy: \"class\", value: \"btn-primary\" }         // class (no .)\n{ strategy: \"href\", value: \"/dashboard\" }           // link href\n{ strategy: \"custom\", value: \"button:has-text('Save')\" }  // any CSS selector\n{ strategy: \"class\", value: \"card\", index: 2 }      // nth match\n```\n\n### Presets\n\n```typescript\ncursor: \"dot\" | \"arrow\" | \"none\";\nmotion: \"smooth\" | \"snappy\" | \"instant\";\ntyping: \"humanlike\" | \"fast\" | \"instant\";\ntiming: \"normal\" | \"fast\" | \"instant\";\nvideo: {\n  resolution: \"HD\" | \"FHD\" | \"2K\" | \"4K\";\n  span: \"scenes\" | \"session\";\n}\n```\n\n### `video.span`\n\nRecording starts when the browser context is created, which is before the first\nscene: with `auth` configured, the session restore navigates and the app loads\ninside the recording, and teardown runs after the last scene. That footage is\ncaptured but was never asked for, and no step can reach it because it happens\noutside the scenes entirely.\n\n- **`\"scenes\"`** (default) — the video is the span the scenes occupy. The\n  pre-roll and tail are measured per run and cut before the audio is mixed.\n- **`\"session\"`** — everything the recorder captured, including the load and the\n  teardown. Use it when the approach to the app is itself the subject, or to\n  keep the pre-0.12 behaviour.\n\nIt is a policy rather than a duration on purpose. The pre-roll is an app cold\nstart and is not stable — across 15 consecutive runs of one real app it ranged\nfrom 3.7s to 9.5s — so no number written here could be right twice. demo-reel\nmeasures it on each run instead.\n\n### `video.zoom`\n\nThe camera zooms the frame to a percentage and follows the synthetic pointer\nwhile it moves, then eases back out — Screen-Studio-style framing, baked into\nthe recording itself, so every output format demo-reel renders today (mp4,\nwebm), and the planned GIF export, inherits it.\n\n```ts\nvideo: {\n  resolution: \"FHD\",\n  zoom: {\n    mode: \"auto\",     // \"off\" (default) | \"manual\" | \"auto\"\n    percent: 150,     // zoom level when engaged (100–400)\n    deadZone: 0.3,    // fraction of the viewport the cursor may roam without panning\n    leadMs: 250,      // eased zoom-in before an auto-triggered action\n    settleMs: 600,    // hold on the target after the action before easing out\n  },\n},\n```\n\n- **`\"off\"`** records unzoomed, exactly as before.\n- **`\"manual\"`** responds only to explicit `{ action: \"zoom\" }` steps.\n- **`\"auto\"`** additionally eases onto every click/hover/type/fill/press/\n  select/check/drag target, holds through the action, and eases back out —\n  unless the next step works the same element, in which case the shot holds.\n\nThe `zoom` step is author-directed camera work and runs under any mode:\n\n```ts\n{ action: \"zoom\", percent: 200, target: { strategy: \"testId\", value: \"checkout\" } },\n// ... steps play framed on checkout ...\n{ action: \"zoom\", direction: \"out\" },\n```\n\nScenes can override camera settings for their span (`scenes[i].zoom`), merged\nover `video.zoom`; step parameters win over both. Zooming is browser-style:\nlayout reflows like a real user pinching, text stays crisp, and clicks land\nexactly where Playwright aims them. Camera animation takes real time, which\nthe recorded timeline already measures — narration placement is unaffected.\n\n## Modular Video Series\n\nDemo videos are designed as standalone segments that also work as a series:\n\n```\ndemos/\n├── the-internet-login.demo.ts               # login flow (goto, type, click, hover)\n├── the-internet-dynamic-controls.demo.ts    # async UI changes (waitFor)\n├── the-internet-checkboxes-dropdown.demo.ts # form controls (check, select)\n├── the-internet-file-upload.demo.ts         # file input (upload)\n├── the-internet-hovers.demo.ts              # hover reveals (hover)\n└── the-internet-drag-drop.demo.ts           # column swap (drag)\n```\n\nEach video is independently recordable. For apps requiring login, use the `auth` + `setup` blocks to recreate state from scratch.\n\n## CI/CD\n\n```yaml\nname: Generate Demo Videos\non: push\n\njobs:\n  demos:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: pnpm/action-setup@v4\n      - uses: actions/setup-node@v4\n        with:\n          node-version: 22\n          cache: pnpm\n      - run: pnpm ci\n      - run: pnpm exec playwright install chromium\n      - run: pnpm build\n      - run: pnpm demo-reel demos/the-internet-login\n      - uses: actions/upload-artifact@v4\n        with:\n          name: demo-videos\n          path: ./output/*.mp4\n```\n\nPiper binary and voice models download automatically on first run — no secrets needed for the built-in demos. For cloud TTS, add secrets in your repo settings and pass them as env:\n\n```yaml\n- run: pnpm demo-reel demos/my-demo\n  env:\n    ELEVENLABS_KEY: ${{ secrets.ELEVENLABS_KEY }}\n    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}\n```\n\n## License\n\nMIT\n","readmeFilename":""}