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

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 (407) 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 +296 -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 +262 -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/www/gallery.html +132 -0
  44. package/tests/www/iife.html +42 -0
  45. package/tests/www/todo-aws.html +232 -0
  46. package/tests/www/todo-ipfs.html +213 -0
  47. package/tests/www/todo-local.html +214 -0
  48. package/tests/www/todo-netlify.html +227 -0
  49. package/tests/www/todo.html +254 -0
  50. package/apply-head-queue.d.ts +0 -18
  51. package/apply-head-queue.d.ts.map +0 -1
  52. package/apply-head-queue.js +0 -47
  53. package/apply-head-queue.js.map +0 -1
  54. package/blockstore/attachable-store.d.ts +0 -17
  55. package/blockstore/attachable-store.d.ts.map +0 -1
  56. package/blockstore/attachable-store.js +0 -295
  57. package/blockstore/attachable-store.js.map +0 -1
  58. package/blockstore/commit-queue.d.ts +0 -12
  59. package/blockstore/commit-queue.d.ts.map +0 -1
  60. package/blockstore/commit-queue.js +0 -52
  61. package/blockstore/commit-queue.js.map +0 -1
  62. package/blockstore/commitor.d.ts +0 -21
  63. package/blockstore/commitor.d.ts.map +0 -1
  64. package/blockstore/commitor.js +0 -104
  65. package/blockstore/commitor.js.map +0 -1
  66. package/blockstore/connect-raw.d.ts +0 -2
  67. package/blockstore/connect-raw.d.ts.map +0 -1
  68. package/blockstore/connect-raw.js +0 -2
  69. package/blockstore/connect-raw.js.map +0 -1
  70. package/blockstore/connection-base.d.ts +0 -2
  71. package/blockstore/connection-base.d.ts.map +0 -1
  72. package/blockstore/connection-base.js +0 -2
  73. package/blockstore/connection-base.js.map +0 -1
  74. package/blockstore/encrypt-helpers.d.ts +0 -2
  75. package/blockstore/encrypt-helpers.d.ts.map +0 -1
  76. package/blockstore/encrypt-helpers.js +0 -2
  77. package/blockstore/encrypt-helpers.js.map +0 -1
  78. package/blockstore/fp-envelope.d.ts +0 -32
  79. package/blockstore/fp-envelope.d.ts.map +0 -1
  80. package/blockstore/fp-envelope.js +0 -14
  81. package/blockstore/fp-envelope.js.map +0 -1
  82. package/blockstore/gateway.d.ts +0 -20
  83. package/blockstore/gateway.d.ts.map +0 -1
  84. package/blockstore/gateway.js +0 -2
  85. package/blockstore/gateway.js.map +0 -1
  86. package/blockstore/index.d.ts +0 -16
  87. package/blockstore/index.d.ts.map +0 -1
  88. package/blockstore/index.js +0 -16
  89. package/blockstore/index.js.map +0 -1
  90. package/blockstore/interceptor-gateway.d.ts +0 -29
  91. package/blockstore/interceptor-gateway.d.ts.map +0 -1
  92. package/blockstore/interceptor-gateway.js +0 -137
  93. package/blockstore/interceptor-gateway.js.map +0 -1
  94. package/blockstore/loader-helpers.d.ts +0 -4
  95. package/blockstore/loader-helpers.d.ts.map +0 -1
  96. package/blockstore/loader-helpers.js +0 -16
  97. package/blockstore/loader-helpers.js.map +0 -1
  98. package/blockstore/loader.d.ts +0 -45
  99. package/blockstore/loader.d.ts.map +0 -1
  100. package/blockstore/loader.js +0 -352
  101. package/blockstore/loader.js.map +0 -1
  102. package/blockstore/register-store-protocol.d.ts +0 -22
  103. package/blockstore/register-store-protocol.d.ts.map +0 -1
  104. package/blockstore/register-store-protocol.js +0 -114
  105. package/blockstore/register-store-protocol.js.map +0 -1
  106. package/blockstore/serde-gateway.d.ts +0 -78
  107. package/blockstore/serde-gateway.d.ts.map +0 -1
  108. package/blockstore/serde-gateway.js +0 -2
  109. package/blockstore/serde-gateway.js.map +0 -1
  110. package/blockstore/store-factory.d.ts +0 -11
  111. package/blockstore/store-factory.d.ts.map +0 -1
  112. package/blockstore/store-factory.js +0 -105
  113. package/blockstore/store-factory.js.map +0 -1
  114. package/blockstore/store-remote.d.ts +0 -2
  115. package/blockstore/store-remote.d.ts.map +0 -1
  116. package/blockstore/store-remote.js +0 -2
  117. package/blockstore/store-remote.js.map +0 -1
  118. package/blockstore/store.d.ts +0 -82
  119. package/blockstore/store.d.ts.map +0 -1
  120. package/blockstore/store.js +0 -438
  121. package/blockstore/store.js.map +0 -1
  122. package/blockstore/task-manager.d.ts +0 -19
  123. package/blockstore/task-manager.d.ts.map +0 -1
  124. package/blockstore/task-manager.js +0 -50
  125. package/blockstore/task-manager.js.map +0 -1
  126. package/blockstore/transaction.d.ts +0 -64
  127. package/blockstore/transaction.d.ts.map +0 -1
  128. package/blockstore/transaction.js +0 -249
  129. package/blockstore/transaction.js.map +0 -1
  130. package/blockstore/types.d.ts +0 -400
  131. package/blockstore/types.d.ts.map +0 -1
  132. package/blockstore/types.js +0 -55
  133. package/blockstore/types.js.map +0 -1
  134. package/blockstore/uri-interceptor.d.ts +0 -19
  135. package/blockstore/uri-interceptor.d.ts.map +0 -1
  136. package/blockstore/uri-interceptor.js +0 -61
  137. package/blockstore/uri-interceptor.js.map +0 -1
  138. package/bundle-not-impl.d.ts +0 -2
  139. package/bundle-not-impl.d.ts.map +0 -1
  140. package/bundle-not-impl.js +0 -4
  141. package/bundle-not-impl.js.map +0 -1
  142. package/cli/main.js +0 -26114
  143. package/context.d.ts +0 -7
  144. package/context.d.ts.map +0 -1
  145. package/context.js +0 -15
  146. package/context.js.map +0 -1
  147. package/crdt-clock.d.ts +0 -27
  148. package/crdt-clock.d.ts.map +0 -1
  149. package/crdt-clock.js +0 -140
  150. package/crdt-clock.js.map +0 -1
  151. package/crdt-helpers.d.ts +0 -16
  152. package/crdt-helpers.d.ts.map +0 -1
  153. package/crdt-helpers.js +0 -316
  154. package/crdt-helpers.js.map +0 -1
  155. package/crdt.d.ts +0 -34
  156. package/crdt.d.ts.map +0 -1
  157. package/crdt.js +0 -131
  158. package/crdt.js.map +0 -1
  159. package/database.d.ts +0 -34
  160. package/database.d.ts.map +0 -1
  161. package/database.js +0 -121
  162. package/database.js.map +0 -1
  163. package/index.d.ts.map +0 -1
  164. package/indexer-helpers.d.ts +0 -69
  165. package/indexer-helpers.d.ts.map +0 -1
  166. package/indexer-helpers.js +0 -135
  167. package/indexer-helpers.js.map +0 -1
  168. package/indexer.d.ts +0 -25
  169. package/indexer.d.ts.map +0 -1
  170. package/indexer.js +0 -231
  171. package/indexer.js.map +0 -1
  172. package/ledger.d.ts +0 -56
  173. package/ledger.d.ts.map +0 -1
  174. package/ledger.js +0 -224
  175. package/ledger.js.map +0 -1
  176. package/protocols/cloud/http-connection.d.ts +0 -25
  177. package/protocols/cloud/http-connection.d.ts.map +0 -1
  178. package/protocols/cloud/http-connection.js +0 -153
  179. package/protocols/cloud/http-connection.js.map +0 -1
  180. package/protocols/cloud/index.d.ts +0 -10
  181. package/protocols/cloud/index.d.ts.map +0 -1
  182. package/protocols/cloud/index.js +0 -10
  183. package/protocols/cloud/index.js.map +0 -1
  184. package/protocols/cloud/msg-raw-connection-base.d.ts +0 -16
  185. package/protocols/cloud/msg-raw-connection-base.d.ts.map +0 -1
  186. package/protocols/cloud/msg-raw-connection-base.js +0 -22
  187. package/protocols/cloud/msg-raw-connection-base.js.map +0 -1
  188. package/protocols/cloud/msg-types-data.d.ts +0 -36
  189. package/protocols/cloud/msg-types-data.d.ts.map +0 -1
  190. package/protocols/cloud/msg-types-data.js +0 -38
  191. package/protocols/cloud/msg-types-data.js.map +0 -1
  192. package/protocols/cloud/msg-types-meta.d.ts +0 -41
  193. package/protocols/cloud/msg-types-meta.d.ts.map +0 -1
  194. package/protocols/cloud/msg-types-meta.js +0 -98
  195. package/protocols/cloud/msg-types-meta.js.map +0 -1
  196. package/protocols/cloud/msg-types-wal.d.ts +0 -33
  197. package/protocols/cloud/msg-types-wal.d.ts.map +0 -1
  198. package/protocols/cloud/msg-types-wal.js +0 -38
  199. package/protocols/cloud/msg-types-wal.js.map +0 -1
  200. package/protocols/cloud/msg-types.d.ts +0 -279
  201. package/protocols/cloud/msg-types.d.ts.map +0 -1
  202. package/protocols/cloud/msg-types.js +0 -278
  203. package/protocols/cloud/msg-types.js.map +0 -1
  204. package/protocols/cloud/msger.d.ts +0 -79
  205. package/protocols/cloud/msger.d.ts.map +0 -1
  206. package/protocols/cloud/msger.js +0 -198
  207. package/protocols/cloud/msger.js.map +0 -1
  208. package/protocols/cloud/ws-connection.d.ts +0 -29
  209. package/protocols/cloud/ws-connection.d.ts.map +0 -1
  210. package/protocols/cloud/ws-connection.js +0 -163
  211. package/protocols/cloud/ws-connection.js.map +0 -1
  212. package/protocols/index.d.ts +0 -2
  213. package/protocols/index.d.ts.map +0 -1
  214. package/protocols/index.js +0 -2
  215. package/protocols/index.js.map +0 -1
  216. package/react/img-file.d.ts.map +0 -1
  217. package/react/img-file.js +0 -58
  218. package/react/img-file.js.map +0 -1
  219. package/react/index.d.ts.map +0 -1
  220. package/react/types.d.ts +0 -43
  221. package/react/types.d.ts.map +0 -1
  222. package/react/types.js +0 -2
  223. package/react/types.js.map +0 -1
  224. package/react/use-all-docs.d.ts +0 -4
  225. package/react/use-all-docs.d.ts.map +0 -1
  226. package/react/use-all-docs.js +0 -19
  227. package/react/use-all-docs.js.map +0 -1
  228. package/react/use-changes.d.ts +0 -4
  229. package/react/use-changes.d.ts.map +0 -1
  230. package/react/use-changes.js +0 -19
  231. package/react/use-changes.js.map +0 -1
  232. package/react/use-document.d.ts +0 -4
  233. package/react/use-document.d.ts.map +0 -1
  234. package/react/use-document.js +0 -99
  235. package/react/use-document.js.map +0 -1
  236. package/react/use-fireproof.d.ts +0 -6
  237. package/react/use-fireproof.d.ts.map +0 -1
  238. package/react/use-fireproof.js +0 -15
  239. package/react/use-fireproof.js.map +0 -1
  240. package/react/use-live-query.d.ts +0 -4
  241. package/react/use-live-query.d.ts.map +0 -1
  242. package/react/use-live-query.js +0 -38
  243. package/react/use-live-query.js.map +0 -1
  244. package/react/utils.d.ts +0 -2
  245. package/react/utils.d.ts.map +0 -1
  246. package/react/utils.js +0 -4
  247. package/react/utils.js.map +0 -1
  248. package/runtime/files.d.ts +0 -12
  249. package/runtime/files.d.ts.map +0 -1
  250. package/runtime/files.js +0 -29
  251. package/runtime/files.js.map +0 -1
  252. package/runtime/gateways/cloud/gateway.d.ts +0 -44
  253. package/runtime/gateways/cloud/gateway.d.ts.map +0 -1
  254. package/runtime/gateways/cloud/gateway.js +0 -496
  255. package/runtime/gateways/cloud/gateway.js.map +0 -1
  256. package/runtime/gateways/def-serde-gateway.d.ts +0 -19
  257. package/runtime/gateways/def-serde-gateway.d.ts.map +0 -1
  258. package/runtime/gateways/def-serde-gateway.js +0 -73
  259. package/runtime/gateways/def-serde-gateway.js.map +0 -1
  260. package/runtime/gateways/file/deno/deno-filesystem.d.ts +0 -27
  261. package/runtime/gateways/file/deno/deno-filesystem.d.ts.map +0 -1
  262. package/runtime/gateways/file/deno/deno-filesystem.js +0 -51
  263. package/runtime/gateways/file/deno/deno-filesystem.js.map +0 -1
  264. package/runtime/gateways/file/deno/get-sys-file-system.d.ts +0 -4
  265. package/runtime/gateways/file/deno/get-sys-file-system.d.ts.map +0 -1
  266. package/runtime/gateways/file/deno/get-sys-file-system.js +0 -11
  267. package/runtime/gateways/file/deno/get-sys-file-system.js.map +0 -1
  268. package/runtime/gateways/file/deno/index.d.ts +0 -2
  269. package/runtime/gateways/file/deno/index.d.ts.map +0 -1
  270. package/runtime/gateways/file/deno/index.js +0 -2
  271. package/runtime/gateways/file/deno/index.js.map +0 -1
  272. package/runtime/gateways/file/gateway-impl.d.ts +0 -18
  273. package/runtime/gateways/file/gateway-impl.d.ts.map +0 -1
  274. package/runtime/gateways/file/gateway-impl.js +0 -121
  275. package/runtime/gateways/file/gateway-impl.js.map +0 -1
  276. package/runtime/gateways/file/index.d.ts +0 -3
  277. package/runtime/gateways/file/index.d.ts.map +0 -1
  278. package/runtime/gateways/file/index.js +0 -3
  279. package/runtime/gateways/file/index.js.map +0 -1
  280. package/runtime/gateways/file/key-bag-file.d.ts +0 -19
  281. package/runtime/gateways/file/key-bag-file.d.ts.map +0 -1
  282. package/runtime/gateways/file/key-bag-file.js +0 -40
  283. package/runtime/gateways/file/key-bag-file.js.map +0 -1
  284. package/runtime/gateways/file/node/get-sys-file-system.d.ts +0 -4
  285. package/runtime/gateways/file/node/get-sys-file-system.d.ts.map +0 -1
  286. package/runtime/gateways/file/node/get-sys-file-system.js +0 -11
  287. package/runtime/gateways/file/node/get-sys-file-system.js.map +0 -1
  288. package/runtime/gateways/file/node/index.d.ts +0 -2
  289. package/runtime/gateways/file/node/index.d.ts.map +0 -1
  290. package/runtime/gateways/file/node/index.js +0 -2
  291. package/runtime/gateways/file/node/index.js.map +0 -1
  292. package/runtime/gateways/file/node/node-filesystem.d.ts +0 -32
  293. package/runtime/gateways/file/node/node-filesystem.d.ts.map +0 -1
  294. package/runtime/gateways/file/node/node-filesystem.js +0 -37
  295. package/runtime/gateways/file/node/node-filesystem.js.map +0 -1
  296. package/runtime/gateways/file/node/to-array-buffer.d.ts +0 -2
  297. package/runtime/gateways/file/node/to-array-buffer.d.ts.map +0 -1
  298. package/runtime/gateways/file/node/to-array-buffer.js +0 -12
  299. package/runtime/gateways/file/node/to-array-buffer.js.map +0 -1
  300. package/runtime/gateways/file/sys-file-system-factory.d.ts +0 -4
  301. package/runtime/gateways/file/sys-file-system-factory.d.ts.map +0 -1
  302. package/runtime/gateways/file/sys-file-system-factory.js +0 -13
  303. package/runtime/gateways/file/sys-file-system-factory.js.map +0 -1
  304. package/runtime/gateways/file/utils.d.ts +0 -5
  305. package/runtime/gateways/file/utils.d.ts.map +0 -1
  306. package/runtime/gateways/file/utils.js +0 -27
  307. package/runtime/gateways/file/utils.js.map +0 -1
  308. package/runtime/gateways/file/version.d.ts +0 -2
  309. package/runtime/gateways/file/version.d.ts.map +0 -1
  310. package/runtime/gateways/file/version.js +0 -2
  311. package/runtime/gateways/file/version.js.map +0 -1
  312. package/runtime/gateways/fp-envelope-serialize.d.ts +0 -50
  313. package/runtime/gateways/fp-envelope-serialize.d.ts.map +0 -1
  314. package/runtime/gateways/fp-envelope-serialize.js +0 -141
  315. package/runtime/gateways/fp-envelope-serialize.js.map +0 -1
  316. package/runtime/gateways/index.d.ts +0 -6
  317. package/runtime/gateways/index.d.ts.map +0 -1
  318. package/runtime/gateways/index.js +0 -6
  319. package/runtime/gateways/index.js.map +0 -1
  320. package/runtime/gateways/indexeddb/gateway-impl.d.ts +0 -22
  321. package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +0 -1
  322. package/runtime/gateways/indexeddb/gateway-impl.js +0 -147
  323. package/runtime/gateways/indexeddb/gateway-impl.js.map +0 -1
  324. package/runtime/gateways/indexeddb/index.d.ts +0 -6
  325. package/runtime/gateways/indexeddb/index.d.ts.map +0 -1
  326. package/runtime/gateways/indexeddb/index.js +0 -6
  327. package/runtime/gateways/indexeddb/index.js.map +0 -1
  328. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +0 -15
  329. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +0 -1
  330. package/runtime/gateways/indexeddb/key-bag-indexeddb.js +0 -42
  331. package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +0 -1
  332. package/runtime/gateways/indexeddb-version.d.ts +0 -2
  333. package/runtime/gateways/indexeddb-version.d.ts.map +0 -1
  334. package/runtime/gateways/indexeddb-version.js +0 -2
  335. package/runtime/gateways/indexeddb-version.js.map +0 -1
  336. package/runtime/gateways/memory/gateway.d.ts +0 -18
  337. package/runtime/gateways/memory/gateway.d.ts.map +0 -1
  338. package/runtime/gateways/memory/gateway.js +0 -58
  339. package/runtime/gateways/memory/gateway.js.map +0 -1
  340. package/runtime/gateways/memory/version.d.ts +0 -2
  341. package/runtime/gateways/memory/version.d.ts.map +0 -1
  342. package/runtime/gateways/memory/version.js +0 -2
  343. package/runtime/gateways/memory/version.js.map +0 -1
  344. package/runtime/index.d.ts +0 -13
  345. package/runtime/index.d.ts.map +0 -1
  346. package/runtime/index.js +0 -13
  347. package/runtime/index.js.map +0 -1
  348. package/runtime/key-bag-memory.d.ts +0 -12
  349. package/runtime/key-bag-memory.d.ts.map +0 -1
  350. package/runtime/key-bag-memory.js +0 -23
  351. package/runtime/key-bag-memory.js.map +0 -1
  352. package/runtime/key-bag.d.ts +0 -85
  353. package/runtime/key-bag.d.ts.map +0 -1
  354. package/runtime/key-bag.js +0 -415
  355. package/runtime/key-bag.js.map +0 -1
  356. package/runtime/keyed-crypto.d.ts +0 -19
  357. package/runtime/keyed-crypto.d.ts.map +0 -1
  358. package/runtime/keyed-crypto.js +0 -192
  359. package/runtime/keyed-crypto.js.map +0 -1
  360. package/runtime/memory-sys-container.d.ts +0 -2
  361. package/runtime/memory-sys-container.d.ts.map +0 -1
  362. package/runtime/memory-sys-container.js +0 -2
  363. package/runtime/memory-sys-container.js.map +0 -1
  364. package/runtime/meta-key-hack.d.ts +0 -42
  365. package/runtime/meta-key-hack.d.ts.map +0 -1
  366. package/runtime/meta-key-hack.js +0 -201
  367. package/runtime/meta-key-hack.js.map +0 -1
  368. package/runtime/sts-service/index.d.ts +0 -40
  369. package/runtime/sts-service/index.d.ts.map +0 -1
  370. package/runtime/sts-service/index.js +0 -102
  371. package/runtime/sts-service/index.js.map +0 -1
  372. package/runtime/sys-container.d.ts +0 -2
  373. package/runtime/sys-container.d.ts.map +0 -1
  374. package/runtime/sys-container.js +0 -2
  375. package/runtime/sys-container.js.map +0 -1
  376. package/runtime/wait-pr-multiformats/block.d.ts +0 -47
  377. package/runtime/wait-pr-multiformats/block.d.ts.map +0 -1
  378. package/runtime/wait-pr-multiformats/block.js +0 -64
  379. package/runtime/wait-pr-multiformats/block.js.map +0 -1
  380. package/runtime/wait-pr-multiformats/codec-interface.d.ts +0 -29
  381. package/runtime/wait-pr-multiformats/codec-interface.d.ts.map +0 -1
  382. package/runtime/wait-pr-multiformats/codec-interface.js +0 -2
  383. package/runtime/wait-pr-multiformats/codec-interface.js.map +0 -1
  384. package/runtime/wait-pr-multiformats/index.d.ts +0 -3
  385. package/runtime/wait-pr-multiformats/index.d.ts.map +0 -1
  386. package/runtime/wait-pr-multiformats/index.js +0 -3
  387. package/runtime/wait-pr-multiformats/index.js.map +0 -1
  388. package/types.d.ts +0 -427
  389. package/types.d.ts.map +0 -1
  390. package/types.js +0 -54
  391. package/types.js.map +0 -1
  392. package/use-fireproof/index.d.ts +0 -3
  393. package/use-fireproof/index.d.ts.map +0 -1
  394. package/use-fireproof/index.js +0 -3
  395. package/use-fireproof/index.js.map +0 -1
  396. package/utils.d.ts +0 -36
  397. package/utils.d.ts.map +0 -1
  398. package/utils.js +0 -379
  399. package/utils.js.map +0 -1
  400. package/version.d.ts +0 -2
  401. package/version.d.ts.map +0 -1
  402. package/version.js +0 -4
  403. package/version.js.map +0 -1
  404. package/write-queue.d.ts +0 -9
  405. package/write-queue.d.ts.map +0 -1
  406. package/write-queue.js +0 -70
  407. package/write-queue.js.map +0 -1
