{"_id":"umaki","_rev":"34-8d20cb7c40620bc86059cdde1f6b3375","name":"umaki","dist-tags":{"latest":"0.13.0"},"versions":{"0.1.0":{"name":"umaki","version":"0.1.0","keywords":["utility","web"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.1.0","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"d6f438cdeccc941ed87d9fb74bf8a8e8edffe9f8","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.1.0.tgz","fileCount":106,"integrity":"sha512-RNX1RTIgxjJW4uI5Qt2AWDYQKJnHtt77yiBwbRZurZ4In/KUAqrZkoEtv1kOFvP/ZBMP7EuJZcr7IeBsQehDaQ==","signatures":[{"sig":"MEQCIASs/ief3Xlvf/UAzX5DhFg8tzSeCE/CFfkIMxVzQJjjAiBdHqN/+ocDQQOLk7zcjK4inJG0mENgFnZBL5YgkORqwQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214088},"main":"./dist/index.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.umd.cjs"},"gitHead":"2c1fed8531655f4817464db1bebf1ab4afbe58b2","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.16.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","@types/is-touch-device":"^1"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.1.0_1730551262989_0.9395864596691528","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"umaki","version":"0.1.1","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.1.1","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"e7c592973a5a76b029f7063394342c59f0b11b98","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.1.1.tgz","fileCount":105,"integrity":"sha512-Ewqe5LP/vu7UdvU2SJtaD2a1Er+VeimEceWBc8yaGoGUY4GLgn1u8dHayQMGeDH+mLk0dNYnKiq53oA+eoSRhw==","signatures":[{"sig":"MEUCIDTu64C2Uutyju6ixZJGJzE3GpbNmLN+v/F+T4Ln3IegAiEAip4sqtr3WdCfvtPUC4uclTpchBdJlOVhahFpPhHZ+6A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":212629},"main":"./dist/index.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.umd.cjs"},"gitHead":"96969c4ef839b033c672bc765bf392414a7cf44e","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.16.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","@types/is-touch-device":"^1"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.1.1_1730564231070_0.2519077324258183","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"umaki","version":"0.2.0","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.2.0","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"37eb09cffbb78ca13fdad58410991554d357f30d","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.2.0.tgz","fileCount":105,"integrity":"sha512-BphglwQev6P8gzh6QKcYbbvcgXhebnMBA9gtC5TPDCdT8YxVX7VfsCwDUbLdnprQ+BoLlyrdUsXgknCbF/sZEA==","signatures":[{"sig":"MEUCID2tSV6Tt4PpsVL42Fxy3BwA/9AYvurewsRU4M1cCiO6AiEAwuRo8j86QUbmPGR0nCXHRcwFvDIiiTNCATduqVmVK3U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":212738},"main":"./dist/index.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.umd.cjs"},"gitHead":"6574f85640146dcd9575b6f9537f581eed62a0d8","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.16.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","@types/is-touch-device":"^1"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.2.0_1730565478592_0.1596328748031559","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"umaki","version":"0.2.1","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.2.1","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"22f69c3ab3c148667f0590eb4613a7c1922575bb","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.2.1.tgz","fileCount":167,"integrity":"sha512-m1MxtD4Dz93eIeiYbSVKiXqKicnpmltO+PcYipPiKsGKQ1eHJLGIdDXp1g2nLQhpwXXwFU/CVOt8Om5embQ3rQ==","signatures":[{"sig":"MEUCIHAnbrtCvYeob0j4lcHLjLCHnvaK3R688P21b6TK0Pr6AiEA4LCzdMJxqBmKxc3x1IAmrsFbpDX7EJlGUSaCbG07OrE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152310},"main":"./dist/index.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.umd.cjs"},"gitHead":"d991079c21e156d78ee5f61e6ef744f8d110e16d","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.16.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.2.1_1730712816817_0.17715309408087898","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"umaki","version":"0.2.2","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.2.2","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"f6f9b2d218b7ff8b2d6055af5d4f262cabdd2549","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.2.2.tgz","fileCount":197,"integrity":"sha512-c8nqHI1uKQIPKFS3WxLwZCE/3mqAgGwlEtlHSoDkugjl2cJqD++POAHuhTREVDKH5WqwcBklNqJ+DLMSdo1nZA==","signatures":[{"sig":"MEQCIHuH0K2mze/Ak9ob4JOPAvs0K8FOQWoDaqTBsvmDwueiAiAW/esDQRwpu0vGhuXvrCGe9v4VifRYHmQ7sovGcYg/6g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66696},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"3d03ef8fa9ce9d9d42583433a5bff6f0142e3fbf","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.16.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.2.2_1730816860525_0.7074768031724148","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"umaki","version":"0.2.3","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.2.3","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"09d53e723f9fed16f115753c69b91e874f294f45","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.2.3.tgz","fileCount":197,"integrity":"sha512-f8w5GXS6xS8E0mbY+L8J5UtuTeF3Vd8np3b+SHiLjH2toBITzreT9aXqqweA8LvM6yxKO+h2hETUasyYN/gmcw==","signatures":[{"sig":"MEUCIA7g1U+qYS1xzCzNZ9SQZSOFMf1ORyvKPpoI87jCr87QAiEA+2xQdNAUuDG9s153DpkW5o7ByhkID/9DWy+0olcyaNs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67095},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"abbcd3eda2143bbb3c80639938a8a7b2cc124033","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.16.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.2.3_1731864439880_0.8728897157795941","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"umaki","version":"0.2.4","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.2.4","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"de91eefbd77efe2f5a39761a931add2f4d52df5e","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.2.4.tgz","fileCount":197,"integrity":"sha512-bFaEE8OSZw2qzjD/IRLKbCnrdGCkfnj7tWGNxhdU5GIpjruuDZqg2I9qZzUsZ3pokpqkRiD+z6+KL1i77EOb0g==","signatures":[{"sig":"MEYCIQDjszDqy7X17JTAsKbcZfu0ZK8GlENK+hSuILwfsAleeAIhALpCGVeulD12uEGRPnq4IB58XsyfgSUxEeXvSd2kcg3v","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67000},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"d272c7ee1124eae1272b19b7e3fa1c0b5208433a","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.16.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.2.4_1731867376149_0.7536154581817864","host":"s3://npm-registry-packages"}},"0.2.5":{"name":"umaki","version":"0.2.5","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.2.5","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"2ff5608f78036c14dc2955c9edfe31295982e91b","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.2.5.tgz","fileCount":198,"integrity":"sha512-tHbIfrfhDgWGsm9/haDjxV2Nzx42TpHnMVNl1Mq8u/1C3PxCgfGvsKbAskzmqLyngZapaZvfCZ0bTfXB63qDDw==","signatures":[{"sig":"MEUCIF7kUrm4YhWTe0Qrcl8T89dWk01z1OwzE8lM+KeTL7f7AiEA67IIf4yyb/H8/EHsTDJS4kEm68dwBue6AimuggQMIj0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114763},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"b563ae85771208c4494ba445ef261f8a78d37bb2","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.16.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.2.5_1732007175051_0.04950000675987454","host":"s3://npm-registry-packages"}},"0.2.6":{"name":"umaki","version":"0.2.6","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.2.6","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"4d7d9e8b573af20edd24e5c4532b683fb88097a5","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.2.6.tgz","fileCount":198,"integrity":"sha512-WWPkc1tSxVApmmBiJR9ZjcJYpNzdtLmgKn04/ffL37mNIPGlCjjqPRWFGxg5R8+Em3Baf71jmYcwqVkP/3Tuwg==","signatures":[{"sig":"MEYCIQCDJlbk+cnPQY8LTZS2PqIgsHBGhqV4TadiTovj4W2TqAIhAPnHiSU3GG7gz8RL6beDm8mOaAH+7HNNDobHUOCEO1DG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116865},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"05f770fcf95bcda25a88e779c888c774d406c4cf","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.16.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.2.6_1732016438259_0.6906236268731936","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"umaki","version":"0.3.0","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.3.0","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"8e3fffd59e154fcd47ab45d39eb758a93d051263","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.3.0.tgz","fileCount":207,"integrity":"sha512-bvhfrqTzcJLj3MyWrH6HE8lSFguisN+2fbus5luBBRq86MIYCHYbmvoNiMpLjEe6gm0D3/Kamt213we/7ZV8JQ==","signatures":[{"sig":"MEUCICG0T9QSK7h8KAdg/kYzVIA7dy372+ENUYqoHzPWHlvhAiEAw3SVg36orFNBCjPaqeO0mX9P9bthu84QsjKSkZejepc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121970},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"91a698e0389265931c1a50ae26148625f33ad68b","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.16.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.3.0_1732158229252_0.3232722182955645","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"umaki","version":"0.3.1","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.3.1","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"d9dfd80648ea1238bc6b06f256dffe22c0da98b1","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.3.1.tgz","fileCount":207,"integrity":"sha512-mvY9TG2l8KUPWY9UsbEGXOWigG/65iMDX/kIe9/D4RQta7azvCvPsU5bY97pCArhQsqZx2B8icT9zkuCTXGWww==","signatures":[{"sig":"MEQCIHteZBSgx9DZvqhc9e4ew7mS5Bdcce3FPRsv1k0mEinxAiBya6PmRNfv1IOln+FkKBsTznWjNhIq/Xf5xaAKkpMq0g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":122142},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"8bb936eaa9cc3ba7a07c90cafc99e9edc2c5ed1b","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.16.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.3.1_1735210316116_0.25877300870216535","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"umaki","version":"0.3.2","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.3.2","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"8b561c143e1fa50e7323ba19a12048790e8ab059","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.3.2.tgz","fileCount":207,"integrity":"sha512-NFXrJxhwtqmDFURRc+HTnnkPt7UqJIYb+UhXiXRd00hTduvunoWdtQli6H6T2qEg7qc4uYnseEpZo2hKHunVSg==","signatures":[{"sig":"MEQCICQ4d/GeUgmkCfqFpSxWZy6AjbaXzAKLy5OJ/RYruT2bAiBwdGGDZ6FIWWAUFMhu7rrf/dGtwDgnRMm46obVftpLng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":122717},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"3641abe4061a3ab12e8ce076bd027e7df4fd3645","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.16.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.3.2_1744552973599_0.9547211577146772","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"umaki","version":"0.4.0","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.4.0","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"060b80f3c6fdcea0c46e989a4ffa480c4421162e","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.4.0.tgz","fileCount":209,"integrity":"sha512-INlvkLYJdUtqV0N8YKDSXRUdzEO5IQDF8MN0GsPkcqWBxWin+uXir+x02Cf/FfHN2UkwJ+Jjh5aYar9CAXFprw==","signatures":[{"sig":"MEYCIQD8hfJFxD+SbdHN3bK9BywGWHAWqNbxb+0fYTP0h+eLJQIhAKEpfzgkPt9yjs9UD/xE6OFOwqveu/TDg6YYeLA74plL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":123913},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"4d85ede5b421a0b98c0460e0c165e792093dcad7","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.23.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","jsdom":"^26.1.0","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.4.0_1744613106755_0.5388218747259317","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"umaki","version":"0.4.1","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.4.1","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"d367050dd183e51b05a5a596fa47c7c243e93f0e","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.4.1.tgz","fileCount":212,"integrity":"sha512-wRD9NgU9JGz7Kwgm4OsXXhDTqjH90dKN/FbXZZBZC0utHOhMVm/uwxDgDZZd8aUUgegard9iv7HqDGBpgd3IhQ==","signatures":[{"sig":"MEUCIAcsbaTmZy2TBQ4H3SaZwuwDvrCTSLliPFckxprSvQ1xAiEAm+VHPC9CF1XNXegiqdOubj+TSMv/Fs5cmlHNIvMuhno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125429},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"e10fff09026295cd2def1d6e3e32fa0a2edf6d82","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.23.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","jsdom":"^26.1.0","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.4.1_1744613740374_0.34605282298079776","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"umaki","version":"0.4.2","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.4.2","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"5d0fdf256fcedcc9cc457ef498cb0cccea17afb5","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.4.2.tgz","fileCount":212,"integrity":"sha512-0vpJsWJL496Kb3NZ7b+N4PwE8gvCZ0t6LSMnEYw6UV+Wcs21CRGDpumKToZPNt0ILZBX1LSqSE2DtWcwp+4Yhg==","signatures":[{"sig":"MEQCIFVwQCwbvhm57cBkleDObRxiRWjKR+m2LHrpbWO6d9zzAiAiPHwrDXO2rmB5Gr5FbOXzqB+CCAWBvOcTAPGrLdfd/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126430},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"0ef0a20dfad9462a30f46c6f90d3cb8906cc1150","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.23.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","jsdom":"^26.1.0","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.4.2_1745555066259_0.13878164244482627","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"umaki","version":"0.4.3","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.4.3","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"71b8cc0bf7619a00eee0b9ef36e7fc0a23220c9d","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.4.3.tgz","fileCount":220,"integrity":"sha512-7XQL1YD18RCJQN3rL/VbN6BCcS1gsoPG2hRkCqz3l3ADkmqa80sk5bRaHg76J9REBiy006ugVfsG4K0DPq6NJg==","signatures":[{"sig":"MEUCIQD5Bjn4LnyECS0zCLvPM6IluwsOqXoZZBAa9MyTb7zUMgIgD9fjmb5OnluK6Z+h5+c6fIbHtysMRV6+G1cQfDbyhuw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144132},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"c7f3fe4b8226ffc5b22c958558753c4890579413","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.23.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","jsdom":"^26.1.0","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.4.3_1745558378752_0.784614185374982","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"umaki","version":"0.5.0","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.5.0","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"d2851ad9d3e64d75bbff93d1d449511a882c1a69","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.5.0.tgz","fileCount":224,"integrity":"sha512-s2lvRAelhfQeIuFlwkv/kvfO84K+CNr/PcWEC7Wy0T7d9YTTuOR9r870K6kQJDzyqH135TcsnldRhIx6AWXKTg==","signatures":[{"sig":"MEQCIGEJAEG9wMnaoGc9TmaTkyDvkkWna2SV7C0T0643eVnbAiAXH6myo14mGUCBhcQHci0SvjxK1eXB5iEb2Uw/xwCb8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":146603},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"66b17099e0f7487c5a9dc79e508498a44a4e0a17","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.0","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.23.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","jsdom":"^26.1.0","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.5.0_1745736794742_0.20754238138566738","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"umaki","version":"0.6.0","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.6.0","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"4f71fd8fc8dba8ab137b0cb4c31da261a202543b","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.6.0.tgz","fileCount":240,"integrity":"sha512-GMGGxzGXiZpw9mMObHIql7RLrJ7HxZfFuBcWdgC2r7aM+7iFmciy3l+4JoRYuVRkQ/VANyRr2+/K3YLZt6z2Aw==","signatures":[{"sig":"MEUCIQDgHfF1/4EfVATHE/VAMuVKHPuKDkTH7xzF0+tpGAclywIgJOWk56HmcuownLEbvqJYYkYW686Vwf8ZcxYcgdz6dBA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":155911},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"fa9246fb153aeda43b5ed37a12f876e4491bae1c","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.1","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","is-touch-device":"^1.0.1","isomorphic-dompurify":"^2.23.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.1.1","devDependencies":{"vite":"^5.4.10","jsdom":"^26.1.0","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","@types/is-touch-device":"^1","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.6.0_1747929250962_0.35843338124279267","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"umaki","version":"0.6.1","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.6.1","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"b3fc716dc0ef370e3ff2e83e9d00810dedda1d94","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.6.1.tgz","fileCount":241,"integrity":"sha512-k+/qC+opLqwBDIKlCKmr85XbNwgdp6q9s2f8jPcplG31lAvlxecBfh64k4h9NrgGKKkMc5rqbIGGFHFoInqn6w==","signatures":[{"sig":"MEUCIDxAIxCiqSvLkg1pSK/avvxn/NHz0KO1x0HV0n1PnhTyAiEA5mdjMkhXhy5S/NUUAR9sIP6NoFzLDZShP+as/dG3nMA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":157147},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"70e6ec30650cccd5f5b38d143bae817817a8f769","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.1","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.23.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.4","devDependencies":{"vite":"^5.4.10","jsdom":"^26.1.0","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.6.1_1747939370629_0.8657166498977575","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"umaki","version":"0.6.2","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.6.2","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"85ef971139181c723158f5b3a86cb9e7cc9f7d6c","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.6.2.tgz","fileCount":241,"integrity":"sha512-t24PjLU7dME9AMQw/dq4L6hIyKJsOXvAiX0Qb2QmckEdudhalvVuMuom6mxsB+SW5aBKt7jDzzp7nAcNiBXDWQ==","signatures":[{"sig":"MEUCIFPveIFwCr/L3CT7xfyPIPyEPIFLbd0KRlJ2wPXAOepsAiEA+gtIyOIhNi6qmpWc872K/PxkjfWZwnPdlL8TT/Ii1zk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":157223},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"238d006ce455f1cc09680e9e279c58feb627ca9d","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","actor":{"name":"tsubasahiga","type":"user","email":"info@higatsubasa.com"},"email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.23.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.4","devDependencies":{"vite":"^5.4.10","jsdom":"^26.1.0","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.6.2_1751002239932_0.28340469725248685","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"umaki","version":"0.6.3","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.6.3","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"a06240733dd71df92ae7b08fc109c59cebdbb980","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.6.3.tgz","fileCount":245,"integrity":"sha512-r6zFRR/RPbKtOTvBbh2ZDixJvSICh/OAbikFIaJPwwtxp6qGbld91PyH7wpYr/nZu/PnItdFm7zr0wHPGhSABA==","signatures":[{"sig":"MEUCIDljT8oxUcfZc6PrrCvi6daFeWw/Y6q0/wO/zfOfgN4DAiEA/ewz/9yhUXO2LGR3EVQBu7C//aMifU1/R03VoiXqovo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":160126},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"d7c26ab6443ff826f5a924338c5a69c526cd0b1d","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.13","runes2":"^1.1.4","store2":"^2.14.3","@types/md5":"^2.3.5","image-size":"^1.1.1","query-string":"^9.1.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.23.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"vite":"^5.4.10","jsdom":"^26.1.0","vitest":"^2.1.4","happy-dom":"^15.7.4","typescript":"~5.6.3","@types/node":"^22.8.6","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.3.0","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"2.1.4","vite-tsconfig-paths":"^5.0.1","rollup-plugin-license":"^3.5.3","rollup-plugin-visualizer":"^5.12.0"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.6.3_1765117568574_0.616226968191274","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"umaki","version":"0.7.0","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.7.0","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"dbd9f3881ca0542400c491c6d14bb4401f9cf26e","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.7.0.tgz","fileCount":251,"integrity":"sha512-B13pDuwnUrScxrKK0fPPLUcdz3TGPs2WzbieDZOQbf937ZygP02EnksTiGCquKI5FSOhO2YtcfPzB/IDsyKtlQ==","signatures":[{"sig":"MEQCIEfDe5GF7q8px+MnwF7OVyOOD/zLwpQV/6QWPy3g/gsDAiBw40LmNNltMRlwIFqFZ0TBt2F0yVrjFfM/pXQVXpkn8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118840},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"bfc39453c0c94bf6160b9fe41998cbb0c82bb5c9","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.19","runes2":"^1.1.4","store2":"^2.14.4","@types/md5":"^2.3.6","image-size":"^1.1.1","query-string":"^9.3.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.33.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"vite":"^7.2.6","jsdom":"^26.0.0","vitest":"^4.0.15","happy-dom":"^20.0.11","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.8","vite-plugin-dts":"^4.5.4","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","vite-tsconfig-paths":"^5.1.4","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.7.0_1765122806540_0.5724661974869343","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"umaki","version":"0.7.5","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.7.5","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"6c68163de066b2bec36e7a9e5afa1d13e5dfdc58","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.7.5.tgz","fileCount":251,"integrity":"sha512-vEjEnBEA9+4FUfdYnotu2N4l8R075ZfSAeSrOjZmtye0rk7F5sJcezBZ27yRHeUBfbP6eA3U4HORA9hPrQcdWQ==","signatures":[{"sig":"MEUCIEa2y4L0Lsl56gLMmmsD05vTAW/+VmcS/FF7CsVTOZ1QAiEA2bpo+ei+dFHovB/CSJr6ZUVdMWU5dkRF2N9Y6C7ASvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.7.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118998},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"79c5e476a95f37efed95f45f96c523283fa94f69","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.19","runes2":"^1.1.4","store2":"^2.14.4","@types/md5":"^2.3.6","image-size":"^1.1.1","query-string":"^9.3.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.33.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"vite":"^7.2.6","jsdom":"^26.0.0","vitest":"^4.0.15","happy-dom":"^20.0.11","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.8","vite-plugin-dts":"^4.5.4","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","vite-tsconfig-paths":"^5.1.4","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.7.5_1765130165698_0.32734957108784957","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"umaki","version":"0.7.6","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.7.6","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"4f1b38d151f4f90b5d5f9460d912b449c26bbc6b","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.7.6.tgz","fileCount":251,"integrity":"sha512-qigiuLd3PPwfWfE1okJzo5rEDSr2jkUMsjZT+UELk1LgyMfDjPBgRuwLcNKgpjowxmKuJdMdHvMgblbz1U7YjQ==","signatures":[{"sig":"MEYCIQCHm/BynEAsJpuUck4cFRtdrpBmBtjOnlXgwM2XckzjQAIhANRoOx5pIMx5HGtgWsX+MrCOkzkrLko9JHf2tCIuQK/3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.7.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119977},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"504a857fe3af73474e7f243cb5716f2910918602","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tsubasahiga","email":"info@higatsubasa.com"},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"10.8.2","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.19","runes2":"^1.1.4","store2":"^2.14.4","@types/md5":"^2.3.6","image-size":"^1.1.1","query-string":"^9.3.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.33.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"vite":"^7.2.6","jsdom":"^26.0.0","vitest":"^4.0.15","happy-dom":"^20.0.11","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.8","vite-plugin-dts":"^4.5.4","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","vite-tsconfig-paths":"^5.1.4","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.7.6_1765305030911_0.09635640953233904","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"umaki","version":"0.8.0","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.8.0","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"a84e5b92e6dc83080327f860227ad1cd032af85a","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.8.0.tgz","fileCount":260,"integrity":"sha512-gxwI5qzmZgVARQhS/BL7zleGz5LlMvEmIV4HCm2rQjp0zokh6QSFnAdJZQgOivhzCAU5oDwoJe4VMxOVxtEG3g==","signatures":[{"sig":"MEUCIQDfsqtsswoc12UrsQFru1v15+OicY+aLCqtH1FNxogedgIgP7z3OR/Op+M90agjfeP67nD5p2tPh1RFul2h6aYq6eM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129772},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"e945ef0a5df25bdd1aad092935afc21b9d2531d7","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:97050129-be62-41a0-b145-b689f773dcc1"}},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"11.7.0","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.19","runes2":"^1.1.4","store2":"^2.14.4","@types/md5":"^2.3.6","image-size":"^1.1.1","query-string":"^9.3.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.33.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"vite":"^7.2.6","jsdom":"^26.0.0","vitest":"^4.0.15","happy-dom":"^20.0.11","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.8","vite-plugin-dts":"^4.5.4","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","vite-tsconfig-paths":"^5.1.4","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.8.0_1765587495992_0.2761962157154809","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"umaki","version":"0.8.1","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.8.1","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"4796bfae312eaf844d706ff711c9ac81cd3611fa","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.8.1.tgz","fileCount":260,"integrity":"sha512-gKmdoap2Ygc6jhUJqiLA5+KYY4JZYEHhEeV94seP/m5Mmao05wa0qFQHaNrmy3awrAi4gVZFCPdp9k1kfC7NFg==","signatures":[{"sig":"MEYCIQCBhFr1f1rnxJpcuedd6WQfITlrI2RtIfMA6YjEtijj1wIhAKWQNUTi+80ppnVpzEZ6Me1DTWQq/w4JRki7YB/iyU6b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129870},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"gitHead":"7b508ca65b7476f7804e8f79473d5fcaaea53ac5","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:97050129-be62-41a0-b145-b689f773dcc1"}},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"11.7.0","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.19","runes2":"^1.1.4","store2":"^2.14.4","@types/md5":"^2.3.6","image-size":"^1.1.1","query-string":"^9.3.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.33.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"vite":"^7.2.6","jsdom":"^26.0.0","vitest":"^4.0.15","happy-dom":"^20.0.11","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.8","vite-plugin-dts":"^4.5.4","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","vite-tsconfig-paths":"^5.1.4","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.8.1_1765720968900_0.5594512562950791","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"umaki","version":"0.9.0","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.9.0","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"2fac0e081bbfa8e6371e4d52b56d70ba04e75d87","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.9.0.tgz","fileCount":286,"integrity":"sha512-5HEMAQoKGGcNZmD49XOQnwW6QQtNHpSxBvwZUu8236+riM9acGe+30Iw9uzwnOH7Na7TAxzITQ5nPoknsO0FiA==","signatures":[{"sig":"MEYCIQDuXA8HLcMes0TuYIhS2wb5a2Nfh7G5E0Og8TE8AFTK2AIhAIGwSiT2uIwmRMc1RKfA1/tSWs7qmt+SxRPgxj+/aJ8z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":146041},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./is":{"types":"./dist/libs/is/index.d.ts","import":"./dist/libs/is/index.es.js","require":"./dist/libs/is/index.cjs.js"},"./to":{"types":"./dist/libs/to/index.d.ts","import":"./dist/libs/to/index.es.js","require":"./dist/libs/to/index.cjs.js"},"./get":{"types":"./dist/libs/get/index.d.ts","import":"./dist/libs/get/index.es.js","require":"./dist/libs/get/index.cjs.js"},"./set":{"types":"./dist/libs/set/index.d.ts","import":"./dist/libs/set/index.es.js","require":"./dist/libs/set/index.cjs.js"},"./wait":{"types":"./dist/libs/wait/index.d.ts","import":"./dist/libs/wait/index.es.js","require":"./dist/libs/wait/index.cjs.js"},"./config":{"types":"./dist/libs/config/index.d.ts","import":"./dist/libs/config/index.es.js","require":"./dist/libs/config/index.cjs.js"},"./remove":{"types":"./dist/libs/remove/index.d.ts","import":"./dist/libs/remove/index.es.js","require":"./dist/libs/remove/index.cjs.js"},"./control":{"types":"./dist/libs/control/index.d.ts","import":"./dist/libs/control/index.es.js","require":"./dist/libs/control/index.cjs.js"},"./convert":{"types":"./dist/libs/convert/index.d.ts","import":"./dist/libs/convert/index.es.js","require":"./dist/libs/convert/index.cjs.js"},"./callback":{"types":"./dist/libs/callback/index.d.ts","import":"./dist/libs/callback/index.es.js","require":"./dist/libs/callback/index.cjs.js"},"./security":{"types":"./dist/libs/security/index.d.ts","import":"./dist/libs/security/index.es.js","require":"./dist/libs/security/index.cjs.js"},"./transform":{"types":"./dist/libs/transform/index.d.ts","import":"./dist/libs/transform/index.es.js","require":"./dist/libs/transform/index.cjs.js"},"./eventControl":{"types":"./dist/libs/eventControl/index.d.ts","import":"./dist/libs/eventControl/index.es.js","require":"./dist/libs/eventControl/index.cjs.js"}},"gitHead":"7038b3ce1fca008d2737797172ebc5f02e4fc5cf","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:97050129-be62-41a0-b145-b689f773dcc1"}},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"11.7.0","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.19","runes2":"^1.1.4","store2":"^2.14.4","@types/md5":"^2.3.6","image-size":"^1.1.1","query-string":"^9.3.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.33.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"vite":"^7.2.6","jsdom":"^26.0.0","vitest":"^4.0.15","happy-dom":"^20.0.11","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.8","vite-plugin-dts":"^4.5.4","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","vite-tsconfig-paths":"^5.1.4","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.9.0_1765724008530_0.8024184812502082","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"umaki","version":"0.9.1","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.9.1","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"67f526e549be603f8e96e42c97b436b84dda2938","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.9.1.tgz","fileCount":279,"integrity":"sha512-c6yZ2ExSIP+fCM5PSEZzCkWrs+k8snYaDevPj84cHId5/LcK8K/eDWoy8TNR2VYi5GI1EhAmA1Hc8TPDfW6DHQ==","signatures":[{"sig":"MEUCIHbBnSBIkQava0reiGcHLYi5/cvUHCh6Dnrq73zB/yLMAiEAql8CwoHZEud1mwdTh4GAE2fMh7ltyZJGYAwJRaTnQiE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144424},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./is":{"types":"./dist/libs/is/index.d.ts","import":"./dist/libs/is/index.es.js","require":"./dist/libs/is/index.cjs.js"},"./to":{"types":"./dist/libs/to/index.d.ts","import":"./dist/libs/to/index.es.js","require":"./dist/libs/to/index.cjs.js"},"./get":{"types":"./dist/libs/get/index.d.ts","import":"./dist/libs/get/index.es.js","require":"./dist/libs/get/index.cjs.js"},"./set":{"types":"./dist/libs/set/index.d.ts","import":"./dist/libs/set/index.es.js","require":"./dist/libs/set/index.cjs.js"},"./wait":{"types":"./dist/libs/wait/index.d.ts","import":"./dist/libs/wait/index.es.js","require":"./dist/libs/wait/index.cjs.js"},"./config":{"types":"./dist/libs/config/index.d.ts","import":"./dist/libs/config/index.es.js","require":"./dist/libs/config/index.cjs.js"},"./remove":{"types":"./dist/libs/remove/index.d.ts","import":"./dist/libs/remove/index.es.js","require":"./dist/libs/remove/index.cjs.js"},"./control":{"types":"./dist/libs/control/index.d.ts","import":"./dist/libs/control/index.es.js","require":"./dist/libs/control/index.cjs.js"},"./convert":{"types":"./dist/libs/convert/index.d.ts","import":"./dist/libs/convert/index.es.js","require":"./dist/libs/convert/index.cjs.js"},"./callback":{"types":"./dist/libs/callback/index.d.ts","import":"./dist/libs/callback/index.es.js","require":"./dist/libs/callback/index.cjs.js"},"./security":{"types":"./dist/libs/security/index.d.ts","import":"./dist/libs/security/index.es.js","require":"./dist/libs/security/index.cjs.js"},"./transform":{"types":"./dist/libs/transform/index.d.ts","import":"./dist/libs/transform/index.es.js","require":"./dist/libs/transform/index.cjs.js"},"./eventControl":{"types":"./dist/libs/eventControl/index.d.ts","import":"./dist/libs/eventControl/index.es.js","require":"./dist/libs/eventControl/index.cjs.js"}},"gitHead":"7f1530cc7f89df192cedcb08e7b9c23da495b616","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:97050129-be62-41a0-b145-b689f773dcc1"}},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"11.7.0","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.19","runes2":"^1.1.4","store2":"^2.14.4","@types/md5":"^2.3.6","image-size":"^1.1.1","query-string":"^9.3.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.33.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"vite":"^7.2.6","jsdom":"^26.0.0","vitest":"^4.0.15","happy-dom":"^20.0.11","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.8","vite-plugin-dts":"^4.5.4","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","vite-tsconfig-paths":"^5.1.4","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.9.1_1765761070605_0.3044290945739663","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"umaki","version":"0.9.2","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.9.2","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"562abe1ab5f95ea001e4c5fb0feb9d45ca4d6603","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.9.2.tgz","fileCount":281,"integrity":"sha512-080LR/5BoEuHYdTE2FAHLWvRR9dCoG63g22zX6+OxOw+z9Xi7Ns5pdViZbNBJnvQ+h0BpmfwIx8cJRnUZx/UHA==","signatures":[{"sig":"MEYCIQDp0KqNv6RJ0PkurgC8fkc02YXwP1vmcF/b5NGE/X78bQIhAPVRzA0glYu39DUgyoN0tZNtrA7NvZ0XoJ0eQww2zeH9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144437},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./is":{"types":"./dist/libs/is/index.d.ts","import":"./dist/libs/is/index.es.js","require":"./dist/libs/is/index.cjs.js"},"./to":{"types":"./dist/libs/to/index.d.ts","import":"./dist/libs/to/index.es.js","require":"./dist/libs/to/index.cjs.js"},"./get":{"types":"./dist/libs/get/index.d.ts","import":"./dist/libs/get/index.es.js","require":"./dist/libs/get/index.cjs.js"},"./set":{"types":"./dist/libs/set/index.d.ts","import":"./dist/libs/set/index.es.js","require":"./dist/libs/set/index.cjs.js"},"./wait":{"types":"./dist/libs/wait/index.d.ts","import":"./dist/libs/wait/index.es.js","require":"./dist/libs/wait/index.cjs.js"},"./config":{"types":"./dist/libs/config/index.d.ts","import":"./dist/libs/config/index.es.js","require":"./dist/libs/config/index.cjs.js"},"./remove":{"types":"./dist/libs/remove/index.d.ts","import":"./dist/libs/remove/index.es.js","require":"./dist/libs/remove/index.cjs.js"},"./control":{"types":"./dist/libs/control/index.d.ts","import":"./dist/libs/control/index.es.js","require":"./dist/libs/control/index.cjs.js"},"./convert":{"types":"./dist/libs/convert/index.d.ts","import":"./dist/libs/convert/index.es.js","require":"./dist/libs/convert/index.cjs.js"},"./callback":{"types":"./dist/libs/callback/index.d.ts","import":"./dist/libs/callback/index.es.js","require":"./dist/libs/callback/index.cjs.js"},"./security":{"types":"./dist/libs/security/index.d.ts","import":"./dist/libs/security/index.es.js","require":"./dist/libs/security/index.cjs.js"},"./transform":{"types":"./dist/libs/transform/index.d.ts","import":"./dist/libs/transform/index.es.js","require":"./dist/libs/transform/index.cjs.js"},"./eventControl":{"types":"./dist/libs/eventControl/index.d.ts","import":"./dist/libs/eventControl/index.es.js","require":"./dist/libs/eventControl/index.cjs.js"}},"gitHead":"8b49ba3c853fa7439258222ed4f783d17775b29c","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:97050129-be62-41a0-b145-b689f773dcc1"}},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"11.7.0","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.19","runes2":"^1.1.4","store2":"^2.14.4","@types/md5":"^2.3.6","image-size":"^1.1.1","query-string":"^9.3.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.33.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"vite":"^7.2.6","jsdom":"^26.0.0","vitest":"^4.0.15","happy-dom":"^20.0.11","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.8","vite-plugin-dts":"^4.5.4","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","vite-tsconfig-paths":"^5.1.4","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.9.2_1765774732415_0.36605130015024256","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"umaki","version":"0.9.3","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.9.3","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"695bfe7dffccc41394a3bf53c3babd2bc5a79aa3","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.9.3.tgz","fileCount":281,"integrity":"sha512-6v+yQECR4kN2MCEZmRKy4l+gvtDHxEuXmmqqCMSYWz+f6dweZ7ZACjLFTorldlHr0AqeCNbeCxJoYuZWGzWSyw==","signatures":[{"sig":"MEYCIQCVtnFBHUcqFtSxiiQV23IFRj6bWALJ9Ns7SFjuDfEn9gIhAJkt5qEqU4N22pyK1D9NbGcHBxbd9l003AxgnLGIYUjx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144185},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./is":{"types":"./dist/libs/is/index.d.ts","import":"./dist/libs/is/index.es.js","require":"./dist/libs/is/index.cjs.js"},"./to":{"types":"./dist/libs/to/index.d.ts","import":"./dist/libs/to/index.es.js","require":"./dist/libs/to/index.cjs.js"},"./get":{"types":"./dist/libs/get/index.d.ts","import":"./dist/libs/get/index.es.js","require":"./dist/libs/get/index.cjs.js"},"./set":{"types":"./dist/libs/set/index.d.ts","import":"./dist/libs/set/index.es.js","require":"./dist/libs/set/index.cjs.js"},"./wait":{"types":"./dist/libs/wait/index.d.ts","import":"./dist/libs/wait/index.es.js","require":"./dist/libs/wait/index.cjs.js"},"./config":{"types":"./dist/libs/config/index.d.ts","import":"./dist/libs/config/index.es.js","require":"./dist/libs/config/index.cjs.js"},"./remove":{"types":"./dist/libs/remove/index.d.ts","import":"./dist/libs/remove/index.es.js","require":"./dist/libs/remove/index.cjs.js"},"./control":{"types":"./dist/libs/control/index.d.ts","import":"./dist/libs/control/index.es.js","require":"./dist/libs/control/index.cjs.js"},"./convert":{"types":"./dist/libs/convert/index.d.ts","import":"./dist/libs/convert/index.es.js","require":"./dist/libs/convert/index.cjs.js"},"./callback":{"types":"./dist/libs/callback/index.d.ts","import":"./dist/libs/callback/index.es.js","require":"./dist/libs/callback/index.cjs.js"},"./security":{"types":"./dist/libs/security/index.d.ts","import":"./dist/libs/security/index.es.js","require":"./dist/libs/security/index.cjs.js"},"./transform":{"types":"./dist/libs/transform/index.d.ts","import":"./dist/libs/transform/index.es.js","require":"./dist/libs/transform/index.cjs.js"},"./eventControl":{"types":"./dist/libs/eventControl/index.d.ts","import":"./dist/libs/eventControl/index.es.js","require":"./dist/libs/eventControl/index.cjs.js"}},"gitHead":"edd9c07002e7d7bb672ac1599fbd7f4ffae289f3","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:97050129-be62-41a0-b145-b689f773dcc1"}},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"11.7.0","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.19","runes2":"^1.1.4","store2":"^2.14.4","@types/md5":"^2.3.6","image-size":"^1.1.1","query-string":"^9.3.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.33.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"vite":"^7.2.6","jsdom":"^26.0.0","vitest":"^4.0.15","happy-dom":"^20.0.11","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.8","vite-plugin-dts":"^4.5.4","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","vite-tsconfig-paths":"^5.1.4","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.9.3_1765782319556_0.5846007728195834","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"umaki","version":"0.10.0","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.10.0","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"1ba74a7a5db5ddadb8718b2364d82bfb9efaa2ab","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.10.0.tgz","fileCount":301,"integrity":"sha512-SKQg/YjyoATtzI1dSZbG3UdiGqNTHRs786tg0Q29T0eELsNrpBo6MzQg9lwd/7Hcm6nkhPps7VBnN93epMJ7LA==","signatures":[{"sig":"MEQCIHmICy4UZFyKdraKYF6cp0mz3vLwhre+V2Nsjwa5P1JaAiAsQpim2isqCcA0DCj2mb0CRMmXRyaZmgfMYn9H3yxDlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":159057},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./is":{"types":"./dist/libs/is/index.d.ts","import":"./dist/libs/is/index.es.js","require":"./dist/libs/is/index.cjs.js"},"./to":{"types":"./dist/libs/to/index.d.ts","import":"./dist/libs/to/index.es.js","require":"./dist/libs/to/index.cjs.js"},"./get":{"types":"./dist/libs/get/index.d.ts","import":"./dist/libs/get/index.es.js","require":"./dist/libs/get/index.cjs.js"},"./set":{"types":"./dist/libs/set/index.d.ts","import":"./dist/libs/set/index.es.js","require":"./dist/libs/set/index.cjs.js"},"./wait":{"types":"./dist/libs/wait/index.d.ts","import":"./dist/libs/wait/index.es.js","require":"./dist/libs/wait/index.cjs.js"},"./config":{"types":"./dist/libs/config/index.d.ts","import":"./dist/libs/config/index.es.js","require":"./dist/libs/config/index.cjs.js"},"./remove":{"types":"./dist/libs/remove/index.d.ts","import":"./dist/libs/remove/index.es.js","require":"./dist/libs/remove/index.cjs.js"},"./control":{"types":"./dist/libs/control/index.d.ts","import":"./dist/libs/control/index.es.js","require":"./dist/libs/control/index.cjs.js"},"./convert":{"types":"./dist/libs/convert/index.d.ts","import":"./dist/libs/convert/index.es.js","require":"./dist/libs/convert/index.cjs.js"},"./callback":{"types":"./dist/libs/callback/index.d.ts","import":"./dist/libs/callback/index.es.js","require":"./dist/libs/callback/index.cjs.js"},"./security":{"types":"./dist/libs/security/index.d.ts","import":"./dist/libs/security/index.es.js","require":"./dist/libs/security/index.cjs.js"},"./transform":{"types":"./dist/libs/transform/index.d.ts","import":"./dist/libs/transform/index.es.js","require":"./dist/libs/transform/index.cjs.js"},"./eventControl":{"types":"./dist/libs/eventControl/index.d.ts","import":"./dist/libs/eventControl/index.es.js","require":"./dist/libs/eventControl/index.cjs.js"}},"gitHead":"b01c8701ee78239bed3359decc3550640c20b9a3","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:97050129-be62-41a0-b145-b689f773dcc1"}},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"11.7.0","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.19","runes2":"^1.1.4","store2":"^2.14.4","@types/md5":"^2.3.6","image-size":"^1.1.1","query-string":"^9.3.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.33.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"vite":"^7.2.6","jsdom":"^26.0.0","vitest":"^4.0.15","happy-dom":"^20.0.11","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.8","vite-plugin-dts":"^4.5.4","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","vite-tsconfig-paths":"^5.1.4","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.10.0_1765952462232_0.32306087001624495","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"umaki","version":"0.10.1","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.10.1","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"591adf01151b9e788072aa8b62008e0ed480fe50","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.10.1.tgz","fileCount":301,"integrity":"sha512-GdBX2zz+/7lrxipGFJk9Lwgomgz47JSSooSbEhXapeOlOHNC3YQFshbgkug28uTIQpliBCF03HEhfIFdAZvAOA==","signatures":[{"sig":"MEUCIGlgFCqzsSitFNT4aPfLgTJaSM0/6AiwadgFebS+MpdLAiEAmvQclOaRJ5VsihD4fBHFdmvFo5G9JZptUFQHEMDFXB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":162411},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./is":{"types":"./dist/libs/is/index.d.ts","import":"./dist/libs/is/index.es.js","require":"./dist/libs/is/index.cjs.js"},"./to":{"types":"./dist/libs/to/index.d.ts","import":"./dist/libs/to/index.es.js","require":"./dist/libs/to/index.cjs.js"},"./get":{"types":"./dist/libs/get/index.d.ts","import":"./dist/libs/get/index.es.js","require":"./dist/libs/get/index.cjs.js"},"./set":{"types":"./dist/libs/set/index.d.ts","import":"./dist/libs/set/index.es.js","require":"./dist/libs/set/index.cjs.js"},"./wait":{"types":"./dist/libs/wait/index.d.ts","import":"./dist/libs/wait/index.es.js","require":"./dist/libs/wait/index.cjs.js"},"./config":{"types":"./dist/libs/config/index.d.ts","import":"./dist/libs/config/index.es.js","require":"./dist/libs/config/index.cjs.js"},"./remove":{"types":"./dist/libs/remove/index.d.ts","import":"./dist/libs/remove/index.es.js","require":"./dist/libs/remove/index.cjs.js"},"./control":{"types":"./dist/libs/control/index.d.ts","import":"./dist/libs/control/index.es.js","require":"./dist/libs/control/index.cjs.js"},"./convert":{"types":"./dist/libs/convert/index.d.ts","import":"./dist/libs/convert/index.es.js","require":"./dist/libs/convert/index.cjs.js"},"./callback":{"types":"./dist/libs/callback/index.d.ts","import":"./dist/libs/callback/index.es.js","require":"./dist/libs/callback/index.cjs.js"},"./security":{"types":"./dist/libs/security/index.d.ts","import":"./dist/libs/security/index.es.js","require":"./dist/libs/security/index.cjs.js"},"./transform":{"types":"./dist/libs/transform/index.d.ts","import":"./dist/libs/transform/index.es.js","require":"./dist/libs/transform/index.cjs.js"},"./eventControl":{"types":"./dist/libs/eventControl/index.d.ts","import":"./dist/libs/eventControl/index.es.js","require":"./dist/libs/eventControl/index.cjs.js"}},"gitHead":"75de00dad2529762d6fcd6ec844e616c13acccba","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:97050129-be62-41a0-b145-b689f773dcc1"}},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"11.7.0","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.19","runes2":"^1.1.4","store2":"^2.14.4","@types/md5":"^2.3.6","image-size":"^1.1.1","query-string":"^9.3.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.33.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"vite":"^7.2.6","jsdom":"^26.0.0","vitest":"^4.0.15","happy-dom":"^20.0.11","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.8","vite-plugin-dts":"^4.5.4","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","vite-tsconfig-paths":"^5.1.4","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.10.1_1766734824773_0.40496640983397425","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"umaki","version":"0.12.0","keywords":["utility","library"],"author":{"name":"TsubasaHiga"},"license":"MIT","_id":"umaki@0.12.0","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"homepage":"https://github.com/TsubasaHiga/umaki","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"dist":{"shasum":"5efd565cf94fb86981cf6e6f47224e13e1a6598b","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.12.0.tgz","fileCount":312,"integrity":"sha512-aFp1F4S+9SvTzoASGpseApgpHrQwfqsARtQrc6RC+sxWJAyubMLtiZMz3pLAFU+0KDfgZlpz2ALEwwbUMT1Jpw==","signatures":[{"sig":"MEUCIARSsjkdAdR5dqz79//m6I6yNWh65VCEq5mxrxAzirOHAiEAwcef+S2Y22GtoHcdoyYYGXYsJ8AWMe2d6CLSTSI35A0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":170559},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./is":{"types":"./dist/libs/is/index.d.ts","import":"./dist/libs/is/index.es.js","require":"./dist/libs/is/index.cjs.js"},"./to":{"types":"./dist/libs/to/index.d.ts","import":"./dist/libs/to/index.es.js","require":"./dist/libs/to/index.cjs.js"},"./get":{"types":"./dist/libs/get/index.d.ts","import":"./dist/libs/get/index.es.js","require":"./dist/libs/get/index.cjs.js"},"./set":{"types":"./dist/libs/set/index.d.ts","import":"./dist/libs/set/index.es.js","require":"./dist/libs/set/index.cjs.js"},"./wait":{"types":"./dist/libs/wait/index.d.ts","import":"./dist/libs/wait/index.es.js","require":"./dist/libs/wait/index.cjs.js"},"./config":{"types":"./dist/libs/config/index.d.ts","import":"./dist/libs/config/index.es.js","require":"./dist/libs/config/index.cjs.js"},"./remove":{"types":"./dist/libs/remove/index.d.ts","import":"./dist/libs/remove/index.es.js","require":"./dist/libs/remove/index.cjs.js"},"./control":{"types":"./dist/libs/control/index.d.ts","import":"./dist/libs/control/index.es.js","require":"./dist/libs/control/index.cjs.js"},"./convert":{"types":"./dist/libs/convert/index.d.ts","import":"./dist/libs/convert/index.es.js","require":"./dist/libs/convert/index.cjs.js"},"./callback":{"types":"./dist/libs/callback/index.d.ts","import":"./dist/libs/callback/index.es.js","require":"./dist/libs/callback/index.cjs.js"},"./security":{"types":"./dist/libs/security/index.d.ts","import":"./dist/libs/security/index.es.js","require":"./dist/libs/security/index.cjs.js"},"./transform":{"types":"./dist/libs/transform/index.d.ts","import":"./dist/libs/transform/index.es.js","require":"./dist/libs/transform/index.cjs.js"},"./eventControl":{"types":"./dist/libs/eventControl/index.d.ts","import":"./dist/libs/eventControl/index.es.js","require":"./dist/libs/eventControl/index.cjs.js"}},"gitHead":"ce297d0604e51a8ee2f7bc9fd021cc12d54f8adf","scripts":{"dev":"vite","lint":"biome lint","test":"vitest","build":"tsc && vite build","format":"biome format","analyze":"tsc && vite build --mode analyze","coverage":"vitest run --coverage","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:97050129-be62-41a0-b145-b689f773dcc1"}},"repository":{"url":"git+https://github.com/TsubasaHiga/umaki.git","type":"git"},"_npmVersion":"11.13.0","description":"A utility that is often used in web production.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"md5":"^2.3.0","dayjs":"^1.11.19","runes2":"^1.1.4","store2":"^2.14.4","@types/md5":"^2.3.6","image-size":"^1.1.1","query-string":"^9.3.1","ua-parser-js":"^1.0.39","isomorphic-dompurify":"^2.33.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.24.0","devDependencies":{"vite":"^7.2.6","jsdom":"^26.0.0","vitest":"^4.0.15","happy-dom":"^20.0.11","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.8","vite-plugin-dts":"^4.5.4","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","vite-tsconfig-paths":"^5.1.4","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/umaki_0.12.0_1778083361235_0.9985773254250567","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"umaki","version":"0.13.0","description":"A utility that is often used in web production.","author":{"name":"TsubasaHiga"},"homepage":"https://github.com/TsubasaHiga/umaki","license":"MIT","keywords":["utility","library"],"packageManager":"pnpm@10.24.0","repository":{"type":"git","url":"git+https://github.com/TsubasaHiga/umaki.git"},"type":"module","sideEffects":false,"main":"./dist/index.cjs.js","module":"./dist/index.es.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./callback":{"types":"./dist/libs/callback/index.d.ts","import":"./dist/libs/callback/index.es.js","require":"./dist/libs/callback/index.cjs.js"},"./config":{"types":"./dist/libs/config/index.d.ts","import":"./dist/libs/config/index.es.js","require":"./dist/libs/config/index.cjs.js"},"./control":{"types":"./dist/libs/control/index.d.ts","import":"./dist/libs/control/index.es.js","require":"./dist/libs/control/index.cjs.js"},"./convert":{"types":"./dist/libs/convert/index.d.ts","import":"./dist/libs/convert/index.es.js","require":"./dist/libs/convert/index.cjs.js"},"./eventControl":{"types":"./dist/libs/eventControl/index.d.ts","import":"./dist/libs/eventControl/index.es.js","require":"./dist/libs/eventControl/index.cjs.js"},"./get":{"types":"./dist/libs/get/index.d.ts","import":"./dist/libs/get/index.es.js","require":"./dist/libs/get/index.cjs.js"},"./is":{"types":"./dist/libs/is/index.d.ts","import":"./dist/libs/is/index.es.js","require":"./dist/libs/is/index.cjs.js"},"./remove":{"types":"./dist/libs/remove/index.d.ts","import":"./dist/libs/remove/index.es.js","require":"./dist/libs/remove/index.cjs.js"},"./security":{"types":"./dist/libs/security/index.d.ts","import":"./dist/libs/security/index.es.js","require":"./dist/libs/security/index.cjs.js"},"./set":{"types":"./dist/libs/set/index.d.ts","import":"./dist/libs/set/index.es.js","require":"./dist/libs/set/index.cjs.js"},"./to":{"types":"./dist/libs/to/index.d.ts","import":"./dist/libs/to/index.es.js","require":"./dist/libs/to/index.cjs.js"},"./transform":{"types":"./dist/libs/transform/index.d.ts","import":"./dist/libs/transform/index.es.js","require":"./dist/libs/transform/index.cjs.js"},"./wait":{"types":"./dist/libs/wait/index.d.ts","import":"./dist/libs/wait/index.es.js","require":"./dist/libs/wait/index.cjs.js"}},"scripts":{"dev":"vite","build":"tsc && vite build","analyze":"tsc && vite build --mode analyze","test":"vitest","test:run":"vitest run","test:coverage":"vitest run --coverage","coverage":"vitest run --coverage","lint":"biome lint","format":"biome format"},"dependencies":{"@types/md5":"^2.3.6","dayjs":"^1.11.19","image-size":"^1.1.1","isomorphic-dompurify":"^2.33.0","md5":"^2.3.0","query-string":"^9.3.1","runes2":"^1.1.4","store2":"^2.14.4","ua-parser-js":"^1.0.39"},"devDependencies":{"@biomejs/biome":"2.3.8","@types/node":"^24.10.1","@types/ua-parser-js":"^0.7.39","@vitest/coverage-v8":"4.0.15","happy-dom":"^20.0.11","jsdom":"^26.0.0","rollup-plugin-license":"^3.6.0","rollup-plugin-visualizer":"^6.0.5","typescript":"~5.9.3","vite":"^7.2.6","vite-plugin-dts":"^4.5.4","vite-tsconfig-paths":"^5.1.4","vitest":"^4.0.15"},"gitHead":"7dfce1aaeb21491986985b7b9b2e681a43fe4121","_id":"umaki@0.13.0","bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"_nodeVersion":"20.20.2","_npmVersion":"11.14.0","dist":{"integrity":"sha512-Q13BI+B8AKEhvA5weE0LXVrWg6KulqHirlID7Q8LHe4JK4xJF0vK01pGUE1kniSdX92nw6OemOokt09qGaSRaQ==","shasum":"b78eaef41f826d1738e8429a0bdd6ccd4f67f19e","tarball":"https://registry.npmjs.org/umaki/-/umaki-0.13.0.tgz","fileCount":316,"unpackedSize":178248,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/umaki@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDuLN89cUXWXfCBCF3afS/l/LH9SXrYnNfo7RcAl/TIDwIhAOaCJ8PgzaaUs53AWQy25xxSGBJkHU1U/tDgLccdJk2L"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:97050129-be62-41a0-b145-b689f773dcc1"}},"directories":{},"maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/umaki_0.13.0_1778194054388_0.4007488570446054"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-02T12:41:02.767Z","modified":"2026-05-07T22:47:34.801Z","0.1.0":"2024-11-02T12:41:03.191Z","0.1.1":"2024-11-02T16:17:11.370Z","0.2.0":"2024-11-02T16:37:58.757Z","0.2.1":"2024-11-04T09:33:37.018Z","0.2.2":"2024-11-05T14:27:40.822Z","0.2.3":"2024-11-17T17:27:20.048Z","0.2.4":"2024-11-17T18:16:16.392Z","0.2.5":"2024-11-19T09:06:15.306Z","0.2.6":"2024-11-19T11:40:38.488Z","0.3.0":"2024-11-21T03:03:49.443Z","0.3.1":"2024-12-26T10:51:56.268Z","0.3.2":"2025-04-13T14:02:53.793Z","0.4.0":"2025-04-14T06:45:06.917Z","0.4.1":"2025-04-14T06:55:40.578Z","0.4.2":"2025-04-25T04:24:26.479Z","0.4.3":"2025-04-25T05:19:38.996Z","0.5.0":"2025-04-27T06:53:14.928Z","0.6.0":"2025-05-22T15:54:11.176Z","0.6.1":"2025-05-22T18:42:50.824Z","0.6.2":"2025-06-27T05:30:40.098Z","0.6.3":"2025-12-07T14:26:08.740Z","0.7.0":"2025-12-07T15:53:26.693Z","0.7.5":"2025-12-07T17:56:05.854Z","0.7.6":"2025-12-09T18:30:31.050Z","0.8.0":"2025-12-13T00:58:16.161Z","0.8.1":"2025-12-14T14:02:49.066Z","0.9.0":"2025-12-14T14:53:28.692Z","0.9.1":"2025-12-15T01:11:10.793Z","0.9.2":"2025-12-15T04:58:52.570Z","0.9.3":"2025-12-15T07:05:19.697Z","0.10.0":"2025-12-17T06:21:02.410Z","0.10.1":"2025-12-26T07:40:24.921Z","0.12.0":"2026-05-06T16:02:41.410Z","0.13.0":"2026-05-07T22:47:34.547Z"},"bugs":{"url":"https://github.com/TsubasaHiga/umaki/issues"},"author":{"name":"TsubasaHiga"},"license":"MIT","homepage":"https://github.com/TsubasaHiga/umaki","keywords":["utility","library"],"repository":{"type":"git","url":"git+https://github.com/TsubasaHiga/umaki.git"},"description":"A utility that is often used in web production.","maintainers":[{"name":"tsubasahiga","email":"info@higatsubasa.com"}],"readme":"# umaki\n\n<p>\n  <img alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/umaki\">\n  <img alt=\"NPM Type Definitions\" src=\"https://img.shields.io/npm/types/umaki\">\n  <img alt=\"NPM Downloads\" src=\"https://img.shields.io/npm/dy/umaki\">\n</p>\n\n<br>\n\n<p align=\"center\">\n  <img alt=\"umaki chan - umaki official character\" src=\"docs/character-2.png\" width=\"285\" height=\"221\" />\n  <br>\n  <em>Umaki-chan - Official Character</em>\n</p>\n\n<br>\n\nUmaki is your one-stop solution for web development utilities, bringing together a carefully curated collection of powerful tools in a single, easy-to-use package. Crafted from real-world development experience, these utilities solve common challenges and streamline your workflow. Have a utility in mind that would make your development easier? Feel free to open an issue—I'm actively expanding this collection!\n\n**👨‍💻 Related Projects**\n\n| Project                                           | Description                                   | Use Case                      |\n| ------------------------------------------------- | --------------------------------------------- | ----------------------------- |\n| [piiiQcy](https://github.com/TsubasaHiga/piiiqcy) | WordPress theme development boilerplate       | WordPress site development    |\n| [Acty](https://github.com/TsubasaHiga/acty)       | Static site boilerplate                       | Static HTML/CSS site creation |\n| [Quicint](https://github.com/TsubasaHiga/Quicint) | EJS-based static HTML5 boilerplate            | Mass-production static pages  |\n| [vnl](https://github.com/TsubasaHiga/vnl)         | Vite-based npm library development boilerplate | npm package development       |\n| [umaki](https://github.com/TsubasaHiga/umaki)     | Web development utility library               | Common utility functions      |\n\n---\n\n## Usage\n\n```ts\nimport { foo } from \"umaki\";\n```\n\n## Configuration\n\n### setConfig\n\nA function to set or update global configuration options for the umaki library.\n\n```ts\nimport { setConfig } from \"umaki\";\n\n// Set a custom breakpoint value\nsetConfig({ BREAKPOINT: 1024 });\n\n// You can also add custom configuration properties\nsetConfig({ customValue: \"example\" });\n```\n\n### getConfig\n\nA function to retrieve the entire current configuration object.\n\n```ts\nimport { getConfig } from \"umaki\";\n\nconst config = getConfig();\nconsole.log(config.BREAKPOINT); // e.g. 768 (default) or custom value if set\n```\n\n### getConfigValue\n\nA function to retrieve a specific configuration value by key.\n\n```ts\nimport { getConfigValue } from \"umaki\";\n\nconst breakpoint = getConfigValue('BREAKPOINT');\nconsole.log(breakpoint); // e.g. 768 (default) or custom value if set\n```\n\n## List of Utilities\n\n- [Callback](#callback)\n  - [tap](#tap)\n  - [tapAsync](#tapasync-promise)\n- [Control](#control)\n  - [bgScrollStop](#bgscrollstop)\n  - [copyToClipboard](#copytoclipboard-promise)\n  - [pd](#pd)\n  - [scrollToHash](#scrolltohash-promise)\n  - [videoPlayControl](#videoplaycontrol)\n- [Convert](#convert)\n  - [changeDateStringToSpecificFormat](#changedatestringtospecificformat)\n  - [hexToRgb](#hextorgb)\n  - [jsonStringToJsonObject](#jsonstringtojsonobject)\n  - [rgbToHex](#rgbtohex)\n- [EventControl](#eventcontrol)\n  - [debounce](#debounce)\n  - [throttle](#throttle)\n- [Get](#get)\n  - [getAspectRatio](#getaspectratio)\n  - [getClassNames](#getclassnames)\n  - [getDocumentHeight](#getdocumentheight)\n  - [getEventPaths](#geteventpaths)\n  - [getGcd](#getgcd)\n  - [getGravatarUrl](#getgravatarurl)\n  - [getOrientation](#getorientation)\n  - [getParentList](#getparentlist)\n  - [getQueryParams](#getqueryparams)\n  - [getRandomInt](#getrandomint)\n  - [getRelativeTime](#getrelativetime)\n  - [getRem](#getrem)\n  - [getRenderedLineHeight](#getrenderedlineheight)\n  - [getScrollbarWidth](#getscrollbarwidth)\n  - [getSessionStorage](#getsessionstorage)\n  - [getStringLength](#getstringlength)\n  - [getStylePropertyValue](#getstylepropertyvalue)\n  - [getStylePropertyValueToNumber](#getstylepropertyvaluetonumber)\n  - [getUaData](#getuadata)\n- [Is](#is)\n  - [isAfterDateTime](#isafterdatetime)\n  - [isBetweenDateTime](#isbetweendatetime)\n  - [isExistAllElements](#isexistallelements)\n  - [isInViewport](#isinviewport)\n  - [isIpad](#isipad)\n  - [isKeyExists](#iskeyexists)\n  - [isOnline](#isonline)\n  - [isSafari](#issafari)\n  - [isScrollable](#isscrollable)\n  - [isTouchSupport](#istouchsupport)\n  - [checkDeviceSize](#checkdevicesize)\n- [Remove](#remove)\n  - [removeAllHtmlTags](#removeallhtmltags)\n  - [removeAttribute](#removeattribute)\n  - [removeSessionStorage](#removesessionstorage)\n  - [removeStylePropertyValue](#removestylepropertyvalue)\n- [Set](#set)\n  - [set100vh](#set100vh)\n  - [set100vw](#set100vw)\n  - [setAttribute](#setattribute)\n  - [setScrollPositionToCenter](#setscrollpositiontocenter)\n  - [setSessionStorage](#setsessionstorage)\n  - [setStylePropertyValue](#setstylepropertyvalue)\n- [To](#to)\n  - [toBoolean](#toboolean)\n  - [toPositiveNumber](#topositivenumber)\n- [Transform](#transform)\n  - [wrapTextWithSpans](#wraptextwithspans)\n- [Wait](#wait)\n  - [sleep](#sleep-promise)\n  - [waitForAllMediaLoaded](#waitforallmedialoaded-promise)\n- [Security](#security)\n  - [sanitizeHtml](#sanitizehtml)\n- [Advanced Usage](#advanced-usage)\n  - [Using tap / tapAsync with umaki functions](#using-tap--tapasync-with-umaki-functions)\n\n## Callback\n\n### tap\n\nA function that executes a callback with the given value and returns the original value unchanged. Useful for performing side effects (logging, caching, analytics, etc.) without modifying the value.\n\n**Note:** This function does not accept Promise values. For async operations, use `tapAsync` instead.\n\n```ts\nimport { tap, removeAllHtmlTags } from \"umaki\";\n\nconst input = \"<p>Hello <strong>World</strong>!</p>\";\nconst output = tap(removeAllHtmlTags(input), (result) => {\n  console.log(\"Sanitized:\", result);\n});\n// Logs: 'Sanitized: Hello World!'\n// output = 'Hello World!'\n\n// Caching example\nconst data = tap(processData(raw), (result) => {\n  cache.set(\"processed\", result);\n});\n\n// Works with higher-order functions\nconst debouncedFn = tap(debounce(handler, 100), () => {\n  console.log(\"Debounced function created\");\n});\n```\n\n[View file →](src/libs/callback/tap.ts)\n\n### tapAsync (Promise)\n\nA function that awaits a Promise, executes a callback with the resolved value, and returns the original value. Useful for performing side effects on async values without modifying them.\n\n```ts\nimport { tapAsync } from \"umaki\";\n\n// Logging async results\nconst data = await tapAsync(fetchData(), (result) => {\n  console.log(\"Fetched:\", result);\n});\n\n// Caching async results\nconst getData = () =>\n  tapAsync(fetchFromServer(), (data) => cache.set(\"data\", data));\n\n// Parallel execution with individual completion tracking\nawait Promise.all([\n  tapAsync(fetchUserData(), (user) => console.log(\"user loaded\")),\n  tapAsync(fetchProductData(), (products) => console.log(\"products loaded\")),\n  tapAsync(fetchOrderData(), (orders) => console.log(\"orders loaded\")),\n]);\n\n// Event emission on async completion\nconst loadUser = () =>\n  tapAsync(fetchUser(), (user) => eventEmitter.emit(\"userLoaded\", user));\n```\n\n[View file →](src/libs/callback/tap-async.ts)\n\n## Control\n\n### bgScrollStop\n\nA function that stops scrolling.\n\n```ts\nimport { bgScrollStop } from \"umaki\";\n\nbgScrollStop(); // scroll stop\nbgScrollStop(false); // scroll start\n```\n\n[View file →](src/libs/control/bg-scroll-stop.ts)\n\n### copyToClipboard (Promise)\n\nA function that copies text to the clipboard using the modern Clipboard API.\n\n```ts\nimport { copyToClipboard } from \"umaki\";\n\n// Basic usage\nconst success = await copyToClipboard(\"Hello, World!\");\nif (success) {\n  console.log(\"Copied to clipboard!\");\n} else {\n  console.log(\"Failed to copy\");\n}\n\n// Use in click handler\nbutton.addEventListener(\"click\", async () => {\n  const copied = await copyToClipboard(textToCopy);\n  showToast(copied ? \"Copied!\" : \"Copy failed\");\n});\n```\n\n[View file →](src/libs/control/copy-to-clipboard.ts)\n\n### pd\n\nA function that prevents the default event behavior.\n\n```ts\nimport { pd } from \"umaki\";\n\ndocument.getElementById(\"myElement\").addEventListener(\"click\", pd);\n```\n\n[View file →](src/libs/control/pd.ts)\n\n### scrollToHash (Promise)\n\nA function that scrolls to a specific hash position.\n\n```ts\nimport { scrollToHash } from \"umaki\";\n(async () => {\n  await scrollToHash(\"#target\");\n  console.log(\"Scrolled!\");\n\n  // smooth scroll\n  await scrollToHash(\"#target\", true);\n\n  // smooth scroll + offset\n  await scrollToHash(\"#target\", true, 100);\n})();\n```\n\n[View file →](src/libs/control/scroll-to-hash.ts)\n\n### videoPlayControl\n\nA function that controls the playback of a video element.\n\n```ts\nimport { videoPlayControl } from \"umaki\";\n\nconst videoElement = document.getElementById(\"myVideo\");\nvideoPlayControl(videoElement, true); // play\nvideoPlayControl(videoElement, false); // pause\n\n// set currentTime\nvideoPlayControl(videoElement, true, 10); // play and set currentTime to 10\n```\n\n[View file →](src/libs/control/video-play-control.ts)\n\n## Convert\n\n### changeDateStringToSpecificFormat\n\nA function that converts a date string to a specific format.\n\n```ts\nimport { changeDateStringToSpecificFormat } from \"umaki\";\n\n// Basic usage\nconst date = \"2023-10-05\";\nconst formattedDate = changeDateStringToSpecificFormat(date, \"MM/DD/YYYY\");\nconsole.log(formattedDate); // '10/05/2023'\n\n// With timezone\nconst dateWithTz = \"2025-04-25T00:00:00.000Z\";\nconst formattedDateWithTz = changeDateStringToSpecificFormat(\n  dateWithTz,\n  \"YYYY-MM-DD HH:mm:ss\",\n  \"Asia/Tokyo\"\n);\nconsole.log(formattedDateWithTz); // '2025-04-25 09:00:00'\n\n// With different timezone\nconst formattedDateWithDifferentTz = changeDateStringToSpecificFormat(\n  dateWithTz,\n  \"YYYY-MM-DD HH:mm:ss\",\n  \"America/New_York\"\n);\nconsole.log(formattedDateWithDifferentTz); // '2025-04-24 20:00:00'\n```\n\nNote: This function focuses on timezone handling rather than locale-specific formatting. When a timezone is specified, the date will be converted to that timezone before formatting.\n\n[View file →](src/libs/convert/change-date-string-to-specific-format.ts)\n\n### hexToRgb\n\nA function that converts a hex color string to an RGB color object. Supports `#RGB` / `#RRGGBB` and the same forms without the leading `#`. Returns `undefined` for invalid input.\n\n```ts\nimport { hexToRgb } from \"umaki\";\n\nhexToRgb(\"#ff0000\"); // { r: 255, g: 0, b: 0 }\nhexToRgb(\"#fff\"); // { r: 255, g: 255, b: 255 }\nhexToRgb(\"abc\"); // { r: 170, g: 187, b: 204 }\nhexToRgb(\"#invalid\"); // undefined\n```\n\n[View file →](src/libs/convert/hex-to-rgb.ts)\n\n### jsonStringToJsonObject\n\nA function that converts a JSON string to a JSON object.\n\n```ts\nimport { jsonStringToJsonObject } from \"umaki\";\n\nconst jsonString = '{\"name\": \"John\", \"age\": 30}';\nconst jsonObject = jsonStringToJsonObject(jsonString);\nconsole.log(jsonObject); // { name: 'John', age: 30 }\n```\n\n[View file →](src/libs/convert/json-string-to-json-object.ts)\n\n### rgbToHex\n\nA function that converts RGB color components to a 6-digit hex color string with leading `#`. Each component is rounded to the nearest integer and clamped to `[0, 255]`. Non-finite values (`NaN`, `Infinity`, `-Infinity`) are treated as `0`.\n\n```ts\nimport { rgbToHex } from \"umaki\";\n\nrgbToHex(255, 0, 0); // '#ff0000'\nrgbToHex(170, 187, 204); // '#aabbcc'\nrgbToHex(1, 2, 3); // '#010203'\nrgbToHex(300, -10, 128.5); // '#ff0081' (clamped & rounded)\nrgbToHex(NaN, NaN, NaN); // '#000000'\n```\n\n[View file →](src/libs/convert/rgb-to-hex.ts)\n\n## EventControl\n\n### debounce\n\nA function that limits the number of times a function is called to at most one time over a specified time period.\n\n```ts\nimport { debounce } from \"umaki\";\n\nconst debouncedFunction = debounce(() => {\n  console.log(\"Debounced!\");\n}, 300);\n\nwindow.addEventListener(\"resize\", debouncedFunction);\n```\n\n[View file →](src/libs/eventControl/debounce.ts)\n\n### throttle\n\nA function that limits the number of times a function is called to a maximum of once in a specified period.\n\n```ts\nimport { throttle } from \"umaki\";\n\nconst throttledFunction = throttle(() => {\n  console.log(\"Throttled!\");\n}, 300);\n\nwindow.addEventListener(\"scroll\", throttledFunction);\n```\n\n[View file →](src/libs/eventControl/throttle.ts)\n\n## Get\n\n### getAspectRatio\n\nA function that returns the aspect ratio of the specified width and height.\n\n```ts\nimport { getAspectRatio } from \"umaki\";\n\nconst aspectRatio = getAspectRatio(1920, 1080);\nconsole.log(aspectRatio); // { w: 16, h: 9 }\n```\n\n[View file →](src/libs/get/get-aspect-ratio.ts)\n\n### getClassNames\n\nA function that retrieves the class names of the specified HTML element as an array.\n\n```ts\nimport { getClassNames } from \"umaki\";\n\nconst element = document.createElement(\"div\");\nelement.className = \"class1 class2 class3\";\nconst classNames = getClassNames(element);\nconsole.log(classNames); // ['class1', 'class2', 'class3']\n```\n\n[View file →](src/libs/get/get-class-names.ts)\n\n### getDocumentHeight\n\nA function that retrieves the height of the document.\n\n```ts\nimport { getDocumentHeight } from \"umaki\";\n\nconst height = getDocumentHeight();\nconsole.log(height);\n```\n\n[View file →](src/libs/get/get-document-height.ts)\n\n### getEventPaths\n\nA function that retrieves the event paths.\n\n```ts\nimport { getEventPaths } from \"umaki\";\n\ndocument.addEventListener(\"click\", (event) => {\n  const paths = getEventPaths(event);\n  console.log(paths);\n});\n```\n\n[View file →](src/libs/get/get-event-paths.ts)\n\n### getGcd\n\nA function that calculates the greatest common divisor of two numbers.\n\n```ts\nimport { getGcd } from \"umaki\";\n\nconst gcd = getGcd(48, 18);\nconsole.log(gcd); // 6\n```\n\n[View file →](src/libs/get/get-gcd.ts)\n\n### getGravatarUrl\n\nA function that generates a Gravatar avatar image URL from an email address and size parameter.\n\n```ts\nimport { getGravatarUrl } from \"umaki\";\n\nconst avatarUrl = getGravatarUrl('user@example.com', 80);\nconsole.log(avatarUrl);\n// 'https://www.gravatar.com/avatar/b58996c504c5638798eb6b511e6f49af?s=80&d=404'\n\n// Different size\nconst largeAvatar = getGravatarUrl('user@example.com', 200);\n\n// Email with uppercase and whitespace (automatically normalized)\nconst normalizedAvatar = getGravatarUrl(' USER@EXAMPLE.COM ', 80);\n// Same result as above due to normalization\n```\n\n[View file →](src/libs/get/get-gravatar-url.ts)\n\n### getOrientation\n\nA function that retrieves the current orientation of the device.\n\n```ts\nimport { getOrientation } from \"umaki\";\n\nconst orientation = getOrientation();\nconsole.log(orientation); // 'landscape' or 'portrait'\n```\n\n[View file →](src/libs/get/get-orientation.ts)\n\n### getParentList\n\nA function that recursively retrieves the parent elements of the specified HTML element.\n\n```ts\nimport { getParentList } from \"umaki\";\n\nconst element = document.createElement(\"div\");\nconst parentList = getParentList(element);\nconsole.log(parentList);\n```\n\n[View file →](src/libs/get/get-parent-list.ts)\n\n### getQueryParams\n\nA function that retrieves the value of a specified query parameter from the URL.\n\n```ts\nimport { getQueryParams } from \"umaki\";\n\n// Basic usage\nconst param = getQueryParams(\"id\"); // returns value from window.location.search\n\n// With custom search string\nconst customParam = getQueryParams(\"id\", { searchString: \"?id=123\" });\n\n// With parse options\nconst paramWithOptions = getQueryParams(\"id\", {\n  parseOptions: { arrayFormat: \"bracket\" },\n});\n\n// With both custom search string and parse options\nconst customParamWithOptions = getQueryParams(\"id\", {\n  searchString: \"?id=123\",\n  parseOptions: { arrayFormat: \"bracket\" },\n});\n```\n\n[View file →](src/libs/get/get-query-params.ts)\n\n### getRandomInt\n\nA function that returns a random integer between min (inclusive) and max (inclusive).\n\n```ts\nimport { getRandomInt } from \"umaki\";\n\n// Basic usage\nconst random = getRandomInt(1, 10);\nconsole.log(random); // Random integer from 1 to 10\n\n// Use for array index\nconst items = [\"apple\", \"banana\", \"orange\"];\nconst randomItem = items[getRandomInt(0, items.length - 1)];\n\n// Generate random delay\nconst delay = getRandomInt(100, 500);\nawait sleep(delay / 1000);\n```\n\n[View file →](src/libs/get/get-random-int.ts)\n\n### getRelativeTime\n\nA function that returns a human-readable relative time string (e.g., \"3 minutes ago\", \"2 days ago\") using the Intl.RelativeTimeFormat API.\n\n```ts\nimport { getRelativeTime } from \"umaki\";\n\n// Basic usage (Japanese locale by default)\nconst pastDate = new Date(Date.now() - 5 * 60 * 1000);\nconsole.log(getRelativeTime(pastDate)); // \"5 分前\"\n\n// English locale\nconsole.log(getRelativeTime(pastDate, \"en\")); // \"5 minutes ago\"\n\n// Future dates\nconst futureDate = new Date(Date.now() + 2 * 24 * 60 * 60 * 1000);\nconsole.log(getRelativeTime(futureDate)); // \"2 日後\"\n\n// With timestamp or ISO string\nconsole.log(getRelativeTime(1702800000000, \"en\")); // relative to now\nconsole.log(getRelativeTime(\"2024-01-15T12:00:00Z\", \"en\"));\n```\n\n[View file →](src/libs/get/get-relative-time.ts)\n\n### getRem\n\nA function that converts a pixel value to rem units.\n\n```ts\nimport { getRem } from \"umaki\";\n\nconst remValue = getRem(16);\nconsole.log(remValue); // '1rem'\n```\n\n[View file →](src/libs/get/get-rem.ts)\n\n### getRenderedLineHeight\n\nMeasures the line-height **as it is actually rendered** (in CSS pixels) for a target element by inserting a hidden probe element with the same font-related styles and dividing its multi-line height by the sample line count.\n\nThis works around an iOS Safari quirk ([WebKit Bug #225695](https://bugs.webkit.org/show_bug.cgi?id=225695)) where fractional `line-height` values are floored to integer pixels at paint time. Stacking-line UIs that rely on `1lh` (e.g. `mask-image: repeating-linear-gradient` rules) drift on iOS Safari but match `getRenderedLineHeight` output. Returns `NaN` in SSR environments or when the probe cannot be measured.\n\nThe caller is responsible for awaiting `document.fonts.ready` before measuring when font-loaded accuracy matters.\n\n```ts\nimport { getRenderedLineHeight } from \"umaki\";\n\nconst textEl = document.querySelector<HTMLElement>(\".text\");\nif (!textEl) return;\n\nawait document.fonts.ready;\n\nconst lh = getRenderedLineHeight(textEl);\nif (Number.isFinite(lh)) {\n  textEl.style.setProperty(\"--text-line-height\", `${lh}px`);\n}\n```\n\n```css\n.text {\n  mask-image: repeating-linear-gradient(\n    to bottom,\n    transparent 0,\n    transparent calc(var(--text-line-height, 1lh) - 0.5px),\n    #000 calc(var(--text-line-height, 1lh) - 0.5px),\n    #000 var(--text-line-height, 1lh)\n  );\n}\n```\n\nYou can adjust the sampling resolution via `sampleLines` (default `20`, minimum `2`):\n\n```ts\nconst lh = getRenderedLineHeight(textEl, { sampleLines: 40 });\n```\n\n[View file →](src/libs/get/get-rendered-line-height.ts)\n\n### getScrollbarWidth\n\nA function that retrieves the width of the scrollbar.\n\n```ts\nimport { getScrollbarWidth } from \"umaki\";\n\nconst scrollbarWidth = getScrollbarWidth();\nconsole.log(scrollbarWidth); // 15\n```\n\n[View file →](src/libs/get/get-scrollbar-width.ts)\n\n### getSessionStorage\n\nA function that retrieves a value from session storage.\n\n```ts\nimport { getSessionStorage } from \"umaki\";\n\nconst value = getSessionStorage(\"testKey\");\nconsole.log(value); // 'testValue'\n```\n\n[View file →](src/libs/get/get-session-storage.ts)\n\n### getStringLength\n\nA function that retrieves the length of a string (considering Unicode characters).\n\n```ts\nimport { getStringLength } from \"umaki\";\n\nconst length = getStringLength(\"こんにちは\");\nconsole.log(length); // 5\n```\n\n[View file →](src/libs/get/get-string-length.ts)\n\n### getStylePropertyValue\n\nA function that retrieves the value of the specified CSS custom property.\n\n```ts\nimport { getStylePropertyValue } from \"umaki\";\n\nconst value = getStylePropertyValue(\"--custom-property\");\nconsole.log(value);\n```\n\n[View file →](src/libs/get/get-style-property-value.ts)\n\n### getStylePropertyValueToNumber\n\nA function that retrieves the value of the specified CSS custom property as a number.\n\n```ts\nimport { getStylePropertyValueToNumber } from \"umaki\";\n\nconst value = getStylePropertyValueToNumber(\"--custom-property\");\nconsole.log(value);\n```\n\n[View file →](src/libs/get/get-style-property-value-to-number.ts)\n\n### getUaData\n\nA function that retrieves user agent information.\n\n```ts\nimport { getUaData } from \"umaki\";\n\nconst uaData = getUaData();\nconsole.log(uaData);\n// {\n//   browserName: 'chrome',\n//   browserVersion: '91.0.4472.124',\n//   browserEngine: 'blink',\n//   osName: 'windows',\n//   type: 'desktop',\n//   touchSupport: false\n// }\n```\n\n[View file →](src/libs/get/get-ua-data.ts)\n\n## Is\n\n### isAfterDateTime\n\nA function that checks if the current date is after a specified date.\n\n```ts\nimport { isAfterDateTime } from \"umaki\";\n\nconst targetDate = \"2023-10-01\";\nconst result = isAfterDateTime(targetDate);\nconsole.log(result); // true or false\n\n// With custom current date\nimport dayjs from \"dayjs\";\n\nconst customCurrentDate = \"2023-11-15\";\nconst resultWithCustomDate = isAfterDateTime(targetDate, dayjs(customCurrentDate));\n```\n\n[View file →](src/libs/is/is-after-date-time.ts)\n\n### isBetweenDateTime\n\nA function that checks if the current date is between two specified dates.\n\n```ts\nimport { isBetweenDateTime } from \"umaki\";\n\nconst dateA = \"2023-10-01\";\nconst dateB = \"2023-10-10\";\nconst result = isBetweenDateTime(dateA, dateB);\nconsole.log(result); // true or false\n```\n\n[View file →](src/libs/is/is-between-date-time.ts)\n\n### isExistAllElements\n\nA function that checks if all elements exist.\n\n```ts\nimport { isExistAllElements } from \"umaki\";\n\nconst elements = [\n  document.createElement(\"div\"),\n  document.createElement(\"span\"),\n];\nconst result = isExistAllElements(elements);\nconsole.log(result); // true or false\n```\n\n[View file →](src/libs/is/is-exist-all-elements.ts)\n\n### isInViewport\n\nA function that checks if an element is currently visible within the viewport.\n\n```ts\nimport { isInViewport } from \"umaki\";\n\nconst element = document.getElementById(\"target\");\n\n// Check if any part of the element is visible\nconst isVisible = isInViewport(element);\nconsole.log(isVisible); // true or false\n\n// Check if the entire element is visible\nconst isFullyVisible = isInViewport(element, { threshold: 1 });\n\n// Check if at least 50% of the element is visible\nconst isHalfVisible = isInViewport(element, { threshold: 0.5 });\n\n// With expanded viewport bounds (trigger 100px before element enters viewport)\nconst isNearViewport = isInViewport(element, { rootMargin: \"100px\" });\n```\n\n[View file →](src/libs/is/is-in-viewport.ts)\n\n### isIpad\n\nA function that checks if the device is an iPad.\n\n```ts\nimport { isIpad } from \"umaki\";\n\nconst result = isIpad();\nconsole.log(result); // true or false\n```\n\n[View file →](src/libs/is/is-ipad.ts)\n\n### isKeyExists\n\nA function that checks if a specific key exists in an object.\n\n```ts\nimport { isKeyExists } from \"umaki\";\n\nconst obj = { a: 1, b: 2 };\nconst result = isKeyExists(obj, \"a\");\nconsole.log(result); // true or false\n```\n\n[View file →](src/libs/is/is-key-exists.ts)\n\n### isOnline\n\nA function that checks if the browser is currently online using the Navigator.onLine API.\n\n```ts\nimport { isOnline } from \"umaki\";\n\n// Basic usage\nif (isOnline()) {\n  // Perform network request\n  fetchData();\n} else {\n  // Show offline message\n  showOfflineMessage();\n}\n\n// Use with event listeners for online/offline detection\nwindow.addEventListener(\"online\", () => {\n  if (isOnline()) {\n    console.log(\"Back online!\");\n  }\n});\n```\n\n[View file →](src/libs/is/is-online.ts)\n\n### isSafari\n\nA function that checks if the browser is Safari.\n\n```ts\nimport { isSafari } from \"umaki\";\n\nconst result = isSafari();\nconsole.log(result); // true or false\n```\n\n[View file →](src/libs/is/is-safari.ts)\n\n### isScrollable\n\nA function that checks if an element is scrollable.\n\n```ts\nimport { isScrollable } from \"umaki\";\n\nconst element = document.createElement(\"div\");\nelement.style.overflow = \"auto\";\nelement.innerHTML = '<div style=\"height: 200px;\"></div>';\nconst result = isScrollable(element);\nconsole.log(result); // true or false\n```\n\n[View file →](src/libs/is/is-scrollable.ts)\n\n### isTouchSupport\n\nA function that checks if the device supports touch.\n\n```ts\nimport { isTouchSupport } from \"umaki\";\n\nconst result = isTouchSupport();\nconsole.log(result); // true or false\n```\n\n[View file →](src/libs/is/is-touch-support.ts)\n\n### checkDeviceSize\n\nA function that checks the current device size based on window width and the configured breakpoint.\n\n```ts\nimport { checkDeviceSize, setConfig } from \"umaki\";\n\n// Using default breakpoint (768px)\nconst deviceSize = checkDeviceSize();\nconsole.log(deviceSize); // 'md' if window.innerWidth > 768, otherwise 'sm'\n\n// Customize the breakpoint\nsetConfig({ BREAKPOINT: 1024 });\nconst newDeviceSize = checkDeviceSize();\nconsole.log(newDeviceSize); // 'md' if window.innerWidth > 1024, otherwise 'sm'\n```\n\n[View file →](src/libs/is/check-device-size.ts)\n\n## Remove\n\n### removeAllHtmlTags\n\nA function that removes all HTML tags from a string.\n\n```ts\nimport { removeAllHtmlTags } from \"umaki\";\n\nconst input = \"<p>Hello <strong>World</strong>!</p>\";\nconst output = removeAllHtmlTags(input);\nconsole.log(output); // 'Hello World!'\n```\n\n[View file →](src/libs/remove/remove-all-html-tags.ts)\n\n### removeAttribute\n\nA function that removes an attribute from the specified HTML element.\n\n```ts\nimport { removeAttribute } from \"umaki\";\n\nconst element = document.createElement(\"div\");\nelement.setAttribute(\"data-test\", \"value\");\nremoveAttribute(element, \"data-test\");\nconsole.log(element.hasAttribute(\"data-test\")); // false\n```\n\n[View file →](src/libs/remove/remove-attribute.ts)\n\n### removeSessionStorage\n\nA function that removes an item with the specified key from session storage.\n\n```ts\nimport { removeSessionStorage } from \"umaki\";\n\nconst key = \"testKey\";\nremoveSessionStorage(key);\nconsole.log(sessionStorage.getItem(key)); // null\n```\n\n[View file →](src/libs/remove/remove-session-storage.ts)\n\n### removeStylePropertyValue\n\nA function that removes the specified CSS custom property.\n\n```ts\nimport { removeStylePropertyValue } from \"umaki\";\n\nconst key = \"--custom-property\";\nremoveStylePropertyValue(key);\nconsole.log(getComputedStyle(document.documentElement).getPropertyValue(key)); // ''\n```\n\n[View file →](src/libs/remove/remove-style-property-value.ts)\n\n## Set\n\n### set100vh\n\nA function that sets a CSS variable to 100vh to address viewport unit issues on mobile devices.\n\n```ts\nimport { set100vh } from \"umaki\";\n\nset100vh();\n```\n\n[View file →](src/libs/set/set-100vh.ts)\n\n### set100vw\n\nA function that sets a CSS variable to 100vw minus the scrollbar width.\n\n```ts\nimport { set100vw } from \"umaki\";\n\nset100vw();\n```\n\n[View file →](src/libs/set/set-100vw.ts)\n\n### setAttribute\n\nA function that sets an attribute on the specified HTML element.\n\n```ts\nimport { setAttribute } from \"umaki\";\n\nconst element = document.createElement(\"div\");\nsetAttribute(element, \"data-test\", \"value\");\nconsole.log(element.getAttribute(\"data-test\")); // 'value'\n```\n\n[View file →](src/libs/set/set-attribute.ts)\n\n### setScrollPositionToCenter\n\nA function that adjusts the horizontal scroll position of the root element to center the target element.\n\n```ts\nimport { setScrollPositionToCenter } from \"umaki\";\n\nconst rootElement = document.getElementById(\"root\");\nconst targetElement = document.getElementById(\"target\");\nsetScrollPositionToCenter(rootElement, targetElement);\n```\n\n[View file →](src/libs/set/set-scroll-position-to-center.ts)\n\n### setSessionStorage\n\nA function that sets a value in session storage.\n\n```ts\nimport { setSessionStorage } from \"umaki\";\n\nconst key = \"testKey\";\nconst value = \"testValue\";\nsetSessionStorage(key, value);\nconsole.log(sessionStorage.getItem(key)); // 'testValue'\n```\n\n[View file →](src/libs/set/set-session-storage.ts)\n\n### setStylePropertyValue\n\nA function that sets a CSS custom property on the root element.\n\n```ts\nimport { setStylePropertyValue } from \"umaki\";\n\nconst key = \"--custom-color\";\nconst value = \"blue\";\nsetStylePropertyValue(key, value);\nconsole.log(getComputedStyle(document.documentElement).getPropertyValue(key)); // 'blue'\n```\n\n[View file →](src/libs/set/set-style-property-value.ts)\n\n## To\n\n### toBoolean\n\nA function that converts a string to a boolean value.\n\n```ts\nimport { toBoolean } from \"umaki\";\n\nconsole.log(toBoolean(\"true\")); // true\nconsole.log(toBoolean(\"false\")); // false\nconsole.log(toBoolean(\"random\")); // false\n```\n\n[View file →](src/libs/to/to-boolean.ts)\n\n### toPositiveNumber\n\nA function that converts a number to a positive number. Returns the absolute value if the number is negative.\n\n```ts\nimport { toPositiveNumber } from \"umaki\";\n\nconsole.log(toPositiveNumber(5)); // 5\nconsole.log(toPositiveNumber(-5)); // 5\nconsole.log(toPositiveNumber(0)); // 0\nconsole.log(toPositiveNumber(-3.14)); // 3.14\nconsole.log(toPositiveNumber(3.14)); // 3.14\n```\n\n[View file →](src/libs/to/to-positive-number.ts)\n\n## Transform\n\n### wrapTextWithSpans\n\nA function that wraps each character of the text content of an HTML element with individual `<span>` elements.\n\n```ts\nimport { wrapTextWithSpans } from \"umaki\";\n\nconst element = document.createElement(\"div\");\nelement.textContent = \"hello\";\nwrapTextWithSpans(element);\nconsole.log(element.innerHTML); // '<span>h</span><span>e</span><span>l</span><span>l</span><span>o</span>'\n```\n\n[View file →](src/libs/transform/wrap-text-with-spans.ts)\n\n## Wait\n\n### sleep (Promise)\n\nA function that pauses execution for a specified amount of time.\n\n```ts\nimport { sleep } from \"umaki\";\n(async () => {\n  console.log(\"Start\");\n  await sleep(1); // 1s wait\n  console.log(\"End\");\n})();\n```\n\n[View file →](src/libs/wait/sleep.ts)\n\n### waitForAllMediaLoaded (Promise)\n\nA function that waits until all images and videos in the document are fully loaded.\n\n```ts\nimport { waitForAllMediaLoaded } from \"umaki\";\n(async () => {\n  const allMediaLoaded = await waitForAllMediaLoaded();\n  console.log(allMediaLoaded); // true or false\n\n  // first view only\n  const firstViewMediaLoaded = await waitForAllMediaLoaded(true);\n  console.log(firstViewMediaLoaded); // true or false\n})();\n```\n\n[View file →](src/libs/wait/wait-for-all-media-loaded.ts)\n\n## Security\n\n### sanitizeHtml\n\nA function that sanitizes HTML strings to prevent XSS attacks.\n\n```ts\nimport { sanitizeHtml } from \"umaki\";\n\n// Basic usage\nconst sanitized = sanitizeHtml(\n  '<script>alert(\"xss\")</script><p>Hello World</p>'\n);\nconsole.log(sanitized); // '<p>Hello World</p>'\n\n// With custom config\nconst config = { ALLOWED_TAGS: [\"p\"] };\nconst sanitizedWithConfig = sanitizeHtml(\"<p>Hello World</p>\", config);\nconsole.log(sanitizedWithConfig); // '<p>Hello World</p>'\n```\n\nThis function uses `isomorphic-dompurify` and has the following features:\n\n- Removes dangerous HTML tags and attributes by default\n- Allows flexible control through custom configuration\n- Can be used on both server-side and client-side\n\n[View file →](src/libs/security/html-sanitize.ts)\n\n## Advanced Usage\n\nThis section provides tips and patterns for getting the most out of umaki utilities.\n\n### Using `tap` / `tapAsync` with umaki functions\n\nThe `tap` and `tapAsync` functions allow you to add callbacks to any umaki function without modifying its behavior. This is useful for logging, analytics, caching, and more.\n\n#### Basic Pattern\n\n| Function Type | Use | Example |\n|---------------|-----|---------|\n| Sync (returns value) | `tap` | `tap(removeAllHtmlTags(input), callback)` |\n| Sync (returns void) | `tap` | `tap(set100vh(), callback)` |\n| Async (returns Promise) | `tapAsync` | `tapAsync(sleep(1), callback)` |\n\n> [!TIP]\n> `tap` prevents Promise values at the type level. If you accidentally pass a Promise, TypeScript will show an error.\n\n#### Examples with umaki functions\n\n<details>\n<summary><strong>📝 Logging & Debugging</strong></summary>\n\n```ts\nimport { tap, removeAllHtmlTags, getUaData } from \"umaki\";\n\n// Log sanitized HTML output\nconst clean = tap(removeAllHtmlTags(dirtyHtml), (result) => {\n  console.log(\"[DEBUG] Sanitized HTML:\", result);\n});\n\n// Log user agent data\nconst ua = tap(getUaData(), (data) => {\n  console.log(\"[DEBUG] UA:\", data.browserName, data.osName);\n});\n```\n\n</details>\n\n<details>\n<summary><strong>📊 Analytics & Tracking</strong></summary>\n\n```ts\nimport { tap, tapAsync, getUaData, waitForAllMediaLoaded } from \"umaki\";\n\n// Track device information\nconst uaData = tap(getUaData(), (data) => {\n  analytics.track(\"device_detected\", {\n    browser: data.browserName,\n    os: data.osName,\n    type: data.type,\n  });\n});\n\n// Track media load completion\nawait tapAsync(waitForAllMediaLoaded(), (success) => {\n  analytics.track(\"media_loaded\", { success, timestamp: Date.now() });\n});\n```\n\n</details>\n\n<details>\n<summary><strong>💾 Caching</strong></summary>\n\n```ts\nimport { tap, tapAsync, getScrollbarWidth } from \"umaki\";\n\n// Cache scrollbar width (useful for repeated access)\nconst scrollbarWidth = tap(getScrollbarWidth(), (width) => {\n  sessionStorage.setItem(\"scrollbarWidth\", String(width));\n});\n\n// Cache async fetch results\nconst getData = () =>\n  tapAsync(fetchFromAPI(), (data) => {\n    localStorage.setItem(\"cachedData\", JSON.stringify(data));\n  });\n```\n\n</details>\n\n<details>\n<summary><strong>🎯 Event Emission</strong></summary>\n\n```ts\nimport { tap, tapAsync, checkDeviceSize, waitForAllMediaLoaded } from \"umaki\";\n\n// Emit event on device size check\nconst deviceSize = tap(checkDeviceSize(), (size) => {\n  window.dispatchEvent(new CustomEvent(\"deviceSizeChecked\", { detail: size }));\n});\n\n// Emit event when all media is loaded\nawait tapAsync(waitForAllMediaLoaded(true), () => {\n  window.dispatchEvent(new CustomEvent(\"firstViewMediaReady\"));\n});\n```\n\n</details>\n\n<details>\n<summary><strong>⚡ Parallel Async Operations</strong></summary>\n\n```ts\nimport { tapAsync, sleep, waitForAllMediaLoaded } from \"umaki\";\n\n// Track multiple async operations independently\nconst [_, mediaLoaded] = await Promise.all([\n  tapAsync(sleep(1), () => console.log(\"⏱️ 1 second elapsed\")),\n  tapAsync(waitForAllMediaLoaded(), (ok) => console.log(\"🖼️ Media:\", ok ? \"ready\" : \"failed\")),\n]);\n```\n\n</details>\n\n#### Working with void functions\n\n> [!NOTE]\n> When using `tap` with functions that return `void` (like `set100vh`, `bgScrollStop`), the callback receives `undefined`. This is still useful for completion notifications.\n\n```ts\nimport { tap, set100vh, bgScrollStop } from \"umaki\";\n\n// Notification when viewport units are set\ntap(set100vh(), () => {\n  console.log(\"✅ 100vh CSS variable has been set\");\n});\n\n// Notification when scroll is stopped\ntap(bgScrollStop(true), () => {\n  console.log(\"🔒 Background scroll locked\");\n});\n```\n\n---\n\n## Using for framework and tools\n\nSpecific usage for frameworks or various tools is described below.\n\n### Subpath Exports (Selective Module Imports)\n\nUmaki supports subpath exports, allowing you to import only the modules you need. This is particularly useful for avoiding unnecessary dependencies and reducing bundle size.\n\n```ts\n// Import only the 'get' module (does not load isomorphic-dompurify)\nimport { getUaData, getScrollbarWidth } from \"umaki/get\";\n\n// Import only the 'is' module\nimport { isIpad, isSafari } from \"umaki/is\";\n\n// Import only the 'security' module (loads isomorphic-dompurify)\nimport { sanitizeHtml } from \"umaki/security\";\n\n// Traditional import (loads all modules)\nimport { getUaData, sanitizeHtml } from \"umaki\";\n```\n\n#### Available Subpath Exports\n\n| Path | Description |\n|------|-------------|\n| `umaki/callback` | Callback utilities (tap, tapAsync) |\n| `umaki/config` | Configuration (setConfig, getConfig) |\n| `umaki/control` | Scroll control, video playback, etc. |\n| `umaki/convert` | Data conversion (dates, JSON, colors) |\n| `umaki/eventControl` | debounce, throttle |\n| `umaki/get` | Value retrieval (DOM, UA, etc.) |\n| `umaki/is` | Boolean checks (device detection, etc.) |\n| `umaki/remove` | DOM/storage removal utilities |\n| `umaki/security` | HTML sanitization |\n| `umaki/set` | DOM/storage setters |\n| `umaki/to` | Type conversions |\n| `umaki/transform` | DOM transformations |\n| `umaki/wait` | Async utilities (sleep, media loading) |\n\n### Astro or Vite\n\nWhen using with Astro for SSR, add `umaki` to `vite.ssr.noExternal.`\n\n```ts\n// astro.config.ts\nexport default defineConfig(({ mode }) => {\n  return {\n    vite: {\n      ssr: {\n        noExternal: [\"umaki\"],\n      },\n    },\n  };\n});\n```\n\n### Next.js\n\nWhen using umaki with Next.js, you may encounter ESM compatibility issues during SSR if you import from the main entry point. This is because `isomorphic-dompurify` (used by the security module) has dependencies that can cause issues in SSR environments.\n\n**Recommended: Use subpath exports to import only the modules you need:**\n\n```ts\n// ✅ Safe for Next.js SSR (does not load isomorphic-dompurify)\nimport { getUaData } from \"umaki/get\";\nimport { debounce } from \"umaki/eventControl\";\n\n// ⚠️ Only import security module if you need HTML sanitization\nimport { sanitizeHtml } from \"umaki/security\";\n```\n\nThis approach avoids loading `isomorphic-dompurify` and its dependencies unless you specifically need the `sanitizeHtml` function.\n","readmeFilename":"README.md"}