@based/db 0.0.1 → 0.0.2

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 (354) hide show
  1. package/dist/lib/darwin_aarch64/include/jemalloc.h +468 -0
  2. package/dist/lib/darwin_aarch64/include/selva/selva_string.h +2 -0
  3. package/dist/lib/darwin_aarch64/libdeflate.dylib +0 -0
  4. package/dist/lib/darwin_aarch64/libjemalloc_selva.2.dylib +0 -0
  5. package/dist/lib/darwin_aarch64/libnode-v20.11.1.node +0 -0
  6. package/dist/lib/darwin_aarch64/libnode-v22.13.1.node +0 -0
  7. package/dist/lib/darwin_aarch64/libselva.dylib +0 -0
  8. package/dist/src/client/bitWise.d.ts +7 -0
  9. package/dist/src/client/bitWise.js +62 -0
  10. package/dist/src/client/bitWise.js.map +1 -0
  11. package/dist/src/client/crc32.js.map +1 -0
  12. package/dist/src/client/index.js.map +1 -0
  13. package/dist/src/client/modify/ModifyRes.js.map +1 -0
  14. package/dist/src/client/modify/alias.js.map +1 -0
  15. package/dist/src/client/modify/binary.js.map +1 -0
  16. package/dist/src/client/modify/create.js.map +1 -0
  17. package/dist/src/client/modify/fixed.js.map +1 -0
  18. package/dist/src/client/modify/hll.js.map +1 -0
  19. package/dist/src/client/modify/index.js.map +1 -0
  20. package/dist/src/client/modify/modify.js +5 -1
  21. package/dist/src/client/modify/modify.js.map +1 -0
  22. package/dist/src/client/modify/references/edge.js.map +1 -0
  23. package/dist/src/client/modify/references/reference.js.map +1 -0
  24. package/dist/src/client/modify/references/references.js.map +1 -0
  25. package/dist/src/client/modify/remove.js.map +1 -0
  26. package/dist/src/client/modify/setCursor.js.map +1 -0
  27. package/dist/src/client/modify/string.js.map +1 -0
  28. package/dist/src/client/modify/text.d.ts +4 -2
  29. package/dist/src/client/modify/text.js +1 -2
  30. package/dist/src/client/modify/text.js.map +1 -0
  31. package/dist/src/client/modify/types.js.map +1 -0
  32. package/dist/src/client/modify/update.js.map +1 -0
  33. package/dist/src/client/modify/upsert.js.map +1 -0
  34. package/dist/src/client/modify/vector.d.ts +4 -0
  35. package/dist/src/client/modify/vector.js +44 -0
  36. package/dist/src/client/modify/vector.js.map +1 -0
  37. package/dist/src/client/operations.js.map +1 -0
  38. package/dist/src/client/query/BasedDbQuery.d.ts +3 -1
  39. package/dist/src/client/query/BasedDbQuery.js +9 -7
  40. package/dist/src/client/query/BasedDbQuery.js.map +1 -0
  41. package/dist/src/client/query/BasedIterable.d.ts +2 -2
  42. package/dist/src/client/query/BasedIterable.js +10 -5
  43. package/dist/src/client/query/BasedIterable.js.map +1 -0
  44. package/dist/src/client/query/debug.js +4 -3
  45. package/dist/src/client/query/debug.js.map +1 -0
  46. package/dist/src/client/query/display.js +19 -4
  47. package/dist/src/client/query/display.js.map +1 -0
  48. package/dist/src/client/query/filter/FilterBranch.js.map +1 -0
  49. package/dist/src/client/query/filter/createFixedFilterBuffer.js.map +1 -0
  50. package/dist/src/client/query/filter/createReferenceFilter.js.map +1 -0
  51. package/dist/src/client/query/filter/createVariableFilterBuffer.d.ts +2 -1
  52. package/dist/src/client/query/filter/createVariableFilterBuffer.js +16 -7
  53. package/dist/src/client/query/filter/createVariableFilterBuffer.js.map +1 -0
  54. package/dist/src/client/query/filter/filter.js +17 -4
  55. package/dist/src/client/query/filter/filter.js.map +1 -0
  56. package/dist/src/client/query/filter/operators.js.map +1 -0
  57. package/dist/src/client/query/filter/parseFilterValue.js.map +1 -0
  58. package/dist/src/client/query/filter/primitiveFilter.d.ts +2 -1
  59. package/dist/src/client/query/filter/primitiveFilter.js +2 -2
  60. package/dist/src/client/query/filter/primitiveFilter.js.map +1 -0
  61. package/dist/src/client/query/filter/toBuffer.js.map +1 -0
  62. package/dist/src/client/query/filter/types.js.map +1 -0
  63. package/dist/src/client/query/include/props.js.map +1 -0
  64. package/dist/src/client/query/include/toBuffer.js.map +1 -0
  65. package/dist/src/client/query/include/utils.js +1 -0
  66. package/dist/src/client/query/include/utils.js.map +1 -0
  67. package/dist/src/client/query/include/walk.js +1 -0
  68. package/dist/src/client/query/include/walk.js.map +1 -0
  69. package/dist/src/client/query/query.js.map +1 -0
  70. package/dist/src/client/query/queryDef.js +2 -0
  71. package/dist/src/client/query/queryDef.js.map +1 -0
  72. package/dist/src/client/query/read/read.d.ts +2 -2
  73. package/dist/src/client/query/read/read.js +64 -38
  74. package/dist/src/client/query/read/read.js.map +1 -0
  75. package/dist/src/client/query/registerQuery.js.map +1 -0
  76. package/dist/src/client/query/search/index.js.map +1 -0
  77. package/dist/src/client/query/sort.js.map +1 -0
  78. package/dist/src/client/query/subscription/index.js +3 -3
  79. package/dist/src/client/query/subscription/index.js.map +1 -0
  80. package/dist/src/client/query/subscription/markers.js.map +1 -0
  81. package/dist/src/client/query/subscription/run.d.ts +1 -1
  82. package/dist/src/client/query/subscription/run.js +12 -2
  83. package/dist/src/client/query/subscription/run.js.map +1 -0
  84. package/dist/src/client/query/subscription/types.js.map +1 -0
  85. package/dist/src/client/query/thresholds.js.map +1 -0
  86. package/dist/src/client/query/toBuffer.js +3 -0
  87. package/dist/src/client/query/toBuffer.js.map +1 -0
  88. package/dist/src/client/query/types.d.ts +2 -0
  89. package/dist/src/client/query/types.js.map +1 -0
  90. package/dist/src/client/query/validation.js.map +1 -0
  91. package/dist/src/client/string.d.ts +3 -2
  92. package/dist/src/client/string.js +13 -7
  93. package/dist/src/client/string.js.map +1 -0
  94. package/dist/src/client/tree.js.map +1 -0
  95. package/dist/src/index.js.map +1 -0
  96. package/dist/src/native.d.ts +1 -1
  97. package/dist/src/native.js +2 -1
  98. package/dist/src/native.js.map +1 -0
  99. package/dist/src/server/csmt/draw-dot.js.map +1 -0
  100. package/dist/src/server/csmt/index.js.map +1 -0
  101. package/dist/src/server/csmt/match.js.map +1 -0
  102. package/dist/src/server/csmt/memebership-proof.js.map +1 -0
  103. package/dist/src/server/csmt/tree-utils.js.map +1 -0
  104. package/dist/src/server/csmt/tree.js.map +1 -0
  105. package/dist/src/server/csmt/types.js.map +1 -0
  106. package/dist/src/server/index.d.ts +1 -1
  107. package/dist/src/server/index.js +2 -1
  108. package/dist/src/server/index.js.map +1 -0
  109. package/dist/src/server/migrate/index.js.map +1 -0
  110. package/dist/src/server/migrate/worker.js.map +1 -0
  111. package/dist/src/server/save.js.map +1 -0
  112. package/dist/src/server/schema/schema.js.map +1 -0
  113. package/dist/src/server/schema/selvaBuffer.js +4 -3
  114. package/dist/src/server/schema/selvaBuffer.js.map +1 -0
  115. package/dist/src/server/schema/typeDef.js +4 -1
  116. package/dist/src/server/schema/typeDef.js.map +1 -0
  117. package/dist/src/server/schema/types.d.ts +3 -0
  118. package/dist/src/server/schema/types.js +5 -0
  119. package/dist/src/server/schema/types.js.map +1 -0
  120. package/dist/src/server/schema/utils.js.map +1 -0
  121. package/dist/src/server/start.js.map +1 -0
  122. package/dist/src/server/tree.js.map +1 -0
  123. package/dist/src/server/worker.js +1 -1
  124. package/dist/src/server/worker.js.map +1 -0
  125. package/dist/test/alias.d.ts +1 -0
  126. package/dist/test/alias.js +232 -0
  127. package/dist/test/alias.js.map +1 -0
  128. package/dist/test/binary.d.ts +1 -0
  129. package/dist/test/binary.js +45 -0
  130. package/dist/test/binary.js.map +1 -0
  131. package/dist/test/boolean.d.ts +1 -0
  132. package/dist/test/boolean.js +43 -0
  133. package/dist/test/boolean.js.map +1 -0
  134. package/dist/test/clientServer.d.ts +1 -0
  135. package/dist/test/clientServer.js +64 -0
  136. package/dist/test/clientServer.js.map +1 -0
  137. package/dist/test/concurrency.d.ts +1 -0
  138. package/dist/test/concurrency.js +61 -0
  139. package/dist/test/concurrency.js.map +1 -0
  140. package/dist/test/csmt.d.ts +1 -0
  141. package/dist/test/csmt.js +365 -0
  142. package/dist/test/csmt.js.map +1 -0
  143. package/dist/test/edges.d.ts +1 -0
  144. package/dist/test/edges.js +295 -0
  145. package/dist/test/edges.js.map +1 -0
  146. package/dist/test/edgesReference.d.ts +1 -0
  147. package/dist/test/edgesReference.js +179 -0
  148. package/dist/test/edgesReference.js.map +1 -0
  149. package/dist/test/edgesReferences.d.ts +1 -0
  150. package/dist/test/edgesReferences.js +472 -0
  151. package/dist/test/edgesReferences.js.map +1 -0
  152. package/dist/test/enum.d.ts +1 -0
  153. package/dist/test/enum.js +44 -0
  154. package/dist/test/enum.js.map +1 -0
  155. package/dist/test/filter.d.ts +1 -0
  156. package/dist/test/filter.js +512 -0
  157. package/dist/test/filter.js.map +1 -0
  158. package/dist/test/filterString.d.ts +1 -0
  159. package/dist/test/filterString.js +482 -0
  160. package/dist/test/filterString.js.map +1 -0
  161. package/dist/test/flush.d.ts +1 -0
  162. package/dist/test/flush.js +44 -0
  163. package/dist/test/flush.js.map +1 -0
  164. package/dist/test/hll.d.ts +1 -0
  165. package/dist/test/hll.js +32 -0
  166. package/dist/test/hll.js.map +1 -0
  167. package/dist/test/migration.d.ts +1 -0
  168. package/dist/test/migration.js +112 -0
  169. package/dist/test/migration.js.map +1 -0
  170. package/dist/test/number.d.ts +1 -0
  171. package/dist/test/number.js +172 -0
  172. package/dist/test/number.js.map +1 -0
  173. package/dist/test/range.d.ts +1 -0
  174. package/dist/test/range.js +70 -0
  175. package/dist/test/range.js.map +1 -0
  176. package/dist/test/references.d.ts +1 -0
  177. package/dist/test/references.js +350 -0
  178. package/dist/test/references.js.map +1 -0
  179. package/dist/test/referencesIndex.d.ts +1 -0
  180. package/dist/test/referencesIndex.js +151 -0
  181. package/dist/test/referencesIndex.js.map +1 -0
  182. package/dist/test/referencesModify.d.ts +1 -0
  183. package/dist/test/referencesModify.js +79 -0
  184. package/dist/test/referencesModify.js.map +1 -0
  185. package/dist/test/remove.d.ts +1 -0
  186. package/dist/test/remove.js +61 -0
  187. package/dist/test/remove.js.map +1 -0
  188. package/dist/test/rootProps.d.ts +1 -0
  189. package/dist/test/rootProps.js +53 -0
  190. package/dist/test/rootProps.js.map +1 -0
  191. package/dist/test/save.d.ts +1 -0
  192. package/dist/test/save.js +43 -0
  193. package/dist/test/save.js.map +1 -0
  194. package/dist/test/saveRange.d.ts +1 -0
  195. package/dist/test/saveRange.js +230 -0
  196. package/dist/test/saveRange.js.map +1 -0
  197. package/dist/test/search.d.ts +1 -0
  198. package/dist/test/search.js +322 -0
  199. package/dist/test/search.js.map +1 -0
  200. package/dist/test/shared/assert.d.ts +5 -0
  201. package/dist/test/shared/assert.js +75 -0
  202. package/dist/test/shared/assert.js.map +1 -0
  203. package/dist/test/shared/examples.d.ts +6 -0
  204. package/dist/test/shared/examples.js +1323 -0
  205. package/dist/test/shared/examples.js.map +1 -0
  206. package/dist/test/shared/playground.d.ts +1 -0
  207. package/dist/test/shared/playground.js +250 -0
  208. package/dist/test/shared/playground.js.map +1 -0
  209. package/dist/test/shared/test.d.ts +11 -0
  210. package/dist/test/shared/test.js +112 -0
  211. package/dist/test/shared/test.js.map +1 -0
  212. package/dist/test/shared/worker.d.ts +1 -0
  213. package/dist/test/shared/worker.js +127 -0
  214. package/dist/test/shared/worker.js.map +1 -0
  215. package/dist/test/simpleQuery.d.ts +1 -0
  216. package/dist/test/simpleQuery.js +43 -0
  217. package/dist/test/simpleQuery.js.map +1 -0
  218. package/dist/test/singleRef.d.ts +1 -0
  219. package/dist/test/singleRef.js +572 -0
  220. package/dist/test/singleRef.js.map +1 -0
  221. package/dist/test/singleRefQuery.d.ts +1 -0
  222. package/dist/test/singleRefQuery.js +136 -0
  223. package/dist/test/singleRefQuery.js.map +1 -0
  224. package/dist/test/sort.d.ts +1 -0
  225. package/dist/test/sort.js +401 -0
  226. package/dist/test/sort.js.map +1 -0
  227. package/dist/test/sortIds.d.ts +1 -0
  228. package/dist/test/sortIds.js +104 -0
  229. package/dist/test/sortIds.js.map +1 -0
  230. package/dist/test/sortNumber.d.ts +1 -0
  231. package/dist/test/sortNumber.js +76 -0
  232. package/dist/test/sortNumber.js.map +1 -0
  233. package/dist/test/sortString.d.ts +1 -0
  234. package/dist/test/sortString.js +118 -0
  235. package/dist/test/sortString.js.map +1 -0
  236. package/dist/test/string.d.ts +1 -0
  237. package/dist/test/string.js +310 -0
  238. package/dist/test/string.js.map +1 -0
  239. package/dist/test/subscription.d.ts +1 -0
  240. package/dist/test/subscription.js +336 -0
  241. package/dist/test/subscription.js.map +1 -0
  242. package/dist/test/text.d.ts +1 -0
  243. package/dist/test/text.js +87 -0
  244. package/dist/test/text.js.map +1 -0
  245. package/dist/test/timestamp.d.ts +1 -0
  246. package/dist/test/timestamp.js +50 -0
  247. package/dist/test/timestamp.js.map +1 -0
  248. package/dist/test/update.d.ts +1 -0
  249. package/dist/test/update.js +223 -0
  250. package/dist/test/update.js.map +1 -0
  251. package/dist/test/validation.d.ts +1 -0
  252. package/dist/test/validation.js +90 -0
  253. package/dist/test/validation.js.map +1 -0
  254. package/dist/test/vector.d.ts +1 -0
  255. package/dist/test/vector.js +47 -0
  256. package/dist/test/vector.js.map +1 -0
  257. package/package.json +4 -4
  258. package/dist/lib/darwin_aarch64/libnode-v20.18.1.node +0 -0
  259. package/dist/lib/darwin_aarch64/libnode-v22.13.0.node +0 -0
  260. package/dist/lib/darwin_aarch64/libnode-v22.8.0.node +0 -0
  261. package/dist/lib/linux_aarch64/include/cdefs.h +0 -317
  262. package/dist/lib/linux_aarch64/include/libdeflate.h +0 -322
  263. package/dist/lib/linux_aarch64/include/libdeflate_strings.h +0 -35
  264. package/dist/lib/linux_aarch64/include/linker_set.h +0 -109
  265. package/dist/lib/linux_aarch64/include/queue.h +0 -627
  266. package/dist/lib/linux_aarch64/include/selva/_export.h +0 -7
  267. package/dist/lib/linux_aarch64/include/selva/align.h +0 -9
  268. package/dist/lib/linux_aarch64/include/selva/backoff_timeout.h +0 -29
  269. package/dist/lib/linux_aarch64/include/selva/base64.h +0 -59
  270. package/dist/lib/linux_aarch64/include/selva/base64url.h +0 -59
  271. package/dist/lib/linux_aarch64/include/selva/bitmap.h +0 -95
  272. package/dist/lib/linux_aarch64/include/selva/crc32c.h +0 -17
  273. package/dist/lib/linux_aarch64/include/selva/ctime.h +0 -135
  274. package/dist/lib/linux_aarch64/include/selva/db.h +0 -284
  275. package/dist/lib/linux_aarch64/include/selva/endian.h +0 -301
  276. package/dist/lib/linux_aarch64/include/selva/fast_linear_search.h +0 -23
  277. package/dist/lib/linux_aarch64/include/selva/fast_memmem.h +0 -11
  278. package/dist/lib/linux_aarch64/include/selva/fast_parsei.h +0 -36
  279. package/dist/lib/linux_aarch64/include/selva/fields.h +0 -338
  280. package/dist/lib/linux_aarch64/include/selva/find.h +0 -47
  281. package/dist/lib/linux_aarch64/include/selva/lpf.h +0 -28
  282. package/dist/lib/linux_aarch64/include/selva/node_id_set.h +0 -43
  283. package/dist/lib/linux_aarch64/include/selva/poptop.h +0 -114
  284. package/dist/lib/linux_aarch64/include/selva/queue_r.h +0 -190
  285. package/dist/lib/linux_aarch64/include/selva/selva_hash128.h +0 -39
  286. package/dist/lib/linux_aarch64/include/selva/selva_lang.h +0 -105
  287. package/dist/lib/linux_aarch64/include/selva/selva_math.h +0 -37
  288. package/dist/lib/linux_aarch64/include/selva/selva_string.h +0 -672
  289. package/dist/lib/linux_aarch64/include/selva/sort.h +0 -119
  290. package/dist/lib/linux_aarch64/include/selva/strsearch.h +0 -43
  291. package/dist/lib/linux_aarch64/include/selva/timestamp.h +0 -25
  292. package/dist/lib/linux_aarch64/include/selva/traverse.h +0 -65
  293. package/dist/lib/linux_aarch64/include/selva/types.h +0 -110
  294. package/dist/lib/linux_aarch64/include/selva/vector.h +0 -14
  295. package/dist/lib/linux_aarch64/include/selva/worker_ctx.h +0 -13
  296. package/dist/lib/linux_aarch64/include/selva_error.h +0 -137
  297. package/dist/lib/linux_aarch64/include/selva_lang_code.h +0 -157
  298. package/dist/lib/linux_aarch64/include/tree.h +0 -852
  299. package/dist/lib/linux_aarch64/libdeflate.so +0 -0
  300. package/dist/lib/linux_aarch64/libjemalloc_selva.so.2 +0 -0
  301. package/dist/lib/linux_aarch64/libnode-v20.11.1.node +0 -0
  302. package/dist/lib/linux_aarch64/libnode-v20.18.1.node +0 -0
  303. package/dist/lib/linux_aarch64/libnode-v22.13.0.node +0 -0
  304. package/dist/lib/linux_aarch64/libselva.so +0 -0
  305. package/dist/lib/linux_aarch64/libxxhash.so +0 -0
  306. package/dist/lib/linux_aarch64/libxxhash.so.0 +0 -0
  307. package/dist/lib/linux_aarch64/libxxhash.so.0.8.2 +0 -0
  308. package/dist/lib/linux_x86_64/include/cdefs.h +0 -317
  309. package/dist/lib/linux_x86_64/include/libdeflate.h +0 -322
  310. package/dist/lib/linux_x86_64/include/libdeflate_strings.h +0 -35
  311. package/dist/lib/linux_x86_64/include/linker_set.h +0 -109
  312. package/dist/lib/linux_x86_64/include/queue.h +0 -627
  313. package/dist/lib/linux_x86_64/include/selva/_export.h +0 -7
  314. package/dist/lib/linux_x86_64/include/selva/align.h +0 -9
  315. package/dist/lib/linux_x86_64/include/selva/backoff_timeout.h +0 -29
  316. package/dist/lib/linux_x86_64/include/selva/base64.h +0 -59
  317. package/dist/lib/linux_x86_64/include/selva/base64url.h +0 -59
  318. package/dist/lib/linux_x86_64/include/selva/bitmap.h +0 -95
  319. package/dist/lib/linux_x86_64/include/selva/crc32c.h +0 -17
  320. package/dist/lib/linux_x86_64/include/selva/ctime.h +0 -135
  321. package/dist/lib/linux_x86_64/include/selva/db.h +0 -284
  322. package/dist/lib/linux_x86_64/include/selva/endian.h +0 -301
  323. package/dist/lib/linux_x86_64/include/selva/fast_linear_search.h +0 -23
  324. package/dist/lib/linux_x86_64/include/selva/fast_memmem.h +0 -11
  325. package/dist/lib/linux_x86_64/include/selva/fast_parsei.h +0 -36
  326. package/dist/lib/linux_x86_64/include/selva/fields.h +0 -338
  327. package/dist/lib/linux_x86_64/include/selva/find.h +0 -47
  328. package/dist/lib/linux_x86_64/include/selva/lpf.h +0 -28
  329. package/dist/lib/linux_x86_64/include/selva/node_id_set.h +0 -43
  330. package/dist/lib/linux_x86_64/include/selva/poptop.h +0 -114
  331. package/dist/lib/linux_x86_64/include/selva/queue_r.h +0 -190
  332. package/dist/lib/linux_x86_64/include/selva/selva_hash128.h +0 -39
  333. package/dist/lib/linux_x86_64/include/selva/selva_lang.h +0 -105
  334. package/dist/lib/linux_x86_64/include/selva/selva_math.h +0 -37
  335. package/dist/lib/linux_x86_64/include/selva/selva_string.h +0 -672
  336. package/dist/lib/linux_x86_64/include/selva/sort.h +0 -119
  337. package/dist/lib/linux_x86_64/include/selva/strsearch.h +0 -43
  338. package/dist/lib/linux_x86_64/include/selva/timestamp.h +0 -25
  339. package/dist/lib/linux_x86_64/include/selva/traverse.h +0 -65
  340. package/dist/lib/linux_x86_64/include/selva/types.h +0 -110
  341. package/dist/lib/linux_x86_64/include/selva/vector.h +0 -14
  342. package/dist/lib/linux_x86_64/include/selva/worker_ctx.h +0 -13
  343. package/dist/lib/linux_x86_64/include/selva_error.h +0 -137
  344. package/dist/lib/linux_x86_64/include/selva_lang_code.h +0 -157
  345. package/dist/lib/linux_x86_64/include/tree.h +0 -852
  346. package/dist/lib/linux_x86_64/libdeflate.so +0 -0
  347. package/dist/lib/linux_x86_64/libjemalloc_selva.so.2 +0 -0
  348. package/dist/lib/linux_x86_64/libnode-v20.11.1.node +0 -0
  349. package/dist/lib/linux_x86_64/libnode-v20.18.1.node +0 -0
  350. package/dist/lib/linux_x86_64/libnode-v22.13.0.node +0 -0
  351. package/dist/lib/linux_x86_64/libselva.so +0 -0
  352. package/dist/lib/linux_x86_64/libxxhash.so +0 -0
  353. package/dist/lib/linux_x86_64/libxxhash.so.0 +0 -0
  354. package/dist/lib/linux_x86_64/libxxhash.so.0.8.2 +0 -0
