@fireproof/core 0.20.5-dev-preview-1 → 0.20.5-dev-preview-3

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 (437) hide show
  1. package/apply-head-queue.d.ts +18 -0
  2. package/apply-head-queue.d.ts.map +1 -0
  3. package/apply-head-queue.js +47 -0
  4. package/apply-head-queue.js.map +1 -0
  5. package/blockstore/attachable-store.d.ts +19 -0
  6. package/blockstore/attachable-store.d.ts.map +1 -0
  7. package/blockstore/attachable-store.js +316 -0
  8. package/blockstore/attachable-store.js.map +1 -0
  9. package/blockstore/commit-queue.d.ts +17 -0
  10. package/blockstore/commit-queue.d.ts.map +1 -0
  11. package/blockstore/commit-queue.js +60 -0
  12. package/blockstore/commit-queue.js.map +1 -0
  13. package/blockstore/commitor.d.ts +21 -0
  14. package/blockstore/commitor.d.ts.map +1 -0
  15. package/blockstore/commitor.js +95 -0
  16. package/blockstore/commitor.js.map +1 -0
  17. package/blockstore/connect-raw.d.ts +2 -0
  18. package/blockstore/connect-raw.d.ts.map +1 -0
  19. package/blockstore/connect-raw.js +2 -0
  20. package/blockstore/connect-raw.js.map +1 -0
  21. package/blockstore/connection-base.d.ts +2 -0
  22. package/blockstore/connection-base.d.ts.map +1 -0
  23. package/blockstore/connection-base.js +2 -0
  24. package/blockstore/connection-base.js.map +1 -0
  25. package/blockstore/encrypt-helpers.d.ts +2 -0
  26. package/blockstore/encrypt-helpers.d.ts.map +1 -0
  27. package/blockstore/encrypt-helpers.js +2 -0
  28. package/blockstore/encrypt-helpers.js.map +1 -0
  29. package/blockstore/fp-envelope.d.ts +32 -0
  30. package/blockstore/fp-envelope.d.ts.map +1 -0
  31. package/blockstore/fp-envelope.js +14 -0
  32. package/blockstore/fp-envelope.js.map +1 -0
  33. package/blockstore/gateway.d.ts +20 -0
  34. package/blockstore/gateway.d.ts.map +1 -0
  35. package/blockstore/gateway.js +2 -0
  36. package/blockstore/gateway.js.map +1 -0
  37. package/blockstore/index.d.ts +16 -0
  38. package/blockstore/index.d.ts.map +1 -0
  39. package/blockstore/index.js +16 -0
  40. package/blockstore/index.js.map +1 -0
  41. package/blockstore/interceptor-gateway.d.ts +29 -0
  42. package/blockstore/interceptor-gateway.d.ts.map +1 -0
  43. package/blockstore/interceptor-gateway.js +137 -0
  44. package/blockstore/interceptor-gateway.js.map +1 -0
  45. package/blockstore/loader-helpers.d.ts +10 -0
  46. package/blockstore/loader-helpers.d.ts.map +1 -0
  47. package/blockstore/loader-helpers.js +115 -0
  48. package/blockstore/loader-helpers.js.map +1 -0
  49. package/blockstore/loader.d.ts +61 -0
  50. package/blockstore/loader.d.ts.map +1 -0
  51. package/blockstore/loader.js +494 -0
  52. package/blockstore/loader.js.map +1 -0
  53. package/blockstore/register-store-protocol.d.ts +22 -0
  54. package/blockstore/register-store-protocol.d.ts.map +1 -0
  55. package/blockstore/register-store-protocol.js +114 -0
  56. package/blockstore/register-store-protocol.js.map +1 -0
  57. package/blockstore/serde-gateway.d.ts +78 -0
  58. package/blockstore/serde-gateway.d.ts.map +1 -0
  59. package/blockstore/serde-gateway.js +2 -0
  60. package/blockstore/serde-gateway.js.map +1 -0
  61. package/blockstore/store-factory.d.ts +11 -0
  62. package/blockstore/store-factory.d.ts.map +1 -0
  63. package/blockstore/store-factory.js +104 -0
  64. package/blockstore/store-factory.js.map +1 -0
  65. package/blockstore/store-remote.d.ts +2 -0
  66. package/blockstore/store-remote.d.ts.map +1 -0
  67. package/blockstore/store-remote.js +2 -0
  68. package/blockstore/store-remote.js.map +1 -0
  69. package/blockstore/store.d.ts +86 -0
  70. package/blockstore/store.d.ts.map +1 -0
  71. package/blockstore/store.js +439 -0
  72. package/blockstore/store.js.map +1 -0
  73. package/blockstore/task-manager.d.ts +19 -0
  74. package/blockstore/task-manager.d.ts.map +1 -0
  75. package/blockstore/task-manager.js +50 -0
  76. package/blockstore/task-manager.js.map +1 -0
  77. package/blockstore/transaction.d.ts +62 -0
  78. package/blockstore/transaction.d.ts.map +1 -0
  79. package/blockstore/transaction.js +261 -0
  80. package/blockstore/transaction.js.map +1 -0
  81. package/blockstore/types.d.ts +508 -0
  82. package/blockstore/types.d.ts.map +1 -0
  83. package/blockstore/types.js +83 -0
  84. package/blockstore/types.js.map +1 -0
  85. package/blockstore/uri-interceptor.d.ts +19 -0
  86. package/blockstore/uri-interceptor.d.ts.map +1 -0
  87. package/blockstore/uri-interceptor.js +61 -0
  88. package/blockstore/uri-interceptor.js.map +1 -0
  89. package/bundle-not-impl.d.ts +2 -0
  90. package/bundle-not-impl.d.ts.map +1 -0
  91. package/bundle-not-impl.js +4 -0
  92. package/bundle-not-impl.js.map +1 -0
  93. package/cli/main.js +26616 -0
  94. package/crdt-clock.d.ts +27 -0
  95. package/crdt-clock.d.ts.map +1 -0
  96. package/crdt-clock.js +138 -0
  97. package/crdt-clock.js.map +1 -0
  98. package/crdt-helpers.d.ts +19 -0
  99. package/crdt-helpers.d.ts.map +1 -0
  100. package/crdt-helpers.js +332 -0
  101. package/crdt-helpers.js.map +1 -0
  102. package/crdt.d.ts +41 -0
  103. package/crdt.d.ts.map +1 -0
  104. package/crdt.js +164 -0
  105. package/crdt.js.map +1 -0
  106. package/database.d.ts +34 -0
  107. package/database.d.ts.map +1 -0
  108. package/database.js +124 -0
  109. package/database.js.map +1 -0
  110. package/deno.json +2 -2
  111. package/index.d.ts +15 -2741
  112. package/index.d.ts.map +1 -0
  113. package/index.js +14 -7274
  114. package/index.js.map +1 -1
  115. package/indexer-helpers.d.ts +69 -0
  116. package/indexer-helpers.d.ts.map +1 -0
  117. package/indexer-helpers.js +136 -0
  118. package/indexer-helpers.js.map +1 -0
  119. package/indexer.d.ts +24 -0
  120. package/indexer.d.ts.map +1 -0
  121. package/indexer.js +230 -0
  122. package/indexer.js.map +1 -0
  123. package/ledger.d.ts +55 -0
  124. package/ledger.d.ts.map +1 -0
  125. package/ledger.js +234 -0
  126. package/ledger.js.map +1 -0
  127. package/package.json +26 -17
  128. package/protocols/cloud/http-connection.d.ts +25 -0
  129. package/protocols/cloud/http-connection.d.ts.map +1 -0
  130. package/protocols/cloud/http-connection.js +153 -0
  131. package/protocols/cloud/http-connection.js.map +1 -0
  132. package/protocols/cloud/index.d.ts +10 -0
  133. package/protocols/cloud/index.d.ts.map +1 -0
  134. package/protocols/cloud/index.js +10 -0
  135. package/protocols/cloud/index.js.map +1 -0
  136. package/protocols/cloud/msg-raw-connection-base.d.ts +16 -0
  137. package/protocols/cloud/msg-raw-connection-base.d.ts.map +1 -0
  138. package/protocols/cloud/msg-raw-connection-base.js +22 -0
  139. package/protocols/cloud/msg-raw-connection-base.js.map +1 -0
  140. package/protocols/cloud/msg-types-data.d.ts +36 -0
  141. package/protocols/cloud/msg-types-data.d.ts.map +1 -0
  142. package/protocols/cloud/msg-types-data.js +38 -0
  143. package/protocols/cloud/msg-types-data.js.map +1 -0
  144. package/protocols/cloud/msg-types-meta.d.ts +41 -0
  145. package/protocols/cloud/msg-types-meta.d.ts.map +1 -0
  146. package/protocols/cloud/msg-types-meta.js +98 -0
  147. package/protocols/cloud/msg-types-meta.js.map +1 -0
  148. package/protocols/cloud/msg-types-wal.d.ts +33 -0
  149. package/protocols/cloud/msg-types-wal.d.ts.map +1 -0
  150. package/protocols/cloud/msg-types-wal.js +38 -0
  151. package/protocols/cloud/msg-types-wal.js.map +1 -0
  152. package/protocols/cloud/msg-types.d.ts +282 -0
  153. package/protocols/cloud/msg-types.d.ts.map +1 -0
  154. package/protocols/cloud/msg-types.js +278 -0
  155. package/protocols/cloud/msg-types.js.map +1 -0
  156. package/protocols/cloud/msger.d.ts +79 -0
  157. package/protocols/cloud/msger.d.ts.map +1 -0
  158. package/protocols/cloud/msger.js +198 -0
  159. package/protocols/cloud/msger.js.map +1 -0
  160. package/protocols/cloud/ws-connection.d.ts +29 -0
  161. package/protocols/cloud/ws-connection.d.ts.map +1 -0
  162. package/protocols/cloud/ws-connection.js +166 -0
  163. package/protocols/cloud/ws-connection.js.map +1 -0
  164. package/protocols/index.d.ts +2 -0
  165. package/protocols/index.d.ts.map +1 -0
  166. package/protocols/index.js +2 -0
  167. package/protocols/index.js.map +1 -0
  168. package/react/create-attach.d.ts +6 -0
  169. package/react/create-attach.d.ts.map +1 -0
  170. package/react/create-attach.js +75 -0
  171. package/react/create-attach.js.map +1 -0
  172. package/react/{index.d.cts → img-file.d.ts} +6 -53
  173. package/react/img-file.d.ts.map +1 -0
  174. package/react/img-file.js +57 -0
  175. package/react/img-file.js.map +1 -0
  176. package/react/index.d.ts +5 -336
  177. package/react/index.d.ts.map +1 -0
  178. package/react/index.js +4 -358
  179. package/react/index.js.map +1 -1
  180. package/react/types.d.ts +71 -0
  181. package/react/types.d.ts.map +1 -0
  182. package/react/types.js +2 -0
  183. package/react/types.js.map +1 -0
  184. package/react/use-all-docs.d.ts +4 -0
  185. package/react/use-all-docs.d.ts.map +1 -0
  186. package/react/use-all-docs.js +25 -0
  187. package/react/use-all-docs.js.map +1 -0
  188. package/react/use-attach.d.ts +6 -0
  189. package/react/use-attach.d.ts.map +1 -0
  190. package/react/use-attach.js +75 -0
  191. package/react/use-attach.js.map +1 -0
  192. package/react/use-changes.d.ts +4 -0
  193. package/react/use-changes.d.ts.map +1 -0
  194. package/react/use-changes.js +19 -0
  195. package/react/use-changes.js.map +1 -0
  196. package/react/use-document.d.ts +4 -0
  197. package/react/use-document.d.ts.map +1 -0
  198. package/react/use-document.js +109 -0
  199. package/react/use-document.js.map +1 -0
  200. package/react/use-fireproof.d.ts +6 -0
  201. package/react/use-fireproof.d.ts.map +1 -0
  202. package/react/use-fireproof.js +20 -0
  203. package/react/use-fireproof.js.map +1 -0
  204. package/react/use-live-query.d.ts +4 -0
  205. package/react/use-live-query.d.ts.map +1 -0
  206. package/react/use-live-query.js +27 -0
  207. package/react/use-live-query.js.map +1 -0
  208. package/runtime/files.d.ts +12 -0
  209. package/runtime/files.d.ts.map +1 -0
  210. package/runtime/files.js +29 -0
  211. package/runtime/files.js.map +1 -0
  212. package/runtime/gateways/cloud/gateway.d.ts +42 -0
  213. package/runtime/gateways/cloud/gateway.d.ts.map +1 -0
  214. package/runtime/gateways/cloud/gateway.js +528 -0
  215. package/runtime/gateways/cloud/gateway.js.map +1 -0
  216. package/runtime/gateways/cloud/index.d.ts +3 -0
  217. package/runtime/gateways/cloud/index.d.ts.map +1 -0
  218. package/runtime/gateways/cloud/index.js +3 -0
  219. package/runtime/gateways/cloud/index.js.map +1 -0
  220. package/runtime/gateways/cloud/to-cloud.d.ts +46 -0
  221. package/runtime/gateways/cloud/to-cloud.d.ts.map +1 -0
  222. package/runtime/gateways/cloud/to-cloud.js +159 -0
  223. package/runtime/gateways/cloud/to-cloud.js.map +1 -0
  224. package/runtime/gateways/def-serde-gateway.d.ts +18 -0
  225. package/runtime/gateways/def-serde-gateway.d.ts.map +1 -0
  226. package/runtime/gateways/def-serde-gateway.js +89 -0
  227. package/runtime/gateways/def-serde-gateway.js.map +1 -0
  228. package/runtime/gateways/file/deno/deno-filesystem.d.ts +27 -0
  229. package/runtime/gateways/file/deno/deno-filesystem.d.ts.map +1 -0
  230. package/runtime/gateways/file/deno/deno-filesystem.js +52 -0
  231. package/runtime/gateways/file/deno/deno-filesystem.js.map +1 -0
  232. package/runtime/gateways/file/deno/get-sys-file-system.d.ts +4 -0
  233. package/runtime/gateways/file/deno/get-sys-file-system.d.ts.map +1 -0
  234. package/runtime/gateways/file/deno/get-sys-file-system.js +11 -0
  235. package/runtime/gateways/file/deno/get-sys-file-system.js.map +1 -0
  236. package/runtime/gateways/file/deno/index.d.ts +2 -0
  237. package/runtime/gateways/file/deno/index.d.ts.map +1 -0
  238. package/runtime/gateways/file/deno/index.js +2 -0
  239. package/runtime/gateways/file/deno/index.js.map +1 -0
  240. package/runtime/gateways/file/gateway-impl.d.ts +18 -0
  241. package/runtime/gateways/file/gateway-impl.d.ts.map +1 -0
  242. package/runtime/gateways/file/gateway-impl.js +121 -0
  243. package/runtime/gateways/file/gateway-impl.js.map +1 -0
  244. package/runtime/gateways/file/index.d.ts +3 -0
  245. package/runtime/gateways/file/index.d.ts.map +1 -0
  246. package/runtime/gateways/file/index.js +3 -0
  247. package/runtime/gateways/file/index.js.map +1 -0
  248. package/runtime/gateways/file/key-bag-file.d.ts +19 -0
  249. package/runtime/gateways/file/key-bag-file.d.ts.map +1 -0
  250. package/runtime/gateways/file/key-bag-file.js +40 -0
  251. package/runtime/gateways/file/key-bag-file.js.map +1 -0
  252. package/runtime/gateways/file/node/get-sys-file-system.d.ts +4 -0
  253. package/runtime/gateways/file/node/get-sys-file-system.d.ts.map +1 -0
  254. package/runtime/gateways/file/node/get-sys-file-system.js +11 -0
  255. package/runtime/gateways/file/node/get-sys-file-system.js.map +1 -0
  256. package/runtime/gateways/file/node/index.d.ts +2 -0
  257. package/runtime/gateways/file/node/index.d.ts.map +1 -0
  258. package/runtime/gateways/file/node/index.js +2 -0
  259. package/runtime/gateways/file/node/index.js.map +1 -0
  260. package/runtime/gateways/file/node/node-filesystem.d.ts +32 -0
  261. package/runtime/gateways/file/node/node-filesystem.d.ts.map +1 -0
  262. package/runtime/gateways/file/node/node-filesystem.js +33 -0
  263. package/runtime/gateways/file/node/node-filesystem.js.map +1 -0
  264. package/runtime/gateways/file/node/to-array-buffer.d.ts +2 -0
  265. package/runtime/gateways/file/node/to-array-buffer.d.ts.map +1 -0
  266. package/runtime/gateways/file/node/to-array-buffer.js +12 -0
  267. package/runtime/gateways/file/node/to-array-buffer.js.map +1 -0
  268. package/runtime/gateways/file/sys-file-system-factory.d.ts +4 -0
  269. package/runtime/gateways/file/sys-file-system-factory.d.ts.map +1 -0
  270. package/runtime/gateways/file/sys-file-system-factory.js +13 -0
  271. package/runtime/gateways/file/sys-file-system-factory.js.map +1 -0
  272. package/runtime/gateways/file/utils.d.ts +5 -0
  273. package/runtime/gateways/file/utils.d.ts.map +1 -0
  274. package/runtime/gateways/file/utils.js +27 -0
  275. package/runtime/gateways/file/utils.js.map +1 -0
  276. package/runtime/gateways/file/version.d.ts +2 -0
  277. package/runtime/gateways/file/version.d.ts.map +1 -0
  278. package/runtime/gateways/file/version.js +2 -0
  279. package/runtime/gateways/file/version.js.map +1 -0
  280. package/runtime/gateways/fp-envelope-serialize.d.ts +50 -0
  281. package/runtime/gateways/fp-envelope-serialize.d.ts.map +1 -0
  282. package/runtime/gateways/fp-envelope-serialize.js +141 -0
  283. package/runtime/gateways/fp-envelope-serialize.js.map +1 -0
  284. package/runtime/gateways/index.d.ts +6 -0
  285. package/runtime/gateways/index.d.ts.map +1 -0
  286. package/runtime/gateways/index.js +6 -0
  287. package/runtime/gateways/index.js.map +1 -0
  288. package/runtime/gateways/indexeddb/gateway-impl.d.ts +22 -0
  289. package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +1 -0
  290. package/runtime/gateways/indexeddb/gateway-impl.js +147 -0
  291. package/runtime/gateways/indexeddb/gateway-impl.js.map +1 -0
  292. package/runtime/gateways/indexeddb/index.d.ts +6 -0
  293. package/runtime/gateways/indexeddb/index.d.ts.map +1 -0
  294. package/runtime/gateways/indexeddb/index.js +6 -0
  295. package/runtime/gateways/indexeddb/index.js.map +1 -0
  296. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +15 -0
  297. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +1 -0
  298. package/runtime/gateways/indexeddb/key-bag-indexeddb.js +42 -0
  299. package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +1 -0
  300. package/runtime/gateways/indexeddb-version.d.ts +2 -0
  301. package/runtime/gateways/indexeddb-version.d.ts.map +1 -0
  302. package/runtime/gateways/indexeddb-version.js +2 -0
  303. package/runtime/gateways/indexeddb-version.js.map +1 -0
  304. package/runtime/gateways/memory/gateway.d.ts +18 -0
  305. package/runtime/gateways/memory/gateway.d.ts.map +1 -0
  306. package/runtime/gateways/memory/gateway.js +73 -0
  307. package/runtime/gateways/memory/gateway.js.map +1 -0
  308. package/runtime/gateways/memory/version.d.ts +2 -0
  309. package/runtime/gateways/memory/version.d.ts.map +1 -0
  310. package/runtime/gateways/memory/version.js +2 -0
  311. package/runtime/gateways/memory/version.js.map +1 -0
  312. package/runtime/index.d.ts +13 -0
  313. package/runtime/index.d.ts.map +1 -0
  314. package/runtime/index.js +13 -0
  315. package/runtime/index.js.map +1 -0
  316. package/runtime/key-bag-memory.d.ts +12 -0
  317. package/runtime/key-bag-memory.d.ts.map +1 -0
  318. package/runtime/key-bag-memory.js +23 -0
  319. package/runtime/key-bag-memory.js.map +1 -0
  320. package/runtime/key-bag.d.ts +85 -0
  321. package/runtime/key-bag.d.ts.map +1 -0
  322. package/runtime/key-bag.js +411 -0
  323. package/runtime/key-bag.js.map +1 -0
  324. package/runtime/keyed-crypto.d.ts +19 -0
  325. package/runtime/keyed-crypto.d.ts.map +1 -0
  326. package/runtime/keyed-crypto.js +192 -0
  327. package/runtime/keyed-crypto.js.map +1 -0
  328. package/runtime/memory-sys-container.d.ts +2 -0
  329. package/runtime/memory-sys-container.d.ts.map +1 -0
  330. package/runtime/memory-sys-container.js +2 -0
  331. package/runtime/memory-sys-container.js.map +1 -0
  332. package/runtime/meta-key-hack.d.ts +42 -0
  333. package/runtime/meta-key-hack.d.ts.map +1 -0
  334. package/runtime/meta-key-hack.js +201 -0
  335. package/runtime/meta-key-hack.js.map +1 -0
  336. package/runtime/sts-service/index.d.ts +40 -0
  337. package/runtime/sts-service/index.d.ts.map +1 -0
  338. package/runtime/sts-service/index.js +102 -0
  339. package/runtime/sts-service/index.js.map +1 -0
  340. package/runtime/sys-container.d.ts +2 -0
  341. package/runtime/sys-container.d.ts.map +1 -0
  342. package/runtime/sys-container.js +2 -0
  343. package/runtime/sys-container.js.map +1 -0
  344. package/runtime/wait-pr-multiformats/block.d.ts +47 -0
  345. package/runtime/wait-pr-multiformats/block.d.ts.map +1 -0
  346. package/runtime/wait-pr-multiformats/block.js +64 -0
  347. package/runtime/wait-pr-multiformats/block.js.map +1 -0
  348. package/runtime/wait-pr-multiformats/codec-interface.d.ts +29 -0
  349. package/runtime/wait-pr-multiformats/codec-interface.d.ts.map +1 -0
  350. package/runtime/wait-pr-multiformats/codec-interface.js +2 -0
  351. package/runtime/wait-pr-multiformats/codec-interface.js.map +1 -0
  352. package/runtime/wait-pr-multiformats/index.d.ts +3 -0
  353. package/runtime/wait-pr-multiformats/index.d.ts.map +1 -0
  354. package/runtime/wait-pr-multiformats/index.js +3 -0
  355. package/runtime/wait-pr-multiformats/index.js.map +1 -0
  356. package/tests/blockstore/interceptor-gateway.test.ts +10 -9
  357. package/tests/blockstore/keyed-crypto.test.ts +2 -2
  358. package/tests/blockstore/loader.test.ts +68 -51
  359. package/tests/blockstore/standalone.test.ts +152 -0
  360. package/tests/blockstore/store.test.ts +16 -9
  361. package/tests/blockstore/transaction.test.ts +19 -16
  362. package/tests/fireproof/all-gateway.test.ts +12 -27
  363. package/tests/fireproof/attachable.test.ts +426 -97
  364. package/tests/fireproof/crdt.test.ts +23 -0
  365. package/tests/fireproof/database.test.ts +13 -12
  366. package/tests/fireproof/fireproof.test.ts +2 -5
  367. package/tests/fireproof/indexer.test.ts +4 -0
  368. package/tests/helpers.ts +30 -14
  369. package/tests/react/img-file.test.tsx +0 -9
  370. package/tests/react/use-fireproof-stability.test.tsx +5 -5
  371. package/tests/react/use-fireproof.test.tsx +18 -13
  372. package/tests/runtime/meta-key-hack.test.ts +7 -6
  373. package/tests/setup.indexeddb.ts +0 -9
  374. package/types.d.ts +460 -0
  375. package/types.d.ts.map +1 -0
  376. package/types.js +60 -0
  377. package/types.js.map +1 -0
  378. package/use-fireproof/iframe-strategy.d.ts +13 -0
  379. package/use-fireproof/iframe-strategy.d.ts.map +1 -0
  380. package/use-fireproof/iframe-strategy.js +83 -0
  381. package/use-fireproof/iframe-strategy.js.map +1 -0
  382. package/use-fireproof/index.d.ts +10 -0
  383. package/use-fireproof/index.d.ts.map +1 -0
  384. package/use-fireproof/index.js +16 -0
  385. package/use-fireproof/index.js.map +1 -0
  386. package/use-fireproof/redirect-strategy.d.ts +8 -0
  387. package/use-fireproof/redirect-strategy.d.ts.map +1 -0
  388. package/use-fireproof/redirect-strategy.js +31 -0
  389. package/use-fireproof/redirect-strategy.js.map +1 -0
  390. package/utils.d.ts +45 -0
  391. package/utils.d.ts.map +1 -0
  392. package/utils.js +406 -0
  393. package/utils.js.map +1 -0
  394. package/version.d.ts +2 -0
  395. package/version.d.ts.map +1 -0
  396. package/version.js +4 -0
  397. package/version.js.map +1 -0
  398. package/write-queue.d.ts +9 -0
  399. package/write-queue.d.ts.map +1 -0
  400. package/write-queue.js +70 -0
  401. package/write-queue.js.map +1 -0
  402. package/deno/index.d.ts +0 -7
  403. package/deno/index.js +0 -67
  404. package/deno/index.js.map +0 -1
  405. package/deno/metafile-esm.json +0 -1
  406. package/index.cjs +0 -7275
  407. package/index.cjs.map +0 -1
  408. package/index.d.cts +0 -2741
  409. package/indexeddb/index.cjs +0 -218
  410. package/indexeddb/index.cjs.map +0 -1
  411. package/indexeddb/index.d.cts +0 -30
  412. package/indexeddb/index.d.ts +0 -30
  413. package/indexeddb/index.js +0 -195
  414. package/indexeddb/index.js.map +0 -1
  415. package/indexeddb/metafile-cjs.json +0 -1
  416. package/indexeddb/metafile-esm.json +0 -1
  417. package/metafile-cjs.json +0 -1
  418. package/metafile-esm.json +0 -1
  419. package/node/index.cjs +0 -93
  420. package/node/index.cjs.map +0 -1
  421. package/node/index.d.cts +0 -7
  422. package/node/index.d.ts +0 -7
  423. package/node/index.js +0 -60
  424. package/node/index.js.map +0 -1
  425. package/node/metafile-cjs.json +0 -1
  426. package/node/metafile-esm.json +0 -1
  427. package/react/index.cjs +0 -392
  428. package/react/index.cjs.map +0 -1
  429. package/react/metafile-cjs.json +0 -1
  430. package/react/metafile-esm.json +0 -1
  431. package/tests/www/gallery.html +0 -132
  432. package/tests/www/iife.html +0 -42
  433. package/tests/www/todo-aws.html +0 -232
  434. package/tests/www/todo-ipfs.html +0 -213
  435. package/tests/www/todo-local.html +0 -214
  436. package/tests/www/todo-netlify.html +0 -227
  437. package/tests/www/todo.html +0 -254
