{"_id":"ai-motion","_rev":"11-41b28461ee140b87311dc518dae7c32a","name":"ai-motion","dist-tags":{"latest":"0.4.8"},"versions":{"0.1.0":{"name":"ai-motion","version":"0.1.0","license":"MIT","_id":"ai-motion@0.1.0","maintainers":[{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"}],"dist":{"shasum":"6621d54013ab6cb0cd58574ffa49adc1092364fc","tarball":"https://registry.npmjs.org/ai-motion/-/ai-motion-0.1.0.tgz","fileCount":10,"integrity":"sha512-rXklHggP0ZKIpPUoEC7vSzQEo9Yi5Kn1izK1kDLkmAOdpCMdhdbQBBNcJ4zK0ZcbiGyxx1mG8+jpRqNqgS6JSg==","signatures":[{"sig":"MEQCIAPgJuIN2CrIyMTbemL3ARjcwKN59Ir/8fIX+Yhj0DLaAiBEj4vU4Og+j5fm9yHybDEIvY5Webm4HEHoUhUq2tr/Dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24560},"main":"build/motion.js","type":"module","types":"build/Motion.d.ts","module":"build/motion.js","exports":{".":{"types":"./build/Motion.d.ts","import":"./build/motion.js"}},"gitHead":"98cba4eddeee9921463a84d6c88e70c6c086d259","private":false,"scripts":{"dev":"vite -c vite.config.ts","build":"npm run build:lib && npm run build:types","start":"npm run dev","prepare":"husky install","build:lib":"vite build -c vite.lib.config.ts","build:demo":"vite build -c vite.config.ts","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"},"commitlint":{"rules":{"subject-case":[0,"never"]},"extends":["@commitlint/config-conventional"]},"_npmVersion":"10.9.3","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","directories":{},"lint-staged":{"*.css":["npx prettier --write --ignore-unknown"],"*.{jsx,tsx}":["npx prettier --write --ignore-unknown","npx eslint --quiet"],"*.{js,ts,cjs,cts,mjs,mts}":["npx prettier --write --ignore-unknown","npx eslint --quiet"]},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","husky":"^9.1.7","eslint":"^9.33.0","prettier":"^3.6.2","typescript":"^5.9.2","lint-staged":"^16.1.5","@commitlint/cli":"^19.8.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@commitlint/config-conventional":"^19.8.1","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/ai-motion_0.1.0_1755882153418_0.03367001962571248","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"ai-motion","version":"0.2.0","license":"MIT","_id":"ai-motion@0.2.0","maintainers":[{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"}],"dist":{"shasum":"e39aeb6a9ac6cd218e8e8be5c764aa43893cf9f3","tarball":"https://registry.npmjs.org/ai-motion/-/ai-motion-0.2.0.tgz","fileCount":10,"integrity":"sha512-Yura6oR17qELbxi8vykQkbN+4b+tJlvcnlBzmgHN/yS8hkarXGeLZ8V4hvi5Uby1lFOhiZE/penlg8Hs0NP0SQ==","signatures":[{"sig":"MEUCIFXuSxWBzIrkZYfhPi5oHnB67GQHUsmChvMpjorSKaEuAiEA1ck5tKuaVU/7OM/pmGYU+9oSoc1ngfvuQYF/LIwro/o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27351},"main":"build/motion.js","type":"module","types":"build/Motion.d.ts","module":"build/motion.js","exports":{".":{"types":"./build/Motion.d.ts","import":"./build/motion.js"}},"gitHead":"fe04890c22660a4fa805633f48c70e911f71d9e6","private":false,"scripts":{"dev":"vite -c vite.config.ts","build":"npm run build:lib && npm run build:types","start":"npm run dev","prepare":"husky install","build:lib":"vite build -c vite.lib.config.ts","build:demo":"vite build -c vite.config.ts","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"},"commitlint":{"rules":{"subject-case":[0,"never"]},"extends":["@commitlint/config-conventional"]},"_npmVersion":"11.3.0","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","directories":{},"lint-staged":{"*.css":["npx prettier --write --ignore-unknown"],"*.{jsx,tsx}":["npx prettier --write --ignore-unknown","npx eslint --quiet"],"*.{js,ts,cjs,cts,mjs,mts}":["npx prettier --write --ignore-unknown","npx eslint --quiet"]},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","husky":"^9.1.7","eslint":"^9.33.0","prettier":"^3.6.2","typescript":"^5.9.2","lint-staged":"^16.1.5","@commitlint/cli":"^19.8.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@commitlint/config-conventional":"^19.8.1","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/ai-motion_0.2.0_1756110206915_0.2399057555148576","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"ai-motion","version":"0.3.0","license":"MIT","_id":"ai-motion@0.3.0","maintainers":[{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"}],"dist":{"shasum":"b05865ebba7b89fa4c76f96d21085ff8e1578d02","tarball":"https://registry.npmjs.org/ai-motion/-/ai-motion-0.3.0.tgz","fileCount":12,"integrity":"sha512-wewXc8dVlOXk1R7+WomQkFy2uAfmQteQIoWduid8C95jP5N1BFWuolRMoMXRMx0X77r83b9+Vs8ci9O9GthA5Q==","signatures":[{"sig":"MEUCIE8kEqRaZh+jPcsenknrDbk+joijVil14fPe/W3RqGZAAiEAl1Vz0Qf0LbsR8MlbfNh/C+xMjbrHiP615ux72LqXJ2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1992432},"main":"build/motion.js","type":"module","types":"build/Motion.d.ts","module":"build/motion.js","exports":{".":{"types":"./build/Motion.d.ts","import":"./build/motion.js"}},"gitHead":"ba075f696782c1dfc9298b1a7cf0b470ece17bae","private":false,"scripts":{"dev":"vite -c vite.config.ts","build":"npm run build:lib && npm run build:types","start":"npm run dev","prepare":"husky install","build:lib":"vite build -c vite.lib.config.ts","build:demo":"vite build -c vite.config.ts","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"},"commitlint":{"rules":{"subject-case":[0,"never"]},"extends":["@commitlint/config-conventional"]},"_npmVersion":"11.3.0","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","directories":{},"lint-staged":{"*.css":["npx prettier --write --ignore-unknown"],"*.{jsx,tsx}":["npx prettier --write --ignore-unknown","npx eslint --quiet"],"*.{js,ts,cjs,cts,mjs,mts}":["npx prettier --write --ignore-unknown","npx eslint --quiet"]},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","husky":"^9.1.7","eslint":"^9.33.0","prettier":"^3.6.2","typescript":"^5.9.2","lint-staged":"^16.1.5","@commitlint/cli":"^19.8.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@commitlint/config-conventional":"^19.8.1","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/ai-motion_0.3.0_1756117622523_0.7601440617795701","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"ai-motion","version":"0.4.0","license":"MIT","_id":"ai-motion@0.4.0","maintainers":[{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"}],"dist":{"shasum":"12ad0b150bee93ce8ab1e80aff01c81e730586f7","tarball":"https://registry.npmjs.org/ai-motion/-/ai-motion-0.4.0.tgz","fileCount":10,"integrity":"sha512-ZEaKo7M1X8r5x6/9urvfW5dd3OlmBJQ1BQo6I4v8EniHnxRA09mieK2z8dOlzbgdGR926tLFS/G9jVKj4KR4Dw==","signatures":[{"sig":"MEUCIE2wA7dnnvOmHsG4YwF4FcBHweCm3yZg/TtllDzT9TroAiEA9PlaXcs1mINMXPi/YzSddAwfx7dImUmdhM+2fAisn8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26631},"main":"build/motion.js","type":"module","types":"build/Motion.d.ts","module":"build/motion.js","exports":{".":{"types":"./build/Motion.d.ts","import":"./build/motion.js"}},"gitHead":"1e7fb686a79bfd81a0ad259a85664d82e8b59d8e","private":false,"scripts":{"dev":"vite -c vite.config.ts","build":"npm run build:lib && npm run build:types","start":"npm run dev","prepare":"husky install","build:lib":"vite build -c vite.lib.config.ts","build:demo":"vite build -c vite.config.ts","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"},"commitlint":{"rules":{"subject-case":[0,"never"]},"extends":["@commitlint/config-conventional"]},"_npmVersion":"11.3.0","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","directories":{},"lint-staged":{"*.css":["npx prettier --write --ignore-unknown"],"*.{jsx,tsx}":["npx prettier --write --ignore-unknown","npx eslint --quiet"],"*.{js,ts,cjs,cts,mjs,mts}":["npx prettier --write --ignore-unknown","npx eslint --quiet"]},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","husky":"^9.1.7","eslint":"^9.33.0","prettier":"^3.6.2","typescript":"^5.9.2","lint-staged":"^16.1.5","@commitlint/cli":"^19.8.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@commitlint/config-conventional":"^19.8.1","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/ai-motion_0.4.0_1756117693220_0.7427442795857986","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"ai-motion","version":"0.4.1","license":"MIT","_id":"ai-motion@0.4.1","maintainers":[{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"}],"homepage":"https://github.com/gaomeng1900/ai-motion#readme","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"dist":{"shasum":"613161fd7d962b4fb2601e435ca71a3d30bba2fc","tarball":"https://registry.npmjs.org/ai-motion/-/ai-motion-0.4.1.tgz","fileCount":10,"integrity":"sha512-VSeHUEC6vrMGbErEMlGoa5Rxsjm+4f05RBwhCLSNb5SfMfexUACm1He3ARjlcFHACqmZNDtAAAuvgtV61TW6Eg==","signatures":[{"sig":"MEUCICEpeBGhZ4HeOeU7Wg8iqlynLoTlWzDD1zMusYHxERyVAiEA4uALyCt2vLtGzENinfpRqkJoQOQvvJtQLR3NkXEhlCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26729},"main":"build/motion.js","type":"module","types":"build/Motion.d.ts","module":"build/motion.js","exports":{".":{"types":"./build/Motion.d.ts","import":"./build/motion.js"}},"gitHead":"f61b727fa5a08dfc0a81993fea0284cf7d6fcf31","private":false,"scripts":{"dev":"vite -c vite.config.ts","build":"npm run build:lib && npm run build:types","start":"npm run dev","prepare":"husky install","build:lib":"vite build -c vite.lib.config.ts","build:demo":"vite build -c vite.config.ts","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"},"commitlint":{"rules":{"subject-case":[0,"never"]},"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/gaomeng1900/ai-motion.git","type":"git"},"_npmVersion":"11.3.0","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","directories":{},"lint-staged":{"*.css":["npx prettier --write --ignore-unknown"],"*.{jsx,tsx}":["npx prettier --write --ignore-unknown","npx eslint --quiet"],"*.{js,ts,cjs,cts,mjs,mts}":["npx prettier --write --ignore-unknown","npx eslint --quiet"]},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","husky":"^9.1.7","eslint":"^9.33.0","prettier":"^3.6.2","typescript":"^5.9.2","lint-staged":"^16.1.5","@commitlint/cli":"^19.8.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@commitlint/config-conventional":"^19.8.1","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/ai-motion_0.4.1_1756117916555_0.8829855477144011","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"ai-motion","version":"0.4.3","license":"MIT","_id":"ai-motion@0.4.3","maintainers":[{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"}],"homepage":"https://gaomeng1900.github.io/ai-motion/","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"dist":{"shasum":"89cdd6f7e2f8684ce8c04eb40e2f2529061c863e","tarball":"https://registry.npmjs.org/ai-motion/-/ai-motion-0.4.3.tgz","fileCount":10,"integrity":"sha512-P02wglLmRL+JSZQzPswll+eQ9tCj8hMBi4lFoUj0cRB/s3N+zdzx5LmsjS1YMscolwzP87CE1C7di53cj2EebQ==","signatures":[{"sig":"MEYCIQDsUY8vunsPEBSzXEKvgDpKZeu+701Gh1NSWEENOdKclAIhAKklBW1EhfCpFw15buMZzts/bDFmjzm5XoYz1s3AuZ6/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29785},"main":"build/motion.js","type":"module","types":"build/Motion.d.ts","module":"build/motion.js","exports":{".":{"types":"./build/Motion.d.ts","import":"./build/motion.js"}},"gitHead":"b2f9c494a926c99a9296056d7bd582ab9a1b6fa1","private":false,"scripts":{"dev":"vite -c vite.config.ts","build":"npm run build:lib && npm run build:types","start":"npm run dev","prepare":"husky install","build:lib":"vite build -c vite.lib.config.ts","build:demo":"vite build -c vite.config.ts","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"},"commitlint":{"rules":{"subject-case":[0,"never"]},"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/gaomeng1900/ai-motion.git","type":"git"},"_npmVersion":"10.8.2","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","directories":{},"lint-staged":{"*.css":["npx prettier --write --ignore-unknown"],"*.{jsx,tsx}":["npx prettier --write --ignore-unknown","npx eslint --quiet"],"*.{js,ts,cjs,cts,mjs,mts}":["npx prettier --write --ignore-unknown","npx eslint --quiet"]},"sideEffects":false,"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","husky":"^9.1.7","eslint":"^9.33.0","prettier":"^3.6.2","typescript":"^5.9.2","lint-staged":"^16.1.5","@commitlint/cli":"^19.8.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@commitlint/config-conventional":"^19.8.1","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/ai-motion_0.4.3_1756198379341_0.023073447405333125","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"ai-motion","version":"0.4.4","license":"MIT","_id":"ai-motion@0.4.4","maintainers":[{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"}],"homepage":"https://gaomeng1900.github.io/ai-motion/","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"dist":{"shasum":"221bc0463c68c6dd0e9b9bb886f40aa53fc5dd8b","tarball":"https://registry.npmjs.org/ai-motion/-/ai-motion-0.4.4.tgz","fileCount":10,"integrity":"sha512-LLoCgp3pccsbEntHg3KlTF/bNZ3cgELn7Rjkq5BjmWG62DWAjE0mwT9yx/Fc4KCGTRzT8LuqRZeLZDwsfx7Vmw==","signatures":[{"sig":"MEUCIFHNwVm4A6sz3wjFlfeMXrA1opv7/U1cop2In6VG/aoMAiEAykKtHCtrLgK2bHTpjdIBDs4c42hnbvX7qk6zgbezBNs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29738},"main":"build/motion.js","type":"module","types":"build/Motion.d.ts","module":"build/motion.js","exports":{".":{"types":"./build/Motion.d.ts","import":"./build/motion.js"}},"gitHead":"a4da4694c77001a4738f5e84f54a9328cf620ed4","private":false,"scripts":{"dev":"vite -c vite.config.ts","build":"npm run build:lib && npm run build:types","start":"npm run dev","prepare":"husky install","build:lib":"vite build -c vite.lib.config.ts","build:demo":"vite build -c vite.config.ts","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"},"commitlint":{"rules":{"subject-case":[0,"never"]},"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/gaomeng1900/ai-motion.git","type":"git"},"_npmVersion":"10.8.2","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","directories":{},"lint-staged":{"*.css":["npx prettier --write --ignore-unknown"],"*.{jsx,tsx}":["npx prettier --write --ignore-unknown","npx eslint --quiet"],"*.{js,ts,cjs,cts,mjs,mts}":["npx prettier --write --ignore-unknown","npx eslint --quiet"]},"sideEffects":false,"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","husky":"^9.1.7","eslint":"^9.33.0","prettier":"^3.6.2","typescript":"^5.9.2","lint-staged":"^16.1.5","@commitlint/cli":"^19.8.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@commitlint/config-conventional":"^19.8.1","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/ai-motion_0.4.4_1756200734474_0.12287753741131957","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"ai-motion","version":"0.4.5","license":"MIT","_id":"ai-motion@0.4.5","maintainers":[{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"}],"homepage":"https://gaomeng1900.github.io/ai-motion/","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"dist":{"shasum":"1715b6b5d95fc11726a33b5eadb9949b91e5bf67","tarball":"https://registry.npmjs.org/ai-motion/-/ai-motion-0.4.5.tgz","fileCount":11,"integrity":"sha512-QExARl9vr2Mp47r724UO/Kv8WcKNLk+yONEu5DDdmhSfbOghjruyv3m36O0bJRWtRrtDpowtVMmmNgqPW51Wug==","signatures":[{"sig":"MEQCIAISGOjquDpEbjTnz3A4JdUxLvAcn58/xJdAqhQAc2m3AiA0jn5WSQxf8meKoydI5e186K93MM933+G9UMTuqRTnkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36103},"main":"build/motion.js","type":"module","types":"build/Motion.d.ts","module":"build/motion.js","exports":{".":{"types":"./build/Motion.d.ts","import":"./build/motion.js"}},"gitHead":"554c85273c0c2836f354152cfde00a5fc095e1f3","private":false,"scripts":{"dev":"vite -c vite.config.ts","build":"npm run build:lib && npm run build:types","start":"npm run dev","prepare":"husky install","build:lib":"vite build -c vite.lib.config.ts","build:demo":"vite build -c vite.config.ts","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"},"commitlint":{"rules":{"subject-case":[0,"never"]},"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/gaomeng1900/ai-motion.git","type":"git"},"_npmVersion":"10.8.2","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","directories":{},"lint-staged":{"*.css":["npx prettier --write --ignore-unknown"],"*.{jsx,tsx}":["npx prettier --write --ignore-unknown","npx eslint --quiet"],"*.{js,ts,cjs,cts,mjs,mts}":["npx prettier --write --ignore-unknown","npx eslint --quiet"]},"sideEffects":false,"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","husky":"^9.1.7","eslint":"^9.33.0","prettier":"^3.6.2","typescript":"^5.9.2","lint-staged":"^16.1.5","@commitlint/cli":"^19.8.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@commitlint/config-conventional":"^19.8.1","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/ai-motion_0.4.5_1756208413766_0.004142383777566483","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"ai-motion","version":"0.4.6","keywords":["webgl","animation","ai","visual effects"],"license":"MIT","_id":"ai-motion@0.4.6","maintainers":[{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"}],"homepage":"https://gaomeng1900.github.io/ai-motion/","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"dist":{"shasum":"4708badde70cb1b5d8f663636de076c9dd00c87d","tarball":"https://registry.npmjs.org/ai-motion/-/ai-motion-0.4.6.tgz","fileCount":11,"integrity":"sha512-F2CGMXsXen20gynyAZjsYcCanIexwa85qpEnY6Zw+dRds9AvPmU4wqE0tQfoAdpOchmOVB+tRR4phgbaB8o/gQ==","signatures":[{"sig":"MEUCIBxeNRw7Hx5aL2+crk3WDs0R/XFi8qbSfMYhhwGf/YpMAiEAqZJQYWx+r1H1jj01Hn96cZmMzAG+FbaR+rf8jMdo0XE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36957},"main":"build/motion.js","type":"module","types":"build/Motion.d.ts","module":"build/motion.js","exports":{".":{"types":"./build/Motion.d.ts","import":"./build/motion.js"}},"gitHead":"cd203e88f61a8585cf2df0b517cf1ea98b81bdc0","private":false,"scripts":{"dev":"vite -c vite.config.ts","build":"npm run build:lib && npm run build:types","start":"npm run dev","prepare":"husky install","build:lib":"vite build -c vite.lib.config.ts","build:demo":"vite build -c vite.config.ts","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"},"commitlint":{"rules":{"subject-case":[0,"never"]},"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/gaomeng1900/ai-motion.git","type":"git"},"_npmVersion":"10.8.2","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","directories":{},"lint-staged":{"*.css":["npx prettier --write --ignore-unknown"],"*.{jsx,tsx}":["npx prettier --write --ignore-unknown","npx eslint --quiet"],"*.{js,ts,cjs,cts,mjs,mts}":["npx prettier --write --ignore-unknown","npx eslint --quiet"]},"sideEffects":false,"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","husky":"^9.1.7","eslint":"^9.33.0","prettier":"^3.6.2","typescript":"^5.9.2","lint-staged":"^16.1.5","@commitlint/cli":"^19.8.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@commitlint/config-conventional":"^19.8.1","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/ai-motion_0.4.6_1756210097223_0.6328218568342849","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"ai-motion","version":"0.4.7","keywords":["webgl","animation","ai","visual effects"],"license":"MIT","_id":"ai-motion@0.4.7","maintainers":[{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"}],"homepage":"https://gaomeng1900.github.io/ai-motion/","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"dist":{"shasum":"4a3704e1bfb9509c06587915b3fbfb83b517164b","tarball":"https://registry.npmjs.org/ai-motion/-/ai-motion-0.4.7.tgz","fileCount":11,"integrity":"sha512-yuFtVgWeaxKyvfSFocA01Mr4UbRvwwy7HWZ6Mq9NM/yccAkqp3UCGdWX6AflNB8cU27PgwTBiMRfx6C9di7xkQ==","signatures":[{"sig":"MEYCIQD02lxjybdpQAZTMomOdfCROwSvsRFAVcminTZtcB9TrAIhAIBb2+E5ArGlLYX9Piry6N+p+imkhfqb897eNWK5hmXw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36957},"main":"build/Motion.js","type":"module","types":"build/Motion.d.ts","module":"build/Motion.js","exports":{".":{"types":"./build/Motion.d.ts","import":"./build/Motion.js"}},"gitHead":"3ddb8fe8d4ac1fca3a2c7eff788d1517c3beea82","private":false,"scripts":{"dev":"vite -c vite.config.ts","build":"npm run build:lib && npm run build:types","start":"npm run dev","prepare":"husky install","build:lib":"vite build -c vite.lib.config.ts","build:demo":"vite build -c vite.config.ts","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"},"commitlint":{"rules":{"subject-case":[0,"never"]},"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/gaomeng1900/ai-motion.git","type":"git"},"_npmVersion":"10.8.2","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","directories":{},"lint-staged":{"*.css":["npx prettier --write --ignore-unknown"],"*.{jsx,tsx}":["npx prettier --write --ignore-unknown","npx eslint --quiet"],"*.{js,ts,cjs,cts,mjs,mts}":["npx prettier --write --ignore-unknown","npx eslint --quiet"]},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","husky":"^9.1.7","eslint":"^9.33.0","prettier":"^3.6.2","typescript":"^5.9.2","lint-staged":"^16.1.5","@commitlint/cli":"^19.8.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@commitlint/config-conventional":"^19.8.1","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/ai-motion_0.4.7_1760086492485_0.8516195169076259","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"ai-motion","version":"0.4.8","private":false,"license":"MIT","type":"module","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","keywords":["webgl","animation","ai","visual effects"],"main":"build/Motion.js","module":"build/Motion.js","types":"build/Motion.d.ts","exports":{".":{"import":"./build/Motion.js","types":"./build/Motion.d.ts"}},"repository":{"type":"git","url":"git+https://github.com/gaomeng1900/ai-motion.git"},"homepage":"https://gaomeng1900.github.io/ai-motion/","sideEffects":false,"scripts":{"start":"npm run dev","dev":"vite -c vite.config.ts","build:demo":"vite build -c vite.config.ts","build:lib":"vite build -c vite.lib.config.ts","build:types":"tsc --emitDeclarationOnly","build":"npm run build:lib && npm run build:types","prepare":"husky install"},"devDependencies":{"@commitlint/cli":"^19.8.1","@commitlint/config-conventional":"^19.8.1","@trivago/prettier-plugin-sort-imports":"^5.2.2","eslint":"^9.33.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","husky":"^9.1.7","lint-staged":"^16.1.5","prettier":"^3.6.2","typescript":"^5.9.2","vite":"^7.1.2"},"lint-staged":{"*.{js,ts,cjs,cts,mjs,mts}":["npx prettier --write --ignore-unknown","npx eslint --quiet"],"*.{jsx,tsx}":["npx prettier --write --ignore-unknown","npx eslint --quiet"],"*.css":["npx prettier --write --ignore-unknown"]},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[0,"never"]}},"_id":"ai-motion@0.4.8","gitHead":"6d10bf6b65c6819de5b89520b04bca61ba6e4fec","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-9nQVjf8lrYQWSW0sZdb9bES4x8Ei1w9C0S62po2KvRbMjslmjm0WMeszyW771SEauDnu4YGWqurLZ/gCkCTosQ==","shasum":"fe963d659dcdb15b3ea95d888b1efe86c292fc95","tarball":"https://registry.npmjs.org/ai-motion/-/ai-motion-0.4.8.tgz","fileCount":11,"unpackedSize":39216,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB6vvrnRaQSZQ1QGzwk9a57HEli6A/qXpPR8Dbwpaw+9AiBJ1WsslqDziJAWPBfCuHDU05mdc0ij0YSPtt0JzAj2ww=="}]},"_npmUser":{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"},"directories":{},"maintainers":[{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-motion_0.4.8_1767863545788_0.3113278636536656"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-22T17:02:33.418Z","modified":"2026-01-08T09:12:26.133Z","0.1.0":"2025-08-22T17:02:33.658Z","0.2.0":"2025-08-25T08:23:27.127Z","0.3.0":"2025-08-25T10:27:02.737Z","0.4.0":"2025-08-25T10:28:13.386Z","0.4.1":"2025-08-25T10:31:56.740Z","0.4.3":"2025-08-26T08:52:59.517Z","0.4.4":"2025-08-26T09:32:14.691Z","0.4.5":"2025-08-26T11:40:13.942Z","0.4.6":"2025-08-26T12:08:17.484Z","0.4.7":"2025-10-10T08:54:52.719Z","0.4.8":"2026-01-08T09:12:25.953Z"},"bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"license":"MIT","homepage":"https://gaomeng1900.github.io/ai-motion/","keywords":["webgl","animation","ai","visual effects"],"repository":{"type":"git","url":"git+https://github.com/gaomeng1900/ai-motion.git"},"description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","maintainers":[{"name":"gaomeng1900","email":"gaomeng1900@gmail.com"}],"readme":"# AI Motion\n\n[![npm version](https://badge.fury.io/js/ai-motion.svg)](https://www.npmjs.com/package/ai-motion)\n[![CI](https://github.com/gaomeng1900/ai-motion/workflows/CI/badge.svg)](https://github.com/gaomeng1900/ai-motion/actions)\n[![npm downloads](https://img.shields.io/npm/dm/ai-motion.svg)](https://www.npmjs.com/package/ai-motion)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**[English](README.md) | 中文**\n\n基于 WebGL2 的 AI 风格发光边框动画。零依赖，仅支持现代浏览器。\n\n🌈 **[在线演示](https://gaomeng1900.github.io/ai-motion/)**\n\n![演示](public/demo.gif)\n\n## 安装\n\n```bash\nnpm install ai-motion\n```\n\n## 快速开始\n\n```ts\nimport { Motion } from 'ai-motion'\n\nconst motion = new Motion({\n\twidth: 400,\n\theight: 300,\n\tmode: 'light'\n})\n\ndocument.body.appendChild(motion.element)\nmotion.start()\n```\n\n## API 参考\n\n### 构造函数\n\n```ts\nnew Motion(options?: MotionOptions)\n```\n\n创建一个带有 WebGL2 canvas 元素的新 Motion 实例。\n\n> 如果浏览器不支持 WebGL2 会抛出错误。\n\n### 方法\n\n#### `start(): void`\n\n启动动画循环（限制为 30 fps）。可以安全地多次调用。\n\n```ts\nmotion.start()\n```\n\n#### `pause(): void`\n\n暂停动画循环。保留状态。\n\n```ts\nmotion.pause()\n```\n\n#### `dispose(): void`\n\n清理 WebGL 资源并移除 canvas。实例将不可用。\n\n```ts\nmotion.dispose()\n```\n\n#### `resize(width: number, height: number, ratio?: number): void`\n\n调整 canvas 大小并重建几何体。如果正在运行会立即更新图像。\n\n```ts\nmotion.resize(800, 600)\nmotion.resize(800, 600, 2) // 使用自定义像素比\n```\n\n#### `autoResize(element: HTMLElement): void`\n\n使用 ResizeObserver 自动调整大小以匹配目标元素。\n\n```ts\nconst container = document.getElementById('container')\nmotion.autoResize(container)\n```\n\n#### `fadeIn(): Promise<void>`\n\n带缩放效果的透明度 0→1 动画（300ms）。\n\n```ts\nawait motion.fadeIn()\n```\n\n#### `fadeOut(): Promise<void>`\n\n带缩放效果的透明度 1→0 动画（300ms）。\n\n```ts\nawait motion.fadeOut()\n```\n\n### 属性\n\n#### `element: HTMLElement`\n\ncanvas 元素。根据需要添加到 DOM 中。\n\n```ts\ndocument.body.appendChild(motion.element)\n```\n\n## 配置选项\n\n```ts\ninterface MotionOptions {\n\twidth?: number // Canvas 宽度（默认：600）\n\theight?: number // Canvas 高度（默认：600）\n\tratio?: number // 设备像素比倍数（默认：devicePixelRatio）\n\tmode?: 'dark' | 'light' // 颜色优化（默认：'light'）\n\tcolors?: [CSSRgbString, CSSRgbString, CSSRgbString, CSSRgbString] // 颜色列表（默认：见下文）\n\tborderWidth?: number // 边框厚度（默认：8）\n\tglowWidth?: number // 发光效果宽度（默认：200）\n\tborderRadius?: number // 圆角半径（默认：8）\n\tclassNames?: string // Canvas 的 CSS 类名\n\tstyles?: Partial<CSSStyleDeclaration> // Canvas 的 CSS 样式\n}\n```\n\n### 模式详情\n\n- **`light`**：高饱和度，在浅色背景上效果更好\n- **`dark`**：清洁的发光效果，在深色背景上效果更好\n\n根据你的背景颜色选择。如果不确定，请使用 light 模式。\n\n### 颜色配置\n\n`colors` 选项允许你自定义动画边框的渐变颜色。必须是一个包含恰好 4 个 RGB 颜色字符串的数组。\n\n**默认颜色：**\n\n```ts\n[\n\t'rgb(57, 182, 255)', // 青色\n\t'rgb(189, 69, 251)', // 紫色\n\t'rgb(255, 87, 51)', // 橙色\n\t'rgb(255, 214, 0)' // 黄色\n]\n```\n\n**自定义颜色示例：**\n\n```ts\nconst motion = new Motion({\n\tcolors: [\n\t\t'rgb(255, 0, 128)', // 粉色\n\t\t'rgb(128, 0, 255)', // 紫色\n\t\t'rgb(0, 128, 255)', // 蓝色\n\t\t'rgb(0, 255, 128)' // 绿色\n\t]\n})\n```\n\n**重要说明：**\n\n- 必须提供恰好 4 个颜色\n- 颜色必须使用 RGB 格式：`'rgb(r, g, b)'`\n- 值必须是 0-255 之间的整数\n- 逗号后的空格是可选的：`'rgb(255, 0, 0)'` 和 `'rgb(255,0,0)'` 都有效\n\n## 示例\n\n### 全屏背景\n\n```ts\nconst motion = new Motion({\n\twidth: document.documentElement.clientWidth,\n\theight: document.documentElement.clientHeight,\n\tmode: 'dark',\n\tstyles: {\n\t\tposition: 'fixed',\n\t\tinset: '0'\n\t}\n})\n\ndocument.body.appendChild(motion.element)\nmotion.autoResize(document.body)\nmotion.start()\n```\n\n### 响应式容器\n\n```ts\n// container.style.position: absolute/relative\nconst container = document.getElementById('hero')\nconst motion = new Motion()\n\ncontainer.appendChild(motion.element)\nmotion.autoResize(container)\nmotion.start()\n\n// 淡入动画\nawait motion.fadeIn()\n```\n\n## 系统要求\n\n- WebGL2 支持\n- 现代浏览器\n\n## 开发\n\n```bash\nnpm install\nnpm start      # 开发服务器\nnpm run build  # 库构建\n```\n\n## 许可证\n\n[MIT](./LICENSE)\n\n## 致谢与社区\n\n虽然 MIT 许可证允许在不要求署名的情况下自由使用，但我们鼓励并感谢那些承认原创作品的开发者。这有助于培养健康的开源生态系统并支持持续开发。\n\n**如果 AI Motion 对你的项目有帮助，请考虑：**\n\n- 在你的文档或 README 中提及此项目\n- 在代码中保留署名注释\n- 在适当的地方添加回到此仓库的链接\n- 给仓库加星以表示支持\n\n**回馈社区：**\n我们欢迎社区的贡献！以下是你可以帮助的方式：\n\n- 通过 [GitHub Issues](https://github.com/gaomeng1900/ai-motion/issues) 报告错误和建议功能\n- 提交改进的拉取请求\n- 分享你的使用案例和示例\n- 帮助改进文档\n- 传播项目\n\n你的贡献，无论是代码、文档还是反馈，都有助于让 AI Motion 对每个人都更好。\n","readmeFilename":"README.zh-CN.md"}