@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,352 +0,0 @@
1
- import pLimit from "p-limit";
2
- import { CarReader } from "@ipld/car/reader";
3
- import { KeyedResolvOnce, LRUSet, ResolveOnce } from "@adviser/cement";
4
- import { CarLog, } from "./types.js";
5
- import { parseCarFile } from "./loader-helpers.js";
6
- import { defaultedBlockstoreRuntime } from "./transaction.js";
7
- import { CommitQueue } from "./commit-queue.js";
8
- import { isFalsy, PARAM, } from "../types.js";
9
- import { getKeyBag } from "../runtime/key-bag.js";
10
- import { commit, commitFiles } from "./commitor.js";
11
- import { decode } from "../runtime/wait-pr-multiformats/block.js";
12
- import { sha256 as hasher } from "multiformats/hashes/sha2";
13
- import { TaskManager } from "./task-manager.js";
14
- import { AttachedRemotesImpl, createAttachedStores } from "./attachable-store.js";
15
- import { ensureLogger, isNotFoundError } from "../utils.js";
16
- export function carLogIncludesGroup(list, cids) {
17
- const cidSet = cids
18
- .map((cid) => cid.toString())
19
- .sort()
20
- .join(",");
21
- return list.some((arr) => cidSet ===
22
- arr
23
- .map((cid) => cid.toString())
24
- .sort()
25
- .join(","));
26
- }
27
- function uniqueCids(list, remove = new LRUSet()) {
28
- const byString = new Map();
29
- for (const cid of list) {
30
- if (remove.has(cid.toString()))
31
- continue;
32
- byString.set(cid.toString(), cid);
33
- }
34
- return [...byString.values()];
35
- }
36
- export class Loader {
37
- async attach(attached) {
38
- const at = await this.attachedStores.attach(attached);
39
- if (!at.stores.wal) {
40
- try {
41
- const dbMeta = await at.stores.meta.load();
42
- if (Array.isArray(dbMeta)) {
43
- await this.handleDbMetasFromStore(dbMeta, this.attachedStores.activate(at.stores));
44
- }
45
- else if (!isFalsy(dbMeta)) {
46
- throw this.logger.Error().Any({ dbMeta }).Msg("missing dbMeta").AsError();
47
- }
48
- }
49
- catch (e) {
50
- this.logger.Error().Err(e).Msg("error attaching store");
51
- at.detach();
52
- }
53
- }
54
- return at;
55
- }
56
- keyBag() {
57
- return getKeyBag(this.sthis, this.ebOpts.keyBag);
58
- }
59
- async ready() {
60
- return this.onceReady.once(async () => {
61
- await createAttachedStores({
62
- car: { url: this.ebOpts.storeUrls.car, gatewayInterceptor: this.ebOpts.gatewayInterceptor },
63
- file: { url: this.ebOpts.storeUrls.file, gatewayInterceptor: this.ebOpts.gatewayInterceptor },
64
- meta: { url: this.ebOpts.storeUrls.meta, gatewayInterceptor: this.ebOpts.gatewayInterceptor },
65
- wal: { url: this.ebOpts.storeUrls.wal, gatewayInterceptor: this.ebOpts.gatewayInterceptor },
66
- }, this.attachedStores);
67
- const local = this.attachedStores.local();
68
- const metas = await local.active.meta.load();
69
- if (this.ebOpts.meta) {
70
- await this.handleDbMetasFromStore([this.ebOpts.meta, ...(metas || [])], local);
71
- }
72
- else if (metas) {
73
- await this.handleDbMetasFromStore(metas, local);
74
- }
75
- });
76
- }
77
- async close() {
78
- await this.commitQueue.waitIdle();
79
- await this.attachedStores.detach();
80
- }
81
- async destroy() {
82
- await Promise.all(this.attachedStores
83
- .local()
84
- .baseStores()
85
- .map((store) => store.destroy()));
86
- }
87
- constructor(sthis, ebOpts) {
88
- this.commitQueue = new CommitQueue();
89
- this.isCompacting = false;
90
- this.maxConcurrentWrite = pLimit(1);
91
- this.carLog = new CarLog();
92
- this.onceReady = new ResolveOnce();
93
- this.sthis = sthis;
94
- this.ebOpts = defaultedBlockstoreRuntime(sthis, {
95
- ...ebOpts,
96
- }, "Loader");
97
- this.logger = ensureLogger(sthis, "Loader");
98
- this.cidCache = new KeyedResolvOnce({
99
- lru: {
100
- maxEntries: parseInt(this.ebOpts.storeUrls.car.getParam(PARAM.CAR_CACHE_SIZE, "1000"), 10),
101
- },
102
- });
103
- this.seenMeta = new LRUSet({
104
- maxEntries: parseInt(this.ebOpts.storeUrls.meta.getParam(PARAM.CAR_META_CACHE_SIZE, "1000"), 10),
105
- });
106
- this.seenCompacted = new LRUSet({
107
- maxEntries: parseInt(this.ebOpts.storeUrls.car.getParam(PARAM.CAR_COMPACT_CACHE_SIZE, "1000"), 10),
108
- });
109
- this.maxConcurrentCarReader = pLimit(parseInt(this.ebOpts.storeUrls.car.getParam(PARAM.CAR_PARALLEL, "5"), 10));
110
- this.taskManager = new TaskManager(sthis, async (dbMeta, activeStore) => {
111
- await this.handleDbMetasFromStore([dbMeta], activeStore);
112
- }, this.ebOpts.taskManager);
113
- this.attachedStores = new AttachedRemotesImpl(this);
114
- }
115
- async handleDbMetasFromStore(metas, activeStore) {
116
- this.logger.Debug().Any("metas", metas).Url(activeStore.active.car.url()).Msg("handleDbMetasFromStore");
117
- for (const meta of metas) {
118
- await this.maxConcurrentWrite(async () => {
119
- await this.mergeDbMetaIntoClock(meta, activeStore);
120
- });
121
- }
122
- }
123
- async mergeDbMetaIntoClock(meta, activeStore) {
124
- if (this.isCompacting) {
125
- throw this.logger.Error().Msg("cannot merge while compacting").AsError();
126
- }
127
- try {
128
- this.isCompacting = true;
129
- const metaKey = meta.cars
130
- .map((i) => i.toString())
131
- .sort()
132
- .join(",");
133
- if (this.seenMeta.has(metaKey))
134
- return;
135
- this.seenMeta.add(metaKey);
136
- if (carLogIncludesGroup(this.carLog.asArray(), meta.cars)) {
137
- return;
138
- }
139
- const carHeader = await this.loadCarHeaderFromMeta(meta, activeStore);
140
- carHeader.compact.map((c) => c.toString()).forEach((k) => this.seenCompacted.add(k), this.seenCompacted);
141
- try {
142
- await this.getMoreReaders(carHeader.cars.flat(), activeStore);
143
- }
144
- catch (e) {
145
- this.logger.Error().Err(e).Msg("error getting more readers");
146
- }
147
- this.carLog.update(uniqueCids([meta.cars, ...this.carLog.asArray(), ...carHeader.cars], this.seenCompacted));
148
- await this.ebOpts.applyMeta?.(carHeader.meta);
149
- }
150
- finally {
151
- this.isCompacting = false;
152
- }
153
- }
154
- async loadCarHeaderFromMeta(dbm, astore) {
155
- const reader = await this.loadCar(dbm.cars[0], astore);
156
- return await parseCarFile(reader, this.logger);
157
- }
158
- async commitFiles(t, done) {
159
- await this.ready();
160
- const fstore = this.attachedStores.local().active.file;
161
- const wstore = this.attachedStores.local().active.wal;
162
- return this.commitQueue.enqueue(() => commitFiles(fstore, wstore, t, done));
163
- }
164
- async loadFileCar(cid, store) {
165
- return await this.storesLoadCar(cid, store.fileStore());
166
- }
167
- async commit(t, done, opts = { noLoader: false, compact: false }) {
168
- await this.ready();
169
- const carStore = this.attachedStores.local().active.car;
170
- const params = {
171
- encoder: (await carStore.keyedCrypto()).codec(),
172
- carLog: this.carLog,
173
- carStore: carStore,
174
- WALStore: this.attachedStores.local().active.wal,
175
- metaStore: this.attachedStores.local().active.meta,
176
- threshold: this.ebOpts.threshold,
177
- };
178
- return this.commitQueue.enqueue(async () => {
179
- await this.cacheTransaction(t);
180
- const ret = await commit(params, t, done, opts);
181
- await this.updateCarLog(ret.cgrp, ret.header, !!opts.compact);
182
- return ret.cgrp;
183
- });
184
- }
185
- async updateCarLog(cids, cHeader, compact) {
186
- if (compact) {
187
- const previousCompactCid = cHeader.compact[cHeader.compact.length - 1];
188
- cHeader.compact.map((c) => c.toString()).forEach(this.seenCompacted.add, this.seenCompacted);
189
- this.carLog.update(uniqueCids([...this.carLog.asArray(), ...cHeader.cars, cids], this.seenCompacted));
190
- await this.removeCidsForCompact(previousCompactCid[0], this.attachedStores.local()).catch((e) => e);
191
- }
192
- else {
193
- this.carLog.xunshift(cids);
194
- }
195
- }
196
- async cacheTransaction(t) {
197
- for await (const block of t.entries()) {
198
- const sBlock = block.cid.toString();
199
- this.cidCache.get(sBlock).once(() => ({
200
- type: "block",
201
- cid: block.cid,
202
- blocks: [block],
203
- roots: [],
204
- }));
205
- }
206
- }
207
- async removeCidsForCompact(cid, store) {
208
- const carHeader = await this.loadCarHeaderFromMeta({
209
- cars: [cid],
210
- }, store);
211
- for (const cids of carHeader.compact) {
212
- for (const cid of cids) {
213
- await this.attachedStores.local().active.car.remove(cid);
214
- }
215
- }
216
- }
217
- async *entries() {
218
- await this.ready();
219
- const seen = new Set();
220
- for (const carCids of this.carLog.asArray()) {
221
- for (const carCid of carCids) {
222
- const reader = await this.loadCar(carCid, this.attachedStores.local());
223
- if (!reader || reader.type !== "car") {
224
- throw this.logger.Error().Any("reader", reader.type).Str("cid", carCid.toString()).Msg("missing car reader").AsError();
225
- }
226
- for (const block of reader.blocks) {
227
- const cidStr = block.cid.toString();
228
- if (seen.has(cidStr))
229
- continue;
230
- seen.add(cidStr);
231
- yield block;
232
- }
233
- }
234
- }
235
- }
236
- async getBlock(cid, store) {
237
- await this.ready();
238
- const cidStr = cid.toString();
239
- const ci = await this.cidCache.get(cidStr).once(async () => {
240
- const getCompactCarCids = async (carCid) => {
241
- const sCid = carCid.toString();
242
- const reader = await this.loadCar(carCid, store);
243
- const header = await parseCarFile(reader, this.logger);
244
- const compacts = header.compact;
245
- const got = await Promise.allSettled(compacts.map((compact) => compact.map((cid) => this.loadCar(cid, store)).flat()));
246
- got
247
- .filter((result) => result.status === "rejected")
248
- .forEach((result) => {
249
- this.logger.Error().Err(result.reason).Str("cid", sCid).Msg("error getting compacted block");
250
- });
251
- };
252
- let got;
253
- for (const carCids of this.carLog.asArray()) {
254
- for (const carCid of carCids) {
255
- const ci = await this.loadCar(carCid, store);
256
- if (!ci) {
257
- this.logger.Error().Str("cid", carCid.toString()).Msg("missing CarCID");
258
- continue;
259
- }
260
- got = ci.blocks.find((block) => block.cid.equals(cid));
261
- if (got) {
262
- break;
263
- }
264
- }
265
- }
266
- if (!got) {
267
- await getCompactCarCids(this.carLog.last()[0]);
268
- }
269
- return {
270
- type: "block",
271
- cid: cid,
272
- blocks: got ? [got] : [],
273
- roots: [],
274
- };
275
- });
276
- if (!(ci.type === "block" && ci.blocks.length === 1)) {
277
- throw this.logger.Error().Str("cid", cidStr).Any("block", ci).Msg("missing block").AsError();
278
- }
279
- return ci.blocks[0];
280
- }
281
- async loadCar(cid, store) {
282
- const loaded = await this.storesLoadCar(cid, store.carStore());
283
- return loaded;
284
- }
285
- async makeDecoderAndCarReader(carCid, store) {
286
- const carCidStr = carCid.toString();
287
- let loadedCar = undefined;
288
- let activeStore = store.local();
289
- try {
290
- this.logger.Debug().Any("cid", carCidStr).Msg("loading car");
291
- loadedCar = await store.local().load(carCid);
292
- this.logger.Debug().Bool("loadedCar", loadedCar).Msg("loaded");
293
- }
294
- catch (e) {
295
- if (!isNotFoundError(e)) {
296
- throw this.logger.Error().Str("cid", carCidStr).Err(e).Msg("loading car");
297
- }
298
- for (const remote of store.remotes()) {
299
- try {
300
- const remoteCar = await remote.load(carCid);
301
- if (remoteCar) {
302
- this.logger.Debug().Ref("cid", remoteCar.cid).Msg("saving remote car locally");
303
- await store.local().save(remoteCar);
304
- loadedCar = remoteCar;
305
- activeStore = remote;
306
- break;
307
- }
308
- else {
309
- this.logger.Error().Str("cid", carCidStr).Err(e).Msg("loading car");
310
- }
311
- }
312
- catch (e) {
313
- this.logger.Warn().Str("cid", carCidStr).Url(remote.url()).Err(e).Msg("loading car");
314
- }
315
- }
316
- }
317
- if (!loadedCar) {
318
- throw this.logger.Error().Url(store.local().url()).Str("cid", carCidStr).Msg("missing car files").AsError();
319
- }
320
- const bytes = await decode({ bytes: loadedCar.bytes, hasher, codec: (await activeStore.keyedCrypto()).codec() });
321
- const rawReader = await CarReader.fromBytes(bytes.value.data);
322
- const blocks = [];
323
- for await (const block of rawReader.blocks()) {
324
- const sBlock = block.cid.toString();
325
- blocks.push(block);
326
- this.cidCache.get(sBlock).once(() => ({
327
- type: "block",
328
- cid: block.cid,
329
- blocks: [block],
330
- roots: [],
331
- }));
332
- }
333
- return {
334
- type: "car",
335
- cid: carCid,
336
- blocks,
337
- roots: await rawReader.getRoots(),
338
- };
339
- }
340
- async storesLoadCar(carCid, store) {
341
- const carCidStr = carCid.toString();
342
- return this.cidCache.get(carCidStr).once(async () => {
343
- return this.maxConcurrentCarReader(() => this.makeDecoderAndCarReader(carCid, store));
344
- });
345
- }
346
- async getMoreReaders(cids, store) {
347
- for (const cid of cids) {
348
- await this.loadCar(cid, store);
349
- }
350
- }
351
- }
352
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../src/blockstore/loader.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import { URI } from "@adviser/cement";
2
- import { SuperThis } from "../types.js";
3
- import type { SerdeGateway } from "./serde-gateway.js";
4
- import type { Gateway } from "./gateway.js";
5
- export interface SerdeGatewayFactoryItem {
6
- readonly protocol: string;
7
- readonly isDefault?: boolean;
8
- defaultURI(sthis: SuperThis): URI;
9
- serdegateway(sthis: SuperThis): Promise<SerdeGateway>;
10
- }
11
- export declare function getDefaultURI(sthis: SuperThis, protocol?: string): URI;
12
- export interface SerdeOrGatewayFactoryItem {
13
- readonly protocol: string;
14
- readonly isDefault?: boolean;
15
- readonly defaultURI: (sthis: SuperThis) => URI;
16
- readonly serdegateway?: (sthis: SuperThis) => Promise<SerdeGateway>;
17
- readonly gateway?: (sthis: SuperThis) => Promise<Gateway>;
18
- }
19
- export declare function registerStoreProtocol(item: SerdeOrGatewayFactoryItem): () => void;
20
- export declare function getGatewayFactoryItem(protocol: string): SerdeGatewayFactoryItem | undefined;
21
- export declare function defaultGatewayFactoryItem(): SerdeGatewayFactoryItem;
22
- //# sourceMappingURL=register-store-protocol.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-store-protocol.d.ts","sourceRoot":"","sources":["../../../../src/blockstore/register-store-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAS,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAM5C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAE7B,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC;IAElC,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CASvD;AAID,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,GAAG,CAetE;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAE7B,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC;IAE/C,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,GAAG,MAAM,IAAI,CAgCjF;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAE3F;AAED,wBAAgB,yBAAyB,IAAI,uBAAuB,CAMnE"}
@@ -1,114 +0,0 @@
1
- import { BuildURI, runtimeFn } from "@adviser/cement";
2
- import { PARAM } from "../types.js";
3
- import { FILESTORE_VERSION } from "../runtime/gateways/file/version.js";
4
- import { INDEXEDDB_VERSION } from "../runtime/gateways/indexeddb-version.js";
5
- import { FileGateway } from "../runtime/gateways/file/gateway-impl.js";
6
- import { MemoryGateway } from "../runtime/gateways/memory/gateway.js";
7
- import { sysFileSystemFactory } from "../runtime/gateways/file/sys-file-system-factory.js";
8
- import { DefSerdeGateway } from "../runtime/gateways/def-serde-gateway.js";
9
- const storeFactory = new Map();
10
- export function getDefaultURI(sthis, protocol) {
11
- if (protocol) {
12
- if (!protocol.endsWith(":")) {
13
- protocol += ":";
14
- }
15
- const gfi = storeFactory.get(protocol);
16
- if (gfi) {
17
- return gfi.defaultURI(sthis);
18
- }
19
- }
20
- const found = Array.from(storeFactory.values()).find((item) => item.isDefault);
21
- if (!found) {
22
- throw sthis.logger.Error().Msg("no default found").AsError();
23
- }
24
- return found.defaultURI(sthis);
25
- }
26
- export function registerStoreProtocol(item) {
27
- let protocol = item.protocol;
28
- if (!protocol.endsWith(":")) {
29
- protocol += ":";
30
- }
31
- if (!item.serdegateway && !item.gateway) {
32
- throw new Error(`registerStoreProtocol needs a gateway or serdegateway`);
33
- }
34
- let serdegateway;
35
- if (item.gateway) {
36
- serdegateway = async (sthis) => {
37
- const m = await item.gateway(sthis);
38
- return new DefSerdeGateway(m);
39
- };
40
- }
41
- else {
42
- serdegateway = item.serdegateway;
43
- }
44
- if (item.isDefault) {
45
- Array.from(storeFactory.values()).forEach((items) => {
46
- items.isDefault = false;
47
- });
48
- }
49
- storeFactory.set(protocol, {
50
- ...item,
51
- serdegateway,
52
- });
53
- return () => {
54
- storeFactory.delete(protocol);
55
- };
56
- }
57
- export function getGatewayFactoryItem(protocol) {
58
- return storeFactory.get(protocol);
59
- }
60
- export function defaultGatewayFactoryItem() {
61
- const found = Array.from(storeFactory.values()).find((item) => item.isDefault);
62
- if (!found) {
63
- throw new Error("no default found");
64
- }
65
- return found;
66
- }
67
- function defaultURI(sthis) {
68
- const rt = runtimeFn();
69
- return (BuildURI.from("file://")
70
- .pathname(`${sthis.env.get("HOME")}/.fireproof/${FILESTORE_VERSION.replace(/-.*$/, "")}`)
71
- .setParam(PARAM.VERSION, FILESTORE_VERSION)
72
- .setParam(PARAM.URL_GEN, "default")
73
- .setParam(PARAM.RUNTIME, rt.isNodeIsh ? "node" : rt.isDeno ? "deno" : "unknown")
74
- .URI());
75
- }
76
- if (runtimeFn().isNodeIsh || runtimeFn().isDeno) {
77
- registerStoreProtocol({
78
- protocol: "file:",
79
- isDefault: true,
80
- defaultURI,
81
- gateway: async (sthis) => {
82
- return new FileGateway(sthis, await sysFileSystemFactory(defaultURI(sthis)));
83
- },
84
- });
85
- }
86
- if (runtimeFn().isBrowser) {
87
- registerStoreProtocol({
88
- protocol: "indexeddb:",
89
- isDefault: true,
90
- defaultURI: () => {
91
- return BuildURI.from("indexeddb://")
92
- .pathname("fp")
93
- .setParam(PARAM.VERSION, INDEXEDDB_VERSION)
94
- .setParam(PARAM.RUNTIME, "browser")
95
- .URI();
96
- },
97
- gateway: async () => {
98
- const { GatewayImpl } = await import("@fireproof/core/indexeddb");
99
- return new GatewayImpl();
100
- },
101
- });
102
- }
103
- const memory = new Map();
104
- registerStoreProtocol({
105
- protocol: "memory:",
106
- isDefault: false,
107
- defaultURI: () => {
108
- return BuildURI.from("memory://").pathname("ram").URI();
109
- },
110
- gateway: async (sthis) => {
111
- return new MemoryGateway(sthis, memory);
112
- },
113
- });
114
- //# sourceMappingURL=register-store-protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-store-protocol.js","sourceRoot":"","sources":["../../../../src/blockstore/register-store-protocol.ts"],"names":[],"mappings":"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"}
@@ -1,78 +0,0 @@
1
- import { Result, URI } from "@adviser/cement";
2
- import { NotFoundError } from "../utils.js";
3
- import { FPEnvelope, FPEnvelopeMeta } from "./fp-envelope.js";
4
- import { type Loadable } from "./types.js";
5
- import { FPDecoder, type FPEncoder } from "../runtime/gateways/fp-envelope-serialize.js";
6
- export interface SerdeGatewayOpts {
7
- readonly gateway: SerdeGateway;
8
- }
9
- export type SerdeGetResult<S> = Result<FPEnvelope<S>, NotFoundError | Error>;
10
- export type VoidResult = Result<void>;
11
- export type UnsubscribeResult = Result<() => void>;
12
- export interface SerdeGatewayCtx {
13
- readonly loader: Loadable;
14
- readonly encoder?: Partial<FPEncoder>;
15
- readonly decoder?: Partial<FPDecoder>;
16
- }
17
- export interface SerdeGateway {
18
- buildUrl(ctx: SerdeGatewayCtx, baseUrl: URI, key: string): Promise<Result<URI>>;
19
- start(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<URI>>;
20
- close(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<VoidResult>;
21
- put<T>(ctx: SerdeGatewayCtx, url: URI, body: FPEnvelope<T>): Promise<VoidResult>;
22
- get<S>(ctx: SerdeGatewayCtx, url: URI): Promise<SerdeGetResult<S>>;
23
- delete(ctx: SerdeGatewayCtx, url: URI): Promise<VoidResult>;
24
- subscribe(ctx: SerdeGatewayCtx, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>): Promise<UnsubscribeResult>;
25
- getPlain(ctx: SerdeGatewayCtx, url: URI, key: string): Promise<Result<Uint8Array>>;
26
- destroy(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<VoidResult>;
27
- }
28
- export interface SerdeGatewayReturn<O, T> {
29
- readonly op: O;
30
- readonly value?: T;
31
- readonly stop?: boolean;
32
- }
33
- export interface SerdeGatewayBuildUrlOp {
34
- readonly url: URI;
35
- readonly key: string;
36
- }
37
- export type SerdeGatewayBuildUrlReturn = SerdeGatewayReturn<SerdeGatewayBuildUrlOp, Result<URI>>;
38
- export interface SerdeGatewayStartOp {
39
- readonly url: URI;
40
- }
41
- export type SerdeGatewayStartReturn = SerdeGatewayReturn<SerdeGatewayStartOp, Result<URI>>;
42
- export interface SerdeGatewayCloseOp {
43
- readonly url: URI;
44
- }
45
- export type SerdeGatewayCloseReturn = SerdeGatewayReturn<SerdeGatewayCloseOp, VoidResult>;
46
- export interface SerdeGatewayDestroyOp {
47
- readonly url: URI;
48
- }
49
- export type SerdeGatewayDestroyReturn = SerdeGatewayReturn<SerdeGatewayDestroyOp, VoidResult>;
50
- export interface SerdeGatewayPutOp<T> {
51
- readonly url: URI;
52
- readonly body: FPEnvelope<T>;
53
- }
54
- export type SerdeGatewayPutReturn<T> = SerdeGatewayReturn<SerdeGatewayPutOp<T>, VoidResult>;
55
- export interface SerdeGatewayGetOp {
56
- readonly url: URI;
57
- }
58
- export type SerdeGatewayGetReturn<S> = SerdeGatewayReturn<SerdeGatewayGetOp, SerdeGetResult<S>>;
59
- export interface SerdeGatewayDeleteOp {
60
- readonly url: URI;
61
- }
62
- export type SerdeGatewayDeleteReturn = SerdeGatewayReturn<SerdeGatewayDeleteOp, VoidResult>;
63
- export interface SerdeGatewaySubscribeOp {
64
- readonly url: URI;
65
- readonly callback: (meta: FPEnvelopeMeta) => Promise<void>;
66
- }
67
- export type SerdeGatewaySubscribeReturn = SerdeGatewayReturn<SerdeGatewaySubscribeOp, UnsubscribeResult>;
68
- export interface SerdeGatewayInterceptor {
69
- buildUrl(ctx: SerdeGatewayCtx, baseUrl: URI, key: string): Promise<Result<SerdeGatewayBuildUrlReturn>>;
70
- start(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<SerdeGatewayStartReturn>>;
71
- close(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<SerdeGatewayCloseReturn>>;
72
- delete(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<SerdeGatewayDeleteReturn>>;
73
- destroy(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<SerdeGatewayDestroyReturn>>;
74
- put<T>(ctx: SerdeGatewayCtx, url: URI, body: FPEnvelope<T>): Promise<Result<SerdeGatewayPutReturn<T>>>;
75
- get<S>(ctx: SerdeGatewayCtx, url: URI): Promise<Result<SerdeGatewayGetReturn<S>>>;
76
- subscribe(ctx: SerdeGatewayCtx, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>): Promise<Result<SerdeGatewaySubscribeReturn>>;
77
- }
78
- //# sourceMappingURL=serde-gateway.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serde-gateway.d.ts","sourceRoot":"","sources":["../../../../src/blockstore/serde-gateway.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=serde-gateway.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serde-gateway.js","sourceRoot":"","sources":["../../../../src/blockstore/serde-gateway.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- import { URI, Result } from "@adviser/cement";
2
- import { StoreEnDeFile, StoreRuntime } from "./types.js";
3
- import { SuperThis } from "../types.js";
4
- import { SerdeGatewayCtx, SerdeGatewayInterceptor } from "./serde-gateway.js";
5
- import { InterceptorGateway } from "./interceptor-gateway.js";
6
- export declare function getInterceptableGateway(ctx: SerdeGatewayCtx, url: URI, opt: {
7
- gatewayInterceptor?: SerdeGatewayInterceptor;
8
- }): Promise<Result<InterceptorGateway>>;
9
- export declare function ensureStoreEnDeFile(ende?: Partial<StoreEnDeFile>): StoreEnDeFile;
10
- export declare function toStoreRuntime(sthis: SuperThis, endeOpts?: Partial<StoreEnDeFile>): StoreRuntime;
11
- //# sourceMappingURL=store-factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store-factory.d.ts","sourceRoot":"","sources":["../../../../src/blockstore/store-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,GAAG,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAItD,OAAO,EAKL,aAAa,EAEb,YAAY,EAGb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAS,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAS9D,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE;IAAE,kBAAkB,CAAC,EAAE,uBAAuB,CAAA;CAAE,GACpD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAMrC;AAgGD,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAMhF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAE,OAAO,CAAC,aAAa,CAAM,GAAG,YAAY,CA+BpG"}