@@ -12,6 +12,8 @@ import {
12
12
  Index,
13
13
  index,
14
14
  } from "@fireproof/core";
15
+ import { tracer } from "../helpers.js";
16
+ import { AppContext } from "@adviser/cement";
15
17
 
16
18
  describe("Fresh crdt", function () {
17
19
  let crdt: CRDT;
@@ -28,6 +30,8 @@ describe("Fresh crdt", function () {
28
30
  keyBag: rt.defaultKeyBagOpts(sthis),
29
31
  storeUrls: toStoreURIRuntime(sthis, "test-crdt-cold"),
30
32
  storeEnDe: bs.ensureStoreEnDeFile({}),
33
+ ctx: new AppContext(),
34
+ tracer,
31
35
  };
32
36
  crdt = new CRDTImpl(sthis, dbOpts);
33
37
  await crdt.ready();
@@ -73,6 +77,8 @@ describe("CRDT with one record", function () {
73
77
  keyBag: rt.defaultKeyBagOpts(sthis),
74
78
  storeUrls: toStoreURIRuntime(sthis, `test@${sthis.nextId().str}`),
75
79
  storeEnDe: bs.ensureStoreEnDeFile({}),
80
+ ctx: new AppContext(),
81
+ tracer,
76
82
  };
77
83
  crdt = new CRDTImpl(sthis, dbOpts);
78
84
  firstPut = await crdt.bulk([{ id: "hello", value: { hello: "world" } }]);
@@ -130,6 +136,8 @@ describe("CRDT with a multi-write", function () {
130
136
  keyBag: rt.defaultKeyBagOpts(sthis),
131
137
  storeUrls: toStoreURIRuntime(sthis, "test-crdt-cold"),
132
138
  storeEnDe: bs.ensureStoreEnDeFile({}),
139
+ ctx: new AppContext(),
140
+ tracer,
133
141
  };
134
142
  crdt = new CRDTImpl(sthis, dbOpts);
135
143
  firstPut = await crdt.bulk([
@@ -201,6 +209,8 @@ describe("CRDT with two multi-writes", function () {
201
209
  keyBag: rt.defaultKeyBagOpts(sthis),
202
210
  storeUrls: toStoreURIRuntime(sthis, `test-multiple-writes@${sthis.nextId().str}`),
203
211
  storeEnDe: bs.ensureStoreEnDeFile({}),
212
+ ctx: new AppContext(),
213
+ tracer,
204
214
  };
205
215
  crdt = new CRDTImpl(sthis, dbOpts);
206
216
  firstPut = await crdt.bulk([
@@ -261,6 +271,8 @@ describe("Compact a named CRDT with writes", function () {
261
271
  keyBag: rt.defaultKeyBagOpts(sthis),
262
272
  storeUrls: toStoreURIRuntime(sthis, `named-crdt-compaction-${sthis.nextId().str}`),
263
273
  storeEnDe: bs.ensureStoreEnDeFile({}),
274
+ ctx: new AppContext(),
275
+ tracer,
264
276
  };
265
277
  crdt = new CRDTImpl(sthis, dbOpts);
266
278
  for (let i = 0; i < 10; i++) {
@@ -358,6 +370,8 @@ describe("CRDT with an index", function () {
358
370
  keyBag: rt.defaultKeyBagOpts(sthis),
359
371
  storeUrls: toStoreURIRuntime(sthis, "test-crdt-cold"),
360
372
  storeEnDe: bs.ensureStoreEnDeFile({}),
373
+ ctx: new AppContext(),
374
+ tracer,
361
375
  };
362
376
  crdt = new CRDTImpl(sthis, dbOpts);
363
377
  await crdt.bulk([
@@ -408,6 +422,8 @@ describe("Loader with a committed transaction", function () {
408
422
  keyBag: rt.defaultKeyBagOpts(sthis),
409
423
  storeUrls: toStoreURIRuntime(sthis, dbname),
410
424
  storeEnDe: bs.ensureStoreEnDeFile({}),
425
+ ctx: new AppContext(),
426
+ tracer,
411
427
  };
412
428
  crdt = new CRDTImpl(sthis, dbOpts);
413
429
  blockstore = crdt.blockstore as bs.EncryptedBlockstore;
@@ -433,6 +449,7 @@ describe("Loader with a committed transaction", function () {
433
449
  expect(blk).toBeTruthy();
434
450
  const reader = await loader.loadCar(blk, loader.attachedStores.local());
435
451
  expect(reader).toBeTruthy();
452
+ assert(bs.isCarBlockItemReady(reader));
436
453
  const parsed = await bs.parseCarFile<CRDTMeta>(reader, loader.logger);
437
454
  expect(parsed.cars).toBeTruthy();
438
455
  expect(parsed.cars.length).toBe(0 + 1 /* genesis */);
@@ -460,6 +477,8 @@ describe("Loader with two committed transactions", function () {
460
477
  keyBag: rt.defaultKeyBagOpts(sthis),
461
478
  storeUrls: toStoreURIRuntime(sthis, "test-loader"),
462
479
  storeEnDe: bs.ensureStoreEnDeFile({}),
480
+ ctx: new AppContext(),
481
+ tracer,
463
482
  };
464
483
  crdt = new CRDTImpl(sthis, dbOpts);
465
484
  blockstore = crdt.blockstore as bs.EncryptedBlockstore;
@@ -487,6 +506,7 @@ describe("Loader with two committed transactions", function () {
487
506
  expect(blk).toBeTruthy();
488
507
  const reader = await loader.loadCar(blk, loader.attachedStores.local());
489
508
  expect(reader).toBeTruthy();
509
+ assert(bs.isCarBlockItemReady(reader));
490
510
  const parsed = await bs.parseCarFile<CRDTMeta>(reader, loader.logger);
491
511
  expect(parsed.cars).toBeTruthy();
492
512
  expect(parsed.cars.length).toBe(1 + 1 /* genesis */);
@@ -514,6 +534,8 @@ describe("Loader with many committed transactions", function () {
514
534
  keyBag: rt.defaultKeyBagOpts(sthis),
515
535
  storeUrls: toStoreURIRuntime(sthis, "test-loader-many"),
516
536
  storeEnDe: bs.ensureStoreEnDeFile({}),
537
+ ctx: new AppContext(),
538
+ tracer,
517
539
  };
518
540
  crdt = new CRDTImpl(sthis, dbOpts);
519
541
  blockstore = crdt.blockstore as bs.EncryptedBlockstore;
@@ -538,6 +560,7 @@ describe("Loader with many committed transactions", function () {
538
560
  // expect(dones[5].cars).toBeTruthy();
539
561
  const reader = await loader.loadCar(blk, loader.attachedStores.local());
540
562
  expect(reader).toBeTruthy();
563
+ assert(bs.isCarBlockItemReady(reader));
541
564
  const parsed = await bs.parseCarFile<CRDTMeta>(reader, loader.logger);
542
565
  expect(parsed.cars).toBeTruthy();
543
566
  expect(parsed.cars.length).toBe(7 + 1 /* genesis */);
@@ -742,29 +742,30 @@ describe("StoreURIRuntime", () => {
742
742
 
743
743
  it("keyConfigOpts", () => {
744
744
  expect(JSON.parse(keyConfigOpts(sthis, "test"))).toEqual([
745
- {
746
- name: "test",
747
- },
748
- {
749
- stores: [
750
- {
751
- data: {
745
+ ["name", "test"],
746
+ [
747
+ "stores",
748
+ [
749
+ [
750
+ "data",
751
+ {
752
752
  car: "my://bla/storage?name=test&store=car&storekey=%40test-data%40&suffix=.car&urlGen=fromEnv",
753
753
  file: "my://bla/storage?name=test&store=file&storekey=%40test-data%40&urlGen=fromEnv",
754
754
  meta: "my://bla/storage?name=test&store=meta&storekey=%40test-meta%40&urlGen=fromEnv",
755
755
  wal: "my://bla/storage?name=test&store=wal&storekey=%40test-wal%40&urlGen=fromEnv",
756
756
  },
757
- },
758
- {
759
- idx: {
757
+ ],
758
+ [
759
+ "idx",
760
+ {
760
761
  car: "my://bla/storage?index=idx&name=test&store=car&storekey=%40test-data-idx%40&suffix=.car&urlGen=fromEnv",
761
762
  file: "my://bla/storage?index=idx&name=test&store=file&storekey=%40test-data-idx%40&urlGen=fromEnv",
762
763
  meta: "my://bla/storage?index=idx&name=test&store=meta&storekey=%40test-meta-idx%40&urlGen=fromEnv",
763
764
  wal: "my://bla/storage?index=idx&name=test&store=wal&storekey=%40test-wal-idx%40&urlGen=fromEnv",
764
765
  },
765
- },
766
+ ],
766
767
  ],
767
- },
768
+ ],
768
769
  ]);
769
770
  });
770
771
 
@@ -1,4 +1,4 @@
1
- import { sleep, storageURL } from "../helpers.js";
1
+ import { storageURL } from "../helpers.js";
2
2
  import { docs } from "./fireproof.test.fixture.js";
3
3
  import { CID } from "multiformats/cid";
4
4
 
@@ -16,6 +16,7 @@ import {
16
16
  Database,
17
17
  isDatabase,
18
18
  PARAM,
19
+ sleep,
19
20
  } from "@fireproof/core";
20
21
  import { URI } from "@adviser/cement";
21
22
 
@@ -370,10 +371,6 @@ describe("benchmarking a ledger", function () {
370
371
 
371
372
  await sleep(1000);
372
373
 
373
- // console.log("begin compact");
374
-
375
- await sleep(100);
376
-
377
374
  // console.time("COMPACT");
378
375
  await db.compact();
379
376
  // console.timeEnd("COMPACT");
@@ -13,6 +13,8 @@ import {
13
13
  CRDTImpl,
14
14
  fireproof,
15
15
  } from "@fireproof/core";
16
+ import { tracer } from "../helpers.js";
17
+ import { AppContext } from "@adviser/cement";
16
18
 
17
19
  interface TestType {
18
20
  readonly title: string;
@@ -329,6 +331,8 @@ describe("basic Index upon cold start", function () {
329
331
  keyBag: rt.kb.defaultKeyBagOpts(sthis),
330
332
  storeUrls: toStoreURIRuntime(sthis, "test-indexer-cold"),
331
333
  storeEnDe: bs.ensureStoreEnDeFile({}),
334
+ ctx: new AppContext(),
335
+ tracer,
332
336
  };
333
337
  crdt = new CRDTImpl(sthis, dbOpts);
334
338
  await crdt.bulk([
package/tests/helpers.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { BuildURI, MockLogger, runtimeFn, toCryptoRuntime, URI, utils, LogCollector } from "@adviser/cement";
1
+ import { BuildURI, MockLogger, runtimeFn, toCryptoRuntime, URI, utils, LogCollector, Logger, AppContext } from "@adviser/cement";
2
2
  import {
3
3
  ensureSuperThis,
4
4
  rt,
@@ -14,10 +14,11 @@ import {
14
14
  import { CID } from "multiformats";
15
15
  import { sha256 } from "multiformats/hashes/sha2";
16
16
  import * as json from "multiformats/codecs/json";
17
+ import { CarBlockItem, CarGroup, FPBlock } from "../src/blockstore/index.js";
18
+ import { CommitQueue } from "../src/blockstore/commit-queue.js";
17
19
 
18
- export function sleep(ms: number) {
19
- return new Promise((resolve) => setTimeout(resolve, ms));
20
- }
20
+ /* eslint-disable @typescript-eslint/no-empty-function */
21
+ export function tracer() {}
21
22
 
22
23
  async function toFileWithCid(buffer: Uint8Array, name: string, opts: FilePropertyBag): Promise<FileWithCid> {
23
24
  return {
@@ -57,9 +58,9 @@ export function mockSuperThis(sthis?: Partial<SuperThisOpts>): MockSuperThis {
57
58
  return ensureSuperThis({
58
59
  ...sthis,
59
60
  logger: mockLog.logger,
60
- ctx: {
61
+ ctx: AppContext.merge({
61
62
  logCollector: mockLog.logCollector,
62
- },
63
+ }),
63
64
  }) as MockSuperThis;
64
65
  }
65
66
 
@@ -80,6 +81,7 @@ export function simpleBlockOpts(sthis: SuperThis, name?: string) {
80
81
  meta: url,
81
82
  car: url,
82
83
  },
84
+ tracer,
83
85
  };
84
86
  }
85
87
 
@@ -88,23 +90,37 @@ export async function simpleCID(sthis: SuperThis) {
88
90
  const hash = await sha256.digest(bytes);
89
91
  return CID.create(1, json.code, hash);
90
92
  }
91
-
92
93
  class MockLoader implements bs.Loadable {
93
94
  readonly sthis: SuperThis;
95
+ readonly logger: Logger;
94
96
  readonly ebOpts: bs.BlockstoreRuntime;
95
97
  readonly carLog: bs.CarLog;
96
98
  readonly attachedStores: bs.AttachedStores;
97
99
  readonly taskManager: bs.TaskManager;
100
+ readonly commitQueue: CommitQueue<unknown>;
98
101
 
99
102
  constructor(sthis: SuperThis) {
100
103
  this.sthis = sthis;
101
- this.ebOpts = {} as bs.BlockstoreRuntime;
104
+ this.logger = sthis.logger;
105
+ this.ebOpts = {
106
+ // keyBag: sthis.keyBag,
107
+ // storeRuntime: sthis.storeRuntime,
108
+ storeUrls: {
109
+ file: noopUrl("test"),
110
+ wal: noopUrl("test"),
111
+ meta: noopUrl("test"),
112
+ car: noopUrl("test"),
113
+ },
114
+ } as bs.BlockstoreRuntime;
102
115
  this.carLog = new bs.CarLog();
103
116
  this.taskManager = new bs.TaskManager(sthis, () => Promise.resolve(), {
104
117
  removeAfter: 3,
105
118
  retryTimeout: 50,
106
119
  });
107
120
  this.attachedStores = new bs.AttachedRemotesImpl(this);
121
+ this.commitQueue = new CommitQueue({
122
+ tracer,
123
+ });
108
124
  }
109
125
 
110
126
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -121,9 +137,9 @@ class MockLoader implements bs.Loadable {
121
137
  return rt.kb.getKeyBag(this.sthis, {});
122
138
  }
123
139
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
124
- handleDbMetasFromStore(metas: bs.DbMeta[], store: bs.ActiveStore): Promise<void> {
140
+ handleDbMetasFromStore(metas: bs.DbMeta[], store: bs.ActiveStore): Promise<CarGroup> {
125
141
  // throw new Error("Method not implemented.");
126
- return Promise.resolve();
142
+ return Promise.resolve([]);
127
143
  }
128
144
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
129
145
  commit<T = unknown>(t: CarTransaction, done: T, opts: bs.CommitOpts): Promise<bs.CarGroup> {
@@ -133,15 +149,15 @@ class MockLoader implements bs.Loadable {
133
149
  throw new Error("Method not implemented.");
134
150
  }
135
151
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
136
- getBlock(cid: bs.AnyLink, store: bs.ActiveStore): Promise<bs.AnyBlock | Falsy> {
152
+ getBlock(cid: bs.AnyLink, store: bs.ActiveStore): Promise<FPBlock | Falsy> {
137
153
  throw new Error("Method not implemented.");
138
154
  }
139
155
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
140
- loadFileCar(cid: bs.AnyLink, store: bs.ActiveStore): Promise<bs.CarCacheItem> {
156
+ loadFileCar(cid: bs.AnyLink, store: bs.ActiveStore): Promise<FPBlock<CarBlockItem>> {
141
157
  throw new Error("Method not implemented.");
142
158
  }
143
159
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
144
- loadCar(cid: bs.AnyLink, store: bs.ActiveStore): Promise<bs.CarCacheItem> {
160
+ loadCar(cid: bs.AnyLink, store: bs.ActiveStore): Promise<FPBlock<CarBlockItem>> {
145
161
  throw new Error("Method not implemented.");
146
162
  }
147
163
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -149,7 +165,7 @@ class MockLoader implements bs.Loadable {
149
165
  throw new Error("Method not implemented.");
150
166
  }
151
167
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
152
- entries(cache?: boolean): AsyncIterableIterator<bs.AnyBlock> {
168
+ entries(cache?: boolean): AsyncIterableIterator<FPBlock> {
153
169
  throw new Error("Method not implemented.");
154
170
  }
155
171
  }
@@ -5,15 +5,6 @@ import { createElement } from "react";
5
5
  import type { DocFileMeta } from "use-fireproof";
6
6
 
7
7
  // Extend HTMLElement to include querySelector for TypeScript
8
- declare global {
9
- interface HTMLElement {
10
- querySelector(selectors: string): HTMLElement | null;
11
- getAttribute(name: string): string | null;
12
- classList: {
13
- contains(token: string): boolean;
14
- };
15
- }
16
- }
17
8
 
18
9
  // Simple SVG content for testing
19
10
  const SVG_CONTENT = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
@@ -1,6 +1,6 @@
1
- import { describe, it, expect, vi } from "vitest";
2
- import { render, waitFor, fireEvent, act } from "@testing-library/react";
3
- import { useState, useEffect, createElement } from "react";
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { act, fireEvent, render, waitFor } from "@testing-library/react";
3
+ import { createElement, useEffect, useState } from "react";
4
4
  import { useFireproof } from "../../src/react/use-fireproof.js";
5
5
 
6
6
  // Extend HTMLElement for TypeScript compatibility
@@ -16,9 +16,8 @@ declare global {
16
16
  // Test component that triggers state updates and verifies database stability
17
17
  function TestComponent() {
18
18
  const { database } = useFireproof("test-stability-db");
19
- const initialDatabaseRef = database;
20
-
21
19
  const [counter, setCounter] = useState(0);
20
+ const initialDatabaseRef = database;
22
21
 
23
22
  // Verify that the database reference remains stable across renders
24
23
  if (counter > 0 && initialDatabaseRef !== database) {
@@ -33,6 +32,7 @@ function TestComponent() {
33
32
  {
34
33
  "data-testid": "increment",
35
34
  key: "increment",
35
+ type: "button",
36
36
  onClick: () => setCounter((c) => c + 1),
37
37
  },
38
38
  "Increment",
@@ -569,25 +569,30 @@ describe("HOOK: useFireproof race condition: calling save() without await overwr
569
569
  });
570
570
  });
571
571
 
572
- it(
573
- "demonstrates that calling docResult.save() and docResult.reset() in the same tick can overwrite reset",
572
+ it.skip(
573
+ "demonstrates that reset() takes precedence over save() when both are called",
574
574
  async () => {
575
575
  // Merge some changes into doc
576
576
  docResult.merge({ input: "some data" });
577
577
 
578
- // Call save() but DO NOT await it, then immediately reset().
579
- docResult.save();
578
+ // Call save and don't await it
579
+ const savePromise = docResult.save();
580
+
581
+ // Add a small delay to avoid React state queue issues in test environment
582
+ await new Promise((resolve) => setTimeout(resolve, 10));
583
+
584
+ // Call reset after save
580
585
  docResult.reset();
581
586
 
582
- // Let the async subscription produce a new doc in case the doc is reloaded with an _id
583
- await new Promise((resolve) => setTimeout(resolve, 500));
587
+ // Wait for save to complete
588
+ await savePromise;
584
589
 
585
- // If the reset worked, doc._id should STILL be undefined.
586
- // If the subscription wins, doc._id will be defined => test fails.
587
- await waitFor(() => {
588
- expect(docResult.doc._id).toBeUndefined();
589
- expect(docResult.doc.input).toBe("");
590
- });
590
+ // Let any async subscriptions complete
591
+ await new Promise((resolve) => setTimeout(resolve, 100));
592
+
593
+ // Verify the reset took precedence
594
+ expect(docResult.doc._id).toBeUndefined();
595
+ expect(docResult.doc.input).toBe("");
591
596
  },
592
597
  TEST_TIMEOUT,
593
598
  );
@@ -598,7 +603,7 @@ describe("HOOK: useFireproof race condition: calling save() without await overwr
598
603
  });
599
604
  });
600
605
 
601
- describe("useFireproo calling submit()", () => {
606
+ describe("useFireproof calling submit()", () => {
602
607
  const dbName = "submitDb";
603
608
  let db: Database, docResult: UseDocumentResult<{ input: string }>;
604
609
 
@@ -1,4 +1,4 @@
1
- import { URI } from "@adviser/cement";
1
+ import { BuildURI, URI } from "@adviser/cement";
2
2
  import { rt, bs, fireproof, PARAM, ensureSuperThis, Database } from "@fireproof/core";
3
3
 
4
4
  describe("MetaKeyHack", () => {
@@ -19,7 +19,7 @@ describe("MetaKeyHack", () => {
19
19
  beforeAll(async () => {
20
20
  db = fireproof("test", {
21
21
  storeUrls: {
22
- base: "hack://localhost",
22
+ base: BuildURI.from("hack://localhost").setParam(PARAM.SELF_REFLECT, "x"),
23
23
  },
24
24
  keyBag: {
25
25
  url: "memory://./dist/kb-dir-partykit?extractKey=_deprecated_internal_api",
@@ -35,7 +35,8 @@ describe("MetaKeyHack", () => {
35
35
  const subscribeFn = vitest.fn();
36
36
  const unreg = await metaStore.realGateway.subscribe(
37
37
  ctx,
38
- metaStore.url().build().setParam(PARAM.SELF_REFLECT, "x").URI(),
38
+ metaStore.url(),
39
+ // metaStore.url().build().setParam(PARAM.SELF_REFLECT, "x").URI(),
39
40
  subscribeFn,
40
41
  );
41
42
  expect(unreg.isOk()).toBeTruthy();
@@ -51,7 +52,7 @@ describe("MetaKeyHack", () => {
51
52
  expect(rDataStoreKeyItem.isOk()).toBeTruthy();
52
53
  const rUrl = await memGw.buildUrl(metaStore.url(), "main");
53
54
  // console.log(">>>>", rUrl.Ok().toString())
54
- const rGet = await memGw.get(rUrl.Ok());
55
+ const rGet = await memGw.get(rUrl.Ok(), sthis);
55
56
  const metas = JSON.parse(ctx.loader.sthis.txt.decode(rGet.Ok())) as rt.V2SerializedMetaKey;
56
57
  const keyMaterials = metas.keys;
57
58
  const dataStoreKeyMaterial = await rDataStoreKeyItem.Ok().asKeysItem();
@@ -87,8 +88,8 @@ describe("MetaKeyHack", () => {
87
88
  expect(subscribeFn).toHaveBeenCalledTimes(2);
88
89
  const addKeyToDbMetaGateway = metaStore.realGateway as rt.AddKeyToDbMetaGateway;
89
90
  expect(
90
- subscribeFn.mock.calls.map((i) => i.map((i) => i.payload.map((i: bs.DbMetaEvent) => i.eventCid.toString()))).flat(),
91
- ).toEqual(addKeyToDbMetaGateway.lastDecodedMetas.map((i) => i.metas.map((i) => i.cid)));
91
+ subscribeFn.mock.calls.map((i) => i.map((i) => i.payload.map((i: bs.DbMetaEvent) => i.eventCid.toString()))).flat(2),
92
+ ).toEqual(Array.from(new Set(addKeyToDbMetaGateway.lastDecodedMetas.map((i) => i.metas.map((i) => i.cid)).flat(2))));
92
93
  unreg.Ok()();
93
94
  });
94
95
  });
@@ -1,9 +0,0 @@
1
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2
- function gthis(): any {
3
- return globalThis;
4
- }
5
-
6
- gthis()[Symbol.for("FP_PRESET_ENV")] = {
7
- // FP_KEYBAG_URL = "memory://keybag"
8
- // FP_DEBUG: "metaStoreFactory"
9
- };