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,129 +0,0 @@
1
- # ArrayBuffer
2
-
3
- The `Napi::ArrayBuffer` class corresponds to the
4
- [JavaScript `ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)
5
- class.
6
-
7
- ## Methods
8
-
9
- ### New
10
-
11
- Allocates a new `Napi::ArrayBuffer` instance with a given length.
12
-
13
- ```cpp
14
- static Napi::ArrayBuffer Napi::ArrayBuffer::New(napi_env env, size_t byteLength);
15
- ```
16
-
17
- - `[in] env`: The environment in which to create the `Napi::ArrayBuffer` instance.
18
- - `[in] byteLength`: The length to be allocated, in bytes.
19
-
20
- Returns a new `Napi::ArrayBuffer` instance.
21
-
22
- ### New
23
-
24
- Wraps the provided external data into a new `Napi::ArrayBuffer` instance.
25
-
26
- The `Napi::ArrayBuffer` instance does not assume ownership for the data and
27
- expects it to be valid for the lifetime of the instance. Since the
28
- `Napi::ArrayBuffer` is subject to garbage collection this overload is only
29
- suitable for data which is static and never needs to be freed.
30
-
31
- ```cpp
32
- static Napi::ArrayBuffer Napi::ArrayBuffer::New(napi_env env, void* externalData, size_t byteLength);
33
- ```
34
-
35
- - `[in] env`: The environment in which to create the `Napi::ArrayBuffer` instance.
36
- - `[in] externalData`: The pointer to the external data to wrap.
37
- - `[in] byteLength`: The length of the `externalData`, in bytes.
38
-
39
- Returns a new `Napi::ArrayBuffer` instance.
40
-
41
- ### New
42
-
43
- Wraps the provided external data into a new `Napi::ArrayBuffer` instance.
44
-
45
- The `Napi::ArrayBuffer` instance does not assume ownership for the data and
46
- expects it to be valid for the lifetime of the instance. The data can only be
47
- freed once the `finalizeCallback` is invoked to indicate that the
48
- `Napi::ArrayBuffer` has been released.
49
-
50
- ```cpp
51
- template <typename Finalizer>
52
- static Napi::ArrayBuffer Napi::ArrayBuffer::New(napi_env env,
53
- void* externalData,
54
- size_t byteLength,
55
- Finalizer finalizeCallback);
56
- ```
57
-
58
- - `[in] env`: The environment in which to create the `Napi::ArrayBuffer` instance.
59
- - `[in] externalData`: The pointer to the external data to wrap.
60
- - `[in] byteLength`: The length of the `externalData`, in bytes.
61
- - `[in] finalizeCallback`: A function to be called when the `Napi::ArrayBuffer` is
62
- destroyed. It must implement `operator()`, accept a `void*` (which is the
63
- `externalData` pointer), and return `void`.
64
-
65
- Returns a new `Napi::ArrayBuffer` instance.
66
-
67
- ### New
68
-
69
- Wraps the provided external data into a new `Napi::ArrayBuffer` instance.
70
-
71
- The `Napi::ArrayBuffer` instance does not assume ownership for the data and expects it
72
- to be valid for the lifetime of the instance. The data can only be freed once
73
- the `finalizeCallback` is invoked to indicate that the `Napi::ArrayBuffer` has been
74
- released.
75
-
76
- ```cpp
77
- template <typename Finalizer, typename Hint>
78
- static Napi::ArrayBuffer Napi::ArrayBuffer::New(napi_env env,
79
- void* externalData,
80
- size_t byteLength,
81
- Finalizer finalizeCallback,
82
- Hint* finalizeHint);
83
- ```
84
-
85
- - `[in] env`: The environment in which to create the `Napi::ArrayBuffer` instance.
86
- - `[in] externalData`: The pointer to the external data to wrap.
87
- - `[in] byteLength`: The length of the `externalData`, in bytes.
88
- - `[in] finalizeCallback`: The function to be called when the `Napi::ArrayBuffer` is
89
- destroyed. It must implement `operator()`, accept a `void*` (which is the
90
- `externalData` pointer) and `Hint*`, and return `void`.
91
- - `[in] finalizeHint`: The hint to be passed as the second parameter of the
92
- finalize callback.
93
-
94
- Returns a new `Napi::ArrayBuffer` instance.
95
-
96
- ### Constructor
97
-
98
- Initializes an empty instance of the `Napi::ArrayBuffer` class.
99
-
100
- ```cpp
101
- Napi::ArrayBuffer::ArrayBuffer();
102
- ```
103
-
104
- ### Constructor
105
-
106
- Initializes a wrapper instance of an existing `Napi::ArrayBuffer` object.
107
-
108
- ```cpp
109
- Napi::ArrayBuffer::ArrayBuffer(napi_env env, napi_value value);
110
- ```
111
-
112
- - `[in] env`: The environment in which to create the `Napi::ArrayBuffer` instance.
113
- - `[in] value`: The `Napi::ArrayBuffer` reference to wrap.
114
-
115
- ### ByteLength
116
-
117
- ```cpp
118
- size_t Napi::ArrayBuffer::ByteLength() const;
119
- ```
120
-
121
- Returns the length of the wrapped data, in bytes.
122
-
123
- ### Data
124
-
125
- ```cpp
126
- T* Napi::ArrayBuffer::Data() const;
127
- ```
128
-
129
- Returns a pointer the wrapped data.
@@ -1,76 +0,0 @@
1
- # AsyncContext
2
-
3
- The [Napi::AsyncWorker](async_worker.md) class may not be appropriate for every
4
- scenario. When using any other async mechanism, introducing a new class
5
- `Napi::AsyncContext` is necessary to ensure an async operation is properly
6
- tracked by the runtime. The `Napi::AsyncContext` class can be passed to
7
- [Napi::Function::MakeCallback()](function.md) method to properly restore the
8
- correct async execution context.
9
-
10
- ## Methods
11
-
12
- ### Constructor
13
-
14
- Creates a new `Napi::AsyncContext`.
15
-
16
- ```cpp
17
- explicit Napi::AsyncContext::AsyncContext(napi_env env, const char* resource_name);
18
- ```
19
-
20
- - `[in] env`: The environment in which to create the `Napi::AsyncContext`.
21
- - `[in] resource_name`: Null-terminated strings that represents the
22
- identifier for the kind of resource that is being provided for diagnostic
23
- information exposed by the `async_hooks` API.
24
-
25
- ### Constructor
26
-
27
- Creates a new `Napi::AsyncContext`.
28
-
29
- ```cpp
30
- explicit Napi::AsyncContext::AsyncContext(napi_env env, const char* resource_name, const Napi::Object& resource);
31
- ```
32
-
33
- - `[in] env`: The environment in which to create the `Napi::AsyncContext`.
34
- - `[in] resource_name`: Null-terminated strings that represents the
35
- identifier for the kind of resource that is being provided for diagnostic
36
- information exposed by the `async_hooks` API.
37
- - `[in] resource`: Object associated with the asynchronous operation that
38
- will be passed to possible `async_hooks`.
39
-
40
- ### Destructor
41
-
42
- The `Napi::AsyncContext` to be destroyed.
43
-
44
- ```cpp
45
- virtual Napi::AsyncContext::~AsyncContext();
46
- ```
47
-
48
- ## Operator
49
-
50
- ```cpp
51
- Napi::AsyncContext::operator napi_async_context() const;
52
- ```
53
-
54
- Returns the N-API `napi_async_context` wrapped by the `Napi::AsyncContext`
55
- object. This can be used to mix usage of the C N-API and node-addon-api.
56
-
57
- ## Example
58
-
59
- ```cpp
60
- #include "napi.h"
61
-
62
- void MakeCallbackWithAsyncContext(const Napi::CallbackInfo& info) {
63
- Napi::Function callback = info[0].As<Napi::Function>();
64
- Napi::Object resource = info[1].As<Napi::Object>();
65
-
66
- // Creat a new async context instance.
67
- Napi::AsyncContext context(info.Env(), "async_context_test", resource);
68
-
69
- // Invoke the callback with the async context instance.
70
- callback.MakeCallback(Napi::Object::New(info.Env()),
71
- std::initializer_list<napi_value>{}, context);
72
-
73
- // The async context instance is automatically destroyed here because it's
74
- // block-scope like `Napi::HandleScope`.
75
- }
76
- ```
@@ -1,31 +0,0 @@
1
- # Asynchronous operations
2
-
3
- Node.js native add-ons often need to execute long running tasks and to avoid
4
- blocking the **event loop** they have to run them asynchronously from the
5
- **event loop**.
6
- In the Node.js model of execution the event loop thread represents the thread
7
- where JavaScript code is executing. The node.js guidance is to avoid blocking
8
- other work queued on the event loop thread. Therefore, we need to do this work on
9
- another thread.
10
-
11
- All this means that native add-ons need to leverage async helpers from libuv as
12
- part of their implementation. This allows them to schedule work to be executed
13
- asynchronously so that their methods can return in advance of the work being
14
- completed.
15
-
16
- Node Addon API provides an interface to support functions that cover
17
- the most common asynchronous use cases. There is an abstract classes to implement
18
- asynchronous operations:
19
-
20
- - **[`Napi::AsyncWorker`](async_worker.md)**
21
-
22
- These class helps manage asynchronous operations through an abstraction
23
- of the concept of moving data between the **event loop** and **worker threads**.
24
-
25
- Also, the above class may not be appropriate for every scenario. When using any
26
- other asynchronous mechanism, the following API is necessary to ensure an
27
- asynchronous operation is properly tracked by the runtime:
28
-
29
- - **[AsyncContext](async_context.md)**
30
-
31
- - **[CallbackScope](callback_scope.md)**
@@ -1,397 +0,0 @@
1
- # AsyncWorker
2
-
3
- `Napi::AsyncWorker` is an abstract class that you can subclass to remove many of
4
- the tedious tasks of moving data between the event loop and worker threads. This
5
- class internally handles all the details of creating and executing an asynchronous
6
- operation.
7
-
8
- Once created, execution is requested by calling `Napi::AsyncWorker::Queue`. When
9
- a thread is available for execution the `Napi::AsyncWorker::Execute` method will
10
- be invoked. Once `Napi::AsyncWorker::Execute` completes either
11
- `Napi::AsyncWorker::OnOK` or `Napi::AsyncWorker::OnError` will be invoked. Once
12
- the `Napi::AsyncWorker::OnOK` or `Napi::AsyncWorker::OnError` methods are
13
- complete the `Napi::AsyncWorker` instance is destructed.
14
-
15
- For the most basic use, only the `Napi::AsyncWorker::Execute` method must be
16
- implemented in a subclass.
17
-
18
- ## Methods
19
-
20
- ### Env
21
-
22
- Requests the environment in which the async worker has been initially created.
23
-
24
- ```cpp
25
- Napi::Env Napi::AsyncWorker::Env() const;
26
- ```
27
-
28
- Returns the environment in which the async worker has been created.
29
-
30
- ### Queue
31
-
32
- Requests that the work be queued for execution.
33
-
34
- ```cpp
35
- void Napi::AsyncWorker::Queue();
36
- ```
37
-
38
- ### Cancel
39
-
40
- Cancels queued work if it has not yet been started. If it has already started
41
- executing, it cannot be cancelled. If cancelled successfully neither
42
- `OnOK` nor `OnError` will be called.
43
-
44
- ```cpp
45
- void Napi::AsyncWorker::Cancel();
46
- ```
47
-
48
- ### Receiver
49
-
50
- ```cpp
51
- Napi::ObjectReference& Napi::AsyncWorker::Receiver();
52
- ```
53
-
54
- Returns the persistent object reference of the receiver object set when the async
55
- worker was created.
56
-
57
- ### Callback
58
-
59
- ```cpp
60
- Napi::FunctionReference& Napi::AsyncWorker::Callback();
61
- ```
62
-
63
- Returns the persistent function reference of the callback set when the async
64
- worker was created. The returned function reference will receive the results of
65
- the computation that happened in the `Napi::AsyncWorker::Execute` method, unless
66
- the default implementation of `Napi::AsyncWorker::OnOK` or
67
- `Napi::AsyncWorker::OnError` is overridden.
68
-
69
- ### SuppressDestruct
70
-
71
- ```cpp
72
- void Napi::AsyncWorker::SuppressDestruct();
73
- ```
74
-
75
- Prevents the destruction of the `Napi::AsyncWorker` instance upon completion of
76
- the `Napi::AsyncWorker::OnOK` callback.
77
-
78
- ### SetError
79
-
80
- Sets the error message for the error that happened during the execution. Setting
81
- an error message will cause the `Napi::AsyncWorker::OnError` method to be
82
- invoked instead of `Napi::AsyncWorker::OnOK` once the
83
- `Napi::AsyncWorker::Execute` method completes.
84
-
85
- ```cpp
86
- void Napi::AsyncWorker::SetError(const std::string& error);
87
- ```
88
-
89
- - `[in] error`: The reference to the string that represent the message of the error.
90
-
91
- ### Execute
92
-
93
- This method is used to execute some tasks out of the **event loop** on a libuv
94
- worker thread. Subclasses must implement this method and the method is run on
95
- a thread other than that running the main event loop. As the method is not
96
- running on the main event loop, it must avoid calling any methods from node-addon-api
97
- or running any code that might invoke JavaScript. Instead, once this method is
98
- complete any interaction through node-addon-api with JavaScript should be implemented
99
- in the `Napi::AsyncWorker::OnOK` method which runs on the main thread and is
100
- invoked when the `Napi::AsyncWorker::Execute` method completes.
101
-
102
- ```cpp
103
- virtual void Napi::AsyncWorker::Execute() = 0;
104
- ```
105
-
106
- ### OnOK
107
-
108
- This method is invoked when the computation in the `Execute` method ends.
109
- The default implementation runs the Callback optionally provided when the AsyncWorker class
110
- was created. The callback will by default receive no arguments. To provide arguments,
111
- override the `GetResult()` method.
112
-
113
- ```cpp
114
- virtual void Napi::AsyncWorker::OnOK();
115
- ```
116
- ### GetResult
117
-
118
- This method returns the arguments passed to the Callback invoked by the default
119
- `OnOK()` implementation. The default implementation returns an empty vector,
120
- providing no arguments to the Callback.
121
-
122
- ```cpp
123
- virtual std::vector<napi_value> Napi::AsyncWorker::GetResult(Napi::Env env);
124
- ```
125
-
126
- ### OnError
127
-
128
- This method is invoked after `Napi::AsyncWorker::Execute` completes if an error
129
- occurs while `Napi::AsyncWorker::Execute` is running and C++ exceptions are
130
- enabled or if an error was set through a call to `Napi::AsyncWorker::SetError`.
131
- The default implementation calls the callback provided when the `Napi::AsyncWorker`
132
- class was created, passing in the error as the first parameter.
133
-
134
- ```cpp
135
- virtual void Napi::AsyncWorker::OnError(const Napi::Error& e);
136
- ```
137
-
138
- ### Destroy
139
-
140
- This method is invoked when the instance must be deallocated. If
141
- `SuppressDestruct()` was not called then this method will be called after either
142
- `OnError()` or `OnOK()` complete. The default implementation of this method
143
- causes the instance to delete itself using the `delete` operator. The method is
144
- provided so as to ensure that instances allocated by means other than the `new`
145
- operator can be deallocated upon work completion.
146
-
147
- ```cpp
148
- virtual void Napi::AsyncWorker::Destroy();
149
- ```
150
-
151
- ### Constructor
152
-
153
- Creates a new `Napi::AsyncWorker`.
154
-
155
- ```cpp
156
- explicit Napi::AsyncWorker(const Napi::Function& callback);
157
- ```
158
-
159
- - `[in] callback`: The function which will be called when an asynchronous
160
- operations ends. The given function is called from the main event loop thread.
161
-
162
- Returns a `Napi::AsyncWorker` instance which can later be queued for execution by calling
163
- `Queue`.
164
-
165
- ### Constructor
166
-
167
- Creates a new `Napi::AsyncWorker`.
168
-
169
- ```cpp
170
- explicit Napi::AsyncWorker(const Napi::Function& callback, const char* resource_name);
171
- ```
172
-
173
- - `[in] callback`: The function which will be called when an asynchronous
174
- operations ends. The given function is called from the main event loop thread.
175
- - `[in] resource_name`: Null-terminated strings that represents the
176
- identifier for the kind of resource that is being provided for diagnostic
177
- information exposed by the async_hooks API.
178
-
179
- Returns a `Napi::AsyncWorker` instance which can later be queued for execution by
180
- calling `Napi::AsyncWork::Queue`.
181
-
182
- ### Constructor
183
-
184
- Creates a new `Napi::AsyncWorker`.
185
-
186
- ```cpp
187
- explicit Napi::AsyncWorker(const Napi::Function& callback, const char* resource_name, const Napi::Object& resource);
188
- ```
189
-
190
- - `[in] callback`: The function which will be called when an asynchronous
191
- operations ends. The given function is called from the main event loop thread.
192
- - `[in] resource_name`: Null-terminated strings that represents the
193
- identifier for the kind of resource that is being provided for diagnostic
194
- information exposed by the async_hooks API.
195
- - `[in] resource`: Object associated with the asynchronous operation that
196
- will be passed to possible async_hooks.
197
-
198
- Returns a `Napi::AsyncWorker` instance which can later be queued for execution by
199
- calling `Napi::AsyncWork::Queue`.
200
-
201
- ### Constructor
202
-
203
- Creates a new `Napi::AsyncWorker`.
204
-
205
- ```cpp
206
- explicit Napi::AsyncWorker(const Napi::Object& receiver, const Napi::Function& callback);
207
- ```
208
-
209
- - `[in] receiver`: The `this` object passed to the called function.
210
- - `[in] callback`: The function which will be called when an asynchronous
211
- operations ends. The given function is called from the main event loop thread.
212
-
213
- Returns a `Napi::AsyncWorker` instance which can later be queued for execution by
214
- calling `Napi::AsyncWork::Queue`.
215
-
216
- ### Constructor
217
-
218
- Creates a new `Napi::AsyncWorker`.
219
-
220
- ```cpp
221
- explicit Napi::AsyncWorker(const Napi::Object& receiver, const Napi::Function& callback, const char* resource_name);
222
- ```
223
-
224
- - `[in] receiver`: The `this` object passed to the called function.
225
- - `[in] callback`: The function which will be called when an asynchronous
226
- operations ends. The given function is called from the main event loop thread.
227
- - `[in] resource_name`: Null-terminated strings that represents the
228
- identifier for the kind of resource that is being provided for diagnostic
229
- information exposed by the async_hooks API.
230
-
231
- Returns a `Napi::AsyncWork` instance which can later be queued for execution by
232
- calling `Napi::AsyncWork::Queue`.
233
-
234
- ### Constructor
235
-
236
- Creates a new `Napi::AsyncWorker`.
237
-
238
- ```cpp
239
- explicit Napi::AsyncWorker(const Napi::Object& receiver, const Napi::Function& callback, const char* resource_name, const Napi::Object& resource);
240
- ```
241
-
242
- - `[in] receiver`: The `this` object passed to the called function.
243
- - `[in] callback`: The function which will be called when an asynchronous
244
- operations ends. The given function is called from the main event loop thread.
245
- - `[in] resource_name`: Null-terminated strings that represents the
246
- identifier for the kind of resource that is being provided for diagnostic
247
- information exposed by the async_hooks API.
248
- - `[in] resource`: Object associated with the asynchronous operation that
249
- will be passed to possible async_hooks.
250
-
251
- Returns a `Napi::AsyncWork` instance which can later be queued for execution by
252
- calling `Napi::AsyncWork::Queue`.
253
-
254
-
255
- ### Constructor
256
-
257
- Creates a new `Napi::AsyncWorker`.
258
-
259
- ```cpp
260
- explicit Napi::AsyncWorker(Napi::Env env);
261
- ```
262
-
263
- - `[in] env`: The environment in which to create the `Napi::AsyncWorker`.
264
-
265
- Returns an `Napi::AsyncWorker` instance which can later be queued for execution by calling
266
- `Napi::AsyncWorker::Queue`.
267
-
268
- ### Constructor
269
-
270
- Creates a new `Napi::AsyncWorker`.
271
-
272
- ```cpp
273
- explicit Napi::AsyncWorker(Napi::Env env, const char* resource_name);
274
- ```
275
-
276
- - `[in] env`: The environment in which to create the `Napi::AsyncWorker`.
277
- - `[in] resource_name`: Null-terminated strings that represents the
278
- identifier for the kind of resource that is being provided for diagnostic
279
- information exposed by the async_hooks API.
280
-
281
- Returns a `Napi::AsyncWorker` instance which can later be queued for execution by
282
- calling `Napi::AsyncWorker::Queue`.
283
-
284
- ### Constructor
285
-
286
- Creates a new `Napi::AsyncWorker`.
287
-
288
- ```cpp
289
- explicit Napi::AsyncWorker(Napi::Env env, const char* resource_name, const Napi::Object& resource);
290
- ```
291
-
292
- - `[in] env`: The environment in which to create the `Napi::AsyncWorker`.
293
- - `[in] resource_name`: Null-terminated strings that represents the
294
- identifier for the kind of resource that is being provided for diagnostic
295
- information exposed by the async_hooks API.
296
- - `[in] resource`: Object associated with the asynchronous operation that
297
- will be passed to possible async_hooks.
298
-
299
- Returns a `Napi::AsyncWorker` instance which can later be queued for execution by
300
- calling `Napi::AsyncWorker::Queue`.
301
-
302
- ### Destructor
303
-
304
- Deletes the created work object that is used to execute logic asynchronously.
305
-
306
- ```cpp
307
- virtual Napi::AsyncWorker::~AsyncWorker();
308
- ```
309
-
310
- ## Operator
311
-
312
- ```cpp
313
- Napi::AsyncWorker::operator napi_async_work() const;
314
- ```
315
-
316
- Returns the N-API napi_async_work wrapped by the `Napi::AsyncWorker` object. This
317
- can be used to mix usage of the C N-API and node-addon-api.
318
-
319
- ## Example
320
-
321
- The first step to use the `Napi::AsyncWorker` class is to create a new class that
322
- inherits from it and implement the `Napi::AsyncWorker::Execute` abstract method.
323
- Typically input to your worker will be saved within class' fields generally
324
- passed in through its constructor.
325
-
326
- When the `Napi::AsyncWorker::Execute` method completes without errors the
327
- `Napi::AsyncWorker::OnOK` function callback will be invoked. In this function the
328
- results of the computation will be reassembled and returned back to the initial
329
- JavaScript context.
330
-
331
- `Napi::AsyncWorker` ensures that all the code in the `Napi::AsyncWorker::Execute`
332
- function runs in the background out of the **event loop** thread and at the end
333
- the `Napi::AsyncWorker::OnOK` or `Napi::AsyncWorker::OnError` function will be
334
- called and are executed as part of the event loop.
335
-
336
- The code below show a basic example of `Napi::AsyncWorker` the implementation:
337
-
338
- ```cpp
339
- #include<napi.h>
340
-
341
- #include <chrono>
342
- #include <thread>
343
-
344
- use namespace Napi;
345
-
346
- class EchoWorker : public AsyncWorker {
347
- public:
348
- EchoWorker(Function& callback, std::string& echo)
349
- : AsyncWorker(callback), echo(echo) {}
350
-
351
- ~EchoWorker() {}
352
- // This code will be executed on the worker thread
353
- void Execute() {
354
- // Need to simulate cpu heavy task
355
- std::this_thread::sleep_for(std::chrono::seconds(1));
356
- }
357
-
358
- void OnOK() {
359
- HandleScope scope(Env());
360
- Callback().Call({Env().Null(), String::New(Env(), echo)});
361
- }
362
-
363
- private:
364
- std::string echo;
365
- };
366
- ```
367
-
368
- The `EchoWorker`'s contructor calls the base class' constructor to pass in the
369
- callback that the `Napi::AsyncWorker` base class will store persistently. When
370
- the work on the `Napi::AsyncWorker::Execute` method is done the
371
- `Napi::AsyncWorker::OnOk` method is called and the results return back to
372
- JavaScript invoking the stored callback with its associated environment.
373
-
374
- The following code shows an example on how to create and use an `Napi::AsyncWorker`
375
-
376
- ```cpp
377
- #include<napi.h>
378
-
379
- // Include EchoWorker class
380
- // ..
381
-
382
- use namespace Napi;
383
-
384
- Value Echo(const CallbackInfo& info) {
385
- // You need to check the input data here
386
- Function cb = info[1].As<Function>();
387
- std::string in = info[0].As<String>();
388
- EchoWorker* wk = new EchoWorker(cb, in);
389
- wk->Queue();
390
- return info.Env().Undefined();
391
- ```
392
-
393
- Using the implementation of a `Napi::AsyncWorker` is straight forward. You only
394
- need to create a new instance and pass to its constructor the callback you want to
395
- execute when your asynchronous task ends and other data you need for your
396
- computation. Once created the only other action you have to do is to call the
397
- `Napi::AsyncWorker::Queue` method that will queue the created worker for execution.