@fireproof/core 0.21.0-dev-preview-6 → 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 (428) 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 -70
  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 -317
  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 -16
  45. package/blockstore/index.d.ts.map +0 -1
  46. package/blockstore/index.js +0 -16
  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 -61
  57. package/blockstore/loader.d.ts.map +0 -1
  58. package/blockstore/loader.js +0 -493
  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 -510
  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 -26613
  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 -34
  114. package/database.d.ts.map +0 -1
  115. package/database.js +0 -133
  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 -55
  128. package/ledger.d.ts.map +0 -1
  129. package/ledger.js +0 -240
  130. package/ledger.js.map +0 -1
  131. package/protocols/cloud/http-connection.d.ts +0 -25
  132. package/protocols/cloud/http-connection.d.ts.map +0 -1
  133. package/protocols/cloud/http-connection.js +0 -153
  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 -296
  156. package/protocols/cloud/msg-types.d.ts.map +0 -1
  157. package/protocols/cloud/msg-types.js +0 -296
  158. package/protocols/cloud/msg-types.js.map +0 -1
  159. package/protocols/cloud/msger.d.ts +0 -79
  160. package/protocols/cloud/msger.d.ts.map +0 -1
  161. package/protocols/cloud/msger.js +0 -198
  162. package/protocols/cloud/msger.js.map +0 -1
  163. package/protocols/cloud/ws-connection.d.ts +0 -29
  164. package/protocols/cloud/ws-connection.d.ts.map +0 -1
  165. package/protocols/cloud/ws-connection.js +0 -166
  166. package/protocols/cloud/ws-connection.js.map +0 -1
  167. package/protocols/index.d.ts +0 -2
  168. package/protocols/index.d.ts.map +0 -1
  169. package/protocols/index.js +0 -2
  170. package/protocols/index.js.map +0 -1
  171. package/react/img-file.d.ts +0 -303
  172. package/react/img-file.d.ts.map +0 -1
  173. package/react/img-file.js +0 -92
  174. package/react/img-file.js.map +0 -1
  175. package/react/index.d.ts +0 -5
  176. package/react/index.d.ts.map +0 -1
  177. package/react/index.js +0 -5
  178. package/react/index.js.map +0 -1
  179. package/react/types.d.ts +0 -71
  180. package/react/types.d.ts.map +0 -1
  181. package/react/types.js +0 -2
  182. package/react/types.js.map +0 -1
  183. package/react/use-all-docs.d.ts +0 -4
  184. package/react/use-all-docs.d.ts.map +0 -1
  185. package/react/use-all-docs.js +0 -25
  186. package/react/use-all-docs.js.map +0 -1
  187. package/react/use-attach.d.ts +0 -6
  188. package/react/use-attach.d.ts.map +0 -1
  189. package/react/use-attach.js +0 -75
  190. package/react/use-attach.js.map +0 -1
  191. package/react/use-changes.d.ts +0 -4
  192. package/react/use-changes.d.ts.map +0 -1
  193. package/react/use-changes.js +0 -19
  194. package/react/use-changes.js.map +0 -1
  195. package/react/use-document.d.ts +0 -4
  196. package/react/use-document.d.ts.map +0 -1
  197. package/react/use-document.js +0 -109
  198. package/react/use-document.js.map +0 -1
  199. package/react/use-fireproof.d.ts +0 -6
  200. package/react/use-fireproof.d.ts.map +0 -1
  201. package/react/use-fireproof.js +0 -20
  202. package/react/use-fireproof.js.map +0 -1
  203. package/react/use-live-query.d.ts +0 -4
  204. package/react/use-live-query.d.ts.map +0 -1
  205. package/react/use-live-query.js +0 -24
  206. package/react/use-live-query.js.map +0 -1
  207. package/runtime/files.d.ts +0 -12
  208. package/runtime/files.d.ts.map +0 -1
  209. package/runtime/files.js +0 -29
  210. package/runtime/files.js.map +0 -1
  211. package/runtime/gateways/cloud/gateway.d.ts +0 -41
  212. package/runtime/gateways/cloud/gateway.d.ts.map +0 -1
  213. package/runtime/gateways/cloud/gateway.js +0 -512
  214. package/runtime/gateways/cloud/gateway.js.map +0 -1
  215. package/runtime/gateways/cloud/index.d.ts +0 -3
  216. package/runtime/gateways/cloud/index.d.ts.map +0 -1
  217. package/runtime/gateways/cloud/index.js +0 -3
  218. package/runtime/gateways/cloud/index.js.map +0 -1
  219. package/runtime/gateways/cloud/to-cloud.d.ts +0 -46
  220. package/runtime/gateways/cloud/to-cloud.d.ts.map +0 -1
  221. package/runtime/gateways/cloud/to-cloud.js +0 -159
  222. package/runtime/gateways/cloud/to-cloud.js.map +0 -1
  223. package/runtime/gateways/def-serde-gateway.d.ts +0 -18
  224. package/runtime/gateways/def-serde-gateway.d.ts.map +0 -1
  225. package/runtime/gateways/def-serde-gateway.js +0 -92
  226. package/runtime/gateways/def-serde-gateway.js.map +0 -1
  227. package/runtime/gateways/file/deno/deno-filesystem.d.ts +0 -27
  228. package/runtime/gateways/file/deno/deno-filesystem.d.ts.map +0 -1
  229. package/runtime/gateways/file/deno/deno-filesystem.js +0 -52
  230. package/runtime/gateways/file/deno/deno-filesystem.js.map +0 -1
  231. package/runtime/gateways/file/deno/get-sys-file-system.d.ts +0 -4
  232. package/runtime/gateways/file/deno/get-sys-file-system.d.ts.map +0 -1
  233. package/runtime/gateways/file/deno/get-sys-file-system.js +0 -11
  234. package/runtime/gateways/file/deno/get-sys-file-system.js.map +0 -1
  235. package/runtime/gateways/file/deno/index.d.ts +0 -2
  236. package/runtime/gateways/file/deno/index.d.ts.map +0 -1
  237. package/runtime/gateways/file/deno/index.js +0 -2
  238. package/runtime/gateways/file/deno/index.js.map +0 -1
  239. package/runtime/gateways/file/gateway-impl.d.ts +0 -18
  240. package/runtime/gateways/file/gateway-impl.d.ts.map +0 -1
  241. package/runtime/gateways/file/gateway-impl.js +0 -121
  242. package/runtime/gateways/file/gateway-impl.js.map +0 -1
  243. package/runtime/gateways/file/index.d.ts +0 -3
  244. package/runtime/gateways/file/index.d.ts.map +0 -1
  245. package/runtime/gateways/file/index.js +0 -3
  246. package/runtime/gateways/file/index.js.map +0 -1
  247. package/runtime/gateways/file/key-bag-file.d.ts +0 -19
  248. package/runtime/gateways/file/key-bag-file.d.ts.map +0 -1
  249. package/runtime/gateways/file/key-bag-file.js +0 -40
  250. package/runtime/gateways/file/key-bag-file.js.map +0 -1
  251. package/runtime/gateways/file/node/get-sys-file-system.d.ts +0 -4
  252. package/runtime/gateways/file/node/get-sys-file-system.d.ts.map +0 -1
  253. package/runtime/gateways/file/node/get-sys-file-system.js +0 -11
  254. package/runtime/gateways/file/node/get-sys-file-system.js.map +0 -1
  255. package/runtime/gateways/file/node/index.d.ts +0 -2
  256. package/runtime/gateways/file/node/index.d.ts.map +0 -1
  257. package/runtime/gateways/file/node/index.js +0 -2
  258. package/runtime/gateways/file/node/index.js.map +0 -1
  259. package/runtime/gateways/file/node/node-filesystem.d.ts +0 -32
  260. package/runtime/gateways/file/node/node-filesystem.d.ts.map +0 -1
  261. package/runtime/gateways/file/node/node-filesystem.js +0 -33
  262. package/runtime/gateways/file/node/node-filesystem.js.map +0 -1
  263. package/runtime/gateways/file/node/to-array-buffer.d.ts +0 -2
  264. package/runtime/gateways/file/node/to-array-buffer.d.ts.map +0 -1
  265. package/runtime/gateways/file/node/to-array-buffer.js +0 -12
  266. package/runtime/gateways/file/node/to-array-buffer.js.map +0 -1
  267. package/runtime/gateways/file/sys-file-system-factory.d.ts +0 -4
  268. package/runtime/gateways/file/sys-file-system-factory.d.ts.map +0 -1
  269. package/runtime/gateways/file/sys-file-system-factory.js +0 -13
  270. package/runtime/gateways/file/sys-file-system-factory.js.map +0 -1
  271. package/runtime/gateways/file/utils.d.ts +0 -5
  272. package/runtime/gateways/file/utils.d.ts.map +0 -1
  273. package/runtime/gateways/file/utils.js +0 -27
  274. package/runtime/gateways/file/utils.js.map +0 -1
  275. package/runtime/gateways/file/version.d.ts +0 -2
  276. package/runtime/gateways/file/version.d.ts.map +0 -1
  277. package/runtime/gateways/file/version.js +0 -2
  278. package/runtime/gateways/file/version.js.map +0 -1
  279. package/runtime/gateways/fp-envelope-serialize.d.ts +0 -50
  280. package/runtime/gateways/fp-envelope-serialize.d.ts.map +0 -1
  281. package/runtime/gateways/fp-envelope-serialize.js +0 -141
  282. package/runtime/gateways/fp-envelope-serialize.js.map +0 -1
  283. package/runtime/gateways/index.d.ts +0 -6
  284. package/runtime/gateways/index.d.ts.map +0 -1
  285. package/runtime/gateways/index.js +0 -6
  286. package/runtime/gateways/index.js.map +0 -1
  287. package/runtime/gateways/indexeddb/gateway-impl.d.ts +0 -22
  288. package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +0 -1
  289. package/runtime/gateways/indexeddb/gateway-impl.js +0 -147
  290. package/runtime/gateways/indexeddb/gateway-impl.js.map +0 -1
  291. package/runtime/gateways/indexeddb/index.d.ts +0 -6
  292. package/runtime/gateways/indexeddb/index.d.ts.map +0 -1
  293. package/runtime/gateways/indexeddb/index.js +0 -6
  294. package/runtime/gateways/indexeddb/index.js.map +0 -1
  295. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +0 -15
  296. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +0 -1
  297. package/runtime/gateways/indexeddb/key-bag-indexeddb.js +0 -42
  298. package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +0 -1
  299. package/runtime/gateways/indexeddb-version.d.ts +0 -2
  300. package/runtime/gateways/indexeddb-version.d.ts.map +0 -1
  301. package/runtime/gateways/indexeddb-version.js +0 -2
  302. package/runtime/gateways/indexeddb-version.js.map +0 -1
  303. package/runtime/gateways/memory/gateway.d.ts +0 -18
  304. package/runtime/gateways/memory/gateway.d.ts.map +0 -1
  305. package/runtime/gateways/memory/gateway.js +0 -73
  306. package/runtime/gateways/memory/gateway.js.map +0 -1
  307. package/runtime/gateways/memory/version.d.ts +0 -2
  308. package/runtime/gateways/memory/version.d.ts.map +0 -1
  309. package/runtime/gateways/memory/version.js +0 -2
  310. package/runtime/gateways/memory/version.js.map +0 -1
  311. package/runtime/index.d.ts +0 -13
  312. package/runtime/index.d.ts.map +0 -1
  313. package/runtime/index.js +0 -13
  314. package/runtime/index.js.map +0 -1
  315. package/runtime/key-bag-memory.d.ts +0 -12
  316. package/runtime/key-bag-memory.d.ts.map +0 -1
  317. package/runtime/key-bag-memory.js +0 -23
  318. package/runtime/key-bag-memory.js.map +0 -1
  319. package/runtime/key-bag.d.ts +0 -85
  320. package/runtime/key-bag.d.ts.map +0 -1
  321. package/runtime/key-bag.js +0 -411
  322. package/runtime/key-bag.js.map +0 -1
  323. package/runtime/keyed-crypto.d.ts +0 -19
  324. package/runtime/keyed-crypto.d.ts.map +0 -1
  325. package/runtime/keyed-crypto.js +0 -192
  326. package/runtime/keyed-crypto.js.map +0 -1
  327. package/runtime/memory-sys-container.d.ts +0 -2
  328. package/runtime/memory-sys-container.d.ts.map +0 -1
  329. package/runtime/memory-sys-container.js +0 -2
  330. package/runtime/memory-sys-container.js.map +0 -1
  331. package/runtime/meta-key-hack.d.ts +0 -42
  332. package/runtime/meta-key-hack.d.ts.map +0 -1
  333. package/runtime/meta-key-hack.js +0 -201
  334. package/runtime/meta-key-hack.js.map +0 -1
  335. package/runtime/sts-service/index.d.ts +0 -40
  336. package/runtime/sts-service/index.d.ts.map +0 -1
  337. package/runtime/sts-service/index.js +0 -108
  338. package/runtime/sts-service/index.js.map +0 -1
  339. package/runtime/sys-container.d.ts +0 -2
  340. package/runtime/sys-container.d.ts.map +0 -1
  341. package/runtime/sys-container.js +0 -2
  342. package/runtime/sys-container.js.map +0 -1
  343. package/runtime/wait-pr-multiformats/block.d.ts +0 -47
  344. package/runtime/wait-pr-multiformats/block.d.ts.map +0 -1
  345. package/runtime/wait-pr-multiformats/block.js +0 -64
  346. package/runtime/wait-pr-multiformats/block.js.map +0 -1
  347. package/runtime/wait-pr-multiformats/codec-interface.d.ts +0 -29
  348. package/runtime/wait-pr-multiformats/codec-interface.d.ts.map +0 -1
  349. package/runtime/wait-pr-multiformats/codec-interface.js +0 -2
  350. package/runtime/wait-pr-multiformats/codec-interface.js.map +0 -1
  351. package/runtime/wait-pr-multiformats/index.d.ts +0 -3
  352. package/runtime/wait-pr-multiformats/index.d.ts.map +0 -1
  353. package/runtime/wait-pr-multiformats/index.js +0 -3
  354. package/runtime/wait-pr-multiformats/index.js.map +0 -1
  355. package/tests/blockstore/fp-envelope.test.ts-off +0 -65
  356. package/tests/blockstore/fragment-gateway.test.ts-off +0 -106
  357. package/tests/blockstore/interceptor-gateway.test.ts +0 -254
  358. package/tests/blockstore/keyed-crypto-indexeddb-file.test.ts +0 -128
  359. package/tests/blockstore/keyed-crypto.test.ts +0 -526
  360. package/tests/blockstore/loader.test.ts +0 -297
  361. package/tests/blockstore/standalone.test.ts +0 -152
  362. package/tests/blockstore/store.test.ts +0 -192
  363. package/tests/blockstore/transaction.test.ts +0 -130
  364. package/tests/fireproof/all-gateway.test.ts +0 -461
  365. package/tests/fireproof/attachable.test.ts +0 -686
  366. package/tests/fireproof/cars/bafkreidxwt2nhvbl4fnqfw3ctlt6zbrir4kqwmjo5im6rf4q5si27kgo2i.car +0 -0
  367. package/tests/fireproof/cars/bafkreidxwt2nhvbl4fnqfw3ctlt6zbrir4kqwmjo5im6rf4q5si27kgo2i.ts +0 -324
  368. package/tests/fireproof/charwise-boolean.test.ts +0 -66
  369. package/tests/fireproof/crdt.test.ts +0 -570
  370. package/tests/fireproof/database.test.ts +0 -779
  371. package/tests/fireproof/deleted-docs-handling.test.ts +0 -111
  372. package/tests/fireproof/fireproof.test.fixture.ts +0 -133
  373. package/tests/fireproof/fireproof.test.ts +0 -777
  374. package/tests/fireproof/hello.test.ts +0 -74
  375. package/tests/fireproof/indexer.test.ts +0 -458
  376. package/tests/fireproof/multiple-ledger.test.ts +0 -65
  377. package/tests/fireproof/query-docs.test.ts +0 -116
  378. package/tests/fireproof/query-limit-issue.test.ts +0 -147
  379. package/tests/fireproof/query-property-inconsistency.test.ts +0 -89
  380. package/tests/fireproof/query-result-properties.test.ts +0 -42
  381. package/tests/fireproof/stable-cid.test.ts +0 -69
  382. package/tests/fireproof/utils.test.ts +0 -135
  383. package/tests/gateway/file/loader-config.test.ts +0 -307
  384. package/tests/gateway/indexeddb/loader-config.test.ts +0 -79
  385. package/tests/helpers.ts +0 -174
  386. package/tests/react/img-file.test.tsx +0 -190
  387. package/tests/react/use-all-docs.test.tsx +0 -173
  388. package/tests/react/use-document-with-nonexistent-id.test.tsx +0 -96
  389. package/tests/react/use-fireproof-db-switch.test.tsx +0 -91
  390. package/tests/react/use-fireproof-stability.test.tsx +0 -145
  391. package/tests/react/use-fireproof.test.tsx +0 -645
  392. package/tests/runtime/fp-envelope-serialize.test.ts +0 -254
  393. package/tests/runtime/meta-key-hack.test.ts +0 -95
  394. package/tests/setup.file.ts +0 -1
  395. package/tests/setup.indexeddb.ts +0 -0
  396. package/tests/setup.memory.ts +0 -2
  397. package/tests/utils.test.ts +0 -192
  398. package/tests/vitest.file.config.ts +0 -14
  399. package/tests/vitest.indexeddb.config.ts +0 -37
  400. package/tests/vitest.memory.config.ts +0 -25
  401. package/types.d.ts +0 -462
  402. package/types.d.ts.map +0 -1
  403. package/types.js +0 -60
  404. package/types.js.map +0 -1
  405. package/use-fireproof/iframe-strategy.d.ts +0 -13
  406. package/use-fireproof/iframe-strategy.d.ts.map +0 -1
  407. package/use-fireproof/iframe-strategy.js +0 -83
  408. package/use-fireproof/iframe-strategy.js.map +0 -1
  409. package/use-fireproof/index.d.ts +0 -10
  410. package/use-fireproof/index.d.ts.map +0 -1
  411. package/use-fireproof/index.js +0 -16
  412. package/use-fireproof/index.js.map +0 -1
  413. package/use-fireproof/redirect-strategy.d.ts +0 -8
  414. package/use-fireproof/redirect-strategy.d.ts.map +0 -1
  415. package/use-fireproof/redirect-strategy.js +0 -31
  416. package/use-fireproof/redirect-strategy.js.map +0 -1
  417. package/utils.d.ts +0 -49
  418. package/utils.d.ts.map +0 -1
  419. package/utils.js +0 -454
  420. package/utils.js.map +0 -1
  421. package/version.d.ts +0 -2
  422. package/version.d.ts.map +0 -1
  423. package/version.js +0 -4
  424. package/version.js.map +0 -1
  425. package/write-queue.d.ts +0 -9
  426. package/write-queue.d.ts.map +0 -1
  427. package/write-queue.js +0 -70
  428. package/write-queue.js.map +0 -1