@@ -1,438 +0,0 @@
1
- import { exception2Result, ResolveOnce, Result } from "@adviser/cement";
2
- import { PARAM } from "../types.js";
3
- import { ensureLogger, inplaceFilter, isNotFoundError } from "../utils.js";
4
- import { carLogIncludesGroup } from "./loader.js";
5
- import { CommitQueue } from "./commit-queue.js";
6
- import { keyedCryptoFactory } from "../runtime/keyed-crypto.js";
7
- import { Car2FPMsg, File2FPMsg } from "./fp-envelope.js";
8
- import { EventBlock } from "@fireproof/vendor/@web3-storage/pail/clock";
9
- import { format } from "@ipld/dag-json";
10
- import pRetry from "p-retry";
11
- import pMap from "p-map";
12
- function guardVersion(url) {
13
- if (!url.hasParam("version")) {
14
- return Result.Err(`missing version: ${url.toString()}`);
15
- }
16
- return Result.Ok(url);
17
- }
18
- export class BaseStoreImpl {
19
- get realGateway() {
20
- return this.gateway.innerGW;
21
- }
22
- constructor(sthis, url, opts, logger) {
23
- this._onStarted = [];
24
- this._onClosed = [];
25
- this._url = url;
26
- this.opts = opts;
27
- this.loader = opts.loader;
28
- this.sthis = sthis;
29
- const name = this._url.getParam(PARAM.NAME);
30
- if (!name) {
31
- throw logger.Error().Url(this._url).Msg("missing name").AsError();
32
- }
33
- this.logger = logger
34
- .With()
35
- .Str("this", this.sthis.nextId().str)
36
- .Ref("url", () => this._url.toString())
37
- .Logger();
38
- this.gateway = opts.gateway;
39
- }
40
- url() {
41
- return this._url;
42
- }
43
- onStarted(fn) {
44
- this._onStarted.push(fn);
45
- }
46
- onClosed(fn) {
47
- this._onClosed.push(fn);
48
- }
49
- async ready() {
50
- return;
51
- }
52
- async keyedCrypto() {
53
- return keyedCryptoFactory(this._url, await this.loader.keyBag(), this.sthis);
54
- }
55
- async start(dam) {
56
- this.logger.Debug().Str("storeType", this.storeType).Msg("starting-gateway-pre");
57
- this._url = this._url.build().setParam(PARAM.STORE, this.storeType).URI();
58
- const res = await this.gateway.start({ loader: this.loader }, this._url);
59
- if (res.isErr()) {
60
- this.logger.Error().Result("gw-start", res).Msg("started-gateway");
61
- return res;
62
- }
63
- this._url = res.Ok();
64
- const kb = await this.loader.keyBag();
65
- const skRes = await kb.ensureKeyFromUrl(this._url, () => {
66
- const key = this._url.getParam(PARAM.KEY);
67
- return key;
68
- });
69
- if (skRes.isErr()) {
70
- return skRes;
71
- }
72
- this._url = skRes.Ok();
73
- const version = guardVersion(this._url);
74
- if (version.isErr()) {
75
- this.logger.Error().Result("version", version).Msg("guardVersion");
76
- await this.close();
77
- return version;
78
- }
79
- if (this.ready) {
80
- const fn = this.ready.bind(this);
81
- const ready = await exception2Result(fn);
82
- if (ready.isErr()) {
83
- await this.close();
84
- return ready;
85
- }
86
- }
87
- this._onStarted.forEach((fn) => fn(dam));
88
- this.logger.Debug().Msg("started");
89
- return version;
90
- }
91
- }
92
- export async function createDbMetaEvent(sthis, dbMeta, parents) {
93
- const event = await EventBlock.create({
94
- dbMeta: sthis.txt.encode(format(dbMeta)),
95
- }, parents);
96
- return {
97
- eventCid: event.cid,
98
- dbMeta,
99
- parents,
100
- };
101
- }
102
- export class MetaStoreImpl extends BaseStoreImpl {
103
- constructor(sthis, url, opts) {
104
- super(sthis, url, { ...opts }, ensureLogger(sthis, "MetaStoreImpl"));
105
- this.storeType = "meta";
106
- this.subscribers = new Map();
107
- this.parents = [];
108
- if (opts.gateway.subscribe) {
109
- this.onStarted(async (dam) => {
110
- this.logger.Debug().Str("url", this.url().toString()).Msg("Subscribing to the gateway");
111
- opts.gateway.subscribe({ loader: this.loader }, this.url(), async ({ payload: dbMetas }) => {
112
- this.logger.Debug().Msg("Received message from gateway");
113
- await Promise.all(dbMetas.map((dbMetaEv) => this.loader.taskManager?.handleEvent(dbMetaEv.eventCid, dbMetaEv.parents, dbMetaEv.dbMeta, this.loader.attachedStores.activate(dam))));
114
- this.updateParentsFromDbMetas(dbMetas);
115
- });
116
- });
117
- }
118
- }
119
- updateParentsFromDbMetas(dbMetas) {
120
- const cids = dbMetas.map((m) => m.eventCid);
121
- const dbMetaParents = dbMetas.flatMap((m) => m.parents);
122
- const uniqueParentsMap = new Map([...this.parents, ...cids].map((p) => [p.toString(), p]));
123
- const dbMetaParentsSet = new Set(dbMetaParents.map((p) => p.toString()));
124
- this.parents = Array.from(uniqueParentsMap.values()).filter((p) => !dbMetaParentsSet.has(p.toString()));
125
- }
126
- async load(branch = "main") {
127
- const url = await this.gateway.buildUrl({ loader: this.loader }, this.url(), branch);
128
- if (url.isErr()) {
129
- throw this.logger.Error().Result("buildUrl", url).Str("branch", branch).Msg("got error from gateway.buildUrl").AsError();
130
- }
131
- const rfpEnv = await this.gateway.get({ loader: this.loader }, url.Ok());
132
- if (rfpEnv.isErr()) {
133
- if (isNotFoundError(rfpEnv)) {
134
- return undefined;
135
- }
136
- throw this.logger.Error().Url(url.Ok()).Err(rfpEnv).Msg("gateway get").AsError();
137
- }
138
- const fpMeta = rfpEnv.Ok().payload;
139
- const dbMetas = fpMeta.map((m) => m.dbMeta);
140
- await this.loader.handleDbMetasFromStore(dbMetas, this.loader.attachedStores.activate(url.Ok()));
141
- this.updateParentsFromDbMetas(fpMeta);
142
- return dbMetas;
143
- }
144
- async save(meta, branch) {
145
- branch = branch || "main";
146
- this.logger.Debug().Str("branch", branch).Any("meta", meta).Msg("saving meta");
147
- const url = await this.gateway.buildUrl({ loader: this.loader }, this.url(), branch);
148
- if (url.isErr()) {
149
- throw this.logger.Error().Err(url.Err()).Str("branch", branch).Msg("got error from gateway.buildUrl").AsError();
150
- }
151
- const dbMetaEvent = await createDbMetaEvent(this.sthis, meta, this.parents);
152
- const res = await this.gateway.put({ loader: this.loader }, url.Ok(), {
153
- type: "meta",
154
- payload: [dbMetaEvent],
155
- });
156
- if (res.isErr()) {
157
- throw this.logger.Error().Err(res.Err()).Msg("got error from gateway.put").AsError();
158
- }
159
- return res;
160
- }
161
- async close() {
162
- await this.gateway.close({ loader: this.loader }, this.url());
163
- this._onClosed.forEach((fn) => fn());
164
- return Result.Ok(undefined);
165
- }
166
- async destroy() {
167
- this.logger.Debug().Msg("destroy");
168
- return this.gateway.destroy({ loader: this.loader }, this.url());
169
- }
170
- }
171
- class DataStoreImpl extends BaseStoreImpl {
172
- constructor(sthis, url, opts, logger) {
173
- super(sthis, url, { ...opts }, logger);
174
- }
175
- async load(cid) {
176
- this.logger.Debug().Any("cid", cid).Msg("loading");
177
- const url = await this.gateway.buildUrl({ loader: this.loader }, this.url(), cid.toString());
178
- if (url.isErr()) {
179
- throw this.logger.Error().Err(url.Err()).Str("cid", cid.toString()).Msg("got error from gateway.buildUrl").AsError();
180
- }
181
- const res = await this.gateway.get({ loader: this.loader }, url.Ok());
182
- if (res.isErr()) {
183
- throw res.Err();
184
- }
185
- const fpenv = res.Ok();
186
- switch (fpenv.type) {
187
- case "car":
188
- case "file":
189
- return { cid, bytes: fpenv.payload };
190
- default:
191
- throw this.logger.Error().Msg("unexpected type").AsError();
192
- }
193
- }
194
- async save(car, opts) {
195
- this.logger.Debug().Any("cid", car.cid.toString()).Msg("saving");
196
- const url = await this.gateway.buildUrl({ loader: this.loader }, this.url(), car.cid.toString());
197
- if (url.isErr()) {
198
- throw this.logger.Error().Err(url.Err()).Ref("cid", car.cid).Msg("got error from gateway.buildUrl").AsError();
199
- }
200
- let fpMsg;
201
- switch (url.Ok().getParam(PARAM.STORE)) {
202
- case "car":
203
- fpMsg = Car2FPMsg(car.bytes);
204
- break;
205
- case "file":
206
- fpMsg = File2FPMsg(car.bytes);
207
- break;
208
- default:
209
- throw this.logger.Error().Str("store", url.Ok().getParam(PARAM.STORE)).Msg("unexpected store").AsError();
210
- }
211
- if (fpMsg.isErr()) {
212
- throw this.logger.Error().Err(fpMsg).Msg("got error from FPMsg2Car").AsError();
213
- }
214
- const res = await this.gateway.put({ loader: this.loader }, url.Ok(), fpMsg.Ok());
215
- if (res.isErr()) {
216
- throw this.logger.Error().Err(res.Err()).Msg("got error from gateway.put").AsError();
217
- }
218
- return res.Ok();
219
- }
220
- async remove(cid) {
221
- const url = await this.gateway.buildUrl({ loader: this.loader }, this.url(), cid.toString());
222
- if (url.isErr()) {
223
- return url;
224
- }
225
- return this.gateway.delete({ loader: this.loader }, url.Ok());
226
- }
227
- async close() {
228
- await this.gateway.close({ loader: this.loader }, this.url());
229
- this._onClosed.forEach((fn) => fn());
230
- return Result.Ok(undefined);
231
- }
232
- destroy() {
233
- this.logger.Debug().Msg("destroy");
234
- return this.gateway.destroy({ loader: this.loader }, this.url());
235
- }
236
- }
237
- export class CarStoreImpl extends DataStoreImpl {
238
- constructor(sthis, url, opts) {
239
- super(sthis, url, { ...opts }, ensureLogger(sthis, "CarStoreImpl"));
240
- this.storeType = "car";
241
- }
242
- }
243
- export class FileStoreImpl extends DataStoreImpl {
244
- constructor(sthis, url, opts) {
245
- super(sthis, url, { ...opts }, ensureLogger(sthis, "FileStoreImpl"));
246
- this.storeType = "file";
247
- }
248
- }
249
- export class WALStoreImpl extends BaseStoreImpl {
250
- constructor(sthis, url, opts) {
251
- super(sthis, url, { ...opts }, ensureLogger(sthis, "WALStoreImpl"));
252
- this.storeType = "wal";
253
- this._ready = new ResolveOnce();
254
- this.walState = { operations: [], noLoaderOps: [], fileOperations: [] };
255
- this.processing = undefined;
256
- this.processQueue = new CommitQueue();
257
- }
258
- async ready() {
259
- return this._ready.once(async () => {
260
- const walState = await this.load().catch((e) => {
261
- this.logger.Error().Err(e).Msg("error loading wal");
262
- return undefined;
263
- });
264
- this.walState.operations.splice(0, this.walState.operations.length);
265
- this.walState.fileOperations.splice(0, this.walState.fileOperations.length);
266
- if (walState) {
267
- this.walState.operations.push(...walState.operations);
268
- this.walState.fileOperations.push(...walState.fileOperations);
269
- }
270
- });
271
- }
272
- async enqueue(dbMeta, opts) {
273
- await this.ready();
274
- if (opts.compact) {
275
- this.walState.operations.splice(0, this.walState.operations.length);
276
- this.walState.noLoaderOps.splice(0, this.walState.noLoaderOps.length);
277
- this.walState.noLoaderOps.push(dbMeta);
278
- }
279
- else if (opts.noLoader) {
280
- this.walState.noLoaderOps.push(dbMeta);
281
- }
282
- else {
283
- this.walState.operations.push(dbMeta);
284
- }
285
- await this.save(this.walState);
286
- if (!opts.noLoader) {
287
- void this.process();
288
- }
289
- }
290
- async enqueueFile(fileCid, publicFile = false) {
291
- await this.ready();
292
- this.walState.fileOperations.push({ cid: fileCid, public: publicFile });
293
- }
294
- async process() {
295
- await this.ready();
296
- await this.processQueue.enqueue(async () => {
297
- try {
298
- await this._doProcess();
299
- }
300
- catch (e) {
301
- this.logger.Error().Any("error", e).Msg("error processing wal");
302
- }
303
- if (this.walState.operations.length || this.walState.fileOperations.length || this.walState.noLoaderOps.length) {
304
- setTimeout(() => void this.process(), 0);
305
- }
306
- });
307
- }
308
- async _doProcess() {
309
- if (!this.loader)
310
- return;
311
- const operations = [...this.walState.operations];
312
- const noLoaderOps = [...this.walState.noLoaderOps];
313
- const fileOperations = [...this.walState.fileOperations];
314
- if (operations.length + noLoaderOps.length + fileOperations.length === 0)
315
- return;
316
- const concurrencyLimit = 3;
317
- const retryableUpload = (fn, description) => pRetry(fn, {
318
- retries: 5,
319
- onFailedAttempt: (error) => {
320
- this.logger
321
- .Warn()
322
- .Any("error", error)
323
- .Any("fn", fn.toString())
324
- .Msg(`Attempt ${error.attemptNumber} failed for ${description}. There are ${error.retriesLeft} retries left.`);
325
- },
326
- });
327
- try {
328
- await pMap(noLoaderOps, async (dbMeta) => {
329
- await retryableUpload(async () => {
330
- if (!this.loader) {
331
- return;
332
- }
333
- for (const cid of dbMeta.cars) {
334
- const car = await this.loader.attachedStores.local().active.car.load(cid);
335
- if (!car) {
336
- if (carLogIncludesGroup(this.loader.carLog.asArray(), dbMeta.cars)) {
337
- throw this.logger.Error().Ref("cid", cid).Msg("missing local car").AsError();
338
- }
339
- }
340
- else {
341
- await this.loader.attachedStores.forRemotes((x) => x.active.car.save(car));
342
- }
343
- }
344
- inplaceFilter(this.walState.noLoaderOps, (op) => op !== dbMeta);
345
- }, `noLoaderOp with dbMeta.cars=${dbMeta.cars.toString()}`);
346
- }, { concurrency: concurrencyLimit });
347
- await pMap(operations, async (dbMeta) => {
348
- await retryableUpload(async () => {
349
- if (!this.loader) {
350
- return;
351
- }
352
- for (const cid of dbMeta.cars) {
353
- const car = await this.loader.attachedStores.local().active.car.load(cid);
354
- if (!car) {
355
- if (carLogIncludesGroup(this.loader.carLog.asArray(), dbMeta.cars)) {
356
- throw this.logger.Error().Ref("cid", cid).Msg(`missing local car`).AsError();
357
- }
358
- }
359
- else {
360
- await this.loader.attachedStores.forRemotes((x) => x.active.car.save(car));
361
- }
362
- }
363
- inplaceFilter(this.walState.operations, (op) => op !== dbMeta);
364
- }, `operation with dbMeta.cars=${dbMeta.cars.toString()}`);
365
- }, { concurrency: concurrencyLimit });
366
- await pMap(fileOperations, async ({ cid: fileCid, public: publicFile }) => {
367
- await retryableUpload(async () => {
368
- if (!this.loader) {
369
- return;
370
- }
371
- const fileBlock = await this.loader.attachedStores.local().active.file.load(fileCid);
372
- if (!fileBlock) {
373
- throw this.logger.Error().Ref("cid", fileCid).Msg("missing file block").AsError();
374
- }
375
- await this.loader.attachedStores.forRemotes((x) => x.active.file.save(fileBlock, { public: publicFile }));
376
- inplaceFilter(this.walState.fileOperations, (op) => op.cid !== fileCid);
377
- }, `fileOperation with cid=${fileCid.toString()}`);
378
- }, { concurrency: concurrencyLimit });
379
- if (operations.length) {
380
- const lastOp = operations[operations.length - 1];
381
- await retryableUpload(async () => {
382
- if (!this.loader) {
383
- return;
384
- }
385
- await this.loader.attachedStores.forRemotes((x) => x.active.meta.save(lastOp));
386
- }, `remoteMetaStore save with dbMeta.cars=${lastOp.cars.toString()}`);
387
- }
388
- }
389
- catch (error) {
390
- this.logger.Error().Any("error", error).Msg("Processing failed");
391
- return;
392
- }
393
- finally {
394
- await this.save(this.walState);
395
- }
396
- }
397
- async load() {
398
- this.logger.Debug().Msg("loading");
399
- const filepath = await this.gateway.buildUrl({ loader: this.loader }, this.url(), "main");
400
- if (filepath.isErr()) {
401
- throw this.logger.Error().Err(filepath.Err()).Url(this.url()).Msg("error building url").AsError();
402
- }
403
- const bytes = (await this.gateway.get({ loader: this.loader }, filepath.Ok()));
404
- if (bytes.isErr()) {
405
- if (isNotFoundError(bytes)) {
406
- return undefined;
407
- }
408
- throw this.logger.Error().Err(bytes.Err()).Msg("error get").AsError();
409
- }
410
- if (bytes.Ok().type !== "wal") {
411
- throw this.logger.Error().Str("type", bytes.Ok().type).Msg("unexpected type").AsError();
412
- }
413
- return bytes.Ok().payload;
414
- }
415
- async save(state) {
416
- const filepath = await this.gateway.buildUrl({ loader: this.loader }, this.url(), "main");
417
- if (filepath.isErr()) {
418
- throw this.logger.Error().Err(filepath.Err()).Url(this.url()).Msg("error building url").AsError();
419
- }
420
- const res = await this.gateway.put({ loader: this.loader }, filepath.Ok(), {
421
- type: "wal",
422
- payload: state,
423
- });
424
- if (res.isErr()) {
425
- throw this.logger.Error().Err(res.Err()).Str("filePath", filepath.Ok().toString()).Msg("error saving").AsError();
426
- }
427
- }
428
- async close() {
429
- await this.gateway.close({ loader: this.loader }, this.url());
430
- this._onClosed.forEach((fn) => fn());
431
- return Result.Ok(undefined);
432
- }
433
- destroy() {
434
- this.logger.Debug().Msg("destroy");
435
- return this.gateway.destroy({ loader: this.loader }, this.url());
436
- }
437
- }
438
- //# sourceMappingURL=store.js.map
@@ -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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"}