{"_id":"mstf-kit","_rev":"39-e6cca3de0bb8d8116b8ac858536cd874","name":"mstf-kit","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"mstf-kit","version":"0.1.0","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","工具库","实用工具"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.1.0","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"faa3c4f0fc89b2a78d07fd30bf271192626af178","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.1.0.tgz","fileCount":9,"integrity":"sha512-JHo8GJr5MaiRSVeQYW8t1OcwR8NfJAk2nnpcKuPMfEmT7PePfiYgPdbS1I9RAvCQBlgTMgj7R0a8acIyh1HtIQ==","signatures":[{"sig":"MEQCIBuWY6eiM7zySQmmlRMSFJQzIzvd5iIq4RbxhdMSMJXaAiAac3phlA99YcNVejuKmXedtunhRKA0chH+yZoLHVy+RA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119790},"main":"./dist/index.cjs.js","type":"module","types":"./types/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.es.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/index.es.js","default":"./dist/index.umd.js","require":"./dist/index.cjs.js"}},"scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.1.0_1741688768517_0.8448059516819715","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"mstf-kit","version":"0.1.1","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","工具库","实用工具"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.1.1","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"d15fe7f3d56861e14569adebac01465b731ae27d","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.1.1.tgz","fileCount":9,"integrity":"sha512-v0TJSbywjaXKwKjJNnJkYJfoNmaTn4p6SkqzQq1hDCfn7UoH7CQ4HiOx4M5lG+N4Wqa/KANJhA8CTeXg8gXunA==","signatures":[{"sig":"MEQCIFsoNxPbD7Z3XkBrVRWoCuglg0aD4ZrAWwEkpbEi8k9SAiBMT4EqmA0F6LXVbFM3vfFwNcuZOaICobpcmak0XkXQ1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119742},"main":"./dist/index.cjs.js","type":"module","types":"./types/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.es.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/index.es.js","default":"./dist/index.umd.js","require":"./dist/index.cjs.js"}},"gitHead":"c71a3951324a989bb82cca830c983e82bcf53d0d","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.1.1_1741693252860_0.7335193120874584","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"mstf-kit","version":"0.1.2","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","工具库","实用工具"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.1.2","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"dd3325d0c498fedd1548564324fcec57a970e9f0","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.1.2.tgz","fileCount":9,"integrity":"sha512-SxSJh5qty0S7mhkPiGtXnqpmtuC93yBSszqXcmoBbZy6jCbu043vE+yWloJrZeC+afN+99lEgMbw431RLVTukg==","signatures":[{"sig":"MEUCIQDQ9ohSBu2CbTALfCLwlHqlHhRFEYmb86vGUp8SgTWcfQIgMaVIeA/C2T/Ha7mfgHkl3o+7clXCBKRnoUXaZYgr/IA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121232},"main":"./dist/index.cjs.js","type":"module","types":"./types/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.es.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/index.es.js","default":"./dist/index.umd.js","require":"./dist/index.cjs.js"}},"gitHead":"c71a3951324a989bb82cca830c983e82bcf53d0d","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.1.2_1741694372508_0.08884751154455706","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"mstf-kit","version":"0.1.3","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","工具库","实用工具"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.1.3","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"99cc541cd34e9625c0701caea36798ded31437ff","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.1.3.tgz","fileCount":9,"integrity":"sha512-MxOX3OXFsvmSTrVORJyz97QrqfpsUSwLKl8Cn6oGOF9i9uFI0GUTg8JhapOP9x9X9nox7T+pCoyzOucySsvSiA==","signatures":[{"sig":"MEYCIQDwZrDMi0apvdFUo4oSChBTb8Ay1lHW/McHUGbqba4BoQIhAMVxP+fNxjOcA6UWrHJ7g2CcKTEuAQ+nGbOi7aKYLT5s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121786},"main":"./dist/index.cjs.js","type":"module","types":"./types/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.es.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/index.es.js","default":"./dist/index.umd.js","require":"./dist/index.cjs.js"}},"gitHead":"6220d950d347caea371438926386a7e4b9f558b4","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.1.3_1741694741355_0.904696189090274","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"mstf-kit","version":"0.1.4","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","工具库","实用工具"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.1.4","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"6b9da48d9b28661164187d3dc40b4920de73b013","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.1.4.tgz","fileCount":9,"integrity":"sha512-BTSeqZRqfC92zCsKI1C6g1Bby2l4oKJlcfNj5Y7VouULgmdK4sVL/PxLdEtajrObYhPB6Uy3iIeCGH1rPioSIA==","signatures":[{"sig":"MEYCIQCBBOMOuKi1v6oYtVTtPbvQosNcKmaeMB+IprJgSokvuwIhAMI1JuBJPOq5K0JLrVFEBeZbgolJPdXhLv6dJ/XsAwG4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123088},"main":"./dist/index.cjs.js","type":"module","types":"./types/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.es.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/index.es.js","default":"./dist/index.umd.js","require":"./dist/index.cjs.js"}},"gitHead":"6220d950d347caea371438926386a7e4b9f558b4","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.1.4_1741695096836_0.21786999304185128","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"mstf-kit","version":"0.1.5","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","工具库","实用工具","音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.1.5","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"562b4a9d5d00e8e9af3a31e3b3decd69ea23dd9a","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.1.5.tgz","fileCount":9,"integrity":"sha512-O7GOxH76+kcIihFbFgS5r4bq8qzJHmaASrdyOGqSqOivWa27FI7Yji8ndejhY1XOglTJ9KUrN0Yu2QoDUzZNjQ==","signatures":[{"sig":"MEUCICbIzMESLPycSr5yaIAM/wPtWmTrlOzKqfft6ROy9amYAiEAxCgRTdoB4yv/qZACVKgnVwfQCnOomqZsone+jsGXqh4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169248},"main":"./dist/index.cjs.js","type":"module","types":"./types/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.es.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/index.es.js","default":"./dist/index.umd.js","require":"./dist/index.cjs.js"}},"gitHead":"88c6767c409b31901803a928d539fb00f46edc32","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"git://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.1.5_1741875819976_0.009528536242132901","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"mstf-kit","version":"0.1.6","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","工具库","实用工具","音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.1.6","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"7e4e7af4b9d5bcc2ec6c06e438e270cd11d532ff","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.1.6.tgz","fileCount":9,"integrity":"sha512-KAFomkm8XQM4DV4y2ag2KRF2AEWBvnFlwCBEM9PWBbvokr3+fl3t96YfXLBjRvQhfhcfmLZdzW1RBwfRbutmkQ==","signatures":[{"sig":"MEUCIQDOwjleqUGwhT7XGgD5j5GgLclhrH4q2X/3iMW4hYFKQgIgCfQCVzD/XE1YFBmby1W7aSTXDaK2ZShD4k8+V+iZlVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169250},"main":"./dist/index.cjs.js","type":"module","types":"./types/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.es.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/index.es.js","default":"./dist/index.umd.js","require":"./dist/index.cjs.js"}},"gitHead":"ca62205b76c0f603f91145bc1c6abe03e9d937a1","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.1.6_1741876283702_0.7767249812225956","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"mstf-kit","version":"0.1.7","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","工具库","实用工具","音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.1.7","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"2ef959f8c6ae1689ef793eab795f0e93067561fd","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.1.7.tgz","fileCount":9,"integrity":"sha512-VBBRN5wcz9/cW5afrjia8Qz5oUdkKQSCMevH4hHwIRCSsuMzB0EZCGCDn7UMbpt/bhsKJxymz8lgn2iPrUSzOg==","signatures":[{"sig":"MEUCIHUzTMXsYKHRjayQ/hZ/xjlAPf36S67+DEhHCZ0ZgzqGAiEA91rbYSpEW6q6CZ25kaLhZNbdVp3uT7pFrtu1LCDOSGM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1471586},"main":"./dist/index.cjs.js","type":"module","types":"./types/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.es.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/index.es.js","default":"./dist/index.umd.js","require":"./dist/index.cjs.js"}},"gitHead":"aa312b930024c319db41f0f0a2f21e7ab9ec510e","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"lottie-web":"^5.12.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.1.7_1741923172438_0.40945144530257505","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"mstf-kit","version":"0.1.8","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","工具库","实用工具","音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.1.8","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"28bb30e3186d9573add3ff25299cba21c64db480","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.1.8.tgz","fileCount":62,"integrity":"sha512-9wFs8r2F6fgiOXIGQhNAaJdHROpAErDtIjlxhA2zUbEMO+Tr0CZE+WRIEKMOsvsdQGMTDTKvSVQmnpqiSztyig==","signatures":[{"sig":"MEYCIQCcMJBywUXBPkXGkyunxGXoGIsMzGtppGePfpkFMRCEZwIhAMNFpIwTmT2AtLxuriZP58yzeN5HPl8HHc+p1f4CzfcH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3510855},"main":"./dist/cjs/index.js","type":"module","types":"./types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"d758c60f5d21ecbf55de7f7216f6a6bb903c0fe8","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"lottie-web":"^5.12.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.1.8_1741925375079_0.5412230391016883","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"mstf-kit","version":"0.1.9","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","工具库","实用工具","音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.1.9","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"bb9efee99dcc3f739a543bd3075fad239b97f4ee","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.1.9.tgz","fileCount":46,"integrity":"sha512-66gurPkUCYHLQ9UN1i5b+jdmQyEHabUrEr0zX1xccXh+zM3qgwIPqvGm11r+a82f341z37qUtbOo+PVWDxYflQ==","signatures":[{"sig":"MEUCIAgeW3CgVKga38xzakimwAXqT3OsRy+maNRq9dJGR03ZAiEAqci0AJnm2k9VI4u+0J4lPvuMBQEkUmMwcFb4Y8LEOQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":386578},"main":"./dist/cjs/index.js","type":"module","types":"./types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"f1bc621b543bf9069d31f20ab8361be3598f75f1","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","lottie-web":"^5.12.2","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"peerDependencies":{"lottie-web":"^5.12.2"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.1.9_1741926028390_0.6360422906440988","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"mstf-kit","version":"0.2.0","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","工具库","实用工具","音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.2.0","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"7a51c57a3e05b511e43303ff8a60319431c39037","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.2.0.tgz","fileCount":46,"integrity":"sha512-UDLg2Fu2mrJ+KS+/kOa91cxwcJA2A2yzrfPx+NOrOC8cDHbxMoFVZAcSAaWbsFXRmOBee0qxEDPrFjliY/e/CA==","signatures":[{"sig":"MEQCID/zGH20772wER1I+6sgopePHvvoD7l+ZAsymHFE5OikAiBPC+enFd7SFSXE7HDiPnwoAuDXO1/VQdYBmxNrEsQ9iw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":386184},"main":"./dist/cjs/index.js","type":"module","types":"./types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"55a1c52edee82d0c531ff64c2cfbab7842a86089","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"lottie-web":"^5.12.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.2.0_1741926972384_0.9958356296779458","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"mstf-kit","version":"0.2.1","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.2.1","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"d963dcba94615ae787bd65197aa69e6fbf89c60a","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.2.1.tgz","fileCount":46,"integrity":"sha512-I9C27Hp5biNXqDdAWOZnOaHRb9jsenPcYAqqfxN/Qasd2mXHKEzKQ42ZGE3emI8NUN0iv7gwqSrNf7zIKcE8gA==","signatures":[{"sig":"MEYCIQCSIXXkq6ZUD4FUsUmjl+P0ldB4WYXp3hv2JoLOLmxnigIhAM5/CQ3sQRjduSQBmIBvu6mWH+1htHxWw72fBoLqL5hx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":398120},"main":"./dist/cjs/index.js","type":"module","types":"./types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"bceebeb3ec2991b6874e4c9d938d5fe7c931ff45","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","@lottiefiles/dotlottie-web":"^0.8.1"},"peerDependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.2.1_1741932864765_0.2635070030205995","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"mstf-kit","version":"0.2.2","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.2.2","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"e7680e0302b01bfc367da9540fc3cd803e59a39b","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.2.2.tgz","fileCount":46,"integrity":"sha512-xbX2iofhiwk3xBWKQXeXTCnuV3B4AsCJftluDOlxK+vCuuKPyT3R+fRaHyPkmxL1bDPy6ezu1N4pxa0LIIX0hQ==","signatures":[{"sig":"MEUCIDNBAi7/A+6Ukk0BeOZZE/titm6IJnbkM2GG/mmBdhUZAiEA+JNbesQUbAU7m7qrYuGer5/RKlNp9c9zLJR357PoHw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":397542},"main":"./dist/cjs/index.js","type":"module","types":"./types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"9359823b7475d32e1bda62229c1556d6d0b52849","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.2.2_1741934022456_0.4457683242101873","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"mstf-kit","version":"0.2.3","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.2.3","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"b6be0353d523d4b75626fe1f68cf1ce06a382cd4","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.2.3.tgz","fileCount":46,"integrity":"sha512-CuWNOHTWZLFVz6JGnN/KqnTgd7b2fu57OAcw3jqFT4u2kd3xEjK/6r+mudmEVmsDp5d8+w1MhGXRxGy1ZpTkLA==","signatures":[{"sig":"MEYCIQDQSu066jkRXk3Dbt6y070k2N142VIMdg6P46Xf5cI+uAIhAJL3hDVwb6OQPSCZ73RqUQfXaknJNyqo3s473ten9Q9J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":407465},"main":"./dist/cjs/index.js","type":"module","types":"./types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"2a8adb0af9bff72c04384aef24c227397d5b722c","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.2.3_1741950494888_0.44401931556420404","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"mstf-kit","version":"0.2.4","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.2.4","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"16a0f60bb42144475f46150d0d7d2a97aa9f4b3f","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.2.4.tgz","fileCount":46,"integrity":"sha512-PDIFNjCLzgQoBN9S9UiFSLpWuJU/aKY5KKfXTeiW2Mk8oVLS9sZuSOJAgQGFiYsfXjh3nwEAeoUg5G0Pqtk0ow==","signatures":[{"sig":"MEQCIEH51cToTe+vtIP/q42s1OBAeYZhaLbfUcoLkFvyOYeaAiBa08ZJYJfHsrMARFuFu4sA82/OKESBMUyZGG0orpM5gA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":442753},"main":"./dist/cjs/index.js","type":"module","types":"./types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"d7458e4e73b9b9c1fdbb873c3ee5f3b417f274d8","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.2.4_1741951441790_0.12832733978667155","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"mstf-kit","version":"0.2.5","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.2.5","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"eddaea1c49b2382f3f19293ca33b9e0686d55feb","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.2.5.tgz","fileCount":46,"integrity":"sha512-oguFki+1nOetrPmbyDhZ3BG40O2Iz41fTLmI/NiK7HBHTfOhrMYUY0IhqE48SFMCQjkgiFQZ/Gyyw8ZxG9LtTw==","signatures":[{"sig":"MEUCICqPYqOb1ELD9OM3ddaveJq5sLpdZiO8BNyILTyOlZYzAiEA2kF8XR0NgE5ZiinJtqVgayBPAwa+sCTl+MqOHOYJj1I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446502},"main":"./dist/cjs/index.js","type":"module","types":"./types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"9855a47f83bea31c1473a589e9630b46dbf22247","scripts":{"test":"jest","build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build","prepublishOnly":"npm run build:prod && npm test"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.6","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.2.5_1742181551933_0.3015052328249872","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"mstf-kit","version":"0.2.6","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.2.6","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"682b1610a8502bc22e08b607de435e9997075882","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.2.6.tgz","fileCount":46,"integrity":"sha512-UJpBkKkFU88eEb5ADaO7G2TohIb49bbOgYBmVkbO92XFi9XU36lZXpa/z3LXQzbyRZHp7ve6OCHBJaaG5M6+YA==","signatures":[{"sig":"MEUCIArawiByChpIH86jAQO0zgsBX8MR7ftU4Fe8x6plLjQOAiEAhXt881KRvIZ9ViwNmb/CuBaFMUabAr9wie8XsL/aSgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":465721},"main":"./dist/cjs/index.js","type":"module","types":"./types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"1a986cf5d52034c6c8be31b04eed7cebb1e0c5b6","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.2.6_1742184784155_0.09300687589497314","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"mstf-kit","version":"0.2.7","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.2.7","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"052126aadb46ec058ff394f2aacc98083914188c","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.2.7.tgz","fileCount":46,"integrity":"sha512-nKKRtg409y2CguCho46fYS9oH9/uiSxwvpdXgNfXTi8RYiC/1ZDjn3sEin2FLwrE3zcMcLNhT+qGsxIRFjPFzw==","signatures":[{"sig":"MEUCID8J2jXnhfRPl0qO9BMN5wp2zp3gnZVg6sZhADT924CyAiEAj1JRT5E5dwKHkUi/Vqt+Wcf5n41SZXnzRLeUpHAO6dQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":478639},"main":"./dist/cjs/index.js","type":"module","types":"./types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"1a986cf5d52034c6c8be31b04eed7cebb1e0c5b6","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist types","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.2.7_1742186189390_0.4205885622873349","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"mstf-kit","version":"0.2.8","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.2.8","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"f36120435eb2006bb1a7fe0b1ea20ac286287b0c","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.2.8.tgz","fileCount":62,"integrity":"sha512-MWgYEPbyRjIin7N1uE1/wp1CG68OoibZhQ8iprSrCATZg6R5ANmkz4ccoN2F+REFixjNPD8sNwgN1lFYJ7DEtA==","signatures":[{"sig":"MEYCIQCd3/kXPwkLxiNtmdYzy688D/jZAIg3WX3gJSFnzgXccQIhAKVjjzpQEoeVpgze9B2tXXasVNeG4mzOHdwW07ZA2lxa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":512783},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"d9fb66d6e5e3a2a8a61cca1e647fa1085a8532ba","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.2.8_1742188013548_0.4623648801478757","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"mstf-kit","version":"0.2.9","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.2.9","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"8301a42d64e4eb1555d8b1734890b95e0ef09b76","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.2.9.tgz","fileCount":62,"integrity":"sha512-UHkyyuVgV2EWiZkExiHvDUnh8mEyk8ZmqijSVY9LRG9WYzKK9j4vA5259fzkV7LhEVw5h+BlUAUpi+YlOBYlkw==","signatures":[{"sig":"MEUCIQDZhVxN2ltaLrT5DoXDQb8hIQfXpOoG29S1h5Hhj3VtkwIgPwnJD3S6Wq+AKMAZUGMhb53IZeWQyoZYrjHafp/woUA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":515761},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"d9fb66d6e5e3a2a8a61cca1e647fa1085a8532ba","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.2.9_1742188494179_0.3359412611512025","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"mstf-kit","version":"0.3.0","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.3.0","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"dbdb2a22c228d1ece19af7b70172ef1b1e1de293","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.3.0.tgz","fileCount":62,"integrity":"sha512-lwkdmdkThKb1DvpzW3wTMmrmESCh3bE8QtXDpbYnqRERiHvDFo90rUWBmUyMhvtI5HkbweQ2vkorhFcjEBLu2g==","signatures":[{"sig":"MEQCIHsPl7OVATAmLELOAwlh7Zp2qxxZhYydMPVzakshdhWcAiAuLfDiHUOrZvbRr6DUYRpqnsLH/s1TgvqIpcMUzvzWhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":504435},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"8b04f45bb62489e0f5aaa066c6ed4721763d55d6","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.3.0_1742191285096_0.7858875362826403","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"mstf-kit","version":"0.3.1","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.3.1","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"322ab040cc50164213f2c7159f43a3f4fdc19e6d","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.3.1.tgz","fileCount":40,"integrity":"sha512-IKirR9nCN/wPzq0CVq3Xf7AHu9sZsmE8SMavDr/S+niwHZb9LUonT4TUMzZOQeXnPfQO9RnKi0gXwFAslneu4A==","signatures":[{"sig":"MEYCIQCq6Pv7fgNHXtMTC5MSVoFaaB+ZiA7Rvi2b5HLkBey33QIhAIufG4xet233zjD+jS6ApPek9NYBbZc0Hx+xPRO4FSFd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":229493},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"8b04f45bb62489e0f5aaa066c6ed4721763d55d6","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.3.1_1742203216651_0.5468853364637567","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"mstf-kit","version":"0.3.2","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.3.2","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"11cc9cdbaaa7c6534bea205e4d007ddd60f4803a","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.3.2.tgz","fileCount":40,"integrity":"sha512-M9frJcNjIA9lL5gMLT/YqaPUuT0+5fH9Ciq3Pk6zWcNqEtAkNvapxcTP/bbPXvydQPkevr8L5rhNh/eYX44nfQ==","signatures":[{"sig":"MEQCIHmksaahUU+LS0yC8gdcTWZW38WnqjQXnjd+Im4wSTzEAiBlE+6PaUHnOZERnQ3yOMDNMcD4eABoTL47FX+OoyHSdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231658},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"8b04f45bb62489e0f5aaa066c6ed4721763d55d6","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.3.2_1742204296669_0.3625549654155731","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"mstf-kit","version":"0.3.3","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.3.3","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"d4b4f03835a3cccb0d2d75aab6f4aa06c4ddb97b","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.3.3.tgz","fileCount":40,"integrity":"sha512-COv6i18vWvwCvAlXTqIV6soH6oHUDRNLpOzymc0sohqfwKd2piS5ejRB17nWbOjzdayE+58ysB0k9NyBKaVK2Q==","signatures":[{"sig":"MEUCIQChhP6HTZ4bHNjuo3YR+scg14oAWuXx/30eCykFrfvZ/gIgeP/C+apaac0IsQ+gpqxLPbdwCSuKjU2e+J02rwZNZRQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":230162},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"8b04f45bb62489e0f5aaa066c6ed4721763d55d6","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.3.3_1742205119565_0.7007700369116077","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"mstf-kit","version":"0.3.4","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.3.4","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"c1d1109aa8c131d9fce42134dd5ddc50346344fd","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.3.4.tgz","fileCount":43,"integrity":"sha512-WT5TuaUswFRhyxDHuc5iHGiR/yXZzq0oMl1vOGas9mC0kifUJmGlM2EnWjPXgQtflx01cJ2TtMrXmRDOSjX2gg==","signatures":[{"sig":"MEUCIHxlycp59Go42jCTiBNU+nJaPfH4z7ucpxJK5ioEUfafAiEAtV8ErH4DU9NomXCR09dntoNcVLaj3DknJG5RK8tDpTw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355721},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"29e4eaa40033487c3cac717a2c881abdebaf12a7","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.3.4_1742439324476_0.3666375373396107","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"mstf-kit","version":"0.3.5","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.3.5","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"9279ad3719a691cec360a517208f0d16cf03b819","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.3.5.tgz","fileCount":46,"integrity":"sha512-QN+kUa2ozV5abij113HI1+cXi/5+RBkvBuigJoI17GGqurvMVWIcdMS27PiJf4wTsrLfBxhbp7aekwsqDM6kaQ==","signatures":[{"sig":"MEQCIHUarlEKFCu+udGWRncCUBA28r5Q7UJPRZAleL2SfPYwAiBWh9JFUsNNA2oIHnZt2GqWYNxqhr1/qKgL6jHefF7X/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":425160},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"b50b90e07bece4a15c898973785ca0e778648f1a","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.3.5_1742559360487_0.5937154040758457","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"mstf-kit","version":"0.3.6","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.3.6","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"72a7e72b4cecea148f5765737760da4f1aae2aa8","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.3.6.tgz","fileCount":47,"integrity":"sha512-tmWH28T3wxNzwaq2Mh5TEVAe+84bl0BtKzql6ii0EASCUcReYKzJSAs2FtICSK5C5sRpnwuYXi1szAsggRuWeA==","signatures":[{"sig":"MEYCIQDK7qZ6nVyMLkE9GVWE64FOtWCNCmTa7E+2I4W4iu1mYwIhAPIyoql0iuJDbaanKcJ0dhP5Mqoa5JWb8Xk5CsRV8gxG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":360943},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"1ddb0df913317e729fd56dd9ca0d0e2c7c922ffa","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.3.6_1742617677826_0.3956927674673103","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"mstf-kit","version":"0.3.7","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","vue3","vue3 lottie","工具库","实用工具","音频播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.3.7","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"63e131b6d65990b06dfc96961bb65370192a2c44","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.3.7.tgz","fileCount":47,"integrity":"sha512-GfliKwJqbz++BuBfJBn5fTsy9FGu83Mf+VXGg+UptDgeS5hK8wb5qvlV7XnnJFAV5ZpzzLVe7tCHbROHEJRyYw==","signatures":[{"sig":"MEYCIQCn8k6Qvx9eDJfbNz+yWMhhIOPSIbyY+fVTR/uGlHLXvwIhALxN9Vx37AQbl4XG9GnPr9wx14HbCx/syA+4GSuhlyZj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359987},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"f674446cbb4fc324529c2c24d55ce7d63cbdac49","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.3.7_1742620181721_0.914012347601465","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"mstf-kit","version":"0.4.0","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","plyr","plyr-player","video-player","media-player","vue3","vue3 lottie","工具库","实用工具","音频播放器","视频播放器","媒体播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","vue3 视频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.4.0","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"7e42f9a621c527807003feab4b036f81f797e39b","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.4.0.tgz","fileCount":53,"integrity":"sha512-kA2wQhH3rxuoaLY7WD6kbB0eGkPbqCk+dYW0IBy7IHtkrKxJeKOVwcFMp4dqQqV3aaZXjmq/5bJLjyNC5sYvPQ==","signatures":[{"sig":"MEUCIHWNAPrcpOiTR8J/UvjRKA8wDW13HBjNutr9iDNEOGyRAiEAptV/FyORnASrBgjebALlaen3COfaygLkC0lLP/THJxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":543884},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"63616240c96533908f2d074f9f2160cbab03179c","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"plyr":"^3.7.8","@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.4.0_1747126228693_0.6346689245270203","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"mstf-kit","version":"0.4.1","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","plyr","plyr-player","video-player","media-player","vue3","vue3 lottie","工具库","实用工具","音频播放器","视频播放器","媒体播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","vue3 视频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.4.1","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"e28241a50d1a16f40355d19bd5be538b66795570","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.4.1.tgz","fileCount":53,"integrity":"sha512-JCTKWlrxLOf6DZb5q1cAYpWF2Gi0vbB6bENujmpt7Vs97amOUpdOw8xbYSd30iIc4a53LbLrR8Wmk+K6BeTw9g==","signatures":[{"sig":"MEUCIQDTPj7m0cqS9KC3IgKWTtygqsHDn638QnDTrW/SmYy2TwIgO9sax3mDwMhznPgLMnS+RXrE256gTQss0ttzwmvyIxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":543884},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"63616240c96533908f2d074f9f2160cbab03179c","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"plyr":"^3.7.8","@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.4.1_1747131807393_0.16712652650865412","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"mstf-kit","version":"0.4.2","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","plyr","plyr-player","video-player","media-player","vue3","vue3 lottie","工具库","实用工具","音频播放器","视频播放器","媒体播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","vue3 视频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.4.2","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"c3747405c14c204ac59e797e3e6eb7108c329c86","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.4.2.tgz","fileCount":53,"integrity":"sha512-fHvcvJY2BV+rvbUgFPQuLZ0+CTxGvpsTyBRzzK+0ZVLs9sqRpyzUsbaYT9UV32EZpVcoVS+6LYdxRwb3Z/lTDQ==","signatures":[{"sig":"MEYCIQCPhqwokbdGw/mLVW2U1ExPuEmJeuMtdDGLRYXfSAM5bQIhAI68V0k3c6xgdWuEWffoJjPHlBgqdFwZgvLt2QcX0GSW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":545005},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"50802c76b86348ba9acb0f12ef766ebde725232c","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"plyr":"^3.7.8","@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.4.2_1747132430184_0.4261910321757014","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"mstf-kit","version":"0.4.3","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","plyr","plyr-player","video-player","media-player","vue3","vue3 lottie","工具库","实用工具","音频播放器","视频播放器","媒体播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","vue3 视频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.4.3","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"d9413e63984418cd27c172f6b4906d04a38bfccc","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.4.3.tgz","fileCount":53,"integrity":"sha512-To0eRptAYXK28C5T3oTxbNMr223cpkv+mvrCCX/uny16jG2sIoU8e++BduijcsfRqZBAgz83z57OjFOp45tUGw==","signatures":[{"sig":"MEYCIQDXQ8qwWx0wikzVjkyWTI1j34cbLJw/tSvwapZdoesriwIhAJRbpFI1EcAR0+VjZ+OrSERqDjSVVCA6vo6AtWUwK9XE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544170},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"50802c76b86348ba9acb0f12ef766ebde725232c","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"plyr":"^3.7.8","@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.4.3_1747132935997_0.9953180562651838","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"mstf-kit","version":"0.4.4","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","plyr","plyr-player","video-player","media-player","vue3","vue3 lottie","工具库","实用工具","音频播放器","视频播放器","媒体播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","vue3 视频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.4.4","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"f9c14978b261ba2be892eeae348961ccc2e1463d","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.4.4.tgz","fileCount":53,"integrity":"sha512-8T2ghHSWu/nGC+zjJFDvE7hRCXuHRZT+XeVYwZvT2lZvb752S8/GxXTZV7NYXJC5u6PTisUs4SD6a7N1MxiN3Q==","signatures":[{"sig":"MEQCID/Rv7Bh1Zn4/UDD/UTh06coBN4uvWrNCGNw4wV1V63eAiABV0pDHWoLGpNlu00y/uZ9SKRAJj08t4UWeRQCGER45g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":560448},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"87e3d216aa010f18abe930f3135c438d34a93115","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"plyr":"^3.7.8","@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.4.4_1747286380047_0.05490152808649218","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"mstf-kit","version":"0.4.5","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","plyr","plyr-player","video-player","media-player","vue3","vue3 lottie","工具库","实用工具","音频播放器","视频播放器","媒体播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","vue3 视频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.4.5","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"a69de527322719abdad1acd890afcf4b1d3df218","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.4.5.tgz","fileCount":53,"integrity":"sha512-VB0lrMDMlNqeUQwKu4oDaSMc67I9qaaxhvI94EHxpQbgZPx3EQRSJCsG+fvBgzYDSMIK08q03YJG5pRSGN6b+g==","signatures":[{"sig":"MEUCIHzw5Dbj7YKSj7cAqrtvETHGSzofXwBBimbO+iCJ1GTTAiEAo6wN+u75+q+pKEkOzOeM0Dhddyx+7dlHV8eTmTnpIZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":560448},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"87e3d216aa010f18abe930f3135c438d34a93115","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"plyr":"^3.7.8","@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.4.5_1747286440553_0.043740030382640516","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"mstf-kit","version":"0.4.6","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","plyr","plyr-player","video-player","media-player","vue3","vue3 lottie","工具库","实用工具","音频播放器","视频播放器","媒体播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","vue3 视频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.4.6","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"b578adc4d43389c86d51e1d62f0307384497ff97","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.4.6.tgz","fileCount":53,"integrity":"sha512-LD27Xu/ROeJJyP+BoLwSR4KtVYeqJ1vU0Ib/o1KECLBSvDbryf18ErNUYVhvPXlgPrQBjoYpDLgmLHhkmB3HLw==","signatures":[{"sig":"MEYCIQCe62bi04e2ll28KyrAO5cRJPkmlwqjVqWP56nJVzAjtAIhAJcvbrAdUnYr4QKUOierjXcgQcxGmZaaKMrtJpDbIBl1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565415},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"f8faa4d206bd9bfc611b53ba721d436aaa4e3ed8","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"plyr":"^3.7.8","@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.4.6_1747305032418_0.04751460396874574","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"mstf-kit","version":"0.4.7","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","plyr","plyr-player","video-player","media-player","vue3","vue3 lottie","工具库","实用工具","音频播放器","视频播放器","媒体播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","vue3 视频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.4.7","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"37845586ca2649fdeba61dc7de422bbe1ca7b9b8","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.4.7.tgz","fileCount":53,"integrity":"sha512-DAeriZHbvmiX7/WYe28nTOdvU4dL355Hjq5nbzjqb4AIGN+lf+Um5x7+Nk3YZ2zwmvkqasTlvEOzBBCA9RznGg==","signatures":[{"sig":"MEYCIQDUyck4jK9kWFlbDZAmpHawZoQI3UvbC/VueW93C9wSXAIhAKNmAXuYCvusdkHB21lYMnqcCUr/YFqqTctVR2Titk6f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":560816},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"f8faa4d206bd9bfc611b53ba721d436aaa4e3ed8","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"plyr":"^3.7.8","@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.4.7_1747307169888_0.2173565972515592","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"mstf-kit","version":"0.4.8","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","plyr","plyr-player","video-player","media-player","vue3","vue3 lottie","工具库","实用工具","音频播放器","视频播放器","媒体播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","vue3 视频播放器","websocket"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.4.8","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"5e80f609a1c413489743eedb6acbbfc5d26e9a8d","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.4.8.tgz","fileCount":53,"integrity":"sha512-vnrM957tTsYaQ41/vmWV9yuW9ALx6SjB+qSqJcp/8KKfiRhZJKRVkciPJUhP8uSZdxi+wzjzlkT/AmOTHJ+Fvw==","signatures":[{"sig":"MEYCIQCuw7wzCvLdCbTi2Ovpd9+FkknNUWNWEcALxsDx14txFgIhAK/UYR0mg8KvVEJ5RIipGiI1Tcz3IElT/+CFSh1x9PEh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":561610},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"f8faa4d206bd9bfc611b53ba721d436aaa4e3ed8","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.2.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"plyr":"^3.7.8","@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.4.8_1747393001758_0.9076555146900414","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"mstf-kit","version":"0.4.9","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","plyr","plyr-player","video-player","media-player","vue3","vue3 lottie","工具库","实用工具","音频播放器","视频播放器","媒体播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","vue3 视频播放器","websocket","logger","日志工具","语言检测","非流式音频","audio processing"],"author":{"name":"mustafa"},"license":"MIT","_id":"mstf-kit@0.4.9","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"dist":{"shasum":"9bd54a2e9edd58f23290ae740a76c7f68db1c3d8","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.4.9.tgz","fileCount":61,"integrity":"sha512-ukxmSHi+PL7L5haEpCpaQbQyZdb5mGmT12dIh/CWmaSXwGFYzaVd2FWaLMDdHZsrKjvIciaarUWi0eKKBm1FLg==","signatures":[{"sig":"MEYCIQD3Kb6b0fobyke+UP/GHvBsDDf3tyPeGFkVcuIeofxFhQIhAJMtNP8YfGLkinUwCnOCHpzsF0DbwANoWYjlmHI1IZKt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620132},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"f8faa4d206bd9bfc611b53ba721d436aaa4e3ed8","scripts":{"build":"npm run clean && npm run build:bundle","clean":"rimraf dist","prepare":"npm run build:prod","build:prod":"NODE_ENV=production npm run build","build:bundle":"vite build"},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"licenses":[{"url":"https://github.com/node-task/record/blob/master/LICENSE","type":"MIT"}],"repository":{"url":"https://gitee.com/xsid/mstf-kit","type":"git"},"_npmVersion":"11.6.2","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","directories":{},"sideEffects":false,"_nodeVersion":"23.5.0","dependencies":{"plyr":"^3.7.8","@lottiefiles/dotlottie-web":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","jest":"^29.7.0","vite":"^6.2.1","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","vite-plugin-dts":"^4.5.3","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mstf-kit_0.4.9_1763097870731_0.25621957697380315","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"mstf-kit","version":"0.5.0","description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","type":"module","main":"./dist/cjs/index.js","module":"./dist/esm/index.js","types":"./dist/types/index.d.ts","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"sideEffects":false,"scripts":{"clean":"rimraf dist","build":"npm run clean && npm run build:bundle","build:bundle":"vite build","build:prod":"NODE_ENV=production npm run build","prepare":"npm run build:prod"},"keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","plyr","plyr-player","video-player","media-player","vue3","vue3 lottie","工具库","实用工具","音频播放器","视频播放器","媒体播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","vue3 视频播放器","websocket","logger","日志工具","语言检测","非流式音频","audio processing"],"author":{"name":"mustafa"},"license":"MIT","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"repository":{"type":"git","url":"https://gitee.com/xsid/mstf-kit"},"licenses":[{"type":"MIT","url":"https://github.com/node-task/record/blob/master/LICENSE"}],"devDependencies":{"@types/jest":"^29.5.14","@types/node":"^22.13.10","glob":"^11.0.1","jest":"^29.7.0","jest-environment-jsdom":"^29.7.0","jsdom":"^26.0.0","rimraf":"^6.0.1","terser":"^5.29.1","ts-jest":"^29.2.6","typescript":"^5.2.2","vite":"^6.2.1","vite-plugin-dts":"^4.5.3"},"dependencies":{"@lottiefiles/dotlottie-web":"^0.8.1","plyr":"^3.7.8"},"gitHead":"36c43b06d04f1c1d4d759978d6679deda8a4e22e","_id":"mstf-kit@0.5.0","_nodeVersion":"23.5.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-zqenHj9Hkfd9mlAHLuiwR8Gh4p3nmC1eH693NZnwpOFK3c5v8Pi3qk9Q28iuQL20IIRvPDX5LQM7fFTEKQ3glQ==","shasum":"fa2a9491d660bd28713c96d3cc5040bd1888714a","tarball":"https://registry.npmjs.org/mstf-kit/-/mstf-kit-0.5.0.tgz","fileCount":65,"unpackedSize":657962,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBsHh/A7lfQG7ZEjJpe3Ii4T+lqHFSjhY3l2RLZ7O4+8AiACVEttrXShaGc4Uy3eaOBm/BYDZdjceEcN6zh/5eV//w=="}]},"_npmUser":{"name":"mustapa","email":"2811513814@qq.com"},"directories":{},"maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mstf-kit_0.5.0_1767880612698_0.47943327697969207"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-11T10:26:08.455Z","modified":"2026-01-08T13:56:53.082Z","0.1.0":"2025-03-11T10:26:08.737Z","0.1.1":"2025-03-11T11:40:53.071Z","0.1.2":"2025-03-11T11:59:32.699Z","0.1.3":"2025-03-11T12:05:41.582Z","0.1.4":"2025-03-11T12:11:37.043Z","0.1.5":"2025-03-13T14:23:40.229Z","0.1.6":"2025-03-13T14:31:23.912Z","0.1.7":"2025-03-14T03:32:52.678Z","0.1.8":"2025-03-14T04:09:35.340Z","0.1.9":"2025-03-14T04:20:28.578Z","0.2.0":"2025-03-14T04:36:12.560Z","0.2.1":"2025-03-14T06:14:24.955Z","0.2.2":"2025-03-14T06:33:42.716Z","0.2.3":"2025-03-14T11:08:15.070Z","0.2.4":"2025-03-14T11:24:02.018Z","0.2.5":"2025-03-17T03:19:12.560Z","0.2.6":"2025-03-17T04:13:04.340Z","0.2.7":"2025-03-17T04:36:29.588Z","0.2.8":"2025-03-17T05:06:53.727Z","0.2.9":"2025-03-17T05:14:54.365Z","0.3.0":"2025-03-17T06:01:25.549Z","0.3.1":"2025-03-17T09:20:16.870Z","0.3.2":"2025-03-17T09:38:16.880Z","0.3.3":"2025-03-17T09:51:59.731Z","0.3.4":"2025-03-20T02:55:24.690Z","0.3.5":"2025-03-21T12:16:00.713Z","0.3.6":"2025-03-22T04:27:58.044Z","0.3.7":"2025-03-22T05:09:41.922Z","0.4.0":"2025-05-13T08:50:28.882Z","0.4.1":"2025-05-13T10:23:27.600Z","0.4.2":"2025-05-13T10:33:50.389Z","0.4.3":"2025-05-13T10:42:16.153Z","0.4.4":"2025-05-15T05:19:40.260Z","0.4.5":"2025-05-15T05:20:40.715Z","0.4.6":"2025-05-15T10:30:32.664Z","0.4.7":"2025-05-15T11:06:10.096Z","0.4.8":"2025-05-16T10:56:41.943Z","0.4.9":"2025-11-14T05:24:30.952Z","0.5.0":"2026-01-08T13:56:52.876Z"},"author":{"name":"mustafa"},"license":"MIT","keywords":["utils","typescript","javascript","record","tools","mstf","mstf-kit","audio","audio-player","audio-player-kit","lottie","lottie-web","lottie-player","lottie-player-kit","plyr","plyr-player","video-player","media-player","vue3","vue3 lottie","工具库","实用工具","音频播放器","视频播放器","媒体播放器","动画播放器","vue3 动画播放器","vue3 音频播放器","vue3 视频播放器","websocket","logger","日志工具","语言检测","非流式音频","audio processing"],"repository":{"type":"git","url":"https://gitee.com/xsid/mstf-kit"},"description":"一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数","maintainers":[{"name":"mustapa","email":"2811513814@qq.com"}],"readme":"# mstf-kit\n\n[English](./README.en.md) | 简体中文\n\n一个现代化的 JavaScript/TypeScript 工具库，提供了丰富的常用工具函数。\n\n## ✨ 特性\n\n- 📦 支持 Tree Shaking\n- 🔧 TypeScript 支持\n- 📚 完整的类型定义\n- 🎯 模块化设计\n- 💪 全面的测试覆盖\n- 📝 详细的文档\n- 🔒 代码混淆保护\n\n## 📦 安装\n\n```bash\nnpm install mstf-kit\n# 或\nyarn add mstf-kit\n# 或\npnpm add mstf-kit\n```\n\n## 🚀 使用方法\n\n```typescript\n// 导入所需的工具函数\nimport { formatDate, isEmail } from 'mstf-kit';\n\n// 使用日期格式化\nconst date = formatDate(new Date(), 'YYYY-MM-DD');\nconsole.log(date); // 2024-03-10\n\n// 验证邮箱\nconst isValidEmail = isEmail('example@email.com');\nconsole.log(isValidEmail); // true\n```\n\n### 按需导入\n\n为了减小打包体积，推荐使用 tree-shaking 按需导入具体的工具函数：\n\n```typescript\n// 只导入需要的函数\nimport { capitalize, truncate } from 'mstf-kit';\nimport { formatDate } from 'mstf-kit';\nimport { createLottiePlayer } from 'mstf-kit';\n\n// 不要这样导入整个库\n// import * as mstfKit from 'mstf-kit'; // ❌ 不推荐\n```\n\n现代打包工具（如 webpack、rollup、vite）会自动进行 tree-shaking，只打包您实际使用的代码。\n\n## 📚 API 文档\n\n### 🔤 字符串工具 (String Utils)\n\n字符串处理相关的工具函数。\n\n- `capitalize(str: string): string` - 首字母大写\n- `camelCase(str: string): string` - 转换为驼峰命名\n- `truncate(str: string, length: number): string` - 截断字符串\n\n### 🔢 数字工具 (Number Utils)\n\n数字处理和计算相关的工具函数。\n\n- `formatNumber(num: number, locale?: string): string` - 数字格式化\n- `round(num: number, decimals?: number): number` - 四舍五入\n- `clamp(num: number, min: number, max: number): number` - 限制数字范围\n- `random(min: number, max: number, isInteger?: boolean): number` - 生成随机数\n- `percentage(value: number, total: number, decimals?: number): number` - 计算百分比\n\n### 📋 数组工具 (Array Utils)\n\n数组操作和处理的工具函数。\n\n- `unique<T>(arr: T[]): T[]` - 数组去重\n- `groupBy<T>(arr: T[], key: string | ((item: T) => string)): Record<string, T[]>` - 数组分组\n- `flatten<T>(arr: any[], depth?: number): T[]` - 数组扁平化\n- `sample<T>(arr: T[], count?: number): T | T[]` - 随机采样\n- `shuffle<T>(arr: T[]): T[]` - 数组乱序\n- `closest(arr: number[], target: number): number` - 查找最接近的值\n\n### 📦 对象工具 (Object Utils)\n\n对象操作和处理的工具函数。\n\n- `deepClone<T>(obj: T): T` - 深拷贝\n- `get(obj: any, path: string | string[], defaultValue?: any): any` - 获取嵌套属性\n- `set(obj: any, path: string | string[], value: any): void` - 设置嵌套属性\n- `pick<T, K extends keyof T>(obj: T, keys: K[]): Pick<T, K>` - 选择属性\n- `omit<T, K extends keyof T>(obj: T, keys: K[]): Omit<T, K>` - 排除属性\n- `merge<T>(...objects: T[]): T` - 对象合并\n\n### 📅 日期工具 (Date Utils)\n\n日期和时间处理的工具函数。\n\n- `formatDate(date: Date | number | string, format?: string): string` - 日期格式化\n- `getRelativeTime(date: Date | number | string, now?: Date): string` - 相对时间\n- `getDateRange(start: Date | number | string, end: Date | number | string): Date[]` - 日期范围\n- `addTime(date: Date | number | string, amount: number, unit: string): Date` - 添加时间\n- `isSameDay(date1: Date | number | string, date2: Date | number | string): boolean` - 判断同一天\n\n### ✅ 验证工具 (Validation Utils)\n\n数据验证相关的工具函数。\n\n- `isEmail(email: string): boolean` - 验证邮箱\n- `isChinesePhone(phone: string): boolean` - 验证手机号（中国大陆）\n- `isChineseIdCard(idCard: string): boolean` - 验证身份证号（中国大陆）\n- `isUrl(url: string): boolean` - 验证URL\n- `isIPv4(ip: string): boolean` - 验证IPv4地址\n- `validatePassword(password: string, options?: object): boolean` - 验证密码强度\n- `isSafeString(str: string): boolean` - 验证XSS安全\n\n### 🛠️ 工具类 (Utils)\n\n\n#### 📝 Logger 日志工具\n\n统一的日志工具类，提供可配置的日志输出功能。支持多种日志级别、时间戳、自定义前缀等特性。\n\n```typescript\nimport { createLogger, LogLevel } from 'mstf-kit';\n\n// 创建 Logger\nconst logger = createLogger({\n  enabled: true,\n  prefix: '[MyApp]',\n  level: LogLevel.DEBUG,\n  showTimestamp: true\n});\n\n// 使用日志\nlogger.log('应用启动');\nlogger.warn('这是一条警告');\nlogger.error('这是一条错误');\n\n// 创建子 Logger\nconst authLogger = logger.createChild('Auth');\nauthLogger.log('用户登录'); // [MyApp:Auth] 用户登录\n```\n\n**📖 [查看 Logger 完整文档](./docs/logger.md)**\n\n### 🎵 音频处理 (Audio)\n\n#### 非流式音频处理 (audioNonStream)\n\n处理非流式接口返回的音频数据，支持多种数据格式（Base64、Blob、ArrayBuffer、File）和灵活的字段路径提取。\n\n```typescript\nimport { processNonStreamAudio } from 'mstf-kit';\n\n// 处理嵌套字段的 Base64 数据\nconst response = {\n  msg: 'success',\n  code: 200,\n  data: {\n    audio: 'UklGRiQAAABXQVZFZm10...' // Base64音频数据\n  }\n};\n\nconst result = await processNonStreamAudio(response, {\n  audioField: 'data.audio',  // 指定音频数据的路径\n  dataType: 'base64',        // 指定数据类型\n  mimeType: 'audio/wav',     // 指定MIME类型\n  autoPlay: true             // 自动播放\n});\n\nconsole.log('音频URL:', result.url);\nconsole.log('音频大小:', result.size);\n```\n\n**📖 [查看非流式音频处理完整文档](./docs/audio-nonstream.md)**\n\n#### 流式音频处理器 V2 (audioStreamV2)\n\n新版流式音频处理器，支持有头部和无头部两种流式音频格式，提供更灵活的配置。\n\n```typescript\nimport { processStreamAudioV2 } from 'mstf-kit';\n\n// 处理流式音频\nconst response = await fetch('/api/audio/stream');\nconst reader = response.body.getReader();\n\nconst { pause, resume, abort, isPlaying } = await processStreamAudioV2(reader, {\n  autoPlay: true,\n  dataFormat: 'auto',          // 自动检测格式：'with-header' | 'without-header' | 'auto'\n  audioField: 'data.audio',\n  debug: true,\n  \n  onStart: () => console.log('开始播放'),\n  onEnded: () => console.log('播放结束'),\n  onAudioData: (blob) => console.log('收到音频块:', blob.size)\n});\n\n// 控制播放\npauseButton.onclick = () => pause();\nplayButton.onclick = () => resume();\n```\n\n**主要特性：**\n- 支持有头部格式（每个块都有完整头部）\n- 支持无头部格式（只有第一个块有头部）\n- 自动格式检测\n- 集成 Logger 日志系统\n- 完整的 TypeScript 类型支持\n\n**📖 [查看流式音频处理器 V2 完整文档](./docs/audio-stream-v2.md)**\n\n#### 音频流处理 (audioStream)\n\n音频流处理工具，用于处理音频数据流，支持ArrayBuffer和流式数据，并提供自动播放功能。\n\n```typescript\nimport { \n  createAudioStreamHandler, \n  handleAudioBuffer, \n  createAudioHandlers \n} from 'mstf-kit';\n\n// 示例1: 处理ArrayBuffer响应\nconst response = await axios.post('/api/voice/synthesize', {\n  voice_id: 'my-voice',\n  text: '你好，世界！'\n}, {\n  responseType: 'arraybuffer',\n  headers: { Accept: 'audio/mp3' }\n});\n\n// 方式1: 直接处理\nconst { blob, url, handler } = await handleAudioBuffer(response, {\n  mimeType: 'audio/mp3',\n  autoPlay: true,\n  logLevel: 'debug'\n});\n\n// 示例2: 处理流式数据\n// 创建处理器\nconst audioHandler = createAudioStreamHandler({\n  mimeType: 'audio/mp3',\n  logLevel: 'debug'\n});\n\n// 示例3: 最简单的方式 (一步到位)\nconst { config, handler } = createAudioHandlers(\n  {\n    responseType: 'arraybuffer',\n    headers: { Accept: 'audio/mp3' }\n  },\n  {\n    mimeType: 'audio/mp3',\n    autoPlayOnComplete: true,\n    logLevel: 'debug'\n  }\n);\n\n// 使用增强的配置发送请求\nconst response = await axios.post('/api/voice/synthesize', data, config);\n```\n\n#### 轻量级音频请求处理 (audioRequest)\n\n轻量级音频处理工具，专注于处理流式和非流式音频数据，无需额外依赖，支持各种响应格式。\n\n```typescript\nimport { \n  processStreamResponse, \n  processArrayBuffer, \n  processBlob,\n  processBase64Audio,\n  createBase64StreamProcessor\n} from 'mstf-kit';\n\n// 示例1: 使用fetch和getReader处理流式响应\nconst response = await fetch('https://api.example.com/audio/stream', {\n  method: 'POST',\n  headers: { 'Content-Type': 'application/json' },\n  body: JSON.stringify({ text: '要合成的文本' })\n});\n\n// 获取响应流的Reader\nconst reader = response.body.getReader();\n// 处理流式音频数据\nconst { pause, resume, abort, isPlaying, finalBlob } = await processStreamResponse(reader, {\n  autoPlay: true,             // 自动播放\n  returnBlob: true,           // 返回完整Blob\n  audioField: 'data.audio',   // 音频数据在响应中的路径\n  onStart: () => {            // 音频开始播放回调\n    console.log('音频开始播放');\n    playButton.classList.add('playing');\n  },\n  onEnded: () => {            // 音频播放结束回调\n    console.log('音频播放结束');\n    playButton.classList.remove('playing');\n    statusElement.textContent = '播放完成';\n  },\n  onAudioData: (blob) => {     // 接收到新音频块时的回调\n    console.log('收到音频数据块:', blob.size);\n  },\n  onComplete: (blob) => {      // 处理完成回调\n    if (blob) {\n      console.log('完整音频大小:', blob.size);\n    }\n  }\n});\n\n// 播放控制\npauseButton.addEventListener('click', () => {\n  pause();\n  playButton.classList.remove('playing');\n});\n\nplayButton.addEventListener('click', () => {\n  resume();\n  playButton.classList.add('playing');\n});\n\n// 监控播放状态\nsetInterval(() => {\n  const playing = isPlaying();\n  statusElement.textContent = playing ? '播放中' : '已暂停';\n}, 100);\n\n// 中止处理\ncancelButton.addEventListener('click', () => {\n  abort();\n});\n\n// 获取完整音频\nif (finalBlob) {\n  const blob = await finalBlob;\n  const url = URL.createObjectURL(blob);\n  audio.src = url;\n}\n```\n\n支持的选项:\n\n```typescript\n// 音频处理选项\n{\n  autoPlay?: boolean;         // 是否自动播放\n  returnBlob?: boolean;       // 是否返回完整Blob\n  mimeType?: string;          // MIME类型，默认为'audio/wav'\n  audioField?: string;        // 音频数据字段路径，如'data.audio'\n  onAudioData?: (audioBlob: Blob) => void;      // 接收到音频数据回调\n  onError?: (error: Error) => void;             // 错误回调\n  onComplete?: (blob?: Blob) => void;           // 完成回调\n  onStart?: () => void;                  // 音频开始播放回调\n  onEnded?: () => void;                  // 音频播放结束回调\n}\n```\n\n##### Axios支持\n\n使用 Axios 处理流式和非流式音频请求：\n\n```typescript\nimport axios from 'axios';\nimport { createAxiosAudioOptions } from 'mstf-kit';\n\n// 流式音频请求 - 创建配置\nconst { axiosConfig, pause, resume, abort, isPlaying, finalBlob } = createAxiosAudioOptions({\n  autoPlay: true,              // 自动播放\n  returnBlob: true,            // 返回完整Blob\n  audioField: 'data.audio',    // 音频数据在响应JSON中的路径\n  mimeType: 'audio/wav',       // 音频MIME类型\n  onStart: () => {             // 音频开始播放回调\n    console.log('音频开始播放');\n    playButton.disabled = false;\n  },\n  onAudioData: (blob) => {       // 接收到音频块的回调\n    console.log('收到音频数据块:', blob.size);\n  }\n});\n\n// 发送请求\nconst response = await axios.post(\n  'https://api.example.com/audio/stream',\n  { text: '要合成的文本' },\n  axiosConfig\n);\n\n// 控制播放\nconst togglePlay = () => {\n  if (isPlaying()) {\n    pause();\n    playButton.textContent = '播放';\n  } else {\n    resume();\n    playButton.textContent = '暂停';\n  }\n};\n\nplayButton.addEventListener('click', togglePlay);\n```\n\n##### 自定义数据格式\n\n可以处理多种服务器返回的数据格式：\n\n1. **标准格式**：`data: {\"audio\":\"base64数据\",\"is_last\":false}`\n2. **自定义路径**：通过 `audioField` 指定音频数据的路径\n\n```typescript\n// 标准格式处理\nconst { pause, resume, abort, isPlaying } = await processStreamResponse(reader, {\n  autoPlay: true\n});\n\n// 自定义路径处理\nconst { pause, resume, abort, isPlaying } = await processStreamResponse(reader, {\n  autoPlay: true,\n  audioField: 'result.data.audioContent' // 指定自定义路径\n});\n\n// Axios处理自定义格式\nconst { axiosConfig, pause, resume, abort, isPlaying } = createAxiosAudioOptions({\n  autoPlay: true,\n  audioField: 'response.voice.content'\n});\n```\n\n智能数据提取：如果未指定 `audioField`，将自动尝试从以下位置提取音频数据：\n\n- 直接以字符串形式提供的数据\n- 对象的 `audio` 属性\n- 嵌套在 `data.audio` 中的数据\n\n##### 停止/中止处理\n\n支持通过AbortController中止处理过程：\n\n```typescript\n// 创建AbortController\nconst controller = new AbortController();\nconst signal = controller.signal;\n\n// 方法1: 通过配置传入\nconst { config, handler } = createAudioHandlers(\n  { /* axios配置 */ },\n  { \n    abortSignal: signal,\n    // 其他选项...\n  }\n);\n\n// 方法2: 直接设置\naudioHandler.setAbortSignal(signal);\n\n// 方法3: 直接调用abort方法\naudioHandler.abort();\n\n// 在需要中止时：\ncontroller.abort(); // 这将触发中止处理\n```\n\n##### 控制播放\n\n```typescript\n// 暂停播放\nhandler.pause();\n\n// 恢复播放\nhandler.resume();\n\n// 停止播放\nhandler.stop();\n\n// 设置音量 (0-1)\nhandler.setVolume(0.5);\n\n// 释放资源\nhandler.release();\n```\n\n##### 配置选项\n\n`AudioStreamOptions` 支持以下选项：\n\n```typescript\n{\n  // 日志级别: 'none' | 'error' | 'warn' | 'info' | 'debug'\n  logLevel?: LogLevel;\n  \n  // 是否自动播放\n  autoPlay?: boolean;\n  \n  // 自定义的MIME类型\n  mimeType?: string;\n  \n  // 是否循环播放\n  loop?: boolean;\n  \n  // 初始音量 (0-1)\n  volume?: number;\n  \n  // 播放完成回调\n  onEnded?: () => void;\n  \n  // 播放错误回调\n  onError?: (error: Error) => void;\n  \n  // 播放开始回调\n  onPlay?: () => void;\n  \n  // 播放进度回调\n  onProgress?: (currentTime: number, duration: number) => void;\n  \n  // 数据加载回调\n  onDataLoaded?: (blob: Blob) => void;\n  \n  // 处理被中止回调\n  onAborted?: () => void;\n}\n```\n\n`DownloadProgressConfig` 支持以下选项：\n\n```typescript\n{\n  // 是否需要解析处理\n  needParse?: boolean;\n  \n  // 音频数据路径，如 \"audio.b\"\n  audioPath?: string;\n  \n  // MIME类型\n  mimeType?: string;\n  \n  // 是否在接收到第一块数据时自动播放\n  autoPlayOnFirstChunk?: boolean;\n  \n  // 是否在下载完成时自动播放\n  autoPlayOnComplete?: boolean;\n  \n  // 用于停止处理的AbortSignal\n  abortSignal?: AbortSignal;\n}\n```\n\n### 🔊 音频播放器\n\n`mstf-kit` 提供了功能强大的音频播放工具，支持背景播放和页面渲染两种模式：\n\n#### 背景播放模式\n\n```typescript\nimport { createAudioPlayer, playAudio } from 'mstf-kit';\n\n// 简易播放方式\nconst audioBlob = new Blob([...]); // 音频数据\nconst player = await playAudio(audioBlob, {\n  volume: 0.8,\n  loop: true\n});\n\n// 或使用完整API\nconst backgroundPlayer = createAudioPlayer();\nawait backgroundPlayer.load('https://example.com/audio.mp3');\nawait backgroundPlayer.play();\n\n// 控制播放\nbackgroundPlayer.pause();\nbackgroundPlayer.setVolume(0.5);\nbackgroundPlayer.seek(30); // 跳转到30秒位置\n```\n\n#### 页面渲染模式\n\n```typescript\nimport { createAudioPlayer, AUDIO_FORMATS } from 'mstf-kit';\n\n// 创建一个带UI界面的播放器\nconst uiPlayer = createAudioPlayer({\n  renderUI: true,           // 启用UI渲染\n  container: '#player-box', // 指定容器元素\n  theme: 'dark',            // 使用暗色主题\n  showVisualization: true,  // 显示音频可视化\n  visualizationType: 'bars' // 使用柱状频谱图\n});\n\n// 加载音频\nawait uiPlayer.load(audioBlob);\nawait uiPlayer.play();\n\n// 播放结束后的回调\nuiPlayer.onEnded = () => {\n  console.log('播放完成');\n};\n\n// 不需要时释放资源\nuiPlayer.destroy();\n```\n\n#### Vue 集成\n\n与 Vue3 框架无缝集成，支持直接使用 ref 作为容器：\n\n```typescript\nimport { ref, onMounted, onUnmounted } from 'vue';\nimport { createAudioPlayer } from 'mstf-kit';\n\nexport default {\n  setup() {\n    // 创建容器引用\n    const playerContainer = ref(null);\n    let audioPlayer = null;\n    \n    onMounted(async () => {\n      // 创建播放器并使用ref作为容器\n      audioPlayer = createAudioPlayer({\n        renderUI: true,\n        container: playerContainer, // 直接传入ref\n        theme: 'dark',\n        showVisualization: true\n      });\n      \n      // 加载并播放音频\n      await audioPlayer.load('/audio/example.mp3');\n      await audioPlayer.play();\n    });\n    \n    // 组件卸载时清理资源\n    onUnmounted(() => {\n      if (audioPlayer) {\n        audioPlayer.destroy();\n      }\n    });\n    \n    return { playerContainer };\n  }\n}\n```\n\n#### 可视化类型\n\n播放器支持三种可视化类型：\n\n- `waveform`: 波形图显示\n- `bars`: 频谱柱状图\n- `circle`: 圆形频谱图\n\n#### 支持的主题\n\n- `default`: 默认主题（浅色）\n- `dark`: 暗色主题\n- `minimal`: 简约主题（透明背景）\n\n\n### 🎭 Lottie动画\n\n`mstf-kit` 支持 Lottie 动画的加载、渲染和控制，可以轻松地在您的应用中展示高质量的矢量动画。\n\n#### 基本使用\n\n```typescript\nimport { createLottiePlayer, playLottie } from 'mstf-kit';\n\n// 快速加载并播放Lottie动画\nconst player = await playLottie(\n  'https://assets.lottiefiles.com/packages/lf20_UJNc2t.json',\n  '#animation-container',\n  { loop: true, speed: 1.5 }\n);\n\n// 或使用完整API\nconst lottiePlayer = await createLottiePlayer({\n  container: '#animation-container',\n  renderer: 'canvas', // dotlottie-web 使用 canvas 渲染\n  loop: true,\n  autoplay: true\n});\n\n// 加载动画\nawait lottiePlayer.load('https://assets.lottiefiles.com/packages/lf20_UJNc2t.json');\n\n// 控制动画\nlottiePlayer.pause();\nlottiePlayer.setSpeed(2.0);\nlottiePlayer.play();\n```\n\n#### Vue 集成\n\n与 Vue3 框架无缝集成，支持直接使用 ref 作为容器：\n\n```typescript\nimport { ref } from 'vue';\nimport { playLottie } from 'mstf-kit';\n\nexport default {\n  setup() {\n    // 创建容器引用\n    const animationContainer = ref(null);\n    \n    // 加载动画（在onMounted中）\n    onMounted(async () => {\n      const player = await playLottie(\n        'https://assets.lottiefiles.com/packages/lf20_UJNc2t.json',\n        animationContainer,\n        { loop: true }\n      );\n    });\n    \n    return { animationContainer };\n  }\n}\n```\n\n#### 多种库加载模式\n\n支持多种加载方式：\n\n```typescript\n// 默认使用内置的 dotlottie-web\nconst player1 = await createLottiePlayer({\n  container: '#animation-container',\n  loop: true\n});\n\n// 使用自定义外部库\nimport customLottieLib from 'custom-lottie-lib';\nconst player2 = await createLottiePlayer({\n  container: '#animation-container',\n  libOptions: {\n    source: 'external',\n    externalLib: customLottieLib\n  }\n});\n\n// 从CDN加载\nconst player3 = await createLottiePlayer({\n  container: '#animation-container',\n  libOptions: {\n    source: 'cdn',\n    cdnURL: 'https://cdn.jsdelivr.net/npm/@lottiefiles/dotlottie-web/+esm'\n  }\n});\n```\n\n#### 渲染模式\n\nLottie播放器默认使用Canvas渲染模式，提供高性能的动画播放体验。\n\n#### 动画控制\n\n播放器支持丰富的控制方法：\n\n```typescript\n// 播放控制\nplayer.play();\nplayer.pause();\nplayer.stop();\n\n// 播放速度和方向\nplayer.setSpeed(1.5);  // 1.5倍速\nplayer.setDirection(-1); // 反向播放\n\n// 跳转控制\nplayer.goToFrame(24);  // 跳转到第24帧\nplayer.goToAndPlay(24); // 跳转并播放\nplayer.setSegment(10, 50); // 只播放10-50帧\n\n// 循环控制\nplayer.setLoop(true);  // 无限循环\nplayer.setLoop(3);     // 循环3次\n\n// 动画信息\nconsole.log(`总帧数: ${player.getTotalFrames()}`);\nconsole.log(`当前帧: ${player.getCurrentFrame()}`);\nconsole.log(`时长: ${player.getDuration()}ms`);\nconsole.log(`是否播放中: ${player.isPlaying()}`);\n\n// 资源释放\nplayer.destroy();\n```\n\n#### 高级特性\n\n- **小巧高效**: 使用 dotlottie-web 库，体积更小，性能更好\n- **多种库来源**: 支持内置库（默认）、CDN加载或外部提供的自定义库\n- **Vue框架支持**: 无缝支持Vue3的ref作为容器引用\n- **多种来源**: 支持从URL、JSON字符串或对象加载动画\n- **动画事件**: 提供丰富的回调函数，可监听动画状态变化\n- **响应式**: 通过`resize()`方法支持自适应容器大小\n\n\n### 🎬 Plyr 播放器 (plyrPlayer)\n\n提供对 Plyr 媒体播放器的封装，支持视频和音频播放，带有丰富的功能和易用的 API。\n\n```typescript\nimport { createPlyrPlayer, playWithPlyr, createPlaylist } from 'mstf-kit';\n\n// 快速创建简单播放器\nconst player = await playWithPlyr(\n  'https://example.com/video.mp4',\n  '#player-container',\n  { autoplay: true, muted: true }\n);\n\n// 使用完整 API\nconst advancedPlayer = await createPlyrPlayer({\n  container: '#player-container',\n  source: {\n    type: 'video',\n    title: '示例视频',\n    sources: [\n      {\n        src: 'https://example.com/video.mp4',\n        type: 'video/mp4'\n      }\n    ],\n    poster: 'https://example.com/poster.jpg'\n  },\n  controls: ['play', 'progress', 'current-time', 'mute', 'volume', 'settings', 'fullscreen'],\n  i18n: {\n    play: '播放',\n    pause: '暂停',\n    mute: '静音',\n    volume: '音量'\n  }\n});\n\n// 访问增强功能\nawait advancedPlayer.play();\nadvancedPlayer.addMarker(30, '重要时刻');\nconst screenshot = advancedPlayer.getCaptureImage();\nadvancedPlayer.downloadMedia('视频.mp4');\n```\n\n#### Vue 集成\n\n无缝支持 Vue3 的 ref 作为容器引用:\n\n```typescript\nimport { ref, onMounted } from 'vue';\nimport { createPlyrPlayer } from 'mstf-kit';\n\nexport default {\n  setup() {\n    const playerRef = ref(null);\n    let player = null;\n    \n    onMounted(async () => {\n      player = await createPlyrPlayer({\n        container: () => playerRef.value, // 使用函数返回 ref 引用的元素\n        source: { /* 媒体源配置 */ }\n      });\n    });\n    \n    return { playerRef };\n  }\n}\n```\n\n#### 播放列表支持\n\n```typescript\n// 创建播放列表\nconst { player, next, previous, playIndex } = await createPlaylist(\n  [\n    'https://example.com/video1.mp4',\n    'https://example.com/audio1.mp3',\n    {\n      type: 'video',\n      sources: [{ src: 'https://example.com/video2.mp4', type: 'video/mp4' }]\n    }\n  ],\n  '#playlist-container',\n  { loop: { active: true } }\n);\n\n// 播放控制\nnext();       // 播放下一个\nprevious();   // 播放上一个\nplayIndex(2); // 播放指定索引的媒体\n```\n\n#### 主要特性\n\n- **多种加载模式**: 支持 CDN、npm 或外部提供的 Plyr 库\n- **增强功能**: 截图捕获、纵横比控制、标记点、画中画等\n- **Vue 集成**: 直接支持 Vue ref 作为容器\n- **播放列表**: 支持混合媒体类型的播放列表\n- **中文本地化**: 内置中文界面文本支持\n- **丰富事件**: 提供完整的事件回调系统\n- **TypeScript**: 完整的类型定义\n\n#### 支持的配置选项\n\n- **自定义控件**: 可定制控制栏按钮\n- **视频比例**: 支持多种纵横比设置\n- **播放速度**: 可调节的播放速率\n- **字幕**: 支持多语言字幕轨道\n- **质量切换**: 支持视频质量选择\n\n##### 强大的增强功能\n\n```typescript\n// 修改播放比例\nplayer.changeAspectRatio('16:9');\n\n// 进入画中画模式\nawait player.enterPictureInPicture();\n\n// 添加时间轴标记\nplayer.addMarker(45, '精彩片段', 'red');\n\n// 截取当前画面\nconst imageDataUrl = player.getCaptureImage();\n\n// 下载媒体文件\nplayer.downloadMedia('downloaded-video.mp4');\n\n// 自定义快捷键\nplayer.addShortcut('m', () => player.toggleMute());\n```\n\n#### 配置选项详解\n\n##### 控制栏按钮 (controls)\n\n可用的控制栏按钮选项:\n\n```typescript\ncontrols: [\n  'play-large',  // 大播放按钮\n  'play',        // 播放/暂停按钮\n  'progress',    // 进度条\n  'current-time', // 当前时间\n  'duration',    // 总时长\n  'mute',        // 静音按钮\n  'volume',      // 音量控制\n  'captions',    // 字幕按钮\n  'settings',    // 设置按钮\n  'pip',         // 画中画按钮\n  'airplay',     // AirPlay按钮\n  'fullscreen',  // 全屏按钮\n  'restart',     // 重新播放按钮\n  'fast-forward', // 快进按钮\n  'rewind'       // 快退按钮\n]\n```\n\n##### 完整配置选项\n\n```typescript\n// 完整的播放器配置选项\n{\n  // 基本配置\n  container: '#player', // 播放器容器(字符串选择器、DOM元素或返回DOM元素的函数)\n  source: {             // 媒体源配置\n    type: 'video',      // 'video' 或 'audio'\n    title: '视频标题',   // 媒体标题\n    sources: [          // 媒体源列表\n      {\n        src: 'https://example.com/video.mp4',\n        type: 'video/mp4',\n        size: 720       // 清晰度标识(像素高度)\n      }\n    ],\n    poster: 'https://example.com/poster.jpg', // 视频封面图片URL\n    tracks: [           // 字幕/章节轨道\n      {\n        kind: 'captions',\n        label: '中文',\n        src: 'https://example.com/captions.zh.vtt',\n        srclang: 'zh',\n        default: true\n      }\n    ]\n  },\n  autoplay: false,      // 是否自动播放\n  muted: false,         // 是否静音\n  loop: { active: false }, // 是否循环播放\n  volume: 1.0,          // 默认音量(0-1)\n  \n  // UI配置\n  controls: ['play', 'progress', 'current-time', 'mute', 'volume', 'settings', 'fullscreen'],\n  hideControls: true,   // 是否自动隐藏控制栏\n  resetOnEnd: false,    // 播放结束后是否重置\n  fullscreen: {         // 全屏设置\n    enabled: true,      // 是否启用全屏\n    fallback: true,     // 如果浏览器不支持原生全屏，是否使用回退方案\n    iosNative: true     // 在iOS上使用原生全屏\n  },\n  ratio: '16:9',        // 视频比例\n  storage: {            // 本地存储\n    enabled: true,      // 是否启用存储\n    key: 'plyr-volume'  // 存储键名\n  },\n  speed: {              // 播放速度设置\n    selected: 1,        // 默认速度\n    options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2] // 可选速度列表\n  },\n  quality: {            // 视频质量设置\n    default: '720',     // 默认质量\n    options: ['1080', '720', '480', '360'] // 可选质量列表(对应sources中的size)\n  },\n  invertTime: false,    // 是否反转时间显示(显示剩余时间)\n  displayDuration: true, // 是否显示总时长\n  markers: {            // 时间轴标记点\n    enabled: true,      // 是否启用标记点\n    points: [           // 标记点列表\n      {\n        time: 15,       // 标记点时间(秒)\n        label: '精彩片段', // 标记点标签\n        color: 'red'    // 标记点颜色\n      }\n    ]\n  },\n  \n  // 本地化文本\n  i18n: {\n    restart: '重播',\n    play: '播放',\n    pause: '暂停',\n    volume: '音量',\n    mute: '静音',\n    unmute: '取消静音',\n    pip: '画中画',\n    normal: '默认',\n    settings: '设置',\n    speed: '速度',\n    quality: '质量',\n    loop: '循环',\n    start: '开始',\n    end: '结束',\n    all: '全部',\n    reset: '重置',\n    disabled: '禁用',\n    enabled: '启用',\n    advertisement: '广告',\n    qualityLabel: {\n      1080: '1080p',\n      720: '720p',\n      480: '480p',\n      360: '360p'\n    },\n    captions: '字幕',\n    download: '下载',\n    enterFullscreen: '全屏',\n    exitFullscreen: '退出全屏'\n  },\n  \n  // 调试设置\n  debug: false,         // 是否开启调试模式\n  loadSprite: true      // 是否加载SVG雪碧图\n}\n```\n\n##### createPlyrPlayer 特有选项\n\n```typescript\n// 创建Plyr播放器的额外选项\n{\n  // Plyr库加载选项\n  plyrLibOptions: {\n    source: 'npm', // 从哪里加载Plyr库: 'cdn'(默认), 'npm', 'local', 'external'\n    cdnUrl: 'https://unpkg.com/plyr@3.7.8/dist/plyr.min.js', // 自定义CDN URL\n    cssUrl: 'https://unpkg.com/plyr@3.7.8/dist/plyr.css',    // 自定义CSS URL\n    externalLib: null // 外部提供的Plyr库实例(当source为'external'时使用)\n  },\n  initOnLoad: true,     // 是否在加载时立即初始化\n  autoCreateCss: true   // 是否自动引入CSS\n}\n```\n\n#### 增强型播放器API\n\n创建的增强型Plyr播放器提供以下API:\n\n```typescript\n// 基础播放控制\nplayer.play();            // 播放\nplayer.pause();           // 暂停\nplayer.stop();            // 停止\nplayer.restart();         // 重新播放\nplayer.rewind(10);        // 后退10秒\nplayer.forward(10);       // 前进10秒\nplayer.increaseVolume(0.1); // 增加10%音量\nplayer.decreaseVolume(0.1); // 减少10%音量\nplayer.togglePlay();      // 切换播放/暂停\nplayer.toggleMute();      // 切换静音/非静音\n\n// 状态获取\nplayer.isPlaying();       // 是否正在播放\nplayer.isPaused();        // 是否已暂停\nplayer.playing;           // 播放状态\nplayer.paused;            // 暂停状态\nplayer.stopped;           // 停止状态\n\n// 媒体属性\nplayer.volume = 0.8;      // 设置音量(0-1)\nplayer.muted = true;      // 设置静音\nplayer.currentTime = 30;  // 设置当前播放位置(秒)\nplayer.speed = 1.5;       // 设置播放速度\n\n// 增强功能\nplayer.getContainer();    // 获取容器元素\nplayer.getDefaultOptions(); // 获取默认选项\nplayer.setSource(newSource); // 设置新媒体源\nplayer.changeAspectRatio('4:3'); // 修改视频比例\nplayer.addShortcut('m', () => player.toggleMute()); // 添加快捷键\nplayer.getCaptureImage(); // 截取当前画面\nplayer.downloadMedia('video.mp4'); // 下载媒体\nplayer.setPoster('https://example.com/poster.jpg'); // 设置视频封面\nplayer.isFullscreen();    // 是否全屏\nplayer.enterPictureInPicture(); // 进入画中画模式\nplayer.exitPictureInPicture();  // 退出画中画模式\nplayer.togglePictureInPicture(); // 切换画中画模式\nplayer.reload();          // 重新加载媒体\nplayer.getQualityOptions(); // 获取可用质量选项\nplayer.setQuality('720'); // 设置视频质量\nplayer.getSpeedOptions(); // 获取可用速度选项\nplayer.setCustomControls(['play', 'volume']); // 设置自定义控制栏\nplayer.addMarker(45, '精彩片段'); // 添加时间轴标记\nplayer.removeMarker(45);  // 移除标记\nplayer.clearMarkers();    // 清除所有标记\n\n// 事件监听\nplayer.on('play', () => console.log('开始播放'));\nplayer.once('ended', () => console.log('播放结束'));\nplayer.off('play', callback); // 移除事件监听\n```\n\n#### 播放列表API\n\n```typescript\n// 播放列表控制器\nconst { \n  player,                   // 播放器实例\n  next,                     // 播放下一个函数\n  previous,                 // 播放上一个函数\n  playIndex,                // 播放指定索引函数\n  currentIndex,             // 当前播放索引\n  sources                   // 媒体源列表\n} = await createPlaylist(sources, container, options);\n\n// 使用举例\nnext();                     // 播放下一个\nprevious();                 // 播放上一个\nplayIndex(2);               // 播放索引为2的媒体\nconst currentPlaying = sources[currentIndex]; // 获取当前播放的媒体信息\n```\n\n#### 适用场景\n\n- **视频教学平台**: 创建支持视频标记、截图和高级控制的视频播放器\n- **在线视频点播**: 构建支持多清晰度、字幕和自定义UI的专业播放器\n- **音频播放应用**: 结合播放列表功能创建音频播放器\n- **混合媒体展示**: 支持在同一播放器中无缝切换视频和音频\n- **Vue应用集成**: 在Vue应用中轻松集成高级媒体播放功能\n\n### 🔌 WebSocket 工具 (WebSocket Utils)\n\n提供高效可靠的 WebSocket 连接管理和通信工具。\n\n- `createWebSocketClient(options: WebSocketOptions): WebSocketClient` - 创建一个 WebSocket 客户端\n- `isWebSocketSupported(): boolean` - 检查当前环境是否支持 WebSocket\n\n#### WebSocket 客户端 API\n\nWebSocket 客户端 (`WebSocketClient`) 提供以下核心功能：\n\n- **自动重连** - 网络中断时自动尝试重新连接\n- **心跳检测** - 保持连接活跃并检测断线\n- **消息队列** - 离线时自动缓存消息，连接恢复后发送\n- **消息优先级** - 支持高、中、低三种优先级消息处理\n- **事件系统** - 提供丰富的事件监听接口\n- **批量发送** - 支持消息批处理以优化网络传输\n- **超时处理** - 自动处理消息超时和重试\n- **完整指标** - 提供详细的连接和性能统计数据\n\n#### 基本使用示例\n\n```typescript\nimport { WebSocketClient, WebSocketState, MessagePriority } from 'mstf-kit';\n\n// 创建 WebSocket 客户端\nconst ws = new WebSocketClient({\n  url: 'wss://example.com/socket',\n  protocols: ['v1'],\n  debug: true,               // 启用调试日志\n  connectionTimeout: 8000,   // 连接超时 (ms)\n  \n  // 心跳配置\n  heartbeat: {\n    enabled: true,\n    interval: 30000,         // 每30秒发送一次心跳\n    message: { type: 'ping' },\n    timeout: 5000            // 心跳5秒无响应判定为超时\n  },\n  \n  // 自动重连配置\n  reconnect: {\n    enabled: true,\n    maxRetries: 10,          // 最多重试10次\n    initialDelay: 1000,      // 初始重试延迟1秒\n    maxDelay: 30000,         // 最大重试延迟30秒\n    factor: 1.5,             // 指数退避系数\n    jitter: 0.5              // 随机抖动系数\n  }\n});\n\n// 连接到服务器\nws.connect()\n  .then(() => {\n    console.log('连接成功');\n    \n    // 发送消息\n    return ws.send({ type: 'hello', data: 'world' });\n  })\n  .catch(error => {\n    console.error('连接错误:', error);\n  });\n\n// 监听消息\nws.on('message', data => {\n  console.log('收到消息:', data);\n});\n\n// 监听连接状态变化\nws.on('close', event => {\n  console.log('连接关闭:', event.code);\n});\n\nws.on('reconnect', attempt => {\n  console.log(`重连成功 (第${attempt}次尝试)`);\n});\n\n// 发送不同优先级的消息\nws.send(criticalData, { priority: MessagePriority.HIGH });\nws.send(normalData, { priority: MessagePriority.NORMAL });\nws.send(statsData, { priority: MessagePriority.LOW });\n\n// 期望服务器响应的消息\nws.send({ type: 'query', id: 'user-123' }, {\n  expectResponse: true,      // 等待响应\n  timeout: 5000,             // 响应超时时间\n  retries: 2,                // 超时后重试次数\n  retryDelay: 1000           // 重试间隔\n}).then(response => {\n  console.log('收到响应:', response);\n}).catch(error => {\n  console.error('请求失败:', error);\n});\n\n// 获取连接状态和统计信息\nconsole.log('当前状态:', ws.getState());\nconsole.log('连接延迟:', ws.getLatency());\nconsole.log('统计信息:', ws.getConnectionStats());\n\n// 不再使用时销毁资源\nws.destroy();\n```\n\n#### 高级特性\n\n- **批量消息**: 适用于需要发送大量小消息的场景，自动合并为批量消息减少网络开销\n- **动态配置**: 可在运行时调整心跳、重连、消息处理等配置\n- **完整生命周期管理**: 自动处理资源释放，防止内存泄漏\n- **兼容性**: 支持各种浏览器环境和 Node.js\n\n更多高级用法详见 API 文档。\n\n## 📄 许可证\n\n[MIT](./LICENSE) © [mustafa]","readmeFilename":"README.md"}