harperdb 3.2.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (578) hide show
  1. package/README.md +20 -11
  2. package/bin/BinObjects.jsc +0 -0
  3. package/bin/harperdb.jsc +0 -0
  4. package/bin/install.jsc +0 -0
  5. package/bin/register.jsc +0 -0
  6. package/bin/run.jsc +0 -0
  7. package/bin/stop.jsc +0 -0
  8. package/bin/upgrade.jsc +0 -0
  9. package/bin/utility.jsc +0 -0
  10. package/bin/version.jsc +0 -0
  11. package/coverage/lcov.info +7142 -6704
  12. package/data_layer/CreateAttributeObject.jsc +0 -0
  13. package/data_layer/CreateTableObject.jsc +0 -0
  14. package/data_layer/DataLayerObjects.jsc +0 -0
  15. package/data_layer/DeleteBeforeObject.jsc +0 -0
  16. package/data_layer/DeleteObject.jsc +0 -0
  17. package/data_layer/DropAttributeObject.jsc +0 -0
  18. package/data_layer/InsertObject.jsc +0 -0
  19. package/data_layer/ReadTransactionLogObject.jsc +0 -0
  20. package/data_layer/SQLSearch.jsc +0 -0
  21. package/data_layer/SearchByConditionsObject.jsc +0 -0
  22. package/data_layer/SearchByHashObject.jsc +0 -0
  23. package/data_layer/SearchObject.jsc +0 -0
  24. package/data_layer/SqlSearchObject.jsc +0 -0
  25. package/data_layer/UpdateObject.jsc +0 -0
  26. package/data_layer/UpsertObject.jsc +0 -0
  27. package/data_layer/bulkLoad.jsc +0 -0
  28. package/data_layer/data_objects/BulkLoadObjects.jsc +0 -0
  29. package/data_layer/data_objects/UpsertObject.jsc +0 -0
  30. package/data_layer/delete.jsc +0 -0
  31. package/data_layer/export.jsc +0 -0
  32. package/data_layer/harperBridge/BridgeMethods.jsc +0 -0
  33. package/data_layer/harperBridge/bridgeUtility/checkForNewAttr.jsc +0 -0
  34. package/data_layer/harperBridge/bridgeUtility/convertOperationToTransaction.jsc +0 -0
  35. package/data_layer/harperBridge/bridgeUtility/evaluateTableGetAttributes.jsc +0 -0
  36. package/data_layer/harperBridge/bridgeUtility/insertUpdateReturnObj.jsc +0 -0
  37. package/data_layer/harperBridge/bridgeUtility/insertUpdateValidate.jsc +0 -0
  38. package/data_layer/harperBridge/harperBridge.jsc +0 -0
  39. package/data_layer/harperBridge/lmdbBridge/LMDBBridge.jsc +0 -0
  40. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/DeleteTransactionsBeforeResults.jsc +0 -0
  41. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.jsc +0 -0
  42. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.jsc +0 -0
  43. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.jsc +0 -0
  44. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.jsc +0 -0
  45. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.jsc +0 -0
  46. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecordsBefore.jsc +0 -0
  47. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteTransactionLogsBefore.jsc +0 -0
  48. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.jsc +0 -0
  49. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.jsc +0 -0
  50. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.jsc +0 -0
  51. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.jsc +0 -0
  52. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.jsc +0 -0
  53. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadTransactionLog.jsc +0 -0
  54. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.jsc +0 -0
  55. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.jsc +0 -0
  56. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.jsc +0 -0
  57. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.jsc +0 -0
  58. package/data_layer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.jsc +0 -0
  59. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.jsc +0 -0
  60. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.jsc +0 -0
  61. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.jsc +0 -0
  62. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.jsc +0 -0
  63. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.jsc +0 -0
  64. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.jsc +0 -0
  65. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.jsc +0 -0
  66. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/ThreadSearchObject.jsc +0 -0
  67. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.jsc +0 -0
  68. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.jsc +0 -0
  69. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.jsc +0 -0
  70. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsEnvironment.jsc +0 -0
  71. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/lmdbDropAllAttributes.jsc +0 -0
  72. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.jsc +0 -0
  73. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.jsc +0 -0
  74. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.jsc +0 -0
  75. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/lmdbThreadSearch.jsc +0 -0
  76. package/data_layer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.jsc +0 -0
  77. package/data_layer/hdbInfoController.jsc +0 -0
  78. package/data_layer/insert.jsc +0 -0
  79. package/data_layer/readTransactionLog.jsc +0 -0
  80. package/data_layer/schema.jsc +0 -0
  81. package/data_layer/schemaDescribe.jsc +0 -0
  82. package/data_layer/search.jsc +0 -0
  83. package/data_layer/update.jsc +0 -0
  84. package/events/ClusterStatusEmitter.jsc +0 -0
  85. package/events/SioServerStoppedEvent.jsc +0 -0
  86. package/events/SocketClusterStatusEmitter.jsc +0 -0
  87. package/license/LICENSE +91 -1
  88. package/node_modules/@msgpackr-extract/msgpackr-extract-linux-x64/README.md +1 -0
  89. package/node_modules/{node-addon-api/src/nothing.c → @msgpackr-extract/msgpackr-extract-linux-x64/index.js} +0 -0
  90. package/node_modules/@msgpackr-extract/msgpackr-extract-linux-x64/node.abi93.glibc.node +0 -0
  91. package/node_modules/@msgpackr-extract/msgpackr-extract-linux-x64/node.abi93.musl.node +0 -0
  92. package/node_modules/@msgpackr-extract/msgpackr-extract-linux-x64/node.napi.glibc.node +0 -0
  93. package/node_modules/@msgpackr-extract/msgpackr-extract-linux-x64/node.napi.musl.node +0 -0
  94. package/node_modules/@msgpackr-extract/msgpackr-extract-linux-x64/package.json +53 -0
  95. package/node_modules/{msgpackr-extract → lmdb-store}/.github/workflows/prebuild.yml +9 -10
  96. package/node_modules/lmdb-store/.idea/lmdb-store.iml +12 -0
  97. package/node_modules/lmdb-store/.idea/misc.xml +6 -0
  98. package/node_modules/lmdb-store/.idea/modules.xml +8 -0
  99. package/node_modules/lmdb-store/.idea/workspace.xml +4 -0
  100. package/node_modules/lmdb-store/README.md +393 -388
  101. package/node_modules/lmdb-store/benchmark/index.js +162 -162
  102. package/node_modules/lmdb-store/binding.gyp +79 -88
  103. package/node_modules/lmdb-store/caching.js +113 -113
  104. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/COPYRIGHT +20 -20
  105. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/Doxyfile +1631 -1631
  106. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/LICENSE +47 -47
  107. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/chacha8.c +183 -183
  108. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/chacha8.h +14 -14
  109. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/crypto.c +121 -121
  110. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/intro.doc +192 -192
  111. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb.c +12125 -12125
  112. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb_copy.1 +74 -74
  113. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb_copy.c +106 -106
  114. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb_drop.1 +53 -53
  115. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb_drop.c +154 -154
  116. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb_dump.1 +94 -94
  117. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb_dump.c +333 -333
  118. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb_load.1 +97 -97
  119. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb_load.c +530 -530
  120. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb_stat.1 +83 -83
  121. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb_stat.c +276 -276
  122. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/midl.c +452 -452
  123. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/midl.h +208 -208
  124. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/module.c +101 -101
  125. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/module.h +16 -16
  126. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mtest.c +178 -178
  127. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mtest2.c +124 -124
  128. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mtest3.c +133 -133
  129. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mtest4.c +168 -168
  130. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mtest5.c +135 -135
  131. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mtest6.c +141 -141
  132. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mtest_enc.c +190 -190
  133. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mtest_enc2.c +189 -189
  134. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/mtest_remap.c +177 -177
  135. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/sample-bdb.txt +73 -73
  136. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/sample-mdb.txt +62 -62
  137. package/node_modules/lmdb-store/dependencies/lmdb/libraries/liblmdb/tooltag +27 -27
  138. package/node_modules/lmdb-store/dependencies/lz4/LICENSE +11 -11
  139. package/node_modules/lmdb-store/dependencies/lz4/lib/README.md +137 -137
  140. package/node_modules/lmdb-store/dependencies/lz4/lib/dll/example/README.md +69 -69
  141. package/node_modules/lmdb-store/dependencies/lz4/lib/lz4frame.c +1899 -1899
  142. package/node_modules/lmdb-store/dependencies/lz4/lib/xxhash.c +1030 -1030
  143. package/node_modules/lmdb-store/dependencies/lz4/lib/xxhash.h +328 -328
  144. package/node_modules/lmdb-store/dist/index.cjs +2591 -0
  145. package/node_modules/lmdb-store/dist/index.cjs.map +1 -0
  146. package/node_modules/lmdb-store/index.d.ts +323 -323
  147. package/node_modules/lmdb-store/index.js +1274 -1274
  148. package/node_modules/lmdb-store/index.mjs +3 -3
  149. package/node_modules/lmdb-store/package.json +16 -11
  150. package/node_modules/lmdb-store/prebuilds/darwin-arm64/electron.abi98.node +0 -0
  151. package/node_modules/lmdb-store/prebuilds/darwin-arm64/node.abi83.node +0 -0
  152. package/node_modules/lmdb-store/prebuilds/darwin-arm64/node.abi93.node +0 -0
  153. package/node_modules/lmdb-store/prebuilds/darwin-x64/electron.abi98.node +0 -0
  154. package/node_modules/lmdb-store/prebuilds/darwin-x64/node.abi83.node +0 -0
  155. package/node_modules/lmdb-store/prebuilds/darwin-x64/node.abi93.node +0 -0
  156. package/node_modules/lmdb-store/prebuilds/linux-arm64/electron.abi98.node +0 -0
  157. package/node_modules/lmdb-store/prebuilds/linux-arm64/node.abi83.node +0 -0
  158. package/node_modules/lmdb-store/prebuilds/linux-arm64/node.abi93.node +0 -0
  159. package/node_modules/lmdb-store/prebuilds/linux-x64/electron.abi98.node +0 -0
  160. package/node_modules/lmdb-store/prebuilds/linux-x64/node.abi83.musl.node +0 -0
  161. package/node_modules/lmdb-store/prebuilds/linux-x64/node.abi83.node +0 -0
  162. package/node_modules/lmdb-store/prebuilds/linux-x64/node.abi93.musl.node +0 -0
  163. package/node_modules/lmdb-store/prebuilds/linux-x64/node.abi93.node +0 -0
  164. package/node_modules/lmdb-store/prebuilds/win32-x64/electron.abi98.node +0 -0
  165. package/node_modules/lmdb-store/prebuilds/win32-x64/node.abi83.node +0 -0
  166. package/node_modules/lmdb-store/prebuilds/win32-x64/node.abi93.node +0 -0
  167. package/node_modules/lmdb-store/src/compression.cpp +181 -181
  168. package/node_modules/lmdb-store/src/cursor.cpp +407 -407
  169. package/node_modules/lmdb-store/src/dbi.cpp +354 -354
  170. package/node_modules/lmdb-store/src/env.cpp +1134 -1134
  171. package/node_modules/lmdb-store/src/misc.cpp +528 -528
  172. package/node_modules/lmdb-store/src/node-lmdb.cpp +44 -44
  173. package/node_modules/lmdb-store/src/node-lmdb.h +965 -965
  174. package/node_modules/lmdb-store/src/ordered-binary.cpp +337 -337
  175. package/node_modules/lmdb-store/src/txn.cpp +513 -513
  176. package/node_modules/lmdb-store/src/v8-fast-api-calls.h +419 -419
  177. package/node_modules/lmdb-store/src/windows.c +30 -30
  178. package/node_modules/lmdb-store/test/index.test.js +584 -584
  179. package/node_modules/lmdb-store/test/node-lmdb.test.js +1525 -1525
  180. package/node_modules/lmdb-store/test/threads.js +100 -100
  181. package/node_modules/lmdb-store/util/ArrayLikeIterable.js +136 -136
  182. package/node_modules/lmdb-store/util/WeakValueMap.js +40 -40
  183. package/node_modules/lmdb-store/util/upgrade-lmdb.js +46 -46
  184. package/node_modules/lmdb-store/util/when.js +8 -8
  185. package/node_modules/microtime/.github/workflows/release.yml +76 -0
  186. package/node_modules/microtime/.github/workflows/test.yml +46 -0
  187. package/node_modules/microtime/README.md +0 -2
  188. package/node_modules/microtime/binding.gyp +28 -10
  189. package/node_modules/microtime/package.json +25 -20
  190. package/node_modules/microtime/prebuilds/darwin-x64+arm64/electron.napi.node +0 -0
  191. package/node_modules/microtime/prebuilds/darwin-x64+arm64/node.napi.node +0 -0
  192. package/node_modules/microtime/prebuilds/linux-arm/node.napi.armv7.node +0 -0
  193. package/node_modules/microtime/prebuilds/linux-arm64/node.napi.armv8.node +0 -0
  194. package/node_modules/microtime/prebuilds/linux-x64/electron.napi.node +0 -0
  195. package/node_modules/microtime/prebuilds/linux-x64/node.napi.node +0 -0
  196. package/node_modules/microtime/prebuilds/win32-ia32/electron.napi.node +0 -0
  197. package/node_modules/microtime/prebuilds/win32-ia32/node.napi.node +0 -0
  198. package/node_modules/microtime/prebuilds/win32-x64/electron.napi.node +0 -0
  199. package/node_modules/microtime/prebuilds/win32-x64/node.napi.node +0 -0
  200. package/node_modules/msgpackr/dist/index.js +1929 -1917
  201. package/node_modules/msgpackr/dist/index.min.js +67 -68
  202. package/node_modules/msgpackr/dist/node.cjs +1994 -1980
  203. package/node_modules/msgpackr/dist/test.js +683 -1235
  204. package/node_modules/msgpackr/index.d.ts +23 -12
  205. package/node_modules/msgpackr/node-index.js +23 -21
  206. package/node_modules/msgpackr/pack.js +935 -931
  207. package/node_modules/msgpackr/package.json +24 -12
  208. package/node_modules/msgpackr/unpack.d.ts +52 -50
  209. package/node_modules/msgpackr/unpack.js +1061 -1053
  210. package/node_modules/msgpackr-extract/bin/download-prebuilds.js +11 -0
  211. package/node_modules/msgpackr-extract/binding.gyp +22 -5
  212. package/node_modules/msgpackr-extract/index.js +1 -1
  213. package/node_modules/msgpackr-extract/package.json +46 -21
  214. package/node_modules/msgpackr-extract/src/.vs/ProjectSettings.json +3 -0
  215. package/node_modules/msgpackr-extract/src/.vs/VSWorkspaceState.json +7 -0
  216. package/node_modules/msgpackr-extract/src/.vs/slnx.sqlite +0 -0
  217. package/node_modules/msgpackr-extract/src/.vs/src/v16/.suo +0 -0
  218. package/node_modules/msgpackr-extract/src/.vs/src/v16/Browse.VC.db +0 -0
  219. package/node_modules/msgpackr-extract/{prebuilds/darwin-x64/node.abi72.node → src/.vs/src/v16/Browse.VC.db-shm} +0 -0
  220. package/node_modules/msgpackr-extract/src/.vs/src/v16/Browse.VC.db-wal +0 -0
  221. package/node_modules/msgpackr-extract/src/extract.cpp +272 -269
  222. package/node_modules/nan/package.json +0 -1
  223. package/node_modules/node-addon-api/README.md +146 -53
  224. package/node_modules/node-addon-api/common.gypi +21 -0
  225. package/node_modules/node-addon-api/except.gypi +25 -0
  226. package/node_modules/node-addon-api/index.js +7 -41
  227. package/node_modules/node-addon-api/napi-inl.deprecated.h +8 -8
  228. package/node_modules/node-addon-api/napi-inl.h +2795 -633
  229. package/node_modules/node-addon-api/napi.h +1547 -597
  230. package/node_modules/node-addon-api/node_api.gyp +9 -0
  231. package/node_modules/node-addon-api/noexcept.gypi +26 -0
  232. package/node_modules/node-addon-api/nothing.c +0 -0
  233. package/node_modules/node-addon-api/package-support.json +21 -0
  234. package/node_modules/node-addon-api/package.json +203 -13
  235. package/node_modules/node-addon-api/tools/README.md +12 -6
  236. package/node_modules/node-addon-api/tools/clang-format.js +71 -0
  237. package/node_modules/node-addon-api/tools/conversion.js +4 -8
  238. package/node_modules/node-addon-api/tools/eslint-format.js +71 -0
  239. package/node_modules/node-gyp-build/README.md +17 -14
  240. package/node_modules/node-gyp-build/bin.js +28 -15
  241. package/node_modules/node-gyp-build/index.js +145 -34
  242. package/node_modules/node-gyp-build/package.json +18 -15
  243. package/node_modules/{lmdb-store/node_modules/node-gyp-build → node-gyp-build-optional-packages}/LICENSE +0 -0
  244. package/node_modules/{lmdb-store/node_modules/node-gyp-build → node-gyp-build-optional-packages}/README.md +0 -0
  245. package/node_modules/{lmdb-store/node_modules/node-gyp-build → node-gyp-build-optional-packages}/bin.js +1 -1
  246. package/node_modules/{lmdb-store/node_modules/node-gyp-build → node-gyp-build-optional-packages}/build-test.js +0 -0
  247. package/node_modules/{lmdb-store/node_modules/node-gyp-build → node-gyp-build-optional-packages}/index.js +17 -11
  248. package/node_modules/{lmdb-store/node_modules/node-gyp-build → node-gyp-build-optional-packages}/optional.js +0 -0
  249. package/node_modules/{msgpackr-extract/node_modules/node-gyp-build → node-gyp-build-optional-packages}/package.json +17 -17
  250. package/package.json +12 -11
  251. package/security/JWTObjects.jsc +0 -0
  252. package/security/auth.jsc +0 -0
  253. package/security/cryptoHash.jsc +0 -0
  254. package/security/data_objects/PermissionAttributeResponseObject.jsc +0 -0
  255. package/security/data_objects/PermissionResponseObject.jsc +0 -0
  256. package/security/data_objects/PermissionTableResponseObject.jsc +0 -0
  257. package/security/permissionsTranslator.jsc +0 -0
  258. package/security/role.jsc +0 -0
  259. package/security/tokenAuthentication.jsc +0 -0
  260. package/security/user.jsc +0 -0
  261. package/server/ClusteringOriginObject.jsc +0 -0
  262. package/server/JobObject.jsc +0 -0
  263. package/server/clustering/ClusterStatusObject.jsc +0 -0
  264. package/server/clustering/NodeObject.jsc +0 -0
  265. package/server/clustering/clusterUtilities.jsc +0 -0
  266. package/server/configuration.jsc +0 -0
  267. package/server/customFunctions/customFunctionsServer.jsc +0 -0
  268. package/server/customFunctions/helpers/getCORSOptions.jsc +0 -0
  269. package/server/customFunctions/helpers/getHeaderTimeoutConfig.jsc +0 -0
  270. package/server/customFunctions/helpers/getServerOptions.jsc +0 -0
  271. package/server/customFunctions/operations.jsc +0 -0
  272. package/server/customFunctions/operationsValidation.jsc +0 -0
  273. package/server/harperdb/hdbServer.jsc +0 -0
  274. package/server/ipc/IPCClient.jsc +0 -0
  275. package/server/ipc/hdbIpcServer.jsc +0 -0
  276. package/server/ipc/serverHandlers.jsc +0 -0
  277. package/server/ipc/utility/IPCEventObject.jsc +0 -0
  278. package/server/ipc/utility/ipcUtils.jsc +0 -0
  279. package/server/jobRunner.jsc +0 -0
  280. package/server/jobThread.jsc +0 -0
  281. package/server/jobs.jsc +0 -0
  282. package/server/serverHelpers/OperationFunctionObject.jsc +0 -0
  283. package/server/serverHelpers/requestTimePlugin.jsc +0 -0
  284. package/server/serverHelpers/serverHandlers.jsc +0 -0
  285. package/server/serverHelpers/serverUtilities.jsc +0 -0
  286. package/server/socketcluster/Server.jsc +0 -0
  287. package/server/socketcluster/broker.jsc +0 -0
  288. package/server/socketcluster/connector/HDBSocketConnector.jsc +0 -0
  289. package/server/socketcluster/connector/InterNodeSocketConnector.jsc +0 -0
  290. package/server/socketcluster/connector/SocketConnector.jsc +0 -0
  291. package/server/socketcluster/connector/spawnSCConnection.jsc +0 -0
  292. package/server/socketcluster/decisionMatrix/CoreDecisionMatrix.jsc +0 -0
  293. package/server/socketcluster/decisionMatrix/DecisionMatrixIF.jsc +0 -0
  294. package/server/socketcluster/decisionMatrix/rules/AssignToHdbChildWorkerRule.jsc +0 -0
  295. package/server/socketcluster/decisionMatrix/rules/CallRoomMsgHandlerRule.jsc +0 -0
  296. package/server/socketcluster/decisionMatrix/rules/CleanDataObjectRule.jsc +0 -0
  297. package/server/socketcluster/decisionMatrix/rules/CommandCollection.jsc +0 -0
  298. package/server/socketcluster/decisionMatrix/rules/DummyRule.jsc +0 -0
  299. package/server/socketcluster/decisionMatrix/rules/RulesIF.jsc +0 -0
  300. package/server/socketcluster/decisionMatrix/rules/StripHdbHeaderRule.jsc +0 -0
  301. package/server/socketcluster/decisionMatrix/rules/TestRule.jsc +0 -0
  302. package/server/socketcluster/handlers/NodeConnectionsHandler.jsc +0 -0
  303. package/server/socketcluster/handlers/SCServer.jsc +0 -0
  304. package/server/socketcluster/handlers/ServerSocket.jsc +0 -0
  305. package/server/socketcluster/interNodeConnectionLauncher.jsc +0 -0
  306. package/server/socketcluster/messageQueue/MessageQueueIF.jsc +0 -0
  307. package/server/socketcluster/middleware/AuthMiddleware.jsc +0 -0
  308. package/server/socketcluster/middleware/ConnectionNameCheckMiddleware.jsc +0 -0
  309. package/server/socketcluster/middleware/GenericMiddleware.jsc +0 -0
  310. package/server/socketcluster/middleware/MessagePrepMiddleware.jsc +0 -0
  311. package/server/socketcluster/middleware/MiddlewareFactory.jsc +0 -0
  312. package/server/socketcluster/middleware/MiddlewareIF.jsc +0 -0
  313. package/server/socketcluster/middleware/OriginatorCheckMiddleware.jsc +0 -0
  314. package/server/socketcluster/middleware/RequestDataValidMiddleware.jsc +0 -0
  315. package/server/socketcluster/middleware/StampOriginatorMiddleware.jsc +0 -0
  316. package/server/socketcluster/middleware/StampRequestMiddleware.jsc +0 -0
  317. package/server/socketcluster/observer/EventableIF.jsc +0 -0
  318. package/server/socketcluster/room/AddUserRoom.jsc +0 -0
  319. package/server/socketcluster/room/AlterUserRoom.jsc +0 -0
  320. package/server/socketcluster/room/CoreRoom.jsc +0 -0
  321. package/server/socketcluster/room/CreateAttributeRoom.jsc +0 -0
  322. package/server/socketcluster/room/CreateSchemaRoom.jsc +0 -0
  323. package/server/socketcluster/room/CreateTableRoom.jsc +0 -0
  324. package/server/socketcluster/room/DropUserRoom.jsc +0 -0
  325. package/server/socketcluster/room/HDBNodeRoom.jsc +0 -0
  326. package/server/socketcluster/room/RoomIF.jsc +0 -0
  327. package/server/socketcluster/room/RoomMessageObjects.jsc +0 -0
  328. package/server/socketcluster/room/UsersRoom.jsc +0 -0
  329. package/server/socketcluster/room/WatchHDBWorkersRoom.jsc +0 -0
  330. package/server/socketcluster/room/WorkerRoom.jsc +0 -0
  331. package/server/socketcluster/room/roomFactory.jsc +0 -0
  332. package/server/socketcluster/socketClusterObjects.jsc +0 -0
  333. package/server/socketcluster/types.jsc +0 -0
  334. package/server/socketcluster/util/clusterData.jsc +0 -0
  335. package/server/socketcluster/util/socketClusterUtils.jsc +0 -0
  336. package/server/socketcluster/worker/ClusterWorker.jsc +0 -0
  337. package/server/socketcluster/worker/WorkerIF.jsc +0 -0
  338. package/server/socketcluster/worker/WorkerObjects.jsc +0 -0
  339. package/server/transactToClusteringUtilities.jsc +0 -0
  340. package/sqlTranslator/SelectValidator.jsc +0 -0
  341. package/sqlTranslator/alasqlFunctionImporter.jsc +0 -0
  342. package/sqlTranslator/conditionPatterns.jsc +0 -0
  343. package/sqlTranslator/deleteTranslator.jsc +0 -0
  344. package/sqlTranslator/index.jsc +0 -0
  345. package/sqlTranslator/sql_statement_bucket.jsc +0 -0
  346. package/upgrade/EnvironmentVariable.jsc +0 -0
  347. package/upgrade/UpgradeDirective.jsc +0 -0
  348. package/upgrade/UpgradeObjects.jsc +0 -0
  349. package/upgrade/directives/3-0-0.jsc +0 -0
  350. package/upgrade/directives/3-1-0.jsc +0 -0
  351. package/upgrade/directives/directivesController.jsc +0 -0
  352. package/upgrade/directives/upgrade_scripts/3_0_0_reindex_script.jsc +0 -0
  353. package/upgrade/directivesManager.jsc +0 -0
  354. package/upgrade/lmdb/nodeLMDB/DBIDefinition.jsc +0 -0
  355. package/upgrade/lmdb/nodeLMDB/OpenDBIObject.jsc +0 -0
  356. package/upgrade/lmdb/nodeLMDB/OpenEnvironmentObject.jsc +0 -0
  357. package/upgrade/lmdb/nodeLMDB/commonErrors.jsc +0 -0
  358. package/upgrade/lmdb/nodeLMDB/commonUtility.jsc +0 -0
  359. package/upgrade/lmdb/nodeLMDB/environmentUtility.jsc +0 -0
  360. package/upgrade/lmdb/nodeLMDB/terms.jsc +0 -0
  361. package/upgrade/upgradePrompt.jsc +0 -0
  362. package/upgrade/upgradeUtilities.jsc +0 -0
  363. package/utility/AWS/AWSConnector.jsc +0 -0
  364. package/utility/OperationFunctionCaller.jsc +0 -0
  365. package/utility/common_utils.jsc +0 -0
  366. package/utility/environment/SystemInformationObject.jsc +0 -0
  367. package/utility/environment/SystemInformationOperation.jsc +0 -0
  368. package/utility/environment/environmentManager.jsc +0 -0
  369. package/utility/environment/systemInformation.jsc +0 -0
  370. package/utility/errors/commonErrors.jsc +0 -0
  371. package/utility/errors/hdbError.jsc +0 -0
  372. package/utility/functions/date/dateFunctions.jsc +0 -0
  373. package/utility/functions/geo.jsc +0 -0
  374. package/utility/functions/math/avg.jsc +0 -0
  375. package/utility/functions/math/count.jsc +0 -0
  376. package/utility/functions/sql/alaSQLExtension.jsc +0 -0
  377. package/utility/functions/string/compare.jsc +0 -0
  378. package/utility/globalSchema.jsc +0 -0
  379. package/utility/hdbTerms.jsc +0 -0
  380. package/utility/install/checkJWTTokensExist.jsc +0 -0
  381. package/utility/install/installer.jsc +0 -0
  382. package/utility/install_user_permission.jsc +0 -0
  383. package/utility/lmdb/DBIDefinition.jsc +0 -0
  384. package/utility/lmdb/DeleteRecordsResponseObject.jsc +0 -0
  385. package/utility/lmdb/InsertRecordsResponseObject.jsc +0 -0
  386. package/utility/lmdb/OpenDBIObject.jsc +0 -0
  387. package/utility/lmdb/OpenEnvironmentObject.jsc +0 -0
  388. package/utility/lmdb/UpdateRecordsResponseObject.jsc +0 -0
  389. package/utility/lmdb/UpsertRecordsResponseObject.jsc +0 -0
  390. package/utility/lmdb/cleanLMDBMap.jsc +0 -0
  391. package/utility/lmdb/commonUtility.jsc +0 -0
  392. package/utility/lmdb/deleteUtility.jsc +0 -0
  393. package/utility/lmdb/environmentUtility.jsc +0 -0
  394. package/utility/lmdb/searchCursorFunctions.jsc +0 -0
  395. package/utility/lmdb/searchUtility.jsc +0 -0
  396. package/utility/lmdb/terms.jsc +0 -0
  397. package/utility/lmdb/writeUtility.jsc +0 -0
  398. package/utility/logging/harper_logger.jsc +0 -0
  399. package/utility/mount_hdb.jsc +0 -0
  400. package/utility/npmUtilities.jsc +0 -0
  401. package/utility/operation_authorization.jsc +0 -0
  402. package/utility/password.jsc +0 -0
  403. package/utility/pm2/servicesConfig.jsc +0 -0
  404. package/utility/pm2/utilityFunctions.jsc +0 -0
  405. package/utility/psList.jsc +0 -0
  406. package/utility/registration/hdb_license.jsc +0 -0
  407. package/utility/registration/licenseObjects.jsc +0 -0
  408. package/utility/registration/registrationHandler.jsc +0 -0
  409. package/utility/scripts/restartHdb.jsc +0 -0
  410. package/utility/signalling.jsc +0 -0
  411. package/utility/system_info.jsc +0 -0
  412. package/validation/bulkDeleteValidator.jsc +0 -0
  413. package/validation/check_permissions.jsc +0 -0
  414. package/validation/clustering/configureValidator.jsc +0 -0
  415. package/validation/common_validators.jsc +0 -0
  416. package/validation/conditionalDeleteValidator.jsc +0 -0
  417. package/validation/deleteValidator.jsc +0 -0
  418. package/validation/fileLoadValidator.jsc +0 -0
  419. package/validation/insertValidator.jsc +0 -0
  420. package/validation/nodeSubscriptionValidator.jsc +0 -0
  421. package/validation/nodeValidator.jsc +0 -0
  422. package/validation/readLogValidator.jsc +0 -0
  423. package/validation/registration/license_key_object.jsc +0 -0
  424. package/validation/role_validation.jsc +0 -0
  425. package/validation/schemaMetadataValidator.jsc +0 -0
  426. package/validation/schema_validator.jsc +0 -0
  427. package/validation/searchValidator.jsc +0 -0
  428. package/validation/user_validation.jsc +0 -0
  429. package/validation/validationWrapper.jsc +0 -0
  430. package/node_modules/lmdb-store/build/Makefile +0 -324
  431. package/node_modules/lmdb-store/build/Release/.deps/Release/lmdb-store.node.d +0 -1
  432. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/dependencies/lmdb/libraries/liblmdb/chacha8.o.d +0 -6
  433. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb.o.d +0 -8
  434. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/dependencies/lmdb/libraries/liblmdb/midl.o.d +0 -8
  435. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/dependencies/lz4/lib/lz4.o.d +0 -5
  436. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/src/compression.o.d +0 -72
  437. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/src/cursor.o.d +0 -73
  438. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/src/dbi.o.d +0 -73
  439. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/src/env.o.d +0 -73
  440. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/src/misc.o.d +0 -73
  441. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/src/node-lmdb.o.d +0 -73
  442. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/src/ordered-binary.o.d +0 -73
  443. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/src/txn.o.d +0 -73
  444. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store/src/windows.o.d +0 -3
  445. package/node_modules/lmdb-store/build/Release/.deps/Release/obj.target/lmdb-store.node.d +0 -1
  446. package/node_modules/lmdb-store/build/Release/lmdb-store.node +0 -0
  447. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/dependencies/lmdb/libraries/liblmdb/chacha8.o +0 -0
  448. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/dependencies/lmdb/libraries/liblmdb/mdb.o +0 -0
  449. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/dependencies/lmdb/libraries/liblmdb/midl.o +0 -0
  450. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/dependencies/lz4/lib/lz4.o +0 -0
  451. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/src/compression.o +0 -0
  452. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/src/cursor.o +0 -0
  453. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/src/dbi.o +0 -0
  454. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/src/env.o +0 -0
  455. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/src/misc.o +0 -0
  456. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/src/node-lmdb.o +0 -0
  457. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/src/ordered-binary.o +0 -0
  458. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/src/txn.o +0 -0
  459. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store/src/windows.o +0 -0
  460. package/node_modules/lmdb-store/build/Release/obj.target/lmdb-store.node +0 -0
  461. package/node_modules/lmdb-store/build/binding.Makefile +0 -6
  462. package/node_modules/lmdb-store/build/config.gypi +0 -426
  463. package/node_modules/lmdb-store/build/lmdb-store.target.mk +0 -206
  464. package/node_modules/lmdb-store/node_modules/node-gyp-build/package.json +0 -60
  465. package/node_modules/lmdb-store/prebuilds/darwin-x64/electron.abi87.node +0 -0
  466. package/node_modules/lmdb-store/prebuilds/darwin-x64/node.abi72.node +0 -0
  467. package/node_modules/lmdb-store/prebuilds/darwin-x64/node.abi88.node +0 -0
  468. package/node_modules/lmdb-store/prebuilds/win32-x64/electron.abi87.node +0 -0
  469. package/node_modules/lmdb-store/prebuilds/win32-x64/node.abi72.node +0 -0
  470. package/node_modules/lmdb-store/prebuilds/win32-x64/node.abi88.node +0 -0
  471. package/node_modules/microtime/prebuilds/darwin-x64/electron-napi.node +0 -0
  472. package/node_modules/microtime/prebuilds/darwin-x64/node-napi.node +0 -0
  473. package/node_modules/microtime/prebuilds/linux-arm/electron-napi.node +0 -0
  474. package/node_modules/microtime/prebuilds/linux-arm/node-napi.node +0 -0
  475. package/node_modules/microtime/prebuilds/linux-x64/electron-napi.node +0 -0
  476. package/node_modules/microtime/prebuilds/linux-x64/node-napi.node +0 -0
  477. package/node_modules/microtime/prebuilds/win32-x64/electron-napi.node +0 -0
  478. package/node_modules/microtime/prebuilds/win32-x64/node-napi.node +0 -0
  479. package/node_modules/msgpackr-extract/.circleci/config.yml +0 -19
  480. package/node_modules/msgpackr-extract/.travis.yml +0 -30
  481. package/node_modules/msgpackr-extract/node_modules/node-gyp-build/LICENSE +0 -21
  482. package/node_modules/msgpackr-extract/node_modules/node-gyp-build/README.md +0 -58
  483. package/node_modules/msgpackr-extract/node_modules/node-gyp-build/bin.js +0 -77
  484. package/node_modules/msgpackr-extract/node_modules/node-gyp-build/build-test.js +0 -19
  485. package/node_modules/msgpackr-extract/node_modules/node-gyp-build/index.js +0 -202
  486. package/node_modules/msgpackr-extract/node_modules/node-gyp-build/optional.js +0 -7
  487. package/node_modules/msgpackr-extract/prebuilds/darwin-arm64/electron.abi98.node +0 -0
  488. package/node_modules/msgpackr-extract/prebuilds/darwin-arm64/node.abi102.node +0 -0
  489. package/node_modules/msgpackr-extract/prebuilds/darwin-arm64/node.abi83.node +0 -0
  490. package/node_modules/msgpackr-extract/prebuilds/darwin-arm64/node.abi93.node +0 -0
  491. package/node_modules/msgpackr-extract/prebuilds/darwin-x64/electron.abi98.node +0 -0
  492. package/node_modules/msgpackr-extract/prebuilds/darwin-x64/node.abi102.node +0 -0
  493. package/node_modules/msgpackr-extract/prebuilds/darwin-x64/node.abi83.node +0 -0
  494. package/node_modules/msgpackr-extract/prebuilds/darwin-x64/node.abi88.node +0 -0
  495. package/node_modules/msgpackr-extract/prebuilds/darwin-x64/node.abi93.node +0 -0
  496. package/node_modules/msgpackr-extract/prebuilds/linux-arm64/electron.abi98.node +0 -0
  497. package/node_modules/msgpackr-extract/prebuilds/linux-arm64/node.abi102.node +0 -0
  498. package/node_modules/msgpackr-extract/prebuilds/linux-arm64/node.abi83.node +0 -0
  499. package/node_modules/msgpackr-extract/prebuilds/linux-arm64/node.abi93.node +0 -0
  500. package/node_modules/msgpackr-extract/prebuilds/linux-x64/electron.abi98.node +0 -0
  501. package/node_modules/msgpackr-extract/prebuilds/linux-x64/node.abi102.musl.node +0 -0
  502. package/node_modules/msgpackr-extract/prebuilds/linux-x64/node.abi102.node +0 -0
  503. package/node_modules/msgpackr-extract/prebuilds/linux-x64/node.abi72.musl.node +0 -0
  504. package/node_modules/msgpackr-extract/prebuilds/linux-x64/node.abi72.node +0 -0
  505. package/node_modules/msgpackr-extract/prebuilds/linux-x64/node.abi83.musl.node +0 -0
  506. package/node_modules/msgpackr-extract/prebuilds/linux-x64/node.abi83.node +0 -0
  507. package/node_modules/msgpackr-extract/prebuilds/linux-x64/node.abi88.node +0 -0
  508. package/node_modules/msgpackr-extract/prebuilds/linux-x64/node.abi93.musl.node +0 -0
  509. package/node_modules/msgpackr-extract/prebuilds/linux-x64/node.abi93.node +0 -0
  510. package/node_modules/msgpackr-extract/prebuilds/win32-x64/electron.abi98.node +0 -0
  511. package/node_modules/msgpackr-extract/prebuilds/win32-x64/node.abi102.node +0 -0
  512. package/node_modules/msgpackr-extract/prebuilds/win32-x64/node.abi72.node +0 -0
  513. package/node_modules/msgpackr-extract/prebuilds/win32-x64/node.abi83.node +0 -0
  514. package/node_modules/msgpackr-extract/prebuilds/win32-x64/node.abi88.node +0 -0
  515. package/node_modules/msgpackr-extract/prebuilds/win32-x64/node.abi93.node +0 -0
  516. package/node_modules/node-addon-api/.editorconfig +0 -8
  517. package/node_modules/node-addon-api/.travis.yml +0 -65
  518. package/node_modules/node-addon-api/CHANGELOG.md +0 -325
  519. package/node_modules/node-addon-api/CODE_OF_CONDUCT.md +0 -4
  520. package/node_modules/node-addon-api/CONTRIBUTING.md +0 -66
  521. package/node_modules/node-addon-api/appveyor.yml +0 -48
  522. package/node_modules/node-addon-api/doc/Doxyfile +0 -2450
  523. package/node_modules/node-addon-api/doc/array_buffer.md +0 -129
  524. package/node_modules/node-addon-api/doc/async_context.md +0 -76
  525. package/node_modules/node-addon-api/doc/async_operations.md +0 -31
  526. package/node_modules/node-addon-api/doc/async_worker.md +0 -397
  527. package/node_modules/node-addon-api/doc/basic_types.md +0 -415
  528. package/node_modules/node-addon-api/doc/bigint.md +0 -92
  529. package/node_modules/node-addon-api/doc/boolean.md +0 -64
  530. package/node_modules/node-addon-api/doc/buffer.md +0 -140
  531. package/node_modules/node-addon-api/doc/callback_scope.md +0 -54
  532. package/node_modules/node-addon-api/doc/callbackinfo.md +0 -97
  533. package/node_modules/node-addon-api/doc/checker-tool.md +0 -32
  534. package/node_modules/node-addon-api/doc/class_property_descriptor.md +0 -118
  535. package/node_modules/node-addon-api/doc/cmake-js.md +0 -19
  536. package/node_modules/node-addon-api/doc/conversion-tool.md +0 -28
  537. package/node_modules/node-addon-api/doc/creating_a_release.md +0 -62
  538. package/node_modules/node-addon-api/doc/dataview.md +0 -244
  539. package/node_modules/node-addon-api/doc/env.md +0 -63
  540. package/node_modules/node-addon-api/doc/error.md +0 -115
  541. package/node_modules/node-addon-api/doc/error_handling.md +0 -186
  542. package/node_modules/node-addon-api/doc/escapable_handle_scope.md +0 -82
  543. package/node_modules/node-addon-api/doc/external.md +0 -59
  544. package/node_modules/node-addon-api/doc/function.md +0 -294
  545. package/node_modules/node-addon-api/doc/function_reference.md +0 -238
  546. package/node_modules/node-addon-api/doc/generator.md +0 -13
  547. package/node_modules/node-addon-api/doc/handle_scope.md +0 -65
  548. package/node_modules/node-addon-api/doc/memory_management.md +0 -27
  549. package/node_modules/node-addon-api/doc/node-gyp.md +0 -82
  550. package/node_modules/node-addon-api/doc/number.md +0 -163
  551. package/node_modules/node-addon-api/doc/object.md +0 -202
  552. package/node_modules/node-addon-api/doc/object_lifetime_management.md +0 -83
  553. package/node_modules/node-addon-api/doc/object_reference.md +0 -117
  554. package/node_modules/node-addon-api/doc/object_wrap.md +0 -546
  555. package/node_modules/node-addon-api/doc/prebuild_tools.md +0 -16
  556. package/node_modules/node-addon-api/doc/promises.md +0 -74
  557. package/node_modules/node-addon-api/doc/property_descriptor.md +0 -231
  558. package/node_modules/node-addon-api/doc/range_error.md +0 -59
  559. package/node_modules/node-addon-api/doc/reference.md +0 -111
  560. package/node_modules/node-addon-api/doc/setup.md +0 -82
  561. package/node_modules/node-addon-api/doc/string.md +0 -89
  562. package/node_modules/node-addon-api/doc/symbol.md +0 -44
  563. package/node_modules/node-addon-api/doc/threadsafe_function.md +0 -303
  564. package/node_modules/node-addon-api/doc/type_error.md +0 -59
  565. package/node_modules/node-addon-api/doc/typed_array.md +0 -74
  566. package/node_modules/node-addon-api/doc/typed_array_of.md +0 -133
  567. package/node_modules/node-addon-api/doc/value.md +0 -269
  568. package/node_modules/node-addon-api/doc/version_management.md +0 -43
  569. package/node_modules/node-addon-api/doc/working_with_javascript_values.md +0 -14
  570. package/node_modules/node-addon-api/external-napi/node_api.h +0 -7
  571. package/node_modules/node-addon-api/src/node_api.cc +0 -3655
  572. package/node_modules/node-addon-api/src/node_api.gyp +0 -21
  573. package/node_modules/node-addon-api/src/node_api.h +0 -588
  574. package/node_modules/node-addon-api/src/node_api_types.h +0 -115
  575. package/node_modules/node-addon-api/src/node_internals.cc +0 -142
  576. package/node_modules/node-addon-api/src/node_internals.h +0 -157
  577. package/node_modules/node-addon-api/src/util-inl.h +0 -38
  578. package/node_modules/node-addon-api/src/util.h +0 -7
