{"versions":{"0.1.0":{"name":"ai-motion","version":"0.1.0","private":false,"license":"MIT","type":"module","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","main":"build/motion.js","module":"build/motion.js","types":"build/Motion.d.ts","exports":{".":{"import":"./build/motion.js","types":"./build/Motion.d.ts"}},"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.1.0","gitHead":"98cba4eddeee9921463a84d6c88e70c6c086d259","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-rXklHggP0ZKIpPUoEC7vSzQEo9Yi5Kn1izK1kDLkmAOdpCMdhdbQBBNcJ4zK0ZcbiGyxx1mG8+jpRqNqgS6JSg==","shasum":"6621d54013ab6cb0cd58574ffa49adc1092364fc","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/ai-motion/-/ai-motion-0.1.0.tgz","fileCount":10,"unpackedSize":24560,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAPgJuIN2CrIyMTbemL3ARjcwKN59Ir/8fIX+Yhj0DLaAiBEj4vU4Og+j5fm9yHybDEIvY5Webm4HEHoUhUq2tr/Dg=="}],"size":7898},"_npmUser":{"name":"anonymous","email":"gaomeng1900@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"gaomeng1900@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-motion_0.1.0_1755882153418_0.03367001962571248"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-22T17:02:33.658Z","publish_time":1755882153658,"_source_registry_name":"default","contributors":[]},"0.2.0":{"name":"ai-motion","version":"0.2.0","private":false,"license":"MIT","type":"module","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","main":"build/motion.js","module":"build/motion.js","types":"build/Motion.d.ts","exports":{".":{"import":"./build/motion.js","types":"./build/Motion.d.ts"}},"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.2.0","gitHead":"fe04890c22660a4fa805633f48c70e911f71d9e6","_nodeVersion":"22.14.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-Yura6oR17qELbxi8vykQkbN+4b+tJlvcnlBzmgHN/yS8hkarXGeLZ8V4hvi5Uby1lFOhiZE/penlg8Hs0NP0SQ==","shasum":"e39aeb6a9ac6cd218e8e8be5c764aa43893cf9f3","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/ai-motion/-/ai-motion-0.2.0.tgz","fileCount":10,"unpackedSize":27351,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFXuSxWBzIrkZYfhPi5oHnB67GQHUsmChvMpjorSKaEuAiEA1ck5tKuaVU/7OM/pmGYU+9oSoc1ngfvuQYF/LIwro/o="}],"size":8510},"_npmUser":{"name":"anonymous","email":"gaomeng1900@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"gaomeng1900@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-motion_0.2.0_1756110206915_0.2399057555148576"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-25T08:23:27.127Z","publish_time":1756110207127,"_source_registry_name":"default","contributors":[]},"0.3.0":{"name":"ai-motion","version":"0.3.0","private":false,"license":"MIT","type":"module","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","main":"build/motion.js","module":"build/motion.js","types":"build/Motion.d.ts","exports":{".":{"import":"./build/motion.js","types":"./build/Motion.d.ts"}},"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.3.0","gitHead":"ba075f696782c1dfc9298b1a7cf0b470ece17bae","_nodeVersion":"22.14.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-wewXc8dVlOXk1R7+WomQkFy2uAfmQteQIoWduid8C95jP5N1BFWuolRMoMXRMx0X77r83b9+Vs8ci9O9GthA5Q==","shasum":"b05865ebba7b89fa4c76f96d21085ff8e1578d02","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/ai-motion/-/ai-motion-0.3.0.tgz","fileCount":12,"unpackedSize":1992432,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE8kEqRaZh+jPcsenknrDbk+joijVil14fPe/W3RqGZAAiEAl1Vz0Qf0LbsR8MlbfNh/C+xMjbrHiP615ux72LqXJ2I="}],"size":1972901},"_npmUser":{"name":"anonymous","email":"gaomeng1900@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"gaomeng1900@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-motion_0.3.0_1756117622523_0.7601440617795701"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-25T10:27:02.737Z","publish_time":1756117622737,"_source_registry_name":"default","contributors":[]},"0.4.0":{"name":"ai-motion","version":"0.4.0","private":false,"license":"MIT","type":"module","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","main":"build/motion.js","module":"build/motion.js","types":"build/Motion.d.ts","exports":{".":{"import":"./build/motion.js","types":"./build/Motion.d.ts"}},"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.0","gitHead":"1e7fb686a79bfd81a0ad259a85664d82e8b59d8e","_nodeVersion":"22.14.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-ZEaKo7M1X8r5x6/9urvfW5dd3OlmBJQ1BQo6I4v8EniHnxRA09mieK2z8dOlzbgdGR926tLFS/G9jVKj4KR4Dw==","shasum":"12ad0b150bee93ce8ab1e80aff01c81e730586f7","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/ai-motion/-/ai-motion-0.4.0.tgz","fileCount":10,"unpackedSize":26631,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE2wA7dnnvOmHsG4YwF4FcBHweCm3yZg/TtllDzT9TroAiEA9PlaXcs1mINMXPi/YzSddAwfx7dImUmdhM+2fAisn8c="}],"size":8367},"_npmUser":{"name":"anonymous","email":"gaomeng1900@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"gaomeng1900@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-motion_0.4.0_1756117693220_0.7427442795857986"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-25T10:28:13.386Z","publish_time":1756117693386,"_source_registry_name":"default","contributors":[]},"0.4.1":{"name":"ai-motion","version":"0.4.1","private":false,"license":"MIT","type":"module","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","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"},"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.1","gitHead":"f61b727fa5a08dfc0a81993fea0284cf7d6fcf31","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"homepage":"https://github.com/gaomeng1900/ai-motion#readme","_nodeVersion":"22.14.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-VSeHUEC6vrMGbErEMlGoa5Rxsjm+4f05RBwhCLSNb5SfMfexUACm1He3ARjlcFHACqmZNDtAAAuvgtV61TW6Eg==","shasum":"613161fd7d962b4fb2601e435ca71a3d30bba2fc","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/ai-motion/-/ai-motion-0.4.1.tgz","fileCount":10,"unpackedSize":26729,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICEpeBGhZ4HeOeU7Wg8iqlynLoTlWzDD1zMusYHxERyVAiEA4uALyCt2vLtGzENinfpRqkJoQOQvvJtQLR3NkXEhlCU="}],"size":8422},"_npmUser":{"name":"anonymous","email":"gaomeng1900@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"gaomeng1900@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-motion_0.4.1_1756117916555_0.8829855477144011"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-25T10:31:56.740Z","publish_time":1756117916740,"_source_registry_name":"default","contributors":[]},"0.4.3":{"name":"ai-motion","version":"0.4.3","private":false,"license":"MIT","type":"module","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","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.3","gitHead":"b2f9c494a926c99a9296056d7bd582ab9a1b6fa1","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-P02wglLmRL+JSZQzPswll+eQ9tCj8hMBi4lFoUj0cRB/s3N+zdzx5LmsjS1YMscolwzP87CE1C7di53cj2EebQ==","shasum":"89cdd6f7e2f8684ce8c04eb40e2f2529061c863e","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/ai-motion/-/ai-motion-0.4.3.tgz","fileCount":10,"unpackedSize":29785,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDsUY8vunsPEBSzXEKvgDpKZeu+701Gh1NSWEENOdKclAIhAKklBW1EhfCpFw15buMZzts/bDFmjzm5XoYz1s3AuZ6/"}],"size":9331},"_npmUser":{"name":"anonymous","email":"gaomeng1900@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"gaomeng1900@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-motion_0.4.3_1756198379341_0.023073447405333125"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-26T08:52:59.517Z","publish_time":1756198379517,"_source_registry_name":"default","contributors":[]},"0.4.4":{"name":"ai-motion","version":"0.4.4","private":false,"license":"MIT","type":"module","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","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.4","gitHead":"a4da4694c77001a4738f5e84f54a9328cf620ed4","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-LLoCgp3pccsbEntHg3KlTF/bNZ3cgELn7Rjkq5BjmWG62DWAjE0mwT9yx/Fc4KCGTRzT8LuqRZeLZDwsfx7Vmw==","shasum":"221bc0463c68c6dd0e9b9bb886f40aa53fc5dd8b","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/ai-motion/-/ai-motion-0.4.4.tgz","fileCount":10,"unpackedSize":29738,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFHNwVm4A6sz3wjFlfeMXrA1opv7/U1cop2In6VG/aoMAiEAykKtHCtrLgK2bHTpjdIBDs4c42hnbvX7qk6zgbezBNs="}],"size":9333},"_npmUser":{"name":"anonymous","email":"gaomeng1900@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"gaomeng1900@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-motion_0.4.4_1756200734474_0.12287753741131957"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-26T09:32:14.691Z","publish_time":1756200734691,"_source_registry_name":"default","contributors":[]},"0.4.5":{"name":"ai-motion","version":"0.4.5","private":false,"license":"MIT","type":"module","description":"A minimal WebGL2 ESM library for AI-style motion mask animation.","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.5","gitHead":"554c85273c0c2836f354152cfde00a5fc095e1f3","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-QExARl9vr2Mp47r724UO/Kv8WcKNLk+yONEu5DDdmhSfbOghjruyv3m36O0bJRWtRrtDpowtVMmmNgqPW51Wug==","shasum":"1715b6b5d95fc11726a33b5eadb9949b91e5bf67","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/ai-motion/-/ai-motion-0.4.5.tgz","fileCount":11,"unpackedSize":36103,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAISGOjquDpEbjTnz3A4JdUxLvAcn58/xJdAqhQAc2m3AiA0jn5WSQxf8meKoydI5e186K93MM933+G9UMTuqRTnkg=="}],"size":11902},"_npmUser":{"name":"anonymous","email":"gaomeng1900@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"gaomeng1900@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-motion_0.4.5_1756208413766_0.004142383777566483"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-26T11:40:13.942Z","publish_time":1756208413942,"_source_registry_name":"default","contributors":[]},"0.4.6":{"name":"ai-motion","version":"0.4.6","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.6","gitHead":"cd203e88f61a8585cf2df0b517cf1ea98b81bdc0","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-F2CGMXsXen20gynyAZjsYcCanIexwa85qpEnY6Zw+dRds9AvPmU4wqE0tQfoAdpOchmOVB+tRR4phgbaB8o/gQ==","shasum":"4708badde70cb1b5d8f663636de076c9dd00c87d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/ai-motion/-/ai-motion-0.4.6.tgz","fileCount":11,"unpackedSize":36957,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBxeNRw7Hx5aL2+crk3WDs0R/XFi8qbSfMYhhwGf/YpMAiEAqZJQYWx+r1H1jj01Hn96cZmMzAG+FbaR+rf8jMdo0XE="}],"size":11946},"_npmUser":{"name":"anonymous","email":"gaomeng1900@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"gaomeng1900@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-motion_0.4.6_1756210097223_0.6328218568342849"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-26T12:08:17.484Z","publish_time":1756210097484,"_source_registry_name":"default","contributors":[]},"0.4.7":{"name":"ai-motion","version":"0.4.7","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.7","gitHead":"3ddb8fe8d4ac1fca3a2c7eff788d1517c3beea82","bugs":{"url":"https://github.com/gaomeng1900/ai-motion/issues"},"_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-yuFtVgWeaxKyvfSFocA01Mr4UbRvwwy7HWZ6Mq9NM/yccAkqp3UCGdWX6AflNB8cU27PgwTBiMRfx6C9di7xkQ==","shasum":"4a3704e1bfb9509c06587915b3fbfb83b517164b","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/ai-motion/-/ai-motion-0.4.7.tgz","fileCount":11,"unpackedSize":36957,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD02lxjybdpQAZTMomOdfCROwSvsRFAVcminTZtcB9TrAIhAIBb2+E5ArGlLYX9Piry6N+p+imkhfqb897eNWK5hmXw"}],"size":11940},"_npmUser":{"name":"anonymous","email":"gaomeng1900@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"gaomeng1900@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-motion_0.4.7_1760086492485_0.8516195169076259"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-10T08:54:52.719Z","publish_time":1760086492719,"_source_registry_name":"default","contributors":[]},"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":"http://123.232.10.234:8212/nexus/content/groups/npm-public/ai-motion/-/ai-motion-0.4.8.tgz","fileCount":11,"unpackedSize":39216,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB6vvrnRaQSZQ1QGzwk9a57HEli6A/qXpPR8Dbwpaw+9AiBJ1WsslqDziJAWPBfCuHDU05mdc0ij0YSPtt0JzAj2ww=="}],"size":12800},"_npmUser":{"name":"anonymous","email":"gaomeng1900@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"gaomeng1900@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-motion_0.4.8_1767863545788_0.3113278636536656"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-01-08T09:12:25.953Z","publish_time":1767863545953,"_source_registry_name":"default","contributors":[]}},"dist-tags":{"latest":"0.4.8"},"name":"ai-motion","time":{"created":"2025-08-22T17:02:42.699Z","modified":"2026-01-08T09:12:41.533Z","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"},"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.zh-CN.md)**\n\nWebGL2 animated border with AI-style glow effects. Zero dependencies, modern browsers only.\n\n🌈 **[Live Demo](https://gaomeng1900.github.io/ai-motion/)**\n\n![Demo](public/demo.gif)\n\n## Install\n\n```bash\nnpm install ai-motion\n```\n\n## Quick Start\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 Reference\n\n### Constructor\n\n```ts\nnew Motion(options?: MotionOptions)\n```\n\nCreates a new Motion instance with WebGL2 canvas element.\n\n> Throw error if the browser does not support WebGL2.\n\n### Methods\n\n#### `start(): void`\n\nStarts the animation loop (cap to 30 fps). Safe to call multiple times.\n\n```ts\nmotion.start()\n```\n\n#### `pause(): void`\n\nPauses the animation loop. Preserves state.\n\n```ts\nmotion.pause()\n```\n\n#### `dispose(): void`\n\nCleans up WebGL resources and removes canvas. Instance becomes unusable.\n\n```ts\nmotion.dispose()\n```\n\n#### `resize(width: number, height: number, ratio?: number): void`\n\nResizes canvas and rebuilds geometry. Updates image immediately if running.\n\n```ts\nmotion.resize(800, 600)\nmotion.resize(800, 600, 2) // with custom pixel ratio\n```\n\n#### `autoResize(element: HTMLElement): void`\n\nAuto-resizes to match target element using ResizeObserver.\n\n```ts\nconst container = document.getElementById('container')\nmotion.autoResize(container)\n```\n\n#### `fadeIn(): Promise<void>`\n\nAnimates opacity 0→1 with scale effect (300ms).\n\n```ts\nawait motion.fadeIn()\n```\n\n#### `fadeOut(): Promise<void>`\n\nAnimates opacity 1→0 with scale effect (300ms).\n\n```ts\nawait motion.fadeOut()\n```\n\n### Properties\n\n#### `element: HTMLElement`\n\nThe canvas element. Append to DOM where needed.\n\n```ts\ndocument.body.appendChild(motion.element)\n```\n\n## Options\n\n```ts\ninterface MotionOptions {\n\twidth?: number // Canvas width (default: 600)\n\theight?: number // Canvas height (default: 600)\n\tratio?: number // Device pixel ratio multiplier (default: devicePixelRatio)\n\tmode?: 'dark' | 'light' // Color optimization (default: 'light')\n\tcolors?: [CSSRgbString, CSSRgbString, CSSRgbString, CSSRgbString] // Color list (default: see below)\n\tborderWidth?: number // Border thickness (default: 8)\n\tglowWidth?: number // Glow effect width (default: 200)\n\tborderRadius?: number // Corner radius (default: 8)\n\tclassNames?: string // CSS classes for canvas\n\tstyles?: Partial<CSSStyleDeclaration> // CSS styles for canvas\n}\n```\n\n### Mode Details\n\n- **`light`**: High saturation, works better on light backgrounds\n- **`dark`**: Clean luminous glow, works better on dark backgrounds\n\nChoose based on your background color. Use light mode if you cannot decide.\n\n### Colors\n\nThe `colors` option allows you to customize the gradient colors of the animated border. It must be an array of exactly 4 RGB color strings.\n\n**Default colors:**\n\n```ts\n[\n\t'rgb(57, 182, 255)', // Cyan\n\t'rgb(189, 69, 251)', // Purple\n\t'rgb(255, 87, 51)', // Orange\n\t'rgb(255, 214, 0)' // Yellow\n]\n```\n\n**Custom colors example:**\n\n```ts\nconst motion = new Motion({\n\tcolors: [\n\t\t'rgb(255, 0, 128)', // Pink\n\t\t'rgb(128, 0, 255)', // Purple\n\t\t'rgb(0, 128, 255)', // Blue\n\t\t'rgb(0, 255, 128)' // Green\n\t]\n})\n```\n\n**Important notes:**\n\n- Must provide exactly 4 colors\n- Colors must be in RGB format: `'rgb(r, g, b)'`\n- Values must be integers between 0-255\n- Spaces after commas are optional: both `'rgb(255, 0, 0)'` and `'rgb(255,0,0)'` are valid\n\n## Examples\n\n### Fullscreen Background\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### Responsive Container\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// Fade in animation\nawait motion.fadeIn()\n```\n\n## Requirements\n\n- WebGL2 support\n- Modern browsers\n\n## Development\n\n```bash\nnpm install\nnpm start      # dev server\nnpm run build  # library build\n```\n\n## License\n\n[MIT](./LICENSE)\n\n## Attribution & Community\n\nWhile the MIT license allows free use without attribution requirements, we encourage and appreciate developers who acknowledge the original work. This helps foster a healthy open source ecosystem and supports continued development.\n\n**If AI Motion helps your project, please consider:**\n\n- Mentioning this project in your documentation or README\n- Keeping attribution comments in your code\n- Adding a link back to this repository when appropriate\n- Starring the repository to show support\n\n**Contributing Back to the Community:**\nWe welcome contributions from the community! Here are ways you can help:\n\n- Report bugs and suggest features through [GitHub Issues](https://github.com/gaomeng1900/ai-motion/issues)\n- Submit pull requests for improvements\n- Share your use cases and examples\n- Help improve documentation\n- Spread the word about the project\n\nYour contributions, whether code, documentation, or feedback, help make AI Motion better for everyone.","users":{}}