@fireproof/core 0.20.0-dev-preview-63 → 0.20.1-dev-preview-01

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 (408) hide show
  1. package/deno/index.d.ts +7 -0
  2. package/deno/index.js +66 -0
  3. package/deno/index.js.map +1 -0
  4. package/deno/metafile-esm.json +1 -0
  5. package/deno.json +2 -2
  6. package/index.cjs +7268 -0
  7. package/index.cjs.map +1 -0
  8. package/index.d.cts +2742 -0
  9. package/index.d.ts +2742 -15
  10. package/index.js +7267 -14
  11. package/index.js.map +1 -1
  12. package/indexeddb/index.cjs +218 -0
  13. package/indexeddb/index.cjs.map +1 -0
  14. package/indexeddb/index.d.cts +30 -0
  15. package/indexeddb/index.d.ts +30 -0
  16. package/indexeddb/index.js +195 -0
  17. package/indexeddb/index.js.map +1 -0
  18. package/indexeddb/metafile-cjs.json +1 -0
  19. package/indexeddb/metafile-esm.json +1 -0
  20. package/metafile-cjs.json +1 -0
  21. package/metafile-esm.json +1 -0
  22. package/node/index.cjs +97 -0
  23. package/node/index.cjs.map +1 -0
  24. package/node/index.d.cts +7 -0
  25. package/node/index.d.ts +7 -0
  26. package/node/index.js +64 -0
  27. package/node/index.js.map +1 -0
  28. package/node/metafile-cjs.json +1 -0
  29. package/node/metafile-esm.json +1 -0
  30. package/package.json +17 -20
  31. package/react/index.cjs +298 -0
  32. package/react/index.cjs.map +1 -0
  33. package/react/{img-file.d.ts → index.d.cts} +53 -6
  34. package/react/index.d.ts +336 -4
  35. package/react/index.js +264 -3
  36. package/react/index.js.map +1 -1
  37. package/react/metafile-cjs.json +1 -0
  38. package/react/metafile-esm.json +1 -0
  39. package/tests/blockstore/loader.test.ts +1 -1
  40. package/tests/blockstore/store.test.ts +4 -9
  41. package/tests/fireproof/attachable.test.ts +3 -3
  42. package/tests/react/use-fireproof-db-switch.test.tsx +91 -0
  43. package/tests/react/use-fireproof-stability.test.tsx +145 -0
  44. package/tests/www/gallery.html +132 -0
  45. package/tests/www/iife.html +42 -0
  46. package/tests/www/todo-aws.html +232 -0
  47. package/tests/www/todo-ipfs.html +213 -0
  48. package/tests/www/todo-local.html +214 -0
  49. package/tests/www/todo-netlify.html +227 -0
  50. package/tests/www/todo.html +254 -0
  51. package/apply-head-queue.d.ts +0 -18
  52. package/apply-head-queue.d.ts.map +0 -1
  53. package/apply-head-queue.js +0 -47
  54. package/apply-head-queue.js.map +0 -1
  55. package/blockstore/attachable-store.d.ts +0 -17
  56. package/blockstore/attachable-store.d.ts.map +0 -1
  57. package/blockstore/attachable-store.js +0 -295
  58. package/blockstore/attachable-store.js.map +0 -1
  59. package/blockstore/commit-queue.d.ts +0 -12
  60. package/blockstore/commit-queue.d.ts.map +0 -1
  61. package/blockstore/commit-queue.js +0 -52
  62. package/blockstore/commit-queue.js.map +0 -1
  63. package/blockstore/commitor.d.ts +0 -21
  64. package/blockstore/commitor.d.ts.map +0 -1
  65. package/blockstore/commitor.js +0 -104
  66. package/blockstore/commitor.js.map +0 -1
  67. package/blockstore/connect-raw.d.ts +0 -2
  68. package/blockstore/connect-raw.d.ts.map +0 -1
  69. package/blockstore/connect-raw.js +0 -2
  70. package/blockstore/connect-raw.js.map +0 -1
  71. package/blockstore/connection-base.d.ts +0 -2
  72. package/blockstore/connection-base.d.ts.map +0 -1
  73. package/blockstore/connection-base.js +0 -2
  74. package/blockstore/connection-base.js.map +0 -1
  75. package/blockstore/encrypt-helpers.d.ts +0 -2
  76. package/blockstore/encrypt-helpers.d.ts.map +0 -1
  77. package/blockstore/encrypt-helpers.js +0 -2
  78. package/blockstore/encrypt-helpers.js.map +0 -1
  79. package/blockstore/fp-envelope.d.ts +0 -32
  80. package/blockstore/fp-envelope.d.ts.map +0 -1
  81. package/blockstore/fp-envelope.js +0 -14
  82. package/blockstore/fp-envelope.js.map +0 -1
  83. package/blockstore/gateway.d.ts +0 -20
  84. package/blockstore/gateway.d.ts.map +0 -1
  85. package/blockstore/gateway.js +0 -2
  86. package/blockstore/gateway.js.map +0 -1
  87. package/blockstore/index.d.ts +0 -16
  88. package/blockstore/index.d.ts.map +0 -1
  89. package/blockstore/index.js +0 -16
  90. package/blockstore/index.js.map +0 -1
  91. package/blockstore/interceptor-gateway.d.ts +0 -29
  92. package/blockstore/interceptor-gateway.d.ts.map +0 -1
  93. package/blockstore/interceptor-gateway.js +0 -137
  94. package/blockstore/interceptor-gateway.js.map +0 -1
  95. package/blockstore/loader-helpers.d.ts +0 -4
  96. package/blockstore/loader-helpers.d.ts.map +0 -1
  97. package/blockstore/loader-helpers.js +0 -16
  98. package/blockstore/loader-helpers.js.map +0 -1
  99. package/blockstore/loader.d.ts +0 -45
  100. package/blockstore/loader.d.ts.map +0 -1
  101. package/blockstore/loader.js +0 -352
  102. package/blockstore/loader.js.map +0 -1
  103. package/blockstore/register-store-protocol.d.ts +0 -22
  104. package/blockstore/register-store-protocol.d.ts.map +0 -1
  105. package/blockstore/register-store-protocol.js +0 -114
  106. package/blockstore/register-store-protocol.js.map +0 -1
  107. package/blockstore/serde-gateway.d.ts +0 -78
  108. package/blockstore/serde-gateway.d.ts.map +0 -1
  109. package/blockstore/serde-gateway.js +0 -2
  110. package/blockstore/serde-gateway.js.map +0 -1
  111. package/blockstore/store-factory.d.ts +0 -11
  112. package/blockstore/store-factory.d.ts.map +0 -1
  113. package/blockstore/store-factory.js +0 -105
  114. package/blockstore/store-factory.js.map +0 -1
  115. package/blockstore/store-remote.d.ts +0 -2
  116. package/blockstore/store-remote.d.ts.map +0 -1
  117. package/blockstore/store-remote.js +0 -2
  118. package/blockstore/store-remote.js.map +0 -1
  119. package/blockstore/store.d.ts +0 -82
  120. package/blockstore/store.d.ts.map +0 -1
  121. package/blockstore/store.js +0 -438
  122. package/blockstore/store.js.map +0 -1
  123. package/blockstore/task-manager.d.ts +0 -19
  124. package/blockstore/task-manager.d.ts.map +0 -1
  125. package/blockstore/task-manager.js +0 -50
  126. package/blockstore/task-manager.js.map +0 -1
  127. package/blockstore/transaction.d.ts +0 -64
  128. package/blockstore/transaction.d.ts.map +0 -1
  129. package/blockstore/transaction.js +0 -249
  130. package/blockstore/transaction.js.map +0 -1
  131. package/blockstore/types.d.ts +0 -400
  132. package/blockstore/types.d.ts.map +0 -1
  133. package/blockstore/types.js +0 -55
  134. package/blockstore/types.js.map +0 -1
  135. package/blockstore/uri-interceptor.d.ts +0 -19
  136. package/blockstore/uri-interceptor.d.ts.map +0 -1
  137. package/blockstore/uri-interceptor.js +0 -61
  138. package/blockstore/uri-interceptor.js.map +0 -1
  139. package/bundle-not-impl.d.ts +0 -2
  140. package/bundle-not-impl.d.ts.map +0 -1
  141. package/bundle-not-impl.js +0 -4
  142. package/bundle-not-impl.js.map +0 -1
  143. package/cli/main.js +0 -26114
  144. package/context.d.ts +0 -7
  145. package/context.d.ts.map +0 -1
  146. package/context.js +0 -15
  147. package/context.js.map +0 -1
  148. package/crdt-clock.d.ts +0 -27
  149. package/crdt-clock.d.ts.map +0 -1
  150. package/crdt-clock.js +0 -140
  151. package/crdt-clock.js.map +0 -1
  152. package/crdt-helpers.d.ts +0 -16
  153. package/crdt-helpers.d.ts.map +0 -1
  154. package/crdt-helpers.js +0 -316
  155. package/crdt-helpers.js.map +0 -1
  156. package/crdt.d.ts +0 -34
  157. package/crdt.d.ts.map +0 -1
  158. package/crdt.js +0 -131
  159. package/crdt.js.map +0 -1
  160. package/database.d.ts +0 -34
  161. package/database.d.ts.map +0 -1
  162. package/database.js +0 -121
  163. package/database.js.map +0 -1
  164. package/index.d.ts.map +0 -1
  165. package/indexer-helpers.d.ts +0 -69
  166. package/indexer-helpers.d.ts.map +0 -1
  167. package/indexer-helpers.js +0 -135
  168. package/indexer-helpers.js.map +0 -1
  169. package/indexer.d.ts +0 -25
  170. package/indexer.d.ts.map +0 -1
  171. package/indexer.js +0 -231
  172. package/indexer.js.map +0 -1
  173. package/ledger.d.ts +0 -56
  174. package/ledger.d.ts.map +0 -1
  175. package/ledger.js +0 -224
  176. package/ledger.js.map +0 -1
  177. package/protocols/cloud/http-connection.d.ts +0 -25
  178. package/protocols/cloud/http-connection.d.ts.map +0 -1
  179. package/protocols/cloud/http-connection.js +0 -153
  180. package/protocols/cloud/http-connection.js.map +0 -1
  181. package/protocols/cloud/index.d.ts +0 -10
  182. package/protocols/cloud/index.d.ts.map +0 -1
  183. package/protocols/cloud/index.js +0 -10
  184. package/protocols/cloud/index.js.map +0 -1
  185. package/protocols/cloud/msg-raw-connection-base.d.ts +0 -16
  186. package/protocols/cloud/msg-raw-connection-base.d.ts.map +0 -1
  187. package/protocols/cloud/msg-raw-connection-base.js +0 -22
  188. package/protocols/cloud/msg-raw-connection-base.js.map +0 -1
  189. package/protocols/cloud/msg-types-data.d.ts +0 -36
  190. package/protocols/cloud/msg-types-data.d.ts.map +0 -1
  191. package/protocols/cloud/msg-types-data.js +0 -38
  192. package/protocols/cloud/msg-types-data.js.map +0 -1
  193. package/protocols/cloud/msg-types-meta.d.ts +0 -41
  194. package/protocols/cloud/msg-types-meta.d.ts.map +0 -1
  195. package/protocols/cloud/msg-types-meta.js +0 -98
  196. package/protocols/cloud/msg-types-meta.js.map +0 -1
  197. package/protocols/cloud/msg-types-wal.d.ts +0 -33
  198. package/protocols/cloud/msg-types-wal.d.ts.map +0 -1
  199. package/protocols/cloud/msg-types-wal.js +0 -38
  200. package/protocols/cloud/msg-types-wal.js.map +0 -1
  201. package/protocols/cloud/msg-types.d.ts +0 -279
  202. package/protocols/cloud/msg-types.d.ts.map +0 -1
  203. package/protocols/cloud/msg-types.js +0 -278
  204. package/protocols/cloud/msg-types.js.map +0 -1
  205. package/protocols/cloud/msger.d.ts +0 -79
  206. package/protocols/cloud/msger.d.ts.map +0 -1
  207. package/protocols/cloud/msger.js +0 -198
  208. package/protocols/cloud/msger.js.map +0 -1
  209. package/protocols/cloud/ws-connection.d.ts +0 -29
  210. package/protocols/cloud/ws-connection.d.ts.map +0 -1
  211. package/protocols/cloud/ws-connection.js +0 -163
  212. package/protocols/cloud/ws-connection.js.map +0 -1
  213. package/protocols/index.d.ts +0 -2
  214. package/protocols/index.d.ts.map +0 -1
  215. package/protocols/index.js +0 -2
  216. package/protocols/index.js.map +0 -1
  217. package/react/img-file.d.ts.map +0 -1
  218. package/react/img-file.js +0 -58
  219. package/react/img-file.js.map +0 -1
  220. package/react/index.d.ts.map +0 -1
  221. package/react/types.d.ts +0 -43
  222. package/react/types.d.ts.map +0 -1
  223. package/react/types.js +0 -2
  224. package/react/types.js.map +0 -1
  225. package/react/use-all-docs.d.ts +0 -4
  226. package/react/use-all-docs.d.ts.map +0 -1
  227. package/react/use-all-docs.js +0 -19
  228. package/react/use-all-docs.js.map +0 -1
  229. package/react/use-changes.d.ts +0 -4
  230. package/react/use-changes.d.ts.map +0 -1
  231. package/react/use-changes.js +0 -19
  232. package/react/use-changes.js.map +0 -1
  233. package/react/use-document.d.ts +0 -4
  234. package/react/use-document.d.ts.map +0 -1
  235. package/react/use-document.js +0 -99
  236. package/react/use-document.js.map +0 -1
  237. package/react/use-fireproof.d.ts +0 -6
  238. package/react/use-fireproof.d.ts.map +0 -1
  239. package/react/use-fireproof.js +0 -15
  240. package/react/use-fireproof.js.map +0 -1
  241. package/react/use-live-query.d.ts +0 -4
  242. package/react/use-live-query.d.ts.map +0 -1
  243. package/react/use-live-query.js +0 -38
  244. package/react/use-live-query.js.map +0 -1
  245. package/react/utils.d.ts +0 -2
  246. package/react/utils.d.ts.map +0 -1
  247. package/react/utils.js +0 -4
  248. package/react/utils.js.map +0 -1
  249. package/runtime/files.d.ts +0 -12
  250. package/runtime/files.d.ts.map +0 -1
  251. package/runtime/files.js +0 -29
  252. package/runtime/files.js.map +0 -1
  253. package/runtime/gateways/cloud/gateway.d.ts +0 -44
  254. package/runtime/gateways/cloud/gateway.d.ts.map +0 -1
  255. package/runtime/gateways/cloud/gateway.js +0 -496
  256. package/runtime/gateways/cloud/gateway.js.map +0 -1
  257. package/runtime/gateways/def-serde-gateway.d.ts +0 -19
  258. package/runtime/gateways/def-serde-gateway.d.ts.map +0 -1
  259. package/runtime/gateways/def-serde-gateway.js +0 -73
  260. package/runtime/gateways/def-serde-gateway.js.map +0 -1
  261. package/runtime/gateways/file/deno/deno-filesystem.d.ts +0 -27
  262. package/runtime/gateways/file/deno/deno-filesystem.d.ts.map +0 -1
  263. package/runtime/gateways/file/deno/deno-filesystem.js +0 -51
  264. package/runtime/gateways/file/deno/deno-filesystem.js.map +0 -1
  265. package/runtime/gateways/file/deno/get-sys-file-system.d.ts +0 -4
  266. package/runtime/gateways/file/deno/get-sys-file-system.d.ts.map +0 -1
  267. package/runtime/gateways/file/deno/get-sys-file-system.js +0 -11
  268. package/runtime/gateways/file/deno/get-sys-file-system.js.map +0 -1
  269. package/runtime/gateways/file/deno/index.d.ts +0 -2
  270. package/runtime/gateways/file/deno/index.d.ts.map +0 -1
  271. package/runtime/gateways/file/deno/index.js +0 -2
  272. package/runtime/gateways/file/deno/index.js.map +0 -1
  273. package/runtime/gateways/file/gateway-impl.d.ts +0 -18
  274. package/runtime/gateways/file/gateway-impl.d.ts.map +0 -1
  275. package/runtime/gateways/file/gateway-impl.js +0 -121
  276. package/runtime/gateways/file/gateway-impl.js.map +0 -1
  277. package/runtime/gateways/file/index.d.ts +0 -3
  278. package/runtime/gateways/file/index.d.ts.map +0 -1
  279. package/runtime/gateways/file/index.js +0 -3
  280. package/runtime/gateways/file/index.js.map +0 -1
  281. package/runtime/gateways/file/key-bag-file.d.ts +0 -19
  282. package/runtime/gateways/file/key-bag-file.d.ts.map +0 -1
  283. package/runtime/gateways/file/key-bag-file.js +0 -40
  284. package/runtime/gateways/file/key-bag-file.js.map +0 -1
  285. package/runtime/gateways/file/node/get-sys-file-system.d.ts +0 -4
  286. package/runtime/gateways/file/node/get-sys-file-system.d.ts.map +0 -1
  287. package/runtime/gateways/file/node/get-sys-file-system.js +0 -11
  288. package/runtime/gateways/file/node/get-sys-file-system.js.map +0 -1
  289. package/runtime/gateways/file/node/index.d.ts +0 -2
  290. package/runtime/gateways/file/node/index.d.ts.map +0 -1
  291. package/runtime/gateways/file/node/index.js +0 -2
  292. package/runtime/gateways/file/node/index.js.map +0 -1
  293. package/runtime/gateways/file/node/node-filesystem.d.ts +0 -32
  294. package/runtime/gateways/file/node/node-filesystem.d.ts.map +0 -1
  295. package/runtime/gateways/file/node/node-filesystem.js +0 -37
  296. package/runtime/gateways/file/node/node-filesystem.js.map +0 -1
  297. package/runtime/gateways/file/node/to-array-buffer.d.ts +0 -2
  298. package/runtime/gateways/file/node/to-array-buffer.d.ts.map +0 -1
  299. package/runtime/gateways/file/node/to-array-buffer.js +0 -12
  300. package/runtime/gateways/file/node/to-array-buffer.js.map +0 -1
  301. package/runtime/gateways/file/sys-file-system-factory.d.ts +0 -4
  302. package/runtime/gateways/file/sys-file-system-factory.d.ts.map +0 -1
  303. package/runtime/gateways/file/sys-file-system-factory.js +0 -13
  304. package/runtime/gateways/file/sys-file-system-factory.js.map +0 -1
  305. package/runtime/gateways/file/utils.d.ts +0 -5
  306. package/runtime/gateways/file/utils.d.ts.map +0 -1
  307. package/runtime/gateways/file/utils.js +0 -27
  308. package/runtime/gateways/file/utils.js.map +0 -1
  309. package/runtime/gateways/file/version.d.ts +0 -2
  310. package/runtime/gateways/file/version.d.ts.map +0 -1
  311. package/runtime/gateways/file/version.js +0 -2
  312. package/runtime/gateways/file/version.js.map +0 -1
  313. package/runtime/gateways/fp-envelope-serialize.d.ts +0 -50
  314. package/runtime/gateways/fp-envelope-serialize.d.ts.map +0 -1
  315. package/runtime/gateways/fp-envelope-serialize.js +0 -141
  316. package/runtime/gateways/fp-envelope-serialize.js.map +0 -1
  317. package/runtime/gateways/index.d.ts +0 -6
  318. package/runtime/gateways/index.d.ts.map +0 -1
  319. package/runtime/gateways/index.js +0 -6
  320. package/runtime/gateways/index.js.map +0 -1
  321. package/runtime/gateways/indexeddb/gateway-impl.d.ts +0 -22
  322. package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +0 -1
  323. package/runtime/gateways/indexeddb/gateway-impl.js +0 -147
  324. package/runtime/gateways/indexeddb/gateway-impl.js.map +0 -1
  325. package/runtime/gateways/indexeddb/index.d.ts +0 -6
  326. package/runtime/gateways/indexeddb/index.d.ts.map +0 -1
  327. package/runtime/gateways/indexeddb/index.js +0 -6
  328. package/runtime/gateways/indexeddb/index.js.map +0 -1
  329. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +0 -15
  330. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +0 -1
  331. package/runtime/gateways/indexeddb/key-bag-indexeddb.js +0 -42
  332. package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +0 -1
  333. package/runtime/gateways/indexeddb-version.d.ts +0 -2
  334. package/runtime/gateways/indexeddb-version.d.ts.map +0 -1
  335. package/runtime/gateways/indexeddb-version.js +0 -2
  336. package/runtime/gateways/indexeddb-version.js.map +0 -1
  337. package/runtime/gateways/memory/gateway.d.ts +0 -18
  338. package/runtime/gateways/memory/gateway.d.ts.map +0 -1
  339. package/runtime/gateways/memory/gateway.js +0 -58
  340. package/runtime/gateways/memory/gateway.js.map +0 -1
  341. package/runtime/gateways/memory/version.d.ts +0 -2
  342. package/runtime/gateways/memory/version.d.ts.map +0 -1
  343. package/runtime/gateways/memory/version.js +0 -2
  344. package/runtime/gateways/memory/version.js.map +0 -1
  345. package/runtime/index.d.ts +0 -13
  346. package/runtime/index.d.ts.map +0 -1
  347. package/runtime/index.js +0 -13
  348. package/runtime/index.js.map +0 -1
  349. package/runtime/key-bag-memory.d.ts +0 -12
  350. package/runtime/key-bag-memory.d.ts.map +0 -1
  351. package/runtime/key-bag-memory.js +0 -23
  352. package/runtime/key-bag-memory.js.map +0 -1
  353. package/runtime/key-bag.d.ts +0 -85
  354. package/runtime/key-bag.d.ts.map +0 -1
  355. package/runtime/key-bag.js +0 -415
  356. package/runtime/key-bag.js.map +0 -1
  357. package/runtime/keyed-crypto.d.ts +0 -19
  358. package/runtime/keyed-crypto.d.ts.map +0 -1
  359. package/runtime/keyed-crypto.js +0 -192
  360. package/runtime/keyed-crypto.js.map +0 -1
  361. package/runtime/memory-sys-container.d.ts +0 -2
  362. package/runtime/memory-sys-container.d.ts.map +0 -1
  363. package/runtime/memory-sys-container.js +0 -2
  364. package/runtime/memory-sys-container.js.map +0 -1
  365. package/runtime/meta-key-hack.d.ts +0 -42
  366. package/runtime/meta-key-hack.d.ts.map +0 -1
  367. package/runtime/meta-key-hack.js +0 -201
  368. package/runtime/meta-key-hack.js.map +0 -1
  369. package/runtime/sts-service/index.d.ts +0 -40
  370. package/runtime/sts-service/index.d.ts.map +0 -1
  371. package/runtime/sts-service/index.js +0 -102
  372. package/runtime/sts-service/index.js.map +0 -1
  373. package/runtime/sys-container.d.ts +0 -2
  374. package/runtime/sys-container.d.ts.map +0 -1
  375. package/runtime/sys-container.js +0 -2
  376. package/runtime/sys-container.js.map +0 -1
  377. package/runtime/wait-pr-multiformats/block.d.ts +0 -47
  378. package/runtime/wait-pr-multiformats/block.d.ts.map +0 -1
  379. package/runtime/wait-pr-multiformats/block.js +0 -64
  380. package/runtime/wait-pr-multiformats/block.js.map +0 -1
  381. package/runtime/wait-pr-multiformats/codec-interface.d.ts +0 -29
  382. package/runtime/wait-pr-multiformats/codec-interface.d.ts.map +0 -1
  383. package/runtime/wait-pr-multiformats/codec-interface.js +0 -2
  384. package/runtime/wait-pr-multiformats/codec-interface.js.map +0 -1
  385. package/runtime/wait-pr-multiformats/index.d.ts +0 -3
  386. package/runtime/wait-pr-multiformats/index.d.ts.map +0 -1
  387. package/runtime/wait-pr-multiformats/index.js +0 -3
  388. package/runtime/wait-pr-multiformats/index.js.map +0 -1
  389. package/types.d.ts +0 -427
  390. package/types.d.ts.map +0 -1
  391. package/types.js +0 -54
  392. package/types.js.map +0 -1
  393. package/use-fireproof/index.d.ts +0 -3
  394. package/use-fireproof/index.d.ts.map +0 -1
  395. package/use-fireproof/index.js +0 -3
  396. package/use-fireproof/index.js.map +0 -1
  397. package/utils.d.ts +0 -36
  398. package/utils.d.ts.map +0 -1
  399. package/utils.js +0 -379
  400. package/utils.js.map +0 -1
  401. package/version.d.ts +0 -2
  402. package/version.d.ts.map +0 -1
  403. package/version.js +0 -4
  404. package/version.js.map +0 -1
  405. package/write-queue.d.ts +0 -9
  406. package/write-queue.d.ts.map +0 -1
  407. package/write-queue.js +0 -70
  408. package/write-queue.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/blockstore/store.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { Logger } from "@adviser/cement";