@@ -1,121 +1,121 @@
1
- /* crypto.c - LMDB encryption helper module */
2
- /*
3
- * Copyright 2020-2021 Howard Chu, Symas Corp.
4
- * All rights reserved.
5
- *
6
- * Redistribution and use in source and binary forms, with or without
7
- * modification, are permitted only as authorized by the Symas
8
- * Dual-Use License.
9
- *
10
- * A copy of this license is available in the file LICENSE in the
11
- * source distribution.
12
- */
13
- #include <string.h>
14
-
15
- #include <openssl/engine.h>
16
-
17
- #include "lmdb.h"
18
-
19
- MDB_crypto_hooks MDB_crypto;
20
-
21
- static EVP_CIPHER *cipher;
22
-
23
- static int mcf_str2key(const char *passwd, MDB_val *key)
24
- {
25
- unsigned int size;
26
- EVP_MD_CTX *mdctx = EVP_MD_CTX_new();
27
- EVP_DigestInit_ex(mdctx, EVP_sha256(), NULL);
28
- EVP_DigestUpdate(mdctx, "Just a Constant", sizeof("Just a Constant"));
29
- EVP_DigestUpdate(mdctx, passwd, strlen(passwd));
30
- EVP_DigestFinal_ex(mdctx, key->mv_data, &size);
31
- EVP_MD_CTX_free(mdctx);
32
- return 0;
33
- }
34
-
35
- /* cheats - internal OpenSSL 1.1 structures */
36
- typedef struct evp_cipher_ctx_st {
37
- const EVP_CIPHER *cipher;
38
- ENGINE *engine; /* functional reference if 'cipher' is
39
- * ENGINE-provided */
40
- int encrypt; /* encrypt or decrypt */
41
- int buf_len; /* number we have left */
42
- unsigned char oiv[EVP_MAX_IV_LENGTH]; /* original iv */
43
- unsigned char iv[EVP_MAX_IV_LENGTH]; /* working iv */
44
- unsigned char buf[EVP_MAX_BLOCK_LENGTH]; /* saved partial block */
45
- int num; /* used by cfb/ofb/ctr mode */
46
- /* FIXME: Should this even exist? It appears unused */
47
- void *app_data; /* application stuff */
48
- int key_len; /* May change for variable length cipher */
49
- unsigned long flags; /* Various flags */
50
- void *cipher_data; /* per EVP data */
51
- int final_used;
52
- int block_mask;
53
- unsigned char final[EVP_MAX_BLOCK_LENGTH]; /* possible final block */
54
- } EVP_CIPHER_CTX;
55
-
56
- #define CHACHA_KEY_SIZE 32
57
- #define CHACHA_CTR_SIZE 16
58
- #define CHACHA_BLK_SIZE 64
59
- #define POLY1305_BLOCK_SIZE 16
60
-
61
- typedef struct {
62
- union {
63
- double align; /* this ensures even sizeof(EVP_CHACHA_KEY)%8==0 */
64
- unsigned int d[CHACHA_KEY_SIZE / 4];
65
- } key;
66
- unsigned int counter[CHACHA_CTR_SIZE / 4];
67
- unsigned char buf[CHACHA_BLK_SIZE];
68
- unsigned int partial_len;
69
- } EVP_CHACHA_KEY;
70
-
71
- typedef struct {
72
- EVP_CHACHA_KEY key;
73
- unsigned int nonce[12/4];
74
- unsigned char tag[POLY1305_BLOCK_SIZE];
75
- unsigned char tls_aad[POLY1305_BLOCK_SIZE];
76
- struct { uint64_t aad, text; } len;
77
- int aad, mac_inited, tag_len, nonce_len;
78
- size_t tls_payload_length;
79
- } EVP_CHACHA_AEAD_CTX;
80
-
81
- static int mcf_encfunc(const MDB_val *src, MDB_val *dst, const MDB_val *key, int encdec)
82
- {
83
- unsigned char iv[12];
84
- int ivl, outl, rc;
85
- mdb_size_t *ptr;
86
- EVP_CIPHER_CTX ctx = {0};
87
- EVP_CHACHA_AEAD_CTX cactx;
88
-
89
- ctx.cipher_data = &cactx;
90
- ptr = key[1].mv_data;
91
- ivl = ptr[0] & 0xffffffff;
92
- memcpy(iv, &ivl, 4);
93
- memcpy(iv+4, ptr+1, sizeof(mdb_size_t));
94
- EVP_CipherInit_ex(&ctx, cipher, NULL, key[0].mv_data, iv, encdec);
95
- EVP_CIPHER_CTX_set_padding(&ctx, 0);
96
- if (!encdec) {
97
- EVP_CIPHER_CTX_ctrl(&ctx, EVP_CTRL_AEAD_SET_TAG, key[2].mv_size, key[2].mv_data);
98
- }
99
- rc = EVP_CipherUpdate(&ctx, dst->mv_data, &outl, src->mv_data, src->mv_size);
100
- if (rc)
101
- rc = EVP_CipherFinal_ex(&ctx, key[2].mv_data, &outl);
102
- if (rc && encdec) {
103
- EVP_CIPHER_CTX_ctrl(&ctx, EVP_CTRL_AEAD_GET_TAG, key[2].mv_size, key[2].mv_data);
104
- }
105
- return rc == 0;
106
- }
107
-
108
- static const MDB_crypto_funcs mcf_table = {
109
- mcf_str2key,
110
- mcf_encfunc,
111
- NULL,
112
- CHACHA_KEY_SIZE,
113
- POLY1305_BLOCK_SIZE,
114
- 0
115
- };
116
-
117
- MDB_crypto_funcs *MDB_crypto()
118
- {
119
- cipher = (EVP_CIPHER *)EVP_chacha20_poly1305();
120
- return (MDB_crypto_funcs *)&mcf_table;
121
- }
1
+ /* crypto.c - LMDB encryption helper module */
2
+ /*
3
+ * Copyright 2020-2021 Howard Chu, Symas Corp.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted only as authorized by the Symas
8
+ * Dual-Use License.
9
+ *
10
+ * A copy of this license is available in the file LICENSE in the
11
+ * source distribution.
12
+ */
13
+ #include <string.h>
14
+
15
+ #include <openssl/engine.h>
16
+
17
+ #include "lmdb.h"
18
+
19
+ MDB_crypto_hooks MDB_crypto;
20
+
21
+ static EVP_CIPHER *cipher;
22
+
23
+ static int mcf_str2key(const char *passwd, MDB_val *key)
24
+ {
25
+ unsigned int size;
26
+ EVP_MD_CTX *mdctx = EVP_MD_CTX_new();
27
+ EVP_DigestInit_ex(mdctx, EVP_sha256(), NULL);
28
+ EVP_DigestUpdate(mdctx, "Just a Constant", sizeof("Just a Constant"));
29
+ EVP_DigestUpdate(mdctx, passwd, strlen(passwd));
30
+ EVP_DigestFinal_ex(mdctx, key->mv_data, &size);
31
+ EVP_MD_CTX_free(mdctx);
32
+ return 0;
33
+ }
34
+
35
+ /* cheats - internal OpenSSL 1.1 structures */
36
+ typedef struct evp_cipher_ctx_st {
37
+ const EVP_CIPHER *cipher;
38
+ ENGINE *engine; /* functional reference if 'cipher' is
39
+ * ENGINE-provided */
40
+ int encrypt; /* encrypt or decrypt */
41
+ int buf_len; /* number we have left */
42
+ unsigned char oiv[EVP_MAX_IV_LENGTH]; /* original iv */
43
+ unsigned char iv[EVP_MAX_IV_LENGTH]; /* working iv */
44
+ unsigned char buf[EVP_MAX_BLOCK_LENGTH]; /* saved partial block */
45
+ int num; /* used by cfb/ofb/ctr mode */
46
+ /* FIXME: Should this even exist? It appears unused */
47
+ void *app_data; /* application stuff */
48
+ int key_len; /* May change for variable length cipher */
49
+ unsigned long flags; /* Various flags */
50
+ void *cipher_data; /* per EVP data */
51
+ int final_used;
52
+ int block_mask;
53
+ unsigned char final[EVP_MAX_BLOCK_LENGTH]; /* possible final block */
54
+ } EVP_CIPHER_CTX;
55
+
56
+ #define CHACHA_KEY_SIZE 32
57
+ #define CHACHA_CTR_SIZE 16
58
+ #define CHACHA_BLK_SIZE 64
59
+ #define POLY1305_BLOCK_SIZE 16
60
+
61
+ typedef struct {
62
+ union {
63
+ double align; /* this ensures even sizeof(EVP_CHACHA_KEY)%8==0 */
64
+ unsigned int d[CHACHA_KEY_SIZE / 4];
65
+ } key;
66
+ unsigned int counter[CHACHA_CTR_SIZE / 4];
67
+ unsigned char buf[CHACHA_BLK_SIZE];
68
+ unsigned int partial_len;
69
+ } EVP_CHACHA_KEY;
70
+
71
+ typedef struct {
72
+ EVP_CHACHA_KEY key;
73
+ unsigned int nonce[12/4];
74
+ unsigned char tag[POLY1305_BLOCK_SIZE];
75
+ unsigned char tls_aad[POLY1305_BLOCK_SIZE];
76
+ struct { uint64_t aad, text; } len;
77
+ int aad, mac_inited, tag_len, nonce_len;
78
+ size_t tls_payload_length;
79
+ } EVP_CHACHA_AEAD_CTX;
80
+
81
+ static int mcf_encfunc(const MDB_val *src, MDB_val *dst, const MDB_val *key, int encdec)
82
+ {
83
+ unsigned char iv[12];
84
+ int ivl, outl, rc;
85
+ mdb_size_t *ptr;
86
+ EVP_CIPHER_CTX ctx = {0};
87
+ EVP_CHACHA_AEAD_CTX cactx;
88
+
89
+ ctx.cipher_data = &cactx;
90
+ ptr = key[1].mv_data;
91
+ ivl = ptr[0] & 0xffffffff;
92
+ memcpy(iv, &ivl, 4);
93
+ memcpy(iv+4, ptr+1, sizeof(mdb_size_t));
94
+ EVP_CipherInit_ex(&ctx, cipher, NULL, key[0].mv_data, iv, encdec);
95
+ EVP_CIPHER_CTX_set_padding(&ctx, 0);
96
+ if (!encdec) {
97
+ EVP_CIPHER_CTX_ctrl(&ctx, EVP_CTRL_AEAD_SET_TAG, key[2].mv_size, key[2].mv_data);
98
+ }
99
+ rc = EVP_CipherUpdate(&ctx, dst->mv_data, &outl, src->mv_data, src->mv_size);
100
+ if (rc)
101
+ rc = EVP_CipherFinal_ex(&ctx, key[2].mv_data, &outl);
102
+ if (rc && encdec) {
103
+ EVP_CIPHER_CTX_ctrl(&ctx, EVP_CTRL_AEAD_GET_TAG, key[2].mv_size, key[2].mv_data);
104
+ }
105
+ return rc == 0;
106
+ }
107
+
108
+ static const MDB_crypto_funcs mcf_table = {
109
+ mcf_str2key,
110
+ mcf_encfunc,
111
+ NULL,
112
+ CHACHA_KEY_SIZE,
113
+ POLY1305_BLOCK_SIZE,
114
+ 0
115
+ };
116
+
117
+ MDB_crypto_funcs *MDB_crypto()
118
+ {
119
+ cipher = (EVP_CIPHER *)EVP_chacha20_poly1305();
120
+ return (MDB_crypto_funcs *)&mcf_table;
121
+ }
@@ -1,192 +1,192 @@
1
- /*
2
- * Copyright 2015-2021 Howard Chu, Symas Corp.
3
- * All rights reserved.
4
- *
5
- * Redistribution and use in source and binary forms, with or without
6
- * modification, are permitted only as authorized by the OpenLDAP
7
- * Public License.
8
- *
9
- * A copy of this license is available in the file LICENSE in the
10
- * top-level directory of the distribution or, alternatively, at
11
- * <http://www.OpenLDAP.org/license.html>.
12
- */
13
- /** @page starting Getting Started
14
-
15
- LMDB is compact, fast, powerful, and robust and implements a simplified
16
- variant of the BerkeleyDB (BDB) API. (BDB is also very powerful, and verbosely
17
- documented in its own right.) After reading this page, the main
18
- \ref mdb documentation should make sense. Thanks to Bert Hubert
19
- for creating the
20
- <a href="https://github.com/ahupowerdns/ahutils/blob/master/lmdb-semantics.md">
21
- initial version</a> of this writeup.
22
-
23
- Everything starts with an environment, created by #mdb_env_create().
24
- Once created, this environment must also be opened with #mdb_env_open().
25
-
26
- #mdb_env_open() gets passed a name which is interpreted as a directory
27
- path. Note that this directory must exist already, it is not created
28
- for you. Within that directory, a lock file and a storage file will be
29
- generated. If you don't want to use a directory, you can pass the
30
- #MDB_NOSUBDIR option, in which case the path you provided is used
31
- directly as the data file, and another file with a "-lock" suffix
32
- added will be used for the lock file.
33
-
34
- Once the environment is open, a transaction can be created within it
35
- using #mdb_txn_begin(). Transactions may be read-write or read-only,
36
- and read-write transactions may be nested. A transaction must only
37
- be used by one thread at a time. Transactions are always required,
38
- even for read-only access. The transaction provides a consistent
39
- view of the data.
40
-
41
- Once a transaction has been created, a database can be opened within it
42
- using #mdb_dbi_open(). If only one database will ever be used in the
43
- environment, a NULL can be passed as the database name. For named
44
- databases, the #MDB_CREATE flag must be used to create the database
45
- if it doesn't already exist. Also, #mdb_env_set_maxdbs() must be
46
- called after #mdb_env_create() and before #mdb_env_open() to set the
47
- maximum number of named databases you want to support.
48
-
49
- Note: a single transaction can open multiple databases. Generally
50
- databases should only be opened once, by the first transaction in
51
- the process. After the first transaction completes, the database
52
- handles can freely be used by all subsequent transactions.
53
-
54
- Within a transaction, #mdb_get() and #mdb_put() can store single
55
- key/value pairs if that is all you need to do (but see \ref Cursors
56
- below if you want to do more).
57
-
58
- A key/value pair is expressed as two #MDB_val structures. This struct
59
- has two fields, \c mv_size and \c mv_data. The data is a \c void pointer to
60
- an array of \c mv_size bytes.
61
-
62
- Because LMDB is very efficient (and usually zero-copy), the data returned
63
- in an #MDB_val structure may be memory-mapped straight from disk. In
64
- other words <b>look but do not touch</b> (or free() for that matter).
65
- Once a transaction is closed, the values can no longer be used, so
66
- make a copy if you need to keep them after that.
67
-
68
- @section Cursors Cursors
69
-
70
- To do more powerful things, we must use a cursor.
71
-
72
- Within the transaction, a cursor can be created with #mdb_cursor_open().
73
- With this cursor we can store/retrieve/delete (multiple) values using
74
- #mdb_cursor_get(), #mdb_cursor_put(), and #mdb_cursor_del().
75
-
76
- #mdb_cursor_get() positions itself depending on the cursor operation
77
- requested, and for some operations, on the supplied key. For example,
78
- to list all key/value pairs in a database, use operation #MDB_FIRST for
79
- the first call to #mdb_cursor_get(), and #MDB_NEXT on subsequent calls,
80
- until the end is hit.
81
-
82
- To retrieve all keys starting from a specified key value, use #MDB_SET.
83
- For more cursor operations, see the \ref mdb docs.
84
-
85
- When using #mdb_cursor_put(), either the function will position the
86
- cursor for you based on the \b key, or you can use operation
87
- #MDB_CURRENT to use the current position of the cursor. Note that
88
- \b key must then match the current position's key.
89
-
90
- @subsection summary Summarizing the Opening
91
-
92
- So we have a cursor in a transaction which opened a database in an
93
- environment which is opened from a filesystem after it was
94
- separately created.
95
-
96
- Or, we create an environment, open it from a filesystem, create a
97
- transaction within it, open a database within that transaction,
98
- and create a cursor within all of the above.
99
-
100
- Got it?
101
-
102
- @section thrproc Threads and Processes
103
-
104
- LMDB uses POSIX locks on files, and these locks have issues if one
105
- process opens a file multiple times. Because of this, do not
106
- #mdb_env_open() a file multiple times from a single process. Instead,
107
- share the LMDB environment that has opened the file across all threads.
108
- Otherwise, if a single process opens the same environment multiple times,
109
- closing it once will remove all the locks held on it, and the other
110
- instances will be vulnerable to corruption from other processes.
111
-
112
- Also note that a transaction is tied to one thread by default using
113
- Thread Local Storage. If you want to pass read-only transactions across
114
- threads, you can use the #MDB_NOTLS option on the environment.
115
-
116
- @section txns Transactions, Rollbacks, etc.
117
-
118
- To actually get anything done, a transaction must be committed using
119
- #mdb_txn_commit(). Alternatively, all of a transaction's operations
120
- can be discarded using #mdb_txn_abort(). In a read-only transaction,
121
- any cursors will \b not automatically be freed. In a read-write
122
- transaction, all cursors will be freed and must not be used again.
123
-
124
- For read-only transactions, obviously there is nothing to commit to
125
- storage. The transaction still must eventually be aborted to close
126
- any database handle(s) opened in it, or committed to keep the
127
- database handles around for reuse in new transactions.
128
-
129
- In addition, as long as a transaction is open, a consistent view of
130
- the database is kept alive, which requires storage. A read-only
131
- transaction that no longer requires this consistent view should
132
- be terminated (committed or aborted) when the view is no longer
133
- needed (but see below for an optimization).
134
-
135
- There can be multiple simultaneously active read-only transactions
136
- but only one that can write. Once a single read-write transaction
137
- is opened, all further attempts to begin one will block until the
138
- first one is committed or aborted. This has no effect on read-only
139
- transactions, however, and they may continue to be opened at any time.
140
-
141
- @section dupkeys Duplicate Keys
142
-
143
- #mdb_get() and #mdb_put() respectively have no and only some support
144
- for multiple key/value pairs with identical keys. If there are multiple
145
- values for a key, #mdb_get() will only return the first value.
146
-
147
- When multiple values for one key are required, pass the #MDB_DUPSORT
148
- flag to #mdb_dbi_open(). In an #MDB_DUPSORT database, by default
149
- #mdb_put() will not replace the value for a key if the key existed
150
- already. Instead it will add the new value to the key. In addition,
151
- #mdb_del() will pay attention to the value field too, allowing for
152
- specific values of a key to be deleted.
153
-
154
- Finally, additional cursor operations become available for
155
- traversing through and retrieving duplicate values.
156
-
157
- @section optim Some Optimization
158
-
159
- If you frequently begin and abort read-only transactions, as an
160
- optimization, it is possible to only reset and renew a transaction.
161
-
162
- #mdb_txn_reset() releases any old copies of data kept around for
163
- a read-only transaction. To reuse this reset transaction, call
164
- #mdb_txn_renew() on it. Any cursors in this transaction must also
165
- be renewed using #mdb_cursor_renew().
166
-
167
- Note that #mdb_txn_reset() is similar to #mdb_txn_abort() and will
168
- close any databases you opened within the transaction.
169
-
170
- To permanently free a transaction, reset or not, use #mdb_txn_abort().
171
-
172
- @section cleanup Cleaning Up
173
-
174
- For read-only transactions, any cursors created within it must
175
- be closed using #mdb_cursor_close().
176
-
177
- It is very rarely necessary to close a database handle, and in
178
- general they should just be left open.
179
-
180
- @section onward The Full API
181
-
182
- The full \ref mdb documentation lists further details, like how to:
183
-
184
- \li size a database (the default limits are intentionally small)
185
- \li drop and clean a database
186
- \li detect and report errors
187
- \li optimize (bulk) loading speed
188
- \li (temporarily) reduce robustness to gain even more speed
189
- \li gather statistics about the database
190
- \li define custom sort orders
191
-
192
- */
1
+ /*
2
+ * Copyright 2015-2021 Howard Chu, Symas Corp.
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted only as authorized by the OpenLDAP
7
+ * Public License.
8
+ *
9
+ * A copy of this license is available in the file LICENSE in the
10
+ * top-level directory of the distribution or, alternatively, at
11
+ * <http://www.OpenLDAP.org/license.html>.
12
+ */
13
+ /** @page starting Getting Started
14
+
15
+ LMDB is compact, fast, powerful, and robust and implements a simplified
16
+ variant of the BerkeleyDB (BDB) API. (BDB is also very powerful, and verbosely
17
+ documented in its own right.) After reading this page, the main
18
+ \ref mdb documentation should make sense. Thanks to Bert Hubert
19
+ for creating the
20
+ <a href="https://github.com/ahupowerdns/ahutils/blob/master/lmdb-semantics.md">
21
+ initial version</a> of this writeup.
22
+
23
+ Everything starts with an environment, created by #mdb_env_create().
24
+ Once created, this environment must also be opened with #mdb_env_open().
25
+
26
+ #mdb_env_open() gets passed a name which is interpreted as a directory
27
+ path. Note that this directory must exist already, it is not created
28
+ for you. Within that directory, a lock file and a storage file will be
29
+ generated. If you don't want to use a directory, you can pass the
30
+ #MDB_NOSUBDIR option, in which case the path you provided is used
31
+ directly as the data file, and another file with a "-lock" suffix
32
+ added will be used for the lock file.
33
+
34
+ Once the environment is open, a transaction can be created within it
35
+ using #mdb_txn_begin(). Transactions may be read-write or read-only,
36
+ and read-write transactions may be nested. A transaction must only
37
+ be used by one thread at a time. Transactions are always required,
38
+ even for read-only access. The transaction provides a consistent
39
+ view of the data.
40
+
41
+ Once a transaction has been created, a database can be opened within it
42
+ using #mdb_dbi_open(). If only one database will ever be used in the
43
+ environment, a NULL can be passed as the database name. For named
44
+ databases, the #MDB_CREATE flag must be used to create the database
45
+ if it doesn't already exist. Also, #mdb_env_set_maxdbs() must be
46
+ called after #mdb_env_create() and before #mdb_env_open() to set the
47
+ maximum number of named databases you want to support.
48
+
49
+ Note: a single transaction can open multiple databases. Generally
50
+ databases should only be opened once, by the first transaction in
51
+ the process. After the first transaction completes, the database
52
+ handles can freely be used by all subsequent transactions.
53
+
54
+ Within a transaction, #mdb_get() and #mdb_put() can store single
55
+ key/value pairs if that is all you need to do (but see \ref Cursors
56
+ below if you want to do more).
57
+
58
+ A key/value pair is expressed as two #MDB_val structures. This struct
59
+ has two fields, \c mv_size and \c mv_data. The data is a \c void pointer to
60
+ an array of \c mv_size bytes.
61
+
62
+ Because LMDB is very efficient (and usually zero-copy), the data returned
63
+ in an #MDB_val structure may be memory-mapped straight from disk. In
64
+ other words <b>look but do not touch</b> (or free() for that matter).
65
+ Once a transaction is closed, the values can no longer be used, so
66
+ make a copy if you need to keep them after that.
67
+
68
+ @section Cursors Cursors
69
+
70
+ To do more powerful things, we must use a cursor.
71
+
72
+ Within the transaction, a cursor can be created with #mdb_cursor_open().
73
+ With this cursor we can store/retrieve/delete (multiple) values using
74
+ #mdb_cursor_get(), #mdb_cursor_put(), and #mdb_cursor_del().
75
+
76
+ #mdb_cursor_get() positions itself depending on the cursor operation
77
+ requested, and for some operations, on the supplied key. For example,
78
+ to list all key/value pairs in a database, use operation #MDB_FIRST for
79
+ the first call to #mdb_cursor_get(), and #MDB_NEXT on subsequent calls,
80
+ until the end is hit.
81
+
82
+ To retrieve all keys starting from a specified key value, use #MDB_SET.
83
+ For more cursor operations, see the \ref mdb docs.
84
+
85
+ When using #mdb_cursor_put(), either the function will position the
86
+ cursor for you based on the \b key, or you can use operation
87
+ #MDB_CURRENT to use the current position of the cursor. Note that
88
+ \b key must then match the current position's key.
89
+
90
+ @subsection summary Summarizing the Opening
91
+
92
+ So we have a cursor in a transaction which opened a database in an
93
+ environment which is opened from a filesystem after it was
94
+ separately created.
95
+
96
+ Or, we create an environment, open it from a filesystem, create a
97
+ transaction within it, open a database within that transaction,
98
+ and create a cursor within all of the above.
99
+
100
+ Got it?
101
+
102
+ @section thrproc Threads and Processes
103
+
104
+ LMDB uses POSIX locks on files, and these locks have issues if one
105
+ process opens a file multiple times. Because of this, do not
106
+ #mdb_env_open() a file multiple times from a single process. Instead,
107
+ share the LMDB environment that has opened the file across all threads.
108
+ Otherwise, if a single process opens the same environment multiple times,
109
+ closing it once will remove all the locks held on it, and the other
110
+ instances will be vulnerable to corruption from other processes.
111
+
112
+ Also note that a transaction is tied to one thread by default using
113
+ Thread Local Storage. If you want to pass read-only transactions across
114
+ threads, you can use the #MDB_NOTLS option on the environment.
115
+
116
+ @section txns Transactions, Rollbacks, etc.
117
+
118
+ To actually get anything done, a transaction must be committed using
119
+ #mdb_txn_commit(). Alternatively, all of a transaction's operations
120
+ can be discarded using #mdb_txn_abort(). In a read-only transaction,
121
+ any cursors will \b not automatically be freed. In a read-write
122
+ transaction, all cursors will be freed and must not be used again.
123
+
124
+ For read-only transactions, obviously there is nothing to commit to
125
+ storage. The transaction still must eventually be aborted to close
126
+ any database handle(s) opened in it, or committed to keep the
127
+ database handles around for reuse in new transactions.
128
+
129
+ In addition, as long as a transaction is open, a consistent view of
130
+ the database is kept alive, which requires storage. A read-only
131
+ transaction that no longer requires this consistent view should
132
+ be terminated (committed or aborted) when the view is no longer
133
+ needed (but see below for an optimization).
134
+
135
+ There can be multiple simultaneously active read-only transactions
136
+ but only one that can write. Once a single read-write transaction
137
+ is opened, all further attempts to begin one will block until the
138
+ first one is committed or aborted. This has no effect on read-only
139
+ transactions, however, and they may continue to be opened at any time.
140
+
141
+ @section dupkeys Duplicate Keys
142
+
143
+ #mdb_get() and #mdb_put() respectively have no and only some support
144
+ for multiple key/value pairs with identical keys. If there are multiple
145
+ values for a key, #mdb_get() will only return the first value.
146
+
147
+ When multiple values for one key are required, pass the #MDB_DUPSORT
148
+ flag to #mdb_dbi_open(). In an #MDB_DUPSORT database, by default
149
+ #mdb_put() will not replace the value for a key if the key existed
150
+ already. Instead it will add the new value to the key. In addition,
151
+ #mdb_del() will pay attention to the value field too, allowing for
152
+ specific values of a key to be deleted.
153
+
154
+ Finally, additional cursor operations become available for
155
+ traversing through and retrieving duplicate values.
156
+
157
+ @section optim Some Optimization
158
+
159
+ If you frequently begin and abort read-only transactions, as an
160
+ optimization, it is possible to only reset and renew a transaction.
161
+
162
+ #mdb_txn_reset() releases any old copies of data kept around for
163
+ a read-only transaction. To reuse this reset transaction, call
164
+ #mdb_txn_renew() on it. Any cursors in this transaction must also
165
+ be renewed using #mdb_cursor_renew().
166
+
167
+ Note that #mdb_txn_reset() is similar to #mdb_txn_abort() and will
168
+ close any databases you opened within the transaction.
169
+
170
+ To permanently free a transaction, reset or not, use #mdb_txn_abort().
171
+
172
+ @section cleanup Cleaning Up
173
+
174
+ For read-only transactions, any cursors created within it must
175
+ be closed using #mdb_cursor_close().
176
+
177
+ It is very rarely necessary to close a database handle, and in
178
+ general they should just be left open.
179
+
180
+ @section onward The Full API
181
+
182
+ The full \ref mdb documentation lists further details, like how to:
183
+
184
+ \li size a database (the default limits are intentionally small)
185
+ \li drop and clean a database
186
+ \li detect and report errors
187
+ \li optimize (bulk) loading speed
188
+ \li (temporarily) reduce robustness to gain even more speed
189
+ \li gather statistics about the database
190
+ \li define custom sort orders
191
+
192
+ */