{"_id":"@alexssmusica/ffi-napi","_rev":"12-974de630976aa8ccc3802278001c41db","name":"@alexssmusica/ffi-napi","dist-tags":{"latest":"4.0.26"},"versions":{"4.0.15":{"name":"@alexssmusica/ffi-napi","version":"4.0.15","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"license":"MIT","_id":"@alexssmusica/ffi-napi@4.0.15","maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"homepage":"http://github.com/Alexssmusica/ffi-napi","bugs":{"url":"http://github.com/Alexssmusica/ffi-napi/issues"},"dist":{"shasum":"521e274fb21660b8a141e0dfdb69e4813d3c0829","tarball":"https://registry.npmjs.org/@alexssmusica/ffi-napi/-/ffi-napi-4.0.15.tgz","fileCount":608,"integrity":"sha512-/1pIk35RCL63tKR8jkXh5vK5reIKRknETG8ye8Hei/BXMmJTB+q5Y/lsHX/I/2XVmj42CF1SNfxEdZ0rQ/Buzg==","signatures":[{"sig":"MEQCIBF+NO2uOmjCcUENPLtvD20R12p7X6gVJQhalRdoI1NPAiBk7922veW5cnCimBIkLsUwuq44w18IZzJOOPyAFh2urQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6960249},"main":"./lib/ffi","engines":{"node":">=12.22.12"},"gitHead":"a08d7b05556654c91d813a084c3db9601d61590d","scripts":{"install":"node-gyp-build","prebuild":"prebuildify --napi --tag-armv --tag-uv"},"_npmUser":{"name":"alexssmusica","email":"alexssmusica@gmail.com"},"repository":{"url":"git+ssh://git@github.com/Alexssmusica/ffi-napi.git","type":"git"},"_npmVersion":"8.19.4","description":"A foreign function interface (FFI) for Node.js, N-API style, with \"v8::ArrayBuffer::GetBackingStore\" patch","directories":{},"_nodeVersion":"16.20.0","dependencies":{"debug":"^4.1.1","ref-struct-di":"^1.1.0","node-addon-api":"^3.2.1","node-gyp-build":"^4.5.0","@alexssmusica/ref-napi":"^4.0.10","get-uv-event-loop-napi-h":"^1.0.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.4.0","fs-extra":"^9.0.0","prebuildify":"^5.0.1","ref-array-di":"^1.2.1","prebuildify-ci":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/ffi-napi_4.0.15_1686136827619_0.6043128012886634","host":"s3://npm-registry-packages"}},"4.0.16":{"name":"@alexssmusica/ffi-napi","version":"4.0.16","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"license":"MIT","_id":"@alexssmusica/ffi-napi@4.0.16","maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"homepage":"http://github.com/Alexssmusica/ffi-napi","bugs":{"url":"http://github.com/Alexssmusica/ffi-napi/issues"},"dist":{"shasum":"616ed24be990c014a83dc3fe373574ab9fbcf43e","tarball":"https://registry.npmjs.org/@alexssmusica/ffi-napi/-/ffi-napi-4.0.16.tgz","fileCount":608,"integrity":"sha512-H05UQJ2b90O4ZcYVH1yCYDy//cvDc0Z/gIbCnrwPbvBqSOA0x3bqBUcW5JhBiqr8gtC4m9ACAsfUrS66EWnF8w==","signatures":[{"sig":"MEQCIEZtupKXYDr+dzE39+oaoCznaiqOPhOdNMGxZxzDrr9/AiAh6OnEbbZlrPTOj/vk0tt10PLntI5NtBXtg3dUNhZb2Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6960280},"main":"./lib/ffi","types":"types/index.d.ts","engines":{"node":">=12.22.12"},"gitHead":"5c6cab1df6eac46377ada789c54b3896297ee80c","scripts":{"install":"node-gyp-build","prebuild":"prebuildify --napi --tag-armv --tag-uv"},"_npmUser":{"name":"alexssmusica","email":"alexssmusica@gmail.com"},"repository":{"url":"git+ssh://git@github.com/Alexssmusica/ffi-napi.git","type":"git"},"_npmVersion":"8.19.4","description":"A foreign function interface (FFI) for Node.js, N-API style, with \"v8::ArrayBuffer::GetBackingStore\" patch","directories":{},"_nodeVersion":"16.20.0","dependencies":{"debug":"^4.1.1","ref-struct-di":"^1.1.0","node-addon-api":"^3.2.1","node-gyp-build":"^4.5.0","@alexssmusica/ref-napi":"^4.0.10","get-uv-event-loop-napi-h":"^1.0.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.4.0","fs-extra":"^9.0.0","prebuildify":"^5.0.1","ref-array-di":"^1.2.1","prebuildify-ci":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/ffi-napi_4.0.16_1686137592371_0.606199602270673","host":"s3://npm-registry-packages"}},"4.0.17":{"name":"@alexssmusica/ffi-napi","version":"4.0.17","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"license":"MIT","_id":"@alexssmusica/ffi-napi@4.0.17","maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"homepage":"http://github.com/Alexssmusica/ffi-napi","bugs":{"url":"http://github.com/Alexssmusica/ffi-napi/issues"},"dist":{"shasum":"0c49b605db2a8553c88ce7b7ccb0aaa6344ef656","tarball":"https://registry.npmjs.org/@alexssmusica/ffi-napi/-/ffi-napi-4.0.17.tgz","fileCount":626,"integrity":"sha512-AB90vukWCnNPhkq8H5Y0eI9K3MLi3dI71+Mho6Pog0pnqg+Jp1UWICNigVnLRV/VfvHznBhzOdKO/iQzfnfWZw==","signatures":[{"sig":"MEUCIAPXTFVc2hmRHWLelSu+RKPcoRmgrgJKwPTrOh5j5bXyAiEAv/PL059GYQ9CoW/5QHVeD8jeXubioOyy3pCgUn6m3fw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7006166},"main":"./lib/ffi","engines":{"node":">=10"},"gitHead":"a8490e45f19e614e03c0bafa27cf6d18525d81f8","scripts":{"test":"node-gyp rebuild --directory test && nyc mocha --expose-gc --reporter spec","install":"node-gyp-build","prebuild":"prebuildify --napi --tag-armv --tag-uv"},"_npmUser":{"name":"alexssmusica","email":"alexssmusica@gmail.com"},"repository":{"url":"git+ssh://git@github.com/Alexssmusica/ffi-napi.git","type":"git"},"_npmVersion":"10.5.0","description":"A foreign function interface (FFI) for Node.js, N-API style","directories":{},"_nodeVersion":"20.12.2","dependencies":{"debug":"^4.1.1","ref-napi":"^2.0.1 || ^3.0.2","ref-struct-di":"^1.1.0","node-addon-api":"^8.1.0","node-gyp-build":"^4.8.1","get-uv-event-loop-napi-h":"github:Alexssmusica/get-uv-event-loop-napi-h"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^7.1.1","fs-extra":"^9.0.0","prebuildify":"^4.0.0","ref-array-di":"^1.2.1","prebuildify-ci":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/ffi-napi_4.0.17_1737722295753_0.859466960025719","host":"s3://npm-registry-packages-npm-production"}},"4.0.18":{"name":"@alexssmusica/ffi-napi","version":"4.0.18","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"license":"MIT","_id":"@alexssmusica/ffi-napi@4.0.18","maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"homepage":"http://github.com/Alexssmusica/ffi-napi","bugs":{"url":"http://github.com/Alexssmusica/ffi-napi/issues"},"dist":{"shasum":"660b99246b402377ff69ee8f0b5509a5560ccd2c","tarball":"https://registry.npmjs.org/@alexssmusica/ffi-napi/-/ffi-napi-4.0.18.tgz","fileCount":626,"integrity":"sha512-xn0l7Z43QqV3zvHlhnmoPsluyGihTESV5soMmgdoa9ZUM4mD1/dKW7EMqUpVquC9xHv300KniHUyolxBV8jnAg==","signatures":[{"sig":"MEUCIQDgIlSE4cX8E4gT/H74xtH5M/RXGwouIbEZgiJxzyYQCQIgPmuhZyrPWN8RBfiD/s1dW1qcBxSCiihjiFSX5iERkg8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7006170},"main":"./lib/ffi","engines":{"node":">=10"},"gitHead":"82f2b14278e86f6e9afb571a8eb86f372f362a6f","scripts":{"test":"node-gyp rebuild --directory test && nyc mocha --expose-gc --reporter spec","install":"node-gyp-build","prebuild":"prebuildify --napi --tag-armv --tag-uv"},"_npmUser":{"name":"alexssmusica","email":"alexssmusica@gmail.com"},"repository":{"url":"git+ssh://git@github.com/Alexssmusica/ffi-napi.git","type":"git"},"_npmVersion":"10.5.0","description":"A foreign function interface (FFI) for Node.js, N-API style","directories":{},"_nodeVersion":"20.12.2","dependencies":{"debug":"^4.1.1","ref-napi":"^2.0.1 || ^3.0.2","ref-struct-di":"^1.1.0","node-addon-api":"^8.1.0","node-gyp-build":"^4.8.1","@alexssmusica/get-uv-event-loop-napi-h":"^1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^7.1.1","fs-extra":"^9.0.0","prebuildify":"^4.0.0","ref-array-di":"^1.2.1","prebuildify-ci":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/ffi-napi_4.0.18_1737723625625_0.6307668434027507","host":"s3://npm-registry-packages-npm-production"}},"4.0.19":{"name":"@alexssmusica/ffi-napi","version":"4.0.19","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"license":"MIT","_id":"@alexssmusica/ffi-napi@4.0.19","maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"homepage":"http://github.com/Alexssmusica/ffi-napi","bugs":{"url":"http://github.com/Alexssmusica/node-ffi-napi/issues"},"dist":{"shasum":"660e8be6153533dcef7e9464a12f7ce44ff693fb","tarball":"https://registry.npmjs.org/@alexssmusica/ffi-napi/-/ffi-napi-4.0.19.tgz","fileCount":621,"integrity":"sha512-KIUfiGkrQOfCs+BVa4gOdHNOHwMZ/zAXhuQ9rRIqMh/GrQ10W1UGj3h9mx/cWn8C/BcOkzZ+2hepmKbf+tSffA==","signatures":[{"sig":"MEYCIQD1kQ3fpj+UiMX1/cmQbRIMGHSSDO6XPXqsGH2RpKpkpAIhALyr1jbK1PYRnrDA0lpdPtzA3OyAIHVerra5sPZ1d8RJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5820494},"main":"./lib/ffi","engines":{"node":">=18"},"gitHead":"fb079f66d45e5ad6d43fc501266ef25039b019d7","scripts":{"test":"node-gyp rebuild --directory test && nyc mocha --v8-expose-gc --reporter spec","install":"node-gyp-build","prebuild":"prebuildify --napi --tag-armv --tag-uv"},"targets":[{"sources":["src/binding.cc"],"target_name":"binding"}],"_npmUser":{"name":"alexssmusica","email":"alexssmusica@gmail.com"},"repository":{"url":"git+ssh://git@github.com/Alexssmusica/node-ffi-napi.git","type":"git"},"_npmVersion":"10.5.0","description":"A foreign function interface (FFI) for Node.js, N-API style","directories":{},"_nodeVersion":"20.12.2","dependencies":{"debug":"^4.3.7","ref-struct-di":"^1.1.0","node-addon-api":"^8.1.0","node-gyp-build":"^4.8.2","@makeomatic/ref-napi":"^3.0.6","get-uv-event-loop-napi-h":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","mocha":"^10.7.3","fs-extra":"^11.2.0","node-gyp":"^11.0.0","prebuildify":"^6.0.1","ref-array-di":"^1.2.1","prebuildify-ci":"^1.0.5","semantic-release":"^24.1.1","@semantic-release/npm":"^12.0.1","@semantic-release/github":"^10.3.5","@semantic-release/commit-analyzer":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ffi-napi_4.0.19_1737740570686_0.29272361789394385","host":"s3://npm-registry-packages-npm-production"}},"4.0.20":{"name":"@alexssmusica/ffi-napi","version":"4.0.20","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"license":"MIT","_id":"@alexssmusica/ffi-napi@4.0.20","maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"homepage":"http://github.com/Alexssmusica/ffi-napi","bugs":{"url":"http://github.com/Alexssmusica/node-ffi-napi/issues"},"dist":{"shasum":"733a2cde4fbb07e35cfff0aeafde991b4344dc53","tarball":"https://registry.npmjs.org/@alexssmusica/ffi-napi/-/ffi-napi-4.0.20.tgz","fileCount":621,"integrity":"sha512-E2uEU2Fa4VBzgV2K1tPY1iCjZbzAxVYzmeDUA4Pcn93jpYoQpEImbJoIXWuUuGj+J1M7N0yxv9ts4W6a1E1ATg==","signatures":[{"sig":"MEQCIE2bR1YDQ4drnQmkEPZtNypCVWX57E1iueZehc8FLyRVAiB172EjvCTsbUTjBirtPZ+MpiGUmr39vUk6KrvvzWaoQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5820541},"main":"./lib/ffi","engines":{"node":">=16"},"gitHead":"c2ee2a97d78f16f2b48f96a39665949f8006b6d3","scripts":{"test":"node-gyp rebuild --directory test && nyc mocha --v8-expose-gc --reporter spec","install":"node-gyp-build","prebuild":"prebuildify --napi --tag-armv --tag-uv"},"targets":[{"sources":["src/binding.cc"],"target_name":"binding"}],"_npmUser":{"name":"alexssmusica","email":"alexssmusica@gmail.com"},"repository":{"url":"git+ssh://git@github.com/Alexssmusica/node-ffi-napi.git","type":"git"},"_npmVersion":"10.5.0","description":"A foreign function interface (FFI) for Node.js, N-API style","directories":{},"_nodeVersion":"20.12.2","dependencies":{"debug":"^4.3.7","ref-struct-di":"^1.1.0","node-addon-api":"^8.1.0","node-gyp-build":"^4.8.2","@alexssmusica/ref-napi":"^4.0.12","get-uv-event-loop-napi-h":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","mocha":"^10.7.3","fs-extra":"^11.2.0","node-gyp":"^11.0.0","prebuildify":"^6.0.1","ref-array-di":"^1.2.1","prebuildify-ci":"^1.0.5","semantic-release":"^24.1.1","@semantic-release/npm":"^12.0.1","@semantic-release/github":"^10.3.5","@semantic-release/commit-analyzer":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ffi-napi_4.0.20_1737742931503_0.8366784726935546","host":"s3://npm-registry-packages-npm-production"}},"4.0.21":{"name":"@alexssmusica/ffi-napi","version":"4.0.21","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"license":"MIT","_id":"@alexssmusica/ffi-napi@4.0.21","maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"homepage":"http://github.com/Alexssmusica/ffi-napi","bugs":{"url":"http://github.com/Alexssmusica/node-ffi-napi/issues"},"dist":{"shasum":"101f55d1cba6ff4fc1ecf8d7d372896237d0b168","tarball":"https://registry.npmjs.org/@alexssmusica/ffi-napi/-/ffi-napi-4.0.21.tgz","fileCount":621,"integrity":"sha512-3JQ8AJH3NaYGZi5V1zEqKc4eFO+InpwOLRLZ2P+kERcboMNrbeOnJLyYuD29VI2hd8AYl36DOmxh4Y3j6i3zxg==","signatures":[{"sig":"MEUCIF0rZIuP3mvLeqvJYw/QJMN2uVxv+Th5QKhDMTMw80ctAiEAvO7nR6DeznK5sSE98wxf5Nv+iCzv0dVK6lJHypH+bJc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5820541},"main":"./lib/ffi","engines":{"node":">=16"},"gitHead":"f501837aa08466a2794d116773ebd1262d58c70f","scripts":{"test":"node-gyp rebuild --directory test && nyc mocha --v8-expose-gc --reporter spec","install":"node-gyp-build","prebuild":"prebuildify --napi --tag-armv --tag-uv"},"targets":[{"sources":["src/binding.cc"],"target_name":"binding"}],"_npmUser":{"name":"alexssmusica","email":"alexssmusica@gmail.com"},"repository":{"url":"git+ssh://git@github.com/Alexssmusica/node-ffi-napi.git","type":"git"},"_npmVersion":"10.5.0","description":"A foreign function interface (FFI) for Node.js, N-API style","directories":{},"_nodeVersion":"20.12.2","dependencies":{"debug":"^4.3.7","ref-struct-di":"^1.1.0","node-addon-api":"^8.1.0","node-gyp-build":"^4.8.2","@alexssmusica/ref-napi":"^4.0.13","get-uv-event-loop-napi-h":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","mocha":"^10.7.3","fs-extra":"^11.2.0","node-gyp":"^11.0.0","prebuildify":"^6.0.1","ref-array-di":"^1.2.1","prebuildify-ci":"^1.0.5","semantic-release":"^24.1.1","@semantic-release/npm":"^12.0.1","@semantic-release/github":"^10.3.5","@semantic-release/commit-analyzer":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ffi-napi_4.0.21_1737744276327_0.5175382215652948","host":"s3://npm-registry-packages-npm-production"}},"4.0.22":{"name":"@alexssmusica/ffi-napi","version":"4.0.22","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"license":"MIT","_id":"@alexssmusica/ffi-napi@4.0.22","maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"homepage":"http://github.com/Alexssmusica/ffi-napi","bugs":{"url":"http://github.com/Alexssmusica/node-ffi-napi/issues"},"dist":{"shasum":"c9ee8c74b66371e14de5906131fb1336423ab6af","tarball":"https://registry.npmjs.org/@alexssmusica/ffi-napi/-/ffi-napi-4.0.22.tgz","fileCount":622,"integrity":"sha512-jmQhFFCsb/zCnrRDvXt4fTbixuhrLeDSI3p8aVjhyguTo2MgyfREE5SS65LgN2cMOwllw/+0BysU8INjBD5TsA==","signatures":[{"sig":"MEYCIQDdnCtikUVt+nAmg2bMjZenmUtvvirTy45zzIOmuU7VDQIhAOlURqCMLEsGuLtQedmkfSw92K1TORB2f7sGdQiDYVIZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6050941},"main":"./lib/ffi","engines":{"node":">=16"},"gitHead":"e74ffb0d8f25553ccce158dd5a080e47cb9ab6de","scripts":{"test":"node-gyp rebuild --directory test && nyc mocha --v8-expose-gc --reporter spec","install":"node-gyp-build","prebuild":"prebuildify --napi --tag-armv --tag-uv"},"targets":[{"sources":["src/binding.cc"],"target_name":"binding"}],"_npmUser":{"name":"alexssmusica","email":"alexssmusica@gmail.com"},"repository":{"url":"git+ssh://git@github.com/Alexssmusica/node-ffi-napi.git","type":"git"},"_npmVersion":"10.5.0","description":"A foreign function interface (FFI) for Node.js, N-API style","directories":{},"_nodeVersion":"20.12.2","dependencies":{"debug":"^4.3.7","ref-struct-di":"^1.1.0","node-addon-api":"^8.1.0","node-gyp-build":"^4.8.2","@alexssmusica/ref-napi":"^4.0.14","get-uv-event-loop-napi-h":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","mocha":"^10.7.3","fs-extra":"^11.2.0","node-gyp":"^11.0.0","prebuildify":"^6.0.1","ref-array-di":"^1.2.1","prebuildify-ci":"^1.0.5","semantic-release":"^24.1.1","@semantic-release/npm":"^12.0.1","@semantic-release/github":"^10.3.5","@semantic-release/commit-analyzer":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ffi-napi_4.0.22_1737747452734_0.4334890490070422","host":"s3://npm-registry-packages-npm-production"}},"4.0.23":{"name":"@alexssmusica/ffi-napi","version":"4.0.23","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"license":"MIT","_id":"@alexssmusica/ffi-napi@4.0.23","maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"homepage":"http://github.com/Alexssmusica/ffi-napi","bugs":{"url":"http://github.com/Alexssmusica/node-ffi-napi/issues"},"dist":{"shasum":"62d3c51a2cacd093b834f6f87b28d5278f8475db","tarball":"https://registry.npmjs.org/@alexssmusica/ffi-napi/-/ffi-napi-4.0.23.tgz","fileCount":622,"integrity":"sha512-l0elsiiJIBj8l1FePiDVG826/4jpCgTIDJSDB3LxJLgW0q1gPRFdxNiubk79cm50lBmOT0sYz5wh+heCbBplqg==","signatures":[{"sig":"MEYCIQDyua4amxoQmP6LetjXyjHg8z635G5dAL6XWmj5UYkiLQIhALJPsDOmaof7cXM5Lb6SDUN6uDvzM6lQL65Qts08bKR6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6050987},"main":"./lib/ffi","engines":{"node":">=16"},"gitHead":"103a36e514b1921113161bd7d41f6ea06ba1e4ff","scripts":{"test":"node-gyp rebuild --directory test && nyc mocha --v8-expose-gc --reporter spec","install":"node-gyp-build","prebuild":"prebuildify --napi --tag-armv --tag-uv"},"targets":[{"sources":["src/binding.cc"],"target_name":"binding"}],"_npmUser":{"name":"alexssmusica","email":"alexssmusica@gmail.com"},"repository":{"url":"git+ssh://git@github.com/Alexssmusica/node-ffi-napi.git","type":"git"},"_npmVersion":"10.5.0","description":"A foreign function interface (FFI) for Node.js, N-API style","directories":{},"_nodeVersion":"20.12.2","dependencies":{"debug":"^4.3.7","ref-struct-di":"^1.1.0","node-addon-api":"^8.1.0","node-gyp-build":"^4.8.2","electron-bindings":"^1.0.2","@alexssmusica/ref-napi":"^4.0.14","get-uv-event-loop-napi-h":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","mocha":"^10.7.3","fs-extra":"^11.2.0","node-gyp":"^11.0.0","prebuildify":"^6.0.1","ref-array-di":"^1.2.1","prebuildify-ci":"^1.0.5","semantic-release":"^24.1.1","@semantic-release/npm":"^12.0.1","@semantic-release/github":"^10.3.5","@semantic-release/commit-analyzer":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ffi-napi_4.0.23_1737750072533_0.9883887822836239","host":"s3://npm-registry-packages-npm-production"}},"4.0.24":{"name":"@alexssmusica/ffi-napi","version":"4.0.24","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"license":"MIT","_id":"@alexssmusica/ffi-napi@4.0.24","maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"homepage":"http://github.com/Alexssmusica/ffi-napi","bugs":{"url":"http://github.com/Alexssmusica/node-ffi-napi/issues"},"dist":{"shasum":"1dca60ac0b91d5f45539b785c6b09c9e10ea81d7","tarball":"https://registry.npmjs.org/@alexssmusica/ffi-napi/-/ffi-napi-4.0.24.tgz","fileCount":622,"integrity":"sha512-ksX56NEeuukqU++DRRkjZgHLT1/2VBUkswNGHf/+jqlnATfa0sexD8XHKFaPMVxI8Ah9kCQ1GrVMWZk41xwWOA==","signatures":[{"sig":"MEUCIQDWKIp35AoYssRA/r2D9KrN3Bv6oea+ty5dC5b2uaJ+wAIgUGz/qITgkNizaP6IP3HYvTwxbb6ntc3/e8DfasJ+XrI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6050987},"main":"./lib/ffi","engines":{"node":">=16"},"gitHead":"fe899cfcf4fda9e65d70ae9c0493c3dcc74b4fa2","scripts":{"test":"node-gyp rebuild --directory test && nyc mocha --v8-expose-gc --reporter spec","install":"node-gyp-build","prebuild":"prebuildify --napi --tag-armv --tag-uv"},"targets":[{"sources":["src/binding.cc"],"target_name":"binding"}],"_npmUser":{"name":"alexssmusica","email":"alexssmusica@gmail.com"},"repository":{"url":"git+ssh://git@github.com/Alexssmusica/node-ffi-napi.git","type":"git"},"_npmVersion":"10.5.0","description":"A foreign function interface (FFI) for Node.js, N-API style","directories":{},"_nodeVersion":"20.12.2","dependencies":{"debug":"^4.3.7","ref-struct-di":"^1.1.0","node-addon-api":"^8.1.0","node-gyp-build":"^4.8.2","electron-bindings":"^1.0.2","@alexssmusica/ref-napi":"^4.0.15","get-uv-event-loop-napi-h":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","mocha":"^10.7.3","fs-extra":"^11.2.0","node-gyp":"^11.0.0","prebuildify":"^6.0.1","ref-array-di":"^1.2.1","prebuildify-ci":"^1.0.5","semantic-release":"^24.1.1","@semantic-release/npm":"^12.0.1","@semantic-release/github":"^10.3.5","@semantic-release/commit-analyzer":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ffi-napi_4.0.24_1737750688950_0.9028677221346526","host":"s3://npm-registry-packages-npm-production"}},"4.0.25":{"name":"@alexssmusica/ffi-napi","version":"4.0.25","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"license":"MIT","_id":"@alexssmusica/ffi-napi@4.0.25","maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"homepage":"http://github.com/Alexssmusica/ffi-napi","bugs":{"url":"http://github.com/Alexssmusica/ffi-napi/issues"},"dist":{"shasum":"c89651381b9903ac82e5e09794679073293e5879","tarball":"https://registry.npmjs.org/@alexssmusica/ffi-napi/-/ffi-napi-4.0.25.tgz","fileCount":609,"integrity":"sha512-aWmyYASb1MIV5uv8yHvtgXATUUC0BEfAaBatHghSWQFwBBeSzj7LWWCWD+x9iShEFMoZeTdw8Gf5cQrVbNEgZw==","signatures":[{"sig":"MEYCIQDILF27gyONVvTNM+stc6ocVhhUNmlveOHS5r4Tw0WdhAIhAOl1qxQj5WvuHkV9RAow2k9YEEkXQp5OJ2GDfp4pCHx/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7191348},"main":"./lib/ffi","types":"types/index.d.ts","engines":{"node":">=12.22.12"},"gitHead":"c6332382a5875d4f4a21713ddd2b45497e73020e","scripts":{"install":"node-gyp-build","prebuild":"prebuildify --napi --tag-armv --tag-uv"},"_npmUser":{"name":"alexssmusica","email":"alexssmusica@gmail.com"},"repository":{"url":"git+ssh://git@github.com/Alexssmusica/ffi-napi.git","type":"git"},"_npmVersion":"10.5.0","description":"A foreign function interface (FFI) for Node.js, N-API style, with \"v8::ArrayBuffer::GetBackingStore\" patch","directories":{},"_nodeVersion":"20.12.2","dependencies":{"debug":"^4.3.7","ref-struct-di":"^1.1.0","node-addon-api":"^8.1.0","node-gyp-build":"^4.8.2","@alexssmusica/ref-napi":"^4.0.16","get-uv-event-loop-napi-h":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","mocha":"^10.7.3","fs-extra":"^11.2.0","prebuildify":"^6.0.1","ref-array-di":"^1.2.1","prebuildify-ci":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/ffi-napi_4.0.25_1737753562898_0.748413475519353","host":"s3://npm-registry-packages-npm-production"}},"4.0.26":{"name":"@alexssmusica/ffi-napi","version":"4.0.26","publishConfig":{"access":"public"},"license":"MIT","author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"description":"A foreign function interface (FFI) for Node.js, N-API style, with \"v8::ArrayBuffer::GetBackingStore\" patch","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"homepage":"http://github.com/Alexssmusica/ffi-napi","engines":{"node":">=12.22.12"},"types":"types/index.d.ts","main":"./lib/ffi","dependencies":{"@alexssmusica/ref-napi":"^4.0.17","debug":"^4.4.0","get-uv-event-loop-napi-h":"^1.0.6","node-addon-api":"^6.1.0","node-gyp-build":"^4.8.4","ref-struct-di":"^1.1.1"},"devDependencies":{"fs-extra":"^11.3.0","mocha":"^11.1.0","nyc":"^17.1.0","prebuild":"^13.0.1","ref-array-di":"^1.2.2"},"scripts":{"install":"node-gyp-build","prebuild":"prebuild --napi --tag-armv --tag-uv","prebuild-electron":"prebuild --napi --tag-armv --runtime electron --target 20.0.0 --target 21.0.0 --target 22.0.0 --target 23.0.0 --target 24.0.0 --target 25.0.0 --target 26.0.0 --target 27.0.0 --target 28.0.0 --target 29.0.0 --target 30.0.0 --target 31.0.0 --target 32.0.0 --target 33.0.0 --target 34.0.0"},"repository":{"type":"git","url":"git+ssh://git@github.com/Alexssmusica/ffi-napi.git"},"bugs":{"url":"http://github.com/Alexssmusica/ffi-napi/issues"},"_id":"@alexssmusica/ffi-napi@4.0.26","gitHead":"ad2dfdd0b97a393eb66482ec1b0aa39264d1dc3b","_nodeVersion":"20.18.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-BID75W4Pp9/xrcPYJ3aT/fsk4g9eZg5+/K+Q+GmY8KCkXQQ0OTh1KYQRPQSlJ/P+EY/GrBDIDfaONECxdNEK+Q==","shasum":"3220bea52fce634eec643ef7543205b1898026bc","tarball":"https://registry.npmjs.org/@alexssmusica/ffi-napi/-/ffi-napi-4.0.26.tgz","fileCount":609,"unpackedSize":7191625,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHF/5VSWRszoOyZeP1E6jyfamGSMhoXSWImqYFQZ/7FyAiAQqARwgVy7pnYQqtDQHTP5iLh8Yq/WPhOSa0RBG0T12A=="}]},"_npmUser":{"name":"alexssmusica","email":"alexssmusica@gmail.com"},"directories":{},"maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ffi-napi_4.0.26_1744721091803_0.397379173056144"},"_hasShrinkwrap":false}},"time":{"created":"2023-06-07T11:20:27.556Z","modified":"2025-04-15T12:44:52.199Z","4.0.15":"2023-06-07T11:20:27.998Z","4.0.16":"2023-06-07T11:33:12.650Z","4.0.17":"2025-01-24T12:38:16.059Z","4.0.18":"2025-01-24T13:00:25.960Z","4.0.19":"2025-01-24T17:42:51.000Z","4.0.20":"2025-01-24T18:22:11.783Z","4.0.21":"2025-01-24T18:44:36.630Z","4.0.22":"2025-01-24T19:37:32.981Z","4.0.23":"2025-01-24T20:21:12.924Z","4.0.24":"2025-01-24T20:31:29.184Z","4.0.25":"2025-01-24T21:19:23.178Z","4.0.26":"2025-04-15T12:44:52.030Z"},"bugs":{"url":"http://github.com/Alexssmusica/ffi-napi/issues"},"author":{"name":"Anna Henningsen","email":"anna@addaleax.net"},"license":"MIT","homepage":"http://github.com/Alexssmusica/ffi-napi","keywords":["foreign","function","interface","ffi","libffi","binding","c","napi","stable"],"repository":{"type":"git","url":"git+ssh://git@github.com/Alexssmusica/ffi-napi.git"},"description":"A foreign function interface (FFI) for Node.js, N-API style, with \"v8::ArrayBuffer::GetBackingStore\" patch","contributors":[{"name":"Rick Branson","email":"rick@diodeware.com"},{"name":"Nathan Rajlich","email":"nathan@tootallnate.net"},{"name":"Gabor Mezo","email":"gabor.mezo@outlook.com"}],"maintainers":[{"name":"alexssmusica","email":"alexssmusica@gmail.com"}],"readme":"node-ffi-napi\n=============\n### Node.js Foreign Function Interface for N-API\n[![Greenkeeper badge](https://badges.greenkeeper.io/node-ffi-napi/node-ffi-napi.svg)](https://greenkeeper.io/)\n\n[![NPM Version](https://img.shields.io/npm/v/ffi-napi.svg?style=flat)](https://npmjs.org/package/ffi-napi)\n[![NPM Downloads](https://img.shields.io/npm/dm/ffi-napi.svg?style=flat)](https://npmjs.org/package/ffi-napi)\n[![Build Status](https://travis-ci.org/node-ffi-napi/node-ffi-napi.svg?style=flat&branch=master)](https://travis-ci.org/node-ffi-napi/node-ffi-napi?branch=master)\n[![Coverage Status](https://coveralls.io/repos/node-ffi-napi/node-ffi-napi/badge.svg?branch=master)](https://coveralls.io/r/node-ffi-napi/node-ffi-napi?branch=master)\n[![Dependency Status](https://david-dm.org/node-ffi-napi/node-ffi-napi.svg?style=flat)](https://david-dm.org/node-ffi-napi/node-ffi-napi)\n\n`node-ffi-napi` is a Node.js addon for loading and calling dynamic libraries\nusing pure JavaScript. It can be used to create bindings to native libraries\nwithout writing any C++ code.\n\nIt also simplifies the augmentation of node.js with C code as it takes care of\nhandling the translation of types across JavaScript and C, which can add reams\nof boilerplate code to your otherwise simple C. See the `example/factorial`\nfor an example of this use case.\n\n**WARNING**: `node-ffi-napi` assumes you know what you're doing. You can pretty\neasily create situations where you will segfault the interpreter and unless\nyou've got C debugger skills, you probably won't know what's going on.\n\n**WARNING**: The original API of `node-ffi` is left mostly untouched in the\nN-API wrapper. However, the API did not have very well-defined properties\nin the context of garbage collection and multi-threaded execution. It is\nrecommended to avoid any multi-threading usage of this library\nif possible.\n\nExample\n-------\n\n``` js\nvar ffi = require('ffi-napi');\n\nvar libm = ffi.Library('libm', {\n  'ceil': [ 'double', [ 'double' ] ]\n});\nlibm.ceil(1.5); // 2\n\n// You can also access just functions in the current process by passing a null\nvar current = ffi.Library(null, {\n  'atoi': [ 'int', [ 'string' ] ]\n});\ncurrent.atoi('1234'); // 1234\n```\n\nFor a more detailed introduction, see the [node-ffi tutorial page][tutorial].\n\nRequirements\n------------\n\n * Linux, OS X, Windows, or Solaris.\n * `libffi` comes bundled with node-ffi-napi; it does *not* need to be installed on your system.\n * The current version is tested to run on Node 6 and above.\n\nInstallation\n------------\n\nMake sure you've installed all the [necessary build\ntools](https://github.com/TooTallNate/node-gyp#installation) for your platform,\nthen invoke:\n\n``` bash\n$ npm install ffi-napi\n```\n\nSource Install / Manual Compilation\n-----------------------------------\n\nTo compile from source it's easiest to use\n[`node-gyp`](https://github.com/TooTallNate/node-gyp):\n\n``` bash\n$ npm install -g node-gyp\n```\n\nNow you can compile `node-ffi-napi`:\n\n``` bash\n$ git clone git://github.com/node-ffi-napi/node-ffi-napi.git\n$ cd node-ffi\n$ node-gyp rebuild\n```\n\nTypes\n-----\n\nThe types that you specify in function declarations correspond to ref's types\nsystem. So [see its docs][ref-types] for\na reference if you are unfamiliar.\n\nV8 and 64-bit Types\n-------------------\n\nInternally, V8 stores integers that will fit into a 32-bit space in a 32-bit\ninteger, and those that fall outside of this get put into double-precision\nfloating point numbers. This is problematic because FP numbers are imprecise.\nTo get around this, the methods in node-ffi that deal with 64-bit integers return\nstrings and can accept strings as parameters.\n\nCall Overhead\n-------------\n\nThere is non-trivial overhead associated with FFI calls. Comparing a hard-coded\nbinding version of `strtoul()` to an FFI version of `strtoul()` shows that the\nnative hard-coded binding is orders of magnitude faster. So don't just use the\nC version of a function just because it's faster. There's a significant cost in\nFFI calls, so make them worth it.\n\nLicense\n-------\n\nMIT License. See the `LICENSE` file.\n\n[v1apichanges]: https://github.com/node-ffi/node-ffi/wiki/API-changes-from-v0.x-to-v1.x\n[tutorial]: https://github.com/node-ffi/node-ffi/wiki/Node-FFI-Tutorial\n[ref-types]: https://github.com/TooTallNate/ref#built-in-types\n","readmeFilename":"README.md"}