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,1257 +1,705 @@
1
- (function (msgpackr, chai) {
1
+ (function (msgpackr, chai, fs) {
2
2
  'use strict';
3
3
 
4
4
  chai = chai && Object.prototype.hasOwnProperty.call(chai, 'default') ? chai['default'] : chai;
5
5
 
6
- var metadata = {
7
- Designs: [
8
- "Randomized Controlled Trial"
9
- ],
10
- Types: [
11
- ],
12
- BriefSummary: "To determine the efficacy, long-term safety, and tolerability of alirocumab 300 mg every 4\n weeks (Q4W), in comparison with placebo, as well as its potential as a starting regimen. The\n dose regimen of 75 mg every 2 weeks (Q2W), as used in other studies, was added as a\n calibrator.",
13
- Abstract: "To determine the efficacy, long-term safety, and tolerability of alirocumab 300 mg every 4\n weeks (Q4W), in comparison with placebo, as well as its potential as a starting regimen. The\n dose regimen of 75 mg every 2 weeks (Q2W), as used in other studies, was added as a\n calibrator.",
14
- Acronym: null,
15
- ArticleId: "Qy3gwKWSoaWRmbmFEQA",
16
- Authors: null,
17
- CochraneID: null,
18
- Confidential: false,
19
- CorporateAuthor: null,
20
- Country: "Bulgaria, Canada, Hungary, Israel, Norway, Slovakia, United Kingdom, United States",
21
- CustomData: null,
22
- DatabaseType: "ClinicalTrials.gov",
23
- DOI: null,
24
- EmbaseAccessionNumber: null,
25
- Emtree: null,
26
- ErrataText: null,
27
- FullTextURL: null,
28
- Institution: null,
29
- ISSN: null,
30
- Issue: null,
31
- JournalTitle: null,
32
- MedlineID: null,
33
- MeSH: "Hypercholesterolemia|Antibodies, Monoclonal",
34
- Pages: null,
35
- ParentChildStatus: null,
36
- ParentID: null,
37
- PublicationDate: "March 21, 2017",
38
- PublicationYear: 2017,
39
- PubType: null,
40
- ReferenceStudy: null,
41
- SecondarySourceID: null,
42
- Source: "Regeneron Pharmaceuticals",
43
- SourceReferenceId: "NCT01926782",
44
- TaStudyDesign: "Randomized",
45
- Title: "A Randomized, Double-Blind, Placebo-Controlled Study to Evaluate the Efficacy and Safety of an Every Four Weeks Treatment Regimen of Alirocumab in Patients With Primary Hypercholesterolemia",
46
- TrialOutcome: null,
47
- Volume: null,
48
- Id: 179246831,
49
- Created: "2020-04-10T14:48:20.4384957Z",
50
- VersionNo: 2,
51
- ExtractData: null,
52
- Digitized: true,
53
- IsRapidExtract: false,
54
- IsUploaded: false
55
- };
56
- var design = "Randomized Controlled Trial";
57
- var conditions = [
58
- {
59
- label: "Cholesterol Total Increased",
60
- id: "SUE_c"
6
+ const sampleData = JSON.parse(fs.readFileSync(new URL('./example4.json', (document.currentScript && document.currentScript.src || new URL('test.js', document.baseURI).href))));
7
+ function tryRequire(module) {
8
+ try {
9
+ return require(module)
10
+ } catch(error) {
11
+ return {}
61
12
  }
62
- ];
63
- var phase = 3;
64
- var name = "NCT01926782";
65
- var trialIds = [
66
- "NCT01926782"
67
- ];
68
- var acronyms = [
69
- ];
70
- var outcomeCount = 156;
71
- var id = 179246831;
72
- var groups = [
73
- {
74
- Id: "4r",
75
- RefId: "B5|O2~Alirocumab 75 mg Q2W/Up 150 mg Q2W Without Concomitant Statin",
76
- OriginalName: "Alirocumab 75 mg Q2W/Up 150 mg Q2W Without Concomitant Statin",
77
- N: 37,
78
- age: 59.3,
79
- ageSD: 11.3,
80
- male: 37.83783783783784,
81
- Interventions: [
82
- {
83
- termIds: [
84
- [
85
- "SUBYEL",
86
- "SUB_Oc"
87
- ],
88
- [
89
- "SUNUVb"
90
- ]
91
- ]
92
- }
93
- ],
94
- analyzeAs: "Alirocumab",
95
- analyzableScore: 1.0717734625362931,
96
- matchingScore: 0
97
- },
98
- {
99
- Id: "zB",
100
- RefId: "B6|O3~Alirocumab 300 mg Q4W/Up 150 mg Q2W Without Concomitant Statin",
101
- OriginalName: "Alirocumab 300 mg Q4W/Up 150 mg Q2W Without Concomitant Statin",
102
- N: 146,
103
- age: 59.2,
104
- ageSD: 10.8,
105
- male: 45.205479452054796,
106
- Interventions: [
107
- {
108
- termIds: [
109
- [
110
- "SUBYEL",
111
- "SUB_Oc"
112
- ]
113
- ]
114
- }
115
- ],
116
- analyzeAs: "Statins",
117
- analyzableScore: 1.0717734625362931,
118
- matchingScore: 0
119
- },
120
- {
121
- Id: "3!",
122
- RefId: "B4|O1~Placebo Q2W Without Concomitant Statin",
123
- OriginalName: "Placebo Q2W Without Concomitant Statin",
124
- N: 73,
125
- age: 59.4,
126
- ageSD: 10.2,
127
- male: 54.794520547945204,
128
- Interventions: [
129
- {
130
- termIds: [
131
- [
132
- "SUGeLS"
133
- ],
134
- [
135
- "SUBYEL",
136
- "SUB_Oc"
137
- ]
138
- ]
139
- }
140
- ],
141
- analyzeAs: "Control",
142
- analyzableScore: 1.2020833333333334,
143
- matchingScore: 0
144
- },
145
- {
146
- Id: "tv",
147
- RefId: "E3",
148
- OriginalName: "Alirocumab 300 mg Q4W/Up 150 mg Q2W",
149
- Interventions: [
150
- {
151
- termIds: [
152
- [
153
- "SUCO54",
154
- "SUNUVb"
155
- ]
156
- ]
157
- }
158
- ]
159
- },
160
- {
161
- Id: "jt",
162
- RefId: "B3|O3~Alirocumab 300 mg Q4W/Up 150 mg Q2W With Concomitant Statin",
163
- OriginalName: "Alirocumab 300 mg Q4W/Up 150 mg Q2W With Concomitant Statin",
164
- N: 312,
165
- age: 61.6,
166
- ageSD: 10,
167
- male: 60.8974358974359,
168
- Interventions: [
169
- {
170
- termIds: [
171
- [
172
- "SUBYEL",
173
- "SUB_Oc"
174
- ]
175
- ]
176
- }
177
- ]
178
- },
179
- {
180
- Id: "5!",
181
- RefId: "E2",
182
- OriginalName: "Alirocumab 75 mg Q2W/Up 150 mg Q2W",
183
- Interventions: [
184
- {
185
- termIds: [
186
- [
187
- "SUNUVb"
188
- ]
189
- ]
13
+ }
14
+ //if (typeof chai === 'undefined') { chai = require('chai') }
15
+ var assert = chai.assert;
16
+ //if (typeof msgpackr === 'undefined') { msgpackr = require('..') }
17
+ var Packr = msgpackr.Packr;
18
+ var Unpackr = msgpackr.Unpackr;
19
+ var unpack = msgpackr.unpack;
20
+ var unpackMultiple = msgpackr.unpackMultiple;
21
+ var roundFloat32 = msgpackr.roundFloat32;
22
+ var pack = msgpackr.pack;
23
+ var DECIMAL_FIT = msgpackr.FLOAT32_OPTIONS.DECIMAL_FIT;
24
+
25
+ var addExtension = msgpackr.addExtension;
26
+ var zlib = tryRequire('zlib');
27
+ var deflateSync = zlib.deflateSync;
28
+ var inflateSync = zlib.inflateSync;
29
+ var deflateSync = zlib.brotliCompressSync;
30
+ var inflateSync = zlib.brotliDecompressSync;
31
+ var constants = zlib.constants;
32
+
33
+ var ITERATIONS = 4000;
34
+
35
+ suite('msgpackr basic tests', function(){
36
+ test('pack/unpack data', function(){
37
+ var data = {
38
+ data: [
39
+ { a: 1, name: 'one', type: 'odd', isOdd: true },
40
+ { a: 2, name: 'two', type: 'even'},
41
+ { a: 3, name: 'three', type: 'odd', isOdd: true },
42
+ { a: 4, name: 'four', type: 'even'},
43
+ { a: 5, name: 'five', type: 'odd', isOdd: true },
44
+ { a: 6, name: 'six', type: 'even', isOdd: null }
45
+ ],
46
+ description: 'some names',
47
+ types: ['odd', 'even'],
48
+ convertEnumToNum: [
49
+ { prop: 'test' },
50
+ { prop: 'test' },
51
+ { prop: 'test' },
52
+ { prop: 1 },
53
+ { prop: 2 },
54
+ { prop: [undefined] },
55
+ { prop: null }
56
+ ]
57
+ };
58
+ let structures = [];
59
+ let packr = new Packr({ structures });
60
+ var serialized = packr.pack(data);
61
+ serialized = packr.pack(data);
62
+ serialized = packr.pack(data);
63
+ var deserialized = packr.unpack(serialized);
64
+ assert.deepEqual(deserialized, data);
65
+ });
66
+
67
+ test('mixed structures', function(){
68
+ let data1 = { a: 1, b: 2, c: 3 };
69
+ let data2 = { a: 1, b: 2, d: 4 };
70
+ let data3 = { a: 1, b: 2, e: 5 };
71
+ let structures = [];
72
+ let packr = new Packr({ structures });
73
+ var serialized = packr.pack(data1);
74
+ var deserialized = packr.unpack(serialized);
75
+ assert.deepEqual(deserialized, data1);
76
+ var serialized = packr.pack(data2);
77
+ var deserialized = packr.unpack(serialized);
78
+ assert.deepEqual(deserialized, data2);
79
+ var serialized = packr.pack(data3);
80
+ var deserialized = packr.unpack(serialized);
81
+ assert.deepEqual(deserialized, data3);
82
+ });
83
+
84
+ test('mixed array', function(){
85
+ var data = [
86
+ 'one',
87
+ 'two',
88
+ 'one',
89
+ 10,
90
+ 11,
91
+ null,
92
+ true,
93
+ 'three',
94
+ 'three',
95
+ 'one', [
96
+ 3, -5, -50, -400,1.3, -5.3, true
97
+ ]
98
+ ];
99
+ let structures = [];
100
+ let packr = new Packr({ structures });
101
+ var serialized = packr.pack(data);
102
+ var deserialized = packr.unpack(serialized);
103
+ assert.deepEqual(deserialized, data);
104
+ });
105
+
106
+ test('255 chars', function() {
107
+ const data = 'RRZG9A6I7xupPeOZhxcOcioFsuhszGOdyDUcbRf4Zef2kdPIfC9RaLO4jTM5JhuZvTsF09fbRHMGtqk7YAgu3vespeTe9l61ziZ6VrMnYu2CamK96wCkmz0VUXyqaiUoTPgzk414LS9yYrd5uh7w18ksJF5SlC2e91rukWvNqAZJjYN3jpkqHNOFchCwFrhbxq2Lrv1kSJPYCx9blRg2hGmYqTbElLTZHv20iNqwZeQbRMgSBPT6vnbCBPnOh1W';
108
+ var serialized = pack(data);
109
+ var deserialized = unpack(serialized);
110
+ assert.equal(deserialized, data);
111
+ });
112
+
113
+ test('pack/unpack sample data', function(){
114
+ var data = sampleData;
115
+ var serialized = pack(data);
116
+ var deserialized = unpack(serialized);
117
+ assert.deepEqual(deserialized, data);
118
+ var serialized = pack(data);
119
+ var deserialized = unpack(serialized);
120
+ assert.deepEqual(deserialized, data);
121
+ });
122
+ test('pack/unpack sample data with records', function(){
123
+ var data = sampleData;
124
+ let structures = [];
125
+ let packr = new Packr({ structures, useRecords: true });
126
+ var serialized = packr.pack(data);
127
+ var deserialized = packr.unpack(serialized);
128
+ assert.deepEqual(deserialized, data);
129
+ });
130
+ test('pack/unpack sample data with bundled strings', function(){
131
+ var data = sampleData;
132
+ let packr = new Packr({ /*structures,*/ useRecords: false, bundleStrings: true });
133
+ var serialized = packr.pack(data);
134
+ var deserialized = packr.unpack(serialized);
135
+ assert.deepEqual(deserialized, data);
136
+ });
137
+ test('pack/unpack empty data with bundled strings', function(){
138
+ var data = {};
139
+ let packr = new Packr({ bundleStrings: true });
140
+ var serialized = packr.pack(data);
141
+ var deserialized = packr.unpack(serialized);
142
+ assert.deepEqual(deserialized, data);
143
+ });
144
+ test('pack/unpack sequential data', function(){
145
+ var data = { foo:1, bar: 2 };
146
+ let packr = new Packr({ sequential: true });
147
+ let unpackr = new Unpackr({ sequential: true });
148
+ var serialized = packr.pack(data);
149
+ var deserialized = unpackr.unpack(serialized);
150
+ assert.deepEqual(deserialized, data);
151
+ var serialized = packr.pack(data);
152
+ var deserialized = unpackr.unpack(serialized);
153
+ assert.deepEqual(deserialized, data);
154
+ });
155
+ if (typeof Buffer != 'undefined')
156
+ test('replace data', function(){
157
+ var data1 = {
158
+ data: [
159
+ { a: 1, name: 'one', type: 'odd', isOdd: true, a: '13 characters' },
160
+ { a: 2, name: 'two', type: 'even', a: '11 characte' },
161
+ { a: 3, name: 'three', type: 'odd', isOdd: true, a: '12 character' },
162
+ { a: 4, name: 'four', type: 'even', a: '9 charact'},
163
+ { a: 5, name: 'five', type: 'odd', isOdd: true, a: '14 characters!' },
164
+ { a: 6, name: 'six', type: 'even', isOdd: null }
165
+ ],
166
+ };
167
+ var data2 = {
168
+ data: [
169
+ { foo: 7, name: 'one', type: 'odd', isOdd: true },
170
+ { foo: 8, name: 'two', type: 'even'},
171
+ { foo: 9, name: 'three', type: 'odd', isOdd: true },
172
+ { foo: 10, name: 'four', type: 'even'},
173
+ { foo: 11, name: 'five', type: 'odd', isOdd: true },
174
+ { foo: 12, name: 'six', type: 'even', isOdd: null }
175
+ ],
176
+ };
177
+ var serialized1 = pack(data1);
178
+ var serialized2 = pack(data2);
179
+ var b = Buffer.alloc(8000);
180
+ serialized1.copy(b);
181
+ var deserialized1 = unpack(b, serialized1.length);
182
+ serialized2.copy(b);
183
+ var deserialized2 = unpack(b, serialized2.length);
184
+ assert.deepEqual(deserialized1, data1);
185
+ assert.deepEqual(deserialized2, data2);
186
+ });
187
+
188
+ test('compact 123', function() {
189
+ assert.equal(pack(123).length, 1);
190
+ });
191
+
192
+ test('extended class pack/unpack', function(){
193
+ function Extended() {
194
+
195
+ }
196
+ Extended.prototype.getDouble = function() {
197
+ return this.value * 2
198
+ };
199
+ var instance = new Extended();
200
+ instance.value = 4;
201
+ instance.string = 'decode this: ᾜ';
202
+ var data = {
203
+ prop1: 'has multi-byte: ᾜ',
204
+ extendedInstance: instance,
205
+ prop2: 'more string',
206
+ num: 3,
207
+ };
208
+ let packr = new Packr();
209
+ addExtension({
210
+ Class: Extended,
211
+ type: 11,
212
+ unpack: function(buffer) {
213
+ let e = new Extended();
214
+ let data = packr.unpack(buffer);
215
+ e.value = data[0];
216
+ e.string = data[1];
217
+ return e
218
+ },
219
+ pack: function(instance) {
220
+ return packr.pack([instance.value, instance.string])
190
221
  }
191
- ]
192
- },
193
- {
194
- Id: "4E",
195
- RefId: "B2|O2~Alirocumab 75 mg Q2W/Up 150 mg Q2W With Concomitant Statin",
196
- OriginalName: "Alirocumab 75 mg Q2W/Up 150 mg Q2W With Concomitant Statin",
197
- N: 78,
198
- age: 60.7,
199
- ageSD: 9.1,
200
- male: 65.38461538461539,
201
- Interventions: [
202
- {
203
- termIds: [
204
- [
205
- "SUBYEL",
206
- "SUB_Oc"
207
- ],
208
- [
209
- "SUNUVb"
210
- ]
211
- ]
222
+ });
223
+ var serialized = pack(data);
224
+ var deserialized = unpack(serialized);
225
+ assert.deepEqual(data, deserialized);
226
+ assert.equal(deserialized.extendedInstance.getDouble(), 8);
227
+ });
228
+ test('extended class pack/unpack custom size', function(){
229
+ function TestClass() {
230
+
231
+ }
232
+ addExtension({
233
+ Class: TestClass,
234
+ type: 0x01,
235
+ pack() {
236
+ return typeof Buffer != 'undefined' ? Buffer.alloc(256) : new Uint8Array(256)
237
+ },
238
+ unpack(data) {
239
+ return data.length
212
240
  }
213
- ]
214
- },
215
- {
216
- Id: "i4",
217
- Interventions: [
218
- {
219
- Id: "Ya",
220
- Name: 178613599,
221
- Treatments: [
222
- {
223
- Id: "((",
224
- Phase: "k)"
225
- }
226
- ],
227
- Type: "Drug",
228
- termIds: [
229
- [
230
- "SUGeLS"
231
- ],
232
- [
233
- "SUNUVb"
234
- ]
235
- ],
236
- terms: [
237
- [
238
- "Placebo"
239
- ],
240
- [
241
- "Alirocumab"
242
- ]
243
- ]
241
+ });
242
+ let result = unpack(pack(new TestClass()));
243
+ assert.equal(result, 256);
244
+ });
245
+
246
+ test('extended class read/write', function(){
247
+ function Extended() {
248
+
249
+ }
250
+ Extended.prototype.getDouble = function() {
251
+ return this.value * 2
252
+ };
253
+ var instance = new Extended();
254
+ instance.value = 4;
255
+ instance.string = 'decode this: ᾜ';
256
+ var data = {
257
+ prop1: 'has multi-byte: ᾜ',
258
+ extendedInstance: instance,
259
+ prop2: 'more string',
260
+ num: 3,
261
+ };
262
+ let packr = new Packr();
263
+ addExtension({
264
+ Class: Extended,
265
+ type: 12,
266
+ read: function(data) {
267
+ let e = new Extended();
268
+ e.value = data[0];
269
+ e.string = data[1];
270
+ return e
244
271
  },
245
- {
246
- Id: "o)",
247
- Name: 2159990,
248
- Treatments: [
249
- {
250
- Id: "1$",
251
- Phase: "k)"
252
- }
253
- ],
254
- Type: "Drug",
255
- termIds: [
256
- [
257
- "SUBYEL"
258
- ]
259
- ],
260
- terms: [
261
- [
262
- "Statins"
263
- ]
264
- ]
272
+ write: function(instance) {
273
+ return [instance.value, instance.string]
265
274
  }
266
- ],
267
- RefId: "E1|Placebo Q2W",
268
- OriginalName: "Placebo Q2W"
269
- },
270
- {
271
- Id: "Ls",
272
- RefId: "B1|O1~Placebo Q2W With Concomitant Statin",
273
- OriginalName: "Placebo Q2W With Concomitant Statin",
274
- N: 157,
275
- age: 61.6,
276
- ageSD: 9.7,
277
- male: 64.3312101910828,
278
- Interventions: [
279
- {
280
- termIds: [
281
- [
282
- "SUGeLS"
283
- ],
284
- [
285
- "SUBYEL",
286
- "SUB_Oc"
287
- ]
288
- ]
275
+ });
276
+ var serialized = pack(data);
277
+ var deserialized = unpack(serialized);
278
+ assert.deepEqual(data, deserialized);
279
+ assert.equal(deserialized.extendedInstance.getDouble(), 8);
280
+ });
281
+
282
+ test.skip('text decoder', function() {
283
+ let td = new TextDecoder('ISO-8859-15');
284
+ let b = Buffer.alloc(3);
285
+ for (var i = 0; i < 256; i++) {
286
+ b[0] = i;
287
+ b[1] = 0;
288
+ b[2] = 0;
289
+ let s = td.decode(b);
290
+ if (!require('msgpackr-extract').isOneByte(s)) {
291
+ console.log(i.toString(16), s.length);
292
+ }
289
293
  }
290
- ]
291
- }
292
- ];
293
- var hasDocData = true;
294
- var hasRapidExtract = false;
295
- var N = 803;
296
- var queryScore = 1.4868329805051381;
297
- var matchingScore = 7.960635921410255;
298
- var score = 22.084654254966498;
299
- var outcomes = [
300
- {
301
- id: "179246387",
302
- type: "Change",
303
- unit: "%",
304
- termIds: [
305
- [
306
- "SUF0R",
307
- "SUBskP"
294
+ });
295
+
296
+ test('structured cloning: self reference', function() {
297
+ let object = {
298
+ test: 'string',
299
+ children: [
300
+ { name: 'child' }
308
301
  ]
309
- ],
310
- quantifiers: [
311
- ],
312
- name: "Calculated LDL-C in Not Receiving Concomitant Statin Therapy - On-Treatment Analysis",
313
- cells: [
314
- {
315
- number: -0.4,
316
- unit: "%",
317
- group: "3!",
318
- varType: "se",
319
- N: 70,
320
- se: 2,
321
- sd: 16.73
322
- },
323
- {
324
- number: -54.6,
325
- unit: "%",
326
- group: "4r",
327
- varType: "se",
328
- N: 37,
329
- se: 2.8,
330
- sd: 17.03
331
- },
332
- {
333
- number: -59.4,
334
- unit: "%",
335
- group: "zB",
336
- varType: "se",
337
- N: 141,
338
- se: 1.4,
339
- sd: 16.62
302
+ };
303
+ object.self = object;
304
+ object.children[1] = object;
305
+ object.children[2] = object.children[0];
306
+ object.childrenAgain = object.children;
307
+ let packr = new Packr({
308
+ moreTypes: true,
309
+ structuredClone: true,
310
+ });
311
+ var serialized = packr.pack(object);
312
+ var deserialized = packr.unpack(serialized);
313
+ assert.equal(deserialized.self, deserialized);
314
+ assert.equal(deserialized.children[0].name, 'child');
315
+ assert.equal(deserialized.children[1], deserialized);
316
+ assert.equal(deserialized.children[0], deserialized.children[2]);
317
+ assert.equal(deserialized.children, deserialized.childrenAgain);
318
+ });
319
+
320
+ test('structured cloning: types', function() {
321
+ let b = typeof Buffer != 'undefined' ? Buffer.alloc(20) : new Uint8Array(20);
322
+ let fa = new Float32Array(b.buffer, 8, 2);
323
+ fa[0] = 2.25;
324
+ fa[1] = 6;
325
+ let object = {
326
+ error: new Error('test'),
327
+ set: new Set(['a', 'b']),
328
+ regexp: /test/gi,
329
+ float32Array: fa,
330
+ uint16Array: new Uint16Array([3,4])
331
+ };
332
+ let packr = new Packr({
333
+ moreTypes: true,
334
+ structuredClone: true,
335
+ });
336
+ var serialized = packr.pack(object);
337
+ var deserialized = packr.unpack(serialized);
338
+ assert.deepEqual(Array.from(deserialized.set), Array.from(object.set));
339
+ assert.equal(deserialized.error.message, object.error.message);
340
+ assert.equal(deserialized.regexp.test('TEST'), true);
341
+ assert.equal(deserialized.float32Array.constructor.name, 'Float32Array');
342
+ assert.equal(deserialized.float32Array[0], 2.25);
343
+ assert.equal(deserialized.float32Array[1], 6);
344
+ assert.equal(deserialized.uint16Array.constructor.name, 'Uint16Array');
345
+ assert.equal(deserialized.uint16Array[0], 3);
346
+ assert.equal(deserialized.uint16Array[1], 4);
347
+ });
348
+
349
+ test('object without prototype', function(){
350
+ var data = Object.create(null);
351
+ data.test = 3;
352
+ var serialized = pack(data);
353
+ var deserialized = unpack(serialized);
354
+ assert.deepEqual(deserialized, data);
355
+ });
356
+
357
+ test('many shared structures', function() {
358
+ let data = [];
359
+ for (let i = 0; i < 200; i++) {
360
+ data.push({['a' + i]: i});
361
+ }
362
+ let structures = [];
363
+ let savedStructures;
364
+ let packr = new Packr({
365
+ structures,
366
+ saveStructures(structures) {
367
+ savedStructures = structures;
340
368
  }
341
- ],
342
- time: {
343
- Id: 67122072,
344
- Low: {
345
- Value: "Baseline"
346
- },
347
- High: {
348
- "Number": 24,
349
- Unit: "wk"
350
- },
351
- Type: "Total",
352
- days: 168,
353
- description: "24wk"
354
- },
355
- score: 2.08,
356
- matchingTerm: "SUF0R",
357
- suggestedPositive: false,
358
- sourceUnit: "%"
359
- },
360
- {
361
- id: "179246389",
362
- type: "Change",
363
- unit: "%",
364
- termIds: [
365
- [
366
- "SUF0R",
367
- "SUBskP"
368
- ]
369
- ],
370
- quantifiers: [
371
- ],
372
- name: "Calculated LDL-C in Receiving Concomitant Statin Therapy - On-Treatment Analysis",
373
- cells: [
374
- {
375
- number: -0.3,
376
- unit: "%",
377
- group: "Ls",
378
- varType: "se",
379
- N: 151,
380
- se: 2.1,
381
- sd: 25.81
382
- },
383
- {
384
- number: -55.1,
385
- unit: "%",
386
- group: "4E",
387
- varType: "se",
388
- N: 75,
389
- se: 3,
390
- sd: 25.98
391
- },
392
- {
393
- number: -62.3,
394
- unit: "%",
395
- group: "jt",
396
- varType: "se",
397
- N: 302,
398
- se: 1.5,
399
- sd: 26.07
369
+ });
370
+ var serializedWith32 = packr.pack(data);
371
+ assert.equal(savedStructures.length, 32);
372
+ var deserialized = packr.unpack(serializedWith32);
373
+ assert.deepEqual(deserialized, data);
374
+ structures = structures.slice(0, 32);
375
+ packr = new Packr({
376
+ structures,
377
+ maxSharedStructures: 100,
378
+ saveStructures(structures) {
379
+ savedStructures = structures;
400
380
  }
401
- ],
402
- time: {
403
- Id: 67122072,
404
- Low: {
405
- Value: "Baseline"
406
- },
407
- High: {
408
- "Number": 24,
409
- Unit: "wk"
410
- },
411
- Type: "Total",
412
- days: 168,
413
- description: "24wk"
414
- },
415
- score: 2.08,
416
- matchingTerm: "SUF0R",
417
- suggestedPositive: false,
418
- sourceUnit: "%"
419
- },
420
- {
421
- id: "179246393",
422
- type: "Change",
423
- unit: "%",
424
- termIds: [
425
- [
426
- "SUF0R",
427
- "SUBskP"
428
- ]
429
- ],
430
- quantifiers: [
431
- ],
432
- name: "Calculated LDL-C in Not Receiving Concomitant Statin Therapy - On-Treatment Analysis",
433
- cells: [
434
- {
435
- number: -0.5,
436
- unit: "%",
437
- group: "3!",
438
- varType: "se",
439
- N: 70,
440
- se: 2,
441
- sd: 16.73
442
- },
443
- {
444
- number: -53.9,
445
- unit: "%",
446
- group: "4r",
447
- varType: "se",
448
- N: 37,
449
- se: 2.7,
450
- sd: 16.42
451
- },
452
- {
453
- number: -60,
454
- unit: "%",
455
- group: "zB",
456
- varType: "se",
457
- N: 141,
458
- se: 1.4,
459
- sd: 16.62
381
+ });
382
+ deserialized = packr.unpack(serializedWith32);
383
+ assert.deepEqual(deserialized, data);
384
+ structures = structures.slice(0, 32);
385
+ packr = new Packr({
386
+ structures,
387
+ maxSharedStructures: 100,
388
+ saveStructures(structures) {
389
+ savedStructures = structures;
460
390
  }
461
- ],
462
- time: {
463
- Id: 67122069,
464
- Low: {
465
- Value: "Baseline"
391
+ });
392
+ let serialized = packr.pack(data);
393
+ assert.equal(savedStructures.length, 100);
394
+ deserialized = packr.unpack(serialized);
395
+ assert.deepEqual(deserialized, data);
396
+
397
+ deserialized = packr.unpack(serializedWith32);
398
+ assert.deepEqual(deserialized, data);
399
+ assert.equal(savedStructures.length, 100);
400
+
401
+ deserialized = packr.unpack(serialized);
402
+ assert.deepEqual(deserialized, data);
403
+ assert.equal(packr.structures.sharedLength, 100);
404
+ });
405
+ test('more shared structures', function() {
406
+ const structures = [];
407
+ for (let i = 0; i < 40; i++) {
408
+ structures.push(['a' + i]);
409
+ }
410
+ const structures2 = [...structures];
411
+ const packr = new Packr({
412
+ getStructures() {
413
+ return structures
466
414
  },
467
- High: {
468
- "Number": 12,
469
- Unit: "wk"
415
+ saveStructures(structures) {
470
416
  },
471
- Type: "Total",
472
- days: 84,
473
- description: "12wk"
474
- },
475
- score: 2.08,
476
- matchingTerm: "SUF0R",
477
- suggestedPositive: false,
478
- sourceUnit: "%"
479
- },
480
- {
481
- id: "179246394",
482
- type: "Change",
483
- unit: "%",
484
- termIds: [
485
- [
486
- "SUF0R",
487
- "SUBskP"
488
- ]
489
- ],
490
- quantifiers: [
491
- ],
492
- name: "Calculated LDL-C in Receiving Concomitant Statin Therapy - On-Treatment Analysis",
493
- cells: [
494
- {
495
- number: 1.4,
496
- unit: "%",
497
- group: "Ls",
498
- varType: "se",
499
- N: 151,
500
- se: 1.9,
501
- sd: 23.35
417
+ maxSharedStructures: 100
418
+ });
419
+ const packr2 = new Packr({
420
+ getStructures() {
421
+ return structures2
502
422
  },
503
- {
504
- number: -47.3,
505
- unit: "%",
506
- group: "4E",
507
- varType: "se",
508
- N: 75,
509
- se: 2.8,
510
- sd: 24.25
423
+ saveStructures(structures) {
511
424
  },
512
- {
513
- number: -58,
514
- unit: "%",
515
- group: "jt",
516
- varType: "se",
517
- N: 302,
518
- se: 1.4,
519
- sd: 24.33
425
+ maxSharedStructures: 100
426
+ });
427
+ const inputData = {a35: 35};
428
+ const buffer = packr.pack(inputData);
429
+ const outputData = packr2.decode(buffer);
430
+ assert.deepEqual(inputData, outputData);
431
+ });
432
+
433
+ test('big buffer', function() {
434
+ var size = 100000000;
435
+ var data = new Uint8Array(size).fill(1);
436
+ var packed = pack(data);
437
+ var unpacked = unpack(packed);
438
+ assert.equal(unpacked.length, size);
439
+ });
440
+
441
+ test('random strings', function(){
442
+ var data = [];
443
+ for (var i = 0; i < 2000; i++) {
444
+ var str = 'test';
445
+ while (Math.random() < 0.7 && str.length < 0x100000) {
446
+ str = str + String.fromCharCode(90/(Math.random() + 0.01)) + str;
520
447
  }
521
- ],
522
- time: {
523
- Id: 67122069,
524
- Low: {
525
- Value: "Baseline"
526
- },
527
- High: {
528
- "Number": 12,
529
- Unit: "wk"
530
- },
531
- Type: "Total",
532
- days: 84,
533
- description: "12wk"
534
- },
535
- score: 2.08,
536
- matchingTerm: "SUF0R",
537
- suggestedPositive: false,
538
- sourceUnit: "%"
539
- }
540
- ];
541
- var characteristics = [
542
- {
543
- id: "179246354",
544
- type: "Binary",
545
- isCharacteristic: true,
546
- termIds: [
547
- [
548
- "SUE_c",
549
- "SUCbN",
550
- "SUyJj"
551
- ]
552
- ],
553
- quantifiers: [
554
- ],
555
- name: "Patients not having adequate control of their hypercholesterolemia based on their individual level of CVD risk",
556
- cells: [
557
- ],
558
- number: 100
559
- }
560
- ];
561
- var outcomesScore = 18.97947630112307;
562
- var sampleData = {
563
- metadata: metadata,
564
- design: design,
565
- conditions: conditions,
566
- phase: phase,
567
- name: name,
568
- trialIds: trialIds,
569
- acronyms: acronyms,
570
- outcomeCount: outcomeCount,
571
- id: id,
572
- groups: groups,
573
- hasDocData: hasDocData,
574
- hasRapidExtract: hasRapidExtract,
575
- N: N,
576
- queryScore: queryScore,
577
- matchingScore: matchingScore,
578
- score: score,
579
- outcomes: outcomes,
580
- characteristics: characteristics,
581
- outcomesScore: outcomesScore
582
- };
448
+ data.push(str);
449
+ }
450
+ var serialized = pack(data);
451
+ var deserialized = unpack(serialized);
452
+ assert.deepEqual(deserialized, data);
453
+ });
454
+
455
+ test('map/date', function(){
456
+ var map = new Map();
457
+ map.set(4, 'four');
458
+ map.set('three', 3);
459
+
460
+
461
+ var data = {
462
+ map: map,
463
+ date: new Date(1532219539733),
464
+ farFutureDate: new Date(3532219539133),
465
+ fartherFutureDate: new Date('2106-08-05T18:48:20.323Z'),
466
+ ancient: new Date(-3532219539133),
467
+ invalidDate: new Date('invalid')
468
+ };
469
+ let packr = new Packr();
470
+ var serialized = packr.pack(data);
471
+ var deserialized = packr.unpack(serialized);
472
+ assert.equal(deserialized.map.get(4), 'four');
473
+ assert.equal(deserialized.map.get('three'), 3);
474
+ assert.equal(deserialized.date.getTime(), 1532219539733);
475
+ assert.equal(deserialized.farFutureDate.getTime(), 3532219539133);
476
+ assert.equal(deserialized.fartherFutureDate.toISOString(), '2106-08-05T18:48:20.323Z');
477
+ assert.equal(deserialized.ancient.getTime(), -3532219539133);
478
+ assert.equal(deserialized.invalidDate.toString(), 'Invalid Date');
479
+ });
480
+ test('map/date with options', function(){
481
+ var map = new Map();
482
+ map.set(4, 'four');
483
+ map.set('three', 3);
484
+
485
+
486
+ var data = {
487
+ map: map,
488
+ date: new Date(1532219539011),
489
+ invalidDate: new Date('invalid')
490
+ };
491
+ let packr = new Packr({
492
+ mapsAsObjects: true,
493
+ useTimestamp32: true,
494
+ onInvalidDate: () => 'Custom invalid date'
495
+ });
496
+ var serialized = packr.pack(data);
497
+ var deserialized = packr.unpack(serialized);
498
+ assert.equal(deserialized.map[4], 'four');
499
+ assert.equal(deserialized.map.three, 3);
500
+ assert.equal(deserialized.date.getTime(), 1532219539000);
501
+ assert.equal(deserialized.invalidDate, 'Custom invalid date');
502
+ });
503
+ test('key caching', function() {
504
+ var data = {
505
+ foo: 2,
506
+ bar: 'test',
507
+ four: 4,
508
+ seven: 7,
509
+ foz: 3,
510
+ };
511
+ var serialized = pack(data);
512
+ var deserialized = unpack(serialized);
513
+ assert.deepEqual(deserialized, data);
514
+ // do multiple times to test caching
515
+ var serialized = pack(data);
516
+ var deserialized = unpack(serialized);
517
+ assert.deepEqual(deserialized, data);
518
+ var serialized = pack(data);
519
+ var deserialized = unpack(serialized);
520
+ assert.deepEqual(deserialized, data);
521
+ });
522
+ test('strings', function() {
523
+ var data = [''];
524
+ var serialized = pack(data);
525
+ var deserialized = unpack(serialized);
526
+ assert.deepEqual(deserialized, data);
527
+ // do multiple times
528
+ var serialized = pack(data);
529
+ var deserialized = unpack(serialized);
530
+ assert.deepEqual(deserialized, data);
531
+ data = 'decode this: ᾜ';
532
+ var serialized = pack(data);
533
+ var deserialized = unpack(serialized);
534
+ assert.deepEqual(deserialized, data);
535
+ data = 'decode this that is longer but without any non-latin characters';
536
+ var serialized = pack(data);
537
+ var deserialized = unpack(serialized);
538
+ assert.deepEqual(deserialized, data);
539
+ });
540
+ test('decimal float32', function() {
541
+ var data = {
542
+ a: 2.526,
543
+ b: 0.0035235,
544
+ c: 0.00000000000352501,
545
+ d: 3252.77,
546
+ };
547
+ let packr = new Packr({
548
+ useFloat32: DECIMAL_FIT
549
+ });
550
+ var serialized = packr.pack(data);
551
+ assert.equal(serialized.length, 32);
552
+ var deserialized = packr.unpack(serialized);
553
+ assert.deepEqual(deserialized, data);
554
+ });
555
+ test('bigint to float', function() {
556
+ var data = {
557
+ a: 325283295382932843n
558
+ };
559
+ let packr = new Packr({
560
+ int64AsNumber: true
561
+ });
562
+ var serialized = packr.pack(data);
563
+ var deserialized = packr.unpack(serialized);
564
+ assert.deepEqual(deserialized.a, 325283295382932843);
565
+ });
566
+ test('numbers', function(){
567
+ var data = {
568
+ bigEncodable: 48978578104322,
569
+ dateEpoch: 1530886513200,
570
+ realBig: 3432235352353255323,
571
+ decimal: 32.55234,
572
+ negative: -34.11,
573
+ exponential: 0.234e123,
574
+ tiny: 3.233e-120,
575
+ zero: 0,
576
+ //negativeZero: -0,
577
+ Infinity: Infinity
578
+ };
579
+ var serialized = pack(data);
580
+ var deserialized = unpack(serialized);
581
+ assert.deepEqual(deserialized, data);
582
+ });
583
+ test('bigint', function(){
584
+ var data = {
585
+ bigintSmall: 352n,
586
+ bigintSmallNegative: -333335252n,
587
+ bigintBig: 2n**64n - 1n, // biggest possible
588
+ bigintBigNegative: -(2n**63n), // largest negative
589
+ mixedWithNormal: 44,
590
+ };
591
+ var serialized = pack(data);
592
+ var deserialized = unpack(serialized);
593
+ assert.deepEqual(deserialized, data);
594
+ var tooBigInt = {
595
+ tooBig: 2n**66n
596
+ };
597
+ assert.throws(function(){ serialized = pack(tooBigInt); });
598
+ let packr = new Packr({
599
+ largeBigIntToFloat: true
600
+ });
601
+ serialized = packr.pack(tooBigInt);
602
+ deserialized = unpack(serialized);
603
+ assert.isTrue(deserialized.tooBig > 2n**65n);
604
+ });
605
+
606
+ test('roundFloat32', function() {
607
+ assert.equal(roundFloat32(0.00333000003), 0.00333);
608
+ assert.equal(roundFloat32(43.29999999993), 43.3);
609
+ });
610
+
611
+ test('buffers', function(){
612
+ var data = {
613
+ buffer1: new Uint8Array([2,3,4]),
614
+ buffer2: new Uint8Array(pack(sampleData))
615
+ };
616
+ var serialized = pack(data);
617
+ var deserialized = unpack(serialized);
618
+ assert.deepEqual(deserialized, data);
619
+ });
620
+
621
+ test('notepack test', function() {
622
+ const data = {
623
+ foo: 1,
624
+ bar: [1, 2, 3, 4, 'abc', 'def'],
625
+ foobar: {
626
+ foo: true,
627
+ bar: -2147483649,
628
+ foobar: {
629
+ foo: new Uint8Array([1, 2, 3, 4, 5]),
630
+ bar: 1.5,
631
+ foobar: [true, false, 'abcdefghijkmonpqrstuvwxyz']
632
+ }
633
+ }
634
+ };
635
+ var serialized = pack(data);
636
+ var deserialized = unpack(serialized);
637
+ var deserialized = unpack(serialized);
638
+ var deserialized = unpack(serialized);
639
+ assert.deepEqual(deserialized, data);
640
+ });
641
+
642
+ test('utf16 causing expansion', function() {
643
+ this.timeout(10000);
644
+ let data = {fixstr: 'ᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝ', str8:'ᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝ'};
645
+ var serialized = pack(data);
646
+ var deserialized = unpack(serialized);
647
+ assert.deepEqual(deserialized, data);
648
+ });
649
+ test('unpackMultiple', () => {
650
+ let values = unpackMultiple(new Uint8Array([1, 2, 3, 4]));
651
+ assert.deepEqual(values, [1, 2, 3, 4]);
652
+ values = [];
653
+ unpackMultiple(new Uint8Array([1, 2, 3, 4]), value => values.push(value));
654
+ assert.deepEqual(values, [1, 2, 3, 4]);
655
+ });
656
+
657
+ });
658
+ suite('msgpackr performance tests', function(){
659
+ test('performance JSON.parse', function() {
660
+ var data = sampleData;
661
+ this.timeout(10000);
662
+ var serialized = JSON.stringify(data);
663
+ console.log('JSON size', serialized.length);
664
+ for (var i = 0; i < ITERATIONS; i++) {
665
+ var deserialized = JSON.parse(serialized);
666
+ }
667
+ });
668
+ test('performance JSON.stringify', function() {
669
+ var data = sampleData;
670
+ this.timeout(10000);
671
+ for (var i = 0; i < ITERATIONS; i++) {
672
+ var serialized = JSON.stringify(data);
673
+ }
674
+ });
675
+ test('performance unpack', function() {
676
+ var data = sampleData;
677
+ this.timeout(10000);
678
+ let structures = [];
679
+ var serialized = pack(data);
680
+ console.log('MessagePack size', serialized.length);
681
+ let packr = new Packr({ structures, bundleStrings: false });
682
+ var serialized = packr.pack(data);
683
+ console.log('msgpackr w/ record ext size', serialized.length);
684
+ for (var i = 0; i < ITERATIONS; i++) {
685
+ var deserialized = packr.unpack(serialized);
686
+ }
687
+ });
688
+ test('performance pack', function() {
689
+ var data = sampleData;
690
+ this.timeout(10000);
691
+ let structures = [];
692
+ let packr = new Packr({ structures, bundleStrings: false });
693
+ let buffer = typeof Buffer != 'undefined' ? Buffer.alloc(0x10000) : new Uint8Array(0x10000);
583
694
 
584
- function tryRequire(module) {
585
- try {
586
- return require(module)
587
- } catch(error) {
588
- return {}
589
- }
590
- }
591
- //if (typeof chai === 'undefined') { chai = require('chai') }
592
- var assert = chai.assert;
593
- //if (typeof msgpackr === 'undefined') { msgpackr = require('..') }
594
- var Packr = msgpackr.Packr;
595
- var unpack = msgpackr.unpack;
596
- var unpackMultiple = msgpackr.unpackMultiple;
597
- var roundFloat32 = msgpackr.roundFloat32;
598
- var pack = msgpackr.pack;
599
- var DECIMAL_FIT = msgpackr.FLOAT32_OPTIONS.DECIMAL_FIT;
600
-
601
- var addExtension = msgpackr.addExtension;
602
- var zlib = tryRequire('zlib');
603
- var deflateSync = zlib.deflateSync;
604
- var inflateSync = zlib.inflateSync;
605
- var deflateSync = zlib.brotliCompressSync;
606
- var inflateSync = zlib.brotliDecompressSync;
607
- var constants = zlib.constants;
608
-
609
- var ITERATIONS = 4000;
610
-
611
- suite('msgpackr basic tests', function(){
612
- test('pack/unpack data', function(){
613
- var data = {
614
- data: [
615
- { a: 1, name: 'one', type: 'odd', isOdd: true },
616
- { a: 2, name: 'two', type: 'even'},
617
- { a: 3, name: 'three', type: 'odd', isOdd: true },
618
- { a: 4, name: 'four', type: 'even'},
619
- { a: 5, name: 'five', type: 'odd', isOdd: true },
620
- { a: 6, name: 'six', type: 'even', isOdd: null }
621
- ],
622
- description: 'some names',
623
- types: ['odd', 'even'],
624
- convertEnumToNum: [
625
- { prop: 'test' },
626
- { prop: 'test' },
627
- { prop: 'test' },
628
- { prop: 1 },
629
- { prop: 2 },
630
- { prop: [undefined] },
631
- { prop: null }
632
- ]
633
- };
634
- let structures = [];
635
- let packr = new Packr({ structures });
636
- var serialized = packr.pack(data);
637
- serialized = packr.pack(data);
638
- serialized = packr.pack(data);
639
- var deserialized = packr.unpack(serialized);
640
- assert.deepEqual(deserialized, data);
641
- });
642
-
643
- test('mixed structures', function(){
644
- let data1 = { a: 1, b: 2, c: 3 };
645
- let data2 = { a: 1, b: 2, d: 4 };
646
- let data3 = { a: 1, b: 2, e: 5 };
647
- let structures = [];
648
- let packr = new Packr({ structures });
649
- var serialized = packr.pack(data1);
650
- var deserialized = packr.unpack(serialized);
651
- assert.deepEqual(deserialized, data1);
652
- var serialized = packr.pack(data2);
653
- var deserialized = packr.unpack(serialized);
654
- assert.deepEqual(deserialized, data2);
655
- var serialized = packr.pack(data3);
656
- var deserialized = packr.unpack(serialized);
657
- assert.deepEqual(deserialized, data3);
658
- });
659
-
660
- test('mixed array', function(){
661
- var data = [
662
- 'one',
663
- 'two',
664
- 'one',
665
- 10,
666
- 11,
667
- null,
668
- true,
669
- 'three',
670
- 'three',
671
- 'one', [
672
- 3, -5, -50, -400,1.3, -5.3, true
673
- ]
674
- ];
675
- let structures = [];
676
- let packr = new Packr({ structures });
677
- var serialized = packr.pack(data);
678
- var deserialized = packr.unpack(serialized);
679
- assert.deepEqual(deserialized, data);
680
- });
681
-
682
- test('255 chars', function() {
683
- const data = 'RRZG9A6I7xupPeOZhxcOcioFsuhszGOdyDUcbRf4Zef2kdPIfC9RaLO4jTM5JhuZvTsF09fbRHMGtqk7YAgu3vespeTe9l61ziZ6VrMnYu2CamK96wCkmz0VUXyqaiUoTPgzk414LS9yYrd5uh7w18ksJF5SlC2e91rukWvNqAZJjYN3jpkqHNOFchCwFrhbxq2Lrv1kSJPYCx9blRg2hGmYqTbElLTZHv20iNqwZeQbRMgSBPT6vnbCBPnOh1W';
684
- var serialized = pack(data);
685
- var deserialized = unpack(serialized);
686
- assert.equal(deserialized, data);
687
- });
688
-
689
- test('pack/unpack sample data', function(){
690
- var data = sampleData;
691
- var serialized = pack(data);
692
- var deserialized = unpack(serialized);
693
- assert.deepEqual(deserialized, data);
694
- var serialized = pack(data);
695
- var deserialized = unpack(serialized);
696
- assert.deepEqual(deserialized, data);
697
- });
698
- test('pack/unpack sample data with records', function(){
699
- var data = sampleData;
700
- let structures = [];
701
- let packr = new Packr({ structures, useRecords: true });
702
- var serialized = packr.pack(data);
703
- var deserialized = packr.unpack(serialized);
704
- assert.deepEqual(deserialized, data);
705
- });
706
- test('pack/unpack sample data with bundled strings', function(){
707
- var data = sampleData;
708
- let packr = new Packr({ /*structures,*/ useRecords: false, bundleStrings: true });
709
- var serialized = packr.pack(data);
710
- var deserialized = packr.unpack(serialized);
711
- assert.deepEqual(deserialized, data);
712
- });
713
- if (typeof Buffer != 'undefined')
714
- test('replace data', function(){
715
- var data1 = {
716
- data: [
717
- { a: 1, name: 'one', type: 'odd', isOdd: true, a: '13 characters' },
718
- { a: 2, name: 'two', type: 'even', a: '11 characte' },
719
- { a: 3, name: 'three', type: 'odd', isOdd: true, a: '12 character' },
720
- { a: 4, name: 'four', type: 'even', a: '9 charact'},
721
- { a: 5, name: 'five', type: 'odd', isOdd: true, a: '14 characters!' },
722
- { a: 6, name: 'six', type: 'even', isOdd: null }
723
- ],
724
- };
725
- var data2 = {
726
- data: [
727
- { foo: 7, name: 'one', type: 'odd', isOdd: true },
728
- { foo: 8, name: 'two', type: 'even'},
729
- { foo: 9, name: 'three', type: 'odd', isOdd: true },
730
- { foo: 10, name: 'four', type: 'even'},
731
- { foo: 11, name: 'five', type: 'odd', isOdd: true },
732
- { foo: 12, name: 'six', type: 'even', isOdd: null }
733
- ],
734
- };
735
- var serialized1 = pack(data1);
736
- var serialized2 = pack(data2);
737
- var b = Buffer.alloc(8000);
738
- serialized1.copy(b);
739
- var deserialized1 = unpack(b, serialized1.length);
740
- serialized2.copy(b);
741
- var deserialized2 = unpack(b, serialized2.length);
742
- assert.deepEqual(deserialized1, data1);
743
- assert.deepEqual(deserialized2, data2);
744
- });
745
-
746
- test('extended class pack/unpack', function(){
747
- function Extended() {
748
-
749
- }
750
- Extended.prototype.getDouble = function() {
751
- return this.value * 2
752
- };
753
- var instance = new Extended();
754
- instance.value = 4;
755
- instance.string = 'decode this: ᾜ';
756
- var data = {
757
- prop1: 'has multi-byte: ᾜ',
758
- extendedInstance: instance,
759
- prop2: 'more string',
760
- num: 3,
761
- };
762
- let packr = new Packr();
763
- addExtension({
764
- Class: Extended,
765
- type: 11,
766
- unpack: function(buffer) {
767
- let e = new Extended();
768
- let data = packr.unpack(buffer);
769
- e.value = data[0];
770
- e.string = data[1];
771
- return e
772
- },
773
- pack: function(instance) {
774
- return packr.pack([instance.value, instance.string])
775
- }
776
- });
777
- var serialized = pack(data);
778
- var deserialized = unpack(serialized);
779
- assert.deepEqual(data, deserialized);
780
- assert.equal(deserialized.extendedInstance.getDouble(), 8);
781
- });
782
- test('extended class pack/unpack custom size', function(){
783
- function TestClass() {
784
-
785
- }
786
- addExtension({
787
- Class: TestClass,
788
- type: 0x01,
789
- pack() {
790
- return typeof Buffer != 'undefined' ? Buffer.alloc(256) : new Uint8Array(256)
791
- },
792
- unpack(data) {
793
- return data.length
794
- }
795
- });
796
- let result = unpack(pack(new TestClass()));
797
- assert.equal(result, 256);
798
- });
799
-
800
- test('extended class read/write', function(){
801
- function Extended() {
802
-
803
- }
804
- Extended.prototype.getDouble = function() {
805
- return this.value * 2
806
- };
807
- var instance = new Extended();
808
- instance.value = 4;
809
- instance.string = 'decode this: ᾜ';
810
- var data = {
811
- prop1: 'has multi-byte: ᾜ',
812
- extendedInstance: instance,
813
- prop2: 'more string',
814
- num: 3,
815
- };
816
- let packr = new Packr();
817
- addExtension({
818
- Class: Extended,
819
- type: 12,
820
- read: function(data) {
821
- let e = new Extended();
822
- e.value = data[0];
823
- e.string = data[1];
824
- return e
825
- },
826
- write: function(instance) {
827
- return [instance.value, instance.string]
828
- }
829
- });
830
- var serialized = pack(data);
831
- var deserialized = unpack(serialized);
832
- assert.deepEqual(data, deserialized);
833
- assert.equal(deserialized.extendedInstance.getDouble(), 8);
834
- });
835
-
836
- test.skip('text decoder', function() {
837
- let td = new TextDecoder('ISO-8859-15');
838
- let b = Buffer.alloc(3);
839
- for (var i = 0; i < 256; i++) {
840
- b[0] = i;
841
- b[1] = 0;
842
- b[2] = 0;
843
- let s = td.decode(b);
844
- if (!require('msgpackr-extract').isOneByte(s)) {
845
- console.log(i.toString(16), s.length);
846
- }
847
- }
848
- });
849
-
850
- test('structured cloning: self reference', function() {
851
- let object = {
852
- test: 'string',
853
- children: [
854
- { name: 'child' }
855
- ]
856
- };
857
- object.self = object;
858
- object.children[1] = object;
859
- object.children[2] = object.children[0];
860
- object.childrenAgain = object.children;
861
- let packr = new Packr({
862
- moreTypes: true,
863
- structuredClone: true,
864
- });
865
- var serialized = packr.pack(object);
866
- var deserialized = packr.unpack(serialized);
867
- assert.equal(deserialized.self, deserialized);
868
- assert.equal(deserialized.children[0].name, 'child');
869
- assert.equal(deserialized.children[1], deserialized);
870
- assert.equal(deserialized.children[0], deserialized.children[2]);
871
- assert.equal(deserialized.children, deserialized.childrenAgain);
872
- });
873
-
874
- test('structured cloning: types', function() {
875
- let b = typeof Buffer != 'undefined' ? Buffer.alloc(20) : new Uint8Array(20);
876
- let fa = new Float32Array(b.buffer, 8, 2);
877
- fa[0] = 2.25;
878
- fa[1] = 6;
879
- let object = {
880
- error: new Error('test'),
881
- set: new Set(['a', 'b']),
882
- regexp: /test/gi,
883
- float32Array: fa,
884
- uint16Array: new Uint16Array([3,4])
885
- };
886
- let packr = new Packr({
887
- moreTypes: true,
888
- structuredClone: true,
889
- });
890
- var serialized = packr.pack(object);
891
- var deserialized = packr.unpack(serialized);
892
- assert.deepEqual(Array.from(deserialized.set), Array.from(object.set));
893
- assert.equal(deserialized.error.message, object.error.message);
894
- assert.equal(deserialized.regexp.test('TEST'), true);
895
- assert.equal(deserialized.float32Array.constructor.name, 'Float32Array');
896
- assert.equal(deserialized.float32Array[0], 2.25);
897
- assert.equal(deserialized.float32Array[1], 6);
898
- assert.equal(deserialized.uint16Array.constructor.name, 'Uint16Array');
899
- assert.equal(deserialized.uint16Array[0], 3);
900
- assert.equal(deserialized.uint16Array[1], 4);
901
- });
902
-
903
- test('object without prototype', function(){
904
- var data = Object.create(null);
905
- data.test = 3;
906
- var serialized = pack(data);
907
- var deserialized = unpack(serialized);
908
- assert.deepEqual(deserialized, data);
909
- });
910
-
911
- test('many shared structures', function() {
912
- let data = [];
913
- for (let i = 0; i < 200; i++) {
914
- data.push({['a' + i]: i});
915
- }
916
- let structures = [];
917
- let savedStructures;
918
- let packr = new Packr({
919
- structures,
920
- saveStructures(structures) {
921
- savedStructures = structures;
922
- }
923
- });
924
- var serializedWith32 = packr.pack(data);
925
- assert.equal(savedStructures.length, 32);
926
- var deserialized = packr.unpack(serializedWith32);
927
- assert.deepEqual(deserialized, data);
928
- structures = structures.slice(0, 32);
929
- packr = new Packr({
930
- structures,
931
- maxSharedStructures: 100,
932
- saveStructures(structures) {
933
- savedStructures = structures;
934
- }
935
- });
936
- deserialized = packr.unpack(serializedWith32);
937
- assert.deepEqual(deserialized, data);
938
- structures = structures.slice(0, 32);
939
- packr = new Packr({
940
- structures,
941
- maxSharedStructures: 100,
942
- saveStructures(structures) {
943
- savedStructures = structures;
944
- }
945
- });
946
- let serialized = packr.pack(data);
947
- assert.equal(savedStructures.length, 100);
948
- deserialized = packr.unpack(serialized);
949
- assert.deepEqual(deserialized, data);
950
-
951
- deserialized = packr.unpack(serializedWith32);
952
- assert.deepEqual(deserialized, data);
953
- assert.equal(savedStructures.length, 100);
954
-
955
- deserialized = packr.unpack(serialized);
956
- assert.deepEqual(deserialized, data);
957
- assert.equal(packr.structures.sharedLength, 100);
958
- });
959
- test('more shared structures', function() {
960
- const structures = [];
961
- for (let i = 0; i < 40; i++) {
962
- structures.push(['a' + i]);
963
- }
964
- const structures2 = [...structures];
965
- const packr = new Packr({
966
- getStructures() {
967
- return structures
968
- },
969
- saveStructures(structures) {
970
- },
971
- maxSharedStructures: 100
972
- });
973
- const packr2 = new Packr({
974
- getStructures() {
975
- return structures2
976
- },
977
- saveStructures(structures) {
978
- },
979
- maxSharedStructures: 100
980
- });
981
- const inputData = {a35: 35};
982
- const buffer = packr.pack(inputData);
983
- const outputData = packr2.decode(buffer);
984
- assert.deepEqual(inputData, outputData);
985
- });
986
-
987
- test('big buffer', function() {
988
- var size = 100000000;
989
- var data = new Uint8Array(size).fill(1);
990
- var packed = pack(data);
991
- var unpacked = unpack(packed);
992
- assert.equal(unpacked.length, size);
993
- });
994
-
995
- test('random strings', function(){
996
- var data = [];
997
- for (var i = 0; i < 2000; i++) {
998
- var str = 'test';
999
- while (Math.random() < 0.7 && str.length < 0x100000) {
1000
- str = str + String.fromCharCode(90/(Math.random() + 0.01)) + str;
1001
- }
1002
- data.push(str);
1003
- }
1004
- var serialized = pack(data);
1005
- var deserialized = unpack(serialized);
1006
- assert.deepEqual(deserialized, data);
1007
- });
1008
-
1009
- test('map/date', function(){
1010
- var map = new Map();
1011
- map.set(4, 'four');
1012
- map.set('three', 3);
1013
-
1014
-
1015
- var data = {
1016
- map: map,
1017
- date: new Date(1532219539733),
1018
- farFutureDate: new Date(3532219539133),
1019
- ancient: new Date(-3532219539133),
1020
- invalidDate: new Date('invalid')
1021
- };
1022
- let packr = new Packr();
1023
- var serialized = packr.pack(data);
1024
- var deserialized = packr.unpack(serialized);
1025
- assert.equal(deserialized.map.get(4), 'four');
1026
- assert.equal(deserialized.map.get('three'), 3);
1027
- assert.equal(deserialized.date.getTime(), 1532219539733);
1028
- assert.equal(deserialized.farFutureDate.getTime(), 3532219539133);
1029
- assert.equal(deserialized.ancient.getTime(), -3532219539133);
1030
- assert.equal(deserialized.invalidDate.toString(), 'Invalid Date');
1031
- });
1032
- test('map/date with options', function(){
1033
- var map = new Map();
1034
- map.set(4, 'four');
1035
- map.set('three', 3);
1036
-
1037
-
1038
- var data = {
1039
- map: map,
1040
- date: new Date(1532219539011),
1041
- invalidDate: new Date('invalid')
1042
- };
1043
- let packr = new Packr({
1044
- mapsAsObjects: true,
1045
- useTimestamp32: true,
1046
- onInvalidDate: () => 'Custom invalid date'
1047
- });
1048
- var serialized = packr.pack(data);
1049
- var deserialized = packr.unpack(serialized);
1050
- assert.equal(deserialized.map[4], 'four');
1051
- assert.equal(deserialized.map.three, 3);
1052
- assert.equal(deserialized.date.getTime(), 1532219539000);
1053
- assert.equal(deserialized.invalidDate, 'Custom invalid date');
1054
- });
1055
- test('key caching', function() {
1056
- var data = {
1057
- foo: 2,
1058
- bar: 'test',
1059
- four: 4,
1060
- seven: 7,
1061
- foz: 3,
1062
- };
1063
- var serialized = pack(data);
1064
- var deserialized = unpack(serialized);
1065
- assert.deepEqual(deserialized, data);
1066
- // do multiple times to test caching
1067
- var serialized = pack(data);
1068
- var deserialized = unpack(serialized);
1069
- assert.deepEqual(deserialized, data);
1070
- var serialized = pack(data);
1071
- var deserialized = unpack(serialized);
1072
- assert.deepEqual(deserialized, data);
1073
- });
1074
- test('strings', function() {
1075
- var data = [''];
1076
- var serialized = pack(data);
1077
- var deserialized = unpack(serialized);
1078
- assert.deepEqual(deserialized, data);
1079
- // do multiple times
1080
- var serialized = pack(data);
1081
- var deserialized = unpack(serialized);
1082
- assert.deepEqual(deserialized, data);
1083
- data = 'decode this: ᾜ';
1084
- var serialized = pack(data);
1085
- var deserialized = unpack(serialized);
1086
- assert.deepEqual(deserialized, data);
1087
- data = 'decode this that is longer but without any non-latin characters';
1088
- var serialized = pack(data);
1089
- var deserialized = unpack(serialized);
1090
- assert.deepEqual(deserialized, data);
1091
- });
1092
- test('decimal float32', function() {
1093
- var data = {
1094
- a: 2.526,
1095
- b: 0.0035235,
1096
- c: 0.00000000000352501,
1097
- d: 3252.77,
1098
- };
1099
- let packr = new Packr({
1100
- useFloat32: DECIMAL_FIT
1101
- });
1102
- var serialized = packr.pack(data);
1103
- assert.equal(serialized.length, 32);
1104
- var deserialized = packr.unpack(serialized);
1105
- assert.deepEqual(deserialized, data);
1106
- });
1107
- test('bigint to float', function() {
1108
- var data = {
1109
- a: 325283295382932843n
1110
- };
1111
- let packr = new Packr({
1112
- int64AsNumber: true
1113
- });
1114
- var serialized = packr.pack(data);
1115
- var deserialized = packr.unpack(serialized);
1116
- assert.deepEqual(deserialized.a, 325283295382932843);
1117
- });
1118
- test('numbers', function(){
1119
- var data = {
1120
- bigEncodable: 48978578104322,
1121
- dateEpoch: 1530886513200,
1122
- realBig: 3432235352353255323,
1123
- decimal: 32.55234,
1124
- negative: -34.11,
1125
- exponential: 0.234e123,
1126
- tiny: 3.233e-120,
1127
- zero: 0,
1128
- //negativeZero: -0,
1129
- Infinity: Infinity
1130
- };
1131
- var serialized = pack(data);
1132
- var deserialized = unpack(serialized);
1133
- assert.deepEqual(deserialized, data);
1134
- });
1135
- test('bigint', function(){
1136
- var data = {
1137
- bigintSmall: 352n,
1138
- bigintSmallNegative: -333335252n,
1139
- bigintBig: 2n**64n - 1n, // biggest possible
1140
- bigintBigNegative: -(2n**63n), // largest negative
1141
- mixedWithNormal: 44,
1142
- };
1143
- var serialized = pack(data);
1144
- var deserialized = unpack(serialized);
1145
- assert.deepEqual(deserialized, data);
1146
- var tooBigInt = {
1147
- tooBig: 2n**66n
1148
- };
1149
- assert.throws(function(){ serialized = pack(tooBigInt); });
1150
- let packr = new Packr({
1151
- largeBigIntToFloat: true
1152
- });
1153
- serialized = packr.pack(tooBigInt);
1154
- deserialized = unpack(serialized);
1155
- assert.isTrue(deserialized.tooBig > 2n**65n);
1156
- });
1157
-
1158
- test('roundFloat32', function() {
1159
- assert.equal(roundFloat32(0.00333000003), 0.00333);
1160
- assert.equal(roundFloat32(43.29999999993), 43.3);
1161
- });
1162
-
1163
- test('buffers', function(){
1164
- var data = {
1165
- buffer1: new Uint8Array([2,3,4]),
1166
- buffer2: new Uint8Array(pack(sampleData))
1167
- };
1168
- var serialized = pack(data);
1169
- var deserialized = unpack(serialized);
1170
- assert.deepEqual(deserialized, data);
1171
- });
1172
-
1173
- test('notepack test', function() {
1174
- const data = {
1175
- foo: 1,
1176
- bar: [1, 2, 3, 4, 'abc', 'def'],
1177
- foobar: {
1178
- foo: true,
1179
- bar: -2147483649,
1180
- foobar: {
1181
- foo: new Uint8Array([1, 2, 3, 4, 5]),
1182
- bar: 1.5,
1183
- foobar: [true, false, 'abcdefghijkmonpqrstuvwxyz']
1184
- }
1185
- }
1186
- };
1187
- var serialized = pack(data);
1188
- var deserialized = unpack(serialized);
1189
- var deserialized = unpack(serialized);
1190
- var deserialized = unpack(serialized);
1191
- assert.deepEqual(deserialized, data);
1192
- });
1193
-
1194
- test('utf16 causing expansion', function() {
1195
- this.timeout(10000);
1196
- let data = {fixstr: 'ᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝ', str8:'ᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝ'};
1197
- var serialized = pack(data);
1198
- var deserialized = unpack(serialized);
1199
- assert.deepEqual(deserialized, data);
1200
- });
1201
- test('unpackMultiple', () => {
1202
- let values = unpackMultiple(new Uint8Array([1, 2, 3, 4]));
1203
- assert.deepEqual(values, [1, 2, 3, 4]);
1204
- values = [];
1205
- unpackMultiple(new Uint8Array([1, 2, 3, 4]), value => values.push(value));
1206
- assert.deepEqual(values, [1, 2, 3, 4]);
1207
- });
1208
-
1209
- });
1210
- suite('msgpackr performance tests', function(){
1211
- test('performance JSON.parse', function() {
1212
- var data = sampleData;
1213
- this.timeout(10000);
1214
- var serialized = JSON.stringify(data);
1215
- console.log('JSON size', serialized.length);
1216
- for (var i = 0; i < ITERATIONS; i++) {
1217
- var deserialized = JSON.parse(serialized);
1218
- }
1219
- });
1220
- test('performance JSON.stringify', function() {
1221
- var data = sampleData;
1222
- this.timeout(10000);
1223
- for (var i = 0; i < ITERATIONS; i++) {
1224
- var serialized = JSON.stringify(data);
1225
- }
1226
- });
1227
- test('performance unpack', function() {
1228
- var data = sampleData;
1229
- this.timeout(10000);
1230
- let structures = [];
1231
- var serialized = pack(data);
1232
- console.log('MessagePack size', serialized.length);
1233
- let packr = new Packr({ structures, bundleStrings: false });
1234
- var serialized = packr.pack(data);
1235
- console.log('msgpackr w/ record ext size', serialized.length);
1236
- for (var i = 0; i < ITERATIONS; i++) {
1237
- var deserialized = packr.unpack(serialized);
1238
- }
1239
- });
1240
- test('performance pack', function() {
1241
- var data = sampleData;
1242
- this.timeout(10000);
1243
- let structures = [];
1244
- let packr = new Packr({ structures, bundleStrings: false });
1245
- let buffer = typeof Buffer != 'undefined' ? Buffer.alloc(0x10000) : new Uint8Array(0x10000);
1246
-
1247
- for (var i = 0; i < ITERATIONS; i++) {
1248
- //serialized = pack(data, { shared: sharedStructure })
1249
- packr.useBuffer(buffer);
1250
- var serialized = packr.pack(data);
1251
- //var serializedGzip = deflateSync(serialized)
1252
- }
1253
- //console.log('serialized', serialized.length, global.propertyComparisons)
1254
- });
695
+ for (var i = 0; i < ITERATIONS; i++) {
696
+ //serialized = pack(data, { shared: sharedStructure })
697
+ packr.useBuffer(buffer);
698
+ var serialized = packr.pack(data);
699
+ //var serializedGzip = deflateSync(serialized)
700
+ }
701
+ //console.log('serialized', serialized.length, global.propertyComparisons)
702
+ });
1255
703
  });
1256
704
 
1257
- }(msgpackr, chai));
705
+ }(msgpackr, chai, fs));