@@ -0,0 +1,512 @@
1
+ import { BasedDb } from '../src/index.js';
2
+ import test from './shared/test.js';
3
+ import { equal, deepEqual } from './shared/assert.js';
4
+ await test('simple', async (t) => {
5
+ const db = new BasedDb({
6
+ path: t.tmp,
7
+ });
8
+ await db.start({ clean: true });
9
+ t.after(() => {
10
+ return db.destroy();
11
+ });
12
+ const status = ['error', 'danger', 'ok', '🦄'];
13
+ await db.putSchema({
14
+ types: {
15
+ org: {
16
+ props: {
17
+ name: 'string',
18
+ type: ['public', 'private', 'person'],
19
+ envs: {
20
+ items: {
21
+ ref: 'env',
22
+ prop: 'org',
23
+ },
24
+ },
25
+ },
26
+ },
27
+ env: {
28
+ props: {
29
+ standby: 'boolean',
30
+ status: 'uint8',
31
+ name: 'string',
32
+ org: {
33
+ ref: 'org',
34
+ prop: 'envs',
35
+ },
36
+ machines: {
37
+ items: {
38
+ ref: 'machine',
39
+ prop: 'env',
40
+ },
41
+ },
42
+ },
43
+ },
44
+ machine: {
45
+ props: {
46
+ derp: 'int32',
47
+ lastPing: 'number',
48
+ temperature: 'number',
49
+ requestsServed: 'uint32',
50
+ env: {
51
+ ref: 'env',
52
+ prop: 'machines',
53
+ $rating: 'number',
54
+ },
55
+ isLive: 'boolean',
56
+ status,
57
+ scheduled: 'timestamp',
58
+ },
59
+ },
60
+ },
61
+ });
62
+ const org = await db.create('org', {
63
+ name: 'My small org',
64
+ type: 'person',
65
+ });
66
+ const env = await db.create('env', {
67
+ name: 'My small org env',
68
+ org,
69
+ });
70
+ const emptyEnv = await db.create('env', {
71
+ name: 'Mydev env',
72
+ org,
73
+ });
74
+ const now = Date.now();
75
+ let lastId = 0;
76
+ const m = [];
77
+ for (let i = 0; i < 1e5; i++) {
78
+ lastId = db.create('machine', {
79
+ env,
80
+ status: status[Math.floor(Math.random() * (status.length - 1))],
81
+ requestsServed: i,
82
+ lastPing: i + 1,
83
+ derp: -i,
84
+ temperature: Math.random() * 40 - Math.random() * 40,
85
+ isLive: !!(i % 2),
86
+ scheduled: now + (i % 3 ? -i * 6e5 : i * 6e5),
87
+ }).tmpId;
88
+ if (i % 2) {
89
+ m.push(lastId);
90
+ }
91
+ }
92
+ db.update('env', env, {
93
+ machines: m,
94
+ });
95
+ console.log(await db.drain(), 'ms');
96
+ console.log('MAKE 100k', Date.now() - now);
97
+ const x = [300, 400, 10, 20, 1, 2, 99, 9999, 888, 6152];
98
+ equal((await db.query('machine').filter('lastPing', '=', x).get()).length, x.length, 'OR number');
99
+ const make = () => {
100
+ const x = ~~(Math.random() * lastId);
101
+ if (x % 2 == 0) {
102
+ return make();
103
+ }
104
+ return x;
105
+ };
106
+ const amount = 1000;
107
+ var measure = 0;
108
+ var mi = 0;
109
+ const res = await Promise.all(Array.from({ length: amount }).map(() => {
110
+ const rand = ~~(Math.random() * lastId);
111
+ const derp = [make(), make(), make(), rand];
112
+ return db.query('env').include('*').filter('machines', 'has', derp).get();
113
+ }));
114
+ for (const envs of res) {
115
+ mi += envs.toObject().length;
116
+ measure += envs.execTime;
117
+ }
118
+ equal(mi / amount > 0.4 && mi / amount < 0.6, true, 'multi ref OR filter up at 0.5 results');
119
+ // console.log('what??', measure, amount, measure / amount)
120
+ equal(measure / amount < 20, true, 'multi ref OR filter lower then 20ms');
121
+ measure = 0;
122
+ mi = 0;
123
+ await Promise.all(Array.from({ length: amount }).map(async () => {
124
+ const rand = ~~(Math.random() * lastId);
125
+ const envs = await db
126
+ .query('env')
127
+ .include('*')
128
+ .filter('machines', 'has', rand)
129
+ .get();
130
+ mi += envs.toObject().length;
131
+ measure += envs.execTime;
132
+ }));
133
+ equal(mi / amount > 0.4 && mi / amount < 0.6, true, 'multi ref filter up at 0.5 results');
134
+ equal(measure / amount < 10, true, 'multi ref filter lower then 10ms');
135
+ equal((await db
136
+ .query('machine')
137
+ .include('*')
138
+ .filter('scheduled', '>', 'now + 694d + 10h')
139
+ .get()).toObject().length, 1);
140
+ equal((await db
141
+ .query('machine')
142
+ .include('*')
143
+ .filter('scheduled', '<', 'now-694d-10h-15m') // Date,
144
+ .get()).toObject().length, 1);
145
+ equal((await db
146
+ .query('machine')
147
+ .include('*')
148
+ .filter('scheduled', '<', '10/24/2000') // Date,
149
+ .get()).toObject().length, 0, 'parse date string');
150
+ equal((await db
151
+ .query('machine')
152
+ .include('*')
153
+ .filter('requestsServed', '<', 1)
154
+ .get()).toObject().length, 1);
155
+ equal((await db
156
+ .query('machine')
157
+ .include('*')
158
+ .filter('requestsServed', '<=', 1)
159
+ .get()).toObject().length, 2);
160
+ equal((await db
161
+ .query('machine')
162
+ .include('*')
163
+ .filter('derp', '<=', 0)
164
+ .filter('derp', '>', -5)
165
+ .get()).toObject().length, 5, 'Negative range');
166
+ equal((await db
167
+ .query('machine')
168
+ .include('*')
169
+ .filter('temperature', '<=', 0)
170
+ .filter('temperature', '>', -0.1)
171
+ .get()).toObject().length < 500, true, 'Negative temperature (result amount)');
172
+ equal((await db
173
+ .query('machine')
174
+ .include('*')
175
+ .filter('temperature', '<=', 0)
176
+ .filter('temperature', '>', -0.1)
177
+ .get()).toObject()[0].temperature < 0, true, 'Negative temperature (check value)');
178
+ equal((await db
179
+ .query('machine')
180
+ .include('id')
181
+ .filter('env', '=', env)
182
+ .range(0, 10)
183
+ .get()).toObject(), [
184
+ { id: 2 },
185
+ { id: 4 },
186
+ { id: 6 },
187
+ { id: 8 },
188
+ { id: 10 },
189
+ { id: 12 },
190
+ { id: 14 },
191
+ { id: 16 },
192
+ { id: 18 },
193
+ { id: 20 },
194
+ ], 'Filter by reference');
195
+ equal((await db
196
+ .query('machine')
197
+ .include('id')
198
+ .filter('lastPing', '>=', 1e5 - 1) // order optmization automaticly
199
+ .filter('env', '=', [emptyEnv, env])
200
+ .range(0, 10)
201
+ .get()).toObject(), [{ id: 100000 }], 'Filter by reference (multiple)');
202
+ const derpEnv = await db.create('env', {
203
+ name: 'derp env',
204
+ status: 5,
205
+ });
206
+ const ids = await Promise.all([
207
+ db.create('machine', {
208
+ temperature: 20,
209
+ // env: derpEnv,
210
+ env: { id: derpEnv, $rating: 0.5 },
211
+ lastPing: 1,
212
+ }),
213
+ db.create('machine', {
214
+ temperature: 2,
215
+ // env: derpEnv,
216
+ env: { id: derpEnv, $rating: 0.75 },
217
+ lastPing: 2,
218
+ }),
219
+ db.create('machine', {
220
+ temperature: 3,
221
+ // env: derpEnv,
222
+ env: { id: derpEnv, $rating: 1 },
223
+ lastPing: 3,
224
+ }),
225
+ ]);
226
+ deepEqual((await db.query('env').filter('machines', '<', 10).get()).toObject(), [
227
+ {
228
+ id: 3,
229
+ name: 'derp env',
230
+ status: 5,
231
+ standby: false,
232
+ },
233
+ ], 'Filter by references length');
234
+ deepEqual((await db.query('env').filter('machines', '=', ids).get()).toObject(), [
235
+ {
236
+ id: 3,
237
+ name: 'derp env',
238
+ status: 5,
239
+ standby: false,
240
+ },
241
+ ], 'Filter by references equals');
242
+ deepEqual((await db
243
+ .query('machine')
244
+ .include('env', '*')
245
+ .filter('env.status', '=', 5)
246
+ .get()).toObject(), [
247
+ {
248
+ id: 100001,
249
+ derp: 0,
250
+ lastPing: 1,
251
+ temperature: 20,
252
+ requestsServed: 0,
253
+ isLive: false,
254
+ status: undefined,
255
+ scheduled: 0,
256
+ env: { id: 3, status: 5, name: 'derp env', standby: false },
257
+ },
258
+ {
259
+ id: 100002,
260
+ derp: 0,
261
+ lastPing: 2,
262
+ temperature: 2,
263
+ requestsServed: 0,
264
+ isLive: false,
265
+ status: undefined,
266
+ scheduled: 0,
267
+ env: { id: 3, status: 5, name: 'derp env', standby: false },
268
+ },
269
+ {
270
+ id: 100003,
271
+ derp: 0,
272
+ lastPing: 3,
273
+ temperature: 3,
274
+ requestsServed: 0,
275
+ isLive: false,
276
+ status: undefined,
277
+ scheduled: 0,
278
+ env: { id: 3, status: 5, name: 'derp env', standby: false },
279
+ },
280
+ ]);
281
+ const unicornMachine = await db.create('machine', {
282
+ status: '🦄',
283
+ });
284
+ deepEqual((await db
285
+ .query('machine')
286
+ .filter('status', '=', '🦄')
287
+ .include('status')
288
+ .get()).toObject(), [
289
+ {
290
+ id: unicornMachine,
291
+ status: '🦄',
292
+ },
293
+ ]);
294
+ deepEqual((await db.query('env').filter('standby').get()).toObject(), []);
295
+ await db.update('env', derpEnv, {
296
+ standby: true,
297
+ });
298
+ deepEqual((await db.query('env').filter('standby').get()).toObject(), [
299
+ { id: 3, standby: true, status: 5, name: 'derp env' },
300
+ ]);
301
+ let rangeResult = await db
302
+ .query('machine')
303
+ .include('temperature')
304
+ .filter('temperature', '..', [-0.1, 0])
305
+ .get();
306
+ equal(rangeResult.length < 900, true, 'range less');
307
+ equal(rangeResult.node().temperature < 0 && rangeResult.node().temperature > -0.1, true, 'range');
308
+ rangeResult = await db
309
+ .query('machine')
310
+ .include('*')
311
+ .range(0, 10)
312
+ // .filter('temperature', '!..', [-0.1, 0])
313
+ .filter('temperature', '>', 0)
314
+ .or('temperature', '<', -0.1)
315
+ .get();
316
+ let hasLarge = false;
317
+ let hasSmall = false;
318
+ for (const item of rangeResult) {
319
+ if (item.temperature < -0.1) {
320
+ hasSmall = true;
321
+ }
322
+ if (item.temperature > 0) {
323
+ hasLarge = true;
324
+ }
325
+ if (item.temperature > -0.1 && item.temperature < 0) {
326
+ throw new Error('Incorrect exclusive range (temp > -0.1 && temp < 0)');
327
+ }
328
+ }
329
+ if (!hasSmall || !hasLarge) {
330
+ throw new Error(`Incorrect exclusive range large: ${hasLarge} small: ${hasSmall}`);
331
+ }
332
+ });
333
+ await test('or', async (t) => {
334
+ const db = new BasedDb({
335
+ path: t.tmp,
336
+ });
337
+ await db.start({ clean: true });
338
+ t.after(() => {
339
+ return db.destroy();
340
+ });
341
+ const status = ['error', 'danger', 'ok', '🦄'];
342
+ await db.putSchema({
343
+ types: {
344
+ machine: {
345
+ props: {
346
+ derp: 'int32',
347
+ lastPing: 'number',
348
+ temperature: 'number',
349
+ requestsServed: 'uint32',
350
+ isLive: 'boolean',
351
+ status,
352
+ scheduled: 'timestamp',
353
+ },
354
+ },
355
+ },
356
+ });
357
+ const now = Date.now();
358
+ for (let i = 0; i < 1e6; i++) {
359
+ db.create('machine', {
360
+ status: status[Math.floor(Math.random() * (status.length - 1))],
361
+ requestsServed: i,
362
+ lastPing: i + 1,
363
+ derp: -i,
364
+ temperature: Math.random() * 40 - Math.random() * 40,
365
+ isLive: !!(i % 2),
366
+ scheduled: now + (i % 3 ? -i * 6e5 : i * 6e5),
367
+ }).tmpId;
368
+ }
369
+ await db.drain();
370
+ deepEqual((await db
371
+ .query('machine')
372
+ .include('id', 'lastPing')
373
+ .filter('scheduled', '>', '01/01/2100')
374
+ .or('lastPing', '>', 1e6 - 2)
375
+ .get()).toObject(), [
376
+ {
377
+ id: 999999,
378
+ lastPing: 999999,
379
+ },
380
+ {
381
+ id: 1000000,
382
+ lastPing: 1000000,
383
+ },
384
+ ]);
385
+ deepEqual((await db
386
+ .query('machine')
387
+ .include('id', 'lastPing')
388
+ .filter('scheduled', '>', '01/01/2100')
389
+ .or((f) => {
390
+ f.filter('lastPing', '>', 1e6 - 2);
391
+ })
392
+ .get()).toObject(), (await db
393
+ .query('machine')
394
+ .include('id', 'lastPing')
395
+ .filter('scheduled', '>', '01/01/2100')
396
+ .or('lastPing', '>', 1e6 - 2)
397
+ .get()).toObject());
398
+ equal((await db
399
+ .query('machine')
400
+ .include('id', 'lastPing')
401
+ .filter('scheduled', '>', '01/01/2100')
402
+ .or((f) => {
403
+ f.filter('lastPing', '>', 1e6 - 2);
404
+ f.or('temperature', '<', -30);
405
+ })
406
+ .get()).toObject().length > 10, true, 'Branch or');
407
+ deepEqual((await db
408
+ .query('machine')
409
+ .include('id', 'lastPing')
410
+ .filter('scheduled', '>', '01/01/2100')
411
+ .or((f) => {
412
+ f.filter('lastPing', '>', 1e6 - 2);
413
+ f.or((f) => {
414
+ f.filter('temperature', '<', -30);
415
+ });
416
+ })
417
+ .get()).toObject(), (await db
418
+ .query('machine')
419
+ .include('id', 'lastPing')
420
+ .filter('scheduled', '>', '01/01/2100')
421
+ .or((f) => {
422
+ f.filter('lastPing', '>', 1e6 - 2);
423
+ f.or('temperature', '<', -30);
424
+ })
425
+ .get()).toObject());
426
+ const r = (await db
427
+ .query('machine')
428
+ .include('temperature')
429
+ .range(0, 15)
430
+ .filter('temperature', '>', 0)
431
+ .or('temperature', '<', -0.1)
432
+ .get()).toObject();
433
+ equal(r
434
+ .map((v, i) => {
435
+ return v.temperature > 0 ? true : false;
436
+ })
437
+ .reduce((acc, a) => {
438
+ return a ? acc + 1 : acc;
439
+ }, 0) > 0, true, 'Correct spread of temperature');
440
+ });
441
+ await test('or numerical', async (t) => {
442
+ const db = new BasedDb({
443
+ path: t.tmp,
444
+ });
445
+ await db.start({ clean: true });
446
+ t.after(() => {
447
+ return db.destroy();
448
+ });
449
+ await db.putSchema({
450
+ types: {
451
+ machine: {
452
+ props: {
453
+ temperature: 'uint8',
454
+ },
455
+ },
456
+ },
457
+ });
458
+ console.log('-----------');
459
+ for (let i = 0; i < 1e6; i++) {
460
+ db.create('machine', {
461
+ temperature: ~~(Math.random() * 200) + 1,
462
+ });
463
+ }
464
+ console.log('----- end ------');
465
+ await db.drain();
466
+ const r = (await db
467
+ .query('machine')
468
+ .include('temperature')
469
+ .range(0, 1000)
470
+ .filter('temperature', '>', 150)
471
+ .or('temperature', '<', 50)
472
+ .get()).toObject();
473
+ equal(r
474
+ .map((v, i) => {
475
+ return v.temperature < 50;
476
+ })
477
+ .reduce((acc, a) => {
478
+ return a ? acc + 1 : acc;
479
+ }, 0) > 0, true);
480
+ equal(r
481
+ .map((v, i) => {
482
+ return v.temperature > 150;
483
+ })
484
+ .reduce((acc, a) => {
485
+ return a ? acc + 1 : acc;
486
+ }, 0) > 0, true);
487
+ equal((await db
488
+ .query('machine')
489
+ .include('id', 'temperature')
490
+ .filter('temperature', '>', 201)
491
+ .or((f) => {
492
+ f.filter('temperature', '>', 202);
493
+ f.or('temperature', '<', 10);
494
+ })
495
+ .get()).toObject().length > 10, true, 'Branch or');
496
+ for (let i = 0; i < 10000; i++) {
497
+ if (i % 2) {
498
+ db.remove('machine', 10000 + i);
499
+ }
500
+ }
501
+ await db.drain();
502
+ deepEqual((await db.query('machine').include('id').range(0, 3).get()).node(-1), {
503
+ id: 3,
504
+ });
505
+ deepEqual((await db
506
+ .query('machine')
507
+ .include('temperature')
508
+ .filter('id', '<=', 20000)
509
+ .range(10000, 10000)
510
+ .get()).node(-1).id, 20000);
511
+ });
512
+ //# sourceMappingURL=filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../test/filter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};