{"_id":"wvke-sdk","_rev":"50-37043c032d73bdff0379ce9fd1970435","name":"wvke-sdk","dist-tags":{"latest":"1.0.20260825"},"versions":{"1.0.20260422":{"name":"wvke-sdk","version":"1.0.20260422","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260422","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"242a66126132738d18a288e6e2c6bef58381235b","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260422.tgz","fileCount":202,"integrity":"sha512-csW90kkythJSbhNurjEP10/SGAPwwkOOFz+qgSO++50P0knkY3Ca9SDBNf5Lsl+DHyQVpUPoiFXc7TUZ+r2R1A==","signatures":[{"sig":"MEUCIDdc5o5NALMtBzwHnbTCsrpu7FvYSsY0CjXgPhRWxFZLAiEA5GyMRzw8F0UTbMIzhy2duwxKOUZ8fP3Yq+ZwHW4Tq1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22058749},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260422_1776813027754_0.44755454477260836","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260502":{"name":"wvke-sdk","version":"1.0.20260502","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260502","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"03cf13a5f89ee7c31852b7b3fe500960f25f2c7a","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260502.tgz","fileCount":202,"integrity":"sha512-m0VY99OymKBMY81G+W2KaNjd6H39Itt7MmIMR0JHovuRy3jiLrIMh7xaDMY0ftM7Xg1UT8R0GvSAcuzg2OeQZA==","signatures":[{"sig":"MEQCIAhywUYnV/gtg+mnXjWWxD/m1qw7MrLylnVJFywksrAfAiB34uyKTtwoj8JjE9HIprnp33qLouZX8Wfsba9fsZFYpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22098392},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260502_1777660631233_0.6928809750213187","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260505":{"name":"wvke-sdk","version":"1.0.20260505","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260505","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"ef8db6db1fb4dee905e7e393cd07a222cc18302d","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260505.tgz","fileCount":202,"integrity":"sha512-mpm6bhEIrtX+tIrgAFKTtAA3uo9FZ/PRZ8QqShrxSDZB1f9hrB+Gi37SOuAD0q8fVDg3bzA7MbylFHp9ScJ1sw==","signatures":[{"sig":"MEUCIQDo3m8dK2VmJ7SBx5yMqUSoXVpCLPNGATEn7YyoISA5jwIgVFJV274ykTf4cRiuCgnInvFRtJ6jaZJFai7/Xfo/20M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22105464},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260505_1777948664062_0.3840483556156242","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260506":{"name":"wvke-sdk","version":"1.0.20260506","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260506","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"2744d94f0c2fe18e1a8d3b9008d79f6349aeaf33","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260506.tgz","fileCount":202,"integrity":"sha512-ahgwQDu4MOXn4UxtWYAjKTLQ9fZr59Mi0XrB1qvKb8tJJMtWFzR3TwxH1U8KvwyuXFw6VOZk7NhlMDjxgMnr4A==","signatures":[{"sig":"MEYCIQCagNJm/nXoS+8vB+zj8Yoh8F3cTb9aBfGd7cA0Y0UfVwIhAPDMKlSUtTymnKulgVdqxZyya7genxgGqU3vkiz0cW9O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22108036},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260506_1777968487347_0.9910329528384887","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260507":{"name":"wvke-sdk","version":"1.0.20260507","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260507","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"130c40ed2c7a79ebe00c10461b69f8f5882a8e07","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260507.tgz","fileCount":202,"integrity":"sha512-RxXOc3i+dbxDYBn9qhXVp75x64R36AYfkwVhfvlsRVdvC92HLNdVvTqhmTxcbycrt2DQAP5r04A1uRAmk9xi6w==","signatures":[{"sig":"MEUCIE+svFk51QTHBhA2XY1L3pc+7mpsSK/6IbDmbSEg8dOfAiEAupMEst36CgGbH4EyzY9nDeYg2+ewqoo6ySRGS5WsHR4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22108279},"main":"dist/wvke-sdk.umd.js","type":"module","_from":"file:..\\wvke-sdk-1.0.20260507.tgz","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_resolved":"D:\\workspace\\DriveCollection1.0\\project-sdk-firmware-drive\\1.0\\wvke-sdk-1.0.20260507.tgz","_integrity":"sha512-RxXOc3i+dbxDYBn9qhXVp75x64R36AYfkwVhfvlsRVdvC92HLNdVvTqhmTxcbycrt2DQAP5r04A1uRAmk9xi6w==","_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260507_1778062311038_0.40318873948805134","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260508":{"name":"wvke-sdk","version":"1.0.20260508","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260508","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"18b072a5c15da8d661788890c0a8fa0b8a5606a7","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260508.tgz","fileCount":202,"integrity":"sha512-74zaG2I/uZPBy44R4Rdr5+EJe0euCpUZYQar7yGS55wwFrpMfUjUyOSO3wMbO1bLNs+Q2+73Fu84/i7HO526vg==","signatures":[{"sig":"MEQCICUaYE/a/7Gr1pm3nwkjMDyae3uQDNf7DCrSPRZY+t74AiBuST3D+jy3zcm21hW+SVpxo/Q3MhE3LBPgnGWnQDsIVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22124288},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260508_1778106807466_0.013682949965581503","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260509":{"name":"wvke-sdk","version":"1.0.20260509","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260509","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"61643d25550e3b712ceeddfcb068fd0c1c63a25c","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260509.tgz","fileCount":202,"integrity":"sha512-e+lHSupB/Edxs5itYDkMXNMoHPFfkPqjn0lVVY7ZDD+YuTHCA8/ayVm0tJOm6e8X3jHoFjzAUh5W6aQJAEByhw==","signatures":[{"sig":"MEUCIDT/PzP33iIlzbJB6MwAajaUJY1xTH4aS/vEBW9AKp0FAiEAmZvc0GIttig+lXl/ZNioA29ekup8eDhKYAQzGk9WDnI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22147537},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260509_1778187597139_0.7801989123133963","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260511":{"name":"wvke-sdk","version":"1.0.20260511","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260511","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"643eee2678984a6080dfdc1402f4da16647b45cb","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260511.tgz","fileCount":202,"integrity":"sha512-s7sFD95+itl6NXDlisIw0cce0Cx4/38v1jkWDORL1qG2fGKbOYvK+6vXZBj2WqUXcnzG0Aygr3LM9zeZL8jBLg==","signatures":[{"sig":"MEYCIQCiWuVzhOrPs0KJjCDmNyjxhr628aZYJH3iE6qhOsqwBgIhAJerGpyaO4GY/H2dVNhIPsObfjZZ8rIgFczJFfcgiNFU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22165779},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260511_1778462294817_0.9945842280082857","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260513":{"name":"wvke-sdk","version":"1.0.20260513","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260513","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"3ba0a96765cab8cf495cf9c47cae86dad95c6aa2","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260513.tgz","fileCount":202,"integrity":"sha512-rDlb7wYpCUXCsbyBywbn8/JRU5a19VmO7L5axMeUeEIHDpE5ZDYx0kRDWs8eq/EF4eMzj/5GbDCh+KPBHOxBbA==","signatures":[{"sig":"MEUCIQCo6xLVSwYCPsCCoDrVH7QXUeNLXjH0e67bsD/1xBXK0AIgH4wlS+irRx+xvfWOxb1u7ZBRenxK5uhI7IHr5dyx/Uk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22166714},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260513_1778615158252_0.11936105744583259","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260514":{"name":"wvke-sdk","version":"1.0.20260514","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260514","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"c0a834ee45cfe80838fce0849432223c79f30fc1","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260514.tgz","fileCount":202,"integrity":"sha512-TFdYL0XUprLB7f6cmrsZM9/gOmFEcKqkiYPLakNJi0mx1niINj/zra/gFzdML2BdfhowqtIw6qf2JNTY//JHiA==","signatures":[{"sig":"MEYCIQCbzt7zRZVc/iEId/o+Nl7mW0sENI/loBZdIv75J24iQwIhAK9IiHbUNsnJSpMv4dLV4wZxrxA2zdgtjtqK/n4F2u+3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22174995},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260514_1778702053462_0.7634257098872059","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260518":{"name":"wvke-sdk","version":"1.0.20260518","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260518","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"77bb5b1e65c2400220ff10e5bd12b54ac2b90219","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260518.tgz","fileCount":202,"integrity":"sha512-5ZegbMl4JeRhmPK/2iZXSA1f1/WsZ0Dc9qATyBQfylBkQtxvPm/Q5DojiRe1jXZUWP7/UAJXZ73aweDkD3ts5w==","signatures":[{"sig":"MEUCIA2Y3acx7g+y+OvMy0yhMcetRKP/zOGRzrdY439qYunOAiEAyxFBKQQWJ9ElKB6drAQRbrxdTMZ62XMQPE3dQ+LsXhs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22177683},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260518_1779050744915_0.9826303949478061","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260521":{"name":"wvke-sdk","version":"1.0.20260521","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260521","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"815798a90c97b3606388c2fe5071e5e1d88b28b4","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260521.tgz","fileCount":202,"integrity":"sha512-toVq66cwTuMYiHovsy1zs95iYoZgaesK94VSPWySI+dp/q17SOgdPDcOCh2gOi0tXpffZHH18NZ/Lo6GRI47Xw==","signatures":[{"sig":"MEUCIDthQS0jfwhQKS+IOvoDLGGj9e38Urmiddm08cpgQelEAiEAgTmNKfboQmi/DyvzHoTiYzKH3HAckx99XafihZ3XQ2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22183059},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260521_1779341018452_0.33864782361090207","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260522":{"name":"wvke-sdk","version":"1.0.20260522","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260522","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"a00ffc0a8efafdfc29278553f38b52c053e2e778","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260522.tgz","fileCount":202,"integrity":"sha512-CCwA0fTK7OPhyT0Gwe8z8PyTEeVTpcMWfMIh+quokKZgKoBp+bKcPYP/YNFSxmWAxA3HgPqy67iuvtrliuSWZw==","signatures":[{"sig":"MEUCIQD7HZu5LW6Xv4cmU97tNJLLrUAwkiiBrge4oIvRHVL2qgIgKn35Y5YkDr+TyqadL2rPTrC68eg38USS4ubKSLJni4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22176427},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260522_1779444687608_0.9300757137531785","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260526":{"name":"wvke-sdk","version":"1.0.20260526","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260526","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"2c732610a40a361706d458827dcaa74ccc2c7988","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260526.tgz","fileCount":202,"integrity":"sha512-NMYhcT1U3Cb4f/PZtEg9fH/PFFZNz9ZbUCuhTneGpXbmzBGgSqB4yp2Y9Y0kd65u3RMCH/QUd/0hpk4y/p7vyw==","signatures":[{"sig":"MEUCIHUggDm1hbBWSD5j3AYUiwmhL4vAUX0CJ05IZqlBneuaAiEAw14Z87qUCGMMwX6/ZsY39f8yHqWxL20ehnoZF7UWMN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22178464},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260526_1779740081168_0.611917923870656","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260527":{"name":"wvke-sdk","version":"1.0.20260527","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260527","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"5f76f7087612b142cd3605874b6ca49b57bdf482","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260527.tgz","fileCount":202,"integrity":"sha512-oNEyjiVFggX/Tq4aTHTgqyo5KfplXvCdAZ3BrPUPXmMOHdzlImN9YXKOXZELabFc1VT7hQna0FD90NVMOIENZg==","signatures":[{"sig":"MEYCIQCnBR6QhaBLfH46ywMrSyTqSSy3snssxALe/o6vLQ1ykAIhAOpWYyhiqxHF/j/TBVr1lzq0NNTO5RFg5Ot4zf5vDrDf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22206316},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260527_1779779644685_0.999013297776087","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260601":{"name":"wvke-sdk","version":"1.0.20260601","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260601","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"ff4a2ed7a9a349c28532e7f7e90c86d788c9bab3","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260601.tgz","fileCount":202,"integrity":"sha512-xNjcu2Morcj3Q8PSDsqj/EbZe+wJAqgkGyoDQq4Mv+hJ2Xviink4p4yml0s+JnyVfuhz7HFScafn789sI8yu8A==","signatures":[{"sig":"MEQCIFELMjxOid+xqo2oFrneIBDD8dB1cmUW9K3hGFljDXTyAiBDk2Au54FnM8NLcYH0ZDH1h8OZc/puEfWibyQjGvjz/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22206568},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260601_1780328706157_0.7144789872648416","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260602":{"name":"wvke-sdk","version":"1.0.20260602","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260602","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"122e4b963ba5b18f1d20abbdacc5efd16b877dcd","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260602.tgz","fileCount":202,"integrity":"sha512-GwbWrEVAoMNxN5YX5NQrMDfP8O0pb7zF9y7GoA1TD+9I8daYC/suJutAQQ/YQiUEh5YthjMwLdtgwVbfoRQOrA==","signatures":[{"sig":"MEUCIQCkeIjC0H9APGYpbksfDiL8Mjv0XOFeUgxT0tLDFl7CVgIgUIW8M8FCQlKkoW/p25TB5EXvIQmOslIoYv1ep3u3EjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22210410},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260602_1780369591635_0.6396613261993753","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260604":{"name":"wvke-sdk","version":"1.0.20260604","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260604","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"bb8087f98ddefc6fbf7a3a880ae900640b042a3b","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260604.tgz","fileCount":202,"integrity":"sha512-5dXa2CS9r2RrgAgmeQKhHzXuRVoDu66RUxqOisqXpA7PhMj6vTWnL30GohpiHRpjCgY8wc9agSxc33fsr/Nksw==","signatures":[{"sig":"MEUCIQDPnv3O2HJciByQjP+L92zthGN4kOoXW3Nb93yZhLYuLwIgBQiewtroMWxfs8uuZYJHyON8saKS4hofQbLHFV3YUcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22217136},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260604_1780520171171_0.864575845719066","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260608":{"name":"wvke-sdk","version":"1.0.20260608","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260608","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"5a01c547e3b07bb7c2f179c155691c7ccc4623ea","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260608.tgz","fileCount":211,"integrity":"sha512-bpcsyTqCTHxsX/q7fPzNTf0hc07Nv+V2gb2SLmynI9l/90ar3lfIdCcm5ohECCAugCcZvWYdpxOj44VmILq9SA==","signatures":[{"sig":"MEUCIQCeXHUQZbxq/sNmMgKjQtRWihXV0pedSX+Y+dYSHFoURQIgLoc0ztIxfWzCKiH+yWUF1mvtlDzoI3mPaAPgU8LNrF8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22748060},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260608_1780898334283_0.5456650191447228","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260609":{"name":"wvke-sdk","version":"1.0.20260609","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260609","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"1f2ba5cebd4c4f99fb4e153a3faa40624b90b6f6","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260609.tgz","fileCount":211,"integrity":"sha512-Xq6RaoXaII3NxtvoB1EygsK1yEaj+Ctx5T59+hDiGdcmyfxS91qpwLuTzs8qlh0S2YLfgFKbbYoAXT+gwyUKDQ==","signatures":[{"sig":"MEUCIQDU5FnOUOGOLaU9Zp/6EEcVUi2Rxx6bJonTTkN/7zPjQwIgVobQLS21lUIdw1HzoGBKxPWvaaLFsiWHwHvr2oIZ100=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22748629},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260609_1780922331430_0.4583650290147927","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260611":{"name":"wvke-sdk","version":"1.0.20260611","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260611","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"7d2a5a5f254dbac59094e4662cb69010f0c90cca","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260611.tgz","fileCount":211,"integrity":"sha512-96uC6YjiB9wjGTkwQyNQTLrOrw5Btdwp3YOerTv01dWCQ94KbCDYrUnS8uYVoCVLMXZrEc4qDtGuDbUGhHKbuQ==","signatures":[{"sig":"MEUCIQC5LKnrioO2PRGSuTSWX0moKZg+gBGgkHN99HBTkd4MGgIgdXZhvZ4sgG5FUxI9kU+9X31QW/58eEM1CWyYBVj8VZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22750753},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260611_1781193008328_0.44724163150322815","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260612":{"name":"wvke-sdk","version":"1.0.20260612","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260612","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"d2ac934f80eaa842eb4d65fc137676e1270ab3b3","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260612.tgz","fileCount":211,"integrity":"sha512-Dm8SMaofu6KHhtVNEIM8Ejgsmy+dxk0xilmLceNFhM8WgujMdV3VKoFORo//J/rxef1wev5I6QJEmRctYDQmlw==","signatures":[{"sig":"MEUCIBX1diwzqVCtwLUqRLdoa/iinLxTff45esBk/K5V+kGNAiEAlMeFTpUtkDb20FixBs3iDs5Uy8ztY5WYJVKg10SxA30=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22777471},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260612_1781255334845_0.7104947165473552","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260614":{"name":"wvke-sdk","version":"1.0.20260614","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260614","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"6c56db42b446ab9c059725926403f47dac3a0b42","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260614.tgz","fileCount":211,"integrity":"sha512-Pb4PToyS3vEBpU7p/JAqLwsJpPQT40R6qHDIq0b52J+hq9PH7hMODV5MLNfLo5z6MuAPdCkThrDVDsi95JdK6A==","signatures":[{"sig":"MEYCIQDuKT4IuO7lM1AQuWy0CSA1DQTLgmi5ONx7IUPROtzZuAIhAIkJSjqFiC5lyV+0/2r67PzY1Gn+BRX36JK3ZrfQcH0Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22781640},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260614_1781431523709_0.16057434354389577","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260617":{"name":"wvke-sdk","version":"1.0.20260617","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260617","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"76d652868c4b9066531d87afb10d7b3f13cf06dd","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260617.tgz","fileCount":211,"integrity":"sha512-e0pEhY0QJCRmV4QsbbOM30P+N7tBMVOt50zB5i9KeUNxt1LEry0IW/QrIYxygEQi3YQ9yS3ZQbdiS4qY2xUQ1w==","signatures":[{"sig":"MEUCIHBPY/fSggjZwkt49llLJO4HIHnYLvS7I4++zxEgFG3WAiEAwA/JRtU9M0zX8MEAfIRFoOJ6Ee1POssJiT7roNdHnfk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22793772},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260617_1781680263540_0.5995856313204184","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260618":{"name":"wvke-sdk","version":"1.0.20260618","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260618","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"97ed170a30e6beb7d87e993e8d1f740fa0e53fc0","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260618.tgz","fileCount":211,"integrity":"sha512-bzMWgMVePLhFrxgtuJaO9kTcbEjM2BVVVgJkW0z/DNXZHY9dcCbj2d6y07uxbgLmah1iVUoxcH4TrDC9NASU8A==","signatures":[{"sig":"MEYCIQC+DiMzyqT6X7pV/TIxpcG+1X4vQVzsmF74N66Z74jjAQIhAIUVQkUIcxTft3Fx8dJUmyoL1N9BgCdrHIbTjmocK5Ii","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22805239},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260618_1781786236324_0.43248677795788204","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260619":{"name":"wvke-sdk","version":"1.0.20260619","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260619","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"8b2207f2e1e561fa05ae9c8e83e26e34769e8956","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260619.tgz","fileCount":211,"integrity":"sha512-Q7qjOi7r64q3qljHgm4pu28tJSxor8o1cJAHPceFuDH4PBWBxnwRc0ZhIfCKRcOP05VhaG9/uh8TGxamC08HFw==","signatures":[{"sig":"MEUCIQDbMEp9RN5OsP0rTiSgOMtyFJBgsgawNDBHRnSc9Y0khAIgUAggi4Vbw44u+ZzGOXpwLbuczLnZPZvAVJyoyBSWuv8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22807147},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260619_1781794543638_0.7740262292749969","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260620":{"name":"wvke-sdk","version":"1.0.20260620","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260620","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"0c73130b8d367b5e75ff5610a91914787063deb8","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260620.tgz","fileCount":250,"integrity":"sha512-GAAF13iaHJbQqYfXXjhZ8zFEfFTdZfP8Dau+WUGL/z7P3ONjuEWTN62u/VQPcyqJTZjiUCFKK7aENpo6++xcPA==","signatures":[{"sig":"MEUCIQDrOf5HeZyluatsNnFCB4S7wgdc3azQx17Kb7OLI834ZgIgM4FjsiB6DuRMMjGcF0h8rWCt0lWJOrngdfrOqGmk+20=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22847400},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260620_1781801206456_0.5453404565086521","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260624":{"name":"wvke-sdk","version":"1.0.20260624","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260624","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"b18be02c447f573b5d64ed507275d5c365627cc4","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260624.tgz","fileCount":253,"integrity":"sha512-YMkDJjD4peYvKR5wMkRbqZqR84xRIWMrUMbErB/3QoTFcLNJ9J/nYr5o39HDUXAZBKX6cOzwnJBrJHY22LDNYA==","signatures":[{"sig":"MEYCIQCh+dNCVKvOWApi0HNs3J6f4DEvXXb3BEcF/XQN98Lb2gIhANltdjKP0KByNlwvSVZUn7sqE3a1o+QLzrVb/3RWONCS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23303538},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260624_1782294024018_0.6833956608280591","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260625":{"name":"wvke-sdk","version":"1.0.20260625","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260625","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"dea89c3890e7aba49858c5f3a996f9190629f257","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260625.tgz","fileCount":254,"integrity":"sha512-6SYBoOTdFUenQKbjTIeHWozWTgCMwquql6hNQhLxNHQm+FLiyNIguRmU5nphBD6tDlo07qip7bNtqdUqvWbBzQ==","signatures":[{"sig":"MEQCICVijhjnRRqJJkT2U/JcAWkBptP7mrq1ke0Sm3gQ7SaeAiB1dKpIoSqDlHLQWRRIG63vzJRe85uJvCwQvkpO4VK47A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23307976},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260625_1782310269380_0.14066426814225408","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260626":{"name":"wvke-sdk","version":"1.0.20260626","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260626","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"3dd2eaf63ab8d5cc63a2b85ecf4d4b48f6fbcf0a","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260626.tgz","fileCount":254,"integrity":"sha512-5+coWnUiqItjBHBX/lkfeAcgg+tvrIPohGnSS41/ZdqkSNjeP3Xx0mVmyUGI9oMJUTjAhg4Q2bS68tzhkJtH/Q==","signatures":[{"sig":"MEUCIQCLEabHfKWZa0AoHkR4JFlxb6WEDoWMYhzXIvAEjImS7wIgSqBNySn/v6xXPsHcb60noiqXmzQvrK4PkAYPEcHD6Ko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23308749},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260626_1782400025391_0.4128363738065812","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260701":{"name":"wvke-sdk","version":"1.0.20260701","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260701","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"0d63113791c755f814a403c8a77c1f3d2116ccd2","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260701.tgz","fileCount":254,"integrity":"sha512-PrFl5h1KH35jEGPe4+paV99x9iFxc96tG6buM3dj5gzxDH4Hax+Ul/LluOKMaZcibnLeRbuB2dfNFY5PUmCeyQ==","signatures":[{"sig":"MEUCIQD2l8q+IQAGxsNv3biBSZwvUuXHGbKt+rl6/ATeHSp90AIgdVQ02C5TB6b0AjlNzeS/NCdVi7ovVqfD+FwhZ6QLabo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23318033},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"af01954f9da76502e55e55e8f0ffd6a8b59ffe5d","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260701_1782891854244_0.3848150378112305","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260704":{"name":"wvke-sdk","version":"1.0.20260704","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260704","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"1fca7b955034f5ee9ee22967c6ccb59c6753b295","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260704.tgz","fileCount":279,"integrity":"sha512-+nIvya4F6oFod+2seGK4L4SYobOwhwQLpO+IuKsP/i6I1d+pUXeYeUgAYr/2n9LzWvds/lAYTWmdhdydnLXCoA==","signatures":[{"sig":"MEUCIQCVVX8boYNWb7Sug7sOleYwj0ZlC204gbxG0n9+O8/YMAIgcF0B9GBvCp19kOIqzn6hYKLJFz79Wd7LF3TMcmHghP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23353196},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"6c2991bbb0a336650d446766851c707bf0cd59f8","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260704_1783165729475_0.03864240932458585","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260707":{"name":"wvke-sdk","version":"1.0.20260707","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260707","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"824cbb1898046ab517e68fbfa709eeb370048b40","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260707.tgz","fileCount":279,"integrity":"sha512-NgduZ7UsggfHwZ+C523Wi9vwEgJHnLxAsjj9oVonc0spbkYLdXpJOClQBtDmZR0u5KHtdINEZ5/KrlMYQHHi6A==","signatures":[{"sig":"MEUCIQCPYhe5EpeErc+jX5EHjt2uj284v7WIXRMGQ93jLGLjBwIgeFsvEpkiGejXzQHJaq4LzfDbffwlazUaDkvagsij4nk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23357806},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"7556bf65e58c818828450e885a85dd69978524e5","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260707_1783438575637_0.18944636985749153","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260708":{"name":"wvke-sdk","version":"1.0.20260708","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260708","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"0b7afcdc970f524b6046bd6d4199f3405c945726","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260708.tgz","fileCount":279,"integrity":"sha512-ViOIwQ/9U7xao25XaFoQC4g8KllHodHHdVkr3zV9jOBio637hZrAD76jQUXdVE+BYZNak6KJSVUDd4hvZpVD4g==","signatures":[{"sig":"MEUCIBgvgazMLyMhyABv6Veo0h/OByhbU5EawQJu9knywHx5AiEAgb4DmvvjzTvFLhJvukwIXXlfR3JTzSYq5JgE05nKN0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23360654},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"7556bf65e58c818828450e885a85dd69978524e5","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260708_1783506282474_0.2221602525573585","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260710":{"name":"wvke-sdk","version":"1.0.20260710","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260710","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"cf1451104d14e6fac1160ccabba533f58362e502","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260710.tgz","fileCount":279,"integrity":"sha512-Rc77r5CcB38SCDYF1Ra7OuQatQ61ok1gjhmK6VRNJXrCo1XZT00XRpy7HGqmiVYz8qDVwAWpkllwaOyLSmwQIw==","signatures":[{"sig":"MEUCIQCqfYgYIiElFZgZPixb6Zmqt3t4pPlSzl+r9+oWP5mEMAIgPe8MIcM8cQutN/6ResegXQ6/JCA605ZMApIY3Lkn21E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23360486},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"f5457b8c6b1e954262ce28b60281f5baee650fd9","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260710_1783677067149_0.8576412578497261","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260714":{"name":"wvke-sdk","version":"1.0.20260714","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260714","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"49ecd62e229ec4575dfb7241672b38279dad6aa6","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260714.tgz","fileCount":279,"integrity":"sha512-hOobrLMSGpmB8y2BVodP5HkXMwGk1+YHwBX0paCO1vL82axFCFUUKIQxf9biZnD+FL/nhYceUtXtS9OUj5kiZw==","signatures":[{"sig":"MEUCIQCfqaN7kdasopG5xo6VVN/KK6H2QbbBc5y8eDhUjmE3AAIgK7FcaEWLwxCPptmCaspeahL43GmxR2qBuF5Pk083TnE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23361868},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"7974ab24cdbb841df1028e676d87bb690513dee3","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260714_1784009035217_0.1994607416001719","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260715":{"name":"wvke-sdk","version":"1.0.20260715","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260715","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"47b067ca0571eb6d116ce1515fd460fcee6dff31","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260715.tgz","fileCount":279,"integrity":"sha512-GajZIEvgO9FFJSfkvWXq1oSmjwI8oVHI815AmmrBNc3RHdu4WH1DuLT/KvMOLboQN/DAbhynpkuf9dRNJqJJYA==","signatures":[{"sig":"MEQCIAGDIhjo4kr0ZzGOueTsqqqGiWC3oKYFCay4M6ZRlgAlAiBlhJfx/IUjhTh6NCrAqa91rIBAAfGRiHKKEk4V9o5EsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23547853},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"68e0ed1fcd07c3b28ff751316b668312c2c25f91","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260715_1784057282486_0.09204511604299004","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260724":{"name":"wvke-sdk","version":"1.0.20260724","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260724","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"ed5359af05fbbd2b8f5544e4d1e95252076fec31","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260724.tgz","fileCount":279,"integrity":"sha512-3loBpiSofzrWRBsuuim/6+Gv+vUUWjbgsp1yRTz6pnlunkBs4qUeEtW5nFfPxD6O84xN7v1vShXbM2O1Zh4JxQ==","signatures":[{"sig":"MEQCIAJYok1CleOaEWsfBTupLIqFakcAXu5vL1ADxrvqfeOIAiA19r8pH4jAWr5QDVQ+fDknc9T5C8bjkrCkBVIIAz4ckg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23548305},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"005d297657fa0b2d5167ec1c3f48fd255a66e4a5","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260724_1784860671226_0.23938557263188898","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260727":{"name":"wvke-sdk","version":"1.0.20260727","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260727","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"00fc3f9533ec619a0cf449202ecc3c066fcc447f","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260727.tgz","fileCount":279,"integrity":"sha512-hSPGSKj9eelDRHn/DHsmw0Y+A8pBVxd7u9W9lYhWTIuVJWBzPmeirk4g9qr3A2HHrmeGooqt0D7EkQ7cL8Z28g==","signatures":[{"sig":"MEQCIBf2jf+sdHjE/P+rBIhdxoTS7hIp27fqGT4kQY628kpoAiA0y7hFf2COtxfZKvjFAm5GMAkhldmstdqORWUi7e0rKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23548305},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"027f30a2da61474cb905b315bd9c195ee8f79788","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260727_1785142149878_0.7454789399974968","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260728":{"name":"wvke-sdk","version":"1.0.20260728","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260728","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"504afb9cdcc089c20ff9556c868e819c9cb61c07","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260728.tgz","fileCount":279,"integrity":"sha512-gntb04XzBDb9GFqmp9rSwsMmmNAQL6ZzQBQbABZiVhetKA/RrTWp3gYJ1LhhE2AiJSv56yN7512CdbIkHVdl9A==","signatures":[{"sig":"MEUCIAVTUEPA2BXB1bKNqvTfkH7/AfMtlcsQEGma54pmxV+jAiEA8XERVNQAS+7TffVzpBKwFdu/CSJ0mPYnRR8bEoUI2kI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23553519},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"027f30a2da61474cb905b315bd9c195ee8f79788","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260728_1785229694605_0.10262952063929953","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260729":{"name":"wvke-sdk","version":"1.0.20260729","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260729","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"a7c44932287c542415c0284c14af0f5774abf742","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260729.tgz","fileCount":279,"integrity":"sha512-C6Ja1fRqyk2kF602a8uSUH7W5obTqVze9/iBdYE+EXaWs4y0BDbkTwg8Dz2xlFkQf8rf+ApOviJrvvEORvYlhg==","signatures":[{"sig":"MEYCIQD8pLK02eOcI2nv5rtqh2eOynmaeubBJfnrZNYLKoVvXwIhAL3Zjn4o8SPyJpv/UyHbL19ltDAMuaciQD1bdXNHxoZU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23553605},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"027f30a2da61474cb905b315bd9c195ee8f79788","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260729_1785240503835_0.039752986177780114","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260808":{"name":"wvke-sdk","version":"1.0.20260808","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"MIT","_id":"wvke-sdk@1.0.20260808","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"254848cd469e111cda621b0058b545df1beca588","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260808.tgz","fileCount":279,"integrity":"sha512-YJsCMtiVv5OMrm6AFEhTYgvtMzcE/Tk8NgE60d4uP1C9HJ4aW3hCztiPhcP203Di230mhpdJN5ytf8UqJokWNw==","signatures":[{"sig":"MEUCIQDveqAIiz2VVKXn3TWIwpLO+LEUD4H3Bhy4WdfXJtY4vQIgIQzEOc2t/gziUulAsYGInmDcjkUugWp4moTvzfEuwoc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24251342},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"027f30a2da61474cb905b315bd9c195ee8f79788","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260808_1786192253920_0.5778057034117257","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260812":{"name":"wvke-sdk","version":"1.0.20260812","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"SEE LICENSE IN LICENSE","_id":"wvke-sdk@1.0.20260812","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"a54ed9e62a55e2da302fda0820c637c38c6aed42","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260812.tgz","fileCount":281,"integrity":"sha512-+bti9KC9zYCX4vn1jJYgTL0mNDqTGsdO8p9L4fY+gxLRcnCMqervUj8R+Py6zJfdq3DuclMIqwYEqwB1kSw+DA==","signatures":[{"sig":"MEQCIHh62/LGI9ixMhTmBgpyfCnd7iHWwWk4ear2d/N3RiHiAiAc2I2kfsqBk8F1t13UpXIQdS3cMP8hhcmnCqX4Zb0k9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24267322},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"027f30a2da61474cb905b315bd9c195ee8f79788","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260812_1786533209571_0.8627929501308342","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260813":{"name":"wvke-sdk","version":"1.0.20260813","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"SEE LICENSE IN LICENSE","_id":"wvke-sdk@1.0.20260813","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"68620fa38360d1ffc385e6a8b2fa251f4e5d9c5c","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260813.tgz","fileCount":281,"integrity":"sha512-aF8rrdmbQYIqPj+dlZ29tjyCFF0XHmh/xGnaugsW/vhUFs80j4gCCg6+TeHfcm8PyRl48wsTMmrKOLa2XwRYsQ==","signatures":[{"sig":"MEUCIHBSnH0thiDCVJHtF4nKFKOfNZ1cU5qQ7w4bxtG1NgVCAiEAm29hZxbT3+0734xINrJJb44ImCsJs26+PMdRmt+YW7M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24268483},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"027f30a2da61474cb905b315bd9c195ee8f79788","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260813_1786539068331_0.41679083798310135","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260814":{"name":"wvke-sdk","version":"1.0.20260814","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"SEE LICENSE IN LICENSE","_id":"wvke-sdk@1.0.20260814","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"d454433be53385a68b458ccfd76faa81e908df3a","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260814.tgz","fileCount":281,"integrity":"sha512-tz2L0F4/+ideO6FtX5J0vpY0XInkW+ttgF4GOt08Z6zKumNmGHI6MvSfg4f6CNTeTmWdEhihUwy6J7uODh9VPw==","signatures":[{"sig":"MEYCIQDaBkG/1It6MsqIjqIF35VKmrY0wqMAj3SaVhS0S0niawIhAPjOEOIeGsCyLgOPXKmMAbNlrAC9a0XDZvLwWEmFw+qP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24264954},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"027f30a2da61474cb905b315bd9c195ee8f79788","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260814_1786540076924_0.9368942457199037","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260818":{"name":"wvke-sdk","version":"1.0.20260818","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"SEE LICENSE IN LICENSE","_id":"wvke-sdk@1.0.20260818","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"b7d7fff794092861310c134849bcfe88b9cd1313","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260818.tgz","fileCount":281,"integrity":"sha512-XZFRcdmBsHIO4JorUBKH5suQQhim5bZi/X17P47I+EInDfVCJbwKi9pcGjI6oyvk8djSAlXkHzHRgJuZCsXuVA==","signatures":[{"sig":"MEYCIQCiLRYjp4CUcnKArzH09F6Q7jSjr9JkKLI9Z4S6LKVpDgIhANjDAI9niPOINWYYhTZa2cB/qBIRuu21//Kacmdwvk1D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24266713},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"82b568fac1454f8de0ed1b4499c79410bf46d072","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260818_1787052198502_0.35129767355070785","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260819":{"name":"wvke-sdk","version":"1.0.20260819","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"SEE LICENSE IN LICENSE","_id":"wvke-sdk@1.0.20260819","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"5bf38f44ebeaf9f3b48206fa0133c11cdf96636e","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260819.tgz","fileCount":281,"integrity":"sha512-ZbvsjQYmoM2iLeTa6KSUN8ownOvNfiFXVjSjr4zeAL4XBM+5CWAk5+J58f6agLS4Qpl7PvEnkhIBzh10DSPo3w==","signatures":[{"sig":"MEYCIQCR5TQm1ArbqDonoyLSH16+Nw7v6rFRIMMnD5vqXr808wIhANQpFCIdwDm57gEi4JxdrgxCgOu1iSBWMcTMNCKadSwN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24266854},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"82b568fac1454f8de0ed1b4499c79410bf46d072","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260819_1787053323680_0.3045775155947803","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260820":{"name":"wvke-sdk","version":"1.0.20260820","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"SEE LICENSE IN LICENSE","_id":"wvke-sdk@1.0.20260820","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"7e10ccd257e5a39419f3d878aab25ad855600211","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260820.tgz","fileCount":281,"integrity":"sha512-IcegJHS+Ggd2YOV/86xSXARgv1l5grQDVYTc95cIrFp1e7j84MHQ3ymdPAqd4pxdtYmkmAYnHLdsfdiYl8gcCA==","signatures":[{"sig":"MEUCICby73EU1YK7fpd/e+4sE6KKCWVRTlLuP4x4SRwz6r8fAiEA/8ekQJzN4oiy4cy2i18MEGCki1Hkyy2nTz/9U8QVYw0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24270043},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"82b568fac1454f8de0ed1b4499c79410bf46d072","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260820_1787199426917_0.21004044508528064","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260821":{"name":"wvke-sdk","version":"1.0.20260821","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"SEE LICENSE IN LICENSE","_id":"wvke-sdk@1.0.20260821","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"dist":{"shasum":"c04531ab5c45834124bc274ab60c5877f7a48574","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260821.tgz","fileCount":281,"integrity":"sha512-IlyFfF98z8r8rSNmbIynNgi4gYCA1M0iDgGeZu4P8TuyBGUian2qZElU40oVGcNieXf3u7qWr/jCzYTXOSgnNw==","signatures":[{"sig":"MEUCIFl88LLsEe/WpzwFKGrT7uVNUr3RUWsV4jWbW/tX92JlAiEAtrpziHHjpUV6aTJyQhZkMmGCxXmweOWfB0gaqMNmgPk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24275217},"main":"dist/wvke-sdk.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/wvke-sdk.es.js","gitHead":"82b568fac1454f8de0ed1b4499c79410bf46d072","_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"_npmVersion":"10.8.2","description":"WVKE - 完客开放平台 SDK","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wvke-sdk_1.0.20260821_1787239919741_0.2908353173747893","host":"s3://npm-registry-packages-npm-production"}},"1.0.20260825":{"name":"wvke-sdk","version":"1.0.20260825","type":"module","description":"WVKE - 完客开放平台 SDK","main":"dist/wvke-sdk.umd.js","module":"dist/wvke-sdk.es.js","types":"dist/index.d.ts","keywords":["keyboard","sdk","hardware","communication"],"author":{"name":"Your Name"},"license":"SEE LICENSE IN LICENSE","_id":"wvke-sdk@1.0.20260825","gitHead":"82b568fac1454f8de0ed1b4499c79410bf46d072","_nodeVersion":"20.20.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-TRtJQdI+f3XKZq2gE1J69i+rbsvGgNwVOIdaMjMPs+67sXy56x9yWVsa4CKk2sD8ioBZzgsuGOt1fV3+Aafi1Q==","shasum":"ce64162dea57666c82cb5e9f9fa9352b6b989160","tarball":"https://registry.npmjs.org/wvke-sdk/-/wvke-sdk-1.0.20260825.tgz","fileCount":281,"unpackedSize":24278409,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCPuaTnLnvOagF1HQiKuhlrJcysQtCqCOwe7RvYSvqnbAIhAPuog2/mV1tPCUkasPNkZpl6vXrMMXb1gPRJkbxXFuWN"}]},"_npmUser":{"name":"qi66327893","email":"66327893@qq.com"},"directories":{},"maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wvke-sdk_1.0.20260825_1787630876285_0.8569555429646072"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-21T23:10:27.668Z","modified":"2026-08-25T04:07:56.891Z","1.0.20260422":"2026-04-21T23:10:28.437Z","1.0.20260502":"2026-05-01T18:37:12.079Z","1.0.20260505":"2026-05-05T02:37:44.808Z","1.0.20260506":"2026-05-05T08:08:08.101Z","1.0.20260507":"2026-05-06T10:11:51.717Z","1.0.20260508":"2026-05-06T22:33:28.197Z","1.0.20260509":"2026-05-07T20:59:58.113Z","1.0.20260511":"2026-05-11T01:18:15.490Z","1.0.20260513":"2026-05-12T19:45:59.300Z","1.0.20260514":"2026-05-13T19:54:14.154Z","1.0.20260518":"2026-05-17T20:45:45.661Z","1.0.20260521":"2026-05-21T05:23:38.916Z","1.0.20260522":"2026-05-22T10:11:28.051Z","1.0.20260526":"2026-05-25T20:14:41.887Z","1.0.20260527":"2026-05-26T07:14:05.367Z","1.0.20260601":"2026-06-01T15:45:06.767Z","1.0.20260602":"2026-06-02T03:06:32.090Z","1.0.20260604":"2026-06-03T20:56:11.664Z","1.0.20260608":"2026-06-08T05:58:54.777Z","1.0.20260609":"2026-06-08T12:38:52.406Z","1.0.20260611":"2026-06-11T15:50:08.843Z","1.0.20260612":"2026-06-12T09:08:55.251Z","1.0.20260614":"2026-06-14T10:05:24.255Z","1.0.20260617":"2026-06-17T07:11:04.158Z","1.0.20260618":"2026-06-18T12:37:16.781Z","1.0.20260619":"2026-06-18T14:55:44.250Z","1.0.20260620":"2026-06-18T16:46:46.904Z","1.0.20260624":"2026-06-24T09:40:24.455Z","1.0.20260625":"2026-06-24T14:11:09.832Z","1.0.20260626":"2026-06-25T15:07:05.886Z","1.0.20260701":"2026-07-01T07:44:14.681Z","1.0.20260704":"2026-07-04T11:48:49.923Z","1.0.20260707":"2026-07-07T15:36:16.051Z","1.0.20260708":"2026-07-08T10:24:42.928Z","1.0.20260710":"2026-07-10T09:51:07.626Z","1.0.20260714":"2026-07-14T06:03:55.949Z","1.0.20260715":"2026-07-14T19:28:02.930Z","1.0.20260724":"2026-07-24T02:37:51.658Z","1.0.20260727":"2026-07-27T08:49:10.301Z","1.0.20260728":"2026-07-28T09:08:15.019Z","1.0.20260729":"2026-07-28T12:08:24.266Z","1.0.20260808":"2026-08-08T12:30:54.373Z","1.0.20260812":"2026-08-12T11:13:30.008Z","1.0.20260813":"2026-08-12T12:51:08.771Z","1.0.20260814":"2026-08-12T13:07:57.380Z","1.0.20260818":"2026-08-18T11:23:18.940Z","1.0.20260819":"2026-08-18T11:42:04.192Z","1.0.20260820":"2026-08-20T04:17:07.348Z","1.0.20260821":"2026-08-20T15:32:00.191Z","1.0.20260825":"2026-08-25T04:07:56.718Z"},"author":{"name":"Your Name"},"license":"SEE LICENSE IN LICENSE","keywords":["keyboard","sdk","hardware","communication"],"description":"WVKE - 完客开放平台 SDK","maintainers":[{"name":"qi66327893","email":"66327893@qq.com"}],"readme":"# wvke-sdk\r\n\r\nwvke-sdk is a JavaScript and TypeScript SDK for gaming peripherals. It is built on WebHID and provides keyboard and mouse APIs for device discovery, initialization, configuration, lighting, and performance features.\r\n\r\n## Website and Docs\r\n\r\n- Website: https://www.wvke.top/\r\n- Documentation: https://www.wvke.top/docs/\r\n\r\n## Version\r\n\r\nCurrent package version: `1.0.20260825`\r\n\r\n## License\r\n\r\nwvke-sdk is licensed under the **PolyForm Noncommercial License 1.0.0** (see [LICENSE](LICENSE)).\r\n\r\n- Individuals and non-commercial organizations may freely use, modify, and distribute the software.\r\n- **Commercial use requires a separate written commercial license from 完客官方 (GDE Game Driver Engine Team).** See [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md).\r\n\r\n## What's New in 1.0.20260825\r\n\r\n- Extended `getShortcutFunctionList()` with UK, KR, and JP keyboard-layout catalogs plus the `otherFN` catalog for FN13-FN24 (HID `0x68`-`0x73`).\r\n- Added four firmware shortcuts for entering/exiting AP and RT modes.\r\n- Synced TypeScript declarations, SDK debugger categories and function panels, and shortcut-catalog regression tests.\r\n\r\n## What's New in 1.0.20260819\r\n\r\n- Fixed the CRC of the `setKeyboardBacklightCustom()` end command (`SET_CUSTOM_BUTTON_RGB_END_CMD`): corrected from the incorrect `0xF8` to `0xF4` (computed as `0x35 + 0x5C + 0x39 + 0x2A + 0x00`).\r\n- `setBacklightEffectSync()` / `setAmbientLightEffectSync()` no longer append the end command (`SET_CUSTOM_BUTTON_RGB_END_CMD`) when sending packets, reducing the packet count for high-frequency music-lighting sync.\r\n\r\n## What's New in 1.0.20260818\r\n\r\n- `setAdvancedKeyDKS()` now fixes the journey (`dbs`) at `1.0` mm: the SDK no longer parses a journey from the task string. Any extra journey segment appended to the task is ignored, and the default `1.0` mm is written to DKS command bytes 18/19 as `1.0 × 1000`.\r\n- Synced debugger panels, 10-language API docs, and the DKS protocol regression test.\r\n\r\n## What's New in 1.0.20260814\r\n\r\n- Fixed custom lighting/ambient light packet packing: `setKeyboardBacklightCustom()` / `setBacklightEffectSync()` / `setAmbientLightEffectSync()` no longer split packets by color. Entries are now auto-packed into packets of up to 14 beads each (e.g. 3 different-colored beads merge from 3 packets into 1), reducing downlink packet count and improving throughput. `ServiceKeyboardMK` fixed as well.\r\n- Added an auto-packing regression test for custom lighting.\r\n\r\n## What's New in 1.0.20260813\r\n\r\n- `setBacklightEffectSync()` / `setAmbientLightEffectSync()` no longer throttle downlink data: they skip the realtime-matrix quiet-window wait before sending packets, and the mode command reuses a cached lighting state (luminance/speed, cached after the first read) instead of reading the device on every call, making them suitable for high-frequency music-lighting sync.\r\n\r\n## What's New in 1.0.20260812\r\n\r\n- Renamed the lighting category from \"Kaleidoscope Lighting\" to \"System Lighting\" (系统灯效) across the debugger, SDK method types, debug page i18n, and all localized docs.\r\n- Added a top-level \"Kaleidoscope Lighting\" (万花筒灯效) category in the SDK debugger at the same level as the linear keyboard, containing \"Music Lighting\" (音乐灯效) and \"Game Interactive Lighting\" (游戏交互灯效) subcategories.\r\n- Added `setBacklightEffectSync()` (backlight effect sync, Music Lighting): protocol matches `setKeyboardBacklightCustom()` with a 05 Notify head byte (`0x05` = keyboard backlight + HID + RGB; low nibble `0x5` = write, high nibble `0` = base backlight). `data` is a `[keyHid, r, g, b]` array.\r\n- Added `setAmbientLightEffectSync()` (ambient light effect sync, Music Lighting): accepts a `position` option (`left`/`top`/`right`/`bottom`/`base`/`indicator`) mapped to the 05 Notify high-nibble light type (`0x15`/`0x25`/`0x35`/`0x45`/`0x55`/`0x65`); the low nibble is fixed at `0x5` (write). `data` is a `[bead number, r, g, b]` array with bead number `1-255` (up to 255 beads per side).\r\n- Synced TypeScript declarations, debugger panels, and English documentation.\r\n\r\n## What's New in 1.0.20260808\r\n\r\n- Fixed `setAdvancedKeyDKS()` journey (`dbs`) handling: the journey is no longer hardcoded to `0`. A 5th task segment (comma-separated, in mm, must be > 0, defaults to `3.5`) is parsed and written to DKS command bytes 18/19 as `mm × 1000`; the returned data now includes a `journey` field.\r\n- Protocol protection: the protocol config (`cmd1.0.config.json`) is XOR-encoded at build time into `cmd1.0.config.enc.js`, and the published SDK bundles are obfuscated with `javascript-obfuscator`, so protocol command bytes such as `0x5C` no longer appear in plaintext in published artifacts.\r\n\r\n## What's New in 1.0.20260729\r\n\r\n- SDK version bumped to `1.0.20260729`.\r\n\r\n## What's New in 1.0.20260728\r\n\r\n- Added `setLightingBaseWallhack()` — same functionality as `setLightingBase()`, designed for Wallhack switches with luminance range extended to `0`-`12` (13 levels).\r\n- Updated debug page with `setLightingBaseWallhack` panel (child-mode dynamic linking, luminance options 0-12) and TypeScript declarations.\r\n\r\n## What's New in 1.0.20260715\r\n\r\n- Added `ServiceKeyboardMK` — a standalone mechanical keyboard SDK service fully decoupled from the linear-axis `ServiceKeyboard`; exported from the main entry with complete TypeScript declarations.\r\n- Fixed missing common methods on the mechanical keyboard service: `getDevices`, `init`, `getConfig`/`setConfig`, polling-rate, lighting sleep, and key-group methods.\r\n- Fixed `setAdvancedKeySOCD()` runtime error caused by missing `MAC_MODIFIER_PHYSICAL_HID_BY_NAME` and `BOOT_MODIFIER_BIT_HIDS` constants.\r\n- Synchronized mechanical keyboard API categories across the debugger, website documentation (13 Global / 7 Key / 9 Lighting / 6 Advanced), and TypeScript declarations.\r\n\r\n## What's New in 1.0.20260714\r\n\r\n- Fixed `setKeyCustomAxis()` axis-range encoding to match the device firmware format: `axisRangeMax` is converted with `axisRangeMax * 1000 / 50` and written to the correct protocol byte.\r\n- Improved the SDK debug tool with gamepad testing support, XBOX/Classic gamepad icon assets, and shared HID device-filter configuration.\r\n- Aligned website documentation with the debugger's actual API categories, including interface counts in sidebar labels; merged key-travel rendering APIs into Global Features and removed duplicate standalone pages.\r\n- Synchronized TypeScript declarations, multilingual documentation, and the publishable package output.\r\n\r\n## What's New in 1.0.20260708\r\n\r\n- SDK version bump: sync website i18n, debug page, and documentation version references.\r\n\r\n- SDK image asset APIs (`getShortcutFunctionList`, `getFineTuneAxisList`, `getKeyCustomLayer`) now default to returning URLs without proactively fetching image assets.\r\n- Added `{ includeImages: false }` option to skip image URL generation and return empty image fields.\r\n- Added `{ verifyImages: true }` option for explicit accessibility verification of SDK image assets.\r\n\r\n## What's New in 1.0.20260704\r\n\r\n- Added classic/XBOX gamepad test mode: auto-detects SDK `getGamepadMode()` values (0=keyboard/1=XBOX/2=classic), polls Gamepad API for axes, buttons, and POV data in real-time.\r\n- Classic mode dynamic axis listing: auto-generates progress bars for all browser-exposed axes with semantic labels (Z axis/X rot/Y rot/Z rot/Throttle), throttle uses 0→1 unidirectional mapping.\r\n- Gamepad test buttons now display raw indices matching the system test UI; POV hat supports both button-based and single-axis hat encoding.\r\n- Unified HID device filters into `src/lib/config/hid-filters.js` shared module; debug page and SDK defaults now share the same 24-entry list, added `0x1CAA:0xFFF8` and `0x1CAA:0xFFF6`.\r\n- Merged `setKeyConfig` keyboard matrix and function picker: removed view toggle tabs, keyboard grid now shown directly above function category list.\r\n- Increased floating tester max height to 960px; shortened gamepad mode badge labels; swapped XBOX Z-axis rendering direction (LT - RT).\r\n\r\n## What's New in 1.0.20260701\r\n\r\n- Added `getWinKeyStatus()` / `setWinKeyLock()`: WIN key lock status read & set (protocol 0x20)\r\n- Added `ServiceFirmwareUpgrade.connectBootDevice()`: WebHID device picker for BOOT mode device\r\n- Enhanced `upgrade()`: supports `{ binFilePath, binData, onProgress }` params object & local BIN file\r\n- Fixed `setAdvancedKeySOCD()`: bypass `_prepareAdvancedModeMutation` to avoid interference\r\n- Fixed `_normalizeOutputReportData()`: truncate oversized HID reports to 64 bytes (fixes MT command)\r\n- Fixed `setAdvancedKeyDKS()` / `setAdvancedKeyMPT()` param defaults & task format\r\n- Fixed param default initialization: `selectMethod` now populates `param.default`\r\n- Fixed firmware `enterBoot()` call: auto-inject `keyboard.currentDevice`\r\n- SDK test: 31 passed, 0 failed\r\n\r\n## What's New in 1.0.20260626\r\n\r\n- Fixed `keyboardKeyTravelRenderChange` event: now emitted directly from `getKeyTravelRender()` and `setKeyTravelRender()` after command completion, and correctly detected via `GLOBAL_FUNC_CODE` (0x80) active-report path.\r\n- Reordered global report listener interfaces: `startGlobalReportListener` and `stopGlobalReportListener` now appear at positions 2–3 in both the website API docs and the debug SDK category list.\r\n- Increased `setPerformance` / `setPerformanceBatch` command throughput: default packet delay reduced from 50 ms to 20 ms.\r\n\r\n## What's New in 1.0.20260625\r\n\r\n- Extended `getKeyCustomLayer()`: base layer (0x00) now returns the `fn_code` field for all custom function mappings, consistent with FN1/FN2/FN3 layers.\r\n- Added `keyboardKeyTravelRenderChange` event to `startGlobalReportListener`: monitors the key travel real-time render switch status, including `value` and `enabled` fields.\r\n- Added \"Trip Status\" shortcut icon (`system_trip.svg`) under the System function category.\r\n- Enhanced `setKeyConfig` debug panel: function items now show a green checkmark badge (✓) when selected, with compact keyboard layout (tighter spacing, smaller key heights).\r\n- Updated all documentation (README, npm-package README, 9 locale website docs) with new event tables, report examples, and API chapters.\r\n\r\n## What's New in 1.0.20260624\r\n\r\n- Added key function recovery API `recoverKeyConfig(keyName, layer)`: restores the factory function for a specific key on the specified layer. Protocol command `KB2_CMD_Recover` (0x21), supports recovery target parameter (3=specified key all layers, 4=specified key specified layer).\r\n- Added key function recovery API `recoverAllKeyConfig(layer)`: restores factory functions for all keys on the specified layer. Supports recovery target parameter (1=all keys all layers, 2=all keys specified layer).\r\n- Protocol command `SET_DEVICE_FUNCTION_RECOVER_CMD` follows `0x5C 0x04 0x21 CRC recoverTarget param1(HID) param2(Layer)` format, padded with 2 bytes of 0xFF at the end.\r\n- Debug SDK added `recoverKeyConfig` and `recoverAllKeyConfig` method panels with keyName text input and layer dropdown selection, categorized under \"Key Function\".\r\n- Updated Chinese and English API documentation with Recover Key Config and Recover All Key Config sections, including parameter tables, return types, and usage examples.\r\n- Synced TypeScript type declarations.\r\n\r\n## What's New in 1.0.20260620\r\n\r\n- Expanded `setKeyConfig` debug page: added keyboard matrix + function tabs panel (System/Mouse/Media/Firmware/Hotkey/Gamepad), loaded from `getShortcutFunctionList`.\r\n- Fixed `getKeyCustomLayer` function type classification: all types (KEY/MEDIA/HOTKEY/MOUSE/SYS/MACRO/GAMEPAD/FUNC) now return consistent category identifiers.\r\n- Added full icon coverage for all shortcut function categories: Media, System, Firmware, Hotkey, and Gamepad.\r\n- Fixed `setKeyConfig` hotkey encoding: code generation now correctly combines hotkey base (0x60) with modifier bits.\r\n- Product page pricing: non-Chinese locales now display USD (CNY→USD conversion at 7.2 rate).\r\n\r\n## What's New in 1.0.20260619\r\n\r\n- Extended `getKeyCustomLayer()` return type: added `\"GAMEPAD\"` type for gamepad function mappings in the custom layer list (XBox A/B/X/Y, Classic gamepad, etc.), resolved from the `GAMEPAD` category in `fn.map.json`.\r\n\r\n## What's New in 1.0.20260618\r\n\r\n- Expanded SOCD advanced key modes: added mode 2 (Absolute Priority: keyName2), mode 3 (Neutral/Cancel), and mode 4 (Depth Priority). Original mode 2 (Neutral) moved to mode 3. String aliases supported: `socdAbsolutePriority2`, `socdNeutral`/`socdCancel`, `socdDepthPriority`.\r\n- Added global function `getKeyTravelRender()` / `setKeyTravelRender()`: protocol code 0xC0, controls the key travel real-time render switch (0=off, 1=on).\r\n- Added RT key group APIs `getRtKeyGroup()` / `setRtKeyGroup()`: protocol code 0xFE, format HID + group number (e.g. `04,00`). Default global group 0. Supports single-key and batch modes.\r\n- Extended `setPerformance()` / `setPerformanceBatch()` RT switch modes: added 0x30 (RT active even when global RT switch is OFF) and 0x40 (RT active only when global RT switch is ON). `rtSwitch` parameter now supports values 0/1/2/3.\r\n- Updated debug SDK: SOCD mode options, RT key group keyboard matrix panel, RT switch 4-mode options.\r\n- Synced TypeScript declarations, HID device layer layout support (0xFE), command protocol config, and full multilingual i18n.\r\n\r\n## What's New in 1.0.20260614\r\n\r\n- Rebranded SDK from \"AVKE SDK\" to \"wvke-sdk\" — updated package name, exports, and documentation.\r\n- Added `ServiceFirmwareUpgrade` for custom firmware upgrades: `enterBoot()` to enter BOOT mode, `upgrade()` for firmware writing from URL/File/Blob sources, CRC verification, progress callbacks, and APP jump after completion.\r\n- Added `ClientDataService` for pure frontend data computation: keyboard layout rendering, function map resolution, axis catalog queries, shortcut icon mapping, device model info, and SDK asset canonical URLs — no HID communication required.\r\n- Added `CloudService` with `generateSn()` for batch SN number generation in a given range.\r\n- Added a FIFO HID command queue (`hid-command-queue.js`): commands to the same HID device are serialized strictly in call order, preventing concurrent write conflicts.\r\n- Added keyboard gamepad global protocol support: `getGamepadMode()` / `setGamepadMode()` (0xB9), `getGamepadMappingSettings()` / `setGamepadMappingSettings()` (0xBA), `getGamepadCurveOptions()` / `setGamepadCurveOptions()` (0xBB), `getGamepadLinearCurve()` / `setGamepadLinearCurve()` (0xBC).\r\n- Extended function map (`fn.map.json`): added `GAMEPAD` category with 25 XBox and 23 Classic gamepad shortcut entries.\r\n- Extended keyboard map (`keyboard.map.json`): added AP key (0xFA), RT key (0xFB), LIGHT key (0xFC), and PLAY key (0xD6).\r\n- Fixed protocol templates: SOCD command length alignment, global journey read expansion, sign reboot command simplification, serial number command correction, RS command padding, and added system notification command (0xBF).\r\n- Added axis catalog (`axis.json`) with full coverage of kailh, hexgears, wallhack, and other switch brands.\r\n- Synced TypeScript declarations (new `HidDeviceFilter`, `DeviceInfo`, `KeyboardPerformanceValues` interfaces), debug tool entries, and website multilingual support (8 new languages).\r\n- Added device selection matching tests, command queue ordering tests, and global report listener protocol tests.\r\n\r\n## What's New in 1.0.20260611\r\n\r\n- Added valid VID/PID `0x3879:0x0806` to the default device filter lists in both the debug SDK and the SDK configs.\r\n- Added global report support for command code `0xBE` (offline settings notification). The SDK now emits a `keyboardOfflineSettingsChange` event when the firmware reports offline settings status, with `statusLabel: \"start\"` (value 0) or `\"complete\"` (value 1).\r\n- Updated debug SDK: the `startGlobalReportListener` panel now renders offline settings cards with human-readable status labels and full i18n coverage across all 10 languages.\r\n- Added `GLOBAL_OFFLINE_SETTINGS_CODE` (`0xBE`) to the protocol configuration.\r\n- Synced type declarations, debug entries, protocol config, and i18n translations.\r\n\r\n## What's New in 1.0.20260608\r\n\r\n- Fixed `setGlobalJourney()`: corrected data position from command bytes 5–6 to bytes 7–8 in `SET_GLOBAL_JOURNEY_CMD`, matching the official protocol reference implementation.\r\n- Fixed `getGlobalJourney()`: corrected `setGlobalJourneyData` response parser to read from the correct byte positions (`rows[7:8]`), resolving the zero-return issue.\r\n- Added `wallhack` brand to the axis catalog with three models: KS-Medium (ID 43), KS-Light (ID 44), and KS-Heavy (ID 45), each with `RT: 0.01`, `maxHigth: 3.1`.\r\n- Resized wallhack axis image assets to match the hexgears standard dimensions (`icon` 100×100, `z_b` 600×626, `z_y` 373×501).\r\n- Synced SDK type declarations and debug entries for global journey and wallhack axis support.\r\n\r\n## What's New in 1.0.20260604\r\n\r\n- Added `ServiceKeyboard.requestDevices(configs?)` to open the browser WebHID authorization picker explicitly and return valid authorized keyboard devices.\r\n- Changed `ServiceKeyboard.getDevices()` to only read devices already authorized by the browser, with keyboard `usagePage` filtering and device-ID deduplication.\r\n- Improved debug SDK initialization: `requestDevices` is first in the Device Initialization group, shows the default allowed VID/PID array in hexadecimal JS-object form, and lets users select a device to fill `init(deviceId)`.\r\n- Added keyboard RT full-travel switch APIs: `getRtAllJourneySwitch()` and `setRtAllJourneySwitch(value)`.\r\n- Improved `init(deviceId)` matching so the selected `deviceId` or `vendorId:productId` is initialized precisely when multiple authorized devices are present.\r\n- Updated TypeScript declarations, debug tools, initialization docs, README content, and regression tests. Release validation: `30 passed, 0 failed`.\r\n\r\n## What's New in 1.0.20260602\r\n\r\n- Fixed macOS keyboard configuration writes by padding every keyboard WebHID output report to 64 bytes with zero-filled tail bytes before `sendReport()`.\r\n- Tightened `5C 39 23 ED` working-mode command construction so unused primary/secondary key slots are explicitly cleared instead of carrying template defaults.\r\n- Improved macOS `Command` / `Option` / `Meta` modifier alias handling so boot modifier bits such as `0x08` and `0x04` are not used as physical target HIDs for performance writes.\r\n- Aligned the legacy `HIDDeviceObj.sendQueuedReport()` path with `ServiceKeyboard` so older call sites also send fixed-length zero-padded reports.\r\n- Fixed direct protocol-template mutation in `setKeyConfig()`, `setConfig()`, and `setRateOfReturn()` to prevent command state from leaking across consecutive writes.\r\n- Added keyboard RT full-travel switch APIs: `getRtAllJourneySwitch()` and `setRtAllJourneySwitch()`.\r\n- Added regression coverage for HID output report padding and working-mode unused-slot clearing. Release validation: `25 passed, 0 failed`.\r\n\r\n## What's New in 1.0.20260601\r\n\r\n- Improved `setPerformance()` transfer stability with a dedicated packet interval, progress callbacks, and debug-page loading/packet timing feedback for larger performance payloads.\r\n- Changed the default `setPerformance()` / `setPerformanceBatch()` packet interval to `50ms` to reduce multi-packet transfer time. It can still be overridden with `setPerformancePacketDelayMs` or the compatibility option `setPerformanceCommandDelayMs`.\r\n- Added `setPerformanceBatch()` for batch performance updates. It reads the current layout once, then sends working mode, trigger travel, RT configuration, and safe-zone layers in small complete key batches. `batchKeyLimit` / `setPerformanceBatchKeyLimit` can tune the batch size.\r\n- Fixed MAC device-mode Win/Alt performance writes to use physical modifier HIDs by default: `LWIN=E3`, `LALT=E2`, `RWIN=E7`, and `RALT=E6`, avoiding boot modifier-bit or swapped-slot writes for physical axis performance data.\r\n- Fixed journey, RT, and safe-zone command builders so each key clones the command template before filling protocol bytes, preventing state leakage across consecutive writes.\r\n- Improved the debug SDK setPerformance tools with exact HID targeting, stale hidden-HID cleanup, SDK-backed batch writes, RT ON standalone display, and transfer metrics beside the loading state.\r\n- Added keyboard gamepad/joystick global APIs and protocol coverage for `getGamepadMode()` / `setGamepadMode()`, gamepad mapping settings, curve options, linear curve read/write, and the Gamepad shortcut function catalog.\r\n- Improved global active-report parsing and listener control for configuration, keyboard lighting, logo lighting, and battery-change events.\r\n- Expanded TypeScript declarations and API documentation for lighting, custom lighting, advanced keys, axis fine-tuning, calibration status, and performance APIs.\r\n- Synced SDK protocol configuration, key/function maps, tests, Chinese and English docs, website release notes, and npm-package preparation output for publishing.\r\n\r\n## What's New in 1.0.20260522\r\n\r\n- Fixed `startGlobalReportListener()` and `stopGlobalReportListener()` global active-report control commands to use the KB2_CMD layout: `5C 04 00 94 BD 01/00`.\r\n- Added protocol coverage that verifies the exact HID commands sent by the global report listener start and stop APIs.\r\n- Added LAN HTTPS development support and a Windows certificate helper so WebHID remains available when testing through LAN IP addresses or internal domains.\r\n- Synced SDK build output, npm-package preparation output, and development documentation.\r\n\r\n## What's New in 1.0.20260521\r\n\r\n## What's New in 1.0.20260617\r\n\r\n- Fixed `setKeyCustomAxis()` so it actually sends the axis HID command to the device. Added `_buildAxisCommand` to build `SET_DEVICE_BUTTON_AXIS_CMD`, and reads Layout 19 first to sync current device axis state before writing.\r\n- Fixed `getAxisDetails()` to read Layout 19 from the device before returning results, ensuring real device axis configuration is returned. Unknown axis IDs now fall back to axis 0 as default.\r\n- Added `restoreProfile(profileIndex)` global API to restore a specific configuration profile (profileIndex 0-3).\r\n- Added key function APIs `getKeyGroup()` and `setKeyGroup()` for reading and writing key groups (Layout 0xFF). All keys default to group 0; supports single-key and batch modes.\r\n- Added `setKeyGroup` interactive panel in the debug tool with keyboard matrix key picker, color-coded group list, auto-increment group creation, and auto-select of all keys in a group when switching.\r\n- `getKeyGroup` result now renders group-colored keys on the keyboard matrix and shows Key / HID / Group columns in the table view.\r\n\r\n## What's New in 1.0.20260614\r\n\r\n- Fixed SDK protocol template length and CRC alignment for SOCD, global travel reads, and DKS advanced-key commands so declared lengths match the effective payloads.\r\n- Added `stopLightingRealtimeReport()` for custom lighting. It immediately notifies the device to stop keyboard-backlight or logo-lighting real-time reports and falls back to both stop protocols when the active target cannot be determined.\r\n- Improved debug SDK live-listener cleanup. Switching to another API now stops active normal listeners, stopping lighting live preview also notifies the device, and stopping `calibrationStart` live preview automatically calls `calibrationStop()`.\r\n- Synced TypeScript declarations, debug-tool entries, Chinese and English API docs, README content, tests, and website build output.\r\n\r\n## What's New in 1.0.20260518\r\n\r\n- Added a shared FIFO queue for WebHID communication. Commands sent to the same HID device are now serialized strictly in API call order, so later SDK calls cannot jump ahead of an earlier unfinished command.\r\n- Routed the keyboard command helper, custom lighting read/write helpers, realtime matrix reads, advanced-key delete reports, legacy HID helper reports, and firmware-upgrade command/packet writes through the same per-device queue.\r\n- Added queue-order coverage to the SDK test runner, including strict same-device ordering and continued queue execution after a rejected task.\r\n\r\n## What's New in 1.0.20260514\r\n\r\n- Added the `ServiceFirmwareUpgrade` export for general custom firmware upgrades, including `enterBoot()` and `upgrade()` with BOOT reconnect flow, progress callbacks, firmware loading from URL/File/Blob sources, CRC verification, and App jump after a successful write.\r\n- Added axis detail APIs for keyboard switch tuning: `getAxisDetails()` returns full-keyboard axis `details` and `layout`, and `setKeyCustomAxis()` switches a single key to a target axis with optional range and coefficient values.\r\n- Improved SDK asset publishing by bundling key-layer icons, advanced-key custom icons, axis images, and tool images as regular static image assets.\r\n- Synced TypeScript declarations, npm package preparation, and API documentation for the new firmware-upgrade and axis-related SDK surfaces.\r\n\r\n## What's New in 1.0.20260513\r\n\r\n- Improved `getDefaultKeyLayout()` special-key descriptions for default keyboard layouts: `0xFA` is now AP key, `0xFB` is RT key, `0xD6` is Play key, and `0xFC` is Lighting key.\r\n- Synced the SDK and debug-tool builds so layout rendering and returned layout data can resolve these special keys.\r\n\r\n## What's New in 1.0.20260511\r\n\r\n- Added keyboard global gamepad APIs: `getGamepadMode`, `setGamepadMode`, `getGamepadMappingSettings`, `setGamepadMappingSettings`, `getGamepadCurveOptions`, `setGamepadCurveOptions`, `getGamepadLinearCurve`, and `setGamepadLinearCurve`.\r\n- Synced debug tool and website documentation for the new gamepad global settings.\r\n- Standardized the returned switch values for gamepad mapping and curve options to numeric `0` and `1`.\r\n- Added `getCalibrationStatus()` for full-keyboard calibration status snapshots. It reads only the key-status layer, returns `details` and `layout` for keyboard rendering, and keeps the layout aligned with `getADCSample()`.\r\n- Updated `calibrationStart()` debug behavior so live calibration preview polls `getCalibrationStatus()` without reading ADC or travel layers. Legacy firmware that reports low-4-bit value `2` with high 4 bits `0` is treated as calibration success.\r\n\r\n## What's New in 1.0.20260506\r\n\r\n- Added custom hotkey CODE helper support for single and multi-modifier shortcuts.\r\n- Fixed custom keyboard backlight and logo lighting read/write helpers used by the SDK.\r\n- Synced custom lighting command handling for the latest WebHID SDK build.\r\n\r\n## What's New in 1.0.20260422\r\n\r\n- Fixed the npm package README publishing flow so the published README now uses `src/lib/README.md` as the single source of truth.\r\n- Cleaned up the package README structure for npm publishing and aligned package preparation with the `npm-package` directory workflow.\r\n\r\n## What's New in 1.0.6\r\n\r\n- Synced the DKS advanced-key API so the `task` parameter now uses the final 4-segment format only.\r\n- Renamed DKS debug-tool fields from `bits` to `trps` and documented the 7-bit trigger order.\r\n- Updated Chinese and English higherKey documentation with the trps bit mapping and refreshed website release content.\r\n\r\n## Install\r\n\r\n```bash\r\nnpm install wvke-sdk\r\n```\r\n\r\n## Runtime Requirements\r\n\r\n- A modern browser with WebHID support.\r\n- A user gesture before requesting device access.\r\n- HTTPS or localhost during development and testing.\r\n\r\n## Main Exports\r\n\r\n```javascript\r\nimport ServiceKeyboard, {\r\n  ServiceKeyboard,\r\n  ServiceMouse,\r\n  ServiceFirmwareUpgrade,\r\n  versionManager,\r\n  logger,\r\n  performanceMonitor\r\n} from 'wvke-sdk'\r\n```\r\n\r\n- `ServiceKeyboard`: keyboard SDK service.\r\n- `ServiceMouse`: mouse SDK service.\r\n- `ServiceFirmwareUpgrade`: general custom upgrade service.\r\n- `versionManager`: SDK version and compatibility helper.\r\n- `logger`: runtime logger.\r\n- `performanceMonitor`: operation and connection metrics helper.\r\n\r\n## SDK Image Asset Options\r\n\r\nClient data APIs that return icon URLs, such as `getShortcutFunctionList()`, `getFineTuneAxisList()`, and `getKeyCustomLayer()`, do not proactively fetch SDK image assets by default. They only return canonical image URLs for the host application to render when needed.\r\n\r\nIf your application does not use SDK-provided images, pass `{ includeImages: false }` to skip image URL generation and return empty image fields:\r\n\r\n```javascript\r\nconst shortcuts = await ClientDataService.getShortcutFunctionList('media', {\r\n  includeImages: false\r\n})\r\n\r\nconst axisList = await ClientDataService.getFineTuneAxisList({\r\n  includeImages: false\r\n})\r\n```\r\n\r\nIf you need the SDK to verify that image assets are reachable before returning URLs, pass `{ verifyImages: true }`. This is the only mode that actively requests image assets.\r\n\r\n```javascript\r\nconst shortcuts = await ClientDataService.getShortcutFunctionList('media', {\r\n  verifyImages: true\r\n})\r\n```\r\n\r\n## Keyboard Quick Start\r\n\r\n```javascript\r\nimport { ServiceKeyboard } from 'wvke-sdk'\r\n\r\nconst keyboard = new ServiceKeyboard()\r\nconst { code, devices } = await keyboard.requestDevices([\r\n  { vendorId: 0x1CAA, productId: 0x0806, usagePage: 0xFFA0, usage: 0x01 }\r\n])\r\n\r\nif (code !== 0 || devices.length === 0) {\r\n  throw new Error('No keyboard devices found')\r\n}\r\n\r\nawait keyboard.init(devices[0].id)\r\n\r\nconst info = await keyboard.getDevicesInfo()\r\nconsole.log(info)\r\n```\r\n\r\n## Mouse Quick Start\r\n\r\n```javascript\r\nimport { ServiceMouse } from 'wvke-sdk'\r\n\r\nconst mouse = new ServiceMouse()\r\nconst devices = await mouse.getDevices()\r\n\r\nif (devices.length === 0) {\r\n  throw new Error('No mouse devices found')\r\n}\r\n\r\nawait mouse.init(devices[0].id)\r\n\r\nconst dpi = await mouse.getDPI()\r\nconsole.log(dpi)\r\n```\r\n\r\n## General Custom Upgrade Quick Start\r\n\r\n```javascript\r\nimport { ServiceFirmwareUpgrade } from 'wvke-sdk'\r\n\r\nconst filters = [{ vendorId: 0x1caa, productId: 0x0806, usagePage: 0xffa0, usage: 0x01 }]\r\n\r\nconst [device] = await navigator.hid.requestDevice({ filters })\r\nif (!device.opened) {\r\n  await device.open()\r\n}\r\n\r\nconst firmwareUpgrade = new ServiceFirmwareUpgrade()\r\n\r\nawait firmwareUpgrade.enterBoot(device)\r\n\r\n// The device reboots into BOOT mode. Select the BOOT device again before upgrading.\r\n// RF chip upgrades do not require enterBoot; pass the opened device directly to upgrade().\r\nconst [bootDevice] = await navigator.hid.requestDevice({ filters })\r\nif (!bootDevice.opened) {\r\n  await bootDevice.open()\r\n}\r\n\r\nawait firmwareUpgrade.upgrade(bootDevice, '/firmware/example.bin', {\r\n  onProgress: ({ phase, progress }) => {\r\n    console.log(phase, progress)\r\n  }\r\n})\r\n\r\n// Browser apps can also pass a File selected from an <input type=\"file\">.\r\nawait firmwareUpgrade.upgrade(bootDevice, firmwareFile)\r\n\r\n// Remote firmware files must use HTTPS.\r\nawait firmwareUpgrade.upgrade(bootDevice, 'https://example.com/firmware/example.bin')\r\n```\r\n\r\nThe service exposes `enterBoot(device, options?)` for rebooting the app device into BOOT mode, and `upgrade(bootDevice, binFilePath, options?)` for the formal upgrade after the BOOT device is selected again. RF chip upgrades are an exception: the device does not need to enter BOOT mode first, and the opened device can be passed directly to `upgrade()`. It handles device SN reading, bootloader signing, erase, packet writing, CRC verification, and app jump internally. In Node.js it can read local filesystem paths and `file://` URLs; in browsers, local paths must be URLs that the current site can fetch, or a `File`/`Blob` selected by the user.\r\n\r\n## Examples\r\n\r\n### Read current keyboard config and polling rate\r\n\r\n```javascript\r\nimport { ServiceKeyboard } from 'wvke-sdk'\r\n\r\nconst keyboard = new ServiceKeyboard()\r\nconst { code, devices } = await keyboard.getDevices()\r\n\r\nif (code !== 0 || devices.length === 0) {\r\n  throw new Error('No keyboard devices found')\r\n}\r\n\r\nconst initResult = await keyboard.init(devices[0].id)\r\n\r\nif (initResult.code !== 0) {\r\n  throw new Error(initResult.info || 'Keyboard initialization failed')\r\n}\r\n\r\nconst currentConfig = await keyboard.getConfig()\r\nconst pollingRate = await keyboard.getRateOfReturn()\r\n\r\nconsole.log(currentConfig)\r\nconsole.log(pollingRate)\r\n```\r\n\r\n### Set keyboard backlight base config\r\n\r\n```javascript\r\nawait keyboard.setLightingBase({\r\n  data: {\r\n    mode: 2,\r\n    childMode: 1,\r\n    luminance: 3,\r\n    speed: 4\r\n  }\r\n})\r\n```\r\n\r\n### Read custom keyboard backlight with live reports\r\n\r\n```javascript\r\nconst handleReport = (payload) => {\r\n  console.log('keyboardBacklightCustomReport', payload)\r\n}\r\n\r\nkeyboard.on('keyboardBacklightCustomReport', handleReport)\r\n\r\nconst snapshot = await keyboard.getKeyboardBacklightCustom()\r\nconsole.log(snapshot)\r\n\r\nconst heartbeatId = setInterval(() => {\r\n  keyboard.getKeyboardBacklightCustom().catch(console.error)\r\n}, 5000)\r\n\r\nkeyboard.off('keyboardBacklightCustomReport', handleReport)\r\nclearInterval(heartbeatId)\r\nawait keyboard.stopLightingRealtimeReport()\r\n```\r\n\r\n### Stop custom lighting real-time reports\r\n\r\n`stopLightingRealtimeReport()` sends the custom-lighting stop operation (`0x03`) immediately. By default it automatically chooses the active keyboard-backlight or logo-lighting listener; if no local listener is active, it sends both stop notifications.\r\n\r\n```js\r\nawait keyboard.stopLightingRealtimeReport()\r\n```\r\n\r\n### Listen for keyboard global active reports\r\n\r\n`startGlobalReportListener()` sends firmware protocol `0xBD = 1`, starts the device-level listener, and keeps the session alive with a 60-second heartbeat. Real-time data is delivered through events.\r\n\r\n**Available events:**\r\n\r\n| Event | Payload | Description |\r\n|---|---|---|\r\n| `keyboardGlobalReport` | `{ reportId, commandCode, errorCode, type, source, rows }` | Raw global report |\r\n| `keyboardConfigChange` | `{ type, source, functionCode, configIndex, configName }` | Profile/configuration switch |\r\n| `keyboardLightingChange` | `{ type, source, mode, modeLabel, childMode, childModeLabel, luminance, speed, sleep }` | Keyboard backlight change |\r\n| `keyboardLogoLightingChange` | `{ type, source, mode, modeLabel, luminance, speed, sleep }` | Logo lighting change |\r\n| `keyboardBatteryChange` | `{ type, source, battery, isCharging }` | Battery level & charging status |\r\n| `keyboardOfflineSettingsChange` | `{ type, source, value, statusLabel }` | Offline settings notification (start/complete) |\r\n| `keyboardKeyTravelRenderChange` | `{ type, source, value, enabled }` | Key travel real-time render switch change |\r\n\r\n```javascript\r\nconst handleGlobalReport = (payload) => {\r\n  console.log('keyboardGlobalReport', payload)\r\n}\r\n\r\nkeyboard.on('keyboardGlobalReport', handleGlobalReport)\r\nkeyboard.on('keyboardConfigChange', (payload) => {\r\n  console.log('profile changed', payload.configIndex)\r\n})\r\nkeyboard.on('keyboardLightingChange', (payload) => {\r\n  console.log('lighting changed', payload.mode, payload.luminance, payload.speed)\r\n})\r\nkeyboard.on('keyboardBatteryChange', (payload) => {\r\n  console.log('battery changed', payload.battery, payload.isCharging)\r\n})\r\nkeyboard.on('keyboardKeyTravelRenderChange', (payload) => {\r\n  console.log('key travel render changed', payload.enabled)\r\n})\r\n\r\nawait keyboard.startGlobalReportListener()\r\n\r\nawait keyboard.stopGlobalReportListener()\r\nkeyboard.off('keyboardGlobalReport', handleGlobalReport)\r\n```\r\n\r\n### Read and update keyboard RT full-travel switch\r\n\r\n```javascript\r\nconst rtAllJourneySwitch = await keyboard.getRtAllJourneySwitch()\r\nconsole.log('RT full-travel switch', rtAllJourneySwitch.value, rtAllJourneySwitch.enabled)\r\n\r\nawait keyboard.setRtAllJourneySwitch(1)\r\nawait keyboard.setRtAllJourneySwitch(false)\r\n```\r\n\r\n### Read and update keyboard key travel render switch\r\n\r\nControls the real-time rendering of key travel status (0 = off, 1 = on). When enabled, the device reports back the current travel state for each key press.\r\n\r\n```javascript\r\nconst travelRender = await keyboard.getKeyTravelRender()\r\nconsole.log('key travel render', travelRender.value, travelRender.enabled)\r\n\r\nawait keyboard.setKeyTravelRender(1)\r\nawait keyboard.setKeyTravelRender(false)\r\n```\r\n\r\n### Read and update keyboard gamepad global settings\r\n\r\n```javascript\r\nconst gamepadMode = await keyboard.getGamepadMode()\r\nconsole.log('gamepad mode', gamepadMode.key, gamepadMode.value)\r\n\r\nconst mappingSettings = await keyboard.getGamepadMappingSettings()\r\nconsole.log('mapping settings', mappingSettings)\r\n\r\nawait keyboard.setGamepadCurveOptions({\r\n  enableAngleAdjustment: 0,\r\n  angleAdjustmentValue: 45,\r\n  enableSquareStickOutput: 1,\r\n  enableExtremePriority: 0\r\n})\r\n\r\nawait keyboard.setGamepadLinearCurve({\r\n  pointA: 0.1,\r\n  pointAValue: 20,\r\n  pointB: 0.2,\r\n  pointBValue: 60,\r\n  pointC: 3.0,\r\n  pointCValue: 200,\r\n  pointD: 3.3,\r\n  pointDValue: 255\r\n})\r\n```\r\n\r\n### Read and update mouse DPI\r\n\r\n```javascript\r\nimport { ServiceMouse } from 'wvke-sdk'\r\n\r\nconst mouse = new ServiceMouse()\r\nconst devices = await mouse.getDevices()\r\n\r\nif (devices.length === 0) {\r\n  throw new Error('No mouse devices found')\r\n}\r\n\r\nawait mouse.init(devices[0].id)\r\n\r\nconst currentDpi = await mouse.getDPI()\r\nawait mouse.setDPI(1600)\r\n\r\nconsole.log(currentDpi)\r\n```\r\n\r\n## TypeScript\r\n\r\nType declarations are bundled with the package.\r\n\r\n## Notes\r\n\r\n- `ServiceKeyboard.requestDevices(configs?)` opens the browser WebHID authorization picker and returns `{ code, devices }`; pass `configs` to override the allowed VID/PID filters for that request.\r\n- `ServiceKeyboard.getDevices()` returns `{ code, devices }` for devices already authorized by the browser.\r\n- `ServiceMouse.getDevices()` returns a device array directly.\r\n- Keyboard custom backlight and logo custom lighting support real-time report events and heartbeat-based refresh.\r\n- The package README published to npm is generated from this file via `npm run package:prepare`.","readmeFilename":"README.md"}