@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
package/index.d.ts CHANGED
@@ -1,15 +1,2742 @@
1
- export * from "./ledger.js";
2
- export * from "./database.js";
3
- export * from "./types.js";
4
- export * from "./crdt.js";
5
- export * from "./indexer.js";
6
- export { defaultWriteQueueOpts } from "./write-queue.js";
7
- export * as bs from "./blockstore/index.js";
8
- export * as blockstore from "./blockstore/index.js";
9
- export * as rt from "./runtime/index.js";
10
- export * as runtime from "./runtime/index.js";
11
- export * as ps from "./protocols/index.js";
12
- export * as protocols from "./protocols/index.js";
13
- export * from "./utils.js";
14
- export * from "./version.js";
15
- //# sourceMappingURL=index.d.ts.map
1
+ import { Logger, Future, URI, CryptoRuntime, ResolveOnce, Result, ResolveSeq, CTCryptoKey, CoerceURI, Promisable, LRUSet, Env, EnvFactoryOpts, MatchResult, runtimeFn } from '@adviser/cement';
2
+ import { EventLink } from '@web3-storage/pail/clock/api';
3
+ import { Operation } from '@web3-storage/pail/crdt/api';
4
+ import { Version, Block as Block$1, UnknownLink, CID, ByteView, ArrayBufferView, Link, MultihashHasher, BlockView } from 'multiformats';
5
+ import { BlockFetcher as BlockFetcher$1 } from '@web3-storage/pail/api';
6
+ import { EventBlock } from '@web3-storage/pail/clock';
7
+ import { ProllyNode as ProllyNode$1 } from 'prolly-trees/db-index';
8
+ import { Block as Block$2 } from 'multiformats/block';
9
+ import * as jose from 'jose';
10
+ import { JWTPayload, JWTVerifyResult } from 'jose';
11
+ import { GenerateKeyPairOptions } from 'jose/key/generate/keypair';
12
+ import { SuperThis as SuperThis$1 } from '@fireproof/core';
13
+
14
+ type BlockFetcher = BlockFetcher$1;
15
+ interface CarTransactionOpts {
16
+ readonly add: boolean;
17
+ readonly noLoader: boolean;
18
+ }
19
+ declare class CarTransactionImpl implements CarMakeable, CarTransaction {
20
+ #private;
21
+ readonly parent: BaseBlockstore;
22
+ constructor(parent: BaseBlockstore, opts?: CarTransactionOpts);
23
+ get<T, C extends number, A extends number, V extends Version>(cid: AnyLink): Promise<Block$1<T, C, A, V> | undefined>;
24
+ superGet(cid: AnyLink): Promise<AnyBlock | undefined>;
25
+ put(cid: AnyLink, block: Uint8Array): Promise<void>;
26
+ putSync(cid: UnknownLink, bytes: Uint8Array<ArrayBufferLike>): void;
27
+ unshift(cid: UnknownLink, bytes: Uint8Array<ArrayBufferLike>): void;
28
+ entries(): AsyncIterableIterator<AnyBlock>;
29
+ }
30
+ declare class BaseBlockstoreImpl implements BlockFetcher {
31
+ readonly transactions: Set<CarTransaction>;
32
+ readonly ebOpts: BlockstoreRuntime;
33
+ readonly sthis: SuperThis;
34
+ readonly loader: Loadable;
35
+ ready(): Promise<void>;
36
+ close(): Promise<void>;
37
+ destroy(): Promise<void>;
38
+ compact(): Promise<void>;
39
+ readonly logger: Logger;
40
+ constructor(ebOpts: BlockstoreOpts);
41
+ get<T, C extends number, A extends number, V extends Version>(cid: AnyAnyLink): Promise<Block$1<T, C, A, V> | undefined>;
42
+ put(cid: AnyAnyLink, block: Uint8Array): Promise<void>;
43
+ lastTxMeta?: unknown;
44
+ transaction<M extends TransactionMeta>(fn: (t: CarTransaction) => Promise<M>, _opts?: CarTransactionOpts): Promise<TransactionWrapper<M>>;
45
+ openTransaction(opts?: CarTransactionOpts): CarTransaction;
46
+ commitTransaction<M extends TransactionMeta>(t: CarTransaction, done: M, opts: CarTransactionOpts): Promise<TransactionWrapper<M>>;
47
+ entries(): AsyncIterableIterator<AnyBlock>;
48
+ }
49
+ declare class EncryptedBlockstore extends BaseBlockstoreImpl {
50
+ ready(): Promise<void>;
51
+ close(): Promise<void>;
52
+ destroy(): Promise<void>;
53
+ compacting: boolean;
54
+ readonly logger: Logger;
55
+ constructor(sthis: SuperThis, ebOpts: BlockstoreOpts);
56
+ get<T, C extends number, A extends number, V extends Version>(cid: AnyAnyLink): Promise<Block$1<T, C, A, V> | undefined>;
57
+ transaction<M extends TransactionMeta>(fn: (t: CarTransaction) => Promise<M>, opts?: {
58
+ noLoader: boolean;
59
+ }): Promise<TransactionWrapper<M>>;
60
+ getFile(car: AnyLink, cid: AnyLink): Promise<Uint8Array>;
61
+ compact(): Promise<void>;
62
+ defaultCompact(blocks: CompactionFetcher, logger: Logger): Promise<TransactionMeta>;
63
+ entries(): AsyncIterableIterator<AnyBlock>;
64
+ }
65
+ declare class CompactionFetcher implements BlockFetcher {
66
+ readonly blockstore: EncryptedBlockstore;
67
+ readonly loggedBlocks: CarTransaction;
68
+ constructor(blocks: EncryptedBlockstore);
69
+ get<T, C extends number, A extends number, V extends Version>(cid: AnyLink): Promise<Block$1<T, C, A, V> | undefined>;
70
+ }
71
+
72
+ type QueueFunction<T = void> = () => Promise<T>;
73
+ declare class CommitQueue<T = void> {
74
+ readonly queue: QueueFunction<void>[];
75
+ processing: boolean;
76
+ readonly _waitIdleItems: Set<Future<void>>;
77
+ waitIdle(): Promise<void>;
78
+ enqueue(fn: QueueFunction<T>): Promise<T>;
79
+ processNext(): void;
80
+ }
81
+
82
+ declare class keyWithFingerPrint implements KeyWithFingerPrint {
83
+ #private;
84
+ readonly default: boolean;
85
+ readonly fingerPrint: string;
86
+ readonly key: CTCryptoKey;
87
+ private kfp;
88
+ constructor(kfp: KeyWithFingerPrint, material: string | Uint8Array, def: boolean);
89
+ extract(): Promise<KeyMaterial>;
90
+ asV2StorageKeyItem(): Promise<V2StorageKeyItem>;
91
+ }
92
+ declare function toKeyWithFingerPrint(keybag: KeyBag, materialStrOrUint8: string | Uint8Array): Promise<Result<KeyWithFingerPrint>>;
93
+ declare class keysByFingerprint implements KeysByFingerprint {
94
+ readonly keys: Record<string, keyWithFingerPrint>;
95
+ readonly keybag: KeyBag;
96
+ readonly name: string;
97
+ readonly id: string;
98
+ static from(keyBag: KeyBag, named: KeysItem): Promise<KeysByFingerprint>;
99
+ constructor(keyBag: KeyBag, name: string);
100
+ get(fingerPrint?: Uint8Array | string): Promise<KeyWithFingerPrint | undefined>;
101
+ upsert(materialStrOrUint8: string | Uint8Array, def?: boolean, keyBagAction?: boolean): Promise<Result<KeyUpsertResult>>;
102
+ asKeysItem(): Promise<KeysItem>;
103
+ }
104
+ declare class KeyBag {
105
+ readonly logger: Logger;
106
+ readonly rt: KeyBagRuntime;
107
+ constructor(rt: KeyBagRuntime);
108
+ readonly _warnOnce: ResolveOnce<void>;
109
+ subtleKey(materialStrOrUint8: string | Uint8Array): Promise<CryptoKey>;
110
+ ensureKeyFromUrl(url: URI, keyFactory: () => string): Promise<Result<URI>>;
111
+ private toKeysItem;
112
+ flush(): Promise<void>;
113
+ readonly _seq: ResolveSeq<Result<KeysByFingerprint>>;
114
+ _upsertNamedKey(ksi: KeysByFingerprint): Promise<Result<KeysByFingerprint>>;
115
+ private _namedKeyCache;
116
+ private _getNamedKey;
117
+ getNamedKey(name: string, failIfNotFound?: boolean, material?: string | Uint8Array): Promise<Result<KeysByFingerprint>>;
118
+ }
119
+ interface V1StorageKeyItem {
120
+ readonly name: string;
121
+ readonly key: string;
122
+ }
123
+ interface V2StorageKeyItem {
124
+ readonly key: string;
125
+ readonly fingerPrint: string;
126
+ readonly default: boolean;
127
+ }
128
+ interface KeysItem {
129
+ readonly name: string;
130
+ readonly keys: Record<string, V2StorageKeyItem>;
131
+ }
132
+ type KeyBagFile = Record<string, KeysItem>;
133
+ interface KeyBagOpts {
134
+ readonly url: CoerceURI;
135
+ readonly crypto: CryptoRuntime;
136
+ readonly keyLength: number;
137
+ readonly keyRuntime: KeyBagRuntime;
138
+ }
139
+ interface KeyBagProvider {
140
+ get(id: string): Promise<V1StorageKeyItem | KeysItem | undefined>;
141
+ set(item: KeysItem): Promise<void>;
142
+ }
143
+ interface KeyBagRuntime {
144
+ readonly url: URI;
145
+ readonly crypto: CryptoRuntime;
146
+ readonly logger: Logger;
147
+ readonly sthis: SuperThis;
148
+ readonly keyLength: number;
149
+ getBagProvider(): Promise<KeyBagProvider>;
150
+ id(): string;
151
+ }
152
+ type KeyBackProviderFactory = (url: URI, sthis: SuperThis) => Promise<KeyBagProvider>;
153
+ interface KeyBagProviderFactoryItem {
154
+ readonly protocol: string;
155
+ readonly override?: boolean;
156
+ readonly factory: KeyBackProviderFactory;
157
+ }
158
+ declare function registerKeyBagProviderFactory(item: KeyBagProviderFactoryItem): void;
159
+ declare function defaultKeyBagUrl(sthis: SuperThis): URI;
160
+ declare function defaultKeyBagOpts(sthis: SuperThis, kbo?: Partial<KeyBagOpts>): KeyBagRuntime;
161
+ declare function getKeyBag(sthis: SuperThis, kbo?: Partial<KeyBagOpts>): Promise<KeyBag>;
162
+
163
+ type keyBag_KeyBackProviderFactory = KeyBackProviderFactory;
164
+ type keyBag_KeyBag = KeyBag;
165
+ declare const keyBag_KeyBag: typeof KeyBag;
166
+ type keyBag_KeyBagFile = KeyBagFile;
167
+ type keyBag_KeyBagOpts = KeyBagOpts;
168
+ type keyBag_KeyBagProvider = KeyBagProvider;
169
+ type keyBag_KeyBagProviderFactoryItem = KeyBagProviderFactoryItem;
170
+ type keyBag_KeyBagRuntime = KeyBagRuntime;
171
+ type keyBag_KeysItem = KeysItem;
172
+ type keyBag_V1StorageKeyItem = V1StorageKeyItem;
173
+ type keyBag_V2StorageKeyItem = V2StorageKeyItem;
174
+ declare const keyBag_defaultKeyBagOpts: typeof defaultKeyBagOpts;
175
+ declare const keyBag_defaultKeyBagUrl: typeof defaultKeyBagUrl;
176
+ declare const keyBag_getKeyBag: typeof getKeyBag;
177
+ type keyBag_keysByFingerprint = keysByFingerprint;
178
+ declare const keyBag_keysByFingerprint: typeof keysByFingerprint;
179
+ declare const keyBag_registerKeyBagProviderFactory: typeof registerKeyBagProviderFactory;
180
+ declare const keyBag_toKeyWithFingerPrint: typeof toKeyWithFingerPrint;
181
+ declare namespace keyBag {
182
+ export { type keyBag_KeyBackProviderFactory as KeyBackProviderFactory, keyBag_KeyBag as KeyBag, type keyBag_KeyBagFile as KeyBagFile, type keyBag_KeyBagOpts as KeyBagOpts, type keyBag_KeyBagProvider as KeyBagProvider, type keyBag_KeyBagProviderFactoryItem as KeyBagProviderFactoryItem, type keyBag_KeyBagRuntime as KeyBagRuntime, type keyBag_KeysItem as KeysItem, type keyBag_V1StorageKeyItem as V1StorageKeyItem, type keyBag_V2StorageKeyItem as V2StorageKeyItem, keyBag_defaultKeyBagOpts as defaultKeyBagOpts, keyBag_defaultKeyBagUrl as defaultKeyBagUrl, keyBag_getKeyBag as getKeyBag, keyBag_keysByFingerprint as keysByFingerprint, keyBag_registerKeyBagProviderFactory as registerKeyBagProviderFactory, keyBag_toKeyWithFingerPrint as toKeyWithFingerPrint };
183
+ }
184
+
185
+ interface TaskManagerParams {
186
+ readonly removeAfter: number;
187
+ readonly retryTimeout: number;
188
+ }
189
+ declare class TaskManager {
190
+ private readonly eventsWeHandled;
191
+ private queue;
192
+ private isProcessing;
193
+ readonly logger: Logger;
194
+ readonly params: TaskManagerParams;
195
+ readonly callback: (dbMeta: DbMeta, store: ActiveStore) => Promise<void>;
196
+ constructor(sthis: SuperThis, callback: (dbMeta: DbMeta, store: ActiveStore) => Promise<void>, params: TaskManagerParams);
197
+ handleEvent(cid: CarClockLink, parents: CarClockHead, dbMeta: DbMeta, store: ActiveStore): Promise<void>;
198
+ private processQueue;
199
+ }
200
+
201
+ declare function onSuperThis(fn: (sthis: SuperThis) => void): () => void;
202
+ declare function ensureSuperThis(osthis?: Partial<SuperThisOpts>): SuperThis;
203
+ declare function ensureSuperLog(sthis: SuperThis, componentName: string, ctx?: Record<string, unknown>): SuperThis;
204
+ declare function ensureLogger(sthis: SuperThis, componentName: string, ctx?: Record<string, unknown>): Logger;
205
+ type Joiner = (...toJoin: string[]) => string;
206
+ interface Store {
207
+ readonly pathPart: "data" | "wal" | "meta";
208
+ readonly fromUrl: StoreType;
209
+ readonly name: string;
210
+ }
211
+ declare function getStore(url: URI, sthis: SuperThis, joiner: Joiner): Store;
212
+ declare function getKey(url: URI, logger: Logger): string;
213
+ declare function getName(sthis: SuperThis, url: URI): string;
214
+ declare function exceptionWrapper<T, E extends Error>(fn: () => Promise<Result<T, E>>): Promise<Result<T, E>>;
215
+ declare class NotFoundError extends Error {
216
+ readonly code = "ENOENT";
217
+ }
218
+ declare function isNotFoundError(e: Error | Result<unknown> | unknown): e is NotFoundError;
219
+ declare function UInt8ArrayEqual(a: Uint8Array, b: Uint8Array): boolean;
220
+ declare function inplaceFilter<T>(i: T[], pred: (i: T, idx: number) => boolean): T[];
221
+ declare function toSortedArray(set?: Record<string, unknown>): Record<string, unknown>[];
222
+ declare function coerceIntoUint8(raw: ToUInt8): Result<Uint8Array>;
223
+ declare function coercePromiseIntoUint8(raw: PromiseToUInt8): Promise<Result<Uint8Array>>;
224
+ declare function makeName(fnString: string): string;
225
+ declare function storeType2DataMetaWal(store: StoreType): "data" | "wal" | "meta";
226
+ declare function ensureURIDefaults(sthis: SuperThis, name: string, curi: CoerceURI | undefined, uri: URI, store: StoreType, ctx?: Partial<{
227
+ readonly idx: boolean;
228
+ readonly file: boolean;
229
+ }>): URI;
230
+ declare function setPresetEnv(o: Record<string, string>, symbol?: string): Record<string, string>;
231
+
232
+ declare const FPEnvelopeTypes: {
233
+ readonly CAR: "car";
234
+ readonly FILE: "file";
235
+ readonly META: "meta";
236
+ readonly WAL: "wal";
237
+ };
238
+ type FPEnvelopeType = (typeof FPEnvelopeTypes)[keyof typeof FPEnvelopeTypes];
239
+ interface FPEnvelope<T> {
240
+ readonly type: FPEnvelopeType;
241
+ readonly payload: T;
242
+ }
243
+ interface FPEnvelopeCar extends FPEnvelope<Uint8Array> {
244
+ readonly type: typeof FPEnvelopeTypes.CAR;
245
+ }
246
+ interface FPEnvelopeFile extends FPEnvelope<Uint8Array> {
247
+ readonly type: typeof FPEnvelopeTypes.FILE;
248
+ }
249
+ interface FPEnvelopeMeta extends FPEnvelope<DbMetaEvent[]> {
250
+ readonly type: typeof FPEnvelopeTypes.META;
251
+ }
252
+ interface FPWALCarsOps {
253
+ readonly cars: CID[];
254
+ }
255
+ interface FPEnvelopeWAL extends FPEnvelope<WALState> {
256
+ readonly type: typeof FPEnvelopeTypes.WAL;
257
+ }
258
+ declare function Car2FPMsg(fpcar: Uint8Array): Result<FPEnvelopeCar>;
259
+ declare function File2FPMsg(fpfile: Uint8Array): Result<FPEnvelopeFile>;
260
+
261
+ interface SerializedMeta {
262
+ readonly data: string;
263
+ readonly parents: string[];
264
+ readonly cid: string;
265
+ }
266
+ declare function dbMetaEvent2Serialized(sthis: SuperThis, dbEvents: Omit<DbMetaEvent, "eventCid">[]): Promise<SerializedMeta[]>;
267
+ type CAREncodeEnvelope = (sthis: SuperThis, payload: Uint8Array) => Promise<Result<Uint8Array>>;
268
+ type FILEEncodeEnvelope = (sthis: SuperThis, payload: Uint8Array) => Promise<Result<Uint8Array>>;
269
+ type METAEncodeEnvelope = (sthis: SuperThis, payload: SerializedMeta[]) => Promise<Result<Uint8Array>>;
270
+ type WALEncodeEnvelope = (sthis: SuperThis, payload: SerializedWAL) => Promise<Result<Uint8Array>>;
271
+ interface FPEncoder {
272
+ readonly car: CAREncodeEnvelope;
273
+ readonly file: FILEEncodeEnvelope;
274
+ readonly meta: METAEncodeEnvelope;
275
+ readonly wal: WALEncodeEnvelope;
276
+ }
277
+ declare function fpSerialize<T>(sthis: SuperThis, env: FPEnvelope<T>, pencoder?: Partial<FPEncoder>): Promise<Result<Uint8Array>>;
278
+ declare function decode2DbMetaEvents(sthis: SuperThis, rserializedMeta: Result<SerializedMeta[]>): Promise<Result<DbMetaEvent[]>>;
279
+ type linkOrCid = {
280
+ "/": string;
281
+ } | string;
282
+ interface SerializedWAL {
283
+ readonly fileOperations?: {
284
+ cid: linkOrCid;
285
+ public: boolean;
286
+ }[];
287
+ readonly noLoaderOps?: {
288
+ cars: linkOrCid[];
289
+ }[];
290
+ readonly operations?: {
291
+ cars: linkOrCid[];
292
+ }[];
293
+ }
294
+ type CARDecodeEnvelope = (sthis: SuperThis, payload: Uint8Array) => Promise<Result<Uint8Array>>;
295
+ type FILEDecodeEnvelope = (sthis: SuperThis, payload: Uint8Array) => Promise<Result<Uint8Array>>;
296
+ type METADecodeEnvelope = (sthis: SuperThis, payload: Uint8Array) => Promise<Result<SerializedMeta[]>>;
297
+ type WALDecodeEnvelope = (sthis: SuperThis, payload: Uint8Array) => Promise<Result<SerializedWAL>>;
298
+ interface FPDecoder {
299
+ readonly car: CARDecodeEnvelope;
300
+ readonly file: FILEDecodeEnvelope;
301
+ readonly meta: METADecodeEnvelope;
302
+ readonly wal: WALDecodeEnvelope;
303
+ }
304
+ declare function fpDeserialize<S>(sthis: SuperThis, url: URI, intoRaw: PromiseToUInt8, pdecoder?: Partial<FPDecoder>): Promise<Result<FPEnvelope<S>>>;
305
+
306
+ interface SerdeGatewayOpts {
307
+ readonly gateway: SerdeGateway;
308
+ }
309
+ type SerdeGetResult<S> = Result<FPEnvelope<S>, NotFoundError | Error>;
310
+ type VoidResult = Result<void>;
311
+ type UnsubscribeResult = Result<() => void>;
312
+ interface SerdeGatewayCtx {
313
+ readonly loader: Loadable;
314
+ readonly encoder?: Partial<FPEncoder>;
315
+ readonly decoder?: Partial<FPDecoder>;
316
+ }
317
+ interface SerdeGateway {
318
+ buildUrl(ctx: SerdeGatewayCtx, baseUrl: URI, key: string): Promise<Result<URI>>;
319
+ start(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<URI>>;
320
+ close(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<VoidResult>;
321
+ put<T>(ctx: SerdeGatewayCtx, url: URI, body: FPEnvelope<T>): Promise<VoidResult>;
322
+ get<S>(ctx: SerdeGatewayCtx, url: URI): Promise<SerdeGetResult<S>>;
323
+ delete(ctx: SerdeGatewayCtx, url: URI): Promise<VoidResult>;
324
+ subscribe(ctx: SerdeGatewayCtx, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>): Promise<UnsubscribeResult>;
325
+ getPlain(ctx: SerdeGatewayCtx, url: URI, key: string): Promise<Result<Uint8Array>>;
326
+ destroy(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<VoidResult>;
327
+ }
328
+ interface SerdeGatewayReturn<O, T> {
329
+ readonly op: O;
330
+ readonly value?: T;
331
+ readonly stop?: boolean;
332
+ }
333
+ interface SerdeGatewayBuildUrlOp {
334
+ readonly url: URI;
335
+ readonly key: string;
336
+ }
337
+ type SerdeGatewayBuildUrlReturn = SerdeGatewayReturn<SerdeGatewayBuildUrlOp, Result<URI>>;
338
+ interface SerdeGatewayStartOp {
339
+ readonly url: URI;
340
+ }
341
+ type SerdeGatewayStartReturn = SerdeGatewayReturn<SerdeGatewayStartOp, Result<URI>>;
342
+ interface SerdeGatewayCloseOp {
343
+ readonly url: URI;
344
+ }
345
+ type SerdeGatewayCloseReturn = SerdeGatewayReturn<SerdeGatewayCloseOp, VoidResult>;
346
+ interface SerdeGatewayDestroyOp {
347
+ readonly url: URI;
348
+ }
349
+ type SerdeGatewayDestroyReturn = SerdeGatewayReturn<SerdeGatewayDestroyOp, VoidResult>;
350
+ interface SerdeGatewayPutOp<T> {
351
+ readonly url: URI;
352
+ readonly body: FPEnvelope<T>;
353
+ }
354
+ type SerdeGatewayPutReturn<T> = SerdeGatewayReturn<SerdeGatewayPutOp<T>, VoidResult>;
355
+ interface SerdeGatewayGetOp {
356
+ readonly url: URI;
357
+ }
358
+ type SerdeGatewayGetReturn<S> = SerdeGatewayReturn<SerdeGatewayGetOp, SerdeGetResult<S>>;
359
+ interface SerdeGatewayDeleteOp {
360
+ readonly url: URI;
361
+ }
362
+ type SerdeGatewayDeleteReturn = SerdeGatewayReturn<SerdeGatewayDeleteOp, VoidResult>;
363
+ interface SerdeGatewaySubscribeOp {
364
+ readonly url: URI;
365
+ readonly callback: (meta: FPEnvelopeMeta) => Promise<void>;
366
+ }
367
+ type SerdeGatewaySubscribeReturn = SerdeGatewayReturn<SerdeGatewaySubscribeOp, UnsubscribeResult>;
368
+ interface SerdeGatewayInterceptor {
369
+ buildUrl(ctx: SerdeGatewayCtx, baseUrl: URI, key: string): Promise<Result<SerdeGatewayBuildUrlReturn>>;
370
+ start(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<SerdeGatewayStartReturn>>;
371
+ close(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<SerdeGatewayCloseReturn>>;
372
+ delete(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<SerdeGatewayDeleteReturn>>;
373
+ destroy(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<SerdeGatewayDestroyReturn>>;
374
+ put<T>(ctx: SerdeGatewayCtx, url: URI, body: FPEnvelope<T>): Promise<Result<SerdeGatewayPutReturn<T>>>;
375
+ get<S>(ctx: SerdeGatewayCtx, url: URI): Promise<Result<SerdeGatewayGetReturn<S>>>;
376
+ subscribe(ctx: SerdeGatewayCtx, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>): Promise<Result<SerdeGatewaySubscribeReturn>>;
377
+ }
378
+
379
+ declare class Context {
380
+ private ctx;
381
+ set<T>(key: string, value: T): void;
382
+ get<T>(key: string): T | undefined;
383
+ delete(key: string): void;
384
+ }
385
+
386
+ interface BlockEncoder<Code extends number, T> {
387
+ readonly name: string;
388
+ readonly code: Code;
389
+ bytesToHash?(data: T): ByteView<unknown>;
390
+ encode(data: T): ByteView<T>;
391
+ }
392
+ interface AsyncBlockEncoder<Code extends number, T> {
393
+ readonly name: string;
394
+ readonly code: Code;
395
+ bytesToHash?(data: T): Promise<ByteView<unknown>>;
396
+ encode(data: T): PromiseLike<ByteView<T>>;
397
+ }
398
+ interface BlockDecoder<Code extends number, T> {
399
+ readonly code: Code;
400
+ valueToHashBytes?(value: T): ByteView<unknown>;
401
+ decode(bytes: ByteView<unknown>): T;
402
+ }
403
+ interface AsyncBlockDecoder<Code extends number, T> {
404
+ readonly code: Code;
405
+ valueToHashBytes?(value: T): Promise<ByteView<unknown>>;
406
+ decode(bytes: ByteView<unknown>): PromiseLike<T>;
407
+ }
408
+ interface BlockCodec<Code extends number, E, D> extends BlockEncoder<Code, E>, BlockDecoder<Code, D> {
409
+ }
410
+ interface AsyncBlockCodec<Code extends number, E, D> extends AsyncBlockEncoder<Code, E>, AsyncBlockDecoder<Code, D> {
411
+ }
412
+
413
+ declare const codecInterface_ArrayBufferView: typeof ArrayBufferView;
414
+ type codecInterface_AsyncBlockCodec<Code extends number, E, D> = AsyncBlockCodec<Code, E, D>;
415
+ type codecInterface_AsyncBlockDecoder<Code extends number, T> = AsyncBlockDecoder<Code, T>;
416
+ type codecInterface_AsyncBlockEncoder<Code extends number, T> = AsyncBlockEncoder<Code, T>;
417
+ type codecInterface_BlockCodec<Code extends number, E, D> = BlockCodec<Code, E, D>;
418
+ type codecInterface_BlockDecoder<Code extends number, T> = BlockDecoder<Code, T>;
419
+ type codecInterface_BlockEncoder<Code extends number, T> = BlockEncoder<Code, T>;
420
+ declare const codecInterface_ByteView: typeof ByteView;
421
+ declare namespace codecInterface {
422
+ export { codecInterface_ArrayBufferView as ArrayBufferView, type codecInterface_AsyncBlockCodec as AsyncBlockCodec, type codecInterface_AsyncBlockDecoder as AsyncBlockDecoder, type codecInterface_AsyncBlockEncoder as AsyncBlockEncoder, type codecInterface_BlockCodec as BlockCodec, type codecInterface_BlockDecoder as BlockDecoder, type codecInterface_BlockEncoder as BlockEncoder, codecInterface_ByteView as ByteView };
423
+ }
424
+
425
+ type AnyLink = Link<unknown, number, number, Version>;
426
+ type CarGroup = AnyLink[];
427
+ type FroozenCarLog = CarGroup[];
428
+ declare class CarLog {
429
+ readonly _logs: CarGroup[];
430
+ get length(): number;
431
+ last(): AnyLink[];
432
+ xunshift(logs: CarGroup): void;
433
+ update(logs: FroozenCarLog): void;
434
+ asArray(): FroozenCarLog;
435
+ }
436
+ type AnyAnyLink = Link<unknown, number, number, Version>;
437
+ type AnyLinkFn = (cid: AnyLink) => Promise<AnyBlock | undefined>;
438
+ interface AnyBlock {
439
+ readonly cid: Link<unknown, number, number, Version>;
440
+ readonly bytes: Uint8Array;
441
+ }
442
+ interface CIDBlock {
443
+ readonly cid: CID<unknown, number, number, Version>;
444
+ readonly bytes: Uint8Array;
445
+ }
446
+ declare function toCIDBlock(block: AnyBlock): CIDBlock;
447
+ interface AnyAnyBlock {
448
+ readonly cid: AnyAnyLink;
449
+ readonly bytes: Uint8Array;
450
+ }
451
+ interface IvKeyIdData {
452
+ readonly iv: Uint8Array;
453
+ readonly keyId: Uint8Array;
454
+ readonly data: Uint8Array;
455
+ }
456
+ interface IvAndKeyAndBytes {
457
+ readonly bytes: Uint8Array;
458
+ readonly key: CTCryptoKey;
459
+ readonly iv: Uint8Array;
460
+ }
461
+ interface BytesAndKeyWithIv {
462
+ readonly bytes: Uint8Array;
463
+ readonly key: CTCryptoKey;
464
+ readonly iv?: Uint8Array;
465
+ }
466
+ interface AnyDecodedBlock {
467
+ readonly cid: AnyLink;
468
+ readonly bytes: Uint8Array;
469
+ readonly value: Uint8Array;
470
+ }
471
+ interface CarMakeable {
472
+ entries(): AsyncIterable<AnyBlock>;
473
+ get(cid: AnyLink): Promise<AnyBlock | undefined>;
474
+ }
475
+ interface CarHeader<T> {
476
+ readonly cars: FroozenCarLog;
477
+ readonly compact: FroozenCarLog;
478
+ readonly meta: T;
479
+ }
480
+ interface TransactionWrapper<M extends TransactionMeta> {
481
+ meta: M;
482
+ cars?: CarGroup;
483
+ t: CarTransaction;
484
+ }
485
+ type TransactionMeta = unknown;
486
+ interface EncryptedBlock {
487
+ readonly value: IvAndKeyAndBytes;
488
+ }
489
+ interface KeyMaterial {
490
+ readonly key: Uint8Array;
491
+ readonly keyStr: string;
492
+ }
493
+ interface KeyWithFingerPrint {
494
+ readonly fingerPrint: string;
495
+ readonly key: CTCryptoKey;
496
+ extract(): Promise<KeyMaterial>;
497
+ }
498
+ interface CodecOpts {
499
+ readonly ivCalc: "random" | "hash";
500
+ readonly noIVVerify: boolean;
501
+ }
502
+ interface KeyUpsertResult {
503
+ readonly modified: boolean;
504
+ readonly kfp: KeyWithFingerPrint;
505
+ }
506
+ interface KeysByFingerprint {
507
+ readonly id: string;
508
+ readonly name: string;
509
+ get(fingerPrint?: Uint8Array | string): Promise<KeyWithFingerPrint | undefined>;
510
+ upsert(key: string | Uint8Array, def?: boolean): Promise<Result<KeyUpsertResult>>;
511
+ asKeysItem(): Promise<KeysItem>;
512
+ }
513
+ interface CryptoAction {
514
+ readonly ivLength: number;
515
+ readonly logger: Logger;
516
+ readonly crypto: CryptoRuntime;
517
+ readonly url: URI;
518
+ readonly key: KeysByFingerprint;
519
+ algo(iv?: Uint8Array): {
520
+ name: string;
521
+ iv: Uint8Array;
522
+ tagLength: number;
523
+ };
524
+ codec(iv?: Uint8Array, codecOpts?: Partial<CodecOpts>): AsyncBlockCodec<24, Uint8Array, IvKeyIdData>;
525
+ _decrypt(data: IvAndKeyAndBytes): Promise<Uint8Array>;
526
+ _encrypt(data: BytesAndKeyWithIv): Promise<Uint8Array>;
527
+ }
528
+ interface StoreFactory {
529
+ encodeFile?: (blob: Blob) => Promise<{
530
+ cid: AnyLink;
531
+ blocks: AnyBlock[];
532
+ }>;
533
+ decodeFile?: (blocks: unknown, cid: AnyLink, meta: DocFileMeta) => Promise<File>;
534
+ }
535
+ interface StoreUrls {
536
+ readonly meta: CoerceURI;
537
+ readonly car: CoerceURI;
538
+ readonly file: CoerceURI;
539
+ readonly wal: CoerceURI;
540
+ }
541
+ interface StoreEnDeFile {
542
+ readonly encodeFile: (blob: Blob) => Promise<{
543
+ cid: AnyLink;
544
+ blocks: AnyBlock[];
545
+ }>;
546
+ readonly decodeFile: (blocks: unknown, cid: AnyLink, meta: DocFileMeta) => Promise<Result<File>>;
547
+ }
548
+ interface StoreUrlsOpts {
549
+ readonly base?: CoerceURI;
550
+ readonly data?: Partial<StoreUrls>;
551
+ readonly idx?: Partial<StoreUrls>;
552
+ }
553
+ interface StoreURIs {
554
+ readonly meta: URI;
555
+ readonly car: URI;
556
+ readonly file: URI;
557
+ readonly wal: URI;
558
+ }
559
+ interface StoreURIRuntime {
560
+ readonly data: StoreURIs;
561
+ readonly idx: StoreURIs;
562
+ }
563
+ interface UrlAndInterceptor {
564
+ readonly url: URI;
565
+ readonly gatewayInterceptor?: SerdeGatewayInterceptor;
566
+ }
567
+ interface StoreFactoryItem {
568
+ readonly byStore: GatewayUrls;
569
+ readonly loader: Loadable;
570
+ }
571
+ interface StoreRuntime {
572
+ makeStores(sfi: StoreFactoryItem): Promise<DataAndMetaAndWalStore>;
573
+ encodeFile(blob: Blob): Promise<{
574
+ cid: AnyLink;
575
+ blocks: AnyBlock[];
576
+ }>;
577
+ decodeFile(blocks: unknown, cid: AnyLink, meta: DocFileMeta): Promise<Result<File>>;
578
+ }
579
+ interface CommitOpts {
580
+ readonly noLoader?: boolean;
581
+ readonly compact?: boolean;
582
+ }
583
+ interface WriteableDataAndMetaStore {
584
+ file: FileStore;
585
+ car: CarStore;
586
+ meta: MetaStore;
587
+ }
588
+ type DataAndMetaStore = Readonly<WriteableDataAndMetaStore>;
589
+ interface WriteableDataAndMetaAndWalStore extends WriteableDataAndMetaStore {
590
+ wal?: WALStore;
591
+ }
592
+ type DataAndMetaAndWalStore = Readonly<WriteableDataAndMetaAndWalStore>;
593
+ type LocalDataAndMetaAndWalStore = Readonly<Omit<WriteableDataAndMetaAndWalStore, "wal">> & {
594
+ readonly wal: WALStore;
595
+ };
596
+ interface DbMeta {
597
+ readonly cars: CarGroup;
598
+ }
599
+ type LoadHandler = (dbMetas: DbMeta[]) => Promise<void>;
600
+ interface RefLoadable {
601
+ readonly loader: Loadable;
602
+ }
603
+ interface RefBlockstore {
604
+ readonly blockstore: RefLoadable;
605
+ }
606
+ interface Connection {
607
+ loaded(): Future<void>;
608
+ readonly context: Context;
609
+ connectStorage(ref: RefLoadable | RefBlockstore): void;
610
+ }
611
+ interface BaseStore {
612
+ readonly storeType: StoreType;
613
+ readonly realGateway: SerdeGateway;
614
+ readonly logger: Logger;
615
+ url(): URI;
616
+ keyedCrypto(): Promise<CryptoAction>;
617
+ close(): Promise<Result<void>>;
618
+ destroy(): Promise<Result<void>>;
619
+ readonly ready?: () => Promise<void>;
620
+ start(dam: DataAndMetaStore): Promise<Result<URI>>;
621
+ }
622
+ interface DbMetaEvent {
623
+ readonly eventCid: CarClockLink;
624
+ readonly parents: CarClockHead;
625
+ readonly dbMeta: DbMeta;
626
+ }
627
+ declare function DbMetaEventEqual(a: DbMetaEvent, b: DbMetaEvent): boolean;
628
+ declare function DbMetaEventsEqual(a: DbMetaEvent[], b: DbMetaEvent[]): boolean;
629
+ interface MetaStore extends BaseStore {
630
+ readonly storeType: "meta";
631
+ load(branch?: string): Promise<DbMeta[] | Falsy>;
632
+ save(meta: DbMeta, branch?: string): Promise<Result<void>>;
633
+ }
634
+ interface DataSaveOpts {
635
+ readonly public: boolean;
636
+ }
637
+ interface CarStore extends BaseStore {
638
+ readonly storeType: "car";
639
+ load(cid: AnyLink): Promise<AnyBlock>;
640
+ save(car: AnyBlock, opts?: DataSaveOpts): Promise<void>;
641
+ remove(cid: AnyLink): Promise<Result<void>>;
642
+ }
643
+ interface FileStore extends BaseStore {
644
+ readonly storeType: "file";
645
+ load(cid: AnyLink): Promise<AnyBlock>;
646
+ save(car: AnyBlock, opts?: DataSaveOpts): Promise<void>;
647
+ remove(cid: AnyLink): Promise<Result<void>>;
648
+ }
649
+ interface WALState {
650
+ readonly operations: DbMeta[];
651
+ readonly noLoaderOps: DbMeta[];
652
+ readonly fileOperations: {
653
+ readonly cid: AnyLink;
654
+ readonly public: boolean;
655
+ }[];
656
+ }
657
+ interface WALStore extends BaseStore {
658
+ readonly storeType: "wal";
659
+ ready(): Promise<void>;
660
+ readonly processing?: Promise<void> | undefined;
661
+ readonly processQueue: CommitQueue<void>;
662
+ process(): Promise<void>;
663
+ enqueue(dbMeta: DbMeta, opts: CommitOpts): Promise<void>;
664
+ enqueueFile(fileCid: AnyLink): Promise<void>;
665
+ load(): Promise<WALState | Falsy>;
666
+ save(state: WALState): Promise<void>;
667
+ }
668
+ type CompactFetcher = BlockFetcher & {
669
+ readonly loggedBlocks: CarTransaction;
670
+ };
671
+ type CompactFn = (blocks: CompactFetcher) => Promise<TransactionMeta>;
672
+ interface StoreRuntimeUrls {
673
+ readonly meta: URI;
674
+ readonly data: URI;
675
+ readonly wal: URI;
676
+ }
677
+ interface BlockstoreParams {
678
+ readonly logger: Logger;
679
+ readonly applyMeta: (meta: TransactionMeta, snap?: boolean) => Promise<void>;
680
+ readonly compact: CompactFn;
681
+ readonly autoCompact: number;
682
+ readonly crypto: CryptoRuntime;
683
+ readonly public: boolean;
684
+ readonly meta: DbMeta;
685
+ readonly threshold: number;
686
+ readonly gatewayInterceptor?: SerdeGatewayInterceptor;
687
+ readonly storeEnDeFile: Partial<StoreEnDeFile>;
688
+ readonly keyBag: KeyBagRuntime;
689
+ readonly storeUrls: StoreURIs;
690
+ readonly storeRuntime: StoreRuntime;
691
+ readonly taskManager: TaskManagerParams;
692
+ }
693
+ type BlockstoreOpts = Partial<BlockstoreParams> & {
694
+ readonly keyBag: KeyBagRuntime;
695
+ readonly storeUrls: StoreURIs;
696
+ readonly storeRuntime: StoreRuntime;
697
+ };
698
+ interface BlockstoreRuntime {
699
+ readonly logger: Logger;
700
+ readonly applyMeta: (meta: TransactionMeta, snap?: boolean) => Promise<void>;
701
+ readonly compact: CompactFn;
702
+ readonly autoCompact: number;
703
+ readonly crypto: CryptoRuntime;
704
+ readonly storeRuntime: StoreRuntime;
705
+ readonly keyBag: KeyBagRuntime;
706
+ readonly storeUrls: StoreURIs;
707
+ readonly gatewayInterceptor?: SerdeGatewayInterceptor;
708
+ readonly taskManager: TaskManagerParams;
709
+ readonly meta?: DbMeta;
710
+ readonly threshold: number;
711
+ }
712
+ type LocalActiveStore = Omit<ActiveStore, "active"> & {
713
+ readonly active: LocalDataAndMetaAndWalStore;
714
+ };
715
+ interface AttachedStores {
716
+ local(): LocalActiveStore;
717
+ forRemotes(actionFn: (store: ActiveStore) => Promise<unknown>): Promise<void>;
718
+ remotes(): ActiveStore[];
719
+ activate(store: DataAndMetaStore | CoerceURI): ActiveStore;
720
+ attach(attached: Attachable): Promise<Attached>;
721
+ detach(): Promise<void>;
722
+ }
723
+ interface BaseAttachedStores {
724
+ local(): BaseStore;
725
+ remotes(): BaseStore[];
726
+ }
727
+ interface CarAttachedStores extends BaseAttachedStores {
728
+ local(): CarStore;
729
+ remotes(): CarStore[];
730
+ }
731
+ declare abstract class BaseActiveStore {
732
+ abstract readonly ref: ActiveStore;
733
+ abstract readonly active: BaseStore;
734
+ abstract local(): BaseStore;
735
+ abstract remotes(): BaseStore[];
736
+ protected abstract readonly xattached: BaseAttachedStores;
737
+ }
738
+ interface FileAttachedStores extends BaseAttachedStores {
739
+ local(): FileStore;
740
+ remotes(): FileStore[];
741
+ }
742
+ declare abstract class CarActiveStore extends BaseActiveStore {
743
+ protected abstract readonly xattached: CarAttachedStores;
744
+ abstract local(): CarStore;
745
+ abstract remotes(): CarStore[];
746
+ }
747
+ declare abstract class FileActiveStore extends BaseActiveStore {
748
+ protected abstract readonly xattached: FileAttachedStores;
749
+ abstract local(): FileStore;
750
+ abstract remotes(): FileStore[];
751
+ }
752
+ type CIDActiveStore = CarActiveStore | FileActiveStore;
753
+ interface MetaAttachedStores extends BaseAttachedStores {
754
+ local(): MetaStore;
755
+ remotes(): MetaStore[];
756
+ }
757
+ declare abstract class MetaActiveStore extends BaseActiveStore {
758
+ protected abstract readonly xattached: MetaAttachedStores;
759
+ abstract local(): MetaStore;
760
+ abstract remotes(): MetaStore[];
761
+ }
762
+ interface WALAttachedStores extends BaseAttachedStores {
763
+ local(): WALStore;
764
+ remotes(): WALStore[];
765
+ }
766
+ declare abstract class WALActiveStore extends BaseActiveStore {
767
+ protected abstract readonly xattached: WALAttachedStores;
768
+ abstract local(): WALStore;
769
+ abstract remotes(): WALStore[];
770
+ }
771
+ interface ActiveStore {
772
+ readonly active: DataAndMetaAndWalStore;
773
+ baseStores(): BaseStore[];
774
+ carStore(): CarActiveStore;
775
+ fileStore(): FileActiveStore;
776
+ metaStore(): MetaActiveStore;
777
+ walStore(): WALActiveStore;
778
+ local(): LocalActiveStore;
779
+ remotes(): ActiveStore[];
780
+ readonly xattached: AttachedStores;
781
+ }
782
+ interface CarCacheItem {
783
+ readonly type: "car" | "block";
784
+ readonly cid: AnyLink;
785
+ readonly blocks: AnyBlock[];
786
+ readonly roots: CID[];
787
+ }
788
+ interface Loadable {
789
+ readonly sthis: SuperThis;
790
+ readonly ebOpts: BlockstoreRuntime;
791
+ readonly carLog: CarLog;
792
+ readonly attachedStores: AttachedStores;
793
+ attach(attached: Attachable): Promise<Attached>;
794
+ readonly taskManager: TaskManager;
795
+ ready(): Promise<void>;
796
+ close(): Promise<void>;
797
+ keyBag(): Promise<KeyBag>;
798
+ handleDbMetasFromStore(metas: DbMeta[], store: ActiveStore): Promise<void>;
799
+ commit<T = TransactionMeta>(t: CarTransaction, done: T, opts: CommitOpts): Promise<CarGroup>;
800
+ destroy(): Promise<void>;
801
+ getBlock(cid: AnyLink, store: ActiveStore): Promise<AnyBlock | Falsy>;
802
+ loadFileCar(cid: AnyLink, store: ActiveStore): Promise<CarCacheItem>;
803
+ loadCar(cid: AnyLink, store: ActiveStore): Promise<CarCacheItem>;
804
+ commitFiles(t: CarTransaction, done: TransactionMeta): Promise<CarGroup>;
805
+ entries(cache?: boolean): AsyncIterableIterator<AnyBlock>;
806
+ }
807
+ interface DbMetaBinary {
808
+ readonly dbMeta: Uint8Array;
809
+ }
810
+ type DbMetaEventBlock = EventBlock<DbMetaBinary>;
811
+ type CarClockLink = Link<DbMetaEventBlock, number, number, Version>;
812
+ type CarClockHead = CarClockLink[];
813
+
814
+ declare class PassThroughGateway implements SerdeGatewayInterceptor {
815
+ buildUrl(ctx: SerdeGatewayCtx, url: URI, key: string): Promise<Result<SerdeGatewayBuildUrlReturn>>;
816
+ start(ctx: SerdeGatewayCtx, url: URI): Promise<Result<SerdeGatewayStartReturn>>;
817
+ close(ctx: SerdeGatewayCtx, url: URI): Promise<Result<SerdeGatewayCloseReturn>>;
818
+ delete(ctx: SerdeGatewayCtx, url: URI): Promise<Result<SerdeGatewayDeleteReturn>>;
819
+ destroy(ctx: SerdeGatewayCtx, url: URI): Promise<Result<SerdeGatewayDestroyReturn>>;
820
+ put<T>(ctx: SerdeGatewayCtx, url: URI, body: FPEnvelope<T>): Promise<Result<SerdeGatewayPutReturn<T>>>;
821
+ get<S>(ctx: SerdeGatewayCtx, url: URI): Promise<Result<SerdeGatewayGetReturn<S>>>;
822
+ subscribe(ctx: SerdeGatewayCtx, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>): Promise<Result<SerdeGatewaySubscribeReturn>>;
823
+ }
824
+ declare class InterceptorGateway implements SerdeGateway {
825
+ readonly innerGW: SerdeGateway;
826
+ readonly interceptor: SerdeGatewayInterceptor;
827
+ constructor(sthis: SuperThis, innerGW: SerdeGateway, interceptor: SerdeGatewayInterceptor | undefined);
828
+ buildUrl(ctx: SerdeGatewayCtx, baseUrl: URI, key: string): Promise<Result<URI>>;
829
+ destroy(ctx: SerdeGatewayCtx, iurl: URI): Promise<Result<void>>;
830
+ start(ctx: SerdeGatewayCtx, url: URI): Promise<Result<URI>>;
831
+ close(ctx: SerdeGatewayCtx, url: URI): Promise<VoidResult>;
832
+ put<T>(ctx: SerdeGatewayCtx, url: URI, fpEnv: FPEnvelope<T>): Promise<VoidResult>;
833
+ get<S>(ctx: SerdeGatewayCtx, url: URI): Promise<SerdeGetResult<S>>;
834
+ subscribe(ctx: SerdeGatewayCtx, url: URI, callback: (msg: FPEnvelopeMeta) => Promise<void>): Promise<UnsubscribeResult>;
835
+ delete(ctx: SerdeGatewayCtx, url: URI): Promise<VoidResult>;
836
+ getPlain(ctx: SerdeGatewayCtx, url: URI, key: string): Promise<Result<Uint8Array>>;
837
+ }
838
+
839
+ declare function getInterceptableGateway(ctx: SerdeGatewayCtx, url: URI, opt: {
840
+ gatewayInterceptor?: SerdeGatewayInterceptor;
841
+ }): Promise<Result<InterceptorGateway>>;
842
+ declare function ensureStoreEnDeFile(ende?: Partial<StoreEnDeFile>): StoreEnDeFile;
843
+ declare function toStoreRuntime(sthis: SuperThis, endeOpts?: Partial<StoreEnDeFile>): StoreRuntime;
844
+
845
+ interface GatewayOpts {
846
+ readonly gateway: Gateway;
847
+ }
848
+ type GetResult = Result<Uint8Array, NotFoundError | Error>;
849
+ interface Gateway {
850
+ buildUrl(baseUrl: URI, key: string, sthis: SuperThis): Promise<Result<URI>>;
851
+ start(baseUrl: URI, sthis: SuperThis): Promise<Result<URI>>;
852
+ close(baseUrl: URI, sthis: SuperThis): Promise<VoidResult>;
853
+ destroy(baseUrl: URI, sthis: SuperThis): Promise<VoidResult>;
854
+ put(url: URI, body: Uint8Array, sthis: SuperThis): Promise<VoidResult>;
855
+ get(url: URI, sthis: SuperThis): Promise<GetResult>;
856
+ delete(url: URI, sthis: SuperThis): Promise<VoidResult>;
857
+ subscribe?(url: URI, callback: (meta: Uint8Array) => void, sthis: SuperThis): Promise<UnsubscribeResult>;
858
+ getPlain(url: URI, key: string, sthis: SuperThis): Promise<Result<Uint8Array>>;
859
+ }
860
+
861
+ declare function createDbMetaEvent(sthis: SuperThis, dbMeta: DbMeta, parents: CarClockHead): Promise<DbMetaEvent>;
862
+
863
+ interface SerdeGatewayFactoryItem {
864
+ readonly protocol: string;
865
+ readonly isDefault?: boolean;
866
+ defaultURI(sthis: SuperThis): URI;
867
+ serdegateway(sthis: SuperThis): Promise<SerdeGateway>;
868
+ }
869
+ declare function getDefaultURI(sthis: SuperThis, protocol?: string): URI;
870
+ interface SerdeOrGatewayFactoryItem {
871
+ readonly protocol: string;
872
+ readonly isDefault?: boolean;
873
+ readonly defaultURI: (sthis: SuperThis) => URI;
874
+ readonly serdegateway?: (sthis: SuperThis) => Promise<SerdeGateway>;
875
+ readonly gateway?: (sthis: SuperThis) => Promise<Gateway>;
876
+ }
877
+ declare function registerStoreProtocol(item: SerdeOrGatewayFactoryItem): () => void;
878
+ declare function getGatewayFactoryItem(protocol: string): SerdeGatewayFactoryItem | undefined;
879
+ declare function defaultGatewayFactoryItem(): SerdeGatewayFactoryItem;
880
+
881
+ declare function createAttachedStores(urlOrGup: CoerceURI | GatewayUrlsParam, arOrLoadable: AttachedStores | Loadable, name?: string): Promise<Attached>;
882
+ declare class AttachedRemotesImpl implements AttachedStores {
883
+ private readonly _remotes;
884
+ readonly loadable: Loadable;
885
+ _local?: Attached;
886
+ constructor(loadable: Loadable);
887
+ forRemotes(action: (store: ActiveStore) => Promise<unknown>): Promise<void>;
888
+ remotes(): ActiveStore[];
889
+ local(): LocalActiveStore;
890
+ activate(store: DataAndMetaStore | CoerceURI): ActiveStore;
891
+ detach(): Promise<void>;
892
+ attach(attached: Attachable): Promise<Attached>;
893
+ }
894
+
895
+ type URIMapper = (uri: URI) => Promisable<URI>;
896
+ declare class URIInterceptor extends PassThroughGateway {
897
+ #private;
898
+ static withMapper(mapper: URIMapper): URIInterceptor;
899
+ addMapper(mapper: URIMapper): URIInterceptor;
900
+ buildUrl(ctx: SerdeGatewayCtx, url: URI, key: string): Promise<Result<SerdeGatewayBuildUrlReturn>>;
901
+ start(ctx: SerdeGatewayCtx, url: URI): Promise<Result<SerdeGatewayStartReturn>>;
902
+ close(ctx: SerdeGatewayCtx, url: URI): Promise<Result<SerdeGatewayCloseReturn>>;
903
+ delete(ctx: SerdeGatewayCtx, url: URI): Promise<Result<SerdeGatewayDeleteReturn>>;
904
+ destroy(ctx: SerdeGatewayCtx, url: URI): Promise<Result<SerdeGatewayDestroyReturn>>;
905
+ put<T>(ctx: SerdeGatewayCtx, url: URI, body: FPEnvelope<T>): Promise<Result<SerdeGatewayPutReturn<T>>>;
906
+ get<S>(ctx: SerdeGatewayCtx, url: URI): Promise<Result<SerdeGatewayGetReturn<S>>>;
907
+ subscribe(ctx: SerdeGatewayCtx, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>): Promise<Result<SerdeGatewaySubscribeReturn>>;
908
+ }
909
+
910
+ declare class Loader implements Loadable {
911
+ readonly ebOpts: BlockstoreRuntime;
912
+ readonly logger: Logger;
913
+ readonly commitQueue: CommitQueue<CarGroup>;
914
+ isCompacting: boolean;
915
+ private readonly cidCache;
916
+ private readonly maxConcurrentCarReader;
917
+ private readonly maxConcurrentWrite;
918
+ readonly seenCompacted: LRUSet<string>;
919
+ readonly sthis: SuperThis;
920
+ readonly taskManager: TaskManager;
921
+ readonly carLog: CarLog;
922
+ readonly attachedStores: AttachedStores;
923
+ attach(attached: Attachable): Promise<Attached>;
924
+ private seenMeta;
925
+ keyBag(): Promise<KeyBag>;
926
+ private readonly onceReady;
927
+ ready(): Promise<void>;
928
+ close(): Promise<void>;
929
+ destroy(): Promise<void>;
930
+ constructor(sthis: SuperThis, ebOpts: BlockstoreOpts);
931
+ handleDbMetasFromStore(metas: DbMeta[], activeStore: ActiveStore): Promise<void>;
932
+ mergeDbMetaIntoClock(meta: DbMeta, activeStore: ActiveStore): Promise<void>;
933
+ loadCarHeaderFromMeta<T>(dbm: DbMeta, astore: ActiveStore): Promise<CarHeader<T>>;
934
+ commitFiles(t: CarTransaction, done: TransactionMeta): Promise<CarGroup>;
935
+ loadFileCar(cid: AnyLink, store: ActiveStore): Promise<CarCacheItem>;
936
+ commit<T = TransactionMeta>(t: CarTransaction, done: T, opts?: CommitOpts): Promise<CarGroup>;
937
+ updateCarLog<T>(cids: CarGroup, cHeader: CarHeader<T>, compact: boolean): Promise<void>;
938
+ cacheTransaction(t: CarTransaction): Promise<void>;
939
+ removeCidsForCompact(cid: AnyLink, store: ActiveStore): Promise<void>;
940
+ entries(): AsyncIterableIterator<AnyBlock>;
941
+ getBlock(cid: AnyLink, store: ActiveStore): Promise<AnyBlock | Falsy>;
942
+ loadCar(cid: AnyLink, store: ActiveStore): Promise<CarCacheItem>;
943
+ private makeDecoderAndCarReader;
944
+ protected storesLoadCar(carCid: AnyLink, store: CIDActiveStore): Promise<CarCacheItem>;
945
+ protected getMoreReaders(cids: AnyLink[], store: ActiveStore): Promise<void>;
946
+ }
947
+
948
+ declare function parseCarFile<T>(reader: CarCacheItem, logger: Logger): Promise<CarHeader<T>>;
949
+
950
+ type index$8_ActiveStore = ActiveStore;
951
+ type index$8_AnyAnyBlock = AnyAnyBlock;
952
+ type index$8_AnyAnyLink = AnyAnyLink;
953
+ type index$8_AnyBlock = AnyBlock;
954
+ type index$8_AnyDecodedBlock = AnyDecodedBlock;
955
+ type index$8_AnyLink = AnyLink;
956
+ type index$8_AnyLinkFn = AnyLinkFn;
957
+ type index$8_AttachedRemotesImpl = AttachedRemotesImpl;
958
+ declare const index$8_AttachedRemotesImpl: typeof AttachedRemotesImpl;
959
+ type index$8_AttachedStores = AttachedStores;
960
+ type index$8_BaseActiveStore = BaseActiveStore;
961
+ declare const index$8_BaseActiveStore: typeof BaseActiveStore;
962
+ type index$8_BaseAttachedStores = BaseAttachedStores;
963
+ type index$8_BaseBlockstoreImpl = BaseBlockstoreImpl;
964
+ declare const index$8_BaseBlockstoreImpl: typeof BaseBlockstoreImpl;
965
+ type index$8_BaseStore = BaseStore;
966
+ type index$8_BlockFetcher = BlockFetcher;
967
+ type index$8_BlockstoreOpts = BlockstoreOpts;
968
+ type index$8_BlockstoreParams = BlockstoreParams;
969
+ type index$8_BlockstoreRuntime = BlockstoreRuntime;
970
+ type index$8_BytesAndKeyWithIv = BytesAndKeyWithIv;
971
+ type index$8_CIDActiveStore = CIDActiveStore;
972
+ type index$8_CIDBlock = CIDBlock;
973
+ declare const index$8_Car2FPMsg: typeof Car2FPMsg;
974
+ type index$8_CarActiveStore = CarActiveStore;
975
+ declare const index$8_CarActiveStore: typeof CarActiveStore;
976
+ type index$8_CarAttachedStores = CarAttachedStores;
977
+ type index$8_CarCacheItem = CarCacheItem;
978
+ type index$8_CarClockHead = CarClockHead;
979
+ type index$8_CarClockLink = CarClockLink;
980
+ type index$8_CarGroup = CarGroup;
981
+ type index$8_CarHeader<T> = CarHeader<T>;
982
+ type index$8_CarLog = CarLog;
983
+ declare const index$8_CarLog: typeof CarLog;
984
+ type index$8_CarMakeable = CarMakeable;
985
+ type index$8_CarStore = CarStore;
986
+ type index$8_CarTransactionImpl = CarTransactionImpl;
987
+ declare const index$8_CarTransactionImpl: typeof CarTransactionImpl;
988
+ type index$8_CarTransactionOpts = CarTransactionOpts;
989
+ type index$8_CodecOpts = CodecOpts;
990
+ type index$8_CommitOpts = CommitOpts;
991
+ type index$8_CompactFetcher = CompactFetcher;
992
+ type index$8_CompactFn = CompactFn;
993
+ type index$8_CompactionFetcher = CompactionFetcher;
994
+ declare const index$8_CompactionFetcher: typeof CompactionFetcher;
995
+ type index$8_Connection = Connection;
996
+ type index$8_CryptoAction = CryptoAction;
997
+ type index$8_DataAndMetaAndWalStore = DataAndMetaAndWalStore;
998
+ type index$8_DataAndMetaStore = DataAndMetaStore;
999
+ type index$8_DataSaveOpts = DataSaveOpts;
1000
+ type index$8_DbMeta = DbMeta;
1001
+ type index$8_DbMetaBinary = DbMetaBinary;
1002
+ type index$8_DbMetaEvent = DbMetaEvent;
1003
+ type index$8_DbMetaEventBlock = DbMetaEventBlock;
1004
+ declare const index$8_DbMetaEventEqual: typeof DbMetaEventEqual;
1005
+ declare const index$8_DbMetaEventsEqual: typeof DbMetaEventsEqual;
1006
+ type index$8_EncryptedBlock = EncryptedBlock;
1007
+ type index$8_EncryptedBlockstore = EncryptedBlockstore;
1008
+ declare const index$8_EncryptedBlockstore: typeof EncryptedBlockstore;
1009
+ type index$8_FPEnvelope<T> = FPEnvelope<T>;
1010
+ type index$8_FPEnvelopeCar = FPEnvelopeCar;
1011
+ type index$8_FPEnvelopeFile = FPEnvelopeFile;
1012
+ type index$8_FPEnvelopeMeta = FPEnvelopeMeta;
1013
+ type index$8_FPEnvelopeType = FPEnvelopeType;
1014
+ declare const index$8_FPEnvelopeTypes: typeof FPEnvelopeTypes;
1015
+ type index$8_FPEnvelopeWAL = FPEnvelopeWAL;
1016
+ type index$8_FPWALCarsOps = FPWALCarsOps;
1017
+ declare const index$8_File2FPMsg: typeof File2FPMsg;
1018
+ type index$8_FileActiveStore = FileActiveStore;
1019
+ declare const index$8_FileActiveStore: typeof FileActiveStore;
1020
+ type index$8_FileAttachedStores = FileAttachedStores;
1021
+ type index$8_FileStore = FileStore;
1022
+ type index$8_FroozenCarLog = FroozenCarLog;
1023
+ type index$8_Gateway = Gateway;
1024
+ type index$8_GatewayOpts = GatewayOpts;
1025
+ type index$8_GetResult = GetResult;
1026
+ type index$8_InterceptorGateway = InterceptorGateway;
1027
+ declare const index$8_InterceptorGateway: typeof InterceptorGateway;
1028
+ type index$8_IvAndKeyAndBytes = IvAndKeyAndBytes;
1029
+ type index$8_IvKeyIdData = IvKeyIdData;
1030
+ type index$8_KeyMaterial = KeyMaterial;
1031
+ type index$8_KeyUpsertResult = KeyUpsertResult;
1032
+ type index$8_KeyWithFingerPrint = KeyWithFingerPrint;
1033
+ type index$8_KeysByFingerprint = KeysByFingerprint;
1034
+ type index$8_LoadHandler = LoadHandler;
1035
+ type index$8_Loadable = Loadable;
1036
+ type index$8_Loader = Loader;
1037
+ declare const index$8_Loader: typeof Loader;
1038
+ type index$8_LocalActiveStore = LocalActiveStore;
1039
+ type index$8_LocalDataAndMetaAndWalStore = LocalDataAndMetaAndWalStore;
1040
+ type index$8_MetaActiveStore = MetaActiveStore;
1041
+ declare const index$8_MetaActiveStore: typeof MetaActiveStore;
1042
+ type index$8_MetaAttachedStores = MetaAttachedStores;
1043
+ type index$8_MetaStore = MetaStore;
1044
+ type index$8_PassThroughGateway = PassThroughGateway;
1045
+ declare const index$8_PassThroughGateway: typeof PassThroughGateway;
1046
+ type index$8_RefBlockstore = RefBlockstore;
1047
+ type index$8_RefLoadable = RefLoadable;
1048
+ type index$8_SerdeGateway = SerdeGateway;
1049
+ type index$8_SerdeGatewayBuildUrlOp = SerdeGatewayBuildUrlOp;
1050
+ type index$8_SerdeGatewayBuildUrlReturn = SerdeGatewayBuildUrlReturn;
1051
+ type index$8_SerdeGatewayCloseOp = SerdeGatewayCloseOp;
1052
+ type index$8_SerdeGatewayCloseReturn = SerdeGatewayCloseReturn;
1053
+ type index$8_SerdeGatewayCtx = SerdeGatewayCtx;
1054
+ type index$8_SerdeGatewayDeleteOp = SerdeGatewayDeleteOp;
1055
+ type index$8_SerdeGatewayDeleteReturn = SerdeGatewayDeleteReturn;
1056
+ type index$8_SerdeGatewayDestroyOp = SerdeGatewayDestroyOp;
1057
+ type index$8_SerdeGatewayDestroyReturn = SerdeGatewayDestroyReturn;
1058
+ type index$8_SerdeGatewayFactoryItem = SerdeGatewayFactoryItem;
1059
+ type index$8_SerdeGatewayGetOp = SerdeGatewayGetOp;
1060
+ type index$8_SerdeGatewayGetReturn<S> = SerdeGatewayGetReturn<S>;
1061
+ type index$8_SerdeGatewayInterceptor = SerdeGatewayInterceptor;
1062
+ type index$8_SerdeGatewayOpts = SerdeGatewayOpts;
1063
+ type index$8_SerdeGatewayPutOp<T> = SerdeGatewayPutOp<T>;
1064
+ type index$8_SerdeGatewayPutReturn<T> = SerdeGatewayPutReturn<T>;
1065
+ type index$8_SerdeGatewayReturn<O, T> = SerdeGatewayReturn<O, T>;
1066
+ type index$8_SerdeGatewayStartOp = SerdeGatewayStartOp;
1067
+ type index$8_SerdeGatewayStartReturn = SerdeGatewayStartReturn;
1068
+ type index$8_SerdeGatewaySubscribeOp = SerdeGatewaySubscribeOp;
1069
+ type index$8_SerdeGatewaySubscribeReturn = SerdeGatewaySubscribeReturn;
1070
+ type index$8_SerdeGetResult<S> = SerdeGetResult<S>;
1071
+ type index$8_SerdeOrGatewayFactoryItem = SerdeOrGatewayFactoryItem;
1072
+ type index$8_StoreEnDeFile = StoreEnDeFile;
1073
+ type index$8_StoreFactory = StoreFactory;
1074
+ type index$8_StoreFactoryItem = StoreFactoryItem;
1075
+ type index$8_StoreRuntime = StoreRuntime;
1076
+ type index$8_StoreRuntimeUrls = StoreRuntimeUrls;
1077
+ type index$8_StoreURIRuntime = StoreURIRuntime;
1078
+ type index$8_StoreURIs = StoreURIs;
1079
+ type index$8_StoreUrls = StoreUrls;
1080
+ type index$8_StoreUrlsOpts = StoreUrlsOpts;
1081
+ type index$8_TaskManager = TaskManager;
1082
+ declare const index$8_TaskManager: typeof TaskManager;
1083
+ type index$8_TaskManagerParams = TaskManagerParams;
1084
+ type index$8_TransactionMeta = TransactionMeta;
1085
+ type index$8_TransactionWrapper<M extends TransactionMeta> = TransactionWrapper<M>;
1086
+ type index$8_URIInterceptor = URIInterceptor;
1087
+ declare const index$8_URIInterceptor: typeof URIInterceptor;
1088
+ type index$8_URIMapper = URIMapper;
1089
+ type index$8_UnsubscribeResult = UnsubscribeResult;
1090
+ type index$8_UrlAndInterceptor = UrlAndInterceptor;
1091
+ type index$8_VoidResult = VoidResult;
1092
+ type index$8_WALActiveStore = WALActiveStore;
1093
+ declare const index$8_WALActiveStore: typeof WALActiveStore;
1094
+ type index$8_WALAttachedStores = WALAttachedStores;
1095
+ type index$8_WALState = WALState;
1096
+ type index$8_WALStore = WALStore;
1097
+ type index$8_WriteableDataAndMetaAndWalStore = WriteableDataAndMetaAndWalStore;
1098
+ type index$8_WriteableDataAndMetaStore = WriteableDataAndMetaStore;
1099
+ declare const index$8_createAttachedStores: typeof createAttachedStores;
1100
+ declare const index$8_createDbMetaEvent: typeof createDbMetaEvent;
1101
+ declare const index$8_defaultGatewayFactoryItem: typeof defaultGatewayFactoryItem;
1102
+ declare const index$8_ensureStoreEnDeFile: typeof ensureStoreEnDeFile;
1103
+ declare const index$8_getDefaultURI: typeof getDefaultURI;
1104
+ declare const index$8_getGatewayFactoryItem: typeof getGatewayFactoryItem;
1105
+ declare const index$8_getInterceptableGateway: typeof getInterceptableGateway;
1106
+ declare const index$8_parseCarFile: typeof parseCarFile;
1107
+ declare const index$8_registerStoreProtocol: typeof registerStoreProtocol;
1108
+ declare const index$8_toCIDBlock: typeof toCIDBlock;
1109
+ declare const index$8_toStoreRuntime: typeof toStoreRuntime;
1110
+ declare namespace index$8 {
1111
+ export { type index$8_ActiveStore as ActiveStore, type index$8_AnyAnyBlock as AnyAnyBlock, type index$8_AnyAnyLink as AnyAnyLink, type index$8_AnyBlock as AnyBlock, type index$8_AnyDecodedBlock as AnyDecodedBlock, type index$8_AnyLink as AnyLink, type index$8_AnyLinkFn as AnyLinkFn, index$8_AttachedRemotesImpl as AttachedRemotesImpl, type index$8_AttachedStores as AttachedStores, index$8_BaseActiveStore as BaseActiveStore, type index$8_BaseAttachedStores as BaseAttachedStores, index$8_BaseBlockstoreImpl as BaseBlockstoreImpl, type index$8_BaseStore as BaseStore, type index$8_BlockFetcher as BlockFetcher, type index$8_BlockstoreOpts as BlockstoreOpts, type index$8_BlockstoreParams as BlockstoreParams, type index$8_BlockstoreRuntime as BlockstoreRuntime, type index$8_BytesAndKeyWithIv as BytesAndKeyWithIv, type index$8_CIDActiveStore as CIDActiveStore, type index$8_CIDBlock as CIDBlock, index$8_Car2FPMsg as Car2FPMsg, index$8_CarActiveStore as CarActiveStore, type index$8_CarAttachedStores as CarAttachedStores, type index$8_CarCacheItem as CarCacheItem, type index$8_CarClockHead as CarClockHead, type index$8_CarClockLink as CarClockLink, type index$8_CarGroup as CarGroup, type index$8_CarHeader as CarHeader, index$8_CarLog as CarLog, type index$8_CarMakeable as CarMakeable, type index$8_CarStore as CarStore, index$8_CarTransactionImpl as CarTransactionImpl, type index$8_CarTransactionOpts as CarTransactionOpts, type index$8_CodecOpts as CodecOpts, type index$8_CommitOpts as CommitOpts, type index$8_CompactFetcher as CompactFetcher, type index$8_CompactFn as CompactFn, index$8_CompactionFetcher as CompactionFetcher, type index$8_Connection as Connection, type index$8_CryptoAction as CryptoAction, type index$8_DataAndMetaAndWalStore as DataAndMetaAndWalStore, type index$8_DataAndMetaStore as DataAndMetaStore, type index$8_DataSaveOpts as DataSaveOpts, type index$8_DbMeta as DbMeta, type index$8_DbMetaBinary as DbMetaBinary, type index$8_DbMetaEvent as DbMetaEvent, type index$8_DbMetaEventBlock as DbMetaEventBlock, index$8_DbMetaEventEqual as DbMetaEventEqual, index$8_DbMetaEventsEqual as DbMetaEventsEqual, type index$8_EncryptedBlock as EncryptedBlock, index$8_EncryptedBlockstore as EncryptedBlockstore, type index$8_FPEnvelope as FPEnvelope, type index$8_FPEnvelopeCar as FPEnvelopeCar, type index$8_FPEnvelopeFile as FPEnvelopeFile, type index$8_FPEnvelopeMeta as FPEnvelopeMeta, type index$8_FPEnvelopeType as FPEnvelopeType, index$8_FPEnvelopeTypes as FPEnvelopeTypes, type index$8_FPEnvelopeWAL as FPEnvelopeWAL, type index$8_FPWALCarsOps as FPWALCarsOps, index$8_File2FPMsg as File2FPMsg, index$8_FileActiveStore as FileActiveStore, type index$8_FileAttachedStores as FileAttachedStores, type index$8_FileStore as FileStore, type index$8_FroozenCarLog as FroozenCarLog, type index$8_Gateway as Gateway, type index$8_GatewayOpts as GatewayOpts, type index$8_GetResult as GetResult, index$8_InterceptorGateway as InterceptorGateway, type index$8_IvAndKeyAndBytes as IvAndKeyAndBytes, type index$8_IvKeyIdData as IvKeyIdData, type index$8_KeyMaterial as KeyMaterial, type index$8_KeyUpsertResult as KeyUpsertResult, type index$8_KeyWithFingerPrint as KeyWithFingerPrint, type index$8_KeysByFingerprint as KeysByFingerprint, type index$8_LoadHandler as LoadHandler, type index$8_Loadable as Loadable, index$8_Loader as Loader, type index$8_LocalActiveStore as LocalActiveStore, type index$8_LocalDataAndMetaAndWalStore as LocalDataAndMetaAndWalStore, index$8_MetaActiveStore as MetaActiveStore, type index$8_MetaAttachedStores as MetaAttachedStores, type index$8_MetaStore as MetaStore, index$8_PassThroughGateway as PassThroughGateway, type index$8_RefBlockstore as RefBlockstore, type index$8_RefLoadable as RefLoadable, type index$8_SerdeGateway as SerdeGateway, type index$8_SerdeGatewayBuildUrlOp as SerdeGatewayBuildUrlOp, type index$8_SerdeGatewayBuildUrlReturn as SerdeGatewayBuildUrlReturn, type index$8_SerdeGatewayCloseOp as SerdeGatewayCloseOp, type index$8_SerdeGatewayCloseReturn as SerdeGatewayCloseReturn, type index$8_SerdeGatewayCtx as SerdeGatewayCtx, type index$8_SerdeGatewayDeleteOp as SerdeGatewayDeleteOp, type index$8_SerdeGatewayDeleteReturn as SerdeGatewayDeleteReturn, type index$8_SerdeGatewayDestroyOp as SerdeGatewayDestroyOp, type index$8_SerdeGatewayDestroyReturn as SerdeGatewayDestroyReturn, type index$8_SerdeGatewayFactoryItem as SerdeGatewayFactoryItem, type index$8_SerdeGatewayGetOp as SerdeGatewayGetOp, type index$8_SerdeGatewayGetReturn as SerdeGatewayGetReturn, type index$8_SerdeGatewayInterceptor as SerdeGatewayInterceptor, type index$8_SerdeGatewayOpts as SerdeGatewayOpts, type index$8_SerdeGatewayPutOp as SerdeGatewayPutOp, type index$8_SerdeGatewayPutReturn as SerdeGatewayPutReturn, type index$8_SerdeGatewayReturn as SerdeGatewayReturn, type index$8_SerdeGatewayStartOp as SerdeGatewayStartOp, type index$8_SerdeGatewayStartReturn as SerdeGatewayStartReturn, type index$8_SerdeGatewaySubscribeOp as SerdeGatewaySubscribeOp, type index$8_SerdeGatewaySubscribeReturn as SerdeGatewaySubscribeReturn, type index$8_SerdeGetResult as SerdeGetResult, type index$8_SerdeOrGatewayFactoryItem as SerdeOrGatewayFactoryItem, type index$8_StoreEnDeFile as StoreEnDeFile, type index$8_StoreFactory as StoreFactory, type index$8_StoreFactoryItem as StoreFactoryItem, type index$8_StoreRuntime as StoreRuntime, type index$8_StoreRuntimeUrls as StoreRuntimeUrls, type index$8_StoreURIRuntime as StoreURIRuntime, type index$8_StoreURIs as StoreURIs, type index$8_StoreUrls as StoreUrls, type index$8_StoreUrlsOpts as StoreUrlsOpts, index$8_TaskManager as TaskManager, type index$8_TaskManagerParams as TaskManagerParams, type index$8_TransactionMeta as TransactionMeta, type index$8_TransactionWrapper as TransactionWrapper, index$8_URIInterceptor as URIInterceptor, type index$8_URIMapper as URIMapper, type index$8_UnsubscribeResult as UnsubscribeResult, type index$8_UrlAndInterceptor as UrlAndInterceptor, type index$8_VoidResult as VoidResult, index$8_WALActiveStore as WALActiveStore, type index$8_WALAttachedStores as WALAttachedStores, type index$8_WALState as WALState, type index$8_WALStore as WALStore, type index$8_WriteableDataAndMetaAndWalStore as WriteableDataAndMetaAndWalStore, type index$8_WriteableDataAndMetaStore as WriteableDataAndMetaStore, index$8_createAttachedStores as createAttachedStores, index$8_createDbMetaEvent as createDbMetaEvent, index$8_defaultGatewayFactoryItem as defaultGatewayFactoryItem, index$8_ensureStoreEnDeFile as ensureStoreEnDeFile, index$8_getDefaultURI as getDefaultURI, index$8_getGatewayFactoryItem as getGatewayFactoryItem, index$8_getInterceptableGateway as getInterceptableGateway, index$8_parseCarFile as parseCarFile, index$8_registerStoreProtocol as registerStoreProtocol, index$8_toCIDBlock as toCIDBlock, index$8_toStoreRuntime as toStoreRuntime };
1112
+ }
1113
+
1114
+ interface WriteQueueParams {
1115
+ readonly chunkSize: number;
1116
+ }
1117
+ declare function defaultWriteQueueOpts(opts?: Partial<WriteQueueParams>): WriteQueueParams;
1118
+
1119
+ declare class IndexTree<K extends IndexKeyType, R extends DocFragment> {
1120
+ cid?: AnyLink;
1121
+ root?: ProllyNode<K, R>;
1122
+ }
1123
+ interface ProllyIndexRow<K extends IndexKeyType, T extends DocFragment> {
1124
+ readonly id: string;
1125
+ readonly key: IndexKey<K>;
1126
+ readonly value: T;
1127
+ }
1128
+ interface ProllyNode<K extends IndexKeyType, T extends DocFragment> extends ProllyNode$1 {
1129
+ getAllEntries(): PromiseLike<{
1130
+ [x: string]: unknown;
1131
+ result: ProllyIndexRow<K, T>[];
1132
+ }>;
1133
+ getMany<KI extends IndexKeyType>(removeIds: KI[]): Promise<{
1134
+ result: IndexKey<K>[];
1135
+ }>;
1136
+ range(a: string, b: string): Promise<{
1137
+ result: ProllyIndexRow<K, T>[];
1138
+ }>;
1139
+ get(key: string): Promise<{
1140
+ result: ProllyIndexRow<K, T>[];
1141
+ }>;
1142
+ bulk(bulk: (IndexUpdate<K> | IndexUpdateString)[]): PromiseLike<{
1143
+ readonly root?: ProllyNode<K, T>;
1144
+ readonly blocks: Block$1[];
1145
+ }>;
1146
+ readonly address: Promise<Link>;
1147
+ readonly distance: number;
1148
+ compare: (a: unknown, b: unknown) => number;
1149
+ readonly cache: unknown;
1150
+ readonly block: Promise<Block$1>;
1151
+ }
1152
+
1153
+ declare function index$7<K extends IndexKeyType = string, T extends DocTypes = NonNullable<unknown>, R extends DocFragment = T>(refDb: HasLogger & HasSuperThis & (HasCRDT | RefLedger), name: string, mapFn?: MapFn<T>, meta?: IdxMeta): Index<K, T, R>;
1154
+ declare class Index<K extends IndexKeyType, T extends DocTypes, R extends DocFragment = T> {
1155
+ readonly blockstore: BaseBlockstore;
1156
+ readonly crdt: CRDT;
1157
+ readonly name: string;
1158
+ mapFn?: MapFn<T>;
1159
+ mapFnString: string;
1160
+ byKey: IndexTree<K, R>;
1161
+ byId: IndexTree<K, R>;
1162
+ indexHead?: ClockHead;
1163
+ includeDocsDefault: boolean;
1164
+ initError?: Error;
1165
+ ready(): Promise<void>;
1166
+ readonly logger: Logger;
1167
+ constructor(sthis: SuperThis, crdt: CRDT, name: string, mapFn?: MapFn<T>, meta?: IdxMeta);
1168
+ applyMapFn(name: string, mapFn?: MapFn<T>, meta?: IdxMeta): void;
1169
+ query(opts?: QueryOpts<K>): Promise<IndexRows<K, T, R>>;
1170
+ _resetIndex(): void;
1171
+ _hydrateIndex(): Promise<void>;
1172
+ _updateIndex(): Promise<IndexTransactionMeta>;
1173
+ }
1174
+
1175
+ type Falsy = false | null | undefined;
1176
+ type Unreg = () => void;
1177
+ declare function isFalsy(value: unknown): value is Falsy;
1178
+ declare const PARAM: {
1179
+ SUFFIX: string;
1180
+ URL_GEN: string;
1181
+ STORE_KEY: string;
1182
+ STORE: string;
1183
+ KEY: string;
1184
+ INDEX: string;
1185
+ NAME: string;
1186
+ VERSION: string;
1187
+ RUNTIME: string;
1188
+ FRAG_SIZE: string;
1189
+ IV_VERIFY: string;
1190
+ IV_HASH: string;
1191
+ FRAG_FID: string;
1192
+ FRAG_OFS: string;
1193
+ FRAG_LEN: string;
1194
+ FRAG_HEAD: string;
1195
+ EXTRACTKEY: string;
1196
+ SELF_REFLECT: string;
1197
+ CAR_PARALLEL: string;
1198
+ CAR_CACHE_SIZE: string;
1199
+ CAR_COMPACT_CACHE_SIZE: string;
1200
+ CAR_META_CACHE_SIZE: string;
1201
+ GENESIS_CID: string;
1202
+ };
1203
+ type PARAMS = (typeof PARAM)[keyof typeof PARAM];
1204
+ declare function throwFalsy<T>(value: T | Falsy): T;
1205
+ declare function falsyToUndef<T>(value: T | Falsy): T | undefined;
1206
+ type StoreType = "car" | "file" | "wal" | "meta";
1207
+ interface FPStats {
1208
+ isFile(): boolean;
1209
+ isDirectory(): boolean;
1210
+ isBlockDevice(): boolean;
1211
+ isCharacterDevice(): boolean;
1212
+ isSymbolicLink(): boolean;
1213
+ isFIFO(): boolean;
1214
+ isSocket(): boolean;
1215
+ uid: number | Falsy;
1216
+ gid: number | Falsy;
1217
+ size: number | Falsy;
1218
+ atime: Date | Falsy;
1219
+ mtime: Date | Falsy;
1220
+ ctime: Date | Falsy;
1221
+ birthtime: Date | Falsy;
1222
+ }
1223
+ interface SysFileSystem {
1224
+ start(): Promise<SysFileSystem>;
1225
+ mkdir(path: string, options?: {
1226
+ recursive: boolean;
1227
+ }): Promise<string | undefined>;
1228
+ readdir(path: string): Promise<string[]>;
1229
+ rm(path: string, options?: {
1230
+ recursive: boolean;
1231
+ }): Promise<void>;
1232
+ copyFile(source: string, destination: string): Promise<void>;
1233
+ readfile(path: string): Promise<Uint8Array>;
1234
+ stat(path: string): Promise<FPStats>;
1235
+ unlink(path: string): Promise<void>;
1236
+ writefile(path: string, data: Uint8Array | string): Promise<void>;
1237
+ }
1238
+ interface PathOps {
1239
+ join(...args: string[]): string;
1240
+ dirname(path: string): string;
1241
+ basename(path: string): string;
1242
+ }
1243
+ type ToUInt8 = Uint8Array | Result<Uint8Array>;
1244
+ type PromiseToUInt8 = ToUInt8 | Promise<Uint8Array> | Promise<Result<Uint8Array>>;
1245
+ interface TextEndeCoder {
1246
+ encode(input: string): Uint8Array;
1247
+ decode(input: ToUInt8): string;
1248
+ }
1249
+ interface SuperThisOpts {
1250
+ readonly logger: Logger;
1251
+ readonly pathOps: PathOps;
1252
+ readonly crypto: CryptoRuntime;
1253
+ readonly env: Partial<EnvFactoryOpts>;
1254
+ readonly txt: TextEndeCoder;
1255
+ readonly ctx: Record<string, unknown>;
1256
+ }
1257
+ interface SuperThis {
1258
+ readonly logger: Logger;
1259
+ readonly loggerCollector?: Logger;
1260
+ readonly env: Env;
1261
+ readonly pathOps: PathOps;
1262
+ readonly ctx: Record<string, unknown>;
1263
+ readonly txt: TextEndeCoder;
1264
+ timeOrderedNextId(time?: number): {
1265
+ str: string;
1266
+ toString: () => string;
1267
+ };
1268
+ nextId(bytes?: number): {
1269
+ str: string;
1270
+ bin: Uint8Array;
1271
+ toString: () => string;
1272
+ };
1273
+ start(): Promise<void>;
1274
+ clone(override: Partial<SuperThisOpts>): SuperThis;
1275
+ }
1276
+ interface ConfigOpts extends Partial<SuperThisOpts> {
1277
+ readonly public?: boolean;
1278
+ readonly meta?: DbMeta;
1279
+ readonly writeQueue?: Partial<WriteQueueParams>;
1280
+ readonly gatewayInterceptor?: SerdeGatewayInterceptor;
1281
+ readonly autoCompact?: number;
1282
+ readonly storeUrls?: StoreUrlsOpts;
1283
+ readonly storeEnDe?: StoreEnDeFile;
1284
+ readonly threshold?: number;
1285
+ readonly keyBag?: Partial<KeyBagOpts>;
1286
+ }
1287
+ type ClockLink = EventLink<Operation>;
1288
+ type ClockHead = ClockLink[];
1289
+ type DocFragment = Uint8Array | string | number | boolean | null | AnyLink | DocFragment[] | object;
1290
+ type DocLiteral = string | number | boolean | Uint8Array | unknown;
1291
+ type DocObject = NonNullable<unknown>;
1292
+ type DocTypes = DocObject;
1293
+ type DocRecord<T extends DocObject> = T;
1294
+ type UnknownDoc = DocRecord<never>;
1295
+ type DocFiles = Record<string, DocFileMeta | File>;
1296
+ interface DocBase {
1297
+ readonly _id: string;
1298
+ readonly _files?: DocFiles;
1299
+ readonly _publicFiles?: DocFiles;
1300
+ readonly _deleted?: boolean;
1301
+ }
1302
+ type DocWithId<T extends DocTypes> = DocBase & T;
1303
+ type DocSet<T extends DocTypes> = Partial<DocBase> & T;
1304
+ interface DocFileMeta {
1305
+ readonly type: string;
1306
+ readonly size: number;
1307
+ readonly cid: AnyLink;
1308
+ readonly car?: AnyLink;
1309
+ readonly lastModified?: number;
1310
+ url?: string;
1311
+ file?: () => Promise<File>;
1312
+ }
1313
+ interface DocUpdate<T extends DocTypes> {
1314
+ readonly id: string;
1315
+ readonly value?: DocSet<T>;
1316
+ readonly del?: boolean;
1317
+ readonly clock?: ClockLink;
1318
+ }
1319
+ interface DocValue<T extends DocTypes> {
1320
+ readonly doc: DocWithId<T>;
1321
+ readonly del: boolean;
1322
+ readonly cid: AnyLink;
1323
+ }
1324
+ type KeyLiteral = string | number | boolean;
1325
+ type IndexKeyType = KeyLiteral | KeyLiteral[];
1326
+ type IndexKey<K extends IndexKeyType> = [K, string];
1327
+ interface IndexUpdate<K extends IndexKeyType> {
1328
+ readonly key: IndexKey<K>;
1329
+ readonly value?: DocFragment;
1330
+ readonly del?: boolean;
1331
+ }
1332
+ interface IndexUpdateString {
1333
+ readonly key: string;
1334
+ readonly value?: DocFragment;
1335
+ readonly del?: boolean;
1336
+ }
1337
+ interface IndexRow<K extends IndexKeyType, T extends DocObject, R extends DocFragment> {
1338
+ readonly id: string;
1339
+ readonly key: K;
1340
+ readonly value: R;
1341
+ readonly doc?: DocWithId<T>;
1342
+ }
1343
+ interface IndexRows<K extends IndexKeyType, T extends DocObject, R extends DocFragment = T> {
1344
+ readonly rows: IndexRow<K, T, R>[];
1345
+ }
1346
+ interface CRDTMeta {
1347
+ readonly head: ClockHead;
1348
+ }
1349
+ interface IndexTransactionMeta {
1350
+ readonly indexes: Record<string, IdxMeta>;
1351
+ }
1352
+ interface FileTransactionMeta {
1353
+ readonly files?: AnyLink[];
1354
+ }
1355
+ type MetaType = CRDTMeta | IndexTransactionMeta | FileTransactionMeta;
1356
+ interface IdxMeta {
1357
+ readonly byId: AnyLink;
1358
+ readonly byKey: AnyLink;
1359
+ readonly map: string;
1360
+ readonly name: string;
1361
+ readonly head: ClockHead;
1362
+ }
1363
+ interface IdxMetaMap {
1364
+ readonly indexes?: Map<string, IdxMeta>;
1365
+ }
1366
+ interface QueryOpts<K extends IndexKeyType> {
1367
+ readonly descending?: boolean;
1368
+ readonly limit?: number;
1369
+ includeDocs?: boolean;
1370
+ readonly range?: [IndexKeyType, IndexKeyType];
1371
+ readonly key?: DocFragment;
1372
+ readonly keys?: DocFragment[];
1373
+ prefix?: IndexKeyType;
1374
+ }
1375
+ interface AllDocsQueryOpts extends QueryOpts<string> {
1376
+ readonly key?: string;
1377
+ readonly keys?: string[];
1378
+ prefix?: string;
1379
+ }
1380
+ interface AllDocsResponse<T extends DocTypes> {
1381
+ readonly rows: {
1382
+ readonly key: string;
1383
+ readonly value: DocWithId<T>;
1384
+ }[];
1385
+ readonly clock: ClockHead;
1386
+ readonly name?: string;
1387
+ }
1388
+ type EmitFn = (k: IndexKeyType, v?: DocFragment) => void;
1389
+ type MapFn<T extends DocTypes> = (doc: DocWithId<T>, emit: EmitFn) => DocFragment | unknown;
1390
+ interface ChangesOptions {
1391
+ readonly dirty?: boolean;
1392
+ readonly limit?: number;
1393
+ }
1394
+ interface ChangesResponseRow<T extends DocTypes> {
1395
+ readonly key: string;
1396
+ readonly value: DocWithId<T>;
1397
+ readonly clock?: ClockLink;
1398
+ }
1399
+ interface ChangesResponse<T extends DocTypes> {
1400
+ readonly clock: ClockHead;
1401
+ readonly rows: ChangesResponseRow<T>[];
1402
+ readonly name?: string;
1403
+ }
1404
+ interface DocResponse {
1405
+ readonly id: string;
1406
+ readonly clock: ClockHead;
1407
+ readonly name?: string;
1408
+ }
1409
+ interface BulkResponse {
1410
+ readonly ids: string[];
1411
+ readonly clock: ClockHead;
1412
+ readonly name?: string;
1413
+ }
1414
+ type UpdateListenerFn<T extends DocTypes> = (docs: DocWithId<T>[]) => Promise<void> | void;
1415
+ type NoUpdateListenerFn = () => Promise<void> | void;
1416
+ type ListenerFn<T extends DocTypes> = UpdateListenerFn<T> | NoUpdateListenerFn;
1417
+ interface CRDTEntry {
1418
+ readonly data: string;
1419
+ readonly parents: string[];
1420
+ readonly cid: string;
1421
+ }
1422
+ type VoidFn = () => void;
1423
+ type UnReg$1 = () => void;
1424
+ interface CRDTClock {
1425
+ readonly head: ClockHead;
1426
+ onTock(fn: VoidFn): UnReg$1;
1427
+ onTick(fn: (updates: DocUpdate<DocTypes>[]) => void): UnReg$1;
1428
+ applyHead(newHead: ClockHead, prevHead: ClockHead, updates?: DocUpdate<DocTypes>[]): Promise<void>;
1429
+ onZoom(fn: VoidFn): UnReg$1;
1430
+ close(): Promise<void>;
1431
+ ready(): Promise<void>;
1432
+ }
1433
+ interface CarTransaction {
1434
+ readonly parent: BaseBlockstore;
1435
+ get<T, C extends number, A extends number, V extends Version>(cid: AnyLink): Promise<Block$1<T, C, A, V> | undefined>;
1436
+ superGet(cid: AnyLink): Promise<AnyBlock | undefined>;
1437
+ unshift(cid: UnknownLink, bytes: Uint8Array<ArrayBufferLike>): void;
1438
+ putSync(cid: UnknownLink, bytes: Uint8Array<ArrayBufferLike>): void;
1439
+ put(cid: UnknownLink, bytes: Uint8Array<ArrayBufferLike>): Promise<void>;
1440
+ entries(): AsyncIterableIterator<AnyBlock>;
1441
+ }
1442
+ interface BaseBlockstore {
1443
+ readonly transactions: Set<CarTransaction>;
1444
+ readonly sthis: SuperThis;
1445
+ readonly loader: Loadable;
1446
+ readonly ebOpts: BlockstoreRuntime;
1447
+ ready(): Promise<void>;
1448
+ close(): Promise<void>;
1449
+ destroy(): Promise<void>;
1450
+ compact(): Promise<void>;
1451
+ readonly logger: Logger;
1452
+ get<T, C extends number, A extends number, V extends Version>(cid: AnyLink): Promise<Block$1<T, C, A, V> | undefined>;
1453
+ put(cid: UnknownLink, bytes: Uint8Array<ArrayBufferLike>): Promise<void>;
1454
+ transaction<M extends TransactionMeta>(fn: (t: CarTransaction) => Promise<M>, _opts?: CarTransactionOpts): Promise<TransactionWrapper<M>>;
1455
+ openTransaction(opts: CarTransactionOpts): CarTransaction;
1456
+ commitTransaction<M extends TransactionMeta>(t: CarTransaction, done: M, opts: CarTransactionOpts): Promise<TransactionWrapper<M>>;
1457
+ entries(): AsyncIterableIterator<AnyBlock>;
1458
+ }
1459
+ interface CRDT extends ReadyCloseDestroy, HasLogger, HasSuperThis, HasCRDT {
1460
+ readonly logger: Logger;
1461
+ readonly sthis: SuperThis;
1462
+ readonly crdt: CRDT;
1463
+ readonly clock: CRDTClock;
1464
+ readonly blockstore: BaseBlockstore;
1465
+ readonly indexBlockstore: BaseBlockstore;
1466
+ readonly indexers: Map<string, Index<IndexKeyType, DocTypes>>;
1467
+ bulk<T extends DocTypes>(updates: DocUpdate<T>[]): Promise<CRDTMeta>;
1468
+ ready(): Promise<void>;
1469
+ close(): Promise<void>;
1470
+ destroy(): Promise<void>;
1471
+ allDocs<T extends DocTypes>(): Promise<{
1472
+ result: DocUpdate<T>[];
1473
+ head: ClockHead;
1474
+ }>;
1475
+ vis(): Promise<string>;
1476
+ getBlock(cidString: string): Promise<Block$1>;
1477
+ get(key: string): Promise<DocValue<DocTypes> | Falsy>;
1478
+ changes<T extends DocTypes>(since?: ClockHead, opts?: ChangesOptions): Promise<{
1479
+ result: DocUpdate<T>[];
1480
+ head: ClockHead;
1481
+ }>;
1482
+ compact(): Promise<void>;
1483
+ }
1484
+ interface HasCRDT {
1485
+ readonly crdt: CRDT;
1486
+ }
1487
+ interface RefLedger {
1488
+ readonly ledger: Ledger;
1489
+ }
1490
+ interface HasLogger {
1491
+ readonly logger: Logger;
1492
+ }
1493
+ interface HasSuperThis {
1494
+ readonly sthis: SuperThis;
1495
+ }
1496
+ interface ReadyCloseDestroy {
1497
+ close(): Promise<void>;
1498
+ destroy(): Promise<void>;
1499
+ ready(): Promise<void>;
1500
+ }
1501
+ interface CoerceURIandInterceptor {
1502
+ readonly url: CoerceURI;
1503
+ readonly gatewayInterceptor?: SerdeGatewayInterceptor;
1504
+ }
1505
+ interface GatewayUrlsParam {
1506
+ readonly car: CoerceURIandInterceptor;
1507
+ readonly file: CoerceURIandInterceptor;
1508
+ readonly meta: CoerceURIandInterceptor;
1509
+ readonly wal?: CoerceURIandInterceptor;
1510
+ }
1511
+ interface GatewayUrls {
1512
+ readonly car: UrlAndInterceptor;
1513
+ readonly file: UrlAndInterceptor;
1514
+ readonly meta: UrlAndInterceptor;
1515
+ readonly wal?: UrlAndInterceptor;
1516
+ }
1517
+ interface Attachable {
1518
+ readonly name: string;
1519
+ prepare(): Promise<GatewayUrlsParam>;
1520
+ }
1521
+ declare class DataAndMetaAndWalAndBaseStore implements DataAndMetaAndWalStore {
1522
+ readonly wal?: WALStore | undefined;
1523
+ readonly file: FileStore;
1524
+ readonly car: CarStore;
1525
+ readonly meta: MetaStore;
1526
+ readonly baseStores: BaseStore[];
1527
+ constructor(dam: DataAndMetaAndWalStore);
1528
+ }
1529
+ interface Attached {
1530
+ readonly gatewayUrls: GatewayUrls;
1531
+ readonly stores: DataAndMetaAndWalAndBaseStore;
1532
+ detach(): Promise<void>;
1533
+ status(): "attached" | "loading" | "loaded" | "error" | "detached" | "syncing" | "idle";
1534
+ }
1535
+ interface Database extends ReadyCloseDestroy, HasLogger, HasSuperThis {
1536
+ readonly ledger: Ledger;
1537
+ readonly logger: Logger;
1538
+ readonly sthis: SuperThis;
1539
+ readonly id: string;
1540
+ readonly name: string;
1541
+ onClosed(fn: () => void): void;
1542
+ attach(a: Attachable): Promise<Attached>;
1543
+ get<T extends DocTypes>(id: string): Promise<DocWithId<T>>;
1544
+ put<T extends DocTypes>(doc: DocSet<T>): Promise<DocResponse>;
1545
+ bulk<T extends DocTypes>(docs: DocSet<T>[]): Promise<BulkResponse>;
1546
+ del(id: string): Promise<DocResponse>;
1547
+ remove(id: string): Promise<DocResponse>;
1548
+ changes<T extends DocTypes>(since?: ClockHead, opts?: ChangesOptions): Promise<ChangesResponse<T>>;
1549
+ allDocs<T extends DocTypes>(opts?: AllDocsQueryOpts): Promise<AllDocsResponse<T>>;
1550
+ allDocuments<T extends DocTypes>(): Promise<{
1551
+ rows: {
1552
+ key: string;
1553
+ value: DocWithId<T>;
1554
+ }[];
1555
+ clock: ClockHead;
1556
+ }>;
1557
+ subscribe<T extends DocTypes>(listener: ListenerFn<T>, updates?: boolean): () => void;
1558
+ query<K extends IndexKeyType, T extends DocTypes, R extends DocFragment = T>(field: string | MapFn<T>, opts?: QueryOpts<K>): Promise<IndexRows<K, T, R>>;
1559
+ compact(): Promise<void>;
1560
+ }
1561
+ interface WriteQueue<T extends DocUpdate<S>, S extends DocTypes = DocTypes> {
1562
+ push(task: T): Promise<MetaType>;
1563
+ bulk(tasks: T[]): Promise<MetaType>;
1564
+ close(): Promise<void>;
1565
+ }
1566
+ interface LedgerOpts {
1567
+ readonly name: string;
1568
+ readonly meta?: DbMeta;
1569
+ readonly gatewayInterceptor?: SerdeGatewayInterceptor;
1570
+ readonly writeQueue: WriteQueueParams;
1571
+ readonly storeUrls: StoreURIRuntime;
1572
+ readonly storeEnDe: StoreEnDeFile;
1573
+ readonly keyBag: KeyBagRuntime;
1574
+ }
1575
+ interface Ledger extends HasCRDT {
1576
+ readonly opts: LedgerOpts;
1577
+ readonly writeQueue: WriteQueue<DocUpdate<DocTypes>>;
1578
+ readonly logger: Logger;
1579
+ readonly sthis: SuperThis;
1580
+ readonly id: string;
1581
+ readonly name: string;
1582
+ readonly context: Context;
1583
+ onClosed(fn: () => void): () => void;
1584
+ attach(a: Attachable): Promise<Attached>;
1585
+ close(): Promise<void>;
1586
+ destroy(): Promise<void>;
1587
+ ready(): Promise<void>;
1588
+ subscribe<T extends DocTypes>(listener: ListenerFn<T>, updates?: boolean): () => void;
1589
+ }
1590
+
1591
+ declare function keyConfigOpts(sthis: SuperThis, name: string, opts?: ConfigOpts): string;
1592
+ declare function isLedger(db: unknown): db is Ledger;
1593
+ declare function LedgerFactory(name: string, opts?: ConfigOpts): Ledger;
1594
+ declare class LedgerShell implements Ledger {
1595
+ readonly ref: LedgerImpl;
1596
+ readonly writeQueue: WriteQueue<DocUpdate<DocTypes>>;
1597
+ readonly name: string;
1598
+ constructor(ref: LedgerImpl);
1599
+ attach(a: Attachable): Promise<Attached>;
1600
+ get opts(): LedgerOpts;
1601
+ get context(): Context;
1602
+ get id(): string;
1603
+ get logger(): Logger;
1604
+ get sthis(): SuperThis;
1605
+ get crdt(): CRDT;
1606
+ onClosed(fn: () => void): () => void;
1607
+ close(): Promise<void>;
1608
+ destroy(): Promise<void>;
1609
+ ready(): Promise<void>;
1610
+ subscribe<T extends DocTypes>(listener: ListenerFn<T>, updates?: boolean): () => void;
1611
+ }
1612
+ declare class LedgerImpl implements Ledger {
1613
+ readonly opts: LedgerOpts;
1614
+ _listening: boolean;
1615
+ readonly _listeners: Set<ListenerFn<{}>>;
1616
+ readonly _noupdate_listeners: Set<ListenerFn<{}>>;
1617
+ readonly crdt: CRDT;
1618
+ readonly writeQueue: WriteQueue<DocUpdate<DocTypes>>;
1619
+ readonly shells: Set<LedgerShell>;
1620
+ readonly context: Context;
1621
+ get name(): string;
1622
+ addShell(shell: LedgerShell): void;
1623
+ readonly _onClosedFns: Map<string, () => void>;
1624
+ onClosed(fn: () => void): () => void;
1625
+ close(): Promise<void>;
1626
+ shellClose(db: LedgerShell): Promise<void>;
1627
+ destroy(): Promise<void>;
1628
+ readonly _ready: ResolveOnce<void>;
1629
+ ready(): Promise<void>;
1630
+ readonly logger: Logger;
1631
+ readonly sthis: SuperThis;
1632
+ readonly id: string;
1633
+ constructor(sthis: SuperThis, opts: LedgerOpts);
1634
+ attach(a: Attachable): Promise<Attached>;
1635
+ subscribe<T extends DocTypes>(listener: ListenerFn<T>, updates?: boolean): () => void;
1636
+ private _notify;
1637
+ private _no_update_notify;
1638
+ }
1639
+ declare function toStoreURIRuntime(sthis: SuperThis, name: string, sopts?: StoreUrlsOpts): StoreURIRuntime;
1640
+ declare function fireproof(name: string, opts?: ConfigOpts): Database;
1641
+
1642
+ declare function isDatabase(db: unknown): db is Database;
1643
+ declare class DatabaseImpl implements Database {
1644
+ onClosed(fn: () => void): void;
1645
+ close(): Promise<void>;
1646
+ destroy(): Promise<void>;
1647
+ ready(): Promise<void>;
1648
+ readonly ledger: Ledger;
1649
+ readonly logger: Logger;
1650
+ readonly sthis: SuperThis;
1651
+ readonly id: string;
1652
+ constructor(ledger: Ledger);
1653
+ attach(a: Attachable): Promise<Attached>;
1654
+ get name(): string;
1655
+ get<T extends DocTypes>(id: string): Promise<DocWithId<T>>;
1656
+ put<T extends DocTypes>(doc: DocSet<T>): Promise<DocResponse>;
1657
+ bulk<T extends DocTypes>(docs: DocSet<T>[]): Promise<BulkResponse>;
1658
+ del(id: string): Promise<DocResponse>;
1659
+ remove(id: string): Promise<DocResponse>;
1660
+ changes<T extends DocTypes>(since?: ClockHead, opts?: ChangesOptions): Promise<ChangesResponse<T>>;
1661
+ allDocs<T extends DocTypes>(opts?: AllDocsQueryOpts): Promise<AllDocsResponse<T>>;
1662
+ allDocuments<T extends DocTypes>(): Promise<{
1663
+ rows: {
1664
+ key: string;
1665
+ value: DocWithId<T>;
1666
+ }[];
1667
+ clock: ClockHead;
1668
+ }>;
1669
+ subscribe<T extends DocTypes>(listener: ListenerFn<T>, updates?: boolean): () => void;
1670
+ query<K extends IndexKeyType, T extends DocTypes, R extends DocFragment = T>(field: string | MapFn<T>, opts?: QueryOpts<K>): Promise<IndexRows<K, T, R>>;
1671
+ compact(): Promise<void>;
1672
+ }
1673
+
1674
+ declare class CRDTImpl implements CRDT {
1675
+ readonly opts: LedgerOpts;
1676
+ readonly blockstore: BaseBlockstore;
1677
+ readonly indexBlockstore: BaseBlockstore;
1678
+ readonly indexers: Map<string, Index<IndexKeyType, {}, {}>>;
1679
+ readonly clock: CRDTClock;
1680
+ readonly logger: Logger;
1681
+ readonly sthis: SuperThis;
1682
+ readonly crdt: CRDT;
1683
+ constructor(sthis: SuperThis, opts: LedgerOpts);
1684
+ bulk<T extends DocTypes>(updates: DocUpdate<T>[]): Promise<CRDTMeta>;
1685
+ _bulk<T extends DocTypes>(updates: DocUpdate<T>[]): Promise<CRDTMeta>;
1686
+ readonly onceReady: ResolveOnce<void>;
1687
+ ready(): Promise<void>;
1688
+ close(): Promise<void>;
1689
+ destroy(): Promise<void>;
1690
+ allDocs<T extends DocTypes>(): Promise<{
1691
+ result: DocUpdate<T>[];
1692
+ head: ClockHead;
1693
+ }>;
1694
+ vis(): Promise<string>;
1695
+ getBlock(cidString: string): Promise<Block$1>;
1696
+ get(key: string): Promise<DocValue<DocTypes> | Falsy>;
1697
+ changes<T extends DocTypes>(since?: ClockHead, opts?: ChangesOptions): Promise<{
1698
+ result: DocUpdate<T>[];
1699
+ head: ClockHead;
1700
+ }>;
1701
+ compact(): Promise<void>;
1702
+ }
1703
+
1704
+ declare function getPath(url: URI, sthis: SuperThis): string;
1705
+ declare function getFileName(url: URI, sthis: SuperThis): string;
1706
+
1707
+ declare function encodeFile(blob: Blob): Promise<{
1708
+ cid: AnyLink;
1709
+ blocks: AnyBlock[];
1710
+ }>;
1711
+ interface BlockGetter {
1712
+ get(cid: AnyLink): Promise<Uint8Array>;
1713
+ }
1714
+ declare function decodeFile(blocks: unknown, cid: AnyLink, meta: DocFileMeta): Promise<Result<File>>;
1715
+
1716
+ type files_BlockGetter = BlockGetter;
1717
+ declare const files_decodeFile: typeof decodeFile;
1718
+ declare const files_encodeFile: typeof encodeFile;
1719
+ declare namespace files {
1720
+ export { type files_BlockGetter as BlockGetter, files_decodeFile as decodeFile, files_encodeFile as encodeFile };
1721
+ }
1722
+
1723
+ declare class BlockIvKeyIdCodec implements AsyncBlockCodec<24, Uint8Array, IvKeyIdData> {
1724
+ readonly code = 24;
1725
+ readonly name = "Fireproof@encrypted-block:aes-gcm";
1726
+ readonly ko: CryptoAction;
1727
+ readonly iv?: Uint8Array;
1728
+ readonly opts: Partial<CodecOpts>;
1729
+ constructor(ko: CryptoAction, iv?: Uint8Array, opts?: CodecOpts);
1730
+ valueToHashBytes(value: IvKeyIdData): Promise<ByteView<unknown>>;
1731
+ bytesToHash(data: Uint8Array): Promise<ByteView<unknown>>;
1732
+ encode(data: Uint8Array): Promise<Uint8Array>;
1733
+ decode(abytes: Uint8Array | ArrayBuffer): Promise<IvKeyIdData>;
1734
+ }
1735
+ declare function keyedCryptoFactory(url: URI, kb: KeyBag, sthis: SuperThis): Promise<CryptoAction>;
1736
+
1737
+ type keyedCrypto_BlockIvKeyIdCodec = BlockIvKeyIdCodec;
1738
+ declare const keyedCrypto_BlockIvKeyIdCodec: typeof BlockIvKeyIdCodec;
1739
+ declare const keyedCrypto_keyedCryptoFactory: typeof keyedCryptoFactory;
1740
+ declare namespace keyedCrypto {
1741
+ export { keyedCrypto_BlockIvKeyIdCodec as BlockIvKeyIdCodec, keyedCrypto_keyedCryptoFactory as keyedCryptoFactory };
1742
+ }
1743
+
1744
+ declare const Block: typeof Block$2;
1745
+ interface DecodeInput<T, Code extends number, Alg extends number> {
1746
+ readonly bytes: ByteView<unknown>;
1747
+ readonly codec: BlockDecoder<Code, T>;
1748
+ readonly hasher: MultihashHasher<Alg>;
1749
+ }
1750
+ interface AsyncDecodeInput<T, Code extends number, Alg extends number> {
1751
+ readonly bytes: ByteView<unknown>;
1752
+ readonly codec: AsyncBlockDecoder<Code, T>;
1753
+ readonly hasher: MultihashHasher<Alg>;
1754
+ }
1755
+ declare function decode<T, Code extends number, Alg extends number>({ bytes, codec, hasher, }: AsyncDecodeInput<T, Code, Alg> | DecodeInput<T, Code, Alg>): Promise<BlockView<T, Code, Alg>>;
1756
+ interface EncodeInput<T, Code extends number, Alg extends number> {
1757
+ readonly value: T;
1758
+ readonly codec: BlockEncoder<Code, T>;
1759
+ readonly hasher: MultihashHasher<Alg>;
1760
+ }
1761
+ interface AsyncEncodeInput<T, Code extends number, Alg extends number> {
1762
+ readonly value: T;
1763
+ readonly codec: AsyncBlockEncoder<Code, T>;
1764
+ readonly hasher: MultihashHasher<Alg>;
1765
+ }
1766
+ declare function encode<T, Code extends number, Alg extends number>({ value, codec, hasher, }: AsyncEncodeInput<T, Code, Alg> | EncodeInput<T, Code, Alg>): Promise<BlockView<T, Code, Alg>>;
1767
+ interface CreateInput<T, Code extends number, Alg extends number, V extends Version> {
1768
+ bytes: ByteView<T>;
1769
+ cid: Link<T, Code, Alg, V>;
1770
+ hasher: MultihashHasher<Alg>;
1771
+ codec: BlockDecoder<Code, T>;
1772
+ }
1773
+ declare function create<T, Code extends number, Alg extends number, V extends Version>({ bytes, cid, hasher, codec, }: CreateInput<T, Code, Alg, V>): Promise<BlockView<T, Code, Alg, V>>;
1774
+ type CreateUnsafeInput<T, Code extends number, Alg extends number, V extends Version> = {
1775
+ cid: Link<T, Code, Alg, V>;
1776
+ value: T;
1777
+ codec?: BlockDecoder<Code, T>;
1778
+ bytes: ByteView<T>;
1779
+ } | {
1780
+ cid: Link<T, Code, Alg, V>;
1781
+ value?: undefined;
1782
+ codec: BlockDecoder<Code, T>;
1783
+ bytes: ByteView<T>;
1784
+ };
1785
+ declare function createUnsafe<T, Code extends number, Alg extends number, V extends Version>({ bytes, cid, value: maybeValue, codec, }: CreateUnsafeInput<T, Code, Alg, V>): Promise<BlockView<T, Code, Alg, V>>;
1786
+
1787
+ type block_AsyncDecodeInput<T, Code extends number, Alg extends number> = AsyncDecodeInput<T, Code, Alg>;
1788
+ type block_AsyncEncodeInput<T, Code extends number, Alg extends number> = AsyncEncodeInput<T, Code, Alg>;
1789
+ declare const block_Block: typeof Block;
1790
+ type block_DecodeInput<T, Code extends number, Alg extends number> = DecodeInput<T, Code, Alg>;
1791
+ type block_EncodeInput<T, Code extends number, Alg extends number> = EncodeInput<T, Code, Alg>;
1792
+ declare const block_create: typeof create;
1793
+ declare const block_createUnsafe: typeof createUnsafe;
1794
+ declare const block_decode: typeof decode;
1795
+ declare const block_encode: typeof encode;
1796
+ declare namespace block {
1797
+ export { type block_AsyncDecodeInput as AsyncDecodeInput, type block_AsyncEncodeInput as AsyncEncodeInput, block_Block as Block, type block_DecodeInput as DecodeInput, type block_EncodeInput as EncodeInput, block_create as create, block_createUnsafe as createUnsafe, block_decode as decode, block_encode as encode };
1798
+ }
1799
+
1800
+ declare const index$6_block: typeof block;
1801
+ declare namespace index$6 {
1802
+ export { index$6_block as block, codecInterface as codec };
1803
+ }
1804
+
1805
+ interface ReqGetData extends ReqSignedUrl {
1806
+ readonly type: "reqGetData";
1807
+ }
1808
+ declare function buildReqGetData(sthis: NextId, sup: ReqSignedUrlParam, ctx: GwCtx): ReqGetData;
1809
+ declare function MsgIsReqGetData(msg: MsgBase): msg is ReqGetData;
1810
+ interface ResGetData extends ResSignedUrl {
1811
+ readonly type: "resGetData";
1812
+ }
1813
+ declare function MsgIsResGetData(msg: MsgBase): msg is ResGetData;
1814
+ interface CalculatePreSignedUrl {
1815
+ calculatePreSignedUrl(ctx: MsgTypesCtx, p: PreSignedMsg): Promise<Result<URI>>;
1816
+ }
1817
+ declare function buildResGetData(msgCtx: MsgTypesCtx, req: MsgWithConnAuth<ReqGetData>, ctx: CalculatePreSignedUrl): Promise<MsgWithError<ResGetData>>;
1818
+ interface ReqPutData extends ReqSignedUrl {
1819
+ readonly type: "reqPutData";
1820
+ }
1821
+ declare function MsgIsReqPutData(msg: MsgBase): msg is ReqPutData;
1822
+ declare function buildReqPutData(sthis: NextId, sup: ReqSignedUrlParam, ctx: GwCtx): ReqPutData;
1823
+ interface ResPutData extends ResSignedUrl {
1824
+ readonly type: "resPutData";
1825
+ }
1826
+ declare function MsgIsResPutData(msg: MsgBase): msg is ResPutData;
1827
+ declare function buildResPutData(msgCtx: MsgTypesCtx, req: MsgWithConnAuth<ReqPutData>, ctx: CalculatePreSignedUrl): Promise<MsgWithError<ResPutData>>;
1828
+ interface ReqDelData extends ReqSignedUrl {
1829
+ readonly type: "reqDelData";
1830
+ }
1831
+ declare function MsgIsReqDelData(msg: MsgBase): msg is ReqDelData;
1832
+ declare function buildReqDelData(sthis: NextId, sup: ReqSignedUrlParam, ctx: GwCtx): ReqDelData;
1833
+ interface ResDelData extends ResSignedUrl {
1834
+ readonly type: "resDelData";
1835
+ }
1836
+ declare function MsgIsResDelData(msg: MsgBase): msg is ResDelData;
1837
+ declare function buildResDelData(msgCtx: MsgTypesCtx, req: MsgWithConnAuth<ReqDelData>, ctx: CalculatePreSignedUrl): Promise<MsgWithError<ResDelData>>;
1838
+
1839
+ declare const VERSION = "FP-MSG-1.0";
1840
+ interface BaseTokenParam {
1841
+ readonly alg: string;
1842
+ readonly issuer: string;
1843
+ readonly audience: string;
1844
+ readonly validFor: number;
1845
+ }
1846
+ interface FPCloudClaim extends JWTPayload {
1847
+ readonly userId: string;
1848
+ readonly tenants: {
1849
+ readonly id: string;
1850
+ readonly role: string;
1851
+ }[];
1852
+ readonly ledgers: {
1853
+ readonly id: string;
1854
+ readonly role: string;
1855
+ readonly right: string;
1856
+ }[];
1857
+ }
1858
+ type TokenForParam = FPCloudClaim & Partial<BaseTokenParam>;
1859
+ type MsgWithError<T extends MsgBase> = T | ErrorMsg;
1860
+ interface PreSignedMsg extends MsgWithTenantLedger<MsgWithConnAuth> {
1861
+ readonly methodParams: MethodSignedUrlParam;
1862
+ readonly params: SignedUrlParam;
1863
+ }
1864
+ interface RequestOpts {
1865
+ readonly waitFor: (msg: MsgBase) => boolean;
1866
+ readonly pollInterval?: number;
1867
+ readonly timeout?: number;
1868
+ }
1869
+ interface EnDeCoder {
1870
+ encode<T>(node: T): Uint8Array;
1871
+ decode<T>(data: Uint8Array): T;
1872
+ }
1873
+ interface WaitForTid {
1874
+ readonly tid: string;
1875
+ readonly future: Future<MsgBase>;
1876
+ readonly timeout?: number;
1877
+ readonly waitFor: (msg: MsgBase) => boolean;
1878
+ }
1879
+ interface NextId {
1880
+ readonly nextId: SuperThis$1["nextId"];
1881
+ }
1882
+ interface AuthType {
1883
+ readonly type: "ucan" | "error" | "fp-cloud-jwk" | "fp-cloud";
1884
+ }
1885
+ declare function isAuthTypeFPCloudJWK(a: AuthType): a is FPJWKCloudAuthType;
1886
+ declare function isAuthTypeFPCloud(a: AuthType): a is FPCloudAuthType;
1887
+ interface UCanAuth extends AuthType {
1888
+ readonly type: "ucan";
1889
+ readonly params: {
1890
+ readonly tbd: string;
1891
+ };
1892
+ }
1893
+ interface FPJWKCloudAuthType extends AuthType {
1894
+ readonly type: "fp-cloud-jwk";
1895
+ readonly params: {
1896
+ readonly jwk: string;
1897
+ };
1898
+ }
1899
+ interface FPCloudAuthType extends AuthType {
1900
+ readonly type: "fp-cloud";
1901
+ readonly params: {
1902
+ readonly claim: TokenForParam;
1903
+ readonly jwk: string;
1904
+ };
1905
+ }
1906
+ type AuthFactory = (tp?: Partial<TokenForParam>) => Promise<Result<AuthType>>;
1907
+ interface TenantLedger {
1908
+ readonly tenant: string;
1909
+ readonly ledger: string;
1910
+ }
1911
+ declare function keyTenantLedger(t: TenantLedger): string;
1912
+ interface QSId {
1913
+ readonly reqId: string;
1914
+ readonly resId: string;
1915
+ }
1916
+ declare function qsidEqual(a: QSId, b: QSId): boolean;
1917
+ declare function qsidKey(qsid: QSId): string;
1918
+ interface MsgBase {
1919
+ readonly tid: string;
1920
+ readonly type: string;
1921
+ readonly version: string;
1922
+ readonly auth: AuthType;
1923
+ }
1924
+ declare function MsgIsTid(msg: MsgBase, tid: string): boolean;
1925
+ type MsgWithConn<T extends MsgBase = MsgBase> = T & {
1926
+ readonly conn: QSId;
1927
+ };
1928
+ type MsgWithConnAuth<T extends MsgBase = MsgBase> = MsgWithConn<T> & {
1929
+ readonly auth: AuthType;
1930
+ };
1931
+ type MsgWithTenantLedger<T extends MsgWithConnAuth> = T & {
1932
+ readonly tenant: TenantLedger;
1933
+ };
1934
+ interface ErrorMsg extends MsgBase {
1935
+ readonly type: "error";
1936
+ readonly src: unknown;
1937
+ readonly message: string;
1938
+ readonly body?: string;
1939
+ readonly stack?: string[];
1940
+ }
1941
+ declare function MsgIsError(rq: MsgBase): rq is ErrorMsg;
1942
+ declare function MsgIsQSError(rq: ReqRes<MsgBase, MsgBase>): rq is ReqRes<ErrorMsg, ErrorMsg>;
1943
+ type HttpMethods = "GET" | "PUT" | "DELETE";
1944
+ type FPStoreTypes = "meta" | "car" | "wal" | "file";
1945
+ declare function coerceFPStoreTypes(s?: string): FPStoreTypes;
1946
+ type ProtocolCapabilities = "reqRes" | "stream";
1947
+ declare function isProtocolCapabilities(s: string): s is ProtocolCapabilities;
1948
+ interface Gestalt {
1949
+ readonly storeTypes: FPStoreTypes[];
1950
+ readonly id: string;
1951
+ readonly protocolCapabilities: ProtocolCapabilities[];
1952
+ readonly httpEndpoints: string[];
1953
+ readonly wsEndpoints: string[];
1954
+ readonly encodings: ("JSON" | "CBOR")[];
1955
+ readonly auth: AuthType[];
1956
+ readonly requiresAuth: boolean;
1957
+ readonly data?: {
1958
+ readonly inband: boolean;
1959
+ readonly outband: boolean;
1960
+ };
1961
+ readonly meta?: {
1962
+ readonly inband: true;
1963
+ readonly outband: boolean;
1964
+ };
1965
+ readonly wal?: {
1966
+ readonly inband: boolean;
1967
+ readonly outband: boolean;
1968
+ };
1969
+ readonly reqTypes: string[];
1970
+ readonly resTypes: string[];
1971
+ readonly eventTypes: string[];
1972
+ }
1973
+ interface MsgerParams {
1974
+ readonly mime: string;
1975
+ readonly auth?: AuthType;
1976
+ readonly hasPersistent?: boolean;
1977
+ readonly protocolCapabilities?: ProtocolCapabilities[];
1978
+ readonly timeout: number;
1979
+ }
1980
+ type GestaltParam = Partial<Gestalt> & {
1981
+ readonly id: string;
1982
+ };
1983
+ declare function defaultGestalt(msgP: MsgerParams, gestalt: GestaltParam): Gestalt;
1984
+ interface ReqChat extends MsgWithConn {
1985
+ readonly type: "reqChat";
1986
+ readonly message: string;
1987
+ readonly targets: QSId[];
1988
+ }
1989
+ interface ResChat extends MsgWithConn {
1990
+ readonly type: "resChat";
1991
+ readonly message: string;
1992
+ readonly targets: QSId[];
1993
+ }
1994
+ declare function buildReqChat(sthis: NextId, auth: AuthType, conn: QSId, message: string, targets?: QSId[]): ReqChat;
1995
+ declare function buildResChat(req: ReqChat, conn?: QSId, message?: string, targets?: QSId[], auth?: AuthType): ResChat;
1996
+ declare function MsgIsReqChat(msg: MsgBase): msg is ReqChat;
1997
+ declare function MsgIsResChat(msg: MsgBase): msg is ResChat;
1998
+ interface ReqGestalt extends MsgBase {
1999
+ readonly type: "reqGestalt";
2000
+ readonly gestalt: Gestalt;
2001
+ readonly publish?: boolean;
2002
+ }
2003
+ declare function MsgIsReqGestalt(msg: MsgBase): msg is ReqGestalt;
2004
+ declare function buildReqGestalt(sthis: NextId, auth: AuthType, gestalt: Gestalt, publish?: boolean): ReqGestalt;
2005
+ interface ConnInfo {
2006
+ readonly connIds: string[];
2007
+ }
2008
+ interface ResGestalt extends MsgBase {
2009
+ readonly type: "resGestalt";
2010
+ readonly gestalt: Gestalt;
2011
+ }
2012
+ declare function buildResGestalt(req: ReqGestalt, gestalt: Gestalt, auth: AuthType): ResGestalt | ErrorMsg;
2013
+ declare function MsgIsResGestalt(msg: MsgBase): msg is ResGestalt;
2014
+ interface ReqOpenConnection {
2015
+ readonly reqId?: string;
2016
+ readonly resId?: string;
2017
+ }
2018
+ interface ReqOpenConn {
2019
+ readonly reqId: string;
2020
+ readonly resId?: string;
2021
+ }
2022
+ interface ReqOpen extends MsgBase {
2023
+ readonly type: "reqOpen";
2024
+ readonly conn: ReqOpenConn;
2025
+ }
2026
+ declare function buildReqOpen(sthis: NextId, auth: AuthType, conn: ReqOpenConnection): ReqOpen;
2027
+ declare function MsgIsReqOpen(imsg: MsgBase): imsg is MsgWithConn<ReqOpen>;
2028
+ interface ResOpen extends MsgBase {
2029
+ readonly type: "resOpen";
2030
+ readonly conn: QSId;
2031
+ }
2032
+ declare function MsgIsWithConn<T extends MsgBase>(msg: T): msg is MsgWithConn<T>;
2033
+ declare function MsgIsWithConnAuth<T extends MsgBase>(msg: T): msg is MsgWithConnAuth<T>;
2034
+ declare function MsgIsConnected<T extends MsgBase>(msg: T, qsid: QSId): msg is MsgWithConn<T>;
2035
+ declare function buildResOpen(sthis: NextId, req: ReqOpen, resStreamId?: string): ResOpen;
2036
+ declare function MsgIsResOpen(msg: MsgBase): msg is ResOpen;
2037
+ interface ReqClose extends MsgWithConn {
2038
+ readonly type: "reqClose";
2039
+ }
2040
+ declare function MsgIsReqClose(msg: MsgBase): msg is ReqClose;
2041
+ interface ResClose extends MsgWithConn {
2042
+ readonly type: "resClose";
2043
+ }
2044
+ declare function MsgIsResClose(msg: MsgBase): msg is ResClose;
2045
+ declare function buildResClose(req: ReqClose, conn: QSId): ResClose;
2046
+ declare function buildReqClose(sthis: NextId, auth: AuthType, conn: QSId): ReqClose;
2047
+ interface SignedUrlParam {
2048
+ readonly path?: string;
2049
+ readonly key: string;
2050
+ readonly expires?: number;
2051
+ readonly index?: string;
2052
+ }
2053
+ interface MethodSignedUrlParam {
2054
+ readonly method: HttpMethods;
2055
+ readonly store: FPStoreTypes;
2056
+ }
2057
+ interface ReqSignedUrlParam {
2058
+ readonly auth: AuthType;
2059
+ readonly methodParam: MethodSignedUrlParam;
2060
+ readonly params: SignedUrlParam;
2061
+ }
2062
+ interface UpdateReqRes<Q extends MsgBase, S extends MsgBase> {
2063
+ req: Q;
2064
+ res: S;
2065
+ }
2066
+ type ReqRes<Q extends MsgBase, S extends MsgBase> = Readonly<UpdateReqRes<Q, S>>;
2067
+ declare function buildErrorMsg(msgCtx: {
2068
+ readonly logger: Logger;
2069
+ readonly sthis: SuperThis$1;
2070
+ }, base: Partial<MsgBase & {
2071
+ ref?: unknown;
2072
+ }>, error: Error, body?: string, stack?: string[]): ErrorMsg;
2073
+ declare function MsgIsTenantLedger<T extends MsgBase>(msg: T): msg is MsgWithTenantLedger<MsgWithConnAuth<T>>;
2074
+ interface ReqSignedUrl extends ReqSignedUrlWithoutMethodParams {
2075
+ readonly methodParams: MethodSignedUrlParam;
2076
+ }
2077
+ interface ReqSignedUrlWithoutMethodParams extends MsgWithTenantLedger<MsgWithConnAuth> {
2078
+ readonly params: SignedUrlParam;
2079
+ }
2080
+ interface GwCtx {
2081
+ readonly tid?: string;
2082
+ readonly conn: QSId;
2083
+ readonly tenant: TenantLedger;
2084
+ }
2085
+ interface GwCtxConn {
2086
+ readonly tid?: string;
2087
+ readonly conn: QSId;
2088
+ readonly tenant: TenantLedger;
2089
+ }
2090
+ declare function buildReqSignedUrl<T extends ReqSignedUrl>(sthis: NextId, type: string, rparam: ReqSignedUrlParam, gwCtx: GwCtx): T;
2091
+ interface ResSignedUrl extends MsgWithTenantLedger<MsgWithConn> {
2092
+ readonly methodParams: MethodSignedUrlParam;
2093
+ readonly params: SignedUrlParam;
2094
+ readonly signedUrl: string;
2095
+ }
2096
+ interface ResOptionalSignedUrl extends MsgWithTenantLedger<MsgWithConn> {
2097
+ readonly params: SignedUrlParam;
2098
+ readonly methodParams: MethodSignedUrlParam;
2099
+ readonly signedUrl?: string;
2100
+ }
2101
+ interface MsgTypesCtx {
2102
+ readonly sthis: SuperThis$1;
2103
+ readonly logger: Logger;
2104
+ }
2105
+ interface MsgTypesCtxSync {
2106
+ readonly sthis: SuperThis$1;
2107
+ readonly logger: Logger;
2108
+ readonly auth: AuthType;
2109
+ }
2110
+ declare function resAuth(msg: MsgBase): Promise<AuthType>;
2111
+ declare function buildRes<Q extends MsgWithTenantLedger<MsgWithConn<ReqSignedUrlWithoutMethodParams>>, S extends ResSignedUrl>(methodParams: MethodSignedUrlParam, type: string, msgCtx: MsgTypesCtx, req: Q, ctx: CalculatePreSignedUrl): Promise<MsgWithError<S>>;
2112
+
2113
+ declare const envKeyDefaults: {
2114
+ SECRET: string;
2115
+ PUBLIC: string;
2116
+ };
2117
+ interface SessionTokenServiceParam extends Partial<BaseTokenParam> {
2118
+ readonly token: string;
2119
+ }
2120
+ interface SessionTokenServiceFromEnvParam extends Partial<BaseTokenParam> {
2121
+ readonly privateEnvKey?: string;
2122
+ readonly publicEnvKey?: string;
2123
+ }
2124
+ declare function jwk2env(jwk: CryptoKey, sthis?: SuperThis): Promise<string>;
2125
+ declare function env2jwk(env: string, alg: string, sthis?: SuperThis): Promise<CryptoKey>;
2126
+ interface KeysResult {
2127
+ readonly material: CryptoKeyPair;
2128
+ readonly strings: {
2129
+ readonly publicKey: string;
2130
+ readonly privateKey: string;
2131
+ };
2132
+ }
2133
+ declare class SessionTokenService {
2134
+ #private;
2135
+ static generateKeyPair(alg?: string, options?: GenerateKeyPairOptions, generateKeyPairFN?: (alg: string, options: GenerateKeyPairOptions) => Promise<jose.GenerateKeyPairResult>): Promise<KeysResult>;
2136
+ static createFromEnv(sthis: SuperThis, sp?: SessionTokenServiceFromEnvParam): Promise<SessionTokenService>;
2137
+ static create(stsparam: SessionTokenServiceParam, sthis?: SuperThis): Promise<SessionTokenService>;
2138
+ private constructor();
2139
+ get validFor(): number;
2140
+ get alg(): string;
2141
+ get isssuer(): string;
2142
+ get audience(): string;
2143
+ validate(token: string): Promise<Result<JWTVerifyResult<FPCloudClaim>>>;
2144
+ tokenFor(p: TokenForParam): Promise<string>;
2145
+ }
2146
+
2147
+ type index$5_KeysResult = KeysResult;
2148
+ type index$5_SessionTokenService = SessionTokenService;
2149
+ declare const index$5_SessionTokenService: typeof SessionTokenService;
2150
+ declare const index$5_env2jwk: typeof env2jwk;
2151
+ declare const index$5_envKeyDefaults: typeof envKeyDefaults;
2152
+ declare const index$5_jwk2env: typeof jwk2env;
2153
+ declare namespace index$5 {
2154
+ export { type index$5_KeysResult as KeysResult, index$5_SessionTokenService as SessionTokenService, index$5_env2jwk as env2jwk, index$5_envKeyDefaults as envKeyDefaults, index$5_jwk2env as jwk2env };
2155
+ }
2156
+
2157
+ interface KeyBagCtx {
2158
+ readonly dirName: string;
2159
+ readonly sysFS: SysFileSystem;
2160
+ readonly fName: string;
2161
+ }
2162
+ declare class KeyBagProviderFile implements KeyBagProvider {
2163
+ _prepare(id: string): Promise<KeyBagCtx>;
2164
+ private readonly url;
2165
+ readonly logger: Logger;
2166
+ readonly sthis: SuperThis;
2167
+ constructor(url: URI, sthis: SuperThis);
2168
+ get(id: string): Promise<V1StorageKeyItem | KeysItem | undefined>;
2169
+ set(item: KeysItem): Promise<void>;
2170
+ }
2171
+
2172
+ declare function sysFileSystemFactory(uri: URI): Promise<SysFileSystem>;
2173
+
2174
+ type index$4_KeyBagProviderFile = KeyBagProviderFile;
2175
+ declare const index$4_KeyBagProviderFile: typeof KeyBagProviderFile;
2176
+ declare const index$4_sysFileSystemFactory: typeof sysFileSystemFactory;
2177
+ declare namespace index$4 {
2178
+ export { index$4_KeyBagProviderFile as KeyBagProviderFile, index$4_sysFileSystemFactory as sysFileSystemFactory };
2179
+ }
2180
+
2181
+ declare class MemoryGateway implements Gateway {
2182
+ readonly memorys: Map<string, Uint8Array>;
2183
+ readonly sthis: SuperThis;
2184
+ constructor(sthis: SuperThis, memorys: Map<string, Uint8Array>);
2185
+ buildUrl(baseUrl: URI, key: string): Promise<Result<URI>>;
2186
+ start(baseUrl: URI): Promise<Result<URI>>;
2187
+ close(baseUrl: URI): Promise<VoidResult>;
2188
+ destroy(baseUrl: URI): Promise<VoidResult>;
2189
+ put(url: URI, bytes: Uint8Array): Promise<VoidResult>;
2190
+ get(url: URI): Promise<GetResult>;
2191
+ delete(url: URI): Promise<VoidResult>;
2192
+ getPlain(url: URI, key: string): Promise<Result<Uint8Array>>;
2193
+ }
2194
+
2195
+ type gateway$1_MemoryGateway = MemoryGateway;
2196
+ declare const gateway$1_MemoryGateway: typeof MemoryGateway;
2197
+ declare namespace gateway$1 {
2198
+ export { gateway$1_MemoryGateway as MemoryGateway };
2199
+ }
2200
+
2201
+ declare function selectRandom<T>(arr: T[]): T;
2202
+ declare function timeout<T>(ms: number, promise: Promise<T>): Promise<T>;
2203
+ type OnMsgFn<T extends MsgBase = MsgBase> = (msg: MsgWithError<T>) => void;
2204
+ type UnReg = () => void;
2205
+ interface ExchangedGestalt {
2206
+ readonly my: Gestalt;
2207
+ readonly remote: Gestalt;
2208
+ }
2209
+ type OnErrorFn = (msg: Partial<MsgBase>, err: Error) => Partial<MsgBase>;
2210
+ interface ActiveStream<S extends MsgBase, Q extends MsgBase> {
2211
+ readonly id: string;
2212
+ readonly bind: {
2213
+ readonly msg: Q;
2214
+ readonly opts: RequestOpts;
2215
+ };
2216
+ timeout?: unknown;
2217
+ controller?: ReadableStreamDefaultController<MsgWithError<S>>;
2218
+ }
2219
+ interface MsgRawConnection<T extends MsgBase = MsgBase> {
2220
+ readonly sthis: SuperThis;
2221
+ readonly exchangedGestalt: ExchangedGestalt;
2222
+ readonly activeBinds: Map<string, ActiveStream<T, MsgBase>>;
2223
+ bind<S extends T, Q extends T>(req: Q, opts: RequestOpts): ReadableStream<MsgWithError<S>>;
2224
+ request<S extends T, Q extends T>(req: Q, opts: RequestOpts): Promise<MsgWithError<S>>;
2225
+ send<S extends T, Q extends T>(msg: Q): Promise<MsgWithError<S>>;
2226
+ start(): Promise<Result<void>>;
2227
+ close(o: T): Promise<Result<void>>;
2228
+ onMsg(msg: OnMsgFn<T>): UnReg;
2229
+ }
2230
+ declare function jsonEnDe(sthis: SuperThis): EnDeCoder;
2231
+ type MsgerParamsWithEnDe = MsgerParams & {
2232
+ readonly ende: EnDeCoder;
2233
+ };
2234
+ declare function defaultMsgParams(sthis: SuperThis, igs: Partial<MsgerParamsWithEnDe>): MsgerParamsWithEnDe;
2235
+ interface OpenParams {
2236
+ readonly timeout: number;
2237
+ }
2238
+ declare function applyStart(prC: Promise<Result<MsgRawConnection>>): Promise<Result<MsgRawConnection>>;
2239
+ declare function authTypeFromUri(logger: Logger, curi: CoerceURI): Promise<Result<FPJWKCloudAuthType>>;
2240
+ declare class MsgConnected {
2241
+ static connect(auth: AuthType, mrc: Result<MsgRawConnection> | MsgRawConnection, conn?: Partial<QSId>): Promise<Result<MsgConnected>>;
2242
+ readonly sthis: SuperThis;
2243
+ readonly conn: QSId;
2244
+ readonly raw: MsgRawConnection;
2245
+ readonly exchangedGestalt: ExchangedGestalt;
2246
+ readonly activeBinds: Map<string, ActiveStream<MsgWithConnAuth, MsgBase>>;
2247
+ readonly id: string;
2248
+ private constructor();
2249
+ attachAuth(auth: AuthFactory): MsgConnectedAuth;
2250
+ }
2251
+ declare class MsgConnectedAuth implements MsgRawConnection<MsgWithConnAuth> {
2252
+ readonly sthis: SuperThis;
2253
+ readonly conn: QSId;
2254
+ readonly raw: MsgRawConnection;
2255
+ readonly exchangedGestalt: ExchangedGestalt;
2256
+ readonly activeBinds: Map<string, ActiveStream<MsgWithConnAuth, MsgBase>>;
2257
+ readonly id: string;
2258
+ readonly authFactory: AuthFactory;
2259
+ constructor(conn: MsgConnected, authFactory: AuthFactory);
2260
+ bind<S extends MsgWithConnAuth, Q extends MsgWithConnAuth>(req: Q, opts: RequestOpts): ReadableStream<MsgWithError<S>>;
2261
+ authType(): Promise<Result<AuthType>>;
2262
+ msgConnAuth(): Promise<Result<MsgWithConnAuth>>;
2263
+ request<S extends MsgWithConnAuth, Q extends MsgWithConnAuth>(req: Q, opts: RequestOpts): Promise<MsgWithError<S>>;
2264
+ send<S extends MsgWithConnAuth, Q extends MsgWithConnAuth>(msg: Q): Promise<MsgWithError<S>>;
2265
+ start(): Promise<Result<void>>;
2266
+ close(t: MsgWithConnAuth): Promise<Result<void>>;
2267
+ onMsg(msgFn: OnMsgFn<MsgWithConnAuth>): UnReg;
2268
+ }
2269
+ declare class Msger {
2270
+ static openHttp(sthis: SuperThis, urls: URI[], msgP: MsgerParamsWithEnDe, exGestalt: ExchangedGestalt): Promise<Result<MsgRawConnection>>;
2271
+ static openWS(sthis: SuperThis, url: URI, msgP: MsgerParamsWithEnDe, exGestalt: ExchangedGestalt): Promise<Result<MsgRawConnection>>;
2272
+ static open(sthis: SuperThis, auth: AuthType, curl: CoerceURI, imsgP?: Partial<MsgerParamsWithEnDe>): Promise<Result<MsgRawConnection>>;
2273
+ static connect(sthis: SuperThis, auth: AuthType, curl: CoerceURI, imsgP?: Partial<MsgerParamsWithEnDe>, conn?: Partial<QSId>): Promise<Result<MsgConnected>>;
2274
+ private constructor();
2275
+ }
2276
+
2277
+ type ConnectedSerdeGatewayCtx = SerdeGatewayCtx & {
2278
+ conn: AuthedConnection;
2279
+ };
2280
+ interface StoreTypeGateway {
2281
+ get: <S>(ctx: ConnectedSerdeGatewayCtx, url: URI) => Promise<SerdeGetResult<S>>;
2282
+ put: <T>(ctx: ConnectedSerdeGatewayCtx, url: URI, body: FPEnvelope<T>) => Promise<VoidResult>;
2283
+ delete: (ctx: ConnectedSerdeGatewayCtx, url: URI) => Promise<VoidResult>;
2284
+ }
2285
+ interface ConnectionItem {
2286
+ readonly uri: URI;
2287
+ readonly matchRes: MatchResult;
2288
+ readonly connection: ResolveOnce<Result<MsgConnected>>;
2289
+ readonly trackPuts: Set<string>;
2290
+ }
2291
+ interface AuthedConnection {
2292
+ readonly conn: Result<MsgConnectedAuth>;
2293
+ readonly citem: ConnectionItem;
2294
+ }
2295
+ declare class FireproofCloudGateway implements SerdeGateway {
2296
+ #private;
2297
+ readonly logger: Logger;
2298
+ readonly sthis: SuperThis;
2299
+ constructor(sthis: SuperThis);
2300
+ buildUrl(ctx: SerdeGatewayCtx, baseUrl: URI, key: string): Promise<Result<URI>>;
2301
+ start(ctx: SerdeGatewayCtx, uri: URI): Promise<Result<URI>>;
2302
+ get<S>(ctx: SerdeGatewayCtx, uri: URI): Promise<SerdeGetResult<S>>;
2303
+ put<T>(ctx: SerdeGatewayCtx, uri: URI, body: FPEnvelope<T>): Promise<VoidResult>;
2304
+ delete(ctx: SerdeGatewayCtx, uri: URI): Promise<VoidResult>;
2305
+ close(ctx: SerdeGatewayCtx, uri: URI): Promise<VoidResult>;
2306
+ getCloudConnection(uri: URI): Promise<Result<MsgConnectedAuth>>;
2307
+ getCloudConnectionItem(uri: URI): Promise<AuthedConnection>;
2308
+ subscribe(ctx: SerdeGatewayCtx, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>): Promise<UnsubscribeResult>;
2309
+ destroy(ctx: SerdeGatewayCtx, uri: URI): Promise<VoidResult>;
2310
+ getPlain(): Promise<Result<Uint8Array>>;
2311
+ }
2312
+ declare function registerFireproofCloudStoreProtocol(protocol?: string): () => void;
2313
+ declare function toCloud(url: CoerceURI): Attachable;
2314
+
2315
+ type gateway_FireproofCloudGateway = FireproofCloudGateway;
2316
+ declare const gateway_FireproofCloudGateway: typeof FireproofCloudGateway;
2317
+ type gateway_StoreTypeGateway = StoreTypeGateway;
2318
+ declare const gateway_registerFireproofCloudStoreProtocol: typeof registerFireproofCloudStoreProtocol;
2319
+ declare const gateway_toCloud: typeof toCloud;
2320
+ declare namespace gateway {
2321
+ export { gateway_FireproofCloudGateway as FireproofCloudGateway, type gateway_StoreTypeGateway as StoreTypeGateway, gateway_registerFireproofCloudStoreProtocol as registerFireproofCloudStoreProtocol, gateway_toCloud as toCloud };
2322
+ }
2323
+
2324
+ declare class DefSerdeGateway implements SerdeGateway {
2325
+ readonly gw: Gateway;
2326
+ constructor(gw: Gateway);
2327
+ start({ loader: { sthis } }: SerdeGatewayCtx, baseURL: URI): Promise<Result<URI>>;
2328
+ buildUrl({ loader: { sthis } }: SerdeGatewayCtx, baseUrl: URI, key: string): Promise<Result<URI>>;
2329
+ close({ loader: { sthis } }: SerdeGatewayCtx, uri: URI): Promise<Result<void>>;
2330
+ private subscribeFn;
2331
+ put<T>({ loader: { sthis }, encoder }: SerdeGatewayCtx, url: URI, env: FPEnvelope<T>): Promise<Result<void>>;
2332
+ get<S>({ loader: { sthis }, decoder }: SerdeGatewayCtx, url: URI): Promise<SerdeGetResult<S>>;
2333
+ subscribe({ loader: { sthis }, decoder }: SerdeGatewayCtx, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>): Promise<Result<() => void>>;
2334
+ delete({ loader: { sthis } }: SerdeGatewayCtx, url: URI): Promise<Result<void>>;
2335
+ destroy({ loader: { sthis } }: SerdeGatewayCtx, baseURL: URI): Promise<Result<void>>;
2336
+ getPlain({ loader: { sthis } }: SerdeGatewayCtx, iurl: URI, key: string): Promise<Result<Uint8Array<ArrayBufferLike>, Error>>;
2337
+ }
2338
+
2339
+ type index$3_CARDecodeEnvelope = CARDecodeEnvelope;
2340
+ type index$3_CAREncodeEnvelope = CAREncodeEnvelope;
2341
+ type index$3_DefSerdeGateway = DefSerdeGateway;
2342
+ declare const index$3_DefSerdeGateway: typeof DefSerdeGateway;
2343
+ type index$3_FILEDecodeEnvelope = FILEDecodeEnvelope;
2344
+ type index$3_FILEEncodeEnvelope = FILEEncodeEnvelope;
2345
+ type index$3_FPDecoder = FPDecoder;
2346
+ type index$3_FPEncoder = FPEncoder;
2347
+ type index$3_METADecodeEnvelope = METADecodeEnvelope;
2348
+ type index$3_METAEncodeEnvelope = METAEncodeEnvelope;
2349
+ type index$3_SerializedMeta = SerializedMeta;
2350
+ type index$3_SerializedWAL = SerializedWAL;
2351
+ type index$3_WALDecodeEnvelope = WALDecodeEnvelope;
2352
+ type index$3_WALEncodeEnvelope = WALEncodeEnvelope;
2353
+ declare const index$3_dbMetaEvent2Serialized: typeof dbMetaEvent2Serialized;
2354
+ declare const index$3_decode2DbMetaEvents: typeof decode2DbMetaEvents;
2355
+ declare const index$3_fpDeserialize: typeof fpDeserialize;
2356
+ declare const index$3_fpSerialize: typeof fpSerialize;
2357
+ declare namespace index$3 {
2358
+ export { type index$3_CARDecodeEnvelope as CARDecodeEnvelope, type index$3_CAREncodeEnvelope as CAREncodeEnvelope, index$3_DefSerdeGateway as DefSerdeGateway, type index$3_FILEDecodeEnvelope as FILEDecodeEnvelope, type index$3_FILEEncodeEnvelope as FILEEncodeEnvelope, type index$3_FPDecoder as FPDecoder, type index$3_FPEncoder as FPEncoder, type index$3_METADecodeEnvelope as METADecodeEnvelope, type index$3_METAEncodeEnvelope as METAEncodeEnvelope, type index$3_SerializedMeta as SerializedMeta, type index$3_SerializedWAL as SerializedWAL, type index$3_WALDecodeEnvelope as WALDecodeEnvelope, type index$3_WALEncodeEnvelope as WALEncodeEnvelope, gateway as cloud, index$3_dbMetaEvent2Serialized as dbMetaEvent2Serialized, index$3_decode2DbMetaEvents as decode2DbMetaEvents, index$4 as file, index$3_fpDeserialize as fpDeserialize, index$3_fpSerialize as fpSerialize, gateway$1 as memory };
2359
+ }
2360
+
2361
+ type V1SerializedMetaKey = SerializedMeta & {
2362
+ readonly key?: string | string[];
2363
+ readonly keys?: string[];
2364
+ };
2365
+ interface V2SerializedMetaKey {
2366
+ readonly metas: SerializedMeta[];
2367
+ readonly keys: string[];
2368
+ }
2369
+ declare function V2SerializedMetaKeyExtractKey(ctx: SerdeGatewayCtx, v2: V2SerializedMetaKey): Promise<Result<SerializedMeta[]>>;
2370
+ declare function decodeAsToSerializedMeta(ctx: SerdeGatewayCtx, raw: Uint8Array): Promise<Result<V2SerializedMetaKey>>;
2371
+ declare function addKeyToDbMetaDecoder(ctx: SerdeGatewayCtx & {
2372
+ readonly lastDecodedMetas?: V2SerializedMetaKey[];
2373
+ }): SerdeGatewayCtx & {
2374
+ lastDecodedMetas: V2SerializedMetaKey[];
2375
+ };
2376
+ declare function encodeAsV1SerializedMetaKey(ctx: SerdeGatewayCtx, payload: SerializedMeta[]): Promise<Result<V1SerializedMetaKey[]>>;
2377
+ declare function encodeAsV2SerializedMetaKey(ctx: SerdeGatewayCtx, payload: SerializedMeta[]): Promise<Result<V2SerializedMetaKey>>;
2378
+ declare function addKeyToDbMetaEncoder(ctx: SerdeGatewayCtx, version: "v1" | "v2"): SerdeGatewayCtx;
2379
+ declare class AddKeyToDbMetaGateway implements SerdeGateway {
2380
+ private readonly sdGw;
2381
+ readonly version: "v1" | "v2";
2382
+ constructor(gw: Gateway, version: "v1" | "v2");
2383
+ buildUrl(ctx: SerdeGatewayCtx, baseUrl: URI, key: string): Promise<Result<URI>>;
2384
+ start(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<URI>>;
2385
+ close(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<void, Error>>;
2386
+ put<T>(ctx: SerdeGatewayCtx, url: URI, body: FPEnvelope<T>): Promise<Result<void, Error>>;
2387
+ get<S>(ctx: SerdeGatewayCtx, url: URI): Promise<Result<FPEnvelope<S>, Error | NotFoundError>>;
2388
+ readonly lastDecodedMetas: V2SerializedMetaKey[];
2389
+ delete(ctx: SerdeGatewayCtx, url: URI, loader?: Loadable): Promise<Result<void, Error>>;
2390
+ subscribe(ctx: SerdeGatewayCtx, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>): Promise<Result<() => void, Error>>;
2391
+ getPlain(ctx: SerdeGatewayCtx, url: URI, key: string): Promise<Result<Uint8Array>>;
2392
+ destroy(ctx: SerdeGatewayCtx, baseUrl: URI): Promise<Result<void, Error>>;
2393
+ }
2394
+
2395
+ declare const FILESTORE_VERSION = "v0.19-file";
2396
+
2397
+ declare const INDEXEDDB_VERSION = "v0.19-indexeddb";
2398
+
2399
+ type index$2_AddKeyToDbMetaGateway = AddKeyToDbMetaGateway;
2400
+ declare const index$2_AddKeyToDbMetaGateway: typeof AddKeyToDbMetaGateway;
2401
+ declare const index$2_FILESTORE_VERSION: typeof FILESTORE_VERSION;
2402
+ declare const index$2_INDEXEDDB_VERSION: typeof INDEXEDDB_VERSION;
2403
+ type index$2_KeyBackProviderFactory = KeyBackProviderFactory;
2404
+ type index$2_KeyBag = KeyBag;
2405
+ declare const index$2_KeyBag: typeof KeyBag;
2406
+ type index$2_KeyBagFile = KeyBagFile;
2407
+ type index$2_KeyBagOpts = KeyBagOpts;
2408
+ type index$2_KeyBagProvider = KeyBagProvider;
2409
+ type index$2_KeyBagProviderFactoryItem = KeyBagProviderFactoryItem;
2410
+ type index$2_KeyBagRuntime = KeyBagRuntime;
2411
+ type index$2_KeysItem = KeysItem;
2412
+ type index$2_V1StorageKeyItem = V1StorageKeyItem;
2413
+ type index$2_V2SerializedMetaKey = V2SerializedMetaKey;
2414
+ declare const index$2_V2SerializedMetaKeyExtractKey: typeof V2SerializedMetaKeyExtractKey;
2415
+ type index$2_V2StorageKeyItem = V2StorageKeyItem;
2416
+ declare const index$2_addKeyToDbMetaDecoder: typeof addKeyToDbMetaDecoder;
2417
+ declare const index$2_addKeyToDbMetaEncoder: typeof addKeyToDbMetaEncoder;
2418
+ declare const index$2_decodeAsToSerializedMeta: typeof decodeAsToSerializedMeta;
2419
+ declare const index$2_defaultKeyBagOpts: typeof defaultKeyBagOpts;
2420
+ declare const index$2_defaultKeyBagUrl: typeof defaultKeyBagUrl;
2421
+ declare const index$2_encodeAsV1SerializedMetaKey: typeof encodeAsV1SerializedMetaKey;
2422
+ declare const index$2_encodeAsV2SerializedMetaKey: typeof encodeAsV2SerializedMetaKey;
2423
+ declare const index$2_files: typeof files;
2424
+ declare const index$2_getFileName: typeof getFileName;
2425
+ declare const index$2_getKeyBag: typeof getKeyBag;
2426
+ declare const index$2_getPath: typeof getPath;
2427
+ type index$2_keysByFingerprint = keysByFingerprint;
2428
+ declare const index$2_keysByFingerprint: typeof keysByFingerprint;
2429
+ declare const index$2_registerKeyBagProviderFactory: typeof registerKeyBagProviderFactory;
2430
+ declare const index$2_runtimeFn: typeof runtimeFn;
2431
+ declare const index$2_toKeyWithFingerPrint: typeof toKeyWithFingerPrint;
2432
+ declare namespace index$2 {
2433
+ export { index$2_AddKeyToDbMetaGateway as AddKeyToDbMetaGateway, index$2_FILESTORE_VERSION as FILESTORE_VERSION, index$2_INDEXEDDB_VERSION as INDEXEDDB_VERSION, type index$2_KeyBackProviderFactory as KeyBackProviderFactory, index$2_KeyBag as KeyBag, type index$2_KeyBagFile as KeyBagFile, type index$2_KeyBagOpts as KeyBagOpts, type index$2_KeyBagProvider as KeyBagProvider, type index$2_KeyBagProviderFactoryItem as KeyBagProviderFactoryItem, type index$2_KeyBagRuntime as KeyBagRuntime, type index$2_KeysItem as KeysItem, type index$2_V1StorageKeyItem as V1StorageKeyItem, type index$2_V2SerializedMetaKey as V2SerializedMetaKey, index$2_V2SerializedMetaKeyExtractKey as V2SerializedMetaKeyExtractKey, type index$2_V2StorageKeyItem as V2StorageKeyItem, index$2_addKeyToDbMetaDecoder as addKeyToDbMetaDecoder, index$2_addKeyToDbMetaEncoder as addKeyToDbMetaEncoder, index$2_decodeAsToSerializedMeta as decodeAsToSerializedMeta, index$2_defaultKeyBagOpts as defaultKeyBagOpts, index$2_defaultKeyBagUrl as defaultKeyBagUrl, index$2_encodeAsV1SerializedMetaKey as encodeAsV1SerializedMetaKey, index$2_encodeAsV2SerializedMetaKey as encodeAsV2SerializedMetaKey, index$2_files as files, index$2_getFileName as getFileName, index$2_getKeyBag as getKeyBag, index$2_getPath as getPath, index$3 as gw, keyBag as kb, keyedCrypto as kc, index$2_keysByFingerprint as keysByFingerprint, index$6 as mf, index$2_registerKeyBagProviderFactory as registerKeyBagProviderFactory, index$2_runtimeFn as runtimeFn, index$5 as sts, index$2_toKeyWithFingerPrint as toKeyWithFingerPrint };
2434
+ }
2435
+
2436
+ declare class MsgRawConnectionBase {
2437
+ readonly sthis: SuperThis;
2438
+ readonly exchangedGestalt: ExchangedGestalt;
2439
+ constructor(sthis: SuperThis, exGestalt: ExchangedGestalt);
2440
+ readonly onErrorFns: Map<string, OnErrorFn>;
2441
+ onError(fn: OnErrorFn): UnReg;
2442
+ buildErrorMsg(msgCtx: {
2443
+ readonly logger: Logger;
2444
+ readonly sthis: SuperThis;
2445
+ }, msg: Partial<MsgBase>, err: Error): ErrorMsg;
2446
+ }
2447
+
2448
+ declare function ensurePath(uri: URI, fp: string): string;
2449
+ declare class HttpConnection extends MsgRawConnectionBase implements MsgRawConnection {
2450
+ #private;
2451
+ readonly logger: Logger;
2452
+ readonly msgP: MsgerParamsWithEnDe;
2453
+ readonly baseURIs: {
2454
+ in: URI;
2455
+ cleaned: URI;
2456
+ }[];
2457
+ constructor(sthis: SuperThis, uris: URI[], msgP: MsgerParamsWithEnDe, exGestalt: ExchangedGestalt);
2458
+ send<S extends MsgBase, Q extends MsgBase>(_msg: Q): Promise<MsgWithError<S>>;
2459
+ start(): Promise<Result<void>>;
2460
+ close(): Promise<Result<void>>;
2461
+ toMsg<S extends MsgBase>(msg: MsgWithError<S>): MsgWithError<S>;
2462
+ onMsg(fn: OnMsgFn): UnReg;
2463
+ readonly activeBinds: Map<string, ActiveStream<MsgBase, MsgBase>>;
2464
+ bind<Q extends MsgBase, S extends MsgBase>(req: Q, opts: RequestOpts): ReadableStream<MsgWithError<S>>;
2465
+ request<Q extends MsgBase, S extends MsgBase>(req: Q, _opts: RequestOpts): Promise<MsgWithError<S>>;
2466
+ }
2467
+
2468
+ interface ReqPutMeta extends MsgWithTenantLedger<MsgWithConnAuth> {
2469
+ readonly type: "reqPutMeta";
2470
+ readonly methodParams: MethodSignedUrlParam;
2471
+ readonly params: SignedUrlParam;
2472
+ readonly meta: V2SerializedMetaKey;
2473
+ }
2474
+ interface ResPutMeta extends MsgWithTenantLedger<MsgWithConnAuth>, ResSignedUrl {
2475
+ readonly type: "resPutMeta";
2476
+ readonly meta: V2SerializedMetaKey;
2477
+ }
2478
+ declare function buildReqPutMeta(sthis: NextId, auth: AuthType, signedUrlParams: SignedUrlParam, meta: V2SerializedMetaKey, gwCtx: GwCtx): ReqPutMeta;
2479
+ declare function MsgIsReqPutMeta(msg: MsgBase): msg is ReqPutMeta;
2480
+ declare function buildResPutMeta(_msgCtx: MsgTypesCtx, req: MsgWithTenantLedger<MsgWithConnAuth<ReqPutMeta>>, meta: V2SerializedMetaKey, signedUrl: string): ResPutMeta;
2481
+ declare function MsgIsResPutMeta(qs: MsgBase): qs is ResPutMeta;
2482
+ interface BindGetMeta extends MsgWithTenantLedger<MsgWithConnAuth> {
2483
+ readonly type: "bindGetMeta";
2484
+ readonly params: SignedUrlParam;
2485
+ }
2486
+ declare function MsgIsBindGetMeta(msg: MsgBase): msg is BindGetMeta;
2487
+ interface EventGetMeta extends MsgWithTenantLedger<MsgWithConnAuth>, ResSignedUrl {
2488
+ readonly type: "eventGetMeta";
2489
+ readonly meta: V2SerializedMetaKey;
2490
+ }
2491
+ declare function buildBindGetMeta(sthis: NextId, auth: AuthType, params: SignedUrlParam, gwCtx: GwCtx): BindGetMeta;
2492
+ declare function buildEventGetMeta(_msgCtx: MsgTypesCtx, req: MsgWithTenantLedger<MsgWithConnAuth<BindGetMeta>>, meta: V2SerializedMetaKey, gwCtx: GwCtx, signedUrl: string): EventGetMeta;
2493
+ declare function MsgIsEventGetMeta(qs: MsgBase): qs is EventGetMeta;
2494
+ interface ReqDelMeta extends MsgWithTenantLedger<MsgWithConnAuth> {
2495
+ readonly type: "reqDelMeta";
2496
+ readonly params: SignedUrlParam;
2497
+ readonly meta?: V2SerializedMetaKey;
2498
+ }
2499
+ declare function buildReqDelMeta(sthis: NextId, auth: AuthType, params: SignedUrlParam, gwCtx: GwCtx, meta?: V2SerializedMetaKey): ReqDelMeta;
2500
+ declare function MsgIsReqDelMeta(msg: MsgBase): msg is ReqDelMeta;
2501
+ interface ResDelMeta extends MsgWithTenantLedger<MsgWithConnAuth>, ResOptionalSignedUrl {
2502
+ readonly type: "resDelMeta";
2503
+ }
2504
+ declare function buildResDelMeta(req: MsgWithTenantLedger<MsgWithConnAuth<ReqDelMeta>>, params: SignedUrlParam, signedUrl?: string): ResDelMeta;
2505
+ declare function MsgIsResDelMeta(qs: MsgBase): qs is ResDelMeta;
2506
+
2507
+ interface ReqGetWAL extends ReqSignedUrl {
2508
+ readonly type: "reqGetWAL";
2509
+ }
2510
+ declare function MsgIsReqGetWAL(msg: MsgBase): msg is ReqGetWAL;
2511
+ declare function buildReqGetWAL(sthis: NextId, sup: ReqSignedUrlParam, ctx: GwCtx): ReqGetWAL;
2512
+ interface ResGetWAL extends ResSignedUrl {
2513
+ readonly type: "resGetWAL";
2514
+ }
2515
+ declare function MsgIsResGetWAL(msg: MsgBase): msg is ResGetWAL;
2516
+ declare function buildResGetWAL(msgCtx: MsgTypesCtx, req: MsgWithTenantLedger<MsgWithConnAuth<ReqGetWAL>>, ctx: CalculatePreSignedUrl): Promise<MsgWithError<ResGetWAL>>;
2517
+ interface ReqPutWAL extends Omit<ReqSignedUrl, "type"> {
2518
+ readonly type: "reqPutWAL";
2519
+ }
2520
+ declare function MsgIsReqPutWAL(msg: MsgBase): msg is ReqPutWAL;
2521
+ declare function buildReqPutWAL(sthis: NextId, sup: ReqSignedUrlParam, ctx: GwCtx): ReqPutWAL;
2522
+ interface ResPutWAL extends Omit<ResSignedUrl, "type"> {
2523
+ readonly type: "resPutWAL";
2524
+ }
2525
+ declare function MsgIsResPutWAL(msg: MsgBase): msg is ResPutWAL;
2526
+ declare function buildResPutWAL(msgCtx: MsgTypesCtx, req: MsgWithTenantLedger<MsgWithConnAuth<ReqPutWAL>>, ctx: CalculatePreSignedUrl): Promise<MsgWithError<ResPutWAL>>;
2527
+ interface ReqDelWAL extends Omit<ReqSignedUrl, "type"> {
2528
+ readonly type: "reqDelWAL";
2529
+ }
2530
+ declare function MsgIsReqDelWAL(msg: MsgBase): msg is ReqDelWAL;
2531
+ declare function buildReqDelWAL(sthis: NextId, sup: ReqSignedUrlParam, ctx: GwCtx): ReqDelWAL;
2532
+ interface ResDelWAL extends Omit<ResSignedUrl, "type"> {
2533
+ readonly type: "resDelWAL";
2534
+ }
2535
+ declare function MsgIsResDelWAL(msg: MsgBase): msg is ResDelWAL;
2536
+ declare function buildResDelWAL(msgCtx: MsgTypesCtx, req: MsgWithTenantLedger<MsgWithConnAuth<ReqDelWAL>>, ctx: CalculatePreSignedUrl): Promise<MsgWithError<ResDelWAL>>;
2537
+
2538
+ interface WSReqOpen {
2539
+ readonly reqOpen: ReqOpen;
2540
+ readonly ws: WebSocket;
2541
+ }
2542
+ declare class WSConnection extends MsgRawConnectionBase implements MsgRawConnection {
2543
+ #private;
2544
+ readonly logger: Logger;
2545
+ readonly msgP: MsgerParamsWithEnDe;
2546
+ readonly ws: WebSocket;
2547
+ readonly waitForTid: Map<string, WaitForTid>;
2548
+ opened: boolean;
2549
+ readonly id: string;
2550
+ constructor(sthis: SuperThis, ws: WebSocket, msgP: MsgerParamsWithEnDe, exGestalt: ExchangedGestalt);
2551
+ start(): Promise<Result<void>>;
2552
+ close(): Promise<Result<void>>;
2553
+ toMsg<S extends MsgBase>(msg: MsgWithError<S>): MsgWithError<S>;
2554
+ send<Q extends MsgBase, S extends MsgBase>(msg: Q): Promise<S>;
2555
+ onMsg<S extends MsgBase>(fn: OnMsgFn<S>): UnReg;
2556
+ onClose(fn: UnReg): UnReg;
2557
+ readonly activeBinds: Map<string, ActiveStream<MsgBase, MsgBase>>;
2558
+ bind<Q extends MsgBase, S extends MsgBase>(req: Q, opts: RequestOpts): ReadableStream<MsgWithError<S>>;
2559
+ request<Q extends MsgBase, S extends MsgBase>(req: Q, opts: RequestOpts): Promise<MsgWithError<S>>;
2560
+ }
2561
+
2562
+ type index$1_ActiveStream<S extends MsgBase, Q extends MsgBase> = ActiveStream<S, Q>;
2563
+ type index$1_AuthFactory = AuthFactory;
2564
+ type index$1_AuthType = AuthType;
2565
+ type index$1_BaseTokenParam = BaseTokenParam;
2566
+ type index$1_BindGetMeta = BindGetMeta;
2567
+ type index$1_CalculatePreSignedUrl = CalculatePreSignedUrl;
2568
+ type index$1_ConnInfo = ConnInfo;
2569
+ type index$1_EnDeCoder = EnDeCoder;
2570
+ type index$1_ErrorMsg = ErrorMsg;
2571
+ type index$1_EventGetMeta = EventGetMeta;
2572
+ type index$1_ExchangedGestalt = ExchangedGestalt;
2573
+ type index$1_FPCloudAuthType = FPCloudAuthType;
2574
+ type index$1_FPCloudClaim = FPCloudClaim;
2575
+ type index$1_FPJWKCloudAuthType = FPJWKCloudAuthType;
2576
+ type index$1_FPStoreTypes = FPStoreTypes;
2577
+ type index$1_Gestalt = Gestalt;
2578
+ type index$1_GestaltParam = GestaltParam;
2579
+ type index$1_GwCtx = GwCtx;
2580
+ type index$1_GwCtxConn = GwCtxConn;
2581
+ type index$1_HttpConnection = HttpConnection;
2582
+ declare const index$1_HttpConnection: typeof HttpConnection;
2583
+ type index$1_HttpMethods = HttpMethods;
2584
+ type index$1_MethodSignedUrlParam = MethodSignedUrlParam;
2585
+ type index$1_MsgBase = MsgBase;
2586
+ type index$1_MsgConnected = MsgConnected;
2587
+ declare const index$1_MsgConnected: typeof MsgConnected;
2588
+ type index$1_MsgConnectedAuth = MsgConnectedAuth;
2589
+ declare const index$1_MsgConnectedAuth: typeof MsgConnectedAuth;
2590
+ declare const index$1_MsgIsBindGetMeta: typeof MsgIsBindGetMeta;
2591
+ declare const index$1_MsgIsConnected: typeof MsgIsConnected;
2592
+ declare const index$1_MsgIsError: typeof MsgIsError;
2593
+ declare const index$1_MsgIsEventGetMeta: typeof MsgIsEventGetMeta;
2594
+ declare const index$1_MsgIsQSError: typeof MsgIsQSError;
2595
+ declare const index$1_MsgIsReqChat: typeof MsgIsReqChat;
2596
+ declare const index$1_MsgIsReqClose: typeof MsgIsReqClose;
2597
+ declare const index$1_MsgIsReqDelData: typeof MsgIsReqDelData;
2598
+ declare const index$1_MsgIsReqDelMeta: typeof MsgIsReqDelMeta;
2599
+ declare const index$1_MsgIsReqDelWAL: typeof MsgIsReqDelWAL;
2600
+ declare const index$1_MsgIsReqGestalt: typeof MsgIsReqGestalt;
2601
+ declare const index$1_MsgIsReqGetData: typeof MsgIsReqGetData;
2602
+ declare const index$1_MsgIsReqGetWAL: typeof MsgIsReqGetWAL;
2603
+ declare const index$1_MsgIsReqOpen: typeof MsgIsReqOpen;
2604
+ declare const index$1_MsgIsReqPutData: typeof MsgIsReqPutData;
2605
+ declare const index$1_MsgIsReqPutMeta: typeof MsgIsReqPutMeta;
2606
+ declare const index$1_MsgIsReqPutWAL: typeof MsgIsReqPutWAL;
2607
+ declare const index$1_MsgIsResChat: typeof MsgIsResChat;
2608
+ declare const index$1_MsgIsResClose: typeof MsgIsResClose;
2609
+ declare const index$1_MsgIsResDelData: typeof MsgIsResDelData;
2610
+ declare const index$1_MsgIsResDelMeta: typeof MsgIsResDelMeta;
2611
+ declare const index$1_MsgIsResDelWAL: typeof MsgIsResDelWAL;
2612
+ declare const index$1_MsgIsResGestalt: typeof MsgIsResGestalt;
2613
+ declare const index$1_MsgIsResGetData: typeof MsgIsResGetData;
2614
+ declare const index$1_MsgIsResGetWAL: typeof MsgIsResGetWAL;
2615
+ declare const index$1_MsgIsResOpen: typeof MsgIsResOpen;
2616
+ declare const index$1_MsgIsResPutData: typeof MsgIsResPutData;
2617
+ declare const index$1_MsgIsResPutMeta: typeof MsgIsResPutMeta;
2618
+ declare const index$1_MsgIsResPutWAL: typeof MsgIsResPutWAL;
2619
+ declare const index$1_MsgIsTenantLedger: typeof MsgIsTenantLedger;
2620
+ declare const index$1_MsgIsTid: typeof MsgIsTid;
2621
+ declare const index$1_MsgIsWithConn: typeof MsgIsWithConn;
2622
+ declare const index$1_MsgIsWithConnAuth: typeof MsgIsWithConnAuth;
2623
+ type index$1_MsgRawConnection<T extends MsgBase = MsgBase> = MsgRawConnection<T>;
2624
+ type index$1_MsgRawConnectionBase = MsgRawConnectionBase;
2625
+ declare const index$1_MsgRawConnectionBase: typeof MsgRawConnectionBase;
2626
+ type index$1_MsgTypesCtx = MsgTypesCtx;
2627
+ type index$1_MsgTypesCtxSync = MsgTypesCtxSync;
2628
+ type index$1_MsgWithConnAuth<T extends MsgBase = MsgBase> = MsgWithConnAuth<T>;
2629
+ type index$1_MsgWithError<T extends MsgBase> = MsgWithError<T>;
2630
+ type index$1_MsgWithTenantLedger<T extends MsgWithConnAuth> = MsgWithTenantLedger<T>;
2631
+ type index$1_Msger = Msger;
2632
+ declare const index$1_Msger: typeof Msger;
2633
+ type index$1_MsgerParams = MsgerParams;
2634
+ type index$1_MsgerParamsWithEnDe = MsgerParamsWithEnDe;
2635
+ type index$1_NextId = NextId;
2636
+ type index$1_OnErrorFn = OnErrorFn;
2637
+ type index$1_OnMsgFn<T extends MsgBase = MsgBase> = OnMsgFn<T>;
2638
+ type index$1_OpenParams = OpenParams;
2639
+ type index$1_PreSignedMsg = PreSignedMsg;
2640
+ type index$1_ProtocolCapabilities = ProtocolCapabilities;
2641
+ type index$1_QSId = QSId;
2642
+ type index$1_ReqChat = ReqChat;
2643
+ type index$1_ReqClose = ReqClose;
2644
+ type index$1_ReqDelData = ReqDelData;
2645
+ type index$1_ReqDelMeta = ReqDelMeta;
2646
+ type index$1_ReqDelWAL = ReqDelWAL;
2647
+ type index$1_ReqGestalt = ReqGestalt;
2648
+ type index$1_ReqGetData = ReqGetData;
2649
+ type index$1_ReqGetWAL = ReqGetWAL;
2650
+ type index$1_ReqOpen = ReqOpen;
2651
+ type index$1_ReqOpenConn = ReqOpenConn;
2652
+ type index$1_ReqOpenConnection = ReqOpenConnection;
2653
+ type index$1_ReqPutData = ReqPutData;
2654
+ type index$1_ReqPutMeta = ReqPutMeta;
2655
+ type index$1_ReqPutWAL = ReqPutWAL;
2656
+ type index$1_ReqRes<Q extends MsgBase, S extends MsgBase> = ReqRes<Q, S>;
2657
+ type index$1_ReqSignedUrl = ReqSignedUrl;
2658
+ type index$1_ReqSignedUrlParam = ReqSignedUrlParam;
2659
+ type index$1_ReqSignedUrlWithoutMethodParams = ReqSignedUrlWithoutMethodParams;
2660
+ type index$1_RequestOpts = RequestOpts;
2661
+ type index$1_ResChat = ResChat;
2662
+ type index$1_ResClose = ResClose;
2663
+ type index$1_ResDelData = ResDelData;
2664
+ type index$1_ResDelMeta = ResDelMeta;
2665
+ type index$1_ResDelWAL = ResDelWAL;
2666
+ type index$1_ResGestalt = ResGestalt;
2667
+ type index$1_ResGetData = ResGetData;
2668
+ type index$1_ResGetWAL = ResGetWAL;
2669
+ type index$1_ResOpen = ResOpen;
2670
+ type index$1_ResOptionalSignedUrl = ResOptionalSignedUrl;
2671
+ type index$1_ResPutData = ResPutData;
2672
+ type index$1_ResPutMeta = ResPutMeta;
2673
+ type index$1_ResPutWAL = ResPutWAL;
2674
+ type index$1_ResSignedUrl = ResSignedUrl;
2675
+ type index$1_SignedUrlParam = SignedUrlParam;
2676
+ type index$1_TenantLedger = TenantLedger;
2677
+ type index$1_TokenForParam = TokenForParam;
2678
+ type index$1_UCanAuth = UCanAuth;
2679
+ type index$1_UnReg = UnReg;
2680
+ type index$1_UpdateReqRes<Q extends MsgBase, S extends MsgBase> = UpdateReqRes<Q, S>;
2681
+ declare const index$1_VERSION: typeof VERSION;
2682
+ type index$1_WSConnection = WSConnection;
2683
+ declare const index$1_WSConnection: typeof WSConnection;
2684
+ type index$1_WSReqOpen = WSReqOpen;
2685
+ type index$1_WaitForTid = WaitForTid;
2686
+ declare const index$1_applyStart: typeof applyStart;
2687
+ declare const index$1_authTypeFromUri: typeof authTypeFromUri;
2688
+ declare const index$1_buildBindGetMeta: typeof buildBindGetMeta;
2689
+ declare const index$1_buildErrorMsg: typeof buildErrorMsg;
2690
+ declare const index$1_buildEventGetMeta: typeof buildEventGetMeta;
2691
+ declare const index$1_buildReqChat: typeof buildReqChat;
2692
+ declare const index$1_buildReqClose: typeof buildReqClose;
2693
+ declare const index$1_buildReqDelData: typeof buildReqDelData;
2694
+ declare const index$1_buildReqDelMeta: typeof buildReqDelMeta;
2695
+ declare const index$1_buildReqDelWAL: typeof buildReqDelWAL;
2696
+ declare const index$1_buildReqGestalt: typeof buildReqGestalt;
2697
+ declare const index$1_buildReqGetData: typeof buildReqGetData;
2698
+ declare const index$1_buildReqGetWAL: typeof buildReqGetWAL;
2699
+ declare const index$1_buildReqOpen: typeof buildReqOpen;
2700
+ declare const index$1_buildReqPutData: typeof buildReqPutData;
2701
+ declare const index$1_buildReqPutMeta: typeof buildReqPutMeta;
2702
+ declare const index$1_buildReqPutWAL: typeof buildReqPutWAL;
2703
+ declare const index$1_buildReqSignedUrl: typeof buildReqSignedUrl;
2704
+ declare const index$1_buildRes: typeof buildRes;
2705
+ declare const index$1_buildResChat: typeof buildResChat;
2706
+ declare const index$1_buildResClose: typeof buildResClose;
2707
+ declare const index$1_buildResDelData: typeof buildResDelData;
2708
+ declare const index$1_buildResDelMeta: typeof buildResDelMeta;
2709
+ declare const index$1_buildResDelWAL: typeof buildResDelWAL;
2710
+ declare const index$1_buildResGestalt: typeof buildResGestalt;
2711
+ declare const index$1_buildResGetData: typeof buildResGetData;
2712
+ declare const index$1_buildResGetWAL: typeof buildResGetWAL;
2713
+ declare const index$1_buildResOpen: typeof buildResOpen;
2714
+ declare const index$1_buildResPutData: typeof buildResPutData;
2715
+ declare const index$1_buildResPutMeta: typeof buildResPutMeta;
2716
+ declare const index$1_buildResPutWAL: typeof buildResPutWAL;
2717
+ declare const index$1_coerceFPStoreTypes: typeof coerceFPStoreTypes;
2718
+ declare const index$1_defaultGestalt: typeof defaultGestalt;
2719
+ declare const index$1_defaultMsgParams: typeof defaultMsgParams;
2720
+ declare const index$1_ensurePath: typeof ensurePath;
2721
+ declare const index$1_isAuthTypeFPCloud: typeof isAuthTypeFPCloud;
2722
+ declare const index$1_isAuthTypeFPCloudJWK: typeof isAuthTypeFPCloudJWK;
2723
+ declare const index$1_isProtocolCapabilities: typeof isProtocolCapabilities;
2724
+ declare const index$1_jsonEnDe: typeof jsonEnDe;
2725
+ declare const index$1_keyTenantLedger: typeof keyTenantLedger;
2726
+ declare const index$1_qsidEqual: typeof qsidEqual;
2727
+ declare const index$1_qsidKey: typeof qsidKey;
2728
+ declare const index$1_resAuth: typeof resAuth;
2729
+ declare const index$1_selectRandom: typeof selectRandom;
2730
+ declare const index$1_timeout: typeof timeout;
2731
+ declare namespace index$1 {
2732
+ export { type index$1_ActiveStream as ActiveStream, type index$1_AuthFactory as AuthFactory, type index$1_AuthType as AuthType, type index$1_BaseTokenParam as BaseTokenParam, type index$1_BindGetMeta as BindGetMeta, type index$1_CalculatePreSignedUrl as CalculatePreSignedUrl, type index$1_ConnInfo as ConnInfo, type index$1_EnDeCoder as EnDeCoder, type index$1_ErrorMsg as ErrorMsg, type index$1_EventGetMeta as EventGetMeta, type index$1_ExchangedGestalt as ExchangedGestalt, type index$1_FPCloudAuthType as FPCloudAuthType, type index$1_FPCloudClaim as FPCloudClaim, type index$1_FPJWKCloudAuthType as FPJWKCloudAuthType, type index$1_FPStoreTypes as FPStoreTypes, type index$1_Gestalt as Gestalt, type index$1_GestaltParam as GestaltParam, type index$1_GwCtx as GwCtx, type index$1_GwCtxConn as GwCtxConn, index$1_HttpConnection as HttpConnection, type index$1_HttpMethods as HttpMethods, type index$1_MethodSignedUrlParam as MethodSignedUrlParam, type index$1_MsgBase as MsgBase, index$1_MsgConnected as MsgConnected, index$1_MsgConnectedAuth as MsgConnectedAuth, index$1_MsgIsBindGetMeta as MsgIsBindGetMeta, index$1_MsgIsConnected as MsgIsConnected, index$1_MsgIsError as MsgIsError, index$1_MsgIsEventGetMeta as MsgIsEventGetMeta, index$1_MsgIsQSError as MsgIsQSError, index$1_MsgIsReqChat as MsgIsReqChat, index$1_MsgIsReqClose as MsgIsReqClose, index$1_MsgIsReqDelData as MsgIsReqDelData, index$1_MsgIsReqDelMeta as MsgIsReqDelMeta, index$1_MsgIsReqDelWAL as MsgIsReqDelWAL, index$1_MsgIsReqGestalt as MsgIsReqGestalt, index$1_MsgIsReqGetData as MsgIsReqGetData, index$1_MsgIsReqGetWAL as MsgIsReqGetWAL, index$1_MsgIsReqOpen as MsgIsReqOpen, index$1_MsgIsReqPutData as MsgIsReqPutData, index$1_MsgIsReqPutMeta as MsgIsReqPutMeta, index$1_MsgIsReqPutWAL as MsgIsReqPutWAL, index$1_MsgIsResChat as MsgIsResChat, index$1_MsgIsResClose as MsgIsResClose, index$1_MsgIsResDelData as MsgIsResDelData, index$1_MsgIsResDelMeta as MsgIsResDelMeta, index$1_MsgIsResDelWAL as MsgIsResDelWAL, index$1_MsgIsResGestalt as MsgIsResGestalt, index$1_MsgIsResGetData as MsgIsResGetData, index$1_MsgIsResGetWAL as MsgIsResGetWAL, index$1_MsgIsResOpen as MsgIsResOpen, index$1_MsgIsResPutData as MsgIsResPutData, index$1_MsgIsResPutMeta as MsgIsResPutMeta, index$1_MsgIsResPutWAL as MsgIsResPutWAL, index$1_MsgIsTenantLedger as MsgIsTenantLedger, index$1_MsgIsTid as MsgIsTid, index$1_MsgIsWithConn as MsgIsWithConn, index$1_MsgIsWithConnAuth as MsgIsWithConnAuth, type index$1_MsgRawConnection as MsgRawConnection, index$1_MsgRawConnectionBase as MsgRawConnectionBase, type index$1_MsgTypesCtx as MsgTypesCtx, type index$1_MsgTypesCtxSync as MsgTypesCtxSync, type index$1_MsgWithConnAuth as MsgWithConnAuth, type index$1_MsgWithError as MsgWithError, type index$1_MsgWithTenantLedger as MsgWithTenantLedger, index$1_Msger as Msger, type index$1_MsgerParams as MsgerParams, type index$1_MsgerParamsWithEnDe as MsgerParamsWithEnDe, type index$1_NextId as NextId, type index$1_OnErrorFn as OnErrorFn, type index$1_OnMsgFn as OnMsgFn, type index$1_OpenParams as OpenParams, type index$1_PreSignedMsg as PreSignedMsg, type index$1_ProtocolCapabilities as ProtocolCapabilities, type index$1_QSId as QSId, type index$1_ReqChat as ReqChat, type index$1_ReqClose as ReqClose, type index$1_ReqDelData as ReqDelData, type index$1_ReqDelMeta as ReqDelMeta, type index$1_ReqDelWAL as ReqDelWAL, type index$1_ReqGestalt as ReqGestalt, type index$1_ReqGetData as ReqGetData, type index$1_ReqGetWAL as ReqGetWAL, type index$1_ReqOpen as ReqOpen, type index$1_ReqOpenConn as ReqOpenConn, type index$1_ReqOpenConnection as ReqOpenConnection, type index$1_ReqPutData as ReqPutData, type index$1_ReqPutMeta as ReqPutMeta, type index$1_ReqPutWAL as ReqPutWAL, type index$1_ReqRes as ReqRes, type index$1_ReqSignedUrl as ReqSignedUrl, type index$1_ReqSignedUrlParam as ReqSignedUrlParam, type index$1_ReqSignedUrlWithoutMethodParams as ReqSignedUrlWithoutMethodParams, type index$1_RequestOpts as RequestOpts, type index$1_ResChat as ResChat, type index$1_ResClose as ResClose, type index$1_ResDelData as ResDelData, type index$1_ResDelMeta as ResDelMeta, type index$1_ResDelWAL as ResDelWAL, type index$1_ResGestalt as ResGestalt, type index$1_ResGetData as ResGetData, type index$1_ResGetWAL as ResGetWAL, type index$1_ResOpen as ResOpen, type index$1_ResOptionalSignedUrl as ResOptionalSignedUrl, type index$1_ResPutData as ResPutData, type index$1_ResPutMeta as ResPutMeta, type index$1_ResPutWAL as ResPutWAL, type index$1_ResSignedUrl as ResSignedUrl, type index$1_SignedUrlParam as SignedUrlParam, type index$1_TenantLedger as TenantLedger, type index$1_TokenForParam as TokenForParam, type index$1_UCanAuth as UCanAuth, type index$1_UnReg as UnReg, type index$1_UpdateReqRes as UpdateReqRes, index$1_VERSION as VERSION, index$1_WSConnection as WSConnection, type index$1_WSReqOpen as WSReqOpen, type index$1_WaitForTid as WaitForTid, index$1_applyStart as applyStart, index$1_authTypeFromUri as authTypeFromUri, index$1_buildBindGetMeta as buildBindGetMeta, index$1_buildErrorMsg as buildErrorMsg, index$1_buildEventGetMeta as buildEventGetMeta, index$1_buildReqChat as buildReqChat, index$1_buildReqClose as buildReqClose, index$1_buildReqDelData as buildReqDelData, index$1_buildReqDelMeta as buildReqDelMeta, index$1_buildReqDelWAL as buildReqDelWAL, index$1_buildReqGestalt as buildReqGestalt, index$1_buildReqGetData as buildReqGetData, index$1_buildReqGetWAL as buildReqGetWAL, index$1_buildReqOpen as buildReqOpen, index$1_buildReqPutData as buildReqPutData, index$1_buildReqPutMeta as buildReqPutMeta, index$1_buildReqPutWAL as buildReqPutWAL, index$1_buildReqSignedUrl as buildReqSignedUrl, index$1_buildRes as buildRes, index$1_buildResChat as buildResChat, index$1_buildResClose as buildResClose, index$1_buildResDelData as buildResDelData, index$1_buildResDelMeta as buildResDelMeta, index$1_buildResDelWAL as buildResDelWAL, index$1_buildResGestalt as buildResGestalt, index$1_buildResGetData as buildResGetData, index$1_buildResGetWAL as buildResGetWAL, index$1_buildResOpen as buildResOpen, index$1_buildResPutData as buildResPutData, index$1_buildResPutMeta as buildResPutMeta, index$1_buildResPutWAL as buildResPutWAL, index$1_coerceFPStoreTypes as coerceFPStoreTypes, index$1_defaultGestalt as defaultGestalt, index$1_defaultMsgParams as defaultMsgParams, index$1_ensurePath as ensurePath, index$1_isAuthTypeFPCloud as isAuthTypeFPCloud, index$1_isAuthTypeFPCloudJWK as isAuthTypeFPCloudJWK, index$1_isProtocolCapabilities as isProtocolCapabilities, index$1_jsonEnDe as jsonEnDe, index$1_keyTenantLedger as keyTenantLedger, index$1_qsidEqual as qsidEqual, index$1_qsidKey as qsidKey, index$1_resAuth as resAuth, index$1_selectRandom as selectRandom, index$1_timeout as timeout };
2733
+ }
2734
+
2735
+ declare namespace index {
2736
+ export { index$1 as cloud };
2737
+ }
2738
+
2739
+ declare const PACKAGE_VERSION: string;
2740
+
2741
+ export { type AllDocsQueryOpts, type AllDocsResponse, type Attachable, type Attached, type BaseBlockstore, type BulkResponse, type CRDT, type CRDTClock, type CRDTEntry, CRDTImpl, type CRDTMeta, type CarTransaction, type ChangesOptions, type ChangesResponse, type ChangesResponseRow, type ClockHead, type ClockLink, type CoerceURIandInterceptor, type ConfigOpts, DataAndMetaAndWalAndBaseStore, type Database, DatabaseImpl, type DbMeta, type DocBase, type DocFileMeta, type DocFiles, type DocFragment, type DocLiteral, type DocObject, type DocRecord, type DocResponse, type DocSet, type DocTypes, type DocUpdate, type DocValue, type DocWithId, type FPStats, type Falsy, type FileTransactionMeta, type GatewayUrls, type GatewayUrlsParam, type HasCRDT, type HasLogger, type HasSuperThis, type IdxMeta, type IdxMetaMap, Index, type IndexKey, type IndexKeyType, type IndexRow, type IndexRows, type IndexTransactionMeta, type IndexUpdate, type IndexUpdateString, type Joiner, type KeyLiteral, type Ledger, LedgerFactory, type LedgerOpts, LedgerShell, type ListenerFn, type MapFn, type MetaType, type NoUpdateListenerFn, NotFoundError, PACKAGE_VERSION, PARAM, type PARAMS, type PathOps, type PromiseToUInt8, type QueryOpts, type ReadyCloseDestroy, type RefLedger, type Store, type StoreType, type SuperThis, type SuperThisOpts, type SysFileSystem, type TextEndeCoder, type ToUInt8, UInt8ArrayEqual, type UnReg$1 as UnReg, type UnknownDoc, type Unreg, type UpdateListenerFn, type VoidFn, type WriteQueue, index$8 as blockstore, index$8 as bs, coerceIntoUint8, coercePromiseIntoUint8, defaultWriteQueueOpts, ensureLogger, ensureSuperLog, ensureSuperThis, ensureURIDefaults, exceptionWrapper, falsyToUndef, fireproof, getKey, getName, getStore, index$7 as index, inplaceFilter, isDatabase, isFalsy, isLedger, isNotFoundError, keyConfigOpts, makeName, onSuperThis, index as protocols, index as ps, index$2 as rt, index$2 as runtime, setPresetEnv, storeType2DataMetaWal, throwFalsy, toSortedArray, toStoreURIRuntime };
2742
+ declare module '@fireproof/core'