@@ -1,297 +0,0 @@
1
- import * as codec from "@ipld/dag-cbor";
2
- import { sha256 as hasher } from "multiformats/hashes/sha2";
3
- import { CID } from "multiformats/cid";
4
- import { CRDTMeta, CarTransaction, IndexTransactionMeta, SuperThis, bs, ensureSuperThis, rt } from "@fireproof/core";
5
- import { simpleBlockOpts } from "../helpers.js";
6
- import { FPBlock, isCarBlockItemReady, isCarBlockItemStale } from "../../src/blockstore/index.js";
7
- import { anyBlock2FPBlock } from "../../src/blockstore/loader-helpers.js";
8
-
9
- class MyMemoryBlockStore extends bs.EncryptedBlockstore {
10
- readonly memblock = new Map<string, FPBlock>();
11
- loader: bs.Loader;
12
- constructor(sthis: SuperThis) {
13
- const ebOpts = simpleBlockOpts(sthis, "MyMemoryBlockStore"); //, "MyMemoryBlockStore");
14
- // const ebOpts = {
15
- // name: "MyMemoryBlockStore",
16
- // } as bs.BlockstoreOpts;
17
- super(sthis, ebOpts);
18
- this.loader = new bs.Loader(sthis, ebOpts);
19
- }
20
- ready(): Promise<void> {
21
- return Promise.resolve();
22
- }
23
- close(): Promise<void> {
24
- return this.loader.close();
25
- }
26
- readonly transactions = new Set<CarTransaction>();
27
- // readonly lastTxMeta?: TransactionMeta;
28
- readonly compacting: boolean = false;
29
-
30
- override async put(fp: FPBlock): Promise<void> {
31
- this.memblock.set(fp.cid.toString(), fp);
32
- }
33
-
34
- // transaction<M ext(fn: (t: CarTransaction) => Promise<MetaType>, opts?: { noLoader: boolean }): Promise<MetaType> {
35
- // throw new Error("Method not implemented.");
36
- // }
37
-
38
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
39
- getFile(car: bs.AnyLink, cid: bs.AnyLink, isPublic?: boolean): Promise<Uint8Array> {
40
- throw new Error("Method not implemented.");
41
- }
42
- compact(): Promise<void> {
43
- throw new Error("Method not implemented.");
44
- }
45
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
46
- defaultCompact(blocks: bs.CompactionFetcher): Promise<bs.TransactionMeta> {
47
- throw new Error("Method not implemented.");
48
- }
49
- }
50
-
51
- describe("basic Loader simple", function () {
52
- let loader: bs.Loader;
53
- let block: FPBlock;
54
- let t: CarTransaction;
55
- const sthis = ensureSuperThis();
56
-
57
- afterEach(async () => {
58
- await loader.close();
59
- await loader.destroy();
60
- });
61
-
62
- beforeEach(async () => {
63
- const testDbName = "test-loader-commit";
64
- await sthis.start();
65
- const mockM = new MyMemoryBlockStore(sthis);
66
- t = new bs.CarTransactionImpl(mockM as bs.EncryptedBlockstore);
67
- loader = new bs.Loader(sthis, {
68
- ...simpleBlockOpts(sthis, testDbName),
69
- public: true,
70
- });
71
- await loader.ready();
72
- block = await anyBlock2FPBlock(
73
- await rt.mf.block.encode({
74
- value: { hello: "world" },
75
- hasher,
76
- codec,
77
- }),
78
- );
79
- await t.put(block);
80
- await mockM.put(block);
81
- });
82
- it("should have an empty car log", function () {
83
- expect(loader.carLog.length).toBe(0);
84
- });
85
- it("should commit", async () => {
86
- const carGroup = await loader.commit(t, { head: [block.cid] });
87
- expect(loader.carLog.length).toBe(1);
88
- const reader = await loader.loadCar(carGroup[0], loader.attachedStores.local());
89
- assert(isCarBlockItemReady(reader));
90
- expect(reader).toBeTruthy();
91
- const parsed = await bs.parseCarFile<CRDTMeta>(reader, loader.logger);
92
- expect(parsed.cars).toBeTruthy();
93
- expect(parsed.cars.length).toBe(0);
94
- expect(parsed.meta).toBeTruthy();
95
- expect(parsed.meta.head).toBeTruthy();
96
- });
97
- });
98
-
99
- describe("basic Loader with two commits", function () {
100
- let loader: bs.Loader;
101
- let block: FPBlock;
102
- let block2: FPBlock;
103
- let block3: FPBlock;
104
- let block4: FPBlock;
105
- let t: CarTransaction;
106
- let carCid: bs.CarGroup;
107
- let carCid0: bs.CarGroup;
108
-
109
- const sthis = ensureSuperThis();
110
-
111
- afterEach(async () => {
112
- await loader.close();
113
- await loader.destroy();
114
- });
115
-
116
- beforeEach(async () => {
117
- await sthis.start();
118
- const mockM = new MyMemoryBlockStore(sthis);
119
- t = new bs.CarTransactionImpl(mockM);
120
- loader = new bs.Loader(sthis, {
121
- ...simpleBlockOpts(sthis, "test-loader-two-commit"),
122
- public: true,
123
- });
124
- await loader.ready();
125
-
126
- block = await anyBlock2FPBlock(
127
- await rt.mf.block.encode({
128
- value: { hello: "world" },
129
- hasher,
130
- codec,
131
- }),
132
- );
133
- await t.put(block);
134
- carCid0 = await loader.commit(t, { head: [block.cid] });
135
-
136
- block2 = await anyBlock2FPBlock(
137
- await rt.mf.block.encode({
138
- value: { hello: "universe" },
139
- hasher,
140
- codec,
141
- }),
142
- );
143
- await t.put(block2);
144
- carCid = await loader.commit(t, { head: [block2.cid] });
145
-
146
- block3 = await anyBlock2FPBlock(
147
- await rt.mf.block.encode({
148
- value: { hello: "multiverse" },
149
- hasher,
150
- codec,
151
- }),
152
- );
153
- await t.put(block3);
154
-
155
- block4 = await anyBlock2FPBlock(
156
- await rt.mf.block.encode({
157
- value: { hello: "megaverse" },
158
- hasher,
159
- codec,
160
- }),
161
- );
162
-
163
- await t.put(block4);
164
- });
165
-
166
- it("should have a car log", function () {
167
- expect(loader.carLog.length).toBe(2);
168
- expect(loader.carLog.asArray()[0].toString()).toBe(carCid.toString());
169
- expect(loader.carLog.asArray()[1].toString()).toBe(carCid0.toString());
170
- });
171
-
172
- it("should commit", async () => {
173
- const reader = await loader.loadCar(carCid[0], loader.attachedStores.local());
174
- expect(reader).toBeTruthy();
175
- assert(isCarBlockItemReady(reader));
176
- const parsed = await bs.parseCarFile<CRDTMeta>(reader, loader.logger);
177
- expect(parsed.cars).toBeTruthy();
178
- expect(parsed.compact.length).toBe(0);
179
- expect(parsed.cars.length).toBe(1);
180
- expect(parsed.meta).toBeTruthy();
181
- expect(parsed.meta.head).toBeTruthy();
182
- });
183
-
184
- it("should compact", async () => {
185
- const compactCid = await loader.commit(t, { head: [block2.cid] }, { compact: true });
186
- expect(loader.carLog.length).toBe(1);
187
-
188
- const reader = await loader.loadCar(compactCid[0], loader.attachedStores.local());
189
- expect(reader).toBeTruthy();
190
- assert(isCarBlockItemReady(reader));
191
- const parsed = await bs.parseCarFile<CRDTMeta>(reader, loader.logger);
192
- expect(parsed.cars).toBeTruthy();
193
- expect(parsed.compact.length).toBe(2);
194
- expect(parsed.cars.length).toBe(0);
195
- expect(parsed.meta).toBeTruthy();
196
- expect(parsed.meta.head).toBeTruthy();
197
- });
198
-
199
- it("compact should erase old files", async () => {
200
- const cs = await loader.attachedStores.local().active.car;
201
- await loader.commit(t, { head: [block2.cid] }, { compact: true });
202
- expect(loader.carLog.length).toBe(1);
203
- await loader.commit(t, { head: [block3.cid] }, { compact: false });
204
- expect(loader.carLog.length).toBe(2);
205
- expect(await cs.load(carCid[0])).toBeTruthy();
206
- await loader.commit(t, { head: [block3.cid] }, { compact: true });
207
- expect(loader.carLog.length).toBe(1);
208
- const e0 = await cs.load(carCid[0]).catch((e) => e);
209
- expect(e0 instanceof Error).toBeTruthy();
210
- await loader.commit(t, { head: [block4.cid] }, { compact: false });
211
- expect(loader.carLog.length).toBe(2);
212
-
213
- const e = await loader.loadCar(carCid[0], loader.attachedStores.local());
214
- expect(e).toBeTruthy();
215
- assert(isCarBlockItemStale(e));
216
- expect(e.item.status).toBe("stale");
217
- expect(e.item.statusCause.message).toMatch(/(missing car file)|(not found)/);
218
- }, 10000);
219
- });
220
-
221
- describe("basic Loader with index commits", function () {
222
- let block: FPBlock;
223
- let ib: bs.EncryptedBlockstore;
224
- let indexerResult: IndexTransactionMeta;
225
- let cid: CID;
226
- // let indexMap: Map<string, CID>;
227
- const sthis = ensureSuperThis();
228
-
229
- afterEach(async () => {
230
- await ib.close();
231
- await ib.destroy();
232
- });
233
-
234
- beforeEach(async () => {
235
- const name = "test-loader-index" + Math.random();
236
- await sthis.start();
237
- // t = new CarTransaction()
238
- ib = new bs.EncryptedBlockstore(sthis, simpleBlockOpts(sthis, name));
239
- await ib.ready();
240
- block = await anyBlock2FPBlock(
241
- await rt.mf.block.encode({
242
- value: { hello: "world" },
243
- hasher,
244
- codec,
245
- }),
246
- );
247
- // console.log('block', block.cid)
248
-
249
- cid = CID.parse("bafybeia4luuns6dgymy5kau5rm7r4qzrrzg6cglpzpogussprpy42cmcn4");
250
- indexerResult = {
251
- indexes: {
252
- hello: {
253
- byId: cid,
254
- byKey: cid,
255
- head: [cid as CID<unknown, number, number, 1>],
256
- name: "hello",
257
- map: "(doc) => doc.hello",
258
- },
259
- },
260
- };
261
- // indexMap = new Map();
262
- });
263
-
264
- it("should start with an empty car log", function () {
265
- expect(ib.loader).toBeTruthy();
266
- expect(ib.loader.carLog.length).toBe(0);
267
- });
268
-
269
- it("should commit the index metadata", async () => {
270
- const { cars: carCid } = await ib.transaction<IndexTransactionMeta>(
271
- async (t) => {
272
- await t.put(block);
273
- return indexerResult;
274
- } /* , indexMap */,
275
- );
276
-
277
- expect(carCid).toBeTruthy();
278
- expect(ib.loader).toBeTruthy();
279
- const carLog = ib.loader.carLog;
280
-
281
- expect(carLog.length).toBe(1);
282
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
283
- const reader = await ib.loader.loadCar(carCid![0], ib.loader.attachedStores.local());
284
- expect(reader).toBeTruthy();
285
- assert(isCarBlockItemReady(reader));
286
- const parsed = await bs.parseCarFile<IndexTransactionMeta>(reader, sthis.logger);
287
- expect(parsed.cars).toBeTruthy();
288
- expect(parsed.cars.length).toBe(0);
289
- expect(parsed.meta).toBeTruthy();
290
- expect(parsed.meta.indexes).toBeTruthy();
291
- const indexes = parsed.meta.indexes;
292
- expect(indexes).toBeTruthy();
293
- expect(indexes.hello).toBeTruthy();
294
- expect(indexes.hello.map).toBe("(doc) => doc.hello");
295
- expect(indexes.hello.name).toBe("hello");
296
- });
297
- });
@@ -1,152 +0,0 @@
1
- import { BuildURI, runtimeFn, URI } from "@adviser/cement";
2
- import { ensureSuperThis, PARAM, CRDTImpl, CRDT, LedgerOpts, fireproof, bs, sleep } from "@fireproof/core";
3
- import { Link } from "multiformats";
4
- import { stripper } from "@adviser/cement/utils";
5
- import pLimit from "p-limit";
6
-
7
- describe("standalone", () => {
8
- const sthis = ensureSuperThis();
9
-
10
- describe("howto-loader", () => {
11
- // beforeAll(async () => {
12
- // const db = fireproof("howto-loader", {
13
- // storeUrls: {
14
- // base: "file://dist/how-to-loader?store-key=insecure",
15
- // },
16
- // });
17
- // for (let cid = 0; cid < 1; cid++) {
18
- // const blk = new Array(3)
19
- // .fill(0)
20
- // .map((_, peer) => ({ _id: `test-${cid}:peer-${peer}`, value: { cid: `test-${cid}`, peer: `peer-${peer}` } }));
21
- // await db.bulk(blk);
22
- // }
23
- // // await db.compact()
24
- // await db.close();
25
- // });
26
-
27
- it("understand the writer", async () => {
28
- const db = fireproof("howto-writer", {
29
- storeUrls: {
30
- base: "memory://how-to-writer",
31
- },
32
- });
33
- await db.put({ _id: "test-1", value: { cid: "test-1", peer: "peer-1" } });
34
- await db.close();
35
- });
36
-
37
- it.skip("understand loader", async () => {
38
- const db = fireproof("howto-loader", {
39
- storeUrls: {
40
- base: "file://dist/how-to-loader?store-key=insecure",
41
- },
42
- });
43
- const fn = vi.fn();
44
- const loader = db.ledger.crdt.blockstore.loader as bs.Loader;
45
- loader.cidCache.onSet(fn);
46
- expect(fn).toHaveBeenCalledTimes(0);
47
- await db.ready();
48
- expect(
49
- loader.cidCache.values().map((i) => {
50
- const v = i.value.Ok();
51
- return {
52
- type: v.item.type,
53
- cid: v.cid,
54
- value: stripper(/(type|cid)/, v.item),
55
- };
56
- }),
57
- ).toEqual([]);
58
- // let last = 0
59
- // for (let i = 0; i < 100; i++) {
60
- // if (last !== fn.mock.calls.length) {
61
- // console.log("fn", i, fn.mock.calls.length);
62
- // last = fn.mock.calls.length
63
- // }
64
- // await sleep(10);
65
- // }
66
- const ret = await db.allDocs();
67
- expect(ret.rows.length).toBe(100);
68
- expect(fn).toHaveBeenCalledTimes(109393);
69
- await db.close();
70
- });
71
- });
72
-
73
- describe("test-plimit", () => {
74
- it("should work with plimit", async () => {
75
- const limiter = pLimit(2);
76
- let concurrent = 0;
77
- const ret = await Promise.all(
78
- Array(10)
79
- .fill(0)
80
- .map((_, i) => {
81
- return limiter(async () => {
82
- concurrent++;
83
- expect(concurrent).toBeLessThanOrEqual(2);
84
- await sleep(100);
85
- concurrent--;
86
- return i;
87
- });
88
- }),
89
- );
90
- expect(ret).toEqual(Array.from(Array(10).keys()));
91
- });
92
- });
93
-
94
- describe.skip("crdt-stack", () => {
95
- let crdt: CRDT;
96
- beforeEach(async () => {
97
- let uri: URI;
98
- switch (true) {
99
- case runtimeFn().isBrowser:
100
- uri = BuildURI.from("indexeddb://standalone-peer-log").setParam(PARAM.NAME, "peer-log").URI();
101
- break;
102
- default:
103
- uri = BuildURI.from("file://dist/standalone")
104
- .setParam(PARAM.NAME, "peer-log")
105
- .setParam(PARAM.STORE_KEY, "insecure")
106
- .URI();
107
- break;
108
- }
109
- // console.log("uri", uri.toString());
110
- crdt = new CRDTImpl(sthis, {
111
- name: "peer-log",
112
- writeQueue: { chunkSize: 32 },
113
- storeUrls: {
114
- data: {
115
- meta: uri.build().setParam(PARAM.STORE, "meta").setParam(PARAM.STORE_KEY, "insecure").URI(),
116
- car: uri.build().setParam(PARAM.STORE, "car").setParam(PARAM.STORE_KEY, "insecure").URI(),
117
- file: uri.build().setParam(PARAM.STORE, "file").setParam(PARAM.STORE_KEY, "insecure").URI(),
118
- wal: uri.build().setParam(PARAM.STORE, "wal").setParam(PARAM.STORE_KEY, "insecure").URI(),
119
- },
120
- },
121
- } as LedgerOpts);
122
- await crdt.ready();
123
- });
124
- afterEach(async () => {
125
- await crdt.close();
126
- });
127
-
128
- it.each(new Array(10).fill(0).map((_, i) => ({ cid: i })))("write:$cid", async ({ cid }) => {
129
- const peers = new Array(10).fill(0).map((_, peer) => {
130
- return { id: `test-${cid}:peer-${peer}`, value: { cid: `test-${cid}`, peer: `peer-${peer}` } };
131
- });
132
- await crdt.bulk(peers);
133
- });
134
- it("read", async () => {
135
- for (let cid = 0; cid < 10; cid++) {
136
- for (let peer = 0; peer < 10; peer++) {
137
- const id = `test-${cid}:peer-${peer}`;
138
- const res = (await crdt.get(id)) as unknown as { cid: Link; doc: { cid: string; peer: string } };
139
- expect(res.doc).toEqual({ cid: `test-${cid}`, peer: `peer-${peer}` });
140
- }
141
- }
142
- });
143
- // for (let cid = 0; cid < 10; cid++) {
144
- // const gte = `test-${cid}`;
145
- // const ret = [];
146
- // for await (const [key, link] of entries(blk, root, { gte })) {
147
- // ret.push([key, link]);
148
- // }
149
- // expect(ret.length).toEqual(10);
150
- // }
151
- });
152
- });
@@ -1,192 +0,0 @@
1
- import { CID } from "multiformats";
2
- import { rt, bs, NotFoundError, PARAM, ensureSuperThis } from "@fireproof/core";
3
- import { Result } from "@adviser/cement";
4
- import { mockLoader, noopUrl } from "../helpers.js";
5
-
6
- // function runtime(sthis: SuperThis) {
7
- // return bs.toStoreRuntime(sthis);
8
- // }
9
-
10
- // async function mockLoader(sthis: SuperThis, name?: string): Promise<bs.StoreFactoryItem> {
11
- // const url = noopUrl(name);
12
- // return {
13
- // // sthis,
14
- // url: url,
15
- // loader:
16
- // };
17
- // }
18
-
19
- describe("CarStore", function () {
20
- let store: bs.CarStore;
21
- const sthis = ensureSuperThis();
22
-
23
- let loader: bs.Loadable;
24
-
25
- afterEach(async () => {
26
- await store.close();
27
- await store.destroy();
28
- });
29
-
30
- beforeEach(async () => {
31
- loader = mockLoader(sthis);
32
- await sthis.start();
33
- const at = await bs.createAttachedStores(noopUrl("test"), loader);
34
- store = at.stores.car;
35
- await store.start(at.stores);
36
- });
37
-
38
- it("should have a name", function () {
39
- expect(store.url().getParam(PARAM.NAME)).toEqual("test");
40
- });
41
-
42
- it("should save a car", async () => {
43
- const car: bs.AnyBlock = {
44
- cid: "cidKey" as unknown as CID,
45
- bytes: new Uint8Array([55, 56, 57]),
46
- };
47
- await store.save(car);
48
- const data = (await store.realGateway.getPlain({ loader }, store.url(), car.cid.toString())).Ok();
49
- expect(sthis.txt.decode(data)).toEqual(sthis.txt.decode(car.bytes));
50
- });
51
- });
52
-
53
- describe("CarStore with a saved car", function () {
54
- let store: bs.CarStore;
55
- let car: bs.AnyBlock;
56
- let loader: bs.Loadable;
57
-
58
- const sthis = ensureSuperThis();
59
-
60
- afterEach(async () => {
61
- await store.close();
62
- await store.destroy();
63
- });
64
-
65
- beforeEach(async () => {
66
- loader = mockLoader(sthis);
67
- await sthis.start();
68
-
69
- const at = await bs.createAttachedStores(noopUrl("test2"), loader);
70
- store = at.stores.car;
71
- await store.start(at.stores);
72
- car = {
73
- cid: "cid" as unknown as CID,
74
- bytes: new Uint8Array([55, 56, 57, 80]),
75
- };
76
- await store.save(car);
77
- });
78
-
79
- it("should have a car", async () => {
80
- const data = (await store.realGateway.getPlain({ loader }, store.url(), car.cid.toString())).Ok();
81
- expect(sthis.txt.decode(data)).toEqual(sthis.txt.decode(car.bytes));
82
- });
83
-
84
- it("should load a car", async () => {
85
- const loaded = await store.load(car.cid);
86
- expect(loaded.cid).toEqual(car.cid);
87
- expect(loaded.bytes.constructor.name).toEqual("Uint8Array");
88
- expect(loaded.bytes.toString()).toEqual(car.bytes.toString());
89
- });
90
-
91
- it("should remove a car", async () => {
92
- await store.remove(car.cid);
93
- const { e: error } = (await store.load(car.cid).catch((e: Error) => ({ e }))) as { e: NotFoundError };
94
- expect(error).toBeTruthy();
95
- });
96
- });
97
-
98
- describe("MetaStore", function () {
99
- let store: bs.MetaStore;
100
- const sthis = ensureSuperThis();
101
- let loader: bs.Loadable;
102
-
103
- afterEach(async () => {
104
- await store.close();
105
- await store.destroy();
106
- });
107
-
108
- beforeEach(async () => {
109
- loader = mockLoader(sthis);
110
- await sthis.start();
111
- const at = await bs.createAttachedStores(noopUrl("test"), loader);
112
- store = at.stores.meta;
113
- await store.start(at.stores);
114
- });
115
-
116
- it("should have a name", function () {
117
- expect(store.url().getParam(PARAM.NAME)).toEqual("test");
118
- });
119
-
120
- it("should save a header", async () => {
121
- const cid = CID.parse("bafybeia4luuns6dgymy5kau5rm7r4qzrrzg6cglpzpogussprpy42cmcn4");
122
- const h: bs.DbMeta = {
123
- cars: [cid],
124
- // key: undefined,
125
- };
126
- await store.save(h);
127
- const file = await store.realGateway.getPlain({ loader }, store.url(), "main");
128
- const blockMeta = (await rt.gw.fpDeserialize(sthis, store.url(), file)) as Result<bs.FPEnvelopeMeta>;
129
- expect(blockMeta.Ok()).toBeTruthy();
130
- expect(blockMeta.Ok().payload.length).toEqual(1);
131
- const decodedHeader = blockMeta.Ok().payload[0].dbMeta;
132
- expect(decodedHeader).toBeTruthy();
133
- expect(decodedHeader.cars).toBeTruthy();
134
- expect(decodedHeader.cars[0].toString()).toEqual(cid.toString());
135
- });
136
- });
137
-
138
- describe("MetaStore with a saved header", function () {
139
- let store: bs.MetaStore;
140
- let cid: CID;
141
- const sthis = ensureSuperThis();
142
- let loader: bs.Loadable;
143
-
144
- afterEach(async () => {
145
- await store.close();
146
- await store.destroy();
147
- });
148
-
149
- beforeEach(async () => {
150
- loader = mockLoader(sthis);
151
- await sthis.start();
152
- const at = await bs.createAttachedStores(noopUrl("test3-meta"), loader);
153
- store = at.stores.meta;
154
- await store.start(at.stores);
155
- cid = CID.parse("bafybeia4luuns6dgymy5kau5rm7r4qzrrzg6cglpzpogussprpy42cmcn4");
156
- await store.save({ cars: [cid] /*, key: undefined */ });
157
- });
158
-
159
- // it("should load", async () =>{
160
- // expect(onload).toBeTruthy();
161
- // expect(onload?.length).toEqual(1);
162
- // expect(onload?.[0].cars.toString()).toEqual(cid.toString());
163
- // });
164
-
165
- it("should have a header", async () => {
166
- const bytes = await store.realGateway.getPlain({ loader }, store.url(), "main");
167
- const data = sthis.txt.decode(bytes.Ok());
168
- expect(data).toMatch(/parents/);
169
- const header = JSON.parse(data)[0];
170
- expect(header).toBeDefined();
171
- expect(header.parents).toBeDefined();
172
- // const [blockMeta] = await store.handleByteHeads(bytes);
173
-
174
- const blockMeta = (await rt.gw.fpDeserialize(sthis, store.url(), bytes)) as Result<bs.FPEnvelopeMeta>;
175
- expect(blockMeta.Ok()).toBeTruthy();
176
- expect(blockMeta.Ok().payload.length).toEqual(1);
177
- const decodedHeader = blockMeta.Ok().payload[0].dbMeta;
178
- expect(decodedHeader).toBeDefined();
179
- expect(decodedHeader.cars).toBeDefined();
180
- expect(decodedHeader.cars[0].toString()).toEqual(cid.toString());
181
- });
182
-
183
- it("should load a header", async () => {
184
- const metaStream = store.stream();
185
- for await (const cars of metaStream) {
186
- // expect(loaded).toBeTruthy();
187
- expect(cars).toBeTruthy();
188
- expect(cars.map((i) => i.cars.map((i) => i.toString())).flat(2)).toEqual([cid.toString()]);
189
- break;
190
- }
191
- });
192
- });