{"_id":"@yuuang/ffi-rs-win32-arm64-msvc","_rev":"49-bf0bc64ffd5bd6871fc7f55a98779563","name":"@yuuang/ffi-rs-win32-arm64-msvc","dist-tags":{"alpha":"1.0.88-alpha.0","latest":"1.3.4"},"versions":{"1.0.75":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.75","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.75","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"0c261ee2849cb0f012809646c43dc9b721cc1b48","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.75.tgz","fileCount":3,"integrity":"sha512-JpRh3CBs1hOvY4szY8dF/+c/COsuSk5zR/EhZyb5RHnXc6QwGmhi4WvS9USkrvc4Bwd9o/UcX/K5w1nVQqSR3g==","signatures":[{"sig":"MEQCIGHNQ8Y9NsnUeS0iCEnjdFLdCs9jc1ZRf4Tj+2IbyoHYAiB0BwJINcKAZ0bcVKM+uZLAtbD6cGdoQLslkJbiW6vr9A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":484394},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"a18ad599747f925eff605eaa60577d51265f1c87","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.5.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.75_1715329793549_0.24378615283441518","host":"s3://npm-registry-packages"}},"1.0.76":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.76","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.76","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"f8ceb6665e407d71392d93bdba1a9d3a4b37f064","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.76.tgz","fileCount":3,"integrity":"sha512-1jHuqOU+Y/WvwzD+1aPpNizlvXIqP1mZ9N+oWLMHwJepFw4ANvzlKjzQwHFxprQqn2tS6MiuY4OqNIW4Lw9WrA==","signatures":[{"sig":"MEYCIQDp3vmJPLjU1hvwWRKIun0kdnjdjuvzwavWMVMZf/ujLQIhAO0tz8cjMPzdjBSUF4z2Jdut2ue1cahHsOvNsoLv9vra","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":482365},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"14e8577271f0d732d8c04782bca6c1159383fda1","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.5.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.76_1715839335204_0.22775674904174426","host":"s3://npm-registry-packages"}},"1.0.77-alpha.0":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.77-alpha.0","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.77-alpha.0","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"fe2f68f26740710ce5d0aa069820b9da0c885f7e","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.77-alpha.0.tgz","fileCount":3,"integrity":"sha512-VMe8a49kfOahdxPn1c5mWiklrDiWY2GsAN1wVZpSgNCL8Jrgs5l/q0quaeGsCz3YsWDAdbAamflbNnYPKoyp9A==","signatures":[{"sig":"MEYCIQDokB3PHAI7AZLtJtnbgSiZhiswMgKIzrWPdDYrWsj3mgIhAJsWcunjd+wXd6Y9MOh4xDQFg+8JD6JFvVMZp2/5iAdN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":515069},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"73500af2598f4cffc5b643d7e3007c27a08aa88e","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.5.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.77-alpha.0_1716199264003_0.10289715870372484","host":"s3://npm-registry-packages"}},"1.0.77-alpha.1":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.77-alpha.1","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.77-alpha.1","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"b01d3d165795188ed5a42e70e8e89b1b307317ac","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.77-alpha.1.tgz","fileCount":3,"integrity":"sha512-iSCytMvn9Gj1GfuhIs1j2ULtL/fRgdVuxITtpUz5oBdJ0DzkKLcqCgTspwopy06cwl/XMwmCQcf6gfLL9BdUlA==","signatures":[{"sig":"MEUCIQDMXs8VDDFYeHo8GbTlFH2SD8jLYO1agOgRjI2YkzpL0AIgQsu21A87hI8RxPt0ZlKSJ3zSO7z1DEzqtVRPhsRPiX8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":515581},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"6930e31b809dc369864012b087da1d8506906afb","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.5.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.77-alpha.1_1716205018554_0.09884406188655492","host":"s3://npm-registry-packages"}},"1.0.77":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.77","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.77","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"83a9a218c3feaaaa73dc4adf8a10987d1a6ebd0a","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.77.tgz","fileCount":3,"integrity":"sha512-qR4fc6YUPMWyjnv+/oMu25fWE00NhI8u4VVBm2IApR+/B8bwQdmsRAIFC2r+KvOdauTPsjEZXvvrXQHHebLxvg==","signatures":[{"sig":"MEUCIAZlx9b9Bzb56WXn4B4CimU4xRxatfikyGsk2ahVyeOaAiEAsB6OkcbO7/wRUYGoMLQB/B1uhq6SRi3YnxQ56dcIzxo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":516210},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"36f7d7ba2b5be57e758a79e55f736001a845f467","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.5.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.77_1716274513863_0.25222799519477723","host":"s3://npm-registry-packages"}},"1.0.78":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.78","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.78","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"33ed3c0ba6fb94fe6d5bf0037c22d3826bc34425","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.78.tgz","fileCount":3,"integrity":"sha512-KvYmMMgwG28i3E1felb47lXLHGljeO5C+ocKwV/kAr78WO8flc3AAXLmrZILrCuIYg/qtnmc829lGxgIHbVybg==","signatures":[{"sig":"MEUCIHbK+YvLfYeFg0cN/I7tgLV55ayV28gdJWZDR7sR7v0sAiEAkMkidw6cdKKAaMk6xKpz8xdNJi+nNgQM/S7eoSc8X/Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":518830},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"2aaa344707a4578d887045af24f11e17366f9d12","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.78_1716969587335_0.2936017830722173","host":"s3://npm-registry-packages"}},"1.0.79":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.79","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.79","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"e54372047bc2d7479a32bd12a70dfadbbe955130","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.79.tgz","fileCount":3,"integrity":"sha512-r9jiOxcEBgqKV5xsLn8VnEQ68boUgoMvPtfbT605o+7L9EXlQcazFVaoY2iajnUor+8zUjFxR605WpOMjA2TKQ==","signatures":[{"sig":"MEUCIAtIBYHZhRuoxR7pwRX2swsuBy5jp/iD/0yFXB/xB+2OAiEAogK5sPFMOfOu0R8jy6jkD3W1Z85u25N3+WdpNA1QzuA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":521419},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"013e09adbb6edb067f326c4103ba4887d895f5a1","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.79_1718100267236_0.6647495681441538","host":"s3://npm-registry-packages"}},"1.0.80":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.80","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.80","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"dc119b7ecaad89edf0047610fb31428dc99f89e5","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.80.tgz","fileCount":3,"integrity":"sha512-cyq/aQYzncfe1aXo+jEoGLzGPH2Ec83clm24HAYlgsuCYAGXq9i1At4Fa3eK6jbHrue/9o2QMNCjqhS1m66gtw==","signatures":[{"sig":"MEUCIBTjjg/4vFCvrdOd6/zcEqP82HYkoR13af7TAcrRZO9KAiEA19hlIHOsuMr+FQv5l9JwrAPP2AY2fN1Lavzwhsbz03s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":521395},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"ea96e65a9288ce7930cab2793d7c405e9ed5225d","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.80_1718266410975_0.6877730537170696","host":"s3://npm-registry-packages"}},"1.0.81":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.81","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.81","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"52cbc28dec0620cfdf55f6f419b62e9638f6e498","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.81.tgz","fileCount":3,"integrity":"sha512-az0ZlCNhM6L2ZobRlpkJdsbUuKuo+E2GwE0tKsqSK3m0D68EPwkwU1qNHhSO4g9FBrwV/tGsIj4lc3qcxAOWCw==","signatures":[{"sig":"MEUCIQDc0hA6FozDouEgPXsUGLUtcwTfwZ+s+2AO3MWuhN4HAgIgbeHb4sZK4u/wS9ID0EFlxbKs7MNxUCTfAvQ3Armuwp8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":526540},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"3514f98489fb930e3d31c7aae3d820cdeb0e71ee","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.81_1718371955361_0.4077997172326422","host":"s3://npm-registry-packages"}},"1.0.82":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.82","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.82","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"f3b3f5733cd67b502ef196b1ff56f72ae3557592","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.82.tgz","fileCount":3,"integrity":"sha512-NYlqIZimUALqasd5pd4waY7nFr7Sr7nc+hrVR5r8BmLVMdjf32edHDhMoAnnmECAcf4+6TxqMAAVnIvNgvNzhw==","signatures":[{"sig":"MEUCIDqLtT2l8XqpohFf773UBhLFsLqlBAKhhvtunrlOWQVpAiEA5qNNSZOzkV41wB0vMAF7pPeqMd3F1JNibNoJFzyz8Yw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":526540},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"9c40c4f5799d64a75dd104fe99b740e6262bc59e","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.82_1718451504427_0.1539953126340079","host":"s3://npm-registry-packages"}},"1.0.83":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.83","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.83","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"d7af8bad1f5dc136b5d809866cff8db87da13dd6","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.83.tgz","fileCount":3,"integrity":"sha512-UqXhXhOSWGGPUa82D3m8fYiGrCFD2ATXbARyyzUu/JvoWvxlOcQ6Bb0WcD0HSj9h0Ys/vB2me8et7qBmbwQ5gA==","signatures":[{"sig":"MEUCIDbGt1ZEmtgZAErabWW0GRPWMiI7eZUZBnlZBGOewGQoAiEA+MQ5AJVsjFvFvd9BctqvaryIFWnYrl99frXVzJKh524=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":527052},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"4578928c43fc4a8357f1c44aca4ff5432ca09840","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.83_1718883125761_0.9253331201331709","host":"s3://npm-registry-packages"}},"1.0.84":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.84","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.84","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"2bd9b5913582b5f792b915541a92cab019264033","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.84.tgz","fileCount":3,"integrity":"sha512-CdxBmRctEJ8ZKStBUQn9TxUlyVOOHSAXihNsv/jPNoR3XMRmuFgp0MgJaSjKv+oZ52jZygakRnRIlT9Lt9sLBQ==","signatures":[{"sig":"MEUCIQCJdLfiV74U930ec7SvJ4dWh7wOQuoswpinyw9aWG2t5AIgQzuNSn+N1M2rdBH83aa6W4mIM99k1r2ntwbdi8pwYoE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":567501},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"158f5c8f777111b64c4377dbae987d3166667fce","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.84_1720948478388_0.17793606039819587","host":"s3://npm-registry-packages"}},"1.0.85":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.85","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.85","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"516d0efd904844451e7143ec104efbc5a1596200","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.85.tgz","fileCount":3,"integrity":"sha512-3yFXcAfCSQ4UhkXjolvVXVO0IAhdN/tARzQ04gLn+bSbGG6Rmi4QbjYcUAMyxEVUVPf2kFif+7+KuPDg1UVeaQ==","signatures":[{"sig":"MEUCIFW40GTboB9j2KPiH291aYnOoq3xomfdKr6ipaf93TS1AiEAyYficeeU8DpRSapOg6yZj5W/7uZpRDoyDq6xDQwYCtU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":568013},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"7d0c13054b73468c56adf1203cfbeae4e5f4fd86","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.85_1720951564449_0.8164302228755191","host":"s3://npm-registry-packages"}},"1.0.86":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.86","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.86","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"76137088d90a280c03a02b56833f43d6ed6bdc6c","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.86.tgz","fileCount":3,"integrity":"sha512-2d+dtCXtVJTJvXneCKVo7pxmMEG7Il5iE6KGMk8sQ5eFGOQr2EuVMhZ43C2/vYukAQ0NoWjJXFZYxhYu6ZjbVg==","signatures":[{"sig":"MEUCIQC/CYoc485vpcCHdXg2IDjZxzZGpPImBjD3pDfwB2xLCAIgXfSRWEOqG1S7RRZHeEJWVzyRc9hJs1lVtONRkWJHxa0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":568013},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"e217b23dfdb48f308f815ff76339138e99586f36","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.86_1720959443452_0.8307108102788361","host":"s3://npm-registry-packages"}},"1.0.87":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.87","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.87","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"3a57bf3f05ea45c867aee4d0c1cefe65d5836b84","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.87.tgz","fileCount":3,"integrity":"sha512-FAoc/+fSxPy5l5AXhoB0GJofCrX7ERL9jYJgVbW3KAJQP8/+Eo8qGELlFPvHW+w5sVDk10iORK+4/hEAMvvm8w==","signatures":[{"sig":"MEYCIQCs+gXALRHqyjZW7fNKGifmn5VYnwebC+9A2Xrc3xAuLwIhAN3kL31TwDkxtam9TXzZ6Twm/4VHwXIP4zLc22wRc67L","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":568013},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"b2d07919ae4fa737fa8dea539802fc40e1636e25","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.87_1721725003707_0.8354016616087485","host":"s3://npm-registry-packages"}},"1.0.88-alpha.0":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.88-alpha.0","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.88-alpha.0","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"7dce295bca679dd6f8078e4b7dac040187924680","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.88-alpha.0.tgz","fileCount":3,"integrity":"sha512-fitkhmizQ3aQwKWF0cXeHaUK5A3kHliWlAUjzv82My7+Qd9XAG4QjXhqx5LeyxWRq6f7z6kkuDpOXjFAT2MCPQ==","signatures":[{"sig":"MEUCIGVlNDksT71m4shXhNXIBalbTXo9/xAo6smueDvkqktIAiEAt61LiVfP/DbXrHMEem0GF3h0LrLz3ak2NP8Tho9RNMY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":568021},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"b5eceaecf6e362df79d3ee05e065ffd79b3d6890","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.88-alpha.0_1721807659733_0.8659502806878772","host":"s3://npm-registry-packages"}},"1.0.88":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.88","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.88","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"f1b1513e63a6db4e0ca37aaee184ee159a05a2d1","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.88.tgz","fileCount":3,"integrity":"sha512-+rVXoSRcQGjeh8OKmz68U9vaQVL2VA7vWctQhg91Oppnhb+lwBaGRoXCau2wpSFYka2uMY8MCfORAakQtdeKrA==","signatures":[{"sig":"MEYCIQDkkMg5SJn5JlUn8W9ptYyvMtRbOoOszlzMKUDmbejY/QIhALye8v7itlmmyoYQT7sclN1AYCGRilS2/34GcuB/4u0I","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":566989},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"999ae3eda678b27f9c2f3a2affb93a6d7c49b492","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.88_1722082830119_0.09518782829386008","host":"s3://npm-registry-packages"}},"1.0.89":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.89","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.89","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"cea71e531b93556eca672659b763f5751e3c2475","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.89.tgz","fileCount":3,"integrity":"sha512-dIMa7QIoZNWokyfwjvOwDKK7ivpVGb8/7Ajo+W8d8XBt7TwbhUTNhfqgcVt3GGlU1N41LFvvcgF7/KOkaSvRCA==","signatures":[{"sig":"MEYCIQDtOBeP5jXj0obyo8AQZRDXYCw/HsfGM35Fmvsud6eWOAIhAPfV+8xutRK5Z7uvixZgOcCBi7abip8qq6K4EZwBqX6W","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":568525},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"a65f0365886e770839275e93e7b18f36148f7569","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.89_1722698479824_0.9679051662246427","host":"s3://npm-registry-packages"}},"1.0.90":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.90","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.90","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"56740598ac38e432eb34f5f96e338d4461fcf2c9","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.90.tgz","fileCount":3,"integrity":"sha512-beY1LnWv7K9+o6GsZYTGu5xzX+jgiSV39BuUuoIqjqCuZEGITWbjhYqKtXEK7sLgRdhvlkJiokFTSV0XEYO0Bg==","signatures":[{"sig":"MEUCIQCVZRc+TFyCZMXle+MY2TwxIaMj2VJufSQX1kvu2m9RtwIgWjqO9hRi4Iakx+UbUR05toOReaHIQacI72V0VxobsyU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":568525},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"24c1f54f77587f5541d391cec669fff967f894db","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.90_1723448102704_0.6262792502223578","host":"s3://npm-registry-packages"}},"1.0.91":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.91","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.91","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"0bbd9d663f167bd35677982119eca9be31416968","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.91.tgz","fileCount":3,"integrity":"sha512-BKtfrutdf+6zT1hW40+ZYot/1XotMoFtw64K9EXZn50CcUCVDukShWHVnjwRNZPn7JXIO23L9GGWLn3VQHyk3g==","signatures":[{"sig":"MEUCIQDG8yyoabnHzZnKkcwPPNVc44iMkswR8aH8TIBWL/of7QIgBdObUP7KE+DIKe55CZdqB2ioEeivyv6yZFyhJ3GwSy8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":569297},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"bf49be96054cb59e98726e699f00fe19a2b78520","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.91_1724830370184_0.6395006190889931","host":"s3://npm-registry-packages"}},"1.0.93":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.93","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.93","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"c1d28876a860be20df533fbec1a6805defadf923","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.93.tgz","fileCount":3,"integrity":"sha512-+8YCMUQk+0vFdT8tCXJx1+pBAiy3647SP0SOV++LOgorPpWC7obHplY3r3FfvecuVV8JZksNQTfAnO0Gh0TsTg==","signatures":[{"sig":"MEYCIQCoQWCtK7bbWhG5pBFgDR0TxC09+m6GQAWai6ZMS83igwIhAMb3PIZJIGk/jk18+f6iL4F2Aj3pkcZS5rwXEyRVRzLP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":569297},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"65a269adcd9e059c8d40637d6544299d371f999a","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.93_1726066139116_0.653735185127915","host":"s3://npm-registry-packages"}},"1.0.94":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.94","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.94","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"c49b5dd99e25f24ecc08b6ceadb312802577fdc1","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.94.tgz","fileCount":3,"integrity":"sha512-xPiACwCWOhmH3OyTEGQr453atXePcGv35bdC9fB66+SsbUe96GklyMDk7jhnsFujm7CToDWYZM8rDOjKlITubQ==","signatures":[{"sig":"MEYCIQC92nbgmYZZ7uveOrlSywvPvWdUiPHvV9sKFCOP5qWUrQIhAOVr+W1+5n/NJtTqPe5PzfM9g8y7S8vev/X/oE2QE+pz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":568785},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"6d636964084516d6088b5037261e780fcd407eae","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.94_1726240553632_0.3529863551858765","host":"s3://npm-registry-packages"}},"1.0.95":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.95","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.95","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"6747e643e9634027f01eb65d97558c07d1f9322c","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.95.tgz","fileCount":3,"integrity":"sha512-D7BOQbmLP3G5oNewToYqecCIAH8fbtL1N+J0tGisSau1LZvBXkPrUVf0qwIPU5UMN3FkqL0m5xtggQtiQiMdnw==","signatures":[{"sig":"MEQCIBpfNeVjNA18XaxE0YppPBQQ0NsGUYQ+rPE40NWstITJAiAdnVCBgUF0lASe+CODmrYZd7RUydZKKT07BWfxppNWRw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":655335},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"9824498504afb6987d4fcee1dc54991aac48f7dc","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.95_1726586910048_0.8283865921661779","host":"s3://npm-registry-packages"}},"1.0.96":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.96","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.96","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"8eda9e87718a80c43c9a661b003669853bc4cae6","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.96.tgz","fileCount":3,"integrity":"sha512-lje7z6UVMigJTpVW6kRHt+od76CEnCbFDA1tsn0Bsb+bUDKIP3/jsxoKoj0lECV1SIxn8ABKiL76AkXQXrQiDw==","signatures":[{"sig":"MEYCIQCPKtc0GtGnplrCW3S4dLuBNay6wbwkufrcu0t9HtWPWAIhAI/UkyOTnwWejePEYIsveAYdy8ywXPN6xfpzna0RQrHg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":655820},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"8adeb2d2cef713249aae29a65dc525501f70aaee","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.96_1727014408485_0.6707142666018158","host":"s3://npm-registry-packages"}},"1.0.97":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.97","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.97","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"d0f04cd4a8333990fc6a64460d593869fe5562a0","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.97.tgz","fileCount":3,"integrity":"sha512-v/r3B/iIXszRFfj0qoVUHRDmj8mWMOETprVQ/kLgKkzbCg+amhYHPcXB3gW5fRF+3DWwajFpDUxXtAyo/syRkA==","signatures":[{"sig":"MEQCIAKq4yuQKO7+T+/btTcf+6OaTcXqH5z9o7k2fPvOb8neAiBp2XRYlQzLSm/+K/rOOb2Eya1jHCBcdOcq/4nIvdQI8Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":650717},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"942486dc39e6696ca40a956e54305d230c35ff9a","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.97_1729615129509_0.22075810821574926","host":"s3://npm-registry-packages"}},"1.0.98":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.98","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.98","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"e2b0903656a2f9bf4f5359f80952ca86a547e78e","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.98.tgz","fileCount":3,"integrity":"sha512-aDBjZeM+8/S5m4efEFSBRw3kk5ANg+Gfxln71qS9SHIKVXZvJ2nvLkz1Amf1gVvAQlz8RjLglh1b1tnBaHO8cw==","signatures":[{"sig":"MEYCIQC9EFR6GZ71YElfQzdl35I5DvqDAPqD5EPddWROHs8uwQIhAM0VTIMelvcBylp5ZEUQhfCi1FpIGg/Pd/APWkMrQISL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":650717},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"620e87cca8909b2431b4feb4e879ebdeeadc8666","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.7.0","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.98_1730201391918_0.28063885164282665","host":"s3://npm-registry-packages"}},"1.0.99":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.0.99","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.0.99","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"a0aea029f710628e1c295f2c6d7cf81cfdcafb12","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.0.99.tgz","fileCount":3,"integrity":"sha512-jNqT8c9ksih+Kck8TsH/dy4jAhVtX7860wc0homNV/rb/M/+8MSNipMJd2W6p5ead8A9G1/8mDfeggs7eQUY3A==","signatures":[{"sig":"MEQCIBMOIR1qF6dCqc8qce+vV48vxz/545WZDUbFewsc4YqQAiBSruC6By8evwiqoWvndxNMgBWyvsYrIFV7SD38d2z2eg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":658909},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"465f7d454a8ac1f9f15a95b3fed5f0c2c16e0f31","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.0.99_1731849627895_0.3161624424887288","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.1.0","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.1.0","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"2a01127023ded17177f3ffe195d6a738076b7b58","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.1.0.tgz","fileCount":3,"integrity":"sha512-NCORD0dlNqk7V0oUGVE4fqraUxMkB6oM0qu3UItDqfZzVfRB9ZCJ2YxeFnq8/QdJGBfM3JxM1Pyj8NRVEoMl4Q==","signatures":[{"sig":"MEUCIQDSz95BSmFUUonrVZ0BtBHJ09ANzVJL8zVfQSDU1HjW2QIgP64T5c3jutiZEAKALG1ITma4zL8KVBZfji6tyBssZZ0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":657396},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"53247d1ec898e78418d676af3f7c478255bef723","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.1.0_1731860950629_0.26975514917124843","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.1.1","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.1.1","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"cc1832287177fa4f2973b8122aaab972b9349685","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.1.1.tgz","fileCount":3,"integrity":"sha512-sqA3tM9g/kH0T86iNYD8imMaskCaFCeW7K+Dr/3Mm6atkvVOcg94n8lHq54MU5wWOwKBgIfGtmVyQetUEhOO0Q==","signatures":[{"sig":"MEYCIQDAHwlZdkeMo5qBZHYJ16akK9OI2+oHs6oPZN+U8+LCuQIhAKkLSzCCfGpUACcRLZlIV6jqlheScbH1zaz/4ZTwJtWb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":660490},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"3d68779b51cb513a449f3d4447ac103ea21b8b5a","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.1.1_1732004672253_0.0950441053265012","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.0","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.0","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"fec0d95fb2971425540eff4569761f4ac63ba6d0","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.0.tgz","fileCount":3,"integrity":"sha512-1tgxhrTsZxn0stGsBmKKa+Mecs0RwHqaqbLAlInNEek9C6DprlvQecNnTWveVEcrfP+LJBJKYSJUpkYfq/XEPg==","signatures":[{"sig":"MEUCIQCfAxPoJk4pJjH4RKBW4YnpwsEZimVb+17DGypRk4oLMQIgPT9zpojBHzalke+uaXNyecD6b9vO+OHA8yvI8H+yxVU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":690776},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"ab93b635b55a5c7512f98f86e279d37ae01fea01","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.0_1734951744230_0.2628525430324835","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.1","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.1","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"f9348132f5dae348ac7233bd5390c594ccd11a4a","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.1.tgz","fileCount":3,"integrity":"sha512-OggtWmXoJqW7s4BU/XsvxsrB2hEb7yOi0OUsW+cR35vct54QdrsyJCDd2AXmSGjVt//XKSVmLlhhaGxHnD0uaQ==","signatures":[{"sig":"MEQCIEltrSZGMOhkGBXzq4aoQgKASUs3On4EXHov9b8UgZZ/AiBj9Q3fMvJYW4DyyCVuQ+vRQrD+1fkDprQ2M6f+clmUvA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":691800},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"cc04e47944750b535f1af07630c35405bc71fa89","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.1_1735031927851_0.4543364487196062","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.2","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.2","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"e704d8a7a0b64111cd10b3bf6e6dbb2d3bcd4ebc","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.2.tgz","fileCount":3,"integrity":"sha512-wTkogCynmWj2U7dcOZf12dSOF2tB4EC9e9MJetCmEG5WUhHNc+UYHu3ZG9A06BeMM4Oz9sCZWvZv77XtH5WlUw==","signatures":[{"sig":"MEYCIQDDFUWOIUs3jWDGIGxDacWqYDv3VdPxfSIf1M73dvVZPAIhAIZS+7RkWZ2nGJi67ch/QED73Pf5sJLcRued9QODoHg2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":691800},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"c74968dbb18bda01541d0a86d6e2e2e04e0a407f","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.2_1736266115133_0.14544924442918683","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.3","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.3","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"1beb1935389bcb640c428d5cc8ac4a8b7be91e33","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.3.tgz","fileCount":3,"integrity":"sha512-b2n0dfG5LyUPK5OixoBxgohIpeMQ8sfdv4Ge9FNTPiGBKTZ8IUIWCe3jrZM8Ks7V6XRC6MHIDva0sCQfLbSihQ==","signatures":[{"sig":"MEYCIQDZ6AcZ98zmL3LtfhHof9xj3BvIhnBffM3Tl8aGR2YwrAIhAJogkd9/+e8i9T8iMHrD6l5bd7HSfqg3kW+/10xdlwGR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":691800},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"62c5e1d1c74dd8c010fde63f7bced7d8abadfa1d","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.3_1736670342336_0.4988644647425753","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.4","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.4","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"ea15ab7ea2031d276adba494a51a2e7da26f12e4","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.4.tgz","fileCount":3,"integrity":"sha512-auVhC8DX9346FohMBr+xQzoQZ61ymskeFIe5Wh0CTU7e8zs5ltC3WaMKiibMQmlFjcWXhMzZ79YfzHOv2B69Cw==","signatures":[{"sig":"MEQCIERkLpZg4UU1iSAu8ULcilHdeN2p9Hdt0/GgcwaL6+YjAiBl8TIA7QUxU/wl4E8uytB4vVKU+0gQgDwBCGNFwDnkqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":700021},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"2c3e37b82b6fb6b63cb1673792764c1af7422d61","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.4_1737721336917_0.12176397411573636","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.5","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.5","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"0d636d9b34b193564240068e7a187e5a2a6d1b58","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.5.tgz","fileCount":3,"integrity":"sha512-LyFU4hUAHH8oj9ol3gpRfxl+zMiltd8majHNebAkvAo8IPksrb0SGtbJ0a86hEJVXsso6OEe+IACRqraDWC7yQ==","signatures":[{"sig":"MEUCIQDKDWsht1gqCfxgtiwWwTgA+c8L5FFm7SfupufmlUf+IQIgePuZ5Of4V5CHTGdl/m/Q+FJ0sq0f2vwNndeasn02XKE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":700023},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"eb8c81c17de167c6f5431bbd67dbe1035425800d","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.5_1739035650120_0.4744831294288179","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.6","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.6","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"2f974a76a2c750e9164a9b27b9d6f87fe1c3cd91","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.6.tgz","fileCount":3,"integrity":"sha512-J8FQXcWiFOxJqYpsp97log0vr8sGA8KeuALwuPHEMvW/fiJtiN/ZOK8CwEHMcuDuS8U+IKDj05bQ4LuHeGEIKw==","signatures":[{"sig":"MEYCIQDRz2eC24ldsIpuyk2VSfJu7lWkFC+BJc1bGzQdvuHXWAIhAMF7cFQzk0SXrC+/xZ6D9BPuatDezedenabMBYp0wbDh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":701981},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"7ac71bf385381285022c0285949bb827fdd9c3a6","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.7","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.6_1740116452411_0.7065590359121081","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.8","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.8","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"1fa17d2b34664281fc03445ef96cbd89af274b41","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.8.tgz","fileCount":3,"integrity":"sha512-Rf0uTFm5cYzJZjOdWNuR2AH+uUyCLEEPcZzeR7GbylMEVvUtpYWjp9c0E4ODlmCFILjcgjj2D32UuszEGubcjA==","signatures":[{"sig":"MEUCIQCjLrr6A6utwhGspKcURUnMhTa6Uqzr6g/pFAQ0G3BdIAIgZkRw6aOuq0rPue+9yDY3M1CZg45dhTlz5RVOyceM63o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":701997},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"5cbf7246b787804cebc5cfce74b31c4f3ef3beba","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.7","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.8_1741242548671_0.9804356696865417","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.9","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.9","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"d61f1b6072307ae06a668bdfe72d75169044365e","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.9.tgz","fileCount":3,"integrity":"sha512-kyq4gHqM13WluChEqFt314E2eSoXQEH0SfUXD3U0kd+rj7aZUQiWhAYKipghJstdVfjEb3sCPlgiuGleRC6nQA==","signatures":[{"sig":"MEUCIAb3UDsEUn59MiYZOXmMqzXYfpkZt5OHY9ZAwi9300I4AiEAqfLbqWWdxyOFDm/G9Qj0irPP9knRagenmqTNSrSDiSM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":702114},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"2fd41d9a62b327870d1774856743f48a0187ae9b","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.7","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.9_1742304032972_0.8149650990926598","host":"s3://npm-registry-packages-npm-production"}},"1.2.10":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.10","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.10","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"88ebbbfa054e1c092c586eb55b9fb65d9e4c0850","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.10.tgz","fileCount":3,"integrity":"sha512-8wPV1fNTmX0Ct95NSd7PJyqhd+b1zthwIGIZITTSK6wEQufCwm3UduhcrlZr9FamnBnskwL19nWpM4foQFcPQw==","signatures":[{"sig":"MEYCIQCntIw8XNcrj29aVobxObPrLaWrPrq9WJDotO50UXYUygIhAIuJXb08B2oi1Drxt3w/R5UZh82MjmP9yyYQYZFHO0U/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":701603},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"69be8c7803040e59848e9a33b367048a010af504","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.10_1743665600193_0.15202485748427108","host":"s3://npm-registry-packages-npm-production"}},"1.2.11":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.11","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.11","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"d13d9b9f0f7ce07d8740995204c41c3dcd89819b","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.11.tgz","fileCount":3,"integrity":"sha512-wnFlqES1PkB7tTeaZXfXQubtx6/kcuvnYHticPbBoHBNa1dTxHroZ2Osf+w55F1PvgCYHqAhg7HX4FZhVE3/Zw==","signatures":[{"sig":"MEUCIB+Ji9qKfYBycAEu4t+uaPSp7Si2stDl7O9Nrx7JjhAmAiEA81803Ufvny0CdzuhwQfN2ImWnOKHdyAzBCkNWOWBgH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699024},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"c6f7817f4b19648bc03ac5f22f5287ee3cfaa378","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.11_1748863997730_0.7730927078130636","host":"s3://npm-registry-packages-npm-production"}},"1.2.12":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.12","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.12","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"478add501b35308c9edea31e97c1c210a16d73dc","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.12.tgz","fileCount":3,"integrity":"sha512-FuMP+7z/cnqSt6YAyceDnNW0cVUYyRvDxOuEoy7LAE8os/VFxHAqxNwpdUwKtCycrFVHwGu7eN+LKClk+gVeTQ==","signatures":[{"sig":"MEUCIFCacSU3Fq3WhSx0fJLFgoyxCz4Y4CcjbN92XNw3bKRZAiEArb9Nw7MvXU20OoyhyriYi8HT2P2C4tIe0sA5YuZ07/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":700560},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"0ad9b690e8f68f0cccdbb8435327a7eda7e351e8","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.12_1749024247715_0.6482666279626927","host":"s3://npm-registry-packages-npm-production"}},"1.2.13":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.13","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.13","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"9e25c5ea00220d666464c6b1e48614b278df3d04","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.13.tgz","fileCount":3,"integrity":"sha512-zWhHFGSyrV2NWDCMrO5cxMpEFMOyJFs9/+4AZtmUHB3ddgkDpXMe6+qiiVnFoFFBQ8XTzNn1HCEE13Yp1hCciA==","signatures":[{"sig":"MEUCIQD6JhnuEPPuQJpc2XcowZx15Q/zphMj+cUgrGGAEFFjkwIgNJPhJC0afeIVYpt/mwzRXlpyLsWcYLVKHyd3cF2r8pQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699536},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"d6d2cc68e1d0a6bf23a17a71e6dec17eebbc947c","_npmUser":{"name":"zhangyuang","actor":{"name":"zhangyuang","type":"user","email":"569105585@qq.com"},"email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.13_1751742490745_0.9028594397640737","host":"s3://npm-registry-packages-npm-production"}},"1.2.14":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.14","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.14","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"91a27ffbff861070e869b209bdcd9d46f5f8f15f","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.14.tgz","fileCount":3,"integrity":"sha512-5S+A9uxSsyz6rcVdtrJEhxT1gVBOEb2nVgWAtUQRVrvZwAstX8FQ5DynHZq2+hv/A5kqC3D5LGp5Td5/OYGkhg==","signatures":[{"sig":"MEQCIBKcAyvgxDpy406F5nL0lWRYmpfzzcCUL9kSsTBW7dvhAiBZnOyVNfxaIefxiWGGpgX4X47ZgZkvB+cYQVmXG9JtRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":701072},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"1eecf24ce53f2dd93c2e13d9060065c931fd37d9","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.14_1752232297376_0.7921868953535254","host":"s3://npm-registry-packages-npm-production"}},"1.2.15":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.15","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.15","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"1fdff0f3b3841ebbc64293731bbe48c77df26cd7","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.15.tgz","fileCount":3,"integrity":"sha512-B56tGdbPTpxlSGW2SElGHiajpNVYRP0tatJqGYz3+wT0e2V/A8OzRg6V1XFReMxDOxGEtS8LM76UCh0AGILxgA==","signatures":[{"sig":"MEQCIAWes87I95dn+5LmFCd0wHv0rmtCvbo74sFghf6/Njl7AiAxfQtjzaMNev+v8PX+wvbkHd6HhrYyTdsq03eYbEgKpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":700560},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"5adf85c27bf6b1481fe61a349f1150485840ea49","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.15_1752232614112_0.4290736490648688","host":"s3://npm-registry-packages-npm-production"}},"1.2.16":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.2.16","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.2.16","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"5490a19f75f425ad523b8860f41955ed419c1699","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.2.16.tgz","fileCount":3,"integrity":"sha512-fx4/HFtchdN489EVg0BF6Zb7yLFMS6X/5pDW9zgsHtZWudf0wxrCISMPW4bbugH3575KL8HSpEfLPcPszXxN3w==","signatures":[{"sig":"MEYCIQD/QegLTGdHKf+aPh+eQDcpPtOC9HKYka0RfnCj/hEpiQIhAJhSQVk9yLTXa6n8hsGfcq6bjn6WiTAwvtEmA4lEhFtb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":698512},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"ece2b6695a8049594190f334b2a4b830da801122","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.2.16_1752676859964_0.3911312359355723","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.3.0","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.3.0","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"a68c84c98481191a9f2ebab73778ce4042d2f41b","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.3.0.tgz","fileCount":3,"integrity":"sha512-Dflhd43LH4Y4pcWp3opozPp0b+8xAvxWq8ZyIWf/HhTMYIvWWjBoGo3LvLgzx8R2CdELKMO17dni76qCgJfv1A==","signatures":[{"sig":"MEUCIQDzGXqACOdp9XFrJ8yRm1Ju1iMZvkDiHQxuyHOhV0ibHQIgAzbcg4+HhyMhXSo3KQVRnHUco2ENlHPlzllCAitn/Ew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699535},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"78632e0f92a558122232ae5a5bb42da31c291c36","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.3.0_1752772304593_0.4589265221344452","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.3.1","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.3.1","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"8e3ba4a2484047742436f7ffea49f18b35678f99","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.3.1.tgz","fileCount":3,"integrity":"sha512-WeZkGl2BP1U4tRhEQH+FXLQS52N8obp74smK5AAGOfzPAT1pHkq6+dVkC1QCSIt7dHJs7SPtlnQw+5DkdZYlWA==","signatures":[{"sig":"MEUCIDjJ7iW1E38BIkqicYBIlm7O7Fa+EB7wPQZWy5z6MO/1AiEA0qvaFO56OdzI77LjBQcCAYXEpVjKiIrElCwKyV+1KtM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":701262},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"200f811de514f1d3f588789b327e57e13fb4d550","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README.md\">English</a> | <a href=\"https://github.com/zhangyuang/node-ffi-rs/blob/master/README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.3.1_1763913712189_0.9088244888603649","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.3.2","license":"MIT","_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.3.2","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"os":["win32"],"cpu":["arm64"],"dist":{"shasum":"bfd246e225d705b041c41b604d6a3e42df0f4af9","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.3.2.tgz","fileCount":3,"integrity":"sha512-yhpLcj0qel5VNlpzxPZfNmi7+rEX8444QHjUP6WWLxdRfqPllROu/Cp3OpkBpw3BLdxfcDhWkjWMD5QsJN0Pvg==","signatures":[{"sig":"MEUCIQD4skEhDJ+5BFONBwbv+7dAISDIo21oChbaaueyGLxWWwIgduRVyeStVkIJfCazljtSRsB1i/uo4jvkqytgahIyNd0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":692884},"main":"ffi-rs.win32-arm64-msvc.node","engines":{"node":">= 12"},"gitHead":"9c5ba3452d8cedbb0b30c7ce4dd0138135bd06ea","_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"_npmVersion":"10.8.2","description":"<div> <a href=\"./README.md\">English</a> | <a href=\"./README_Zh.md\">简体中文</a> </div>","directories":{},"_nodeVersion":"18.20.8","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ffi-rs-win32-arm64-msvc_1.3.2_1776952019738_0.5609525837200171","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"@yuuang/ffi-rs-win32-arm64-msvc","version":"1.3.4","os":["win32"],"cpu":["arm64"],"main":"ffi-rs.win32-arm64-msvc.node","license":"MIT","engines":{"node":">= 12"},"publishConfig":{"access":"public"},"_id":"@yuuang/ffi-rs-win32-arm64-msvc@1.3.4","gitHead":"9ac441b58637d310948115be477ca6973268c0a0","description":"<div> <a href=\"./README.md\">English</a> | <a href=\"./README_Zh.md\">简体中文</a> </div>","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-hJndCj9xEosRw9Xn02IwzfXy8tgXvspJT5Qhpld9xXDFZyY0wYKxxO2VZhJNiIuX9vuEUgqeVvfCp5EeTpom1Q==","shasum":"b49090cbb6e84b5737f97fc79fba21be22d02045","tarball":"https://registry.npmjs.org/@yuuang/ffi-rs-win32-arm64-msvc/-/ffi-rs-win32-arm64-msvc-1.3.4.tgz","fileCount":3,"unpackedSize":703124,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC0/KfwZLAC4Zkqg2wwOFphpncIKH8thDOgrvuk+cNp6QIgR6M6NAa1QEm7+hYylxIHYsPQSKYuHn6+dusQi2bjJ2g="}]},"_npmUser":{"name":"zhangyuang","email":"569105585@qq.com"},"directories":{},"maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ffi-rs-win32-arm64-msvc_1.3.4_1784828034337_0.5711523838968509"},"_hasShrinkwrap":false}},"time":{"created":"2024-05-10T08:29:53.442Z","modified":"2026-07-23T17:33:54.659Z","1.0.75":"2024-05-10T08:29:53.740Z","1.0.76":"2024-05-16T06:02:15.378Z","1.0.77-alpha.0":"2024-05-20T10:01:04.224Z","1.0.77-alpha.1":"2024-05-20T11:36:58.705Z","1.0.77":"2024-05-21T06:55:14.091Z","1.0.78":"2024-05-29T07:59:47.606Z","1.0.79":"2024-06-11T10:04:27.407Z","1.0.80":"2024-06-13T08:13:31.178Z","1.0.81":"2024-06-14T13:32:35.501Z","1.0.82":"2024-06-15T11:38:24.645Z","1.0.83":"2024-06-20T11:32:06.006Z","1.0.84":"2024-07-14T09:14:38.542Z","1.0.85":"2024-07-14T10:06:04.719Z","1.0.86":"2024-07-14T12:17:23.595Z","1.0.87":"2024-07-23T08:56:43.943Z","1.0.88-alpha.0":"2024-07-24T07:54:19.969Z","1.0.88":"2024-07-27T12:20:30.462Z","1.0.89":"2024-08-03T15:21:19.967Z","1.0.90":"2024-08-12T07:35:02.949Z","1.0.91":"2024-08-28T07:32:50.443Z","1.0.93":"2024-09-11T14:48:59.307Z","1.0.94":"2024-09-13T15:15:54.020Z","1.0.95":"2024-09-17T15:28:30.255Z","1.0.96":"2024-09-22T14:13:28.707Z","1.0.97":"2024-10-22T16:38:49.770Z","1.0.98":"2024-10-29T11:29:52.159Z","1.0.99":"2024-11-17T13:20:28.082Z","1.1.0":"2024-11-17T16:29:10.865Z","1.1.1":"2024-11-19T08:24:32.523Z","1.2.0":"2024-12-23T11:02:24.551Z","1.2.1":"2024-12-24T09:18:48.115Z","1.2.2":"2025-01-07T16:08:35.397Z","1.2.3":"2025-01-12T08:25:42.548Z","1.2.4":"2025-01-24T12:22:17.111Z","1.2.5":"2025-02-08T17:27:30.310Z","1.2.6":"2025-02-21T05:40:52.647Z","1.2.8":"2025-03-06T06:29:08.863Z","1.2.9":"2025-03-18T13:20:33.224Z","1.2.10":"2025-04-03T07:33:20.475Z","1.2.11":"2025-06-02T11:33:17.952Z","1.2.12":"2025-06-04T08:04:07.921Z","1.2.13":"2025-07-05T19:08:10.975Z","1.2.14":"2025-07-11T11:11:37.603Z","1.2.15":"2025-07-11T11:16:54.355Z","1.2.16":"2025-07-16T14:41:00.206Z","1.3.0":"2025-07-17T17:11:44.767Z","1.3.1":"2025-11-23T16:01:52.446Z","1.3.2":"2026-04-23T13:46:59.896Z","1.3.4":"2026-07-23T17:33:54.487Z"},"license":"MIT","description":"<div> <a href=\"./README.md\">English</a> | <a href=\"./README_Zh.md\">简体中文</a> </div>","maintainers":[{"name":"zhangyuang","email":"569105585@qq.com"}],"readme":"# ffi-rs\n\n<div>\n<a href=\"./README.md\">English</a> | <a href=\"./README_Zh.md\">简体中文</a>\n</div>\n\nA module written in Rust and N-API provides interface (FFI) features for Node.js\n\n<div align=\"\">\n<a href=\"https://github.com/zhangyuang/node-ffi-rs/actions\" target=\"_blank\"><img src=\"https://github.com/zhangyuang/node-ffi-rs/workflows/CI/badge.svg\" alt=\"githubActions\" /></a>\n<a href=\"https://www.npmjs.com/package/ffi-rs\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/ffi-rs\">\n</a>\n<a href=\"https://www.npmjs.com/package/ffi-rs\" target=\"_blank\"><img src=\"https://img.shields.io/npm/unpacked-size/@yuuang/ffi-rs-linux-x64-gnu\">\n</a>\n</div>\n\n## Description\n\n[ffi-rs](https://github.com/zhangyuang/node-ffi-rs) is a high-performance module with small binary size written in Rust and N-API that provides FFI (Foreign Function Interface) features for Node.js. It allows developers to call functions written in other languages such as C++, C, and Rust directly from JavaScript without writing any C++ code.\n\nThis module aims to provide similar functionality to the node-ffi module but with a completely rewritten underlying codebase. The node-ffi module has been unmaintained for several years and is no longer usable, so ffi-rs was developed to fill that void.\n\n## Features\n\n* High performance ✨\n* Small binary size\n* Better type hints 🧐\n* Simpler data description and API interface 💗\n* Support more different data types between `Node.js` and `C` 😊\n* Support modifying data in place 🥸\n* Provide many ways to handle pointer type directly 🐮\n* Support running ffi task [in a new thread](#runInNewThread) 🤩️\n* Support output [errno](#errno) info 🤔️\n* No need to use [ref](https://www.npmjs.com/package/ref) to handle pointer 🤫\n\n## Benchmark\n\n```bash\n$ node bench/bench.js\nRunning \"ffi\" suite...\nProgress: 100%\n\n  ffi-napi:\n    2 028 ops/s, ±4.87%     | slowest, 99.24% slower\n\n  ffi-rs:\n    318 467 ops/s, ±0.17%   | fastest\n\nFinished 2 cases!\n  Fastest: ffi-rs\n  Slowest: ffi-napi\n```\n\n### How to sponsor me\n\nThere are two ways to sponsor me both Alipay and WeChat\n\nEth address: 0x87a2575a5d4dbD5f965e3e3a3d20641BC9a5d192\n\n<div style=\"display:flex\">\n  <img src=\"https://doc.ssr-fc.com/images/wepay.jpg\" width=200>\n  <img src=\"https://doc.ssr-fc.com/images/alipay.jpg\" width=200>\n</div>\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md)\n\n## Ecosystem\n\n[abstract-socket-rs](https://github.com/zhangyuang/abstract-socket-rs)\n\n## Install\n\n```bash\n$ npm i ffi-rs\n```\n\n## Supported Types\n\nCurrently, ffi-rs only supports these types of parameters and return values. However, support for more types may be added in the future based on actual usage scenarios.\n\n### Basic Types\n\n* [string](#basic-types)\n* [wideString|wstring](#basic-types)\n* [u8](#basic-types)\n* [i16](#basic-types)\n* [i32](#basic-types)\n* [i64](#basic-types)\n* [bigInt](#basic-types)\n* [u64](#basic-types)\n* [u32](#basic-types)\n* [void](#basic-types) (like js undefined)\n* [float](#basic-types) (can only be used as paramsType instead of retType)\n* [double](#basic-types)\n* [boolean](#basic-types)\n\n### Reference Types\n\n* [pointer](#pointer)\n* [u8Array](#buffer) (buffer)\n* [i16Array](#array)\n* [i32Array](#array)\n* [stringArray](#array)\n* [doubleArray](#array)\n* [floatArray](#array) (can only be used as paramsType instead of retType)\n* [structArray](#array)\n* [object](#struct) (Nested object is also supported in the latest version)\n* [function](#function)\n\n### C++ Class\n\nIf you want to call a C++ function whose argument type is a class, you can use the `pointer` type. See [tutorial](#C++)\n\n## Supported Platforms\n\nNote: You need to make sure that the compilation environment of the dynamic library is the same as the installation and runtime environment of the `ffi-rs` call.\n\n* darwin-x64\n* darwin-arm64\n* linux-x64-gnu\n* linux-x64-musl\n* win32-x64-msvc\n* win32-ia32-msvc\n* win32-arm64-msvc\n* linux-arm64-gnu\n* linux-arm64-musl\n* linux-arm-gnueabihf\n* android-arm64\n\n## Usage\n\nView [tests/index.ts](./tests/index.ts) for the latest usage\n\nHere is an example of how to use ffi-rs:\n\nFor the following C++ code, we compile this file into a dynamic library\n\n### Write Foreign Function Code\n\nNote: The return value type of a function must be of type C\n\n```cpp\n#include <cstdio>\n#include <cstring>\n#include <iostream>\n#include <string>\n\nextern \"C\" int sum(int a, int b) { return a + b; }\n\nextern \"C\" double doubleSum(double a, double b) { return a + b; }\n\nextern \"C\" const char *concatenateStrings(const char *str1, const char *str2) {\n  std::string result = std::string(str1) + std::string(str2);\n  char *cstr = new char[result.length() + 1];\n  strcpy(cstr, result.c_str());\n  return cstr;\n}\n\nextern \"C\" void noRet() { printf(\"%s\", \"hello world\"); }\nextern \"C\" bool return_opposite(bool input) { return !input; }\nextern \"C\" uint32_t testU32(uint32_t a, uint32_t b) { return a + b; }\n```\n\n### Compile C Code into a Dynamic Library\n\n```bash\n$ g++ -dynamiclib -o libsum.so cpp/sum.cpp # macOS\n$ g++ -shared -o libsum.so cpp/sum.cpp # Linux\n$ g++ -shared -o sum.dll cpp/sum.cpp # Windows\n```\n\n### Call Dynamic Library Using ffi-rs\n\nThen you can use `ffi-rs` to invoke the dynamic library file that contains functions.\n\n### Initialization\n\nIt's suggested to develop with TypeScript to get type hints\n\n```js\nconst {\n    equal\n} = require('assert')\nconst {\n    load,\n    DataType,\n    open,\n    close,\n    arrayConstructor,\n    define\n} = require('ffi-rs')\nconst a = 1\nconst b = 100\nconst dynamicLib = platform === 'win32' ? './sum.dll' : \"./libsum.so\"\n// First open dynamic library with key for close\n// It only needs to be opened once.\nopen({\n    library: 'libsum', // key\n    path: dynamicLib // path\n})\nconst r = load({\n    library: \"libsum\", // path to the dynamic library file\n    funcName: 'sum', // the name of the function to call\n    retType: DataType.I32, // the return value type\n    paramsType: [DataType.I32, DataType.I32], // the parameter types\n    paramsValue: [a, b] // the actual parameter values\n    // freeResultMemory: true, // whether or not need to free the result of return value memory automatically, default is false\n})\nequal(r, a + b)\n// Release library memory when you're not using it.\nclose('libsum')\n\n// Use define function to define a function signature\nconst res = define({\n    sum: {\n        library: \"libsum\",\n        retType: DataType.I32,\n        paramsType: [DataType.I32, DataType.I32],\n    },\n    atoi: {\n        library: \"libnative\",\n        retType: DataType.I32,\n        paramsType: [DataType.String],\n    }\n})\nequal(res.sum([1, 2]), 3)\nequal(res.atoi([\"1000\"]), 1000)\n```\n\n### Load Main Program Handle\n\nYou can also pass an empty path string in the `open` function like [ffi-napi](https://github.com/node-ffi-napi/node-ffi-napi?tab=readme-ov-file#example) to get the main program handle. Refer to [dlopen](https://man7.org/linux/man-pages/man3/dlopen.3.html)\n\n```js\nopen({\n    library: \"libnative\",\n    path: \"\",\n});\n// In Darwin/Linux, you can call the atoi function which is included in the basic C library\nequal(\n    load({\n        library: \"libnative\",\n        funcName: \"atoi\",\n        retType: DataType.I32,\n        paramsType: [DataType.String],\n        paramsValue: [\"1000\"],\n    }),\n    1000,\n);\n```\n\n### Basic Types\n\n`number|string|boolean|double|void` are basic types\n\n```js\nconst c = \"foo\"\nconst d = c.repeat(200)\n\nequal(c + d, load({\n    library: 'libsum',\n    funcName: 'concatenateStrings',\n    retType: DataType.String,\n    paramsType: [DataType.String, DataType.String],\n    paramsValue: [c, d]\n}))\n\nequal(undefined, load({\n    library: 'libsum',\n    funcName: 'noRet',\n    retType: DataType.Void,\n    paramsType: [],\n    paramsValue: []\n}))\n\nequal(1.1 + 2.2, load({\n    library: 'libsum',\n    funcName: 'doubleSum',\n    retType: DataType.Double,\n    paramsType: [DataType.Double, DataType.Double],\n    paramsValue: [1.1, 2.2]\n}))\nconst bool_val = true\nequal(!bool_val, load({\n    library: 'libsum',\n    funcName: 'return_opposite',\n    retType: DataType.Boolean,\n    paramsType: [DataType.Boolean],\n    paramsValue: [bool_val],\n}))\n\n// U32 type usage\nequal(3147483647, load({\n    library: 'libsum',\n    funcName: 'testU32',\n    retType: DataType.U32,\n    paramsType: [DataType.U32, DataType.U32],\n    paramsValue: [2147483647, 1000000000],\n}))\n```\n\n### Buffer\n\nIn the latest version, `ffi-rs` supports modifying data in place.\n\nThe sample code is as follows\n\n```c\nextern int modifyData(char* buffer) {\n    // modify buffer data in place\n}\n```\n\n```js\nconst arr = Buffer.alloc(200) // create buffer\nconst res = load({\n    library: \"libsum\",\n    funcName: \"modifyData\",\n    retType: DataType.I32,\n    paramsType: [\n        DataType.U8Array\n    ],\n    paramsValue: [arr]\n})\nconsole.log(arr) // buffer data can be updated\n```\n\n### Array\n\nWhen using `array` as `retType` , you should use `arrayConstructor` to specify the array type with a legal length which is important.\n\nIf the length is incorrect, the program may exit abnormally\n\n```cpp\nextern \"C\" int *createArrayi32(const int *arr, int size) {\n  int *vec = (int *)malloc((size) * sizeof(int));\n\n  for (int i = 0; i < size; i++) {\n    vec[i] = arr[i];\n  }\n  return vec;\n}\nextern \"C\" double *createArrayDouble(const double *arr, int size) {\n  double *vec = (double *)malloc((size) * sizeof(double));\n  for (int i = 0; i < size; i++) {\n    vec[i] = arr[i];\n  }\n  return vec;\n}\n\nextern \"C\" char **createArrayString(char **arr, int size) {\n  char **vec = (char **)malloc((size) * sizeof(char *));\n  for (int i = 0; i < size; i++) {\n    vec[i] = arr[i];\n  }\n  return vec;\n}\n```\n\n```js\nlet bigArr = new Array(100).fill(100)\ndeepStrictEqual(bigArr, load({\n    library: 'libsum',\n    funcName: 'createArrayi32',\n    retType: arrayConstructor({\n        type: DataType.I32Array,\n        length: bigArr.length\n    }),\n    paramsType: [DataType.I32Array, DataType.I32],\n    paramsValue: [bigArr, bigArr.length],\n}))\n\nlet bigDoubleArr = new Array(5).fill(1.1)\ndeepStrictEqual(bigDoubleArr, load({\n    library: 'libsum',\n    funcName: 'createArrayDouble',\n    retType: arrayConstructor({\n        type: DataType.DoubleArray,\n        length: bigDoubleArr.length\n    }),\n    paramsType: [DataType.DoubleArray, DataType.I32],\n    paramsValue: [bigDoubleArr, bigDoubleArr.length],\n}))\nlet stringArr = [c, c.repeat(20)]\n\ndeepStrictEqual(stringArr, load({\n    library: 'libsum',\n    funcName: 'createArrayString',\n    retType: arrayConstructor({\n        type: DataType.StringArray,\n        length: stringArr.length\n    }),\n    paramsType: [DataType.StringArray, DataType.I32],\n    paramsValue: [stringArr, stringArr.length],\n}))\n```\n\n### Pointer\n\nThese functions are used to handle pointer types in `ffi-rs` . We use `DataType.External` to pass pointers between `Node.js` and `C` .\n\n#### Create Pointer\n\nUse `createPointer` to create a pointer for specific type in the code as follows:\n\n```js\nextern \"C\"\nvoid receiveNumPointer(const int * num)\n\n// use the rust type expression the pointer type is *const i32\nconst pointer: JsExternal[] = createPointer({\n    paramsType: [DataType.I32],\n    paramsValue: [100],\n})\n\nload({\n    library: \"libsum\",\n    funcName: \"receiveNumPointer\",\n    paramsType: [DataType.External],\n    paramsValue: pointer,\n    retType: DataType.Void,\n})\n```\n\n#### unwrapPointer\n\nUse `createPointer` to create a data type which store in heap will receive a double pointer means a pointer to a pointer.\nSo we need to use `unwrapPointer` to get the inner pointer when call foreign function.\n\n```js\nextern \"C\"\nvoid receiveStringPointer(const char * str)\n\n// because of string is a pointer, so the pointer is a double pointer means a pointer to a string pointer\n// use the rust type expression pointer type is *mut *const char\nconst pointer: JsExternal[] = createPointer({\n    paramsType: [DataType.String],\n    paramsValue: [\"hello\"],\n})\n\nload({\n    library: \"libsum\",\n    funcName: \"receiveStringPointer\",\n    paramsType: [DataType.External],\n    paramsValue: unwrapPointer(pointer), // use the unwrapPointer to get the inner *mut *const char pointer, which points to a *const char value\n    retType: DataType.Void,\n})\n```\n\n#### restorePointer\n\nIf you want to restore the pointer to the original value, you can use the `restorePointer` function. Corresponds to `createPointer` ,\nit can receive the result of `createPointer` and return the original pointer directly without `wrapPointer` or `unwrapPointer` .\n\n```js\nconst pointer: JsExternal[] = createPointer({\n    paramsType: [DataType.String],\n    paramsValue: [\"hello\"],\n})\nconst str = restorePointer({\n    retType: [DataType.String],\n    paramsValue: pointer,\n})\nequal(str, \"hello\")\n```\n\n#### wrapPointer\n\nUse `wrapPointer` when you want to restore the foreign function return value.\n\n```js\nextern \"C\" const char * returnStringPointer() {\n    char * str = new char[6];\n    strcpy(str, \"hello\");\n    return str;\n}\n// the stringPointer type is *const char, we need to convert it to *mut *const char before call restorePointer\nconst stringPointer = load({\n    library: \"libsum\",\n    funcName: \"returnStringPointer\",\n    retType: DataType.External,\n    paramsType: [DataType.String],\n    paramsValue: [\"hello\"],\n})\n\nconst wrapStringPointer = wrapPointer([stringPointer])\n\nconst str = restorePointer({\n    retType: [DataType.String],\n    paramsValue: wrapStringPointer,\n})\nequal(str, \"hello\")\n```\n\n#### freePointer\n\nUse `freePointer` to free the pointer when it is no longer in use.\n\n```js\nconst i32Ptr = createPointer({\n    paramsType: [DataType.I32],\n    paramsValue: [100]\n})\nconst i32Data = restorePointer({\n    paramsValue: i32Ptr\n    retType: [DataType.I32],\n})\nfreePointer({\n    paramsType: [DataType.I32],\n    paramsValue: i32Ptr,\n    pointerType: PointerType.RsPointer\n})\n\nextern \"C\" const char * returnStringPointer() {\n    char * str = new char[6];\n    strcpy(str, \"hello\");\n    return str;\n}\nconst stringPointer = load({\n    library: \"libsum\",\n    funcName: \"returnStringPointer\",\n    retType: DataType.External,\n    paramsType: [DataType.String],\n    paramsValue: [\"hello\"],\n})\nfreePointer({\n    paramsType: [DataType.External],\n    paramsValue: [stringPointer],\n    pointerType: PointerType.CPointer // will use libc::free to free the memory\n})\n```\n\n### Struct\n\nTo create a C struct or get a C struct as a return type, you need to define the types of the parameters strictly in the order in which the fields of the C structure are defined.\n\n`ffi-rs` provides a C struct named `Person` with many types of fields in [sum.cpp](./cpp/sum.cpp#L48)\n\nThe example call method about how to call a foreign function to create a `Person` struct or use `Person` struct as a return value is [here](./tests/struct.ts#L27)\n\n#### Use array in struct\n\nThere are two types of arrays in C language like `int* array` and `int array[100]` that have some different usages.\n\nThe first type `int* array` is a pointer type storing the first address of the array.\n\nThe second type `int array[100]` is a fixed-length array and each element in the array has a continuous address.\n\nIf you use an array as a function parameter, this usually passes an array pointer regardless of which type you define. But if the array type is defined in a struct, the two types of array definitions will cause different sizes and alignments of the struct.\n\nSo, `ffi-rs` needs to distinguish between the two types.\n\nBy default, `ffi-rs` uses dynamic arrays to calculate struct. If you confirm there is a static array, you can define it in this way:\n\n```c\ntypedef struct Person {\n  //...\n  uint8_t staticBytes[16];\n  //...\n} Person;\n\n// use arrayConstructor and set ffiTypeTag field to DataType.StackArray\nstaticBytes: arrayConstructor({\n  type: DataType.U8Array,\n  length: parent.staticBytes.length,\n  ffiTypeTag: FFITypeTag.StackArray\n}),\n```\n\n## Function\n\n`ffi-rs` supports passing JS function pointers to C functions, like this:\n\n```cpp\ntypedef const void (*FunctionPointer)(int a, bool b, char *c, double d,\n                                      char **e, int *f, Person *g);\n\nextern \"C\" void callFunction(FunctionPointer func) {\n  printf(\"callFunction\\n\");\n\n  for (int i = 0; i < 2; i++) {\n    int a = 100;\n    bool b = false;\n    double d = 100.11;\n    char *c = (char *)malloc(14 * sizeof(char));\n    strcpy(c, \"Hello, World!\");\n\n    char **stringArray = (char **)malloc(sizeof(char *) * 2);\n    stringArray[0] = strdup(\"Hello\");\n    stringArray[1] = strdup(\"world\");\n\n    int *i32Array = (int *)malloc(sizeof(int) * 3);\n    i32Array[0] = 101;\n    i32Array[1] = 202;\n    i32Array[2] = 303;\n\n    Person *p = createPerson();\n    func(a, b, c, d, stringArray, i32Array, p);\n  }\n}\n```\n\nCorresponding to the code above, you can use `ffi-rs` like this:\n\n```js\nconst testFunction = () => {\n    const func = (a, b, c, d, e, f, g) => {\n        equal(a, 100);\n        equal(b, false);\n        equal(c, \"Hello, World!\");\n        equal(d, \"100.11\");\n        deepStrictEqual(e, [\"Hello\", \"world\"]);\n        deepStrictEqual(f, [101, 202, 303]);\n        deepStrictEqual(g, person);\n        logGreen(\"test function succeed\");\n        // free function memory when it is not in use\n        freePointer({\n            paramsType: [funcConstructor({\n                paramsType: [\n                    DataType.I32,\n                    DataType.Boolean,\n                    DataType.String,\n                    DataType.Double,\n                    arrayConstructor({\n                        type: DataType.StringArray,\n                        length: 2\n                    }),\n                    arrayConstructor({\n                        type: DataType.I32Array,\n                        length: 3\n                    }),\n                    personType,\n                ],\n                retType: DataType.Void,\n            })],\n            paramsValue: funcExternal\n        })\n        if (!process.env.MEMORY) {\n            close(\"libsum\");\n        }\n    };\n    // suggest using createPointer to create a function pointer for manual memory management\n    const funcExternal = createPointer({\n        paramsType: [funcConstructor({\n            paramsType: [\n                DataType.I32,\n                DataType.Boolean,\n                DataType.String,\n                DataType.Double,\n                arrayConstructor({\n                    type: DataType.StringArray,\n                    length: 2\n                }),\n                arrayConstructor({\n                    type: DataType.I32Array,\n                    length: 3\n                }),\n                personType,\n            ],\n            retType: DataType.Void,\n        })],\n        paramsValue: [func]\n    })\n    load({\n        library: \"libsum\",\n        funcName: \"callFunction\",\n        retType: DataType.Void,\n        paramsType: [\n            DataType.External,\n        ],\n        paramsValue: unwrapPointer(funcExternal),\n    });\n}\n```\n\nThe function parameters support all types in the example above.\n\nAttention: since the vast majority of scenarios developers pass JS functions to C as callbacks, `ffi-rs` will create [threadsafe_function](https://nodejs.org/api/n-api.html#napi_threadsafe_function) from JS functions which means the JS function will be called asynchronously, and the Node.js process will not exit automatically.\n\n## C++\n\nWe'll provide more examples from real-world scenarios. If you have any ideas, please submit an issue.\n\n### Class type\n\nIn C++ scenarios, we can use `DataType.External` to get a class type pointer.\n\nIn the code below, we use C types to wrap C++ types such as converting `char *` to `std::string` and returning a class pointer:\n\n```cpp\nMyClass *createMyClass(std::string name, int age) {\n  return new MyClass(name, age);\n}\n\nextern \"C\" MyClass *createMyClassFromC(const char *name, int age) {\n  return createMyClass(std::string(name), age);\n}\n\nextern \"C\" void printMyClass(MyClass *instance) { instance->print(); }\n```\n\nAnd then, it can be called by the following code:\n\n```js\nconst classPointer = load({\n    library: \"libsum\",\n    funcName: \"createMyClassFromC\",\n    retType: DataType.External,\n    paramsType: [\n        DataType.String,\n        DataType.I32\n    ],\n    paramsValue: [\"classString\", 26],\n});\nload({\n    library: \"libsum\",\n    funcName: \"printMyClass\",\n    retType: DataType.External,\n    paramsType: [\n        DataType.External,\n    ],\n    paramsValue: [classPointer],\n})\nfreePointer({\n    paramsType: [DataType.External],\n    paramsValue: [classPointer],\n    pointerType: PointerType.CPointer\n})\n```\n\n## errno\n\nBy default, `ffi-rs` will not output [errno](https://man7.org/linux/man-pages/man3/errno.3.html) info. Developers can get it by passing `errno: true` when calling the open method like:\n\n```js\nload({\n    library: 'libnative',\n    funcName: 'setsockopt',\n    retType: DataType.I32,\n    paramsType: [DataType.I32, DataType.I32, DataType.I32, DataType.External, DataType.I32],\n    paramsValue: [socket._handle.fd, level, option, pointer[0], 4],\n    errno: true // set errno as true\n})\n\n// The above code will return an object including three fields: errnoCode, errnoMessage, and the foreign function return value\n// { errnoCode: 22, errnoMessage: 'Invalid argument (os error 22)', value: -1 }\n```\n\n## Memory Management\n\nIt's important to free the memory allocations during a single ffi call to prevent memory leaks.\n\nWhat kinds of data memory are allocated in this?\n\n* Call parameters in the Rust environment which are allocated in the heap like `String`\n* Return value which in the C environment which are allocated in the heap like `char*`\n\nBy default, `ffi-rs` will free call parameters memory which are allocated in Rust.\n\nBut it will not free the return value from the C side since some C dynamic libraries will manage their memory automatically (when ffi-rs >= 1.0.79)\n\nThere are two ways to prevent `ffi-rs` from releasing memory:\n\n* Set `freeResultMemory: false` when calling `load` method, the default value is false\n\nIf you set freeResultMemory to false, `ffi-rs` will not release the return result memory which was allocated in the C environment\n\n* Use `DataType.External` as paramsType or retType\n\nIf developers use `DataType.External` as paramsType or retType, please use `freePointer` to release the memory of the pointer when this memory is no longer in use. ref [tests/index.ts](./tests/index.ts#L212)\n\n## runInNewThread\n\n`ffi-rs` supports running ffi tasks in a new thread without blocking the main thread, which is useful for CPU-intensive tasks.\n\nTo use this feature, you can pass the `runInNewThread` option to the load method:\n\n```js\nconst testRunInNewThread = async () => {\n    // will return a promise but the task will run in a new thread\n    load({\n        library: \"libsum\",\n        funcName: \"sum\",\n        retType: DataType.I32,\n        paramsType: [DataType.I32, DataType.I32],\n        paramsValue: [1, 2],\n        runInNewThread: true,\n    }).then(res => {\n        equal(res, 3)\n    })\n}\n```\n","readmeFilename":"README.md"}