2
- import type { ActiveStore, CarClockHead, CarClockLink, DbMeta } from "./types.js";
3
- import { SuperThis } from "../types.js";
4
- export interface TaskManagerParams {
5
- readonly removeAfter: number;
6
- readonly retryTimeout: number;
7
- }
8
- export declare class TaskManager {
9
- private readonly eventsWeHandled;
10
- private queue;
11
- private isProcessing;
12
- readonly logger: Logger;
13
- readonly params: TaskManagerParams;
14
- readonly callback: (dbMeta: DbMeta, store: ActiveStore) => Promise<void>;
15
- constructor(sthis: SuperThis, callback: (dbMeta: DbMeta, store: ActiveStore) => Promise<void>, params: TaskManagerParams);
16
- handleEvent(cid: CarClockLink, parents: CarClockHead, dbMeta: DbMeta, store: ActiveStore): Promise<void>;
17
- private processQueue;
18
- }
19
- //# sourceMappingURL=task-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-manager.d.ts","sourceRoot":"","sources":["../../../../src/blockstore/task-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAElF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASxC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,WAAW;IAEtB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IAErD,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,YAAY,CAAS;IAE7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC7D,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,iBAAiB;IAMlH,WAAW,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;YAShF,YAAY;CA2B3B"}
@@ -1,50 +0,0 @@
1
- import { ensureLogger } from "../utils.js";
2
- export class TaskManager {
3
- constructor(sthis, callback, params) {
4
- this.eventsWeHandled = new Set();
5
- this.queue = [];
6
- this.isProcessing = false;
7
- this.logger = ensureLogger(sthis, "TaskManager");
8
- this.callback = callback;
9
- this.params = params;
10
- }
11
- async handleEvent(cid, parents, dbMeta, store) {
12
- for (const parent of parents) {
13
- this.eventsWeHandled.add(parent.toString());
14
- }
15
- this.queue.push({ cid: cid.toString(), dbMeta, retries: 0, store });
16
- this.queue = this.queue.filter(({ cid }) => !this.eventsWeHandled.has(cid));
17
- void this.processQueue();
18
- }
19
- async processQueue() {
20
- if (this.isProcessing)
21
- return;
22
- this.isProcessing = true;
23
- const filteredQueue = this.queue.filter(({ cid }) => !this.eventsWeHandled.has(cid));
24
- const first = filteredQueue[0];
25
- if (!first) {
26
- this.isProcessing = false;
27
- return;
28
- }
29
- try {
30
- await this.callback(first.dbMeta, first.store);
31
- this.eventsWeHandled.add(first.cid);
32
- this.queue = this.queue.filter(({ cid }) => !this.eventsWeHandled.has(cid));
33
- }
34
- catch (err) {
35
- if (first.retries++ > 3) {
36
- this.logger.Error().Str("cid", first.cid).Msg("failed to process event block after 3 retries");
37
- this.queue = this.queue.filter(({ cid }) => cid !== first.cid);
38
- }
39
- await new Promise((resolve) => setTimeout(resolve, 50));
40
- this.logger.Warn().Err(err).Msg("retry to process event block");
41
- }
42
- finally {
43
- this.isProcessing = false;
44
- if (this.queue.length > 0) {
45
- void this.processQueue();
46
- }
47
- }
48
- }
49
- }
50
- //# sourceMappingURL=task-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-manager.js","sourceRoot":"","sources":["../../../../src/blockstore/task-manager.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- import { BlockFetcher as BlockFetcherApi } from "@fireproof/vendor/@web3-storage/pail/api";
2
- import { AnyAnyLink, AnyBlock, AnyLink, CarMakeable, TransactionMeta, TransactionWrapper, BlockstoreOpts, BlockstoreRuntime, Loadable } from "./types.js";
3
- import type { Block, Version, UnknownLink } from "multiformats";
4
- import { BaseBlockstore, CarTransaction, SuperThis } from "../types.js";
5
- import { Logger } from "@adviser/cement";
6
- export type BlockFetcher = BlockFetcherApi;
7
- export interface CarTransactionOpts {
8
- readonly add: boolean;
9
- readonly noLoader: boolean;
10
- }
11
- export declare class CarTransactionImpl implements CarMakeable, CarTransaction {
12
- #private;
13
- readonly parent: BaseBlockstore;
14
- constructor(parent: BaseBlockstore, opts?: CarTransactionOpts);
15
- get<T, C extends number, A extends number, V extends Version>(cid: AnyLink): Promise<Block<T, C, A, V> | undefined>;
16
- superGet(cid: AnyLink): Promise<AnyBlock | undefined>;
17
- put(cid: AnyLink, block: Uint8Array): Promise<void>;
18
- putSync(cid: UnknownLink, bytes: Uint8Array<ArrayBufferLike>): void;
19
- unshift(cid: UnknownLink, bytes: Uint8Array<ArrayBufferLike>): void;
20
- entries(): AsyncIterableIterator<AnyBlock>;
21
- }
22
- export declare function defaultedBlockstoreRuntime(sthis: SuperThis, opts: BlockstoreOpts, component: string, ctx?: Record<string, unknown>): BlockstoreRuntime;
23
- export declare class BaseBlockstoreImpl implements BlockFetcher {
24
- readonly transactions: Set<CarTransaction>;
25
- readonly ebOpts: BlockstoreRuntime;
26
- readonly sthis: SuperThis;
27
- readonly loader: Loadable;
28
- ready(): Promise<void>;
29
- close(): Promise<void>;
30
- destroy(): Promise<void>;
31
- compact(): Promise<void>;
32
- readonly logger: Logger;
33
- constructor(ebOpts: BlockstoreOpts);
34
- get<T, C extends number, A extends number, V extends Version>(cid: AnyAnyLink): Promise<Block<T, C, A, V> | undefined>;
35
- put(cid: AnyAnyLink, block: Uint8Array): Promise<void>;
36
- lastTxMeta?: unknown;
37
- transaction<M extends TransactionMeta>(fn: (t: CarTransaction) => Promise<M>, _opts?: CarTransactionOpts): Promise<TransactionWrapper<M>>;
38
- openTransaction(opts?: CarTransactionOpts): CarTransaction;
39
- commitTransaction<M extends TransactionMeta>(t: CarTransaction, done: M, opts: CarTransactionOpts): Promise<TransactionWrapper<M>>;
40
- entries(): AsyncIterableIterator<AnyBlock>;
41
- }
42
- export declare class EncryptedBlockstore extends BaseBlockstoreImpl {
43
- ready(): Promise<void>;
44
- close(): Promise<void>;
45
- destroy(): Promise<void>;
46
- compacting: boolean;
47
- readonly logger: Logger;
48
- constructor(sthis: SuperThis, ebOpts: BlockstoreOpts);
49
- get<T, C extends number, A extends number, V extends Version>(cid: AnyAnyLink): Promise<Block<T, C, A, V> | undefined>;
50
- transaction<M extends TransactionMeta>(fn: (t: CarTransaction) => Promise<M>, opts?: {
51
- noLoader: boolean;
52
- }): Promise<TransactionWrapper<M>>;
53
- getFile(car: AnyLink, cid: AnyLink): Promise<Uint8Array>;
54
- compact(): Promise<void>;
55
- defaultCompact(blocks: CompactionFetcher, logger: Logger): Promise<TransactionMeta>;
56
- entries(): AsyncIterableIterator<AnyBlock>;
57
- }
58
- export declare class CompactionFetcher implements BlockFetcher {
59
- readonly blockstore: EncryptedBlockstore;
60
- readonly loggedBlocks: CarTransaction;
61
- constructor(blocks: EncryptedBlockstore);
62
- get<T, C extends number, A extends number, V extends Version>(cid: AnyLink): Promise<Block<T, C, A, V> | undefined>;
63
- }
64
- //# sourceMappingURL=transaction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/blockstore/transaction.ts"],"names":[],"mappings":"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"}
@@ -1,249 +0,0 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
- if (kind === "m") throw new TypeError("Private method is not writable");
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
- };
12
- var _CarTransactionImpl_memblock, _CarTransactionImpl_hackUnshift;
13
- import { MemoryBlockstore } from "@fireproof/vendor/@web3-storage/pail/block";
14
- import { Loader } from "./loader.js";
15
- import { falsyToUndef } from "../types.js";
16
- import { ensureStoreEnDeFile, toStoreRuntime } from "./store-factory.js";
17
- import { toCryptoRuntime } from "@adviser/cement";
18
- import { ensureLogger, ensureSuperThis } from "../utils.js";
19
- export class CarTransactionImpl {
20
- constructor(parent, opts = { add: true, noLoader: false }) {
21
- _CarTransactionImpl_memblock.set(this, new MemoryBlockstore());
22
- _CarTransactionImpl_hackUnshift.set(this, void 0);
23
- if (opts.add) {
24
- parent.transactions.add(this);
25
- }
26
- this.parent = parent;
27
- }
28
- async get(cid) {
29
- return ((await this.superGet(cid)) ?? falsyToUndef(await this.parent.get(cid)));
30
- }
31
- async superGet(cid) {
32
- return __classPrivateFieldGet(this, _CarTransactionImpl_memblock, "f").get(cid);
33
- }
34
- async put(cid, block) {
35
- await __classPrivateFieldGet(this, _CarTransactionImpl_memblock, "f").put(cid, block);
36
- }
37
- putSync(cid, bytes) {
38
- __classPrivateFieldGet(this, _CarTransactionImpl_memblock, "f").putSync(cid, bytes);
39
- }
40
- unshift(cid, bytes) {
41
- if (__classPrivateFieldGet(this, _CarTransactionImpl_hackUnshift, "f")) {
42
- throw new Error("unshift already called");
43
- }
44
- __classPrivateFieldSet(this, _CarTransactionImpl_hackUnshift, { cid, bytes }, "f");
45
- }
46
- async *entries() {
47
- if (__classPrivateFieldGet(this, _CarTransactionImpl_hackUnshift, "f")) {
48
- yield __classPrivateFieldGet(this, _CarTransactionImpl_hackUnshift, "f");
49
- }
50
- for await (const blk of __classPrivateFieldGet(this, _CarTransactionImpl_memblock, "f").entries()) {
51
- yield blk;
52
- }
53
- }
54
- }
55
- _CarTransactionImpl_memblock = new WeakMap(), _CarTransactionImpl_hackUnshift = new WeakMap();
56
- export function defaultedBlockstoreRuntime(sthis, opts, component, ctx) {
57
- const logger = ensureLogger(sthis, component, ctx);
58
- return {
59
- applyMeta: (meta, snap) => {
60
- return Promise.resolve();
61
- },
62
- compact: async (blocks) => {
63
- return {};
64
- },
65
- autoCompact: 100,
66
- public: false,
67
- threshold: 1000 * 1000,
68
- ...opts,
69
- logger,
70
- keyBag: opts.keyBag || {},
71
- crypto: toCryptoRuntime(opts.crypto),
72
- storeUrls: opts.storeUrls,
73
- taskManager: {
74
- removeAfter: 3,
75
- retryTimeout: 50,
76
- ...opts.taskManager,
77
- },
78
- storeRuntime: toStoreRuntime(sthis, ensureStoreEnDeFile(opts.storeEnDeFile)),
79
- };
80
- }
81
- export class BaseBlockstoreImpl {
82
- ready() {
83
- return Promise.resolve();
84
- }
85
- async close() {
86
- }
87
- async destroy() {
88
- }
89
- async compact() {
90
- }
91
- constructor(ebOpts) {
92
- this.transactions = new Set();
93
- this.sthis = ensureSuperThis(ebOpts);
94
- this.ebOpts = defaultedBlockstoreRuntime(this.sthis, ebOpts, "BaseBlockstore");
95
- this.logger = this.ebOpts.logger;
96
- this.loader = new Loader(this.sthis, ebOpts);
97
- }
98
- async get(cid) {
99
- if (!cid)
100
- throw this.logger.Error().Msg("required cid").AsError();
101
- for (const f of this.transactions) {
102
- const v = await f.superGet(cid);
103
- if (v)
104
- return v;
105
- }
106
- }
107
- async put(cid, block) {
108
- throw this.logger.Error().Msg("use a transaction to put").AsError();
109
- }
110
- async transaction(fn, _opts) {
111
- this.logger.Debug().Msg("enter transaction");
112
- const t = new CarTransactionImpl(this, _opts);
113
- this.logger.Debug().Msg("post CarTransaction");
114
- const done = await fn(t);
115
- this.logger.Debug().Msg("post fn");
116
- this.lastTxMeta = done;
117
- return { t, meta: done };
118
- }
119
- openTransaction(opts = { add: true, noLoader: false }) {
120
- return new CarTransactionImpl(this, opts);
121
- }
122
- async commitTransaction(t, done, opts) {
123
- if (!this.loader)
124
- throw this.logger.Error().Msg("loader required to commit").AsError();
125
- const cars = await this.loader.commit(t, done, opts);
126
- if (this.ebOpts.autoCompact && this.loader.carLog.length > this.ebOpts.autoCompact) {
127
- setTimeout(() => void this.compact(), 10);
128
- }
129
- if (cars) {
130
- this.transactions.delete(t);
131
- return { meta: done, cars, t };
132
- }
133
- throw this.logger.Error().Msg("failed to commit car files").AsError();
134
- }
135
- async *entries() {
136
- const seen = new Set();
137
- for (const t of this.transactions) {
138
- for await (const blk of t.entries()) {
139
- if (seen.has(blk.cid.toString()))
140
- continue;
141
- seen.add(blk.cid.toString());
142
- yield blk;
143
- }
144
- }
145
- }
146
- }
147
- export class EncryptedBlockstore extends BaseBlockstoreImpl {
148
- ready() {
149
- return this.loader.ready();
150
- }
151
- close() {
152
- return this.loader.close();
153
- }
154
- destroy() {
155
- return this.loader.destroy();
156
- }
157
- constructor(sthis, ebOpts) {
158
- super(ebOpts);
159
- this.compacting = false;
160
- this.logger = ensureLogger(this.sthis, "EncryptedBlockstore", {
161
- this: 1,
162
- });
163
- }
164
- async get(cid) {
165
- const got = await super.get(cid);
166
- if (got)
167
- return got;
168
- const ret = falsyToUndef(await this.loader.getBlock(cid, this.loader.attachedStores.local()));
169
- return ret;
170
- }
171
- async transaction(fn, opts = { noLoader: false }) {
172
- this.logger.Debug().Msg("enter transaction");
173
- const { t, meta: done } = await super.transaction(fn);
174
- this.logger.Debug().Msg("post super.transaction");
175
- const cars = await this.loader.commit(t, done, opts);
176
- this.logger.Debug().Msg("post this.loader.commit");
177
- if (this.ebOpts.autoCompact && this.loader.carLog.length > this.ebOpts.autoCompact) {
178
- setTimeout(() => void this.compact(), 10);
179
- }
180
- if (cars) {
181
- this.transactions.delete(t);
182
- return { meta: done, cars, t };
183
- }
184
- throw this.logger.Error().Msg("failed to commit car files").AsError();
185
- }
186
- async getFile(car, cid) {
187
- await this.ready();
188
- if (!this.loader)
189
- throw this.logger.Error().Msg("loader required to get file, ledger must be named").AsError();
190
- const reader = await this.loader.loadFileCar(car, this.loader.attachedStores.local());
191
- const block = await reader.blocks.find((i) => i.cid.equals(cid));
192
- if (!block)
193
- throw this.logger.Error().Str("cid", cid.toString()).Msg(`Missing block`).AsError();
194
- return block.bytes;
195
- }
196
- async compact() {
197
- await this.ready();
198
- if (!this.loader)
199
- throw this.logger.Error().Msg("loader required to compact").AsError();
200
- if (this.loader.carLog.length < 2)
201
- return;
202
- const compactFn = this.ebOpts.compact || ((blocks) => this.defaultCompact(blocks, this.logger));
203
- if (!compactFn || this.compacting)
204
- return;
205
- const blockLog = new CompactionFetcher(this);
206
- this.compacting = true;
207
- const meta = await compactFn(blockLog);
208
- await this.loader.commit(blockLog.loggedBlocks, meta, {
209
- compact: true,
210
- noLoader: true,
211
- });
212
- this.compacting = false;
213
- }
214
- async defaultCompact(blocks, logger) {
215
- if (!this.loader) {
216
- throw logger.Error().Msg("no loader").AsError();
217
- }
218
- if (!this.lastTxMeta) {
219
- throw logger.Error().Msg("no lastTxMeta").AsError();
220
- }
221
- for await (const blk of this.loader.entries(false)) {
222
- blocks.loggedBlocks.putSync(blk.cid, blk.bytes);
223
- }
224
- for (const t of this.transactions) {
225
- for await (const blk of t.entries()) {
226
- blocks.loggedBlocks.putSync(blk.cid, blk.bytes);
227
- }
228
- }
229
- return this.lastTxMeta;
230
- }
231
- async *entries() {
232
- for await (const blk of this.loader.entries()) {
233
- yield blk;
234
- }
235
- }
236
- }
237
- export class CompactionFetcher {
238
- constructor(blocks) {
239
- this.blockstore = blocks;
240
- this.loggedBlocks = new CarTransactionImpl(blocks);
241
- }
242
- async get(cid) {
243
- const block = await this.blockstore.get(cid);
244
- if (block)
245
- this.loggedBlocks.putSync(cid, block.bytes);
246
- return falsyToUndef(block);
247
- }
248
- }
249
- //# sourceMappingURL=transaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../../src/blockstore/transaction.ts"],"names":[],"mappings":"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"}