{"_id":"mdbxmou","_rev":"34-9fb71fdf46984945cae662a79b8cedc7","name":"mdbxmou","dist-tags":{"latest":"0.5.6"},"versions":{"0.1.26":{"name":"mdbxmou","version":"0.1.26","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.1.26","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"181c111fc30c5cc0ef86dc105c4f27c64522c965","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.1.26.tgz","fileCount":220,"integrity":"sha512-pxVUYZDipZa3w3hrgAZXYphlmfr++WTGB5xbqNWOE3Q63mO+ovfL0wpthQVSrlrkPcbHyRn+5m03qKzSfj8aKw==","signatures":[{"sig":"MEYCIQC0X2JBse9xLndVqj/32mbqLAlp8ZD8QOgfJgMxuMjQRAIhANGwh6JtJpQtbqjb81mT7C1EVBqlVcz8+PZsBjcm2rNZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3601606},"main":"lib/nativemou.js","gitHead":"cda32973952b1e40bb481465e751ec153b42018f","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","test":"node ./test/e3.js && node ./test/e4.js && node ./test/e5.js","build":"node build.js","install":"node build.js"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.8.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.1.26_1755115470391_0.553761763353587","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"mdbxmou","version":"0.1.27","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.1.27","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"7ad3f3366eb0585398cbee1935881969cd73dc22","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.1.27.tgz","fileCount":220,"integrity":"sha512-Qq0RbjwgCUvuMLda7ssEOsLiQv1wiEifB3JWPjVGasqtH8+hvgepYeGnMvp98W9je0htlYNW2GlcQYwj88o3FQ==","signatures":[{"sig":"MEQCIQC0EqqbPAAVbr8FLQC3LbOrMNwx6W+iUvvUKTsd/1xF/gIfMCNqXq1+49ojuuezsROYRCn14pkdVB6Gnk5IhrdmsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3601607},"main":"lib/nativemou.js","gitHead":"35241eb6a2199a1f74833b118af8be9e7ea62c86","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","test":"node ./test/e3.js && node ./test/e4.js && node ./test/e5.js","build":"node build.js","install":"node build.js"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.8.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.1.27_1755115760323_0.08635514784676857","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"mdbxmou","version":"0.1.28","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.1.28","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"00c796c38eee7946606f0dc4b9fbf59e4bd0addd","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.1.28.tgz","fileCount":220,"integrity":"sha512-0AcsSKOEUfPvjrfiSl9CdaHYdIqMCHst/lnKjLfvHyUBBiCS629YejluhqJ/7V9EiZZ51XbrMH7nUF//1/KJ1Q==","signatures":[{"sig":"MEUCIBogJ3TvelUB9ruFmsqCUEj02vpJFf3EjrwO0clCaPQWAiEAn5wOOd+syCMBnZfjWmdiWwp2bEXKle3ltCHSVhE80Mc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3601607},"main":"lib/nativemou.js","gitHead":"c50e7c846061b1d41c4f9cb8841d3ae7af6acf57","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","test":"node ./test/e3.js && node ./test/e4.js && node ./test/e5.js","build":"node build.js","install":"node build.js"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.8.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.1.28_1755116895872_0.03912276079768362","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"mdbxmou","version":"0.1.29","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.1.29","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"568d408f71e7f0a071257ba92887b3565ffae86a","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.1.29.tgz","fileCount":210,"integrity":"sha512-rK0+ZFHJM/MT3DA0/JOJ+y6/lXmGBh82lT1s7ut4183AMw4uUnrUyqBgpINwbe6V0FKvmnrcF0ynUe97TWRn8A==","signatures":[{"sig":"MEYCIQCAKqGYjQ+f+o2eyTFxKzxROFwVt1pB9dWW4IIWHwwQVwIhALmKwPkQVeFLDYetMYKPv5ApLzGXWUySxQnvRB9ro4X8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3575626},"main":"lib/nativemou.js","gitHead":"9b1a7e889cff1bc4963421ef8d60b786996b21b2","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","test":"node ./test/e3.js && node ./test/e4.js && node ./test/e5.js","build":"node build.js","install":"node build.js"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.8.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.1.29_1755117694700_0.23841235039609376","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"mdbxmou","version":"0.1.32","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.1.32","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"e728eab40f6b6b18e7cfbda88c431909d278bed3","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.1.32.tgz","fileCount":210,"integrity":"sha512-t+QWyd4UbVcIqXinIqSg44uXmuVAc26ocpMEFe+/ng9HfJEiWAoQuo8L4THqFFPV+P2KFkuq0bLPrsHdsPlvBA==","signatures":[{"sig":"MEYCIQDG+qYS4ijMSr0bVXEocudqwSDc4NRCOMULUHJkiohJvgIhAKU7kdl6S4Hn7tY9QFRjxAMsWBd1A1YUTpYgHKh23x+E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3575787},"main":"lib/nativemou.js","gitHead":"64a0acbee23a448d8a4e4e18517962338dcc7bf5","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","test":"node ./test/e3.js && node ./test/e4.js && node ./test/e5.js","build":"node build.js","install":"node build.js","install-1":"git submodule update --init --recursive 2>/dev/null || true && node build.js","!prepublishOnly":"./prepare-npm.sh"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.8.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.1.32_1755118368742_0.1928135444224639","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"mdbxmou","version":"0.1.33","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.1.33","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"d768e8b083d0bb64ed7c323c801e033d6b178c93","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.1.33.tgz","fileCount":210,"integrity":"sha512-6+u/DG23v0TpMD1g8fHwiUnf+u7uiWUZXIVE23H3JGZj4etfhFdB/yy/KFwi7o13QMNaGn/mLHXuC9dzE01TkQ==","signatures":[{"sig":"MEUCIGaL9b650QxIVQPhrFZpYi43g+QNJIQ7XxHLZW55E8OtAiEAkwAuNVYyC9PtKDTml7N+8vp0uhRM2uns9orENU8/FqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3576394},"main":"lib/nativemou.js","gitHead":"3c6dd4bc457e648be551e7de7ebaba0e3223e94c","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","test":"node ./test/e3.js && node ./test/e4.js && node ./test/e5.js","build":"node build.js","install":"node build.js","install-1":"git submodule update --init --recursive 2>/dev/null || true && node build.js","!prepublishOnly":"./prepare-npm.sh"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.8.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.1.33_1755149828296_0.4533093992176256","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"mdbxmou","version":"0.1.34","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.1.34","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"832b0c8d8e2ece7eebb18e97823d302672f320d4","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.1.34.tgz","fileCount":210,"integrity":"sha512-IDxuOpXxQMpa5a6ycGGH1aSPxrR5K+UwGWkTQqSUg2946PitKJ1JL/YyRSDMsa1Jq/xg5diWxkatHWdM3oD1Lw==","signatures":[{"sig":"MEUCIHiXKyW16ATJasxdqpkuBt3UcxLTJCs3NxHIrz208b1FAiEAp9LEpF12+3ET6RBQg6GpM/fxokgoc/4ts06kClzMs5o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3576984},"main":"lib/nativemou.js","gitHead":"eb162150a4dde5339802e2afa439b14a80e734ff","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","test":"node ./test/e3.js && node ./test/e4.js && node ./test/e5.js","build":"node build.js","install":"node build.js","install-1":"git submodule update --init --recursive 2>/dev/null || true && node build.js","!prepublishOnly":"./prepare-npm.sh"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.8.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.1.34_1755150789599_0.7728479875947236","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"mdbxmou","version":"0.1.35","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.1.35","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"58bdad314a1ae7c7aa72278dd872eda05efbdcc8","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.1.35.tgz","fileCount":210,"integrity":"sha512-7seLzdmTnFsgDYXCSc82ZxnivBsuGtA6XuNQv8N0OpFkovJvH0/weTsof0S3u1oO56IrSZDDRegSD+N3nVdXqg==","signatures":[{"sig":"MEUCIFJplWJk9aQzSl7uemOibGV34T/XkveLBTWF9HhW2tt3AiEA6M70YpmQP06NzBiFvWVlu0IjidSbCjlKVfXvlej5k38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3577765},"main":"lib/nativemou.js","gitHead":"b1db6e6686eb2509682a8dfe8adfe96204e7d723","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","test":"node ./test/e3.js && node ./test/e4.js && node ./test/e5.js","build":"node build.js","install":"node build.js","install-1":"git submodule update --init --recursive 2>/dev/null || true && node build.js","!prepublishOnly":"./prepare-npm.sh"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.8.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.1.35_1755165107585_0.8209742864027669","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"mdbxmou","version":"0.2.0","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.2.0","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"4e7fa4668c61f70c8a1925756741c2362524196c","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.2.0.tgz","fileCount":212,"integrity":"sha512-+4/DOt62TfvIr1SPa7bIrm777nUG4xVHlk7zNTNwFpldoQuOcHl7KVtbHZMUHQ6W/Q1WQkyph741p5bnhA52UQ==","signatures":[{"sig":"MEQCIF4CjlwykAYAmdrhn3l6UXXV2kDHn7HIaGcXh26pfGaAAiA5SO0/Hc/rU/tbUsInbS8IMH4AZDqz8DN5TPW1pwNFHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3582814},"main":"lib/nativemou.js","gitHead":"3655474817c9d7492c9e54cd4c03178767e0af59","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","install":"node build.js","build-dev":"node build-dev.js"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.8.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.2.0_1756136402767_0.9381256459025602","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"mdbxmou","version":"0.2.1","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.2.1","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"eae2ccb9f53b81548f103336470e75132882134a","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.2.1.tgz","fileCount":212,"integrity":"sha512-BRuIBI6bYFGbzZMXmXfIC8XIMy3NMmpi9uGnR213g8PPDU5ax628mG0dcUXA/X3kvtJEue6NsjNG5mJaajZ/HA==","signatures":[{"sig":"MEYCIQCEDK+WEQIhFy2r2lO/CwpLKDEM/H68NqG4ab6kaeYGTgIhAPqiw8G2aK7/Ota38w2+fJy4MOIzm/bLZQEcK8ilBsFL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3583301},"main":"lib/nativemou.js","gitHead":"b678ebc4d056f5b9a3e9039356c785df8d377d99","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","install":"node build.js","build-dev":"node build-dev.js"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.8.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.2.1_1756188465395_0.7074461972382835","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"mdbxmou","version":"0.2.2","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.2.2","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"7e44acb24dedbd5a7b5744a8b2c1e66aca6c0fe3","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.2.2.tgz","fileCount":212,"integrity":"sha512-922Z/4esjKxJb0ACEcV7Eo/b4X3KJpKhRwIyD5VO0G8jd+LQ5mkTp9N0Cz/jkZgieHQAikY649WQUs5AFp6TCQ==","signatures":[{"sig":"MEUCICiA8N2S2BbkritYLuxcUIENZhb6ZjB6HkQVKcQEfy4NAiEAxEJQht9VmAUb5ByjDv0sFp73gM6GqEOmKnDnNr0KbL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3582748},"main":"lib/nativemou.js","gitHead":"9a20e15e086969b6b51ab57bcdb1d7c30d8d8614","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","install":"node build.js","build-dev":"node build-dev.js"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.8.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.2.2_1756270796361_0.06427247927870883","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"mdbxmou","version":"0.2.4","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.2.4","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"dcbeca311e4e61846e276cf87ad5f224a3ad631d","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.2.4.tgz","fileCount":214,"integrity":"sha512-NF/a0BQ08Oq8s9b61a85HMZOan3dtvOKudH/mXj2l0ryUQP3P/cpVD/pELTyUbHa+7oetbVGZ1scqRKTP3ctqg==","signatures":[{"sig":"MEUCIQC/InRDK/AqO6CPAb56vfEZQkl7Lh1mPQnHkcoRi8ZXeQIgT25RaKkjUkZry38yHKKedoJGq1NQ3c1cEpsj6NndO6w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3585517},"main":"lib/nativemou.js","exports":{".":{"import":"./lib/index.mjs","require":"./lib/nativemou.js"},"./async":{"import":"./lib/async.mjs","require":"./lib/mdbx_evn_async.js"},"./nativemou":"./lib/nativemou.js","./package.json":"./package.json"},"gitHead":"7167c9395cd202cbb9a95c1031463f53ee8b4bca","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.8.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"20.19.6","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.2.4_1765784326655_0.8013545537060531","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"mdbxmou","version":"0.2.5","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.2.5","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"acb90fcedcae3a3a7796df96bd9346571e06fc71","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.2.5.tgz","fileCount":222,"integrity":"sha512-DlrPMcl44Abo/JrNGxOZP2v32Absb2H0kcYgB5LG8q31/QwVHW+IAjb/pnd5UbEKB8qp8YtZY/XbFqOzMxOHFw==","signatures":[{"sig":"MEUCIADBd1ih7PxpJlyk+rJcRAfdcnAGayy7fza4PG0Hv/VCAiEA8VB9rB+nj7p3OIUgYfn/VQVVtQVWjrNVzk3M78viUic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3607175},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"8409e18229f71cf474ff7651a01b0fce560dd823","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.9.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"22.13.1","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.2.5_1767854627969_0.15260643727158585","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"mdbxmou","version":"0.2.6","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.2.6","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"fc6af06e9701b4c393cf8cf9b6e21de12aa028f6","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.2.6.tgz","fileCount":222,"integrity":"sha512-x1U/5L2VorfVA0wrNuFydh/pYeyRB8xbmDcEgTBzM+PwfABT3WBOoSHlYUz/j+KKMVM4w7lat297R1u6+eqgyQ==","signatures":[{"sig":"MEYCIQCkAbJkK4T5Z0tB0R6o6MorqlcEi4S6rkLzZSsfMKJL+AIhAJr+rxZi6RWG+V5s9o+HWbDL+r6sjDmqJrsEDgUMKANw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3609994},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"df54782afcbc2678314a7f0e7198fb543e99228f","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.9.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"22.13.1","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.2.6_1767974214449_0.9367401615209197","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"mdbxmou","version":"0.2.7","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.2.7","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"646ca6f49349c150d689c3875c62c0cdc1180e51","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.2.7.tgz","fileCount":220,"integrity":"sha512-e8HtvQBG2306WEfmOipg3usVOYhrczzBlUpVEHA8BQSzkPXEu4lM4ZTz1MQ1DuSY3R1M0bux4kodJZCGNAUlFA==","signatures":[{"sig":"MEUCIQC6uda4DT5ZxGM+sg0PKDGFicP4usSpFlqAy8Io9LMNSQIgExk7vCBnoaiwEDEMXC3ZaOC8WPZl22yvBHOau7v8c/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3592770},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"7f0e0916216f32cf8e5d3f0daf33f6b59b99b55f","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.9.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"22.13.1","dependencies":{"uuid":"^13.0.0","cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.2.7_1768042003031_0.40991562760567035","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"mdbxmou","version":"0.3.0","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.0","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"53a806a4c62ff7225761d95e6f5be915596fa312","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.0.tgz","fileCount":224,"integrity":"sha512-Q1Lu57Q6TfZQccrQ9RIoN1/Ak7t2qQ9kkffRw7nkJdQqyuD7QPlkZuEBw8GbErO71U57JOhNztc/7xAWSW7T6g==","signatures":[{"sig":"MEYCIQCD/YPphBQ+PUqbxD3zRckXCsSTrAetbb45Z5ZAV7g/lAIhALO1CZA1hoo0EtsB2RtO6vXkdRGMlUhWYFz1K9/esjQ9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3625376},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"08f90b2ffb9479f56d79ee639ee438bbda4eed0a","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.9.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"22.13.1","dependencies":{"uuid":"^13.0.0","cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.0_1768046517060_0.6365816137068778","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"mdbxmou","version":"0.3.1","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.1","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"d0e52ade9651e380d952a561dbf7e5f11ccedd1d","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.1.tgz","fileCount":224,"integrity":"sha512-dIe/HuZ9I4EBVJ1JAbK9uV4pSlx7BwyARYkX5Bo0NwgzeEbcDB3jK4tPwtLLtaDZA2MfCY6bgc8LxT3K1ZyXLQ==","signatures":[{"sig":"MEQCIBI1Xa8FoF+7CnDmGc0OLE85J3a9e/dsbz4tSBwg4CUmAiBfJY4wuxk21LwsTguqPs2f4Ux8vuAK2So91V1kTB7fNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3625353},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"a35fca08060e32e834f6662de2f7a5cfa6bfcc88","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.9.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"22.13.1","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.1_1768061085313_0.686238474658549","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"mdbxmou","version":"0.3.2","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.2","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"77b86b417b45cc0d79be6fb0209d59e9d57cbe1e","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.2.tgz","fileCount":224,"integrity":"sha512-LctH2OlVj+5lEvEdELk+h9x3WMPvCUClfLf9w8vN699VLWa8C+wgqnzXcf8obMZ5GGyW8I1MAhezRaH6ItIpYA==","signatures":[{"sig":"MEYCIQCVcC9Tuvf5YAo8t402m8+SkKQlfdT1WN4YFbQFJvO7KgIhAMlUxkPbDKNVLNvUYJauuC4rmUiFkpUQNTSg11sI7p0V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3627964},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"913995c9307b622a124290fd4de5e6bb4381cdad","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.9.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"22.13.1","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.2_1768123863227_0.7186254265021814","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"mdbxmou","version":"0.3.3","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.3","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"b048888335fc3cb6a0712246a3751f085fa883ba","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.3.tgz","fileCount":224,"integrity":"sha512-lX98ph17yy+gJJwMiNluO9db7tfjYAsq19VXDQTL79oSvhdhAhvf4aulPj7Z3QGHEX2uhfO6sDGSMuBKKg6WWw==","signatures":[{"sig":"MEUCIHFFc7+1LcIBge4+bptWet1cFonfE+beibur/A6PJPytAiEAlM1b3AKi4q8phyM82evYZB/6Z/CbhBvLOrvq7a4X5iI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3632501},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"5a72a50f5cab15bb33f274fd69c1ec01a952e09b","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.9.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"22.13.1","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.3_1768201046298_0.7978350221316834","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"mdbxmou","version":"0.3.4","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.4","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"ad3f04b172c7b317943688453d8fa1c634fdcefe","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.4.tgz","fileCount":224,"integrity":"sha512-JFqaw4VNVefaHtwRGYsbsBZahfzxhXy033RXa+FpF1Xk+L0XIrt+8KROvjbaSks5yeje7sW7DU3rpbdjf7y4ZA==","signatures":[{"sig":"MEQCICNNKuP6Zvu19h4iJEt/1ojbQElTcoRgweo9wpAwVfF9AiBoT0EqjGtbK4wruL7JsweCB50F8M5M1CG0A9E8rV+E4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3636642},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"2d6e11d9260f6163267adbf32758854e38ccb61a","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.9.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"22.13.1","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.4_1768227940996_0.8003811280920328","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"mdbxmou","version":"0.3.5","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.5","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"e0ce17b10141c53173b0619aec1467040dee82a8","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.5.tgz","fileCount":224,"integrity":"sha512-SFlR3uH7HIB4Elq0xwC45KFDelY3QPVHT7PB7kRo3OfkhdhLfp8k6o3C9upDbhLBsGLsh19E0Ds9GGHZVdkh8Q==","signatures":[{"sig":"MEQCIGzg/u6Qr5tFcGeX9AXDmiN54BwOPvhF5+KoipoSiVF/AiAlIVwu1jw6iThVTRVpyN65u4ePWgmp4M06qJOm/z/53Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3638690},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"f6ad9950c08e2848d149985cc31d4a46e4a4214d","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.9.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"22.13.1","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.5_1768298119032_0.06259939760030941","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"mdbxmou","version":"0.3.6","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.6","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"d1b20dfcd9a380bd67fbca45d5be270c8a494a23","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.6.tgz","fileCount":224,"integrity":"sha512-8vzHMD3IY2k2ggvj93tTdODy+JHogMQZjpyyL0vmnB3Xnirk3OdxoZqcMcrRRiju1rOcEJjGnn7tLZTPUek3NQ==","signatures":[{"sig":"MEUCIGp4GBXT7dKGhtkvr/TgfXEI6CwsXgB6sF94nOxwzYeHAiEAmPPlj4KRnTclLq3rpVptubRbXve8DnLlbz7gs54n+eE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3639653},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"f84d7b91bc34b994bd7ebc6fb9f8d4cc0458da8a","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.9.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"22.13.1","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.6_1768324130981_0.39606832563968886","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"mdbxmou","version":"0.3.7","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.7","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"1dd77f1da6b29649cb723c392cb9b10537015b00","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.7.tgz","fileCount":224,"integrity":"sha512-oh5y/uyOQxbciFnU8tce/ydhCGqXSgQq/xgO5tTFtgIQ2BxynFkD4er5axbBoQU36biC8aYLe2j7Hp6TTDED4Q==","signatures":[{"sig":"MEUCIQCOkIGxLokjNTColl5+KmIE/kY6tRjP02nkHVibh9cHuwIgbI7rzCKVja4XJeq8WDOzFtiEDCmBuKEFkxGFNpOssMg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3640414},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"d97a4f0b4dc103babda1becc8b4bebf7e73cab1b","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.9.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"22.13.1","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.7_1768337741433_0.4272491725953169","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"mdbxmou","version":"0.3.8","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.8","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"18333be59d6a0e8d9e5871d8976c9410d2497d49","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.8.tgz","fileCount":89,"integrity":"sha512-QflpOWIiMNzA4NLdfe+uQOkBXrtmLvGcqiPssWjtxeJDi/co7+wmmlModMDZ9tIQy6xQqI1Fc+XxJ5QAA9y6Rg==","signatures":[{"sig":"MEYCIQCjMohew1hVWXs7HDSA3VtcTxbff7jQZYyhqiIxJDL8bgIhAP3fcZsgH6tMu66JqhVTPbrgg3StYzSaiB8ZLt85zttf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3883467},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"1be756542935cde49058bf554dd3f780eaa77749","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"10.9.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"22.13.1","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.8_1769939748599_0.698228028820618","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"mdbxmou","version":"0.3.9","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.9","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"a4e387e8868cda24f9139e9e661dc866fcebe721","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.9.tgz","fileCount":87,"integrity":"sha512-ra+Cf9GU3s7Pp6VP0to+C2/w/O52C2r8avp309qvYzCUBaXLnjZ4sITWjCsbCi9+nlf5QMpvROJjZgaqpXeGNQ==","signatures":[{"sig":"MEYCIQC4XoI/vtTnX2Vqinf0+sDqs+rUzQWJdmHOtk9KpsLYigIhAJYk2BSPuPmGycT2391MNmCQU8EEU/+aJSnyGc5S1pXz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3876775},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"ea78a96c3f3a1ae19d24c2da836192ade6d61569","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"11.6.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"24.11.1","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.9_1773482475231_0.6356149937002726","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"mdbxmou","version":"0.3.10","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.10","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"b9e5877385520b6742e2552b2256e403e5624d8c","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.10.tgz","fileCount":87,"integrity":"sha512-lmIoFrKQ6I6bHIU6VVgJAvof3PCn63+UtpC6F5fgVD7ZMJZmFfx6gEkCJAxpwcAX58RcuDaU/JqWPqWnrPg4KA==","signatures":[{"sig":"MEQCIFXH0IxVQFQSyYQqJnOG+QhC+aELdc/nIhNuSq5wD7zwAiAz71gxxdxXPmwHQwYmA9FQ5zYKa3+ygyz4+NO8zG7hGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3876857},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"b8b5056563337e2d22096653462709d9d4595ec8","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"11.6.2","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"24.11.1","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.10_1773490038063_0.7630949043971669","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"mdbxmou","version":"0.3.11","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.11","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"5e92f810fab4035dc76f7dbdb5834905f2381053","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.11.tgz","fileCount":89,"integrity":"sha512-UJo73rgegx6UIcoSemaBtX9UELWBbCPJMSmWaaV4rWOmpz+gX/YD6Yn6N4yBoY0LdG++ukTrEbN18cQXP9ip5g==","signatures":[{"sig":"MEUCIAGuSGmOMy3mhEZ+BYuFfPin13/3Ch0mnVK/7VcrrFB6AiEA8jFA3QJ7D1hDzNmkhEdHLTYqz3GnL1nAMiJz3iwBkT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3878371},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"f13d09ac15ba0c05cdaeab891b67d3a1e5dfbab5","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e7":"node ./test/e7.js","e8":"node ./test/e8.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"11.9.0","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"24.14.0","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"msgpackr":"^1.11.9","typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.11_1775024883892_0.8770077675481915","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"mdbxmou","version":"0.3.12","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.12","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"89117bfd9317d429919c4c4e04aedf039e94600f","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.12.tgz","fileCount":89,"integrity":"sha512-w2U59me3mxdOoSybOcI2GID0CBvqqDIZC4BQmC7Y4yt75kq6oNzo4JPEG2K2FAdcPwvpfH+6XZzzctUXspFqGw==","signatures":[{"sig":"MEYCIQC+DF4AZeesMM0vQpNONOZbZsUDOtRBdnREVxqyVyDo/AIhAPK/C/yv8RBefOeZd3bVpyPNYaAbTPWtrsOUnXjrhTyT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3888427},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"5c931cf05119af044eacf7ff2e4d95e71c070612","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e7":"node ./test/e7.js","e8":"node ./test/e8.js","e9":"node ./test/e9.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"11.9.0","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"24.14.0","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"msgpackr":"^1.11.9","typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.12_1775051471341_0.2533198884736729","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"mdbxmou","version":"0.3.13","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.3.13","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"736d23bd5f4f63b300ec46a555103e8111572e94","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.3.13.tgz","fileCount":81,"integrity":"sha512-gMBZaj2UC9AxDHqokoQQYFVt8Ig+kC6JXGJ17kfBh6Byj2dOMp/7omj3/S4rDH2NChup3rN+wTPMn5eInBzWnA==","signatures":[{"sig":"MEYCIQDFkjK4ir3QdeXT/2s61VsrK9+7W8PsVFOhyM3gtmFKuQIhAIC35dC8f9zLO8G8BR/0CdIy1JJ6vvNT2SWFbd0jqv57","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3881170},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"1b7819b038f160bf301dfc8ba2023a00d81cc1fe","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e7":"node ./test/e7.js","e8":"node ./test/e8.js","e9":"node ./test/e9.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"11.9.0","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"24.14.0","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"msgpackr":"^1.11.9","typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.3.13_1778920159432_0.8461985293367391","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"mdbxmou","version":"0.4.0","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.4.0","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"20158cf338c6dd91f245edff55cc0c7baa6a3341","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.4.0.tgz","fileCount":87,"integrity":"sha512-13HbMl+JvhC87PQ8hVynr8TE5Co7uiRg0O9zYBx6yRzBwOkxOyOFPC/O9mCkEkcy6Q0pxVfgyxbRWlrtfDs+ZA==","signatures":[{"sig":"MEUCIAq5bL3YyB4/1CdjIqjX/dqMVYEFmAFsuD1JcDxJD9X9AiEAt5CmjQJZrVWifqqWgfB810RZPktzLpNpl7gES32Gwww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3486426},"main":"lib/nativemou.js","types":"./lib/index.d.mts","exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"29a2681d9aaaa356601e8f890383334516b7c113","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e7":"node ./test/e7.js","e8":"node ./test/e8.js","e9":"node ./test/e9.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"11.16.0","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"26.3.0","dependencies":{"cmake-js":"^7.3.1","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"msgpackr":"^1.11.9","typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.4.0_1784789552630_0.10385044856758174","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"mdbxmou","version":"0.5.0","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.5.0","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"b3e622f26b43908734e9b2d4a31a8a1916affad7","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.5.0.tgz","fileCount":90,"integrity":"sha512-N5T6b/X4Xb2xG3d5J3uhUGLu4Ba7zBXPuWnHLs5nKG9efuxxBjT3jbani40B2QfhorMT80s9cAs1bqXF6l6xOg==","signatures":[{"sig":"MEUCIQDHTEnCoP9FE7Gh+/f8sCUeARC208bmwSkeW2wP1sn93QIgOHZuhTEDE8XkZl1MjRD0DElwqB9OHxl/84UQxzrRf1o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3541787},"main":"lib/nativemou.js","_from":"file:mdbxmou-0.5.0.tgz","types":"./lib/index.d.mts","engines":{"node":">=22.9.0"},"exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e7":"node ./test/e7.js","e8":"node ./test/e8.js","e9":"node ./test/e9.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs","benchmark:stage5":"node --expose-gc ./test/stage5-benchmark.js"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"_resolved":"/tmp/mdbxmou-windows-fix/mdbxmou-0.5.0.tgz","_integrity":"sha512-N5T6b/X4Xb2xG3d5J3uhUGLu4Ba7zBXPuWnHLs5nKG9efuxxBjT3jbani40B2QfhorMT80s9cAs1bqXF6l6xOg==","repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"11.16.0","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"26.3.0","dependencies":{"cmake-js":"^8.0.0","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"msgpackr":"^1.11.9","typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.5.0_1786259321572_0.9172611913468884","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"mdbxmou","version":"0.5.4","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.5.4","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"f75386f54685b5f632f77a8c6cb0d28104685950","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.5.4.tgz","fileCount":104,"integrity":"sha512-qiP9H+TktEtDHsWOxu3Ox1XibsIqQGsiFeoTHHYKwoqM1/T18K2dkrsWzaFgccczaHrpsAWx5vJo6zD2H8Tcag==","signatures":[{"sig":"MEYCIQCQlrB8QkqFuAyrHIprfJHF+WY3qL4bzfMWMb+CafJV3wIhALrBtLMT/j7tLTqPNf0m7xAnN193DJqp56c+bqQq6T77","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3514772},"main":"lib/nativemou.js","types":"./lib/index.d.mts","engines":{"node":">=22.9.0"},"exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"b33161db8ebda61b850460cf6c799f0d986d4a2f","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e6":"node ./test/e6.js","e7":"node ./test/e7.js","e8":"node ./test/e8.js","e9":"node ./test/e9.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs","test:checkpoint":"node ./test/checkpoint.js --run-suite","benchmark:stage5":"node --expose-gc ./test/stage5-benchmark.js","test:libmdbx-0143":"node ./test/libmdbx-0143.js --run-suite","test:worker-isolates":"node ./test/worker-isolates.js --run-suite","test:commit-and-start-read":"node ./test/commit-and-start-read.js"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"11.19.0","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"26.7.0","dependencies":{"cmake-js":"^8.0.0","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"msgpackr":"^1.11.9","typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.5.4_1786706102934_0.9588468652774673","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"mdbxmou","version":"0.5.5","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","_id":"mdbxmou@0.5.5","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"ac1f5a873f98f7532643d09ada7058f4e83ac909","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.5.5.tgz","fileCount":104,"integrity":"sha512-SCWe4LT0Z0l4+w6P7LsUo20rlr2uGxG3ZNHWBk9nFJGy3z0H/tINycuUslMuN4ATEGQFTz29NZOw0KChfN0y7g==","signatures":[{"sig":"MEUCIDTpx9BiFVncfvKeRQkEsxwS6WvAj50QxvXXRTzDxM2IAiEA5v2H+saZw5EJlUzfzCULI8se7cjvCtIj6RDPS+iM4CY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3514920},"main":"lib/nativemou.js","types":"./lib/index.d.mts","engines":{"node":">=22.9.0"},"exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gitHead":"5b9ed8efc52e05747e4446fc26de363919185d39","gypfile":true,"scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e6":"node ./test/e6.js","e7":"node ./test/e7.js","e8":"node ./test/e8.js","e9":"node ./test/e9.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs","test:log-level":"node ./test/log-level.js","test:checkpoint":"node ./test/checkpoint.js --run-suite","benchmark:stage5":"node --expose-gc ./test/stage5-benchmark.js","test:libmdbx-0143":"node ./test/libmdbx-0143.js --run-suite","test:worker-isolates":"node ./test/worker-isolates.js --run-suite","test:commit-and-start-read":"node ./test/commit-and-start-read.js"},"_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"11.19.0","description":"Node bindings for mdbx","directories":{},"_nodeVersion":"26.7.0","dependencies":{"cmake-js":"^8.0.0","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"msgpackr":"^1.11.9","typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/mdbxmou_0.5.5_1786709264792_0.9386685898390057","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"_id":"mdbxmou@0.5.6","bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"dist":{"shasum":"d6bf343dc45a705e6b4ea583230c863bdaae6275","tarball":"https://registry.npmjs.org/mdbxmou/-/mdbxmou-0.5.6.tgz","fileCount":107,"integrity":"sha512-D/CWV8TOlDom/VKkP9FdNcChNSexc7Uxc3rzaWkWODQiDadmpSzH91TV7L1lDGCFhzGmc2G+EDa/LHekPlhxrw==","signatures":[{"sig":"MEUCIQC+fDBuoBUc45gSO9ooUVw7eBrTOqDsSQys4b9eIRnJwQIgPlMmtvLAnOhTW+RDR+UNYUUjAO7grvXejr/5ahLVpkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGhotT2fJ2RdNRByquMnFOYhrYVHaziukTU+nnn1TuTcAiArRjBrpasvPeEcZYpaSWtNYTKdPYsHL6IzEWeX3iLPUA=="}],"unpackedSize":3517264},"main":"lib/nativemou.js","name":"mdbxmou","_from":"file:/tmp/mdbxmou-056-clean-54bod4ur/mdbxmou-0.5.6.tgz","types":"./lib/index.d.mts","author":{"name":"Igor Ikonopistsev"},"engines":{"node":">=22.9.0"},"exports":{".":{"import":{"types":"./lib/index.d.mts","default":"./lib/index.mjs"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./async":{"import":{"types":"./lib/async.d.mts","default":"./lib/async.mjs"},"require":{"types":"./lib/async.d.cts","default":"./lib/mdbx_evn_async.js"}},"./nativemou":{"import":{"types":"./lib/nativemou.d.mts","default":"./lib/nativemou.js"},"require":{"types":"./lib/nativemou.d.cts","default":"./lib/nativemou.js"}},"./package.json":"./package.json"},"gypfile":true,"license":"Apache-2.0","scripts":{"e3":"node ./test/e3.js","e4":"node ./test/e4.js","e5":"node ./test/e5.js","e6":"node ./test/e6.js","e7":"node ./test/e7.js","e8":"node ./test/e8.js","e9":"node ./test/e9.js","e33":"node ./test/e33.js","build":"node build.js","e4async":"node ./test/e4async.mjs","install":"node build.js","build-dev":"node build-dev.js","test:types":"node ./test/types/run.mjs","test:sync-ex":"node ./test/sync-ex.js","test:log-level":"node ./test/log-level.js","test:checkpoint":"node ./test/checkpoint.js --run-suite","benchmark:stage5":"node --expose-gc ./test/stage5-benchmark.js","test:libmdbx-0143":"node ./test/libmdbx-0143.js --run-suite","test:worker-isolates":"node ./test/worker-isolates.js --run-suite","test:commit-and-start-read":"node ./test/commit-and-start-read.js"},"version":"0.5.6","_npmUser":{"name":"ikonopistsev","email":"sondermind@gmail.com"},"homepage":"https://github.com/ikonopistsev/mdbxmou#readme","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"_resolved":"/tmp/mdbxmou-056-clean-54bod4ur/mdbxmou-0.5.6.tgz","_integrity":"sha512-D/CWV8TOlDom/VKkP9FdNcChNSexc7Uxc3rzaWkWODQiDadmpSzH91TV7L1lDGCFhzGmc2G+EDa/LHekPlhxrw==","repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"_npmVersion":"11.16.0","description":"Node bindings for mdbx","directories":{},"maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"_nodeVersion":"26.3.0","dependencies":{"cmake-js":"^8.0.0","node-addon-api":"^8.5.0"},"_hasShrinkwrap":false,"devDependencies":{"msgpackr":"^1.11.9","typescript":"^5.6.3","@types/node":"^22.10.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mdbxmou_0.5.6_1790672115763_0.15213928784622222"}}},"time":{"created":"2025-08-13T20:04:30.293Z","modified":"2026-09-29T08:55:16.055Z","0.1.26":"2025-08-13T20:04:30.633Z","0.1.27":"2025-08-13T20:09:20.578Z","0.1.28":"2025-08-13T20:28:16.126Z","0.1.29":"2025-08-13T20:41:34.876Z","0.1.32":"2025-08-13T20:52:49.057Z","0.1.33":"2025-08-14T05:37:08.536Z","0.1.34":"2025-08-14T05:53:09.828Z","0.1.35":"2025-08-14T09:51:47.828Z","0.2.0":"2025-08-25T15:40:03.082Z","0.2.1":"2025-08-26T06:07:45.642Z","0.2.2":"2025-08-27T04:59:56.578Z","0.2.4":"2025-12-15T07:38:46.938Z","0.2.5":"2026-01-08T06:43:48.221Z","0.2.6":"2026-01-09T15:56:54.658Z","0.2.7":"2026-01-10T10:46:43.274Z","0.3.0":"2026-01-10T12:01:57.271Z","0.3.1":"2026-01-10T16:04:45.648Z","0.3.2":"2026-01-11T09:31:03.466Z","0.3.3":"2026-01-12T06:57:26.476Z","0.3.4":"2026-01-12T14:25:41.207Z","0.3.5":"2026-01-13T09:55:19.233Z","0.3.6":"2026-01-13T17:08:51.174Z","0.3.7":"2026-01-13T20:55:41.640Z","0.3.8":"2026-02-01T09:55:48.793Z","0.3.9":"2026-03-14T10:01:15.504Z","0.3.10":"2026-03-14T12:07:18.378Z","0.3.11":"2026-04-01T06:28:04.115Z","0.3.12":"2026-04-01T13:51:11.532Z","0.3.13":"2026-05-16T08:29:19.616Z","0.4.0":"2026-07-23T06:52:32.850Z","0.5.0":"2026-08-09T07:08:41.746Z","0.5.4":"2026-08-14T11:15:03.123Z","0.5.5":"2026-08-14T12:07:44.997Z","0.5.6":"2026-09-29T08:55:15.874Z"},"bugs":{"url":"https://github.com/ikonopistsev/mdbxmou/issues"},"author":{"name":"Igor Ikonopistsev"},"license":"Apache-2.0","homepage":"https://github.com/ikonopistsev/mdbxmou#readme","keywords":["mdbx","libmdbx","database","db","kv","bindings","embedded"],"repository":{"url":"git+https://github.com/ikonopistsev/mdbxmou.git","type":"git"},"description":"Node bindings for mdbx","maintainers":[{"name":"ikonopistsev","email":"sondermind@gmail.com"}],"readme":"# mdbxmou\n\nNode.js binding for [libmdbx](https://github.com/Mithril-mine/libmdbx) — a fast, lightweight, embedded key-value database.\n\nBundles [libmdbx v0.14.4 \"Skynet Eve\"](https://github.com/Mithril-mine/libmdbx/releases/tag/v0.14.4).\nSource builds require libmdbx 0.14.4 or newer.\n\n## Features\n\n- **Synchronous API** — Direct MDBX operations in main thread\n- **Asynchronous API** — Background operations with async/await\n- **Transactions** — ACID transactions with read/write modes\n- **Multiple key/value types** — String, binary, ordinal keys and ordinal duplicate values\n- **Batch operations** — Efficient multi-key read/write\n- **Memory-mapped** — High-performance memory-mapped I/O\n\n## Worker Threads\n\nThe native addon may be loaded independently by the main thread and multiple\n`worker_threads`. Each isolate must create and retain its own MDBX environment,\ntransactions, DBIs, and cursors, and must use a separate database path in this\nrelease. Opening the same database path from multiple isolates of one process\nis not supported or verified.\n\nDo not pass MDBX wrappers, native pointers, borrowed `DataView` objects, or\ntheir backing `ArrayBuffer` between isolates. Copied or serialized data may be\nsent normally. Separate OS processes may open the same database under the\nusual MDBX locking rules.\n\n## Installation\n\n```bash\nnpm install mdbxmou\n```\n\n## Quick Start\n\nCommonJS:\n\n```javascript\nconst { MDBX_Env, MDBX_Param } = require('mdbxmou');\n\nasync function main() {\n  // Create environment\n  const env = new MDBX_Env();\n  await env.open({ \n    path: './data',\n    keyFlag: MDBX_Param.keyFlag.string,    // Default key encoding (optional)\n    valueFlag: MDBX_Param.valueFlag.string // Default value encoding (optional)\n  });\n\n  // Write data\n  const txn = env.startWrite();\n  const dbi = txn.createMap(MDBX_Param.keyMode.ordinal);\n  dbi.put(txn, 1, \"hello\");\n  dbi.put(txn, 2, \"world\");\n  txn.commit();\n\n  // Read data\n  const readTxn = env.startRead();\n  const readDbi = readTxn.openMap(BigInt(MDBX_Param.keyMode.ordinal));\n  const value = readDbi.get(readTxn, 1);\n  console.log(value); // \"hello\"\n  readTxn.commit();\n\n  await env.close();\n}\n\nmain().catch(console.error);\n```\n\nESM:\n\n```javascript\nimport { MDBX_Env, MDBX_Param } from \"mdbxmou\";\n```\n\n## API Reference\n\n### Environment (MDBX_Env)\n\n#### Constructor\n```javascript\nconst env = new MDBX_Env();\n```\n\n#### Methods\n\n**open(options) → Promise**\n```javascript\nawait env.open({\n  path: './database',           // Database directory\n  keyFlag: MDBX_Param.keyFlag.string,    // Default key encoding (optional)\n  valueFlag: MDBX_Param.valueFlag.string, // Default value encoding (optional)\n  flags: MDBX_Param.envFlag.nostickythreads\n});\n```\n\nOptions:\n- `path` - Database directory path\n- `flags` - Environment flags (optional, defaults to `0`)\n- `keyFlag` - Default key encoding for all operations (optional, defaults to Buffer)\n  - Only `string` can be set (ordinal mode uses `number`/`bigint` separately)\n- `valueFlag` - Default value encoding for all operations (optional, defaults to Buffer)\n  - `string` affects normal string values\n  - `number` and `bigint` are meaningful for `valueMode.multiOrdinal`\n- `maxDbi` - Maximum number of databases (optional, default `32`)\n- `mode` - Filesystem permissions mode (optional, default `0664`)\n- `geometry` - Map size/geometry options (optional)\n- `trackBorrowedViews` - Track and detach non-empty buffers borrowed by\n  `getView()` when their transaction completes (optional, default `true`; keep\n  enabled unless profiling proves that reference tracking is a bottleneck)\n\nNote: When `keyFlag` or `valueFlag` are set at environment level, they become defaults for all subsequent operations unless explicitly overridden.\n\n### Key Type Configuration\n\nThe library uses a two-level system for configuring key types:\n\n#### Level 1: Environment (`keyFlag`)\n\nWhen opening the environment, `keyFlag` controls how **string/binary keys** are returned:\n\n| `keyFlag` value | String/Binary keys returned as |\n|-----------------|-------------------------------|\n| `0` (default)   | `Buffer`                      |\n| `keyFlag.string` (2) | `String`                 |\n\n```javascript\n// Keys returned as Buffer (default)\nawait env.open({ path: './data' });\n\n// Keys returned as String\nawait env.open({ \n  path: './data',\n  keyFlag: MDBX_Param.keyFlag.string \n});\n```\n\n#### Level 2: Database (`keyMode`)\n\nWhen opening/creating a database, the **argument type** determines how **ordinal (integer) keys** are returned:\n\n| Argument type | Ordinal keys returned as |\n|---------------|-------------------------|\n| `Number`      | `Number`                |\n| `BigInt`      | `BigInt`                |\n\n```javascript\n// Ordinal keys as Number\nconst dbi = txn.openMap(MDBX_Param.keyMode.ordinal);        // keyMode.ordinal = 8\ndbi.keys(txn);  // [0, 1, 2, 3, ...]\n\n// Ordinal keys as BigInt  \nconst dbi = txn.openMap(BigInt(MDBX_Param.keyMode.ordinal)); // BigInt(8)\ndbi.keys(txn);  // [0n, 1n, 2n, 3n, ...]\n```\n\n#### Summary\n\n| Key type | Configuration level | Option | Result type |\n|----------|--------------------|--------------------|-------------|\n| String/Binary | env.open() | `keyFlag: 0` | `Buffer` |\n| String/Binary | env.open() | `keyFlag: keyFlag.string` | `String` |\n| Ordinal | openMap/createMap | `keyMode.ordinal` (Number) | `Number` |\n| Ordinal | openMap/createMap | `BigInt(keyMode.ordinal)` | `BigInt` |\n\n**close() → Promise**\n```javascript\nawait env.close();\n```\n\n**openSync(options)**\n```javascript\nenv.openSync({\n  path: './database',\n  valueFlag: MDBX_Param.valueFlag.string\n});\n```\n\n**closeSync()**\n```javascript\nenv.closeSync();\n```\n\n**setOption(option, value)**\n```javascript\nenv.setOption(MDBX_Param.envOption.syncBytes, 4 * 1024 * 1024);\nenv.setOption(MDBX_Param.envOption.syncPeriod, 0.2); // 200 ms\n```\n\n> **Note**: `syncPeriod` is passed in **seconds** and may be fractional. Other options are passed as non-negative integer values.\n> **Note**: `maxDb` and `maxReaders` are pre-open options. Set them through `open/openSync` (`maxDbi`, `maxReaders`) instead of `setOption()`.\n\n**syncEx(force, nonblock) → number**\n```javascript\nconst result = env.syncEx(true, false); // 0 or -1; both mean success\n```\n\nReturns the native result: `0` (`MDBX_SUCCESS`) for a successful call, or\n`-1` (`MDBX_RESULT_TRUE`) when there is nothing to sync. Real errors still\nthrow, including a read-only environment or `MDBX_BUSY` when `nonblock=true`\ncannot acquire the writer lock. Both arguments must be booleans; an unopened\nor closed environment throws a JavaScript error.\n\nUse `syncEx(true, false)` to force and wait for synchronization of committed\ndata. With `force=false`, libmdbx follows the environment's sync policy and\nautosync thresholds (`syncBytes` / `syncPeriod`). A successful return in this\nmode, including `0`, does not guarantee that all pending data was flushed.\n\n**startWrite() → Transaction**\n```javascript\nconst txn = env.startWrite();\n```\n\n**startRead() → Transaction**\n```javascript\nconst txn = env.startRead();\n```\n\n**query(requests) → Promise<Array>** (Async batch operations)\n```javascript\nconst result = await env.query([\n  {\n    dbi,\n    mode: MDBX_Param.queryMode.get,\n    item: [{ key: 1 }, { key: 2 }]\n  },\n  {\n    dbi,\n    mode: MDBX_Param.queryMode.upsert,\n    putFlag: MDBX_Param.putFlag.noOverwrite,\n    item: [{ key: 3, value: \"v3\" }]\n  }\n]);\n```\n\n`query()` uses the passed `dbi` and inherits key/value settings from it. `queryMode` selects the operation (`get`, `del`, or base write mode), and optional `putFlag` adds write-only MDBX flags. In `query()` only `noOverwrite`, `noDupData`, `current`, `append`, and `appendDup` are supported.\n\n### Transaction\n\n#### Methods\n\n**createMap([db_name | keyMode], [keyMode | valueMode], [valueMode]) → DBI**\n**createMap({ name, keyFlag, valueFlag, keyMode, valueMode }) → DBI**\n```javascript\n// No arguments - default DB with env key/value flags (buffer if not set)\nconst dbi = txn.createMap();\n\n// One argument - keyMode only\nconst dbi = txn.createMap(MDBX_Param.keyMode.ordinal);\n\n// One argument - db_name only (uses default keyMode)\nconst namedDbi = txn.createMap(\"my-table\");\n\n// Two arguments - keyMode + valueMode\nconst dbi = txn.createMap(MDBX_Param.keyMode.ordinal, MDBX_Param.valueMode.multi);\n\n// Two arguments - db_name + keyMode\nconst namedDbi = txn.createMap(\"my-table\", MDBX_Param.keyMode.ordinal);\n\n// Three arguments - db_name + keyMode + valueMode  \nconst namedDbi = txn.createMap(\"my-table\", MDBX_Param.keyMode.ordinal, MDBX_Param.valueMode.multi);\n\n// Object form - explicit flags/modes\nconst dbi = txn.createMap({\n  name: \"my-table\",\n  keyFlag: MDBX_Param.keyFlag.string,\n  valueFlag: MDBX_Param.valueFlag.string,\n  keyMode: MDBX_Param.keyMode.reverse,\n  valueMode: MDBX_Param.valueMode.multi\n});\n```\n\n> **Note**: Use `createMap` in write transactions - it will create the database if it doesn't exist, or open it if it does. This is safer for new environments.\n\n**openMap([db_name | keyMode], [keyMode]) → DBI**\n**openMap({ name, keyFlag, valueFlag, keyMode, valueMode }) → DBI**\n```javascript\n// No arguments - default DB with env key/value flags (buffer if not set)\nconst dbi = txn.openMap();\n\n// One argument - keyMode only\n// Number keyMode - keys returned as numbers\nconst dbi = txn.openMap(MDBX_Param.keyMode.ordinal);\n// BigInt keyMode - keys returned as BigInts\nconst dbi = txn.openMap(BigInt(MDBX_Param.keyMode.ordinal));\n\n// One argument - db_name only (uses default keyMode)\nconst namedDbi = txn.openMap(\"my-table\");\n\n// Two arguments - db_name + keyMode\nconst namedDbi = txn.openMap(\"my-table\", MDBX_Param.keyMode.ordinal);\nconst namedDbiBigInt = txn.openMap(\"my-table\", BigInt(MDBX_Param.keyMode.ordinal));\n\n// Object form - explicit flags/modes\nconst dbi = txn.openMap({\n  name: \"my-table\",\n  keyFlag: MDBX_Param.keyFlag.string,\n  valueFlag: MDBX_Param.valueFlag.string,\n  keyMode: MDBX_Param.keyMode.reverse,\n  valueMode: MDBX_Param.valueMode.multi,\n  flags: MDBX_Param.dbMode.accede\n});\n```\n\n> **Note**: Use `openMap` in read transactions or when you're sure the database already exists. For write transactions on new environments, prefer `createMap`.\n\n> **Note**: When using ordinal keyMode, the key type in results depends on how you specify keyMode:\n> - `keyMode: number` → keys returned as `number`\n> - `keyMode: BigInt(number)` → keys returned as `BigInt`\n> - When you pass `keyMode.ordinal` as a positional argument (Number/BigInt), it also updates `keyFlag` to number/bigint unless a numeric keyFlag was already set in env or explicitly provided.\n\n> **Note**: When `valueMode.multiOrdinal` is used and `valueFlag` is not specified, values are returned as `number` by default. Set `valueFlag: MDBX_Param.valueFlag.bigint` if you need `BigInt` on read.\n\n**commit()**\n```javascript\ntxn.commit();\n```\n\n**commitAndStartRead()**\n```javascript\nconst txn = env.startWrite();\nconst dbi = txn.createMap(\"orders\");\ndbi.put(txn, \"order-1\", \"open\");\n\ntxn.commitAndStartRead();\nconst committed = dbi.get(txn, \"order-1\");\ntxn.abort();\n```\n\n`commitAndStartRead()` keeps the same transaction wrapper active over the exact\npost-commit read snapshot. It is synchronous, accepts only an active write\ntransaction with no open cursors, and is not available in `mdbxmou/async`.\nComplete the resulting read transaction with `commit()` or `abort()` before\nstarting another write transaction on the same thread.\n\nAn exception does not always mean rollback. The write can be committed before\nlibmdbx fails to create the read transaction. If the wrapper is inactive after\nan exception, verify the result with a fresh read before retrying the write.\n\n**checkpoint() -> boolean**\n```javascript\nconst txn = env.startWrite();\nconst dbi = txn.createMap(\"orders\");\ndbi.put(txn, \"order-1\", \"open\");\n\nconst noChanges = txn.checkpoint();\n// Readers can now see order-1, while txn remains an active write transaction.\ntxn.abort();\n```\n\n`checkpoint()` commits a dirty write batch and immediately continues the same\nwrapper as a write transaction without releasing the writer lock. Matching the\nnative `mdbx++` API, it returns `false` after committing changes and `true` when\nthere were no changes (`MDBX_RESULT_TRUE`). The method is synchronous, requires\nan active top-level write transaction with no open cursors, and is not available\nin `mdbxmou/async`.\n\nLike `commit()` and `abort()`, every call invalidates borrowed views, including\na no-op call that returns `true`.\n\nComplete the continuation transaction promptly with `commit()` or `abort()`.\nUntil then every other writer is blocked, although new read transactions can\nsee the checkpointed data.\n\n**abort()**\n```javascript\ntxn.abort();\n```\n\n### DBI (Database Instance)\n\n#### Methods\n\n**put(txn, key, value, [flags])**\n```javascript\ndbi.put(txn, 123, \"value\");\ndbi.put(txn, \"key\", Buffer.from(\"binary data\"));\n\n// Insert only if key does not exist\ndbi.put(txn, 123, \"value\", MDBX_Param.putFlag.noOverwrite);\n\n// Fast append for sorted inserts\ndbi.put(txn, 124, \"value\", MDBX_Param.putFlag.append);\n```\n\n**get(txn, key) → value**\n```javascript\nconst value = dbi.get(txn, 123);\nconst binary = dbi.get(txn, \"key\");\n```\n\nFor `valueMode.multiOrdinal`, `get()` returns the first duplicate value for the key, decoded as `number` by default.\n\n#### Zero-copy reads with `getView()`\n\n**getView(txn, key) → MDBX_BorrowedView | undefined**\n\n> `getView()` is an advanced borrowed-memory API and should not be used as a\n> default replacement for `get()`. Read [GETVIEW.md](GETVIEW.md) before using it\n> in production; the caller owns strict lifetime, no-transfer and isolate-local\n> obligations that cannot all be enforced at runtime.\n\n`getView()` returns a standard JavaScript `DataView` over the bytes mapped by\nMDBX. Unlike `get()`, it does not copy or decode the value. This is intended for\nlarge values or hot read paths where the caller can keep all access inside a\nshort read transaction.\n\n```javascript\nconst env = new MDBX_Env();\nenv.openSync({ path: \"./data\" });\n\ntry {\n    let dbi;\n    const writeTxn = env.startWrite();\n    try {\n        dbi = writeTxn.createMap();\n        dbi.put(writeTxn, \"binary-key\", Buffer.from([0x78, 0x56, 0x34, 0x12]));\n        writeTxn.commit();\n    } finally {\n        if (writeTxn.isActive()) {\n            writeTxn.abort();\n        }\n    }\n\n    const readTxn = env.startRead();\n    try {\n        const view = dbi.getView(readTxn, \"binary-key\");\n        if (view) {\n            console.log(view.getUint32(0, true)); // 305419896\n        }\n    } finally {\n        if (readTxn.isActive()) {\n            readTxn.abort();\n        }\n    }\n} finally {\n    env.closeSync();\n}\n```\n\nIn this API:\n\n- a **borrowed view** is a `DataView` whose bytes are owned by the active MDBX\n  read transaction;\n- its **backing buffer** is the `ArrayBuffer` available as `view.buffer`;\n- **detach** invalidates that backing buffer. A detached buffer has\n  `byteLength === 0`, and reading through its `DataView` is no longer valid;\n- a **tracked** non-empty view uses the default safety mode: the transaction\n  records its borrowed backing buffer and detaches it during `commit()` or\n  `abort()`;\n- an **untracked** view is the advanced opt-out enabled by opening the\n  environment with `trackBorrowedViews: false`.\n\nThe lifetime contract is strict:\n\n1. Pass an active read-only transaction created by the same environment. Write\n   transactions are rejected.\n2. Read the view only before that transaction commits or aborts. A `DataView`\n   does not keep its transaction alive, so retain the transaction object\n   explicitly for the whole access period.\n3. Complete every transaction before calling `env.close()` or\n   `env.closeSync()`.\n4. Do not transfer the view's backing buffer to another JavaScript isolate. If\n   another execution context needs the bytes, copy them into ordinary owned\n   memory while the transaction is still active.\n\nWith the default `trackBorrowedViews: true`, retaining the JavaScript view\nobject after transaction completion is memory-safe, but its backing buffer is\ndetached and its data cannot be read. Missing keys return `undefined`. A stored\nempty value has no borrowed MDBX pointer and returns an ordinary zero-length\n`DataView`; there is therefore no buffer to track or detach. The returned bytes\nare raw and do not use `valueFlag` decoding.\n\nThe runtime object is a normal `DataView`, so JavaScript still exposes setter\nmethods. Treat it as read-only: mutating MDBX-owned mapped bytes is outside the\ncontract. TypeScript uses `MDBX_BorrowedView`, which intentionally exposes only\nthe read methods.\n\n`trackBorrowedViews: false` removes the transaction's reference tracking and\ndetach work. It is an unsafe performance option: do not store, return, capture,\nor otherwise retain a view; drop every reference and finish all reads before\n`commit()` or `abort()`. An untracked buffer can still appear attached after\ncompletion even though its memory is no longer valid.\n\n`getView()` is unavailable when the environment uses `MDBX_WRITEMAP`. Multiple\nJavaScript isolates may load the addon, but each isolate must use its own\nwrappers and a separate database path. A borrowed view and its backing buffer\nmust remain in the isolate that created them.\n\nThe reproducible benchmark and measured Linux x64 baseline are documented in\n[PERFORMANCE.md](PERFORMANCE.md).\n\n**del(txn, key) → boolean**\n```javascript\nconst deleted = dbi.del(txn, 123);\n```\n\n**has(txn, key) → boolean**\n```javascript\nconst exists = dbi.has(txn, 123);\n```\n\n**stat(txn) → Object**\n```javascript\nconst stats = dbi.stat(txn);\n// { pageSize: 4096, depth: 1, entries: 10, ... }\n```\n\n**forEach(txn, callback)**\n```javascript\ndbi.forEach(txn, (key, value, index) => {\n  console.log(`${key}: ${value}`);\n  return false; // continue iteration (or undefined)\n  // return true; // stop iteration\n});\n```\n\n> **Note**: forEach continues scanning while callback returns `undefined` or `false`, and stops when callback returns `true`.\n\n**keys(txn) → Array**\n```javascript\n// Get all keys\nconst allKeys = dbi.keys(txn);\n```\n\n**keysFrom(txn, startKey, [limit], [cursorMode]) → Array**\n```javascript\n// Get keys starting from specific key\nconst keys = dbi.keysFrom(txn, 42, 50); // 50 keys starting from 42\n\n// With cursor mode\nconst keys = dbi.keysFrom(txn, 42, 50, 'keyGreaterOrEqual');\n\n// BigInt keys\nconst bigIntKeys = dbi.keysFrom(txn, 42n, 50);\n\n// Key equal mode (for multi-value databases)\nconst equalKeys = dbi.keysFrom(txn, 5, 10, 'keyEqual');\n```\n\n**getRange(txn, [options]) → Array<{ key, value }>**\n```javascript\nconst rows = dbi.getRange(txn, { start: 10, end: 15 });\n// [\n//   { key: 10, value: ... },\n//   { key: 11, value: ... },\n//   ...\n// ]\n```\n\n**getCount(txn, [options]) → number**\n```javascript\nconst total = dbi.getCount(txn, { start: 10, end: 20 });\n// 11\n```\n\n**keysRange(txn, [options]) → Array**\n```javascript\nconst keys = dbi.keysRange(txn, { start: 10, end: 20, limit: 5 });\n// [10, 11, 12, 13, 14]\n```\n\n**valuesRange(txn, [options]) → Array**\n```javascript\nconst values = dbi.valuesRange(txn, {\n  start: 10,\n  end: 15,\n  reverse: true,\n  includeEnd: false\n});\n// values for keys 14, 13, 12, 11, 10\n```\n\nRange options:\n- `start`, `end` - inclusive bounds by default\n- `includeStart`, `includeEnd` - control bound inclusion\n- `reverse` - scan from upper bound to lower bound\n- `limit` - maximum number of returned items\n- `offset` - skip N items after initial positioning\n- `getCount()` ignores `offset` and `limit` and returns the total size of the bounded range\n\n**drop(txn, [delete_db]) → void**\n```javascript\n// Clear database contents (keep structure)\ndbi.drop(txn, false);\n\n// Delete database completely\ndbi.drop(txn, true);\n\n// Default behavior (clear contents)\ndbi.drop(txn);\n```\n\nAfter a committed `drop(txn, true)`, discard that JavaScript DBI object and\nopen or create a new one in a new transaction. An already active transaction\nmay use its old snapshot only until the drop transaction commits; afterward\nthe old handle reports `MDBX_BAD_DBI`. Reusing a stale wrapper after another\nDBI has reused the same native slot, for example after same-name recreation, is\nnot supported.\n\n### Cursor (MDBX_Cursor)\n\nCursors provide low-level control for database traversal with positioning and iteration capabilities.\n\n#### Creating a Cursor\n```javascript\nconst txn = env.startRead();\nconst dbi = txn.openMap();\nconst cursor = txn.openCursor(dbi);\n```\n\n#### Navigation Methods\n\n**first() → {key, value} | undefined**\n```javascript\nconst item = cursor.first();\nif (item) {\n  console.log(item.key, item.value);\n}\n```\n\n**last() → {key, value} | undefined**\n```javascript\nconst item = cursor.last();\n```\n\n**next() → {key, value} | undefined**\n```javascript\nconst item = cursor.next();\n```\n\n**prev() → {key, value} | undefined**\n```javascript\nconst item = cursor.prev();\n```\n\n**current() → {key, value} | undefined**\n```javascript\nconst item = cursor.current();\n```\n\n#### Search Methods\n\n**seek(key) → {key, value} | undefined**\n\nExact key match. Returns `undefined` if key not found.\n```javascript\nconst item = cursor.seek('user:123');\nif (item) {\n  console.log('Found:', item.value);\n}\n```\n\n**seekGE(key) → {key, value} | undefined**\n\nFind first key greater or equal to given key (lower_bound).\n```javascript\nconst item = cursor.seekGE('user:100');\n// Returns first key >= 'user:100'\n```\n\n#### Modification Methods\n\n**put(key, value, [flags])**\n\nInsert or update a record at cursor position.\n```javascript\ncursor.put('newKey', 'newValue');\n\n// With flags (MDBX_NOOVERWRITE, etc.)\ncursor.put('key', 'value', MDBX_Param.putFlag.noOverwrite);\n```\n\n**del([flags]) → boolean**\n\nDelete record at current cursor position. Returns `true` if deleted, `false` if not found.\n```javascript\ncursor.seek('keyToDelete');\nconst deleted = cursor.del();\n```\n\n#### Control Methods\n\n**close()**\n```javascript\ncursor.close();\n```\n\n#### Cursor Examples\n\n**Iterate all records:**\n```javascript\nconst cursor = txn.openCursor(dbi);\n\nfor (let item = cursor.first(); item; item = cursor.next()) {\n  console.log(item.key, item.value.toString());\n}\n\ncursor.close();\ntxn.abort();\n```\n\n**Range iteration:**\n```javascript\nconst cursor = txn.openCursor(dbi);\n\n// Find all keys starting with 'user:'\nfor (let item = cursor.seekGE('user:'); item; item = cursor.next()) {\n  if (!item.key.startsWith('user:')) break;\n  console.log(item.key, item.value.toString());\n}\n\ncursor.close();\n```\n\n**Pagination:**\n```javascript\nfunction getPage(cursor, offset, limit) {\n  const results = [];\n  \n  let item = cursor.first();\n  \n  // Skip offset\n  for (let i = 0; i < offset && item; i++) {\n    item = cursor.next();\n  }\n  \n  // Collect limit items\n  for (let i = 0; i < limit && item; i++) {\n    results.push({ key: item.key, value: item.value.toString() });\n    item = cursor.next();\n  }\n  \n  return results;\n}\n\nconst txn = env.startRead();\nconst dbi = txn.openMap();\nconst cursor = txn.openCursor(dbi);\n\nconst page1 = getPage(cursor, 0, 10);   // First 10 items\nconst page2 = getPage(cursor, 10, 10);  // Next 10 items\n\ncursor.close();\ntxn.abort();\n```\n\n**Reverse iteration:**\n```javascript\nconst cursor = txn.openCursor(dbi);\n\nfor (let item = cursor.last(); item; item = cursor.prev()) {\n  console.log(item.key, item.value.toString());\n}\n\ncursor.close();\n```\n\n**Bulk insert with cursor:**\n```javascript\nconst txn = env.startWrite();\nconst dbi = txn.createMap();\nconst cursor = txn.openCursor(dbi);\n\nfor (let i = 0; i < 1000; i++) {\n  cursor.put(`key${i}`, `value${i}`);\n}\n\ncursor.close();\ntxn.commit();\n```\n\n**Delete with cursor:**\n```javascript\nconst txn = env.startWrite();\nconst dbi = txn.openMap();\nconst cursor = txn.openCursor(dbi);\n\n// Delete specific key\nif (cursor.seek('keyToDelete')) {\n  cursor.del();\n}\n\n// Delete range\nfor (let item = cursor.seekGE('prefix:'); item; item = cursor.next()) {\n  if (!item.key.startsWith('prefix:')) break;\n  cursor.del();\n}\n\ncursor.close();\ntxn.commit();\n```\n\n## Key and Value Types\n\n### Key Modes (MDBX_Param.keyMode)\n\n- **Default (0)** - Buffer keys (no flags, default behavior)\n- **reverse** - Keys sorted in reverse order\n- **ordinal** - Integer keys (4 or 8 bytes, native endian)\n\n### Value Modes (MDBX_Param.valueMode)\n\n- **single** - Single value per key (default)\n- **multi** - `MDBX_DUPSORT`, multiple values per key\n- **multiReverse** - `MDBX_DUPSORT | MDBX_REVERSEDUP`\n- **multiSamelength** - `MDBX_DUPSORT | MDBX_DUPFIXED`\n- **multiOrdinal** - `MDBX_DUPSORT | MDBX_DUPFIXED | MDBX_INTEGERDUP`\n- **multiReverseSamelength** - `MDBX_DUPSORT | MDBX_REVERSEDUP | MDBX_DUPFIXED`\n\n### Value Flags (MDBX_Param.valueFlag)\n\n- **binary** - Raw binary data (default, represented by `0`)\n- **string** - UTF-8 strings\n- **number** - Numeric decode for ordinal duplicate values\n- **bigint** - BigInt decode for ordinal duplicate values\n\n`valueFlag.number` and `valueFlag.bigint` matter primarily for `valueMode.multiOrdinal`. For ordinary values, use Buffer (default) or `valueFlag.string`.\n\n## Examples\n\n### Basic Usage (Synchronous)\n\n```javascript\nconst { MDBX_Env, MDBX_Param } = require('mdbxmou');\n\nfunction syncExample() {\n  const env = new MDBX_Env();\n  \n  // Synchronous open\n  env.openSync({ path: './data' });\n\n  // Write transaction\n  const writeTxn = env.startWrite();\n  const dbi = writeTxn.createMap(MDBX_Param.keyMode.ordinal);\n  \n  for (let i = 0; i < 1000; i++) {\n    dbi.put(writeTxn, i, `value_${i}`);\n  }\n  writeTxn.commit();\n\n  // Read transaction with number keys\n  const readTxn = env.startRead();\n  const readDbi = readTxn.openMap(MDBX_Param.keyMode.ordinal); // keys as numbers\n  \n  const value = readDbi.get(readTxn, 42);\n  console.log(value); // \"value_42\"\n  \n  // Iterate with cursor\n  readDbi.forEach(readTxn, (key, value, index) => {\n    console.log(`Key ${key} (type: ${typeof key}): ${value}`); // key is number\n    return index >= 9; // stop after 10 items (indices 0-9)\n  });\n  \n  // Get specific keys\n  const someKeys = readDbi.keysFrom(readTxn, 100, 50);\n  console.log(`Keys 100-149:`, someKeys); // array of numbers\n  \n  readTxn.commit();\n  \n  // Synchronous close\n  env.closeSync();\n}\n\nasync function asyncExample() {\n  const env = new MDBX_Env();\n  await env.open({ path: './data-async' });\n\n  // Write transaction  \n  const writeTxn = env.startWrite();\n  const dbi = writeTxn.createMap(MDBX_Param.keyMode.ordinal);\n  \n  for (let i = 0; i < 1000; i++) {\n    dbi.put(writeTxn, i, `value_${i}`);\n  }\n  writeTxn.commit();\n\n  // Read transaction with BigInt keys\n  const readTxn = env.startRead();\n  const readDbi = readTxn.openMap(BigInt(MDBX_Param.keyMode.ordinal)); // keys as BigInts\n  \n  const value = readDbi.get(readTxn, 42);\n  console.log(value); // \"value_42\"\n  \n  // Iterate with BigInt keys\n  readDbi.forEach(readTxn, (key, value, index) => {\n    console.log(`Key ${key} (type: ${typeof key}): ${value}`); // key is bigint\n    return index >= 9; // stop after 10 items (indices 0-9)\n  });\n  \n  // Get BigInt keys\n  const bigIntKeys = readDbi.keysFrom(readTxn, 100n, 50);\n  console.log(`Keys 100n-149n:`, bigIntKeys); // array of BigInts\n  \n  readTxn.commit();\n  await env.close();\n}\n\nsyncExample();\nasyncExample().catch(console.error);\n```\n\n### Key Type Behavior\n\n```javascript\nconst { MDBX_Env, MDBX_Param } = require('mdbxmou');\n\nfunction keyTypesExample() {\n  const env = new MDBX_Env();\n  env.openSync({ path: './key-types' });\n\n  const txn = env.startWrite();\n  const dbi = txn.createMap(MDBX_Param.keyMode.ordinal);\n  \n  // Store some data\n  dbi.put(txn, 1, \"one\");\n  dbi.put(txn, 2, \"two\");\n  dbi.put(txn, 3, \"three\");\n  txn.commit();\n\n  // Read with number keyMode\n  const readTxn1 = env.startRead();\n  const numberDbi = readTxn1.openMap(MDBX_Param.keyMode.ordinal);\n  \n  numberDbi.forEach(readTxn1, (key, value) => {\n    console.log(`Number key: ${key} (${typeof key})`); // number\n    // return undefined; // continue iteration (default)\n  });\n  readTxn1.commit();\n\n  // Read with BigInt keyMode  \n  const readTxn2 = env.startRead();\n  const bigintDbi = readTxn2.openMap(BigInt(MDBX_Param.keyMode.ordinal));\n  \n  bigintDbi.forEach(readTxn2, (key, value) => {\n    console.log(`BigInt key: ${key} (${typeof key})`); // bigint\n    // return false; // continue iteration\n  });\n  readTxn2.commit();\n\n  env.closeSync();\n}\n\nkeyTypesExample();\n```\n\n### Cursor Operations\n\n```javascript\nconst { MDBX_Env, MDBX_Param } = require('mdbxmou');\n\nfunction cursorExample() {\n  const env = new MDBX_Env();\n  env.openSync({ path: './cursor-data' });\n\n  const txn = env.startWrite();\n  const dbi = txn.createMap(MDBX_Param.keyMode.ordinal);\n  \n  // Store test data\n  for (let i = 0; i < 100; i++) {\n    dbi.put(txn, i, `value_${i}`);\n  }\n  txn.commit();\n\n  const readTxn = env.startRead();\n  const readDbi = readTxn.openMap(MDBX_Param.keyMode.ordinal);\n  \n  // Get all keys\n  const allKeys = readDbi.keys(readTxn);\n  console.log(`Total keys: ${allKeys.length}`);\n  \n  // Get limited keys - use keysFrom with limit\n  const firstTen = readDbi.keysFrom(readTxn, 0, 10);\n  console.log(`First 10 keys:`, firstTen);\n  \n  // Get keys from specific position\n  const fromFifty = readDbi.keysFrom(readTxn, 50, 20);\n  console.log(`Keys 50-69:`, fromFifty);\n  \n  // Reverse iteration - need manual logic or forEach\n  const allKeysForReverse = readDbi.keys(readTxn);\n  const lastTen = allKeysForReverse.slice(-10).reverse();\n  console.log(`Last 10 keys:`, lastTen);\n  \n  // Manual iteration with forEach\n  let count = 0;\n  readDbi.forEach(readTxn, (key, value, index) => {\n    if (key >= 80) {\n      console.log(`Key ${key}: ${value}`);\n      count++;\n    }\n    return count >= 5; // stop after 5 items >= 80\n  });\n  \n  readTxn.commit();\n  env.closeSync();\n}\n\ncursorExample();\n```\n\n### Range Queries\n\n```javascript\nconst { MDBX_Env, MDBX_Param } = require('mdbxmou');\n\nfunction rangeExample() {\n  const env = new MDBX_Env();\n  env.openSync({\n    path: './range-data',\n    valueFlag: MDBX_Param.valueFlag.string\n  });\n\n  const writeTxn = env.startWrite();\n  const dbi = writeTxn.createMap(MDBX_Param.keyMode.ordinal);\n  for (let i = 0; i < 10; i++) {\n    dbi.put(writeTxn, i, `value_${i}`);\n  }\n  writeTxn.commit();\n\n  const readTxn = env.startRead();\n  const readDbi = readTxn.openMap(MDBX_Param.keyMode.ordinal);\n\n  const rows = readDbi.getRange(readTxn, { start: 3, end: 6 });\n  console.log(rows);\n  // [\n  //   { key: 3, value: 'value_3' },\n  //   { key: 4, value: 'value_4' },\n  //   { key: 5, value: 'value_5' },\n  //   { key: 6, value: 'value_6' }\n  // ]\n\n  const total = readDbi.getCount(readTxn, { start: 3, end: 8 });\n  console.log(total); // 6\n\n  const keys = readDbi.keysRange(readTxn, {\n    start: 3,\n    end: 8,\n    offset: 1,\n    limit: 3\n  });\n  console.log(keys); // [4, 5, 6]\n\n  const values = readDbi.valuesRange(readTxn, {\n    start: 3,\n    end: 6,\n    reverse: true,\n    includeEnd: false\n  });\n  console.log(values); // ['value_5', 'value_4', 'value_3']\n\n  readTxn.commit();\n  env.closeSync();\n}\n\nrangeExample();\n```\n\n### MultiOrdinal Values\n\n```javascript\nconst { MDBX_Env, MDBX_Param } = require('mdbxmou');\n\nfunction multiOrdinalExample() {\n  const env = new MDBX_Env();\n  env.openSync({ path: './multi-ordinal-data' });\n\n  const writeTxn = env.startWrite();\n  const dbi = writeTxn.createMap({\n    name: 'dup-ids',\n    keyMode: MDBX_Param.keyMode.ordinal,\n    valueMode: MDBX_Param.valueMode.multiOrdinal\n  });\n\n  dbi.put(writeTxn, 5, 30);\n  dbi.put(writeTxn, 5, 10);\n  dbi.put(writeTxn, 5, 20n);\n  writeTxn.commit();\n\n  const readTxn = env.startRead();\n  const readDbi = readTxn.openMap({\n    name: 'dup-ids',\n    keyMode: MDBX_Param.keyMode.ordinal,\n    valueMode: MDBX_Param.valueMode.multiOrdinal\n  });\n\n  console.log(readDbi.get(readTxn, 5)); // 10\n  console.log(readDbi.valuesRange(readTxn, { start: 5, end: 5 })); // [10, 20, 30]\n\n  readTxn.commit();\n  env.closeSync();\n}\n\nmultiOrdinalExample();\n```\n\n### Query API (Advanced Async)\n\n```javascript\nconst { MDBX_Env, MDBX_Param } = require('mdbxmou');\n\nasync function queryExample() {\n  const env = new MDBX_Env();\n  await env.open({ path: './query-data' });\n\n  // Create DBI first in synchronous transaction\n  const writeTxn = env.startWrite();\n  const dbi = writeTxn.createMap(MDBX_Param.keyMode.ordinal);\n  writeTxn.commit();\n\n  // Async query with DBI object (not database name)\n  const results = await env.query([\n    {\n      dbi,\n      mode: MDBX_Param.queryMode.upsert,\n      putFlag: MDBX_Param.putFlag.noOverwrite,\n      item: [\n        { key: 1, value: JSON.stringify({ name: \"Alice\" }) },\n        { key: 2, value: JSON.stringify({ name: \"Bob\" }) }\n      ]\n    },\n    {\n      dbi,\n      mode: MDBX_Param.queryMode.get,\n      item: [\n        { key: 1 },\n        { key: 2 }\n      ]\n    }\n  ]);\n\n  console.log('Query results:', JSON.stringify(results, null, 2));\n  await env.close();\n}\n\nqueryExample().catch(console.error);\n```\n\n### Async Keys API\n\n```javascript\nconst { MDBX_Env, MDBX_Param } = require('mdbxmou');\n\nasync function keysExample() {\n  const env = new MDBX_Env();\n  await env.open({ path: './keys-data' });\n\n  // Create DBI first\n  const writeTxn = env.startWrite();\n  const dbi = writeTxn.createMap(MDBX_Param.keyMode.ordinal);\n  \n  // Add some test data\n  for (let i = 1; i <= 10; i++) {\n    dbi.put(writeTxn, i, `value-${i}`);\n  }\n  writeTxn.commit();\n\n  // Get all keys from DBI\n  const allKeys = await env.keys(dbi);\n  console.log(\"All keys:\", allKeys);\n\n  // Get keys with DBI object parameter  \n  const allKeys2 = await env.keys({ dbi });\n  console.log(\"All keys (object):\", allKeys2);\n\n  // Get keys from multiple DBIs\n  const multiKeys = await env.keys([dbi, dbi]);\n  console.log(\"Multi DBI keys:\", multiKeys);\n\n  // Get limited keys from specific position\n  const limitedKeys = await env.keys([\n    { dbi, limit: 3, from: 5 }\n  ]);\n  console.log(\"Limited keys:\", limitedKeys);\n\n  await env.close();\n}\n\nkeysExample().catch(console.error);\n```\n\n## Error Handling\n\n```javascript\nasync function errorHandlingExample() {\n  let txn;\n  try {\n    const env = new MDBX_Env();\n    await env.open({ path: './data' });\n    \n    txn = env.startWrite();\n    const dbi = txn.createMap(MDBX_Param.keyMode.ordinal);\n    \n    // This might throw if key already exists with MDBX_NOOVERWRITE\n    dbi.put(txn, 123, \"value\");\n    \n    txn.commit();\n  } catch (error) {\n    console.error('Database error:', error.message);\n    if (txn) txn.abort();\n  }\n}\n\nerrorHandlingExample().catch(console.error);\n```\n\n## Runnable README Tests\n\nThe examples above have matching runnable tests in `test/`. You can execute them directly:\n\n```bash\nnode test/readme-quick-start.js\nnode test/readme-sync-example.js\nnode test/readme-async-example.js\nnode test/readme-key-types.js\nnode test/readme-cursor-example.js\nnode test/readme-range-example.js\nnode test/readme-query-example.js\nnode test/readme-keys-example.js\nnode test/readme-error-handling.js\n```\n\n## Configuration Options\n\n### Available Constants (MDBX_Param)\n\n```javascript\nconst { MDBX_Param } = require('mdbxmou');\n\n// Key modes\nMDBX_Param.keyMode.reverse    // MDBX_REVERSEKEY - reverse key order\nMDBX_Param.keyMode.ordinal    // MDBX_INTEGERKEY - integer keys (use with number/bigint)\n// Default (0) - Buffer keys (no flags)\n\n// Key flags (optional, control key representation)\nMDBX_Param.keyFlag.string     // UTF-8 string encoding\nMDBX_Param.keyFlag.number     // Number type (used with ordinal mode)\nMDBX_Param.keyFlag.bigint     // BigInt type (used with ordinal mode)\n// Default - Buffer representation\n\n// Value modes\nMDBX_Param.valueMode.multi                 // MDBX_DUPSORT\nMDBX_Param.valueMode.multiReverse          // MDBX_DUPSORT | MDBX_REVERSEDUP\nMDBX_Param.valueMode.multiSamelength       // MDBX_DUPSORT | MDBX_DUPFIXED\nMDBX_Param.valueMode.multiOrdinal          // MDBX_DUPSORT | MDBX_DUPFIXED | MDBX_INTEGERDUP\nMDBX_Param.valueMode.multiReverseSamelength // MDBX_DUPSORT | MDBX_REVERSEDUP | MDBX_DUPFIXED\n\n// Value flags (optional, control value representation)\nMDBX_Param.valueFlag.string   // UTF-8 string values\nMDBX_Param.valueFlag.number   // Number values for multiOrdinal\nMDBX_Param.valueFlag.bigint   // BigInt values for multiOrdinal\n// Default - Buffer representation\n\nNote: For ordinal (integer) keys, use keyFlag.number or keyFlag.bigint to specify the data type.\nFor `valueMode.multiOrdinal`, values are returned as `number` by default, or as `bigint` when `valueFlag.bigint` is used.\n```\n\n### Environment Flags\n- `MDBX_Param.envFlag.nostickythreads` - Don't stick reader transactions to threads\n- `MDBX_Param.envFlag.rdonly` - Open database in read-only mode\n- `MDBX_Param.envFlag.validation` - Enable page validation\n- `MDBX_Param.envFlag.exclusive` - Exclusive mode\n- `MDBX_Param.envFlag.accede` - Open existing environment\n- `MDBX_Param.envFlag.writemap` - Use writable memory map\n- `MDBX_Param.envFlag.nordahead` - Disable OS readahead\n- `MDBX_Param.envFlag.nomeminit` - Disable memory initialization\n- `MDBX_Param.envFlag.liforeclaim` - LIFO reclaim\n- `MDBX_Param.envFlag.nometasync` - Disable metadata flushes\n- `MDBX_Param.envFlag.safeNosync` - Safe nosync mode\n- `MDBX_Param.envFlag.utterlyNosync` - Utterly nosync mode\n\n### Environment Options\n- `MDBX_Param.envOption.maxDb` - Raw `MDBX_opt_max_db` option id\n- `MDBX_Param.envOption.maxReaders` - Raw `MDBX_opt_max_readers` option id\n- `MDBX_Param.envOption.syncBytes` - Threshold for forced flushes in weak sync modes\n- `MDBX_Param.envOption.syncPeriod` - Sync period in **seconds** when used with `setOption()`\n- `MDBX_Param.envOption.rpAugmentLimit` - Raw `MDBX_opt_rp_augment_limit`\n- `MDBX_Param.envOption.looseLimit` - Raw `MDBX_opt_loose_limit`\n- `MDBX_Param.envOption.dpReserveLimit` - Raw `MDBX_opt_dp_reserve_limit`\n- `MDBX_Param.envOption.txnDpLimit` - Raw `MDBX_opt_txn_dp_limit`\n- `MDBX_Param.envOption.txnDpInitial` - Raw `MDBX_opt_txn_dp_initial`\n- `MDBX_Param.envOption.spillMaxDenominator` - Raw `MDBX_opt_spill_max_denominator`\n- `MDBX_Param.envOption.spillMinDenominator` - Raw `MDBX_opt_spill_min_denominator`\n- `MDBX_Param.envOption.spillParent4childDenominator` - Raw `MDBX_opt_spill_parent4child_denominator`\n- `MDBX_Param.envOption.mergeThreshold` - Raw `MDBX_opt_merge_threshold`\n- `MDBX_Param.envOption.mergeThreshold16dot16Percent` - Backward-compatible alias for `MDBX_opt_merge_threshold`\n- `MDBX_Param.envOption.writethroughThreshold` - Raw `MDBX_opt_writethrough_threshold`\n- `MDBX_Param.envOption.prefaultWriteEnable` - Raw `MDBX_opt_prefault_write_enable`\n- `MDBX_Param.envOption.gcTimeLimit` - Raw `MDBX_opt_gc_time_limit`\n- `MDBX_Param.envOption.preferWafInsteadofBalance` - Raw `MDBX_opt_prefer_waf_insteadof_balance`\n- `MDBX_Param.envOption.subpageLimit` - Raw `MDBX_opt_subpage_limit`\n- `MDBX_Param.envOption.subpageRoomThreshold` - Raw `MDBX_opt_subpage_room_threshold`\n- `MDBX_Param.envOption.subpageReservePrereq` - Raw `MDBX_opt_subpage_reserve_prereq`\n- `MDBX_Param.envOption.subpageReserveLimit` - Raw `MDBX_opt_subpage_reserve_limit`\n- `MDBX_Param.envOption.splitReserve` - Raw `MDBX_opt_split_reserve`\n\n### Copy Flags\n- `MDBX_Param.copyFlag.defaults` - Raw `MDBX_CP_DEFAULTS`\n- `MDBX_Param.copyFlag.compact` - Raw `MDBX_CP_COMPACT`\n- `MDBX_Param.copyFlag.overwrite` - Raw `MDBX_CP_OVERWRITE`\n\n### Database Modes  \n- `MDBX_Param.dbMode.create` - Create database if it doesn't exist\n- `MDBX_Param.dbMode.accede` - Open existing database with any flags\n\n### Query Modes\n- `MDBX_Param.queryMode.get` - Read operations\n- `MDBX_Param.queryMode.upsert` - Base write mode (insert or update)\n- `MDBX_Param.queryMode.update` - Base write mode with `MDBX_CURRENT`\n- `MDBX_Param.queryMode.insertUnique` - Base write mode with `MDBX_NOOVERWRITE`\n- `MDBX_Param.queryMode.del` - Delete operations\n\n### Put Flags\n- `MDBX_Param.putFlag.noOverwrite` - `MDBX_NOOVERWRITE`\n- `MDBX_Param.putFlag.noDupData` - `MDBX_NODUPDATA`\n- `MDBX_Param.putFlag.current` - `MDBX_CURRENT`\n- `MDBX_Param.putFlag.allDups` - `MDBX_ALLDUPS`\n- `MDBX_Param.putFlag.reserve` - `MDBX_RESERVE`\n- `MDBX_Param.putFlag.append` - `MDBX_APPEND`\n- `MDBX_Param.putFlag.appendDup` - `MDBX_APPENDDUP`\n- `MDBX_Param.putFlag.multiple` - `MDBX_MULTIPLE`\n\nFor `env.query()` write requests, only `noOverwrite`, `noDupData`, `current`, `append`, and `appendDup` are supported.\n\n### Cursor Modes\n- `MDBX_Param.cursorMode.first` - First key\n- `MDBX_Param.cursorMode.last` - Last key  \n- `MDBX_Param.cursorMode.next` - Next key\n- `MDBX_Param.cursorMode.prev` - Previous key\n- `MDBX_Param.cursorMode.keyLesserThan` - Keys less than target\n- `MDBX_Param.cursorMode.keyLesserOrEqual` - Keys less than or equal to target\n- `MDBX_Param.cursorMode.keyEqual` - Keys exactly equal to target\n- `MDBX_Param.cursorMode.keyGreaterOrEqual` - Keys greater than or equal to target  \n- `MDBX_Param.cursorMode.keyGreaterThan` - Keys greater than target\n\n> **Note**: Cursor modes can be used with `keysFrom()` and `forEach()` methods to control iteration direction and filtering.\n\n## Performance Tips\n\n1. **Use ordinal keys** for integer data - much faster than string keys\n2. **Batch operations** - Use query API for bulk operations\n3. **Reuse transactions** - Keep read transactions open for multiple operations\n4. **Memory mapping** - MDBX uses memory-mapped files for fast I/O\n5. **Transaction scope** - Always pass transaction object to DBI methods\n6. **Zero-copy reads** - Use `getView()` for large values when processing stays\n   inside a short read transaction; benchmark against `get()` for your access\n   pattern before disabling borrowed-view tracking. See\n   [PERFORMANCE.md](PERFORMANCE.md) for the published methodology and baseline.\n\n## License\n\nApache License 2.0\n\n---\n\n**Documentation generated by GitHub Copilot (Claude 3.5 Sonnet) on August 27, 2025**  \n**Reviewed and approved by the library author**\n","readmeFilename":"README.md"}