{"_id":"@arinze-clinton/loupe","_rev":"40-fd8e56fcac55249a80a8ff4d39b9bf50","name":"@arinze-clinton/loupe","dist-tags":{"latest":"0.11.0"},"versions":{"0.1.1":{"name":"@arinze-clinton/loupe","version":"0.1.1","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.1.1","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"1fabaa03f05fea757b09501acc80faaf264503c8","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.1.1.tgz","fileCount":12,"integrity":"sha512-///HfoI9vkvFIkI3ju6qNGWORVklvcNtT1XakUT6PEV9CEp1qqx9MfOSi36xrIzFhrXcSot6CQoMfo1hmc5iGg==","signatures":[{"sig":"MEUCIQDSuULvpv+C0J9ZhJ7aBczbsjvGT15zDllsPnBqrnBvggIgI/y6nHmu41qKNpce55XFS2h/OhA9+H3bnB7j4E/f71E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621307},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"11a2d93c4d13f787d776cbfc620a57ff4f034c28","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"10.8.2","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","framer-motion":">=11"},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.1.1_1776737444455_0.681054558206104","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@arinze-clinton/loupe","version":"0.1.2","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.1.2","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"565e4278a8c0b2d6bd763fce54dcd713a053e493","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.1.2.tgz","fileCount":12,"integrity":"sha512-374qtJODRCfKJrwTsM3L4Km5FTILqOtf4C+U/+A6GzbFzXuUPdOC6z2ZLvLeafnk/W8xBd+18a0L81yOM9NVtg==","signatures":[{"sig":"MEUCIQCRzyuXsnu41/4SXfZu3xxgmQU7ocBl7JHf3bZ3KVrddgIgd1KfRo0eoaNFwe/kvsaFR4nhjW4azl925FmMJJ+lPEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621307},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"fe0fa64aca219bea54095339048291dbeaf2d018","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"10.8.2","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","framer-motion":">=11"},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.1.2_1776737971382_0.1712777353535362","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@arinze-clinton/loupe","version":"0.2.0","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.0","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"9eba68623baace6d017504e5276181baff2d96d8","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.0.tgz","fileCount":18,"integrity":"sha512-G4Nih5w4Z4J2ffGC82vgoMlerPZeJ+i1a7+plAREDqvhU/JVU8wH4LRP9iEp2xt6TXlRfQTtXB3+ZqKcVm2rdw==","signatures":[{"sig":"MEUCIQDrJGNlB5qsvPmHUQuWCBGBHDIdz66KwQUlGMXFncdSmQIgfzJNnY6luZYtjetVFbHdDTBOU2YlGBYa2N8KmKZXdN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":681785},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"2d4a506a08f0669b2a4fc3574102033c62bfebc0","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.0_1776856761298_0.09678894697007623","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@arinze-clinton/loupe","version":"0.2.1","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.1","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"6b2a11adb763dab39ded6d989076d788a14f5714","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.1.tgz","fileCount":18,"integrity":"sha512-yhX4jDimXiUL6e3FYWBCk14AQfjOsBwRB54na+lE4Mtg8dmf5BMoYgAOjisfRXESru7vjxCJL7froESb4wwesQ==","signatures":[{"sig":"MEUCIAp3SMBBZchcxNpaqd7n5omRInE92fnhYwsWjjcn/sLGAiEAmME22H7wT/8gTg6xCCCx57oErtzt3kGbvg82FSClyQc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":659145},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"2d4a506a08f0669b2a4fc3574102033c62bfebc0","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.1_1776858032441_0.43616771752086225","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@arinze-clinton/loupe","version":"0.2.2","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.2","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"acc691959b4cab306ab06bfe6b9600ee1c11daf5","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.2.tgz","fileCount":18,"integrity":"sha512-abh2B1MylPi1gNCa/McMZqSjKJSATzAFpDPFEfZ+MhAqPEG3qgst1Yp7hpisNFH20xpdRfjuBAUcvUaDHp3FEw==","signatures":[{"sig":"MEUCIGwcF6T9JWt0OH+DUSa4+zF+tlgNZu0J50rHoxM+2CSMAiEAt0c3HwgtX8SDvJNvPTT1KdtCTN65Vha6xwbQHcfbINg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":691177},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"00f08d237a9172998691f4bf387d4e8dbcf6af9c","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.2_1776864938427_0.037649316955742584","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@arinze-clinton/loupe","version":"0.2.3","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.3","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"e406012e51185c9f6a7a0989fa1f51c0db41bfb4","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.3.tgz","fileCount":18,"integrity":"sha512-5cy7NT64IUtRvDe05M/C1OTqDSA0S9k3SguET9uGsfGI/mfnJpPUOD9l5cPrvPciK53PDETvROJJqg8roTehjw==","signatures":[{"sig":"MEQCIG2E1kVh5qrasbdBZ7VODObzkz/aJrnhLiRAhwPQKIa8AiAUsZw8sZVhl4GGYujxeTEbzzzFZ75USNo0VrkJ0nvYfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":700587},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"c10f757a64cff468e5badaae33e4314c757b44ef","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.3_1776866475625_0.7291160181434819","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@arinze-clinton/loupe","version":"0.2.4","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.4","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"3562dbf5cc4af665bbb50afae4027105edb6de90","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.4.tgz","fileCount":18,"integrity":"sha512-w7UwqIRCNW2fGhAgD7fsXZc7Mm82Q3Q4JDsGQAX6U0wHZfclxzR1YgvbGAkDqdO1PlRnSo/xIcsv9A499cO0+A==","signatures":[{"sig":"MEYCIQCbUJpim9WhrAQvCDR9If1uUnl6Jd3e9ovTuJkhedsmugIhAPVhMUvoJ8N8T1sVfkgvdkLaHj8Uoi8KaD6PP20sKzsR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":701264},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"54149b059ce624d3b6dd4b92fd993af846215576","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.4_1776867821313_0.5422809702788829","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@arinze-clinton/loupe","version":"0.2.5","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.5","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"c90a2406b8a494835194bb45af327edb12908bdc","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.5.tgz","fileCount":18,"integrity":"sha512-AXPWDyJGsTLnADaCrO3R5GH/C7zPLQPKgFKqCFkPckl5e1e1qSMG0ECsPTOPYSmKTf/9J4wrtUqDG3feYkGGgg==","signatures":[{"sig":"MEQCIDumNFiR9oXHELv9v90YFgZuSyxKa9puztg6+smz83trAiBAIVPKTpIclElgpOCkRsKyHyQgipS2CtwjuJac4Sr7bQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":704928},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"6433d43f281293db6cea776de27634eb2391bfee","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.5_1776868175284_0.532242062623411","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@arinze-clinton/loupe","version":"0.2.6","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.6","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"b5ac382a856b948901440fa0da1c3a1ac96da3eb","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.6.tgz","fileCount":18,"integrity":"sha512-tbWpIGvcZkzDEe99ATih/L1kxyib/6gCIIHrDSk94MR3mR7pA5HeXkOxVvpxg66iCTntN8w5VdTtx17rHOFHVA==","signatures":[{"sig":"MEUCIQC5qJzEmgeyT/85VHGGamEwWs5FWdeTtHW6wt2733LToQIgBrMcnR5B/a+EjigZoI6+wPHp6h7TeN0VhFwfRSe+aGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":723882},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"ece334fbd0b4e7dc7c6516214f8083a7233151a7","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.6_1776868576304_0.43685064168683896","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@arinze-clinton/loupe","version":"0.2.7","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.7","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"6a1960d3ad1d717c3522b07ff61f3b082c647b04","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.7.tgz","fileCount":18,"integrity":"sha512-dCe+mU1b4JzxvZhm7PP73kBH51hD62I1IV86jUI9OSJ/Ptvlvk2jWuKFXU2cSP6GnoLSxJdyFptkGW06uzi3lQ==","signatures":[{"sig":"MEYCIQCuhX04MpgD4Us8IDzsptC4rV8FXCpSZhDyagSMpB00rgIhAJYGLlapi5iYlFICCxjDOPHmizPOOKmLe/rIKQxk3PTl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":744910},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"c6af796f1604adf67a1172313a24588e3c984cdb","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.7_1776869016733_0.42037797286669654","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@arinze-clinton/loupe","version":"0.2.8","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.8","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"380256a16b4910e80eb46399b474efeff27662c1","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.8.tgz","fileCount":18,"integrity":"sha512-IRjX2toApQTdnfEpriE7T2veJHBkGl/LNhlen24Sv8ayhC8MjC0hO8IrM7bMC6ZBITE7VkJqEq+00nt84sMBkA==","signatures":[{"sig":"MEUCID80Kr/CUradIFnI4xaVkssR3pVPNEjIpPAxXE5YEdYgAiEAk3bfZwpGtPlDhOE17CIg1Auqq9ig0/19hbrMskXhihU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":755377},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"dc57c16c156a6c211be54e721aacf7d8e05a527e","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.8_1776869566779_0.1740962815470828","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@arinze-clinton/loupe","version":"0.2.9","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.9","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"4a54c195879bad8e6f4bec177787beb9cf98bba0","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.9.tgz","fileCount":18,"integrity":"sha512-2ECk/uSiGLShNFJFtF8Fqa6wjZNvTPtCXqD15GSi/Utpx/SMK1aP0SK03ZGgb0nmkQw8JsmFDVlm8gVPi7hF8g==","signatures":[{"sig":"MEYCIQDkES/I3gRr41lSY31UGN3kTeN233f9vugnrDdKCZqeaQIhALMX72FQZab5nQrbjzXiuAmHtv4tMt2bQh2iCSLmlh8o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":754506},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"897a6657ff4bff941a5124cbec5828693d4db02b","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.9_1776869776664_0.12428330165755064","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@arinze-clinton/loupe","version":"0.2.10","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.10","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"84e2e1c85cf7dd6bd7b32fef8f2dbf044b57a672","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.10.tgz","fileCount":18,"integrity":"sha512-NSM7ppXLtCQI/nL9ZDcrkWUH3kQUTMos9VG2CL/jqwEWNVkyTk/X7SGaFk5kw9XY8eiPsNvaw5MoVYOTMllOZw==","signatures":[{"sig":"MEYCIQCZR14fZgcBoj00E1cXFjbhgxCTDTsvDVyR2zd1GQ1+rQIhAMpCTn6iy1ZTivQdXe62743dTI3Cmi2+tfhuD5Jcn2SP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":752021},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"56873bc19b5adad26efab2e77e245d887d8a3299","private":false,"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.10_1776869936521_0.20689738253861667","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@arinze-clinton/loupe","version":"0.2.11","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.11","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"9190df0839b181df73ed4aa5faeac6e3ffae5cd4","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.11.tgz","fileCount":19,"integrity":"sha512-xvRgVFHs2Cs5EWc4zQyRfmEWdwY1BM5OfibENwMi1u/wwQPGX+WJcZxdIM7bG2wITN/jLX6Zi8Yk2gYdwkhncQ==","signatures":[{"sig":"MEYCIQCuMTdWHfvvq/BgQ5g+tEkt+LSrTzLQ8QuyypHZmk9WfAIhANmVWk7nCmIi3H0e+h14O5AfSHFdk1i/QU5uXGbrs7tu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":760542},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"6e9d7eed48d53da6240564920fd5cc163856596b","private":false,"scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.11_1776870580631_0.5191955481409032","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@arinze-clinton/loupe","version":"0.2.12","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.12","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"6922e2fd29e8afd2fbcc261261bb19f6ab5f9da3","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.12.tgz","fileCount":19,"integrity":"sha512-XoggpqS4gvVUlA+oLOE8gkqK9Bd03tLBqE1FwIv7kIVIO9y5A3PQiOSMAaq7pZSMQkJQsGKcZY+i+2uIwqoKFQ==","signatures":[{"sig":"MEYCIQDUls8Lx4sV+k6euaAPAc+UXXFcPe7v0wh/5lEuPhyG0AIhALYStKc1ilyE4InVG2XSXeln84vAhkQ0CgsnYTVGm7Jr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":773373},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"05c85a66137caa78fc8843dea6f568109259e555","private":false,"scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.12_1776871738895_0.7700441072419517","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@arinze-clinton/loupe","version":"0.2.13","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.13","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"3b7e0711d1d522ce3817199e81725952d826fb38","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.13.tgz","fileCount":19,"integrity":"sha512-a3ihSXgt3X0k+bGcUro/gVjGIlD8BzGbkbyYXaYumbMT+Quc7EpmTyBz/qNZtjvlxRRozfaPYM/8GcmVuRyNBA==","signatures":[{"sig":"MEQCIDaV7KNSfFEeR7AbBaXgOGSzPpVNNAmGq5vyszj+xceAAiBAUXPekDpAztzN9aYQ9r77D7EcEvTxCYLuDyqbNYQ83A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":791639},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"7be661f81c91a914a67ded4d17e15c2e867e077a","private":false,"scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.13_1776872266365_0.43468796782450636","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@arinze-clinton/loupe","version":"0.2.14","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.14","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"ca6971271848b87cfe5e601431e244f7c5cf16cf","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.14.tgz","fileCount":19,"integrity":"sha512-G2u7RJ4g0mE1knrOVOEKG8eANKvrijw6Uqy/sPqaXvBWQ2M17MyQPnf/uWHARUzjD/E16pPzaxeoCzFizJEGSA==","signatures":[{"sig":"MEQCIEBR3VT4GD4u7CqMumJRGJqbY1/0f2q4Gt0CMrWBjBNtAiBX/YzPKQs8EkbSLjhnwX04R3K+iHFyCebbr9WCz9FaXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":795759},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"3b7858f2940ba6d2a3e286cee7ec010d57652ea8","private":false,"scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.14_1776873607602_0.2814991316205466","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@arinze-clinton/loupe","version":"0.2.15","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.15","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"6f00bf37547c71c03297f2733925753ca5049513","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.15.tgz","fileCount":19,"integrity":"sha512-V4UKx+2E1nP7H2xPVSKf4ROpFMAfeYa3iOn2kUuZrjFwfG6+JmcIihQsVzkB7Wy/icmpKT8iqic0VFmuFnLPoQ==","signatures":[{"sig":"MEUCIDFx5BtcibdYFfkMaFeTn9FcP5gkrPRMaLEDV8ZsXz1/AiEAwor+pSc7lf9YqAwVdXcWI4+kqMV+SURbrO25QdFx0dc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":810289},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"2b3d5aa0db582685001d2986c1344c672fafb2a2","private":false,"scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.15_1776878234578_0.24766719828338335","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@arinze-clinton/loupe","version":"0.2.16","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.16","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"36e47468ade5d0859947fdaef1f9c05322c980d5","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.16.tgz","fileCount":19,"integrity":"sha512-UA5SKs803hE4YHfvdL9oD3LHnDJCTSavG3x7uhBuZsBscfCnTTQgSRm6HMRk88COVM36GkwOTPgWVP1EjN73mQ==","signatures":[{"sig":"MEUCIDFO9OUSKn51RLGC0kKwmNM68oY91E+wDP/GM3qsYjHMAiEA9VpafoSp+R3YFfkfh0B7DyC/raYIGJnjcFV35hp31hA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":811504},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"cd6a1c104ee4233746a30bed9599c5adbfefff0c","private":false,"scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.16_1776878321036_0.4874872491505198","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"@arinze-clinton/loupe","version":"0.2.17","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.17","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"904424d15cf2cbd3c90314ac190563c912cf4199","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.17.tgz","fileCount":19,"integrity":"sha512-vWiJrAqK49wMmeZZReofMEIbEQVr7+pTarNIkLuwPtu9RG3caSfRC3lMmFUAg5HhDLk7js9pDC9gy4ohRcfIig==","signatures":[{"sig":"MEYCIQDFdNLE+JzHwaUnkjhNLny6bht9G3ghvsxjwqZKd//sEAIhAPw5b5Mjbu4Tr+woFYOUgG63FqdPRrg0yNAXUJ5k/Nxn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":859688},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"82ccdd2e0393fe58ec7ac9305a497d2ea7692535","private":false,"scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.17_1776883338550_0.2286926723073286","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"@arinze-clinton/loupe","version":"0.2.18","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.18","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"50d7bb1ecc8fc087b63c0fbffdd3ac7f05596ab2","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.18.tgz","fileCount":19,"integrity":"sha512-v9cZ8TGTXL/W/p2oz3mNei2E3GbEN1xwSGZUh63lMPBaZP+K/SbIqFMQ+XJ+az4NtIeo6WkvEQwLs5jUvW4lgA==","signatures":[{"sig":"MEQCIBGL29byJxwLepY0YHynEUUNeU13j4+uJ7t72Oa6vkzsAiB21f1IcKxVh474CFT21m4ZXtCZTfXLpGpwEuaJvOlccg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":860490},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"58926bf03b47fd00d68c489e974e4e89e74acfac","private":false,"scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.18_1776883598111_0.06773382917100168","host":"s3://npm-registry-packages-npm-production"}},"0.2.19":{"name":"@arinze-clinton/loupe","version":"0.2.19","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.19","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"5da402e7923075c58a456931804d8a3c4049cd6c","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.19.tgz","fileCount":19,"integrity":"sha512-TLJ5cHqfOo/hrwxQhnpn/s7Z1eL1jdVFwsHvS8uGp0An91HT4SKE1+I5VilbQUShOUCjlHOputwQwLAMLe0KtA==","signatures":[{"sig":"MEQCIEknKA6VU33WKTcHIQbamCCA0auUDWTftLJg89U8LLo1AiBMNrUpyikvKT5sXqtaqiLBd63niyrZqGQ+qSiDNV4o9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":861912},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"df61076190b47ac508f75639d6fba3c84276f085","private":false,"scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.19_1776884712115_0.5858269435465118","host":"s3://npm-registry-packages-npm-production"}},"0.2.20":{"name":"@arinze-clinton/loupe","version":"0.2.20","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.20","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"1f2ca037b498be9cf481cfe15d66b6d714f5e178","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.20.tgz","fileCount":19,"integrity":"sha512-XD5eCpvazl5pqVmOJ/ECFS8p97sFPTTz2aivC68MkeWN6fp+3/YBA0bEq8VrnVgfG7dsuOkCRegqPifBLvfvpg==","signatures":[{"sig":"MEYCIQDATJbFcFy2sZRL73/QdvqqOWNxKmyW24HGoeS18/AVEgIhAJhIVW0/zJQoD/fB5WarinR35xyQO9QXzHuwG2yx3Qux","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872911},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"8901143837d0309053209a4158ed0cb3c2604355","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.20_1778150816775_0.1463975222695213","host":"s3://npm-registry-packages-npm-production"}},"0.2.21":{"name":"@arinze-clinton/loupe","version":"0.2.21","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.2.21","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"6ee674276e166d12ec2016edcb149f7dc5a5ed56","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.2.21.tgz","fileCount":19,"integrity":"sha512-HsDZ2a8BP/VHPbIRwyXLTK/EClGvsjjx8cG7oU5HfPvXLML8w+203Z0licbFKiEHNs2/lcPPZrwPwXtsmbPrcQ==","signatures":[{"sig":"MEUCIDCZpm9Ww/PS3u1TbnWiEb1kSwKf2JNaJ4zg+pabBLFVAiEA3A8GkR4uS+rF4eyVNHmVErmJhxIUsFQNBA6U1HciOVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":873824},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"59b072ee6d86f3a347aa73b90228f4bd80023f63","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.2.21_1778156500679_0.6111625370832834","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@arinze-clinton/loupe","version":"0.3.0","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.3.0","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"1b7ee0afcb55f2365adf102646f661b07546f5ab","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.3.0.tgz","fileCount":19,"integrity":"sha512-HIpAlyyvUZqfx06/x8fF2Rsl4mcwGWMHVmrRYHcl5hw8DaotoClkbuM+WLnO3YagglTYpVIlLCBvXPbfjW3U+w==","signatures":[{"sig":"MEYCIQC5CRgoFwWkSrU2HKlnz8+I9kEc0v/GNfDxVXQy8qshcwIhAITOtJMUPJB56gCu4foeYefQlidolfnZGUdaKjBf4/Oy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1168274},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"a6fac005a0e2b6f788faa0c95f0428d11cedc5d3","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.3.0_1778696211175_0.9413813346038675","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@arinze-clinton/loupe","version":"0.3.1","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.3.1","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"8d7d3aec9d681f7fb58295dd1faa8a9bdc69680e","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.3.1.tgz","fileCount":19,"integrity":"sha512-As1X4LYPPvttnMVbrrYChk5iGFRhKlLewg1ae/je7npyKAgko27Ja2k9qlhLYOdgsk3yxyZqYuCxDsplSOjA4Q==","signatures":[{"sig":"MEQCIF/Jaxu8qLKEDjIE7ewKJ+MELkKmOSSsjSfrFWCqHaVNAiAYsLjEXbShoDnW6AcELZHrqd1jPCYwa2IWHgRAg6qaZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1205197},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"f7076cc0b8a35eb947a025aa8d4eb8948e81b13f","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.3.1_1778840079726_0.6684572282857004","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@arinze-clinton/loupe","version":"0.3.2","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.3.2","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"5e4da0733fa4fd88c6d3c20bef2ab37dfc6dcca1","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.3.2.tgz","fileCount":19,"integrity":"sha512-lIzOt0xYKjCA7HIauLAx462alDxghHDlhvXEgy2aJs++wTI6GkPk+PLoumRqQm0wUUXki5ii9smgiIf4aACq6A==","signatures":[{"sig":"MEYCIQDvlvKKL9aT8BiSHY4fyW4uPJKi9tZREfJ3qh+AxJDGiwIhAP33hp9Wv6tz8CLBFxXa+cu02tAl/d6fDzhJkaiXKt72","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1210248},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"71c13b735ec2f7734f554851dad0cf6d0852da58","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.3.2_1778842148383_0.8228528958711252","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@arinze-clinton/loupe","version":"0.3.3","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.3.3","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"4a0c13251643b49ed40d84168d7110ed89031a7e","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.3.3.tgz","fileCount":19,"integrity":"sha512-q6iotFOkeL2atCXP6E5VcVkz0mLtAiKsMFlomAI9FIljDMaix2P6dclcUB46wLay+B8hhIjqY5HFM97KGDtVeQ==","signatures":[{"sig":"MEUCIQCm7kfJyUhAiKesCSGUTxbDZ9h9B57m9ZUouV7iyddpwAIgLQMj+m2rKx6JCRpvgzGiByZO6hQam554rVn2afiFiuI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1211310},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"1210ad5fe6b6d3d4e956bd188836a5037635144e","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.3.3_1779315349716_0.2939772732173318","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@arinze-clinton/loupe","version":"0.3.4","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.3.4","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"c2ee1c58cbb651e2898a5167e8ccec4b0309301e","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.3.4.tgz","fileCount":19,"integrity":"sha512-YUwoVXvEJ7SvswhO2zLXpmCWS5QBvuAkHu1fuGeV1ABN3ymUW9WASc43ugOl8cJF+DAdI3mRPcCesO1uFs8FVg==","signatures":[{"sig":"MEQCIAxZW/lFESZIy5qsFkd3W+Z+Yhl8QH+9osWcJrTGgAvEAiB+b0P8VuGvLeJBw/GcDYkgg8qkvT5NFN23K7AUwIbDsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1247418},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"14c0f02ca00d488d0a1aa988d142918fef43884e","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.3.4_1779825406503_0.7455598880637568","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@arinze-clinton/loupe","version":"0.4.0","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.4.0","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"16864b5279dc9bb3c250e89f78af78422655a3ce","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.4.0.tgz","fileCount":31,"integrity":"sha512-O2nqEeqeRoc5z/0y1+3IJZ1muStg8mdE2vgR7bv1lIaCl6HCU3AF7jykboq8roR7JQ0YKyWKnKwcXgjeMpIeAA==","signatures":[{"sig":"MEUCIDB97I+JJAThSkvgVNFcMU44OsghXWANvQO1PBhjPKDNAiEA1XbOKNsq9pmgLFBSWxtgy6Oxl8JQDIztBz6TR7C0Jfw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1307770},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./gsap":{"types":"./dist/gsap/index.d.ts","import":"./dist/gsap/index.js","require":"./dist/gsap/index.cjs"},"./waapi":{"types":"./dist/waapi/index.d.ts","import":"./dist/waapi/index.js","require":"./dist/waapi/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"df6ac3de67174bf7cf43f2201a12dac88dd1d34c","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"gsap":"^3.15.0","tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"gsap":">=3","react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"gsap":{"optional":true},"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.4.0_1780321843736_0.17045252975126668","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@arinze-clinton/loupe","version":"0.4.1","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.4.1","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"b231ee9c56b0c37c74a81a7ee152f8c90067252d","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.4.1.tgz","fileCount":31,"integrity":"sha512-MnBiDpSKUIH1eY5VOdJiWjPJc4LyPq3t6lpJ+5EeZs9mA/aJJmsTunaQiPi61dCN+EdJBMtoHIS4dxCViOE7aw==","signatures":[{"sig":"MEUCIFczFSuP739y6mgsbyzD6FYVU27q14uPOH23EDjyraQVAiEAsDkFRqCk9ZRCyRmvZPcEV/YCFfBOkS6nviW8NQqugEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1309268},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./gsap":{"types":"./dist/gsap/index.d.ts","import":"./dist/gsap/index.js","require":"./dist/gsap/index.cjs"},"./waapi":{"types":"./dist/waapi/index.d.ts","import":"./dist/waapi/index.js","require":"./dist/waapi/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"bf4d896c7c7413d3d431764fb608586be2410b82","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"gsap":"^3.15.0","tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"gsap":">=3","react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"gsap":{"optional":true},"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.4.1_1780387717822_0.2359000966349194","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@arinze-clinton/loupe","version":"0.5.0","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.5.0","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"521b34dce9fc285e9720385ca5daa758d65857c7","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.5.0.tgz","fileCount":31,"integrity":"sha512-S2mTi+WjY4EbgtcBXl8NsNG1ITBm+CUGSfpJiv9yhiqsDMsQC3H3OGS+f9EKQcSGUr0D3ZFEIUOe598KkVmgNQ==","signatures":[{"sig":"MEYCIQDpRQiIdRwU8EeapVZ8rt6mIPUjfzr84YofA2B0xcOz6QIhAMp2yyEHU96Om0gra1jntETZKOTMbLBUdS3Zj63ywGtG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBZchnf6GPcpFjmWyd9M0n3aS5IwhcHqLavchdzaCyXxAiEA4If0nk0ftoqUWA25gMoiSjq3EcnOlMPWtU4gp5JYmBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1343716},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./gsap":{"types":"./dist/gsap/index.d.ts","import":"./dist/gsap/index.js","require":"./dist/gsap/index.cjs"},"./waapi":{"types":"./dist/waapi/index.d.ts","import":"./dist/waapi/index.js","require":"./dist/waapi/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"2f71a9e2cd479a68b3aaba345c456a7929577a41","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"gsap":"^3.15.0","tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"gsap":">=3","react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"gsap":{"optional":true},"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.5.0_1787699679552_0.8891653333198857","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@arinze-clinton/loupe","version":"0.6.0","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.6.0","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"1341d0978c6d5791c3fd90d741d777818ac11d23","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.6.0.tgz","fileCount":28,"integrity":"sha512-L1vCdQnBvEAD4el/in+Yq78uoqrHAF6VGrmXi241rYeuhP6C+HJz0v5H4K1W3qzGwA8fSZd0q1ywLpuWCAzhew==","signatures":[{"sig":"MEYCIQCmIBZH9xtDwZcHt8oMXl3a8gIzYTvPEQiKRjwkfPmzaAIhAPZBq1gcyDSxnT4YAdUmsMQ26SUjAxjP8UsDK0M1BjBP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDXwW2zkyKyobAjGggJcMtAvnpN1gQtECAW9rvSgnr+9AiEAvHU5kxDQJokGC8v+EEaUxD2jWVUVKhN1GuYIe5ALaLs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1359253},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./gsap":{"types":"./dist/gsap/index.d.ts","import":"./dist/gsap/index.js","require":"./dist/gsap/index.cjs"},"./waapi":{"types":"./dist/waapi/index.d.ts","import":"./dist/waapi/index.js","require":"./dist/waapi/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"522caf973c13e4f1db4e465cf5f827909597a35c","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"gsap":"^3.15.0","tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"gsap":">=3","react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"gsap":{"optional":true},"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.6.0_1789678796946_0.7759630555565695","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@arinze-clinton/loupe","version":"0.6.1","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.6.1","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"5ff73b67bc4e6ef825a8edd91b523ad0c6a1cd71","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.6.1.tgz","fileCount":32,"integrity":"sha512-MJULt5lw0WWHynMMrV6bmCSyBpjSPuxXtvZsMD+p6bHhdlhc+tdcn2zxnVwIGuXySD69kCmhEtsg7bR3loZreg==","signatures":[{"sig":"MEUCIQCL3UYfCM2NTbSVJXOVah/PiH21rF784E5mPvzeM1AuyQIgWSrkiNYRbEP7L6ZrKXFHwcoFAgN3R+ENi/4LOFT7QVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDwJlZYDxOxw4dfj7Lm7n00XpOFKBR5FE4FFidp26lU6QIgXRQXRNzoZt37ySWEbfxnpc/7AY8AyeYwvtcHIT+JwS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1377126},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./gsap":{"types":"./dist/gsap/index.d.ts","import":"./dist/gsap/index.js","require":"./dist/gsap/index.cjs"},"./waapi":{"types":"./dist/waapi/index.d.ts","import":"./dist/waapi/index.js","require":"./dist/waapi/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"96a84ef32b4ca0041a00996b45343c16e687f537","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"gsap":"^3.15.0","tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"gsap":">=3","react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"gsap":{"optional":true},"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.6.1_1789679071401_0.2953850887003582","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@arinze-clinton/loupe","version":"0.6.2","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.6.2","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"babb70ff93327ef3fb9bff35da66cee475715622","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.6.2.tgz","fileCount":32,"integrity":"sha512-WkbvWrR+xk9e4vADDQwxOEp3UyUz95B4RiGk1GN8w8lzOFQOsgDnAxW7lYmecbkENDa9VhAT10I7y0L9sC2reQ==","signatures":[{"sig":"MEQCIHjsGyDi0jQuJ4V8NsoBwJsTNFzqgPgGdzRdFbpKtrDIAiBU2b0XZfEpz1vYMVSKMY5UKY3bgdxl+kBiSbasugxJhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDQGtbAEOKD+aE2/+odsifYUbPW62oE+h1oRv+Fm6WslAIhAP+ar2V1mpJC+5JMQjGKgAXC7Z4pfLGN+vRWDa4Dtcl+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1379592},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./gsap":{"types":"./dist/gsap/index.d.ts","import":"./dist/gsap/index.js","require":"./dist/gsap/index.cjs"},"./waapi":{"types":"./dist/waapi/index.d.ts","import":"./dist/waapi/index.js","require":"./dist/waapi/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"73c17574abef0fc11996bb8c696be29227fd41ca","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"gsap":"^3.15.0","tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"gsap":">=3","react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"gsap":{"optional":true},"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.6.2_1789679739617_0.4208731560759049","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@arinze-clinton/loupe","version":"0.7.0","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.7.0","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"f2c28ac092be9097355579624fef2f93e2ed0bea","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.7.0.tgz","fileCount":32,"integrity":"sha512-hT34/Dxxzucb+0/9hxxgpE1R3F1yMfFhY5wcfr/x7T1qXctBSi3C60z2kmTjP2HFi3FyH2AjdEV5g2OxpKsJ6g==","signatures":[{"sig":"MEQCIE++txbzKCsqJ326FKb5NeNRUj/mv1KUC3kEfrl4L8dNAiA4cov5PNLbC1QOZ5HGe4akijt53se3kyd22fcHzhDFIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDlQAkuRRbWBso7+9e4A1xo9pRBCvbmiLQszbltQ66bEAiEAqbGNbPhJ85XkR8GfXSIFS2HbBdQg8+so299Kj638KkA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1430633},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./gsap":{"types":"./dist/gsap/index.d.ts","import":"./dist/gsap/index.js","require":"./dist/gsap/index.cjs"},"./waapi":{"types":"./dist/waapi/index.d.ts","import":"./dist/waapi/index.js","require":"./dist/waapi/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"190e973292047188d5ab4216505c6266ea9c900e","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"gsap":"^3.15.0","tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"gsap":">=3","react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"gsap":{"optional":true},"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.7.0_1790105641724_0.679369956230204","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@arinze-clinton/loupe","version":"0.8.0","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.8.0","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"00afb360f7254b2387d07e3efd6f5cd6977b8368","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.8.0.tgz","fileCount":32,"integrity":"sha512-1i6gCAUWEvfOeWE9ErAEE3Y1T7KoXA4H6NOQqTQa8NTylk9cJ2yIIBJmNbCogqyInHugT1gnf9oQnfi0QzrEMg==","signatures":[{"sig":"MEQCICLC8eZvM3ugQbF89LU6aAPByfadRsv4QvBfb0OVPykFAiBlHH2pJrb9Nf5MNTnT+ncEBciNhJCaxJbVeQHvPaLfyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHo/zmwt06TPoqwHSNY+xwAGZm7ynJPruCfH0DnqYAFoAiB/I+nmCDgeuzu+QCd5pAYt+PVWni86WD2fSuDfVoDAYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1457681},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./gsap":{"types":"./dist/gsap/index.d.ts","import":"./dist/gsap/index.js","require":"./dist/gsap/index.cjs"},"./waapi":{"types":"./dist/waapi/index.d.ts","import":"./dist/waapi/index.js","require":"./dist/waapi/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"723b74f1b8e030554a8adde895271aba975d2b45","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"gsap":"^3.15.0","tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"gsap":">=3","react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"gsap":{"optional":true},"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.8.0_1790105997246_0.37732266131111225","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@arinze-clinton/loupe","version":"0.9.0","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.9.0","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"82efc434b4f0e72d02f1587bb259eaf533f2e212","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.9.0.tgz","fileCount":32,"integrity":"sha512-ZDtWTjqsIF1IyBNA6c03Jk2t5pQuH3IUuoHnuo+dgfOR6gl9V/wdesL71ed+5TPsm5bxw1hFotqRGBbvcAzTAQ==","signatures":[{"sig":"MEUCIG/9Bi2qgOVdIbX8ZUErQTwZWQm2zJgINsQcOOznuMH8AiEA1bWrKdveLMI2IqwViypsb6tq47WiNWOHl4cKbGsZ8gU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCldUV0uTImF9eVMM3YFPCNE/3ZlWBY0uC+y59E9twsIwIgCXmsW4/asQjWO9LuOBYVD+a0rN9TTDOxVe3Ut87IvoU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1481292},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./gsap":{"types":"./dist/gsap/index.d.ts","import":"./dist/gsap/index.js","require":"./dist/gsap/index.cjs"},"./waapi":{"types":"./dist/waapi/index.d.ts","import":"./dist/waapi/index.js","require":"./dist/waapi/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"209520aaa61c250de2affe8fd0d241280ad0772a","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"gsap":"^3.15.0","tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"gsap":">=3","react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"gsap":{"optional":true},"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.9.0_1790106573947_0.15107851076869627","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@arinze-clinton/loupe","version":"0.10.0","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","_id":"@arinze-clinton/loupe@0.10.0","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"bin":{"loupe":"dist/cli/index.js"},"dist":{"shasum":"0c946987fb5c6ceeb6a3f47c8861f43a47c33303","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.10.0.tgz","fileCount":32,"integrity":"sha512-9Elw2qy98ml0zENyDwWujwUhTN31CjCPpNLdlyki1WaQIk5HjeqjTaWUbSK8rcTGei/EtKOpjND/lIsaBy5q2Q==","signatures":[{"sig":"MEUCIQDbV75A4CoIjtP95INGQqDP14vYKaztkM8zvVSLfpSJfAIgOKQfqHg8ioYFg/0K1fgYXGponxfYpHpJ3VvWyMgpuRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFK2F9PL38/5TOnZMSzswBbLXfh0l1Uv0CAJyQAnyHwUAiBbAGp4NqxYlXP/ErBv6oai5VJ9Y0rwra5cwfeykhCA+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1483709},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./gsap":{"types":"./dist/gsap/index.d.ts","import":"./dist/gsap/index.js","require":"./dist/gsap/index.cjs"},"./waapi":{"types":"./dist/waapi/index.d.ts","import":"./dist/waapi/index.js","require":"./dist/waapi/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"8e431a9d7d85b7a00af367a4ae2f9cb41bd7e95f","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"gsap":"^3.15.0","tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"gsap":">=3","react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"gsap":{"optional":true},"lottie-web":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loupe_0.10.0_1790106908700_0.9250514685159545","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"_id":"@arinze-clinton/loupe@0.11.0","bin":{"loupe":"dist/cli/index.js"},"bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"dist":{"shasum":"2db83744df6aae788d447de39294d96b5b6721d3","tarball":"https://registry.npmjs.org/@arinze-clinton/loupe/-/loupe-0.11.0.tgz","fileCount":32,"integrity":"sha512-TGGA6+8C5NMjS02PcbkyYKFhzeiTCAzXdEcdgkVw5Kxi4+Ni1D0eu3dtqKXtBlElMDB7ekNCa9k/b5X8j0XfQw==","signatures":[{"sig":"MEQCIA+I6pa5Etj9R9NSObjTjvA+ox+voN7/wUBA5e7yI3xdAiBEtT7cO9C2RMCMzqYwZpLzLXVVDEWqYlJ/xag4TLXo8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICVZGdSA4+brVBdh7T83MJR9h207AlvyFRPl5ePXwisVAiAfp2aSqgVBmSXE2MkO7dCH/WkyoAq9WXj0VsyDaOcpQg=="}],"unpackedSize":1489495},"main":"./dist/index.cjs","name":"@arinze-clinton/loupe","type":"module","types":"./dist/index.d.ts","author":{"name":"Arinze Clinton"},"module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./gsap":{"types":"./dist/gsap/index.d.ts","import":"./dist/gsap/index.js","require":"./dist/gsap/index.cjs"},"./waapi":{"types":"./dist/waapi/index.d.ts","import":"./dist/waapi/index.js","require":"./dist/waapi/index.cjs"},"./lottie":{"types":"./dist/lottie/index.d.ts","import":"./dist/lottie/index.js","require":"./dist/lottie/index.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"2a7d074e7caaea49030381aecf34b43d7b555903","license":"SEE LICENSE IN LICENSE","private":false,"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup && node -e \"require('fs').mkdirSync('dist',{recursive:true}); require('fs').writeFileSync('dist/styles.css','/* Loupe — panel uses inline styles. This file exists to satisfy the \\`@arinze-clinton/loupe/styles.css\\` import kept for backward compatibility with older generated code. */\\n')\"","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postpublish":"node -e \"const v='v'+require('./package.json').version; require('child_process').execSync('git tag -f '+v+' && git push origin '+v, {stdio:'inherit'})\""},"version":"0.11.0","_npmUser":{"name":"arinze.0","email":"nzereal1@gmail.com"},"homepage":"https://github.com/arinze-clinton/loupe-motion#readme","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"_npmVersion":"11.6.1","description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","directories":{},"maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"_nodeVersion":"24.11.0","dependencies":{"kleur":"^4.1.5","prompts":"^2.4.2","fast-glob":"^3.3.2","@babel/types":"^7.24.0","@babel/parser":"^7.24.0","@babel/traverse":"^7.24.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"gsap":"^3.15.0","tsup":"^8.0.0","react":"^18.2.0","vitest":"^1.6.1","happy-dom":"^20.9.0","react-dom":"^18.2.0","lottie-web":"^5.12.0","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","framer-motion":"^11.0.0","@types/prompts":"^2.4.9","@types/react-dom":"^18.2.0","@testing-library/react":"^14.3.1","@types/babel__traverse":"^7.20.5"},"peerDependencies":{"gsap":">=3","react":">=18","react-dom":">=18","lottie-web":">=5","framer-motion":">=11"},"peerDependenciesMeta":{"gsap":{"optional":true},"lottie-web":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/loupe_0.11.0_1790109880268_0.18379344055917568"}}},"time":{"created":"2026-04-21T02:10:44.207Z","modified":"2026-09-22T20:44:40.531Z","0.1.1":"2026-04-21T02:10:44.830Z","0.1.2":"2026-04-21T02:19:31.537Z","0.2.0":"2026-04-22T11:19:21.469Z","0.2.1":"2026-04-22T11:40:32.625Z","0.2.2":"2026-04-22T13:35:38.655Z","0.2.3":"2026-04-22T14:01:15.761Z","0.2.4":"2026-04-22T14:23:41.475Z","0.2.5":"2026-04-22T14:29:35.460Z","0.2.6":"2026-04-22T14:36:16.541Z","0.2.7":"2026-04-22T14:43:36.874Z","0.2.8":"2026-04-22T14:52:46.955Z","0.2.9":"2026-04-22T14:56:16.921Z","0.2.10":"2026-04-22T14:58:56.737Z","0.2.11":"2026-04-22T15:09:40.966Z","0.2.12":"2026-04-22T15:28:59.072Z","0.2.13":"2026-04-22T15:37:46.509Z","0.2.14":"2026-04-22T16:00:07.853Z","0.2.15":"2026-04-22T17:17:14.780Z","0.2.16":"2026-04-22T17:18:41.216Z","0.2.17":"2026-04-22T18:42:18.734Z","0.2.18":"2026-04-22T18:46:38.253Z","0.2.19":"2026-04-22T19:05:12.266Z","0.2.20":"2026-05-07T10:46:56.976Z","0.2.21":"2026-05-07T12:21:40.853Z","0.3.0":"2026-05-13T18:16:51.389Z","0.3.1":"2026-05-15T10:14:39.877Z","0.3.2":"2026-05-15T10:49:08.609Z","0.3.3":"2026-05-20T22:15:49.914Z","0.3.4":"2026-05-26T19:56:46.711Z","0.4.0":"2026-06-01T13:50:43.978Z","0.4.1":"2026-06-02T08:08:38.082Z","0.5.0":"2026-08-25T23:14:39.675Z","0.6.0":"2026-09-17T20:59:57.052Z","0.6.1":"2026-09-17T21:04:31.510Z","0.6.2":"2026-09-17T21:15:39.731Z","0.7.0":"2026-09-22T19:34:01.810Z","0.8.0":"2026-09-22T19:39:57.459Z","0.9.0":"2026-09-22T19:49:34.034Z","0.10.0":"2026-09-22T19:55:08.838Z","0.11.0":"2026-09-22T20:44:40.374Z"},"bugs":{"url":"https://github.com/arinze-clinton/loupe-motion/issues"},"author":{"name":"Arinze Clinton"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/arinze-clinton/loupe-motion#readme","keywords":["animation","motion","framer-motion","timeline","scrubber","react","dev-tool"],"repository":{"url":"git+https://github.com/arinze-clinton/loupe-motion.git","type":"git"},"description":"Timeline-first motion authoring tool — scrub, annotate, and review React animations against a deterministic timeline.","maintainers":[{"name":"arinze.0","email":"nzereal1@gmail.com"}],"readme":"<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"assets/logo-dark.svg\">\n  <img src=\"assets/logo.svg\" alt=\"Loupe\" width=\"200\">\n</picture>\n\n<br>\n\n[![npm version](https://img.shields.io/npm/v/@arinze-clinton/loupe)](https://www.npmjs.com/package/@arinze-clinton/loupe)\n[![downloads](https://img.shields.io/npm/dm/@arinze-clinton/loupe)](https://www.npmjs.com/package/@arinze-clinton/loupe)\n[![license](https://img.shields.io/badge/license-PolyForm%20Shield-blue)](LICENSE)\n\n**Your web animations, on a timeline.** Scrub them like a video, pause on any frame, mark what's off, export the notes — all on real running code, not a recording.\n\n## Quick start\n\n```bash\nnpm install @arinze-clinton/loupe -D\nnpx loupe init\n```\n\n> Using pnpm / yarn / bun? Replace `npx` with `pnpm exec`, `yarn`, or `bun x`.\n\nWrap your app in one provider and mount the panel in dev:\n\n```tsx\nimport { LoupeRegistryProvider, LoupePanel } from '@arinze-clinton/loupe';\n\nfunction App() {\n  return (\n    <LoupeRegistryProvider>\n      <YourApp />\n      {import.meta.env.DEV && <LoupePanel />}\n    </LoupeRegistryProvider>\n  );\n}\n```\n\nThen wrap any animated scene in a `TimelineProvider` and your motion values read from the shared clock:\n\n```tsx\nimport { TimelineProvider, useTimelineValue } from '@arinze-clinton/loupe';\nimport { motion } from 'framer-motion';\n\nfunction MyScene() {\n  return (\n    <TimelineProvider\n      config={{\n        id: 'my-scene',\n        label: 'My Scene',\n        phaseOrder: ['enter', 'settle'],\n        phaseDurations: { enter: 600, settle: 400 },\n      }}\n    >\n      <FadingBox />\n    </TimelineProvider>\n  );\n}\n\nfunction FadingBox() {\n  const opacity = useTimelineValue(0, 1, { phase: 'enter' });\n  return <motion.div style={{ opacity }}>Hello</motion.div>;\n}\n```\n\nThat's enough. The panel finds the scene, the scene's animations read from the shared clock, and you can scrub.\n\n## Already got animations?\n\nRun **`npx loupe refactor`** — Loupe walks you through each fire-and-forget animation in your project, shows the before and the after, and asks before changing anything. Nothing gets refactored without your sign-off.\n\nUsing Claude, Cursor, or Copilot? `npx loupe init` installed a skill that lets you ask in plain English: *\"audit my animations\"*, *\"make this scrubbable\"*. The agent does the same walkthrough.\n\n## Rather build it in isolation?\n\nWhen the real page an animation will live on is awkward to work in, scaffold a workbench:\n\n```bash\nnpx loupe workbench\ncd loupe-workbench && npm install && npm run dev\n```\n\nA standalone page with one starter scene and the Loupe panel — build and scrub in\npeace, pull in your own components with `@/…` when you want them, then hand off to\nproduction the same way. Works the same whether your project is Next, Vite, Remix, or\nanything else, because the workbench is its own tiny app.\n\n## Done tweaking? Hand it off\n\nWhen an animation is finished, the timeline binding that made it scrubbable is\nscaffolding the production copy doesn't need. Ask your agent:\n\n> *\"prepare the hero animation for production\"*\n\nIt converts the scene back to plain animation code with no Loupe dependency, asks where\nit should go, and writes it there. Framer stays Framer, GSAP stays GSAP. Your Loupe\nversion stays the master copy — tweak, re-export, replace.\n\nIt refuses rather than guesses. Conditional values, hand-written easing curves and\ncomputed phases are reported back untouched instead of being quietly resolved to a\nnumber that looks plausible and isn't.\n\nUnder the hood the agent runs `loupe resolve`, which does the phase arithmetic and\nhands back each value's exact millisecond window and curve — tested against the real\nhooks, so the numbers aren't computed in an agent's head. What that tool can read as a\nliteral is what's safe to convert; anything computed it flags rather than guesses.\n\n```bash\nnpx loupe skills    # installs or refreshes the bundled agent skills\nnpx loupe resolve   # (optional) see the resolved facts yourself, --json for machines\n```\n\n## The idea\n\nEvery animation is a function of time. Loupe owns the time.\n\nScrubbing back is just setting time to zero. Pausing is just freezing the clock. Reviewing your animation feels like reviewing a video edit, not poking at a black box.\n\nOnce a scene is wrapped in `<TimelineProvider>`, every animated value reads from the same shared clock. The floating panel drives that clock — and lets you annotate any frame you want to change. Notes export as Markdown your AI agent (or teammate) can act on.\n\n## CLI\n\n| Command | What it does |\n|---|---|\n| `loupe init` | Wire Loupe into your project. Writes a sample scene + (optionally) installs the Claude skill. |\n| `loupe scan` | Find every animation in your project and report which are timeline-bound vs fire-and-forget. |\n| `loupe refactor` | Walk through each fire-and-forget animation interactively. Show-and-paste, no auto-edits. |\n| `loupe check` | Print the version installed, what's declared in `package.json`, and the latest on npm. |\n| `loupe uninstall` | Remove `@arinze-clinton/loupe` and the files `loupe init` wrote. Won't touch files you've edited. |\n\n## Why my scene isn't pickable\n\nIf hovering over your animation highlights the page behind it (not the scene itself), a `pointer-events: none` ancestor is making the scene invisible to `document.elementFromPoint`. Common in production code that wraps autoplaying vignettes so they don't intercept page clicks.\n\nWrap the scene in `<SceneRoot>` instead of a bare `<div>`:\n\n```tsx\nimport { SceneRoot } from '@arinze-clinton/loupe';\n\n<SceneRoot>\n  {/* your animated content */}\n</SceneRoot>\n```\n\n`<SceneRoot>` flips to `pointer-events: auto` whenever Loupe is mounted and back to `none` in production builds where it isn't. You get pickable scenes in the workbench and click-through behavior in prod, without remembering the rule.\n\n## Requirements\n\n- React 18+\n- Framer Motion 11+\n- Modern desktop or mobile browser\n\n## Docs\n\n- [Getting started](docs/getting-started.md)\n- [The timeline-first pitch](docs/timeline-first.md)\n- [Refactoring fire-and-forget animations](docs/refactoring-to-timeline.md)\n- [API reference](docs/api.md)\n\n## License\n\n[PolyForm Shield 1.0.0](LICENSE) — use it freely in any project, including commercial work. You may not fork it into a competing product.\n","readmeFilename":"README.md"}