@fireproof/core 0.21.0-dev-preview-7 → 0.22.0-dev-preview

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 (444) hide show
  1. package/index.d.ts +2 -16
  2. package/index.js +2 -15
  3. package/index.js.map +1 -1
  4. package/index.ts +2 -0
  5. package/package.json +11 -69
  6. package/tsconfig.json +18 -0
  7. package/README.md +0 -269
  8. package/apply-head-queue.d.ts +0 -18
  9. package/apply-head-queue.d.ts.map +0 -1
  10. package/apply-head-queue.js +0 -47
  11. package/apply-head-queue.js.map +0 -1
  12. package/blockstore/attachable-store.d.ts +0 -19
  13. package/blockstore/attachable-store.d.ts.map +0 -1
  14. package/blockstore/attachable-store.js +0 -316
  15. package/blockstore/attachable-store.js.map +0 -1
  16. package/blockstore/commit-queue.d.ts +0 -17
  17. package/blockstore/commit-queue.d.ts.map +0 -1
  18. package/blockstore/commit-queue.js +0 -60
  19. package/blockstore/commit-queue.js.map +0 -1
  20. package/blockstore/commitor.d.ts +0 -21
  21. package/blockstore/commitor.d.ts.map +0 -1
  22. package/blockstore/commitor.js +0 -95
  23. package/blockstore/commitor.js.map +0 -1
  24. package/blockstore/connect-raw.d.ts +0 -2
  25. package/blockstore/connect-raw.d.ts.map +0 -1
  26. package/blockstore/connect-raw.js +0 -2
  27. package/blockstore/connect-raw.js.map +0 -1
  28. package/blockstore/connection-base.d.ts +0 -2
  29. package/blockstore/connection-base.d.ts.map +0 -1
  30. package/blockstore/connection-base.js +0 -2
  31. package/blockstore/connection-base.js.map +0 -1
  32. package/blockstore/encrypt-helpers.d.ts +0 -2
  33. package/blockstore/encrypt-helpers.d.ts.map +0 -1
  34. package/blockstore/encrypt-helpers.js +0 -2
  35. package/blockstore/encrypt-helpers.js.map +0 -1
  36. package/blockstore/fp-envelope.d.ts +0 -32
  37. package/blockstore/fp-envelope.d.ts.map +0 -1
  38. package/blockstore/fp-envelope.js +0 -14
  39. package/blockstore/fp-envelope.js.map +0 -1
  40. package/blockstore/gateway.d.ts +0 -20
  41. package/blockstore/gateway.d.ts.map +0 -1
  42. package/blockstore/gateway.js +0 -2
  43. package/blockstore/gateway.js.map +0 -1
  44. package/blockstore/index.d.ts +0 -17
  45. package/blockstore/index.d.ts.map +0 -1
  46. package/blockstore/index.js +0 -17
  47. package/blockstore/index.js.map +0 -1
  48. package/blockstore/interceptor-gateway.d.ts +0 -29
  49. package/blockstore/interceptor-gateway.d.ts.map +0 -1
  50. package/blockstore/interceptor-gateway.js +0 -137
  51. package/blockstore/interceptor-gateway.js.map +0 -1
  52. package/blockstore/loader-helpers.d.ts +0 -10
  53. package/blockstore/loader-helpers.d.ts.map +0 -1
  54. package/blockstore/loader-helpers.js +0 -115
  55. package/blockstore/loader-helpers.js.map +0 -1
  56. package/blockstore/loader.d.ts +0 -62
  57. package/blockstore/loader.d.ts.map +0 -1
  58. package/blockstore/loader.js +0 -523
  59. package/blockstore/loader.js.map +0 -1
  60. package/blockstore/register-store-protocol.d.ts +0 -22
  61. package/blockstore/register-store-protocol.d.ts.map +0 -1
  62. package/blockstore/register-store-protocol.js +0 -125
  63. package/blockstore/register-store-protocol.js.map +0 -1
  64. package/blockstore/serde-gateway.d.ts +0 -78
  65. package/blockstore/serde-gateway.d.ts.map +0 -1
  66. package/blockstore/serde-gateway.js +0 -2
  67. package/blockstore/serde-gateway.js.map +0 -1
  68. package/blockstore/store-factory.d.ts +0 -11
  69. package/blockstore/store-factory.d.ts.map +0 -1
  70. package/blockstore/store-factory.js +0 -104
  71. package/blockstore/store-factory.js.map +0 -1
  72. package/blockstore/store-remote.d.ts +0 -2
  73. package/blockstore/store-remote.d.ts.map +0 -1
  74. package/blockstore/store-remote.js +0 -2
  75. package/blockstore/store-remote.js.map +0 -1
  76. package/blockstore/store.d.ts +0 -86
  77. package/blockstore/store.d.ts.map +0 -1
  78. package/blockstore/store.js +0 -437
  79. package/blockstore/store.js.map +0 -1
  80. package/blockstore/task-manager.d.ts +0 -19
  81. package/blockstore/task-manager.d.ts.map +0 -1
  82. package/blockstore/task-manager.js +0 -50
  83. package/blockstore/task-manager.js.map +0 -1
  84. package/blockstore/transaction.d.ts +0 -62
  85. package/blockstore/transaction.d.ts.map +0 -1
  86. package/blockstore/transaction.js +0 -256
  87. package/blockstore/transaction.js.map +0 -1
  88. package/blockstore/types.d.ts +0 -508
  89. package/blockstore/types.d.ts.map +0 -1
  90. package/blockstore/types.js +0 -83
  91. package/blockstore/types.js.map +0 -1
  92. package/blockstore/uri-interceptor.d.ts +0 -19
  93. package/blockstore/uri-interceptor.d.ts.map +0 -1
  94. package/blockstore/uri-interceptor.js +0 -61
  95. package/blockstore/uri-interceptor.js.map +0 -1
  96. package/bundle-not-impl.d.ts +0 -2
  97. package/bundle-not-impl.d.ts.map +0 -1
  98. package/bundle-not-impl.js +0 -4
  99. package/bundle-not-impl.js.map +0 -1
  100. package/cli/main.js +0 -26645
  101. package/crdt-clock.d.ts +0 -26
  102. package/crdt-clock.d.ts.map +0 -1
  103. package/crdt-clock.js +0 -133
  104. package/crdt-clock.js.map +0 -1
  105. package/crdt-helpers.d.ts +0 -19
  106. package/crdt-helpers.d.ts.map +0 -1
  107. package/crdt-helpers.js +0 -332
  108. package/crdt-helpers.js.map +0 -1
  109. package/crdt.d.ts +0 -41
  110. package/crdt.d.ts.map +0 -1
  111. package/crdt.js +0 -164
  112. package/crdt.js.map +0 -1
  113. package/database.d.ts +0 -33
  114. package/database.d.ts.map +0 -1
  115. package/database.js +0 -132
  116. package/database.js.map +0 -1
  117. package/deno.json +0 -20
  118. package/index.d.ts.map +0 -1
  119. package/indexer-helpers.d.ts +0 -68
  120. package/indexer-helpers.d.ts.map +0 -1
  121. package/indexer-helpers.js +0 -157
  122. package/indexer-helpers.js.map +0 -1
  123. package/indexer.d.ts +0 -24
  124. package/indexer.d.ts.map +0 -1
  125. package/indexer.js +0 -239
  126. package/indexer.js.map +0 -1
  127. package/ledger.d.ts +0 -56
  128. package/ledger.d.ts.map +0 -1
  129. package/ledger.js +0 -237
  130. package/ledger.js.map +0 -1
  131. package/protocols/cloud/http-connection.d.ts +0 -26
  132. package/protocols/cloud/http-connection.d.ts.map +0 -1
  133. package/protocols/cloud/http-connection.js +0 -154
  134. package/protocols/cloud/http-connection.js.map +0 -1
  135. package/protocols/cloud/index.d.ts +0 -10
  136. package/protocols/cloud/index.d.ts.map +0 -1
  137. package/protocols/cloud/index.js +0 -10
  138. package/protocols/cloud/index.js.map +0 -1
  139. package/protocols/cloud/msg-raw-connection-base.d.ts +0 -16
  140. package/protocols/cloud/msg-raw-connection-base.d.ts.map +0 -1
  141. package/protocols/cloud/msg-raw-connection-base.js +0 -22
  142. package/protocols/cloud/msg-raw-connection-base.js.map +0 -1
  143. package/protocols/cloud/msg-types-data.d.ts +0 -36
  144. package/protocols/cloud/msg-types-data.d.ts.map +0 -1
  145. package/protocols/cloud/msg-types-data.js +0 -38
  146. package/protocols/cloud/msg-types-data.js.map +0 -1
  147. package/protocols/cloud/msg-types-meta.d.ts +0 -41
  148. package/protocols/cloud/msg-types-meta.d.ts.map +0 -1
  149. package/protocols/cloud/msg-types-meta.js +0 -98
  150. package/protocols/cloud/msg-types-meta.js.map +0 -1
  151. package/protocols/cloud/msg-types-wal.d.ts +0 -33
  152. package/protocols/cloud/msg-types-wal.d.ts.map +0 -1
  153. package/protocols/cloud/msg-types-wal.js +0 -38
  154. package/protocols/cloud/msg-types-wal.js.map +0 -1
  155. package/protocols/cloud/msg-types.d.ts +0 -310
  156. package/protocols/cloud/msg-types.d.ts.map +0 -1
  157. package/protocols/cloud/msg-types.js +0 -299
  158. package/protocols/cloud/msg-types.js.map +0 -1
  159. package/protocols/cloud/msger.d.ts +0 -94
  160. package/protocols/cloud/msger.d.ts.map +0 -1
  161. package/protocols/cloud/msger.js +0 -319
  162. package/protocols/cloud/msger.js.map +0 -1
  163. package/protocols/cloud/ws-connection.d.ts +0 -40
  164. package/protocols/cloud/ws-connection.d.ts.map +0 -1
  165. package/protocols/cloud/ws-connection.js +0 -205
  166. package/protocols/cloud/ws-connection.js.map +0 -1
  167. package/protocols/dashboard/index.d.ts +0 -4
  168. package/protocols/dashboard/index.d.ts.map +0 -1
  169. package/protocols/dashboard/index.js +0 -4
  170. package/protocols/dashboard/index.js.map +0 -1
  171. package/protocols/dashboard/msg-api.d.ts +0 -11
  172. package/protocols/dashboard/msg-api.d.ts.map +0 -1
  173. package/protocols/dashboard/msg-api.js +0 -55
  174. package/protocols/dashboard/msg-api.js.map +0 -1
  175. package/protocols/dashboard/msg-is.d.ts +0 -45
  176. package/protocols/dashboard/msg-is.d.ts.map +0 -1
  177. package/protocols/dashboard/msg-is.js +0 -63
  178. package/protocols/dashboard/msg-is.js.map +0 -1
  179. package/protocols/dashboard/msg-types.d.ts +0 -397
  180. package/protocols/dashboard/msg-types.d.ts.map +0 -1
  181. package/protocols/dashboard/msg-types.js +0 -4
  182. package/protocols/dashboard/msg-types.js.map +0 -1
  183. package/protocols/index.d.ts +0 -3
  184. package/protocols/index.d.ts.map +0 -1
  185. package/protocols/index.js +0 -3
  186. package/protocols/index.js.map +0 -1
  187. package/react/img-file.d.ts +0 -303
  188. package/react/img-file.d.ts.map +0 -1
  189. package/react/img-file.js +0 -92
  190. package/react/img-file.js.map +0 -1
  191. package/react/index.d.ts +0 -5
  192. package/react/index.d.ts.map +0 -1
  193. package/react/index.js +0 -5
  194. package/react/index.js.map +0 -1
  195. package/react/types.d.ts +0 -91
  196. package/react/types.d.ts.map +0 -1
  197. package/react/types.js +0 -2
  198. package/react/types.js.map +0 -1
  199. package/react/use-all-docs.d.ts +0 -4
  200. package/react/use-all-docs.d.ts.map +0 -1
  201. package/react/use-all-docs.js +0 -25
  202. package/react/use-all-docs.js.map +0 -1
  203. package/react/use-attach.d.ts +0 -11
  204. package/react/use-attach.d.ts.map +0 -1
  205. package/react/use-attach.js +0 -169
  206. package/react/use-attach.js.map +0 -1
  207. package/react/use-changes.d.ts +0 -4
  208. package/react/use-changes.d.ts.map +0 -1
  209. package/react/use-changes.js +0 -19
  210. package/react/use-changes.js.map +0 -1
  211. package/react/use-document.d.ts +0 -4
  212. package/react/use-document.d.ts.map +0 -1
  213. package/react/use-document.js +0 -109
  214. package/react/use-document.js.map +0 -1
  215. package/react/use-fireproof.d.ts +0 -6
  216. package/react/use-fireproof.d.ts.map +0 -1
  217. package/react/use-fireproof.js +0 -20
  218. package/react/use-fireproof.js.map +0 -1
  219. package/react/use-live-query.d.ts +0 -4
  220. package/react/use-live-query.d.ts.map +0 -1
  221. package/react/use-live-query.js +0 -24
  222. package/react/use-live-query.js.map +0 -1
  223. package/runtime/files.d.ts +0 -12
  224. package/runtime/files.d.ts.map +0 -1
  225. package/runtime/files.js +0 -29
  226. package/runtime/files.js.map +0 -1
  227. package/runtime/gateways/cloud/gateway.d.ts +0 -41
  228. package/runtime/gateways/cloud/gateway.d.ts.map +0 -1
  229. package/runtime/gateways/cloud/gateway.js +0 -514
  230. package/runtime/gateways/cloud/gateway.js.map +0 -1
  231. package/runtime/gateways/cloud/index.d.ts +0 -3
  232. package/runtime/gateways/cloud/index.d.ts.map +0 -1
  233. package/runtime/gateways/cloud/index.js +0 -3
  234. package/runtime/gateways/cloud/index.js.map +0 -1
  235. package/runtime/gateways/cloud/to-cloud.d.ts +0 -59
  236. package/runtime/gateways/cloud/to-cloud.d.ts.map +0 -1
  237. package/runtime/gateways/cloud/to-cloud.js +0 -175
  238. package/runtime/gateways/cloud/to-cloud.js.map +0 -1
  239. package/runtime/gateways/def-serde-gateway.d.ts +0 -18
  240. package/runtime/gateways/def-serde-gateway.d.ts.map +0 -1
  241. package/runtime/gateways/def-serde-gateway.js +0 -92
  242. package/runtime/gateways/def-serde-gateway.js.map +0 -1
  243. package/runtime/gateways/file/deno/deno-filesystem.d.ts +0 -27
  244. package/runtime/gateways/file/deno/deno-filesystem.d.ts.map +0 -1
  245. package/runtime/gateways/file/deno/deno-filesystem.js +0 -52
  246. package/runtime/gateways/file/deno/deno-filesystem.js.map +0 -1
  247. package/runtime/gateways/file/deno/get-sys-file-system.d.ts +0 -4
  248. package/runtime/gateways/file/deno/get-sys-file-system.d.ts.map +0 -1
  249. package/runtime/gateways/file/deno/get-sys-file-system.js +0 -11
  250. package/runtime/gateways/file/deno/get-sys-file-system.js.map +0 -1
  251. package/runtime/gateways/file/deno/index.d.ts +0 -2
  252. package/runtime/gateways/file/deno/index.d.ts.map +0 -1
  253. package/runtime/gateways/file/deno/index.js +0 -2
  254. package/runtime/gateways/file/deno/index.js.map +0 -1
  255. package/runtime/gateways/file/gateway-impl.d.ts +0 -18
  256. package/runtime/gateways/file/gateway-impl.d.ts.map +0 -1
  257. package/runtime/gateways/file/gateway-impl.js +0 -121
  258. package/runtime/gateways/file/gateway-impl.js.map +0 -1
  259. package/runtime/gateways/file/index.d.ts +0 -3
  260. package/runtime/gateways/file/index.d.ts.map +0 -1
  261. package/runtime/gateways/file/index.js +0 -3
  262. package/runtime/gateways/file/index.js.map +0 -1
  263. package/runtime/gateways/file/key-bag-file.d.ts +0 -20
  264. package/runtime/gateways/file/key-bag-file.d.ts.map +0 -1
  265. package/runtime/gateways/file/key-bag-file.js +0 -52
  266. package/runtime/gateways/file/key-bag-file.js.map +0 -1
  267. package/runtime/gateways/file/node/get-sys-file-system.d.ts +0 -4
  268. package/runtime/gateways/file/node/get-sys-file-system.d.ts.map +0 -1
  269. package/runtime/gateways/file/node/get-sys-file-system.js +0 -11
  270. package/runtime/gateways/file/node/get-sys-file-system.js.map +0 -1
  271. package/runtime/gateways/file/node/index.d.ts +0 -2
  272. package/runtime/gateways/file/node/index.d.ts.map +0 -1
  273. package/runtime/gateways/file/node/index.js +0 -2
  274. package/runtime/gateways/file/node/index.js.map +0 -1
  275. package/runtime/gateways/file/node/node-filesystem.d.ts +0 -32
  276. package/runtime/gateways/file/node/node-filesystem.d.ts.map +0 -1
  277. package/runtime/gateways/file/node/node-filesystem.js +0 -33
  278. package/runtime/gateways/file/node/node-filesystem.js.map +0 -1
  279. package/runtime/gateways/file/node/to-array-buffer.d.ts +0 -2
  280. package/runtime/gateways/file/node/to-array-buffer.d.ts.map +0 -1
  281. package/runtime/gateways/file/node/to-array-buffer.js +0 -12
  282. package/runtime/gateways/file/node/to-array-buffer.js.map +0 -1
  283. package/runtime/gateways/file/sys-file-system-factory.d.ts +0 -4
  284. package/runtime/gateways/file/sys-file-system-factory.d.ts.map +0 -1
  285. package/runtime/gateways/file/sys-file-system-factory.js +0 -13
  286. package/runtime/gateways/file/sys-file-system-factory.js.map +0 -1
  287. package/runtime/gateways/file/utils.d.ts +0 -5
  288. package/runtime/gateways/file/utils.d.ts.map +0 -1
  289. package/runtime/gateways/file/utils.js +0 -27
  290. package/runtime/gateways/file/utils.js.map +0 -1
  291. package/runtime/gateways/file/version.d.ts +0 -2
  292. package/runtime/gateways/file/version.d.ts.map +0 -1
  293. package/runtime/gateways/file/version.js +0 -2
  294. package/runtime/gateways/file/version.js.map +0 -1
  295. package/runtime/gateways/fp-envelope-serialize.d.ts +0 -50
  296. package/runtime/gateways/fp-envelope-serialize.d.ts.map +0 -1
  297. package/runtime/gateways/fp-envelope-serialize.js +0 -141
  298. package/runtime/gateways/fp-envelope-serialize.js.map +0 -1
  299. package/runtime/gateways/index.d.ts +0 -6
  300. package/runtime/gateways/index.d.ts.map +0 -1
  301. package/runtime/gateways/index.js +0 -6
  302. package/runtime/gateways/index.js.map +0 -1
  303. package/runtime/gateways/indexeddb/gateway-impl.d.ts +0 -22
  304. package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +0 -1
  305. package/runtime/gateways/indexeddb/gateway-impl.js +0 -147
  306. package/runtime/gateways/indexeddb/gateway-impl.js.map +0 -1
  307. package/runtime/gateways/indexeddb/index.d.ts +0 -6
  308. package/runtime/gateways/indexeddb/index.d.ts.map +0 -1
  309. package/runtime/gateways/indexeddb/index.js +0 -6
  310. package/runtime/gateways/indexeddb/index.js.map +0 -1
  311. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +0 -16
  312. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +0 -1
  313. package/runtime/gateways/indexeddb/key-bag-indexeddb.js +0 -48
  314. package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +0 -1
  315. package/runtime/gateways/indexeddb-version.d.ts +0 -2
  316. package/runtime/gateways/indexeddb-version.d.ts.map +0 -1
  317. package/runtime/gateways/indexeddb-version.js +0 -2
  318. package/runtime/gateways/indexeddb-version.js.map +0 -1
  319. package/runtime/gateways/memory/gateway.d.ts +0 -18
  320. package/runtime/gateways/memory/gateway.d.ts.map +0 -1
  321. package/runtime/gateways/memory/gateway.js +0 -73
  322. package/runtime/gateways/memory/gateway.js.map +0 -1
  323. package/runtime/gateways/memory/version.d.ts +0 -2
  324. package/runtime/gateways/memory/version.d.ts.map +0 -1
  325. package/runtime/gateways/memory/version.js +0 -2
  326. package/runtime/gateways/memory/version.js.map +0 -1
  327. package/runtime/index.d.ts +0 -13
  328. package/runtime/index.d.ts.map +0 -1
  329. package/runtime/index.js +0 -13
  330. package/runtime/index.js.map +0 -1
  331. package/runtime/key-bag-memory.d.ts +0 -13
  332. package/runtime/key-bag-memory.d.ts.map +0 -1
  333. package/runtime/key-bag-memory.js +0 -30
  334. package/runtime/key-bag-memory.js.map +0 -1
  335. package/runtime/key-bag.d.ts +0 -88
  336. package/runtime/key-bag.d.ts.map +0 -1
  337. package/runtime/key-bag.js +0 -417
  338. package/runtime/key-bag.js.map +0 -1
  339. package/runtime/keyed-crypto.d.ts +0 -19
  340. package/runtime/keyed-crypto.d.ts.map +0 -1
  341. package/runtime/keyed-crypto.js +0 -192
  342. package/runtime/keyed-crypto.js.map +0 -1
  343. package/runtime/memory-sys-container.d.ts +0 -2
  344. package/runtime/memory-sys-container.d.ts.map +0 -1
  345. package/runtime/memory-sys-container.js +0 -2
  346. package/runtime/memory-sys-container.js.map +0 -1
  347. package/runtime/meta-key-hack.d.ts +0 -42
  348. package/runtime/meta-key-hack.d.ts.map +0 -1
  349. package/runtime/meta-key-hack.js +0 -201
  350. package/runtime/meta-key-hack.js.map +0 -1
  351. package/runtime/sts-service/index.d.ts +0 -40
  352. package/runtime/sts-service/index.d.ts.map +0 -1
  353. package/runtime/sts-service/index.js +0 -108
  354. package/runtime/sts-service/index.js.map +0 -1
  355. package/runtime/sys-container.d.ts +0 -2
  356. package/runtime/sys-container.d.ts.map +0 -1
  357. package/runtime/sys-container.js +0 -2
  358. package/runtime/sys-container.js.map +0 -1
  359. package/runtime/wait-pr-multiformats/block.d.ts +0 -47
  360. package/runtime/wait-pr-multiformats/block.d.ts.map +0 -1
  361. package/runtime/wait-pr-multiformats/block.js +0 -64
  362. package/runtime/wait-pr-multiformats/block.js.map +0 -1
  363. package/runtime/wait-pr-multiformats/codec-interface.d.ts +0 -29
  364. package/runtime/wait-pr-multiformats/codec-interface.d.ts.map +0 -1
  365. package/runtime/wait-pr-multiformats/codec-interface.js +0 -2
  366. package/runtime/wait-pr-multiformats/codec-interface.js.map +0 -1
  367. package/runtime/wait-pr-multiformats/index.d.ts +0 -3
  368. package/runtime/wait-pr-multiformats/index.d.ts.map +0 -1
  369. package/runtime/wait-pr-multiformats/index.js +0 -3
  370. package/runtime/wait-pr-multiformats/index.js.map +0 -1
  371. package/tests/blockstore/fp-envelope.test.ts-off +0 -65
  372. package/tests/blockstore/fragment-gateway.test.ts-off +0 -106
  373. package/tests/blockstore/interceptor-gateway.test.ts +0 -254
  374. package/tests/blockstore/keyed-crypto-indexeddb-file.test.ts +0 -128
  375. package/tests/blockstore/keyed-crypto.test.ts +0 -376
  376. package/tests/blockstore/loader.test.ts +0 -298
  377. package/tests/blockstore/standalone.test.ts +0 -152
  378. package/tests/blockstore/store.test.ts +0 -192
  379. package/tests/blockstore/transaction.test.ts +0 -130
  380. package/tests/fireproof/all-gateway.test.ts +0 -461
  381. package/tests/fireproof/attachable.test.ts +0 -686
  382. package/tests/fireproof/cars/bafkreidxwt2nhvbl4fnqfw3ctlt6zbrir4kqwmjo5im6rf4q5si27kgo2i.car +0 -0
  383. package/tests/fireproof/cars/bafkreidxwt2nhvbl4fnqfw3ctlt6zbrir4kqwmjo5im6rf4q5si27kgo2i.ts +0 -324
  384. package/tests/fireproof/charwise-boolean.test.ts +0 -66
  385. package/tests/fireproof/crdt.test.ts +0 -570
  386. package/tests/fireproof/database.test.ts +0 -779
  387. package/tests/fireproof/deleted-docs-handling.test.ts +0 -111
  388. package/tests/fireproof/fireproof.test.fixture.ts +0 -133
  389. package/tests/fireproof/fireproof.test.ts +0 -777
  390. package/tests/fireproof/hello.test.ts +0 -74
  391. package/tests/fireproof/indexer.test.ts +0 -458
  392. package/tests/fireproof/multiple-ledger.test.ts +0 -65
  393. package/tests/fireproof/query-docs.test.ts +0 -116
  394. package/tests/fireproof/query-limit-issue.test.ts +0 -147
  395. package/tests/fireproof/query-property-inconsistency.test.ts +0 -89
  396. package/tests/fireproof/query-result-properties.test.ts +0 -42
  397. package/tests/fireproof/stable-cid.test.ts +0 -69
  398. package/tests/fireproof/utils.test.ts +0 -135
  399. package/tests/gateway/file/loader-config.test.ts +0 -307
  400. package/tests/gateway/indexeddb/loader-config.test.ts +0 -79
  401. package/tests/helpers.ts +0 -172
  402. package/tests/protocols/cloud/msger.test.ts +0 -548
  403. package/tests/react/img-file.test.tsx +0 -190
  404. package/tests/react/use-all-docs.test.tsx +0 -172
  405. package/tests/react/use-document-with-nonexistent-id.test.tsx +0 -96
  406. package/tests/react/use-fireproof-db-switch.test.tsx +0 -91
  407. package/tests/react/use-fireproof-stability.test.tsx +0 -145
  408. package/tests/react/use-fireproof.test.tsx +0 -645
  409. package/tests/runtime/fp-envelope-serialize.test.ts +0 -254
  410. package/tests/runtime/meta-key-hack.test.ts +0 -95
  411. package/tests/setup.file.ts +0 -1
  412. package/tests/setup.indexeddb.ts +0 -0
  413. package/tests/setup.memory.ts +0 -2
  414. package/tests/vitest.file.config.ts +0 -14
  415. package/tests/vitest.indexeddb.config.ts +0 -37
  416. package/tests/vitest.memory.config.ts +0 -25
  417. package/types.d.ts +0 -461
  418. package/types.d.ts.map +0 -1
  419. package/types.js +0 -60
  420. package/types.js.map +0 -1
  421. package/use-fireproof/iframe-strategy.d.ts +0 -14
  422. package/use-fireproof/iframe-strategy.d.ts.map +0 -1
  423. package/use-fireproof/iframe-strategy.js +0 -79
  424. package/use-fireproof/iframe-strategy.js.map +0 -1
  425. package/use-fireproof/index.d.ts +0 -14
  426. package/use-fireproof/index.d.ts.map +0 -1
  427. package/use-fireproof/index.js +0 -36
  428. package/use-fireproof/index.js.map +0 -1
  429. package/use-fireproof/redirect-strategy.d.ts +0 -15
  430. package/use-fireproof/redirect-strategy.d.ts.map +0 -1
  431. package/use-fireproof/redirect-strategy.js +0 -153
  432. package/use-fireproof/redirect-strategy.js.map +0 -1
  433. package/utils.d.ts +0 -48
  434. package/utils.d.ts.map +0 -1
  435. package/utils.js +0 -406
  436. package/utils.js.map +0 -1
  437. package/version.d.ts +0 -2
  438. package/version.d.ts.map +0 -1
  439. package/version.js +0 -4
  440. package/version.js.map +0 -1
  441. package/write-queue.d.ts +0 -9
  442. package/write-queue.d.ts.map +0 -1
  443. package/write-queue.js +0 -70
  444. package/write-queue.js.map +0 -1
@@ -1,570 +0,0 @@
1
- import {
2
- CRDT,
3
- defaultWriteQueueOpts,
4
- ensureSuperThis,
5
- LedgerOpts,
6
- toStoreURIRuntime,
7
- rt,
8
- CRDTImpl,
9
- bs,
10
- CRDTMeta,
11
- DocValue,
12
- Index,
13
- index,
14
- } from "@fireproof/core";
15
- import { tracer } from "../helpers.js";
16
- import { AppContext } from "@adviser/cement";
17
-
18
- describe("Fresh crdt", function () {
19
- let crdt: CRDT;
20
- const sthis = ensureSuperThis();
21
- afterEach(async () => {
22
- await crdt.close();
23
- await crdt.destroy();
24
- });
25
- beforeEach(async () => {
26
- await sthis.start();
27
- const dbOpts: LedgerOpts = {
28
- name: "test-crdt",
29
- writeQueue: defaultWriteQueueOpts({}),
30
- keyBag: rt.defaultKeyBagOpts(sthis),
31
- storeUrls: toStoreURIRuntime(sthis, "test-crdt-cold"),
32
- storeEnDe: bs.ensureStoreEnDeFile({}),
33
- ctx: new AppContext(),
34
- tracer,
35
- };
36
- crdt = new CRDTImpl(sthis, dbOpts);
37
- await crdt.ready();
38
- });
39
- it("should have an empty head", async () => {
40
- const head = crdt.clock.head;
41
- expect(head.length).toBe(0);
42
- });
43
- it("should accept put and return results", async () => {
44
- const didPut = await crdt.bulk([{ id: "hello", value: { hello: "world" } }]);
45
- const head = didPut.head;
46
- expect(head.length).toBe(1);
47
- });
48
- it("should accept multi-put and return results", async () => {
49
- const didPut = await crdt.bulk([
50
- { id: "ace", value: { points: 11 } },
51
- { id: "king", value: { points: 10 } },
52
- ]);
53
- const head = didPut.head;
54
- expect(head.length).toBe(1);
55
- });
56
- });
57
-
58
- describe("CRDT with one record", function () {
59
- interface CRDTTestType {
60
- readonly hello: string;
61
- readonly nice: string;
62
- }
63
- let crdt: CRDT;
64
- let firstPut: CRDTMeta;
65
- const sthis = ensureSuperThis();
66
-
67
- afterEach(async () => {
68
- await crdt.close();
69
- await crdt.destroy();
70
- });
71
-
72
- beforeEach(async () => {
73
- await sthis.start();
74
- const dbOpts: LedgerOpts = {
75
- name: "test-crdt",
76
- writeQueue: defaultWriteQueueOpts({}),
77
- keyBag: rt.defaultKeyBagOpts(sthis),
78
- storeUrls: toStoreURIRuntime(sthis, `test@${sthis.nextId().str}`),
79
- storeEnDe: bs.ensureStoreEnDeFile({}),
80
- ctx: new AppContext(),
81
- tracer,
82
- };
83
- crdt = new CRDTImpl(sthis, dbOpts);
84
- firstPut = await crdt.bulk([{ id: "hello", value: { hello: "world" } }]);
85
- });
86
- it("should have a one-element head", async () => {
87
- const head = crdt.clock.head;
88
- expect(head.length).toBe(1);
89
- });
90
- it("should return the head", async () => {
91
- expect(firstPut.head.length).toBe(1);
92
- });
93
- it("return the record on get", async () => {
94
- const got = (await crdt.get("hello")) as DocValue<CRDTTestType>;
95
- expect(got).toBeTruthy();
96
- expect(got.doc.hello).toBe("world");
97
- });
98
- it("should accept another put and return results", async () => {
99
- const didPut = await crdt.bulk([{ id: "nice", value: { nice: "data" } }]);
100
- const head = didPut.head;
101
- expect(head.length).toBe(1);
102
- const { doc } = (await crdt.get("nice")) as DocValue<CRDTTestType>;
103
- expect(doc.nice).toBe("data");
104
- });
105
- it("should allow for a delete", async () => {
106
- const didDel = await crdt.bulk([{ id: "hello", del: true }]);
107
- expect(didDel.head).toBeTruthy();
108
- const got = await crdt.get("hello");
109
- expect(got).toBeFalsy();
110
- });
111
- it("should offer changes", async () => {
112
- const { result } = await crdt.changes<Partial<CRDTTestType>>([]);
113
- expect(result.length).toBe(1);
114
- expect(result[0].id).toBe("hello");
115
- expect(result[0].value?.hello).toBe("world");
116
- });
117
- });
118
-
119
- describe("CRDT with a multi-write", function () {
120
- interface CRDTTestType {
121
- readonly points: number;
122
- }
123
- let crdt: CRDT;
124
- let firstPut: CRDTMeta;
125
- const sthis = ensureSuperThis();
126
-
127
- afterEach(async () => {
128
- await crdt.close();
129
- await crdt.destroy();
130
- });
131
- beforeEach(async () => {
132
- await sthis.start();
133
- const dbOpts: LedgerOpts = {
134
- name: "test-crdt",
135
- writeQueue: defaultWriteQueueOpts({}),
136
- keyBag: rt.defaultKeyBagOpts(sthis),
137
- storeUrls: toStoreURIRuntime(sthis, "test-crdt-cold"),
138
- storeEnDe: bs.ensureStoreEnDeFile({}),
139
- ctx: new AppContext(),
140
- tracer,
141
- };
142
- crdt = new CRDTImpl(sthis, dbOpts);
143
- firstPut = await crdt.bulk([
144
- { id: "ace", value: { points: 11 } },
145
- { id: "king", value: { points: 10 } },
146
- ]);
147
- });
148
- it("should have a one-element head", async () => {
149
- const head = crdt.clock.head;
150
- expect(head.length).toBe(1);
151
- expect(firstPut.head.length).toBe(1);
152
- });
153
- it("return the records on get", async () => {
154
- const { doc } = (await crdt.get("ace")) as DocValue<CRDTTestType>;
155
- expect(doc.points).toBe(11);
156
-
157
- const got2 = (await crdt.get("king")) as DocValue<CRDTTestType>;
158
- expect(got2).toBeTruthy();
159
- expect(got2.doc.points).toBe(10);
160
- });
161
- it("should accept another put and return results", async () => {
162
- const didPut = await crdt.bulk([{ id: "queen", value: { points: 10 } }]);
163
- const head = didPut.head;
164
- expect(head.length).toBe(1);
165
- const got = (await crdt.get("queen")) as DocValue<CRDTTestType>;
166
- expect(got).toBeTruthy();
167
- expect(got.doc.points).toBe(10);
168
- });
169
- it("should offer changes", async () => {
170
- const { result } = await crdt.changes<CRDTTestType>([]);
171
- expect(result.length).toBe(2);
172
- expect(result[0].id).toBe("ace");
173
- expect(result[0].value?.points).toBe(11);
174
- expect(result[1].id).toBe("king");
175
- });
176
- it("should offer changes since", async () => {
177
- /** @type {CRDTMeta} */
178
- const secondPut = await crdt.bulk([
179
- { id: "queen", value: { points: 10 } },
180
- { id: "jack", value: { points: 10 } },
181
- ]);
182
- expect(secondPut.head).toBeTruthy();
183
- const { result: r2, head: h2 } = await crdt.changes<CRDTTestType>();
184
- expect(r2.length).toBe(4);
185
- const { result: r3 } = await crdt.changes(firstPut.head);
186
- expect(r3.length).toBe(2);
187
- const { result: r4 } = await crdt.changes(h2);
188
- expect(r4.length).toBe(0);
189
- });
190
- });
191
-
192
- interface CRDTTestType {
193
- readonly points: number;
194
- }
195
- describe("CRDT with two multi-writes", function () {
196
- let crdt: CRDT;
197
- let firstPut: CRDTMeta;
198
- let secondPut: CRDTMeta;
199
- const sthis = ensureSuperThis();
200
- afterEach(async () => {
201
- await crdt.close();
202
- await crdt.destroy();
203
- });
204
- beforeEach(async () => {
205
- await sthis.start();
206
- const dbOpts: LedgerOpts = {
207
- name: "test-crdt",
208
- writeQueue: defaultWriteQueueOpts({}),
209
- keyBag: rt.defaultKeyBagOpts(sthis),
210
- storeUrls: toStoreURIRuntime(sthis, `test-multiple-writes@${sthis.nextId().str}`),
211
- storeEnDe: bs.ensureStoreEnDeFile({}),
212
- ctx: new AppContext(),
213
- tracer,
214
- };
215
- crdt = new CRDTImpl(sthis, dbOpts);
216
- firstPut = await crdt.bulk([
217
- { id: "ace", value: { points: 11 } },
218
- { id: "king", value: { points: 10 } },
219
- ]);
220
- secondPut = await crdt.bulk([
221
- { id: "queen", value: { points: 10 } },
222
- { id: "jack", value: { points: 10 } },
223
- ]);
224
- });
225
- it("should have a one-element head", async () => {
226
- const head = crdt.clock.head;
227
- expect(head.length).toBe(1);
228
- expect(firstPut.head.length).toBe(1);
229
- expect(secondPut.head.length).toBe(1);
230
- expect(firstPut.head[0]).not.toBe(secondPut.head[0]);
231
- });
232
- it("return the records on get", async () => {
233
- const ret = await crdt.get("ace");
234
- expect(ret).not.toBeNull();
235
- const { doc } = ret as DocValue<CRDTTestType>;
236
- expect(doc.points).toBe(11);
237
-
238
- for (const key of ["king", "queen", "jack"]) {
239
- const { doc } = (await crdt.get(key)) as DocValue<CRDTTestType>;
240
- expect(doc.points).toBe(10);
241
- }
242
- });
243
- it("should offer changes", async () => {
244
- const { result } = await crdt.changes<CRDTTestType>();
245
- expect(result.length).toBe(4);
246
- expect(result[0].id).toBe("ace");
247
- expect(result[0].value?.points).toBe(11);
248
- expect(result[1].id).toBe("king");
249
- expect(result[2].id).toBe("queen");
250
- expect(result[3].id).toBe("jack");
251
- });
252
- });
253
-
254
- describe("Compact a named CRDT with writes", function () {
255
- let crdt: CRDT;
256
- const sthis = ensureSuperThis();
257
- afterEach(async () => {
258
- await crdt.close();
259
- await crdt.destroy();
260
- });
261
- beforeEach(async () => {
262
- await sthis.start();
263
- // sthis.env.set(
264
- // "FP_STORAGE_URL",
265
- // BuildURI.from(sthis.env.get("FP_STORAGE_URL")).setParam(PARAM.STORE_KEY, "insecure").toString(),
266
- // );
267
- // console.log("FP_STORAGE_URL", sthis.env.get("FP_STORAGE_URL"));
268
- const dbOpts: LedgerOpts = {
269
- name: "test-crdt",
270
- writeQueue: defaultWriteQueueOpts({}),
271
- keyBag: rt.defaultKeyBagOpts(sthis),
272
- storeUrls: toStoreURIRuntime(sthis, `named-crdt-compaction-${sthis.nextId().str}`),
273
- storeEnDe: bs.ensureStoreEnDeFile({}),
274
- ctx: new AppContext(),
275
- tracer,
276
- };
277
- crdt = new CRDTImpl(sthis, dbOpts);
278
- for (let i = 0; i < 10; i++) {
279
- const bulk = [
280
- { id: "ace", value: { points: 11 } },
281
- { id: "king", value: { points: 10 } },
282
- ];
283
- await crdt.bulk(bulk);
284
- }
285
- // await sleep(1000);
286
- });
287
- it("has data", async () => {
288
- const got = (await crdt.get("ace")) as DocValue<CRDTTestType>;
289
- expect(got.doc).toBeTruthy();
290
- expect(got.doc.points).toBe(11);
291
- });
292
- it("should start with blocks", async () => {
293
- const blz: bs.AnyBlock[] = [];
294
- for await (const blk of crdt.blockstore.entries()) {
295
- blz.push(blk);
296
- }
297
- // expect(blz.map((i) => sthis.txt.decode(i.bytes) + "\n=================\n")).toEqual([
298
- //
299
- // ])
300
- expect(blz.map((i) => i.cid.toString())).toEqual([
301
- "bafyreicuomyooryb747esregkhooc4phr656tocowyo6dwcocq22h7qdhu",
302
- "bafyreig5jhovaiocwk3vfafzdspgtwinftjygyghjzigkc554muhdmp5ba",
303
- "bafyreiegj7yumreue7llzqroebigscedyzrkeir3zneg5q7zia77itowy4",
304
- "bafyreihobual6tt3hgdfve4h5uzt7fey62se3dfecbuj6f4ndkkwquke4u",
305
- "bafyreibqqcs3r6mhpr3525na6jtqnjcf6dmgskk27x4a2jb3r2qveqgexm",
306
- "bafyreibr7udlekt4xgavn54i4zfsdlrmi4r76iq6gh3bdq4xh52px6to3e",
307
- "bafyreidg2eyas62nvwvi6ggq44tsldj4kwmupyk2xtwmxbwf77g3noqtp4",
308
- "bafyreigbzxzj4eh7ljfvzlc7smdextuuk7gvep5mpnb3igaj5r2qzjlfye",
309
- "bafyreicr7takuntpofvk52xerdcoiq7wdt73ef54acoya2geig2ywkqlsi",
310
- "bafyreihmmgm5sufvnsgjic4fbizkdbajpy2yrklyieadstbtegfr4qko2m",
311
- "bafyreibnu44uyu3ggqwgmnlxodw6dyta3qg7e5qldsjq7bkbv452ova6oa",
312
- "bafyreieh4nlzg7enfczmj4z7uxvgrnykh7ajw7crxjrncqfrzj47ip6t6m",
313
- "bafyreigqqrccymfvvdfetjd2twsdzjwxbb6cn6tedqntvpgp5vboky2ol4",
314
- "bafyreid6kkobhgdmce2cyroepyos3jwumtdrfuzi6suldlxzjsgagc3fvi",
315
- "bafyreibo2d56wo5ldey24hygtmsfhdxsqgdpmtne5oitehxjppipru33ma",
316
- "bafyreifjv6havcza3is7w6ii345f5akba7e34xqcxwoqozmsnihkivykum",
317
- "bafyreig6eroqeg3y7am4bnrun3yzbvd656epzxjyivdpzwqo3j3vpuwysi",
318
- "bafyreibpsnfsducp7refempcyqnte54j7ueh4ysdlabggihclbddfnuzxm",
319
- "bafyreicfkkygbzz5zawr3xbfah2gy3e7w4opzysew4tini7xnksujj4gf4",
320
- "bafyreiddjm5xkpfa5vmyhoj5opocrwo6zbdnmqyhouc5ttfxoilmaf25bm",
321
- "bafyreibp7vlgfexaknaoxpemnnwadyfa4cfuc3euzlkslskks2n44wwspu",
322
- "bafyreichwj7izzpxeyjkhwl26pq45m4hnhxcgzqfk5ffeqkscafleiwfzm",
323
- "bafyreidzjjqou36q2ghqdue4buq7536w4sl5aejni6tw25mzsusl26gtwu",
324
- "bafyreibxibqhi6wh5klrje7ne4htffeqyyqfd6y7x2no6wnhid4nixizau",
325
- "bafyreidnvv4mwvweup5w52ddre2sl4syhvczm6ejqsmuekajowdl2cf2q4",
326
- "bafyreihh6nbfbhgkf5lz7hhsscjgiquw426rxzr3fprbgonekzmyvirrhe",
327
- "bafyreiejg3twlaxr7gfvvhtxrhvwaydytdv4guidmtvaz5dskm6gp73ryi",
328
- "bafyreiblui55o25dopc5faol3umsnuohb5carto7tot4kicnkfc37he4h4",
329
- ]);
330
- // expect(blz.length).toBe(13);
331
- }, 1000000);
332
- it("should start with changes", async () => {
333
- const { result } = await crdt.changes();
334
- expect(result.length).toBe(2);
335
- expect(result[0].id).toBe("ace");
336
- });
337
- it.skip("should have fewer blocks after compact", async () => {
338
- await crdt.compact();
339
- const blz: bs.AnyBlock[] = [];
340
- for await (const blk of crdt.blockstore.entries()) {
341
- blz.push(blk);
342
- }
343
- expect(blz.length).toBe(23);
344
- });
345
- it("should have data after compact", async () => {
346
- await crdt.compact();
347
- const got = (await crdt.get("ace")) as DocValue<CRDTTestType>;
348
- expect(got.doc).toBeTruthy();
349
- expect(got.doc.points).toBe(11);
350
- });
351
- it("should have changes after compact", async () => {
352
- const chs = await crdt.changes();
353
- expect(chs.result[0].id).toBe("ace");
354
- });
355
- });
356
-
357
- describe("CRDT with an index", function () {
358
- let crdt: CRDT;
359
- let idx: Index<CRDTTestType, number>;
360
- const sthis = ensureSuperThis();
361
- afterEach(async () => {
362
- await crdt.close();
363
- await crdt.destroy();
364
- });
365
- beforeEach(async () => {
366
- await sthis.start();
367
- const dbOpts: LedgerOpts = {
368
- name: "test-crdt",
369
- writeQueue: defaultWriteQueueOpts({}),
370
- keyBag: rt.defaultKeyBagOpts(sthis),
371
- storeUrls: toStoreURIRuntime(sthis, "test-crdt-cold"),
372
- storeEnDe: bs.ensureStoreEnDeFile({}),
373
- ctx: new AppContext(),
374
- tracer,
375
- };
376
- crdt = new CRDTImpl(sthis, dbOpts);
377
- await crdt.bulk([
378
- { id: "ace", value: { points: 11 } },
379
- { id: "king", value: { points: 10 } },
380
- ]);
381
- idx = await index<CRDTTestType, number>(crdt, "points");
382
- });
383
- it("should query the data", async () => {
384
- const got = await idx.query({ range: [9, 12] });
385
- expect(got.rows.length).toBe(2);
386
- expect(got.rows[0].id).toBe("king");
387
- expect(got.rows[0].key).toBe(10);
388
- });
389
- it("should register the index", async () => {
390
- const rIdx = await index<CRDTTestType, number>(crdt, "points");
391
- expect(rIdx).toBeTruthy();
392
- expect(rIdx.name).toBe("points");
393
- const got = await rIdx.query({ range: [9, 12] });
394
- expect(got.rows.length).toBe(2);
395
- expect(got.rows[0].id).toBe("king");
396
- expect(got.rows[0].key).toBe(10);
397
- });
398
- it.skip("creating a different index with same name should not work", async () => {
399
- const e = await index(crdt, "points", (doc) => doc._id)
400
- .query()
401
- .catch((err) => err);
402
- expect(e.message).toMatch(/cannot apply/);
403
- });
404
- });
405
-
406
- describe("Loader with a committed transaction", function () {
407
- let loader: bs.Loader;
408
- let blockstore: bs.EncryptedBlockstore;
409
- let crdt: CRDT;
410
- let done: CRDTMeta;
411
- const dbname = "test-loader";
412
- const sthis = ensureSuperThis();
413
- afterEach(async () => {
414
- await crdt.close();
415
- await crdt.destroy();
416
- });
417
- beforeEach(async () => {
418
- await sthis.start();
419
- const dbOpts: LedgerOpts = {
420
- name: "test-crdt",
421
- writeQueue: defaultWriteQueueOpts({}),
422
- keyBag: rt.defaultKeyBagOpts(sthis),
423
- storeUrls: toStoreURIRuntime(sthis, dbname),
424
- storeEnDe: bs.ensureStoreEnDeFile({}),
425
- ctx: new AppContext(),
426
- tracer,
427
- };
428
- crdt = new CRDTImpl(sthis, dbOpts);
429
- blockstore = crdt.blockstore as bs.EncryptedBlockstore;
430
- expect(blockstore.loader).toBeTruthy();
431
- loader = blockstore.loader as bs.Loader;
432
- done = await crdt.bulk([{ id: "foo", value: { foo: "bar" } }]);
433
- });
434
- // it("should have a name", function () {
435
- // expect(loader.ebOpts.storeUrls).toEqual({
436
- // data: "file://./dist/fp-dir-file?name=test-loader&store=data&storekey=%40test-loader-data%40&suffix=.car&urlGen=fromEnv",
437
- // file: "file://./dist/fp-dir-file?name=test-loader&store=data&storekey=%40test-loader-data%40&urlGen=fromEnv",
438
- // meta: "file://./dist/fp-dir-file?name=test-loader&store=meta&storekey=%40test-loader-meta%40&urlGen=fromEnv",
439
- // wal: "file://./dist/fp-dir-file?name=test-loader&store=wal&storekey=%40test-loader-wal%40&urlGen=fromEnv",
440
- // });
441
- // });
442
- it("should commit a transaction", function () {
443
- expect(done.head).toBeTruthy();
444
- // expect(done.cars).toBeTruthy();
445
- expect(loader.carLog.length).toBe(1 + 1 /* genesis */);
446
- });
447
- it("can load the car", async () => {
448
- const blk = loader.carLog.asArray()[0][0];
449
- expect(blk).toBeTruthy();
450
- const reader = await loader.loadCar(blk, loader.attachedStores.local());
451
- expect(reader).toBeTruthy();
452
- assert(bs.isCarBlockItemReady(reader));
453
- const parsed = await bs.parseCarFile<CRDTMeta>(reader, loader.logger);
454
- expect(parsed.cars).toBeTruthy();
455
- expect(parsed.cars.length).toBe(0 + 1 /* genesis */);
456
- expect(parsed.meta).toBeTruthy();
457
- expect(parsed.meta.head).toBeTruthy();
458
- });
459
- });
460
-
461
- describe("Loader with two committed transactions", function () {
462
- let loader: bs.Loader;
463
- let crdt: CRDT;
464
- let blockstore: bs.EncryptedBlockstore;
465
- let done1: CRDTMeta;
466
- let done2: CRDTMeta;
467
- const sthis = ensureSuperThis();
468
- afterEach(async () => {
469
- await crdt.close();
470
- await crdt.destroy();
471
- });
472
- beforeEach(async () => {
473
- await sthis.start();
474
- const dbOpts: LedgerOpts = {
475
- name: "test-crdt",
476
- writeQueue: defaultWriteQueueOpts({}),
477
- keyBag: rt.defaultKeyBagOpts(sthis),
478
- storeUrls: toStoreURIRuntime(sthis, "test-loader"),
479
- storeEnDe: bs.ensureStoreEnDeFile({}),
480
- ctx: new AppContext(),
481
- tracer,
482
- };
483
- crdt = new CRDTImpl(sthis, dbOpts);
484
- blockstore = crdt.blockstore as bs.EncryptedBlockstore;
485
- expect(blockstore.loader).toBeTruthy();
486
- loader = blockstore.loader as bs.Loader;
487
- done1 = await crdt.bulk([{ id: "apple", value: { foo: "bar" } }]);
488
- done2 = await crdt.bulk([{ id: "orange", value: { foo: "bar" } }]);
489
- });
490
- it("should commit two transactions", function () {
491
- expect(done1.head).toBeTruthy();
492
- // expect(done1.cars).toBeTruthy();
493
- expect(done2.head).toBeTruthy();
494
- // expect(done2.cars).toBeTruthy();
495
- expect(done1.head).not.toBe(done2.head);
496
- // expect(done1.cars).not.toBe(done2.cars);
497
- // expect(blockstore.transactions.size).toBe(2);
498
- expect(loader.carLog.length).toBe(2 + 1 /* genesis */);
499
- // expect(loader.carLog.indexOf(done1.cars)).toBe(1);
500
- // expect(loader.carLog.map((cs) => cs.toString()).indexOf(done1.cars.toString())).toBe(1);
501
- // expect(loader.carLog.indexOf(done2.cars)).toBe(0);
502
- // expect(loader.carLog.map((cs) => cs.toString()).indexOf(done2.cars.toString())).toBe(0);
503
- });
504
- it("can load the car", async () => {
505
- const blk = loader.carLog.asArray()[0][0];
506
- expect(blk).toBeTruthy();
507
- const reader = await loader.loadCar(blk, loader.attachedStores.local());
508
- expect(reader).toBeTruthy();
509
- assert(bs.isCarBlockItemReady(reader));
510
- const parsed = await bs.parseCarFile<CRDTMeta>(reader, loader.logger);
511
- expect(parsed.cars).toBeTruthy();
512
- expect(parsed.cars.length).toBe(1 + 1 /* genesis */);
513
- expect(parsed.meta).toBeTruthy();
514
- expect(parsed.meta.head).toBeTruthy();
515
- });
516
- });
517
-
518
- describe("Loader with many committed transactions", function () {
519
- let loader: bs.Loader;
520
- let blockstore: bs.EncryptedBlockstore;
521
- let crdt: CRDT;
522
- let dones: CRDTMeta[];
523
- const count = 10;
524
- const sthis = ensureSuperThis();
525
- afterEach(async () => {
526
- await crdt.close();
527
- await crdt.destroy();
528
- });
529
- beforeEach(async () => {
530
- await sthis.start();
531
- const dbOpts: LedgerOpts = {
532
- name: "test-crdt",
533
- writeQueue: defaultWriteQueueOpts({}),
534
- keyBag: rt.defaultKeyBagOpts(sthis),
535
- storeUrls: toStoreURIRuntime(sthis, "test-loader-many"),
536
- storeEnDe: bs.ensureStoreEnDeFile({}),
537
- ctx: new AppContext(),
538
- tracer,
539
- };
540
- crdt = new CRDTImpl(sthis, dbOpts);
541
- blockstore = crdt.blockstore as bs.EncryptedBlockstore;
542
- expect(blockstore.loader).toBeTruthy();
543
- loader = blockstore.loader as bs.Loader;
544
- dones = [];
545
- for (let i = 0; i < count; i++) {
546
- const did = await crdt.bulk([{ id: `apple${i}`, value: { foo: "bar" } }]);
547
- dones.push(did);
548
- }
549
- });
550
- it("should commit many transactions", function () {
551
- for (const done of dones) {
552
- expect(done.head).toBeTruthy();
553
- // expect(done.cars).toBeTruthy();
554
- }
555
- expect(blockstore.transactions.size).toBe(0); // cleaned up on commit
556
- expect(loader.carLog.length).toBe(count + 1 /* genesis */);
557
- });
558
- it("can load the car", async () => {
559
- const blk = loader.carLog.asArray()[2][0];
560
- // expect(dones[5].cars).toBeTruthy();
561
- const reader = await loader.loadCar(blk, loader.attachedStores.local());
562
- expect(reader).toBeTruthy();
563
- assert(bs.isCarBlockItemReady(reader));
564
- const parsed = await bs.parseCarFile<CRDTMeta>(reader, loader.logger);
565
- expect(parsed.cars).toBeTruthy();
566
- expect(parsed.cars.length).toBe(7 + 1 /* genesis */);
567
- expect(parsed.meta).toBeTruthy();
568
- expect(parsed.meta.head).toBeTruthy();
569
- });
570
- });