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

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 (404) hide show
  1. package/apply-head-queue.d.ts +18 -0
  2. package/apply-head-queue.d.ts.map +1 -0
  3. package/apply-head-queue.js +47 -0
  4. package/apply-head-queue.js.map +1 -0
  5. package/blockstore/attachable-store.d.ts +17 -0
  6. package/blockstore/attachable-store.d.ts.map +1 -0
  7. package/blockstore/attachable-store.js +295 -0
  8. package/blockstore/attachable-store.js.map +1 -0
  9. package/blockstore/commit-queue.d.ts +12 -0
  10. package/blockstore/commit-queue.d.ts.map +1 -0
  11. package/blockstore/commit-queue.js +52 -0
  12. package/blockstore/commit-queue.js.map +1 -0
  13. package/blockstore/commitor.d.ts +21 -0
  14. package/blockstore/commitor.d.ts.map +1 -0
  15. package/blockstore/commitor.js +104 -0
  16. package/blockstore/commitor.js.map +1 -0
  17. package/blockstore/connect-raw.d.ts +2 -0
  18. package/blockstore/connect-raw.d.ts.map +1 -0
  19. package/blockstore/connect-raw.js +2 -0
  20. package/blockstore/connect-raw.js.map +1 -0
  21. package/blockstore/connection-base.d.ts +2 -0
  22. package/blockstore/connection-base.d.ts.map +1 -0
  23. package/blockstore/connection-base.js +2 -0
  24. package/blockstore/connection-base.js.map +1 -0
  25. package/blockstore/encrypt-helpers.d.ts +2 -0
  26. package/blockstore/encrypt-helpers.d.ts.map +1 -0
  27. package/blockstore/encrypt-helpers.js +2 -0
  28. package/blockstore/encrypt-helpers.js.map +1 -0
  29. package/blockstore/fp-envelope.d.ts +32 -0
  30. package/blockstore/fp-envelope.d.ts.map +1 -0
  31. package/blockstore/fp-envelope.js +14 -0
  32. package/blockstore/fp-envelope.js.map +1 -0
  33. package/blockstore/gateway.d.ts +20 -0
  34. package/blockstore/gateway.d.ts.map +1 -0
  35. package/blockstore/gateway.js +2 -0
  36. package/blockstore/gateway.js.map +1 -0
  37. package/blockstore/index.d.ts +16 -0
  38. package/blockstore/index.d.ts.map +1 -0
  39. package/blockstore/index.js +16 -0
  40. package/blockstore/index.js.map +1 -0
  41. package/blockstore/interceptor-gateway.d.ts +29 -0
  42. package/blockstore/interceptor-gateway.d.ts.map +1 -0
  43. package/blockstore/interceptor-gateway.js +137 -0
  44. package/blockstore/interceptor-gateway.js.map +1 -0
  45. package/blockstore/loader-helpers.d.ts +4 -0
  46. package/blockstore/loader-helpers.d.ts.map +1 -0
  47. package/blockstore/loader-helpers.js +16 -0
  48. package/blockstore/loader-helpers.js.map +1 -0
  49. package/blockstore/loader.d.ts +45 -0
  50. package/blockstore/loader.d.ts.map +1 -0
  51. package/blockstore/loader.js +352 -0
  52. package/blockstore/loader.js.map +1 -0
  53. package/blockstore/register-store-protocol.d.ts +22 -0
  54. package/blockstore/register-store-protocol.d.ts.map +1 -0
  55. package/blockstore/register-store-protocol.js +114 -0
  56. package/blockstore/register-store-protocol.js.map +1 -0
  57. package/blockstore/serde-gateway.d.ts +78 -0
  58. package/blockstore/serde-gateway.d.ts.map +1 -0
  59. package/blockstore/serde-gateway.js +2 -0
  60. package/blockstore/serde-gateway.js.map +1 -0
  61. package/blockstore/store-factory.d.ts +11 -0
  62. package/blockstore/store-factory.d.ts.map +1 -0
  63. package/blockstore/store-factory.js +105 -0
  64. package/blockstore/store-factory.js.map +1 -0
  65. package/blockstore/store-remote.d.ts +2 -0
  66. package/blockstore/store-remote.d.ts.map +1 -0
  67. package/blockstore/store-remote.js +2 -0
  68. package/blockstore/store-remote.js.map +1 -0
  69. package/blockstore/store.d.ts +82 -0
  70. package/blockstore/store.d.ts.map +1 -0
  71. package/blockstore/store.js +438 -0
  72. package/blockstore/store.js.map +1 -0
  73. package/blockstore/task-manager.d.ts +19 -0
  74. package/blockstore/task-manager.d.ts.map +1 -0
  75. package/blockstore/task-manager.js +50 -0
  76. package/blockstore/task-manager.js.map +1 -0
  77. package/blockstore/transaction.d.ts +64 -0
  78. package/blockstore/transaction.d.ts.map +1 -0
  79. package/blockstore/transaction.js +249 -0
  80. package/blockstore/transaction.js.map +1 -0
  81. package/blockstore/types.d.ts +400 -0
  82. package/blockstore/types.d.ts.map +1 -0
  83. package/blockstore/types.js +55 -0
  84. package/blockstore/types.js.map +1 -0
  85. package/blockstore/uri-interceptor.d.ts +19 -0
  86. package/blockstore/uri-interceptor.d.ts.map +1 -0
  87. package/blockstore/uri-interceptor.js +61 -0
  88. package/blockstore/uri-interceptor.js.map +1 -0
  89. package/bundle-not-impl.d.ts +2 -0
  90. package/bundle-not-impl.d.ts.map +1 -0
  91. package/bundle-not-impl.js +4 -0
  92. package/bundle-not-impl.js.map +1 -0
  93. package/cli/main.js +26114 -0
  94. package/context.d.ts +7 -0
  95. package/context.d.ts.map +1 -0
  96. package/context.js +15 -0
  97. package/context.js.map +1 -0
  98. package/crdt-clock.d.ts +27 -0
  99. package/crdt-clock.d.ts.map +1 -0
  100. package/crdt-clock.js +140 -0
  101. package/crdt-clock.js.map +1 -0
  102. package/crdt-helpers.d.ts +16 -0
  103. package/crdt-helpers.d.ts.map +1 -0
  104. package/crdt-helpers.js +316 -0
  105. package/crdt-helpers.js.map +1 -0
  106. package/crdt.d.ts +34 -0
  107. package/crdt.d.ts.map +1 -0
  108. package/crdt.js +131 -0
  109. package/crdt.js.map +1 -0
  110. package/database.d.ts +34 -0
  111. package/database.d.ts.map +1 -0
  112. package/database.js +121 -0
  113. package/database.js.map +1 -0
  114. package/index.d.ts +15 -2742
  115. package/index.d.ts.map +1 -0
  116. package/index.js +14 -7267
  117. package/index.js.map +1 -1
  118. package/indexer-helpers.d.ts +69 -0
  119. package/indexer-helpers.d.ts.map +1 -0
  120. package/indexer-helpers.js +135 -0
  121. package/indexer-helpers.js.map +1 -0
  122. package/indexer.d.ts +25 -0
  123. package/indexer.d.ts.map +1 -0
  124. package/indexer.js +231 -0
  125. package/indexer.js.map +1 -0
  126. package/ledger.d.ts +56 -0
  127. package/ledger.d.ts.map +1 -0
  128. package/ledger.js +224 -0
  129. package/ledger.js.map +1 -0
  130. package/package.json +18 -15
  131. package/protocols/cloud/http-connection.d.ts +25 -0
  132. package/protocols/cloud/http-connection.d.ts.map +1 -0
  133. package/protocols/cloud/http-connection.js +153 -0
  134. package/protocols/cloud/http-connection.js.map +1 -0
  135. package/protocols/cloud/index.d.ts +10 -0
  136. package/protocols/cloud/index.d.ts.map +1 -0
  137. package/protocols/cloud/index.js +10 -0
  138. package/protocols/cloud/index.js.map +1 -0
  139. package/protocols/cloud/msg-raw-connection-base.d.ts +16 -0
  140. package/protocols/cloud/msg-raw-connection-base.d.ts.map +1 -0
  141. package/protocols/cloud/msg-raw-connection-base.js +22 -0
  142. package/protocols/cloud/msg-raw-connection-base.js.map +1 -0
  143. package/protocols/cloud/msg-types-data.d.ts +36 -0
  144. package/protocols/cloud/msg-types-data.d.ts.map +1 -0
  145. package/protocols/cloud/msg-types-data.js +38 -0
  146. package/protocols/cloud/msg-types-data.js.map +1 -0
  147. package/protocols/cloud/msg-types-meta.d.ts +41 -0
  148. package/protocols/cloud/msg-types-meta.d.ts.map +1 -0
  149. package/protocols/cloud/msg-types-meta.js +98 -0
  150. package/protocols/cloud/msg-types-meta.js.map +1 -0
  151. package/protocols/cloud/msg-types-wal.d.ts +33 -0
  152. package/protocols/cloud/msg-types-wal.d.ts.map +1 -0
  153. package/protocols/cloud/msg-types-wal.js +38 -0
  154. package/protocols/cloud/msg-types-wal.js.map +1 -0
  155. package/protocols/cloud/msg-types.d.ts +279 -0
  156. package/protocols/cloud/msg-types.d.ts.map +1 -0
  157. package/protocols/cloud/msg-types.js +278 -0
  158. package/protocols/cloud/msg-types.js.map +1 -0
  159. package/protocols/cloud/msger.d.ts +79 -0
  160. package/protocols/cloud/msger.d.ts.map +1 -0
  161. package/protocols/cloud/msger.js +198 -0
  162. package/protocols/cloud/msger.js.map +1 -0
  163. package/protocols/cloud/ws-connection.d.ts +29 -0
  164. package/protocols/cloud/ws-connection.d.ts.map +1 -0
  165. package/protocols/cloud/ws-connection.js +163 -0
  166. package/protocols/cloud/ws-connection.js.map +1 -0
  167. package/protocols/index.d.ts +2 -0
  168. package/protocols/index.d.ts.map +1 -0
  169. package/protocols/index.js +2 -0
  170. package/protocols/index.js.map +1 -0
  171. package/react/{index.d.cts → img-file.d.ts} +6 -53
  172. package/react/img-file.d.ts.map +1 -0
  173. package/react/img-file.js +58 -0
  174. package/react/img-file.js.map +1 -0
  175. package/react/index.d.ts +4 -336
  176. package/react/index.d.ts.map +1 -0
  177. package/react/index.js +3 -263
  178. package/react/index.js.map +1 -1
  179. package/react/types.d.ts +43 -0
  180. package/react/types.d.ts.map +1 -0
  181. package/react/types.js +2 -0
  182. package/react/types.js.map +1 -0
  183. package/react/use-all-docs.d.ts +4 -0
  184. package/react/use-all-docs.d.ts.map +1 -0
  185. package/react/use-all-docs.js +19 -0
  186. package/react/use-all-docs.js.map +1 -0
  187. package/react/use-changes.d.ts +4 -0
  188. package/react/use-changes.d.ts.map +1 -0
  189. package/react/use-changes.js +19 -0
  190. package/react/use-changes.js.map +1 -0
  191. package/react/use-document.d.ts +4 -0
  192. package/react/use-document.d.ts.map +1 -0
  193. package/react/use-document.js +99 -0
  194. package/react/use-document.js.map +1 -0
  195. package/react/use-fireproof.d.ts +6 -0
  196. package/react/use-fireproof.d.ts.map +1 -0
  197. package/react/use-fireproof.js +15 -0
  198. package/react/use-fireproof.js.map +1 -0
  199. package/react/use-live-query.d.ts +4 -0
  200. package/react/use-live-query.d.ts.map +1 -0
  201. package/react/use-live-query.js +38 -0
  202. package/react/use-live-query.js.map +1 -0
  203. package/react/utils.d.ts +2 -0
  204. package/react/utils.d.ts.map +1 -0
  205. package/react/utils.js +4 -0
  206. package/react/utils.js.map +1 -0
  207. package/runtime/files.d.ts +12 -0
  208. package/runtime/files.d.ts.map +1 -0
  209. package/runtime/files.js +29 -0
  210. package/runtime/files.js.map +1 -0
  211. package/runtime/gateways/cloud/gateway.d.ts +44 -0
  212. package/runtime/gateways/cloud/gateway.d.ts.map +1 -0
  213. package/runtime/gateways/cloud/gateway.js +496 -0
  214. package/runtime/gateways/cloud/gateway.js.map +1 -0
  215. package/runtime/gateways/def-serde-gateway.d.ts +19 -0
  216. package/runtime/gateways/def-serde-gateway.d.ts.map +1 -0
  217. package/runtime/gateways/def-serde-gateway.js +73 -0
  218. package/runtime/gateways/def-serde-gateway.js.map +1 -0
  219. package/runtime/gateways/file/deno/deno-filesystem.d.ts +27 -0
  220. package/runtime/gateways/file/deno/deno-filesystem.d.ts.map +1 -0
  221. package/runtime/gateways/file/deno/deno-filesystem.js +51 -0
  222. package/runtime/gateways/file/deno/deno-filesystem.js.map +1 -0
  223. package/runtime/gateways/file/deno/get-sys-file-system.d.ts +4 -0
  224. package/runtime/gateways/file/deno/get-sys-file-system.d.ts.map +1 -0
  225. package/runtime/gateways/file/deno/get-sys-file-system.js +11 -0
  226. package/runtime/gateways/file/deno/get-sys-file-system.js.map +1 -0
  227. package/runtime/gateways/file/deno/index.d.ts +2 -0
  228. package/runtime/gateways/file/deno/index.d.ts.map +1 -0
  229. package/runtime/gateways/file/deno/index.js +2 -0
  230. package/runtime/gateways/file/deno/index.js.map +1 -0
  231. package/runtime/gateways/file/gateway-impl.d.ts +18 -0
  232. package/runtime/gateways/file/gateway-impl.d.ts.map +1 -0
  233. package/runtime/gateways/file/gateway-impl.js +121 -0
  234. package/runtime/gateways/file/gateway-impl.js.map +1 -0
  235. package/runtime/gateways/file/index.d.ts +3 -0
  236. package/runtime/gateways/file/index.d.ts.map +1 -0
  237. package/runtime/gateways/file/index.js +3 -0
  238. package/runtime/gateways/file/index.js.map +1 -0
  239. package/runtime/gateways/file/key-bag-file.d.ts +19 -0
  240. package/runtime/gateways/file/key-bag-file.d.ts.map +1 -0
  241. package/runtime/gateways/file/key-bag-file.js +40 -0
  242. package/runtime/gateways/file/key-bag-file.js.map +1 -0
  243. package/runtime/gateways/file/node/get-sys-file-system.d.ts +4 -0
  244. package/runtime/gateways/file/node/get-sys-file-system.d.ts.map +1 -0
  245. package/runtime/gateways/file/node/get-sys-file-system.js +11 -0
  246. package/runtime/gateways/file/node/get-sys-file-system.js.map +1 -0
  247. package/runtime/gateways/file/node/index.d.ts +2 -0
  248. package/runtime/gateways/file/node/index.d.ts.map +1 -0
  249. package/runtime/gateways/file/node/index.js +2 -0
  250. package/runtime/gateways/file/node/index.js.map +1 -0
  251. package/runtime/gateways/file/node/node-filesystem.d.ts +32 -0
  252. package/runtime/gateways/file/node/node-filesystem.d.ts.map +1 -0
  253. package/runtime/gateways/file/node/node-filesystem.js +37 -0
  254. package/runtime/gateways/file/node/node-filesystem.js.map +1 -0
  255. package/runtime/gateways/file/node/to-array-buffer.d.ts +2 -0
  256. package/runtime/gateways/file/node/to-array-buffer.d.ts.map +1 -0
  257. package/runtime/gateways/file/node/to-array-buffer.js +12 -0
  258. package/runtime/gateways/file/node/to-array-buffer.js.map +1 -0
  259. package/runtime/gateways/file/sys-file-system-factory.d.ts +4 -0
  260. package/runtime/gateways/file/sys-file-system-factory.d.ts.map +1 -0
  261. package/runtime/gateways/file/sys-file-system-factory.js +13 -0
  262. package/runtime/gateways/file/sys-file-system-factory.js.map +1 -0
  263. package/runtime/gateways/file/utils.d.ts +5 -0
  264. package/runtime/gateways/file/utils.d.ts.map +1 -0
  265. package/runtime/gateways/file/utils.js +27 -0
  266. package/runtime/gateways/file/utils.js.map +1 -0
  267. package/runtime/gateways/file/version.d.ts +2 -0
  268. package/runtime/gateways/file/version.d.ts.map +1 -0
  269. package/runtime/gateways/file/version.js +2 -0
  270. package/runtime/gateways/file/version.js.map +1 -0
  271. package/runtime/gateways/fp-envelope-serialize.d.ts +50 -0
  272. package/runtime/gateways/fp-envelope-serialize.d.ts.map +1 -0
  273. package/runtime/gateways/fp-envelope-serialize.js +141 -0
  274. package/runtime/gateways/fp-envelope-serialize.js.map +1 -0
  275. package/runtime/gateways/index.d.ts +6 -0
  276. package/runtime/gateways/index.d.ts.map +1 -0
  277. package/runtime/gateways/index.js +6 -0
  278. package/runtime/gateways/index.js.map +1 -0
  279. package/runtime/gateways/indexeddb/gateway-impl.d.ts +22 -0
  280. package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +1 -0
  281. package/runtime/gateways/indexeddb/gateway-impl.js +147 -0
  282. package/runtime/gateways/indexeddb/gateway-impl.js.map +1 -0
  283. package/runtime/gateways/indexeddb/index.d.ts +6 -0
  284. package/runtime/gateways/indexeddb/index.d.ts.map +1 -0
  285. package/runtime/gateways/indexeddb/index.js +6 -0
  286. package/runtime/gateways/indexeddb/index.js.map +1 -0
  287. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +15 -0
  288. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +1 -0
  289. package/runtime/gateways/indexeddb/key-bag-indexeddb.js +42 -0
  290. package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +1 -0
  291. package/runtime/gateways/indexeddb-version.d.ts +2 -0
  292. package/runtime/gateways/indexeddb-version.d.ts.map +1 -0
  293. package/runtime/gateways/indexeddb-version.js +2 -0
  294. package/runtime/gateways/indexeddb-version.js.map +1 -0
  295. package/runtime/gateways/memory/gateway.d.ts +18 -0
  296. package/runtime/gateways/memory/gateway.d.ts.map +1 -0
  297. package/runtime/gateways/memory/gateway.js +58 -0
  298. package/runtime/gateways/memory/gateway.js.map +1 -0
  299. package/runtime/gateways/memory/version.d.ts +2 -0
  300. package/runtime/gateways/memory/version.d.ts.map +1 -0
  301. package/runtime/gateways/memory/version.js +2 -0
  302. package/runtime/gateways/memory/version.js.map +1 -0
  303. package/runtime/index.d.ts +13 -0
  304. package/runtime/index.d.ts.map +1 -0
  305. package/runtime/index.js +13 -0
  306. package/runtime/index.js.map +1 -0
  307. package/runtime/key-bag-memory.d.ts +12 -0
  308. package/runtime/key-bag-memory.d.ts.map +1 -0
  309. package/runtime/key-bag-memory.js +23 -0
  310. package/runtime/key-bag-memory.js.map +1 -0
  311. package/runtime/key-bag.d.ts +85 -0
  312. package/runtime/key-bag.d.ts.map +1 -0
  313. package/runtime/key-bag.js +415 -0
  314. package/runtime/key-bag.js.map +1 -0
  315. package/runtime/keyed-crypto.d.ts +19 -0
  316. package/runtime/keyed-crypto.d.ts.map +1 -0
  317. package/runtime/keyed-crypto.js +192 -0
  318. package/runtime/keyed-crypto.js.map +1 -0
  319. package/runtime/memory-sys-container.d.ts +2 -0
  320. package/runtime/memory-sys-container.d.ts.map +1 -0
  321. package/runtime/memory-sys-container.js +2 -0
  322. package/runtime/memory-sys-container.js.map +1 -0
  323. package/runtime/meta-key-hack.d.ts +42 -0
  324. package/runtime/meta-key-hack.d.ts.map +1 -0
  325. package/runtime/meta-key-hack.js +201 -0
  326. package/runtime/meta-key-hack.js.map +1 -0
  327. package/runtime/sts-service/index.d.ts +40 -0
  328. package/runtime/sts-service/index.d.ts.map +1 -0
  329. package/runtime/sts-service/index.js +102 -0
  330. package/runtime/sts-service/index.js.map +1 -0
  331. package/runtime/sys-container.d.ts +2 -0
  332. package/runtime/sys-container.d.ts.map +1 -0
  333. package/runtime/sys-container.js +2 -0
  334. package/runtime/sys-container.js.map +1 -0
  335. package/runtime/wait-pr-multiformats/block.d.ts +47 -0
  336. package/runtime/wait-pr-multiformats/block.d.ts.map +1 -0
  337. package/runtime/wait-pr-multiformats/block.js +64 -0
  338. package/runtime/wait-pr-multiformats/block.js.map +1 -0
  339. package/runtime/wait-pr-multiformats/codec-interface.d.ts +29 -0
  340. package/runtime/wait-pr-multiformats/codec-interface.d.ts.map +1 -0
  341. package/runtime/wait-pr-multiformats/codec-interface.js +2 -0
  342. package/runtime/wait-pr-multiformats/codec-interface.js.map +1 -0
  343. package/runtime/wait-pr-multiformats/index.d.ts +3 -0
  344. package/runtime/wait-pr-multiformats/index.d.ts.map +1 -0
  345. package/runtime/wait-pr-multiformats/index.js +3 -0
  346. package/runtime/wait-pr-multiformats/index.js.map +1 -0
  347. package/tests/blockstore/store.test.ts +9 -4
  348. package/tests/fireproof/attachable.test.ts +3 -3
  349. package/types.d.ts +427 -0
  350. package/types.d.ts.map +1 -0
  351. package/types.js +54 -0
  352. package/types.js.map +1 -0
  353. package/use-fireproof/index.d.ts +3 -0
  354. package/use-fireproof/index.d.ts.map +1 -0
  355. package/use-fireproof/index.js +3 -0
  356. package/use-fireproof/index.js.map +1 -0
  357. package/utils.d.ts +36 -0
  358. package/utils.d.ts.map +1 -0
  359. package/utils.js +379 -0
  360. package/utils.js.map +1 -0
  361. package/version.d.ts +2 -0
  362. package/version.d.ts.map +1 -0
  363. package/version.js +4 -0
  364. package/version.js.map +1 -0
  365. package/write-queue.d.ts +9 -0
  366. package/write-queue.d.ts.map +1 -0
  367. package/write-queue.js +70 -0
  368. package/write-queue.js.map +1 -0
  369. package/deno/index.d.ts +0 -7
  370. package/deno/index.js +0 -66
  371. package/deno/index.js.map +0 -1
  372. package/deno/metafile-esm.json +0 -1
  373. package/index.cjs +0 -7268
  374. package/index.cjs.map +0 -1
  375. package/index.d.cts +0 -2742
  376. package/indexeddb/index.cjs +0 -218
  377. package/indexeddb/index.cjs.map +0 -1
  378. package/indexeddb/index.d.cts +0 -30
  379. package/indexeddb/index.d.ts +0 -30
  380. package/indexeddb/index.js +0 -195
  381. package/indexeddb/index.js.map +0 -1
  382. package/indexeddb/metafile-cjs.json +0 -1
  383. package/indexeddb/metafile-esm.json +0 -1
  384. package/metafile-cjs.json +0 -1
  385. package/metafile-esm.json +0 -1
  386. package/node/index.cjs +0 -97
  387. package/node/index.cjs.map +0 -1
  388. package/node/index.d.cts +0 -7
  389. package/node/index.d.ts +0 -7
  390. package/node/index.js +0 -64
  391. package/node/index.js.map +0 -1
  392. package/node/metafile-cjs.json +0 -1
  393. package/node/metafile-esm.json +0 -1
  394. package/react/index.cjs +0 -297
  395. package/react/index.cjs.map +0 -1
  396. package/react/metafile-cjs.json +0 -1
  397. package/react/metafile-esm.json +0 -1
  398. package/tests/www/gallery.html +0 -132
  399. package/tests/www/iife.html +0 -42
  400. package/tests/www/todo-aws.html +0 -232
  401. package/tests/www/todo-ipfs.html +0 -213
  402. package/tests/www/todo-local.html +0 -214
  403. package/tests/www/todo-netlify.html +0 -227
  404. package/tests/www/todo.html +0 -254
@@ -0,0 +1,496 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var _FireproofCloudGateway_connectionURIs;
7
+ import { Result, URI, KeyedResolvOnce, exception2Result, param, ResolveOnce, to_uint8, } from "@adviser/cement";
8
+ import { buildErrorMsg, buildReqOpen, MsgIsError, coerceFPStoreTypes, } from "../../../protocols/cloud/msg-types.js";
9
+ import { Msger, authTypeFromUri } from "../../../protocols/cloud/msger.js";
10
+ import { MsgIsResDelData, MsgIsResGetData, MsgIsResPutData, } from "../../../protocols/cloud/msg-types-data.js";
11
+ import { ensureLogger, NotFoundError } from "../../../utils.js";
12
+ import { registerStoreProtocol } from "../../../blockstore/register-store-protocol.js";
13
+ import { dbMetaEvent2Serialized, decode2DbMetaEvents, fpDeserialize, fpSerialize } from "../fp-envelope-serialize.js";
14
+ import { buildBindGetMeta, buildReqDelMeta, buildReqPutMeta, MsgIsEventGetMeta, MsgIsResPutMeta, } from "../../../protocols/cloud/msg-types-meta.js";
15
+ import { encodeAsV2SerializedMetaKey, V2SerializedMetaKeyExtractKey } from "../../meta-key-hack.js";
16
+ const VERSION = "v0.1-fp-cloud";
17
+ class BaseGateway {
18
+ constructor(sthis, module) {
19
+ this.sthis = sthis;
20
+ this.logger = ensureLogger(sthis, module);
21
+ }
22
+ async buildReqSignedUrl(type, method, store, uri, conn) {
23
+ const rParams = uri.getParamsResult({
24
+ key: param.REQUIRED,
25
+ store: param.REQUIRED,
26
+ path: param.OPTIONAL,
27
+ tenant: param.REQUIRED,
28
+ name: param.REQUIRED,
29
+ index: param.OPTIONAL,
30
+ });
31
+ if (rParams.isErr()) {
32
+ return buildErrorMsg(this, {}, rParams.Err());
33
+ }
34
+ const params = rParams.Ok();
35
+ if (store !== params.store) {
36
+ return buildErrorMsg(this, {}, new Error("store mismatch"));
37
+ }
38
+ const rAuth = await authTypeFromUri(this.logger, uri);
39
+ if (rAuth.isErr()) {
40
+ return buildErrorMsg(this, {}, rAuth.Err());
41
+ }
42
+ return {
43
+ tid: this.sthis.nextId().str,
44
+ auth: rAuth.Ok(),
45
+ type,
46
+ conn: conn.conn.Ok().conn,
47
+ tenant: {
48
+ tenant: params.tenant,
49
+ ledger: params.name,
50
+ },
51
+ methodParams: {
52
+ method,
53
+ store,
54
+ },
55
+ params: {
56
+ ...params,
57
+ key: params.key,
58
+ },
59
+ version: VERSION,
60
+ };
61
+ }
62
+ async getReqSignedUrl(type, method, store, waitForFn, uri, conn) {
63
+ const rsu = await this.buildReqSignedUrl(type, method, store, uri, conn);
64
+ if (MsgIsError(rsu)) {
65
+ return rsu;
66
+ }
67
+ return conn.conn.Ok().request(rsu, { waitFor: waitForFn });
68
+ }
69
+ async putObject(uri, uploadUrl, body, conn) {
70
+ this.logger.Debug().Any("url", { uploadUrl, uri }).Msg("put-fetch-url");
71
+ const rUpload = await exception2Result(async () => fetch(uploadUrl, { method: "PUT", body }));
72
+ if (rUpload.isErr()) {
73
+ return this.logger.Error().Url(uploadUrl, "uploadUrl").Err(rUpload).Msg("Error in put fetch").ResultError();
74
+ }
75
+ if (!rUpload.Ok().ok) {
76
+ return this.logger.Error().Url(uploadUrl, "uploadUrl").Http(rUpload.Ok()).Msg("Error in put fetch").ResultError();
77
+ }
78
+ if (uri.getParam("testMode")) {
79
+ conn.citem.trackPuts.add(uri.toString());
80
+ }
81
+ return Result.Ok(undefined);
82
+ }
83
+ async getObject(uri, downloadUrl, _conn) {
84
+ this.logger.Debug().Any("url", { downloadUrl, uri }).Msg("get-fetch-url");
85
+ const rDownload = await exception2Result(async () => fetch(downloadUrl.toString(), { method: "GET" }));
86
+ if (rDownload.isErr()) {
87
+ return this.logger.Error().Url(downloadUrl, "uploadUrl").Err(rDownload).Msg("Error in get downloadUrl").ResultError();
88
+ }
89
+ const download = rDownload.Ok();
90
+ if (!download.ok) {
91
+ if (download.status === 404) {
92
+ return Result.Err(new NotFoundError("Not found"));
93
+ }
94
+ return this.logger.Error().Url(downloadUrl, "uploadUrl").Err(rDownload).Msg("Error in get fetch").ResultError();
95
+ }
96
+ return Result.Ok(to_uint8(await download.arrayBuffer()));
97
+ }
98
+ async delObject(uri, deleteUrl, _conn) {
99
+ this.logger.Debug().Any("url", { deleteUrl, uri }).Msg("get-fetch-url");
100
+ const rDelete = await exception2Result(async () => fetch(deleteUrl.toString(), { method: "DELETE" }));
101
+ if (rDelete.isErr()) {
102
+ return this.logger.Error().Url(deleteUrl, "deleteUrl").Err(rDelete).Msg("Error in get deleteURL").ResultError();
103
+ }
104
+ const download = rDelete.Ok();
105
+ if (!download.ok) {
106
+ if (download.status === 404) {
107
+ return Result.Err(new NotFoundError("Not found"));
108
+ }
109
+ return this.logger.Error().Url(deleteUrl, "deleteUrl").Err(rDelete).Msg("Error in del fetch").ResultError();
110
+ }
111
+ return Result.Ok(undefined);
112
+ }
113
+ }
114
+ class DataGateway extends BaseGateway {
115
+ constructor(sthis) {
116
+ super(sthis, "DataGateway");
117
+ }
118
+ async get(ctx, uri) {
119
+ const store = coerceFPStoreTypes(uri.getParam("store"));
120
+ const rResSignedUrl = await this.getReqSignedUrl("reqGetData", "GET", store, MsgIsResGetData, uri, ctx.conn);
121
+ if (MsgIsError(rResSignedUrl)) {
122
+ return this.logger.Error().Err(rResSignedUrl).Msg("Error in buildResSignedUrl").ResultError();
123
+ }
124
+ const { signedUrl: downloadUrl } = rResSignedUrl;
125
+ const r = await fpDeserialize(this.sthis, uri, this.getObject(uri, downloadUrl, ctx.conn));
126
+ return r;
127
+ }
128
+ async put(ctx, uri, data) {
129
+ const store = coerceFPStoreTypes(uri.getParam("store"));
130
+ const rResSignedUrl = await this.getReqSignedUrl("reqPutData", "PUT", store, MsgIsResPutData, uri, ctx.conn);
131
+ if (MsgIsError(rResSignedUrl)) {
132
+ return this.logger.Error().Err(rResSignedUrl).Msg("Error in buildResSignedUrl").ResultError();
133
+ }
134
+ const { signedUrl: uploadUrl } = rResSignedUrl;
135
+ const rBlob = await fpSerialize(ctx.loader.sthis, data);
136
+ if (rBlob.isErr()) {
137
+ return rBlob;
138
+ }
139
+ const r = await this.putObject(uri, uploadUrl, rBlob.Ok(), ctx.conn);
140
+ return r;
141
+ }
142
+ async delete(ctx, uri) {
143
+ const store = coerceFPStoreTypes(uri.getParam("store"));
144
+ const rResSignedUrl = await this.getReqSignedUrl("reqDelData", "DELETE", store, MsgIsResDelData, uri, ctx.conn);
145
+ if (MsgIsError(rResSignedUrl)) {
146
+ return this.logger.Error().Err(rResSignedUrl).Msg("Error in buildResSignedUrl").ResultError();
147
+ }
148
+ const { signedUrl: deleteUrl } = rResSignedUrl;
149
+ return this.delObject(uri, deleteUrl, ctx.conn);
150
+ }
151
+ }
152
+ function getGwCtx(conn, uri) {
153
+ const rParams = uri.getParamsResult({
154
+ tid: param.OPTIONAL,
155
+ tenant: param.REQUIRED,
156
+ ledger: param.REQUIRED,
157
+ });
158
+ if (rParams.isErr()) {
159
+ return Result.Err(rParams);
160
+ }
161
+ const r = rParams.Ok();
162
+ return Result.Ok({
163
+ tid: r.tid,
164
+ conn,
165
+ tenant: {
166
+ tenant: r.tenant,
167
+ ledger: r.ledger,
168
+ },
169
+ });
170
+ }
171
+ class MetaGateway extends BaseGateway {
172
+ constructor(sthis) {
173
+ super(sthis, "MetaGateway");
174
+ }
175
+ async get(ctx, uri) {
176
+ const reqSignedUrl = await this.buildReqSignedUrl("bindGetMeta", "GET", "meta", uri, ctx.conn);
177
+ if (MsgIsError(reqSignedUrl)) {
178
+ return this.logger.Error().Err(reqSignedUrl).Msg("Error in buildReqSignedUrl").ResultError();
179
+ }
180
+ const rGwCtx = getGwCtx(ctx.conn.conn.Ok().conn, uri);
181
+ if (rGwCtx.isErr()) {
182
+ return Result.Err(rGwCtx);
183
+ }
184
+ const rAuthType = await ctx.conn.conn.Ok().authType();
185
+ if (rAuthType.isErr()) {
186
+ return Result.Err(rAuthType);
187
+ }
188
+ const res = await ctx.conn.conn
189
+ .Ok()
190
+ .request(buildBindGetMeta(ctx.loader.sthis, rAuthType.Ok(), reqSignedUrl.params, rGwCtx.Ok()), {
191
+ waitFor: MsgIsEventGetMeta,
192
+ });
193
+ if (MsgIsError(res)) {
194
+ return this.logger.Error().Err(res).Msg("Error in buildBindGetMeta").ResultError();
195
+ }
196
+ const rV2Meta = await V2SerializedMetaKeyExtractKey(ctx, res.meta);
197
+ const rMeta = await decode2DbMetaEvents(ctx.loader.sthis, rV2Meta);
198
+ if (rMeta.isErr()) {
199
+ return Result.Err(rMeta);
200
+ }
201
+ return Result.Ok({
202
+ type: "meta",
203
+ payload: rMeta.Ok(),
204
+ });
205
+ }
206
+ async put(ctx, uri, imeta) {
207
+ const meta = imeta;
208
+ const reqSignedUrl = await this.buildReqSignedUrl("reqPutMeta", "PUT", "meta", uri, ctx.conn);
209
+ if (MsgIsError(reqSignedUrl)) {
210
+ return this.logger.Error().Err(reqSignedUrl).Msg("Error in buildReqSignedUrl").ResultError();
211
+ }
212
+ const rGwCtx = getGwCtx(ctx.conn.conn.Ok().conn, uri);
213
+ if (rGwCtx.isErr()) {
214
+ return Result.Err(rGwCtx);
215
+ }
216
+ const rAuthType = await ctx.conn.conn.Ok().authType();
217
+ if (rAuthType.isErr()) {
218
+ return Result.Err(rAuthType);
219
+ }
220
+ const serializedMeta = await dbMetaEvent2Serialized(ctx.loader.sthis, meta.payload);
221
+ const rKeyedMeta = await encodeAsV2SerializedMetaKey(ctx, serializedMeta);
222
+ if (rKeyedMeta.isErr()) {
223
+ return rKeyedMeta;
224
+ }
225
+ const reqPutMeta = buildReqPutMeta(ctx.loader.sthis, rAuthType.Ok(), reqSignedUrl.params, rKeyedMeta.Ok(), rGwCtx.Ok());
226
+ const resMsg = await ctx.conn.conn.Ok().request(reqPutMeta, {
227
+ waitFor: MsgIsResPutMeta,
228
+ });
229
+ if (MsgIsError(resMsg)) {
230
+ return this.logger.Error().Err(resMsg).Msg("Error in buildResSignedUrl").ResultError();
231
+ }
232
+ return Result.Ok(undefined);
233
+ }
234
+ async delete(ctx, uri) {
235
+ const reqSignedUrl = await this.getReqSignedUrl("reqDelMeta", "DELETE", "meta", MsgIsResDelData, uri, ctx.conn);
236
+ if (MsgIsError(reqSignedUrl)) {
237
+ return this.logger.Error().Err(reqSignedUrl).Msg("Error in buildReqSignedUrl").ResultError();
238
+ }
239
+ const rGwCtx = getGwCtx(ctx.conn.conn.Ok().conn, uri);
240
+ if (rGwCtx.isErr()) {
241
+ return Result.Err(rGwCtx);
242
+ }
243
+ const rAuthType = await ctx.conn.conn.Ok().authType();
244
+ if (rAuthType.isErr()) {
245
+ return Result.Err(rAuthType);
246
+ }
247
+ const reqDelMeta = buildReqDelMeta(ctx.loader.sthis, rAuthType.Ok(), reqSignedUrl.params, rGwCtx.Ok());
248
+ const resMsg = await ctx.conn.conn.Ok().request(reqDelMeta, {
249
+ waitFor: MsgIsResDelData,
250
+ });
251
+ if (MsgIsError(resMsg)) {
252
+ return this.logger.Error().Err(resMsg).Msg("Error in buildResSignedUrl").ResultError();
253
+ }
254
+ return Result.Ok(undefined);
255
+ }
256
+ }
257
+ class WALGateway extends BaseGateway {
258
+ constructor(sthis) {
259
+ super(sthis, "WALGateway");
260
+ this.wals = new Map();
261
+ }
262
+ getWalKeyFromUri(uri) {
263
+ const rKey = uri.getParamsResult({
264
+ key: 0,
265
+ name: 0,
266
+ });
267
+ if (rKey.isErr()) {
268
+ return Result.Err(rKey.Err());
269
+ }
270
+ const { name, key } = rKey.Ok();
271
+ return Result.Ok(`${name}:${key}`);
272
+ }
273
+ async get(ctx, uri) {
274
+ const rKey = this.getWalKeyFromUri(uri);
275
+ if (rKey.isErr()) {
276
+ return Result.Err(rKey.Err());
277
+ }
278
+ const wal = this.wals.get(rKey.Ok());
279
+ if (!wal) {
280
+ return Result.Err(new NotFoundError("Not found"));
281
+ }
282
+ return Result.Ok(wal);
283
+ }
284
+ async put(ctx, uri, body) {
285
+ const rKey = this.getWalKeyFromUri(uri);
286
+ if (rKey.isErr()) {
287
+ return Result.Err(rKey.Err());
288
+ }
289
+ this.wals.set(rKey.Ok(), body);
290
+ return Result.Ok(undefined);
291
+ }
292
+ async delete(ctx, uri) {
293
+ const rKey = this.getWalKeyFromUri(uri);
294
+ if (rKey.isErr()) {
295
+ return Result.Err(rKey.Err());
296
+ }
297
+ this.wals.delete(rKey.Ok());
298
+ return Result.Ok(undefined);
299
+ }
300
+ }
301
+ const storeTypedGateways = new KeyedResolvOnce();
302
+ function getStoreTypeGateway(sthis, uri) {
303
+ const store = uri.getParam("store");
304
+ switch (store) {
305
+ case "file":
306
+ case "car":
307
+ return storeTypedGateways.get(store).once(() => new DataGateway(sthis));
308
+ case "meta":
309
+ return storeTypedGateways.get(store).once(() => new MetaGateway(sthis));
310
+ case "wal":
311
+ return storeTypedGateways.get(store).once(() => new WALGateway(sthis));
312
+ default:
313
+ throw ensureLogger(sthis, "getStoreTypeGateway").Error().Str("store", store).Msg("Invalid store type").ResultError();
314
+ }
315
+ }
316
+ function connectionURI(uri) {
317
+ return uri.build().delParam("authJWK").delParam("key").delParam("store").delParam("suffix").delParam("storekey").URI();
318
+ }
319
+ const subscriptions = new Map();
320
+ export class FireproofCloudGateway {
321
+ constructor(sthis) {
322
+ _FireproofCloudGateway_connectionURIs.set(this, new Map());
323
+ this.sthis = sthis;
324
+ this.logger = ensureLogger(sthis, "FireproofCloudGateway", {
325
+ this: true,
326
+ });
327
+ }
328
+ async buildUrl(ctx, baseUrl, key) {
329
+ return Result.Ok(baseUrl.build().setParam("key", key).URI());
330
+ }
331
+ async start(ctx, uri) {
332
+ await this.sthis.start();
333
+ const rName = uri.getParamResult("name");
334
+ if (rName.isErr()) {
335
+ return this.logger.Error().Err(rName).Msg("name not found").ResultError();
336
+ }
337
+ const ret = uri.build().defParam("version", VERSION);
338
+ ret.defParam("protocol", "wss");
339
+ const retURI = ret.URI();
340
+ const matchURI = connectionURI(retURI);
341
+ __classPrivateFieldGet(this, _FireproofCloudGateway_connectionURIs, "f").set(matchURI.toString(), {
342
+ uri: matchURI,
343
+ matchRes: matchURI.match(matchURI),
344
+ connection: new ResolveOnce(),
345
+ trackPuts: new Set(),
346
+ });
347
+ return Result.Ok(retURI);
348
+ }
349
+ async get(ctx, uri) {
350
+ const conn = await this.getCloudConnectionItem(uri);
351
+ if (conn.conn.isErr()) {
352
+ return Result.Err(conn.conn);
353
+ }
354
+ const ret = await getStoreTypeGateway(ctx.loader.sthis, uri).get({ ...ctx, conn }, uri);
355
+ return ret;
356
+ }
357
+ async put(ctx, uri, body) {
358
+ const conn = await this.getCloudConnectionItem(uri);
359
+ if (conn.conn.isErr()) {
360
+ return conn.conn;
361
+ }
362
+ const ret = await getStoreTypeGateway(ctx.loader.sthis, uri).put({ ...ctx, conn }, uri, body);
363
+ if (ret.isOk()) {
364
+ if (uri.getParam("testMode")) {
365
+ conn.citem.trackPuts.add(uri.toString());
366
+ }
367
+ }
368
+ return ret;
369
+ }
370
+ async delete(ctx, uri) {
371
+ const conn = await this.getCloudConnectionItem(uri);
372
+ if (conn.conn.isErr()) {
373
+ return conn.conn;
374
+ }
375
+ conn.citem.trackPuts.delete(uri.toString());
376
+ return getStoreTypeGateway(ctx.loader.sthis, uri).delete({ ...ctx, conn }, uri);
377
+ }
378
+ async close(ctx, uri) {
379
+ const uriStr = uri.toString();
380
+ for (const sub of Array.from(subscriptions.values())) {
381
+ for (const s of sub) {
382
+ if (s.uri.toString() === uriStr) {
383
+ s.unsub();
384
+ }
385
+ }
386
+ }
387
+ const rConn = await this.getCloudConnectionItem(uri);
388
+ if (rConn.conn.isErr()) {
389
+ return this.logger.Error().Err(rConn).Msg("Error in getCloudConnection").ResultError();
390
+ }
391
+ const conn = rConn.conn.Ok();
392
+ const rAuth = await conn.msgConnAuth();
393
+ await conn.close(rAuth.Ok());
394
+ __classPrivateFieldGet(this, _FireproofCloudGateway_connectionURIs, "f").delete(rConn.citem.uri.toString());
395
+ return Result.Ok(undefined);
396
+ }
397
+ async getCloudConnection(uri) {
398
+ return this.getCloudConnectionItem(uri).then((r) => {
399
+ return r.conn;
400
+ });
401
+ }
402
+ async getCloudConnectionItem(uri) {
403
+ const matchURI = connectionURI(uri);
404
+ let bestMatch;
405
+ for (const ci of __classPrivateFieldGet(this, _FireproofCloudGateway_connectionURIs, "f").values()) {
406
+ const mci = ci.uri.match(matchURI);
407
+ if (mci.score >= ci.matchRes.score) {
408
+ bestMatch = ci;
409
+ break;
410
+ }
411
+ }
412
+ if (!bestMatch) {
413
+ return {
414
+ conn: this.logger
415
+ .Error()
416
+ .Url(matchURI)
417
+ .Any("conns", Object.fromEntries(__classPrivateFieldGet(this, _FireproofCloudGateway_connectionURIs, "f").entries()))
418
+ .Msg("No connection found")
419
+ .ResultError(),
420
+ citem: {},
421
+ };
422
+ }
423
+ const conn = await bestMatch.connection.once(async () => {
424
+ const rParams = uri.getParamsResult({
425
+ name: param.REQUIRED,
426
+ protocol: "https",
427
+ store: param.REQUIRED,
428
+ storekey: param.OPTIONAL,
429
+ tenant: param.REQUIRED,
430
+ });
431
+ if (rParams.isErr()) {
432
+ return this.logger.Error().Url(uri).Err(rParams).Msg("getCloudConnection:err").ResultError();
433
+ }
434
+ const params = rParams.Ok();
435
+ const rAuth = await authTypeFromUri(this.logger, uri);
436
+ if (rAuth.isErr()) {
437
+ return Result.Err(rAuth);
438
+ }
439
+ const qOpen = buildReqOpen(this.sthis, rAuth.Ok(), {});
440
+ const cUrl = uri.build().protocol(params.protocol).cleanParams().URI();
441
+ return Msger.connect(this.sthis, rAuth.Ok(), cUrl, qOpen);
442
+ });
443
+ if (conn.isErr()) {
444
+ return { conn: Result.Err(conn), citem: bestMatch };
445
+ }
446
+ return { conn: Result.Ok(conn.Ok().attachAuth(() => authTypeFromUri(this.logger, uri))), citem: bestMatch };
447
+ }
448
+ async subscribe(ctx, url, callback) {
449
+ return Result.Err(new Error("Not implemented"));
450
+ }
451
+ async destroy(ctx, uri) {
452
+ const item = await this.getCloudConnectionItem(uri);
453
+ if (item.conn.isErr()) {
454
+ return item.conn;
455
+ }
456
+ await Promise.all(Array.from(item.citem.trackPuts).map(async (k) => this.delete(ctx, URI.from(k))));
457
+ return Result.Ok(undefined);
458
+ }
459
+ async getPlain() {
460
+ return Result.Err(new Error("Not implemented"));
461
+ }
462
+ }
463
+ _FireproofCloudGateway_connectionURIs = new WeakMap();
464
+ const onceRegisterFireproofCloudStoreProtocol = new KeyedResolvOnce();
465
+ export function registerFireproofCloudStoreProtocol(protocol = "fpcloud:") {
466
+ return onceRegisterFireproofCloudStoreProtocol.get(protocol).once(() => {
467
+ URI.protocolHasHostpart(protocol);
468
+ return registerStoreProtocol({
469
+ protocol,
470
+ defaultURI() {
471
+ return URI.from("fpcloud://fireproof.cloud/");
472
+ },
473
+ serdegateway: async (sthis) => {
474
+ return new FireproofCloudGateway(sthis);
475
+ },
476
+ });
477
+ });
478
+ }
479
+ registerFireproofCloudStoreProtocol();
480
+ export function toCloud(url) {
481
+ const urlObj = URI.from(url);
482
+ if (urlObj.protocol !== "fpcloud:") {
483
+ throw new Error("url must have fireproof protocol");
484
+ }
485
+ return {
486
+ name: urlObj.protocol,
487
+ prepare() {
488
+ return Promise.resolve({
489
+ car: { url: urlObj },
490
+ file: { url: urlObj },
491
+ meta: { url: urlObj },
492
+ });
493
+ },
494
+ };
495
+ }
496
+ //# sourceMappingURL=gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../../../../src/runtime/gateways/cloud/gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Result, URI } from "@adviser/cement";
2
+ import type { Gateway } from "../../blockstore/gateway.js";
3
+ import { type FPEnvelope, type FPEnvelopeMeta } from "../../blockstore/fp-envelope.js";
4
+ import type { SerdeGateway, SerdeGatewayCtx, SerdeGetResult } from "../../blockstore/serde-gateway.js";
5
+ export declare class DefSerdeGateway implements SerdeGateway {
6
+ readonly gw: Gateway;
7
+ constructor(gw: Gateway);
8
+ start({ loader: { sthis } }: SerdeGatewayCtx, baseURL: URI): Promise<Result<URI>>;
9
+ buildUrl({ loader: { sthis } }: SerdeGatewayCtx, baseUrl: URI, key: string): Promise<Result<URI>>;
10
+ close({ loader: { sthis } }: SerdeGatewayCtx, uri: URI): Promise<Result<void>>;
11
+ private subscribeFn;
12
+ put<T>({ loader: { sthis }, encoder }: SerdeGatewayCtx, url: URI, env: FPEnvelope<T>): Promise<Result<void>>;
13
+ get<S>({ loader: { sthis }, decoder }: SerdeGatewayCtx, url: URI): Promise<SerdeGetResult<S>>;
14
+ subscribe({ loader: { sthis }, decoder }: SerdeGatewayCtx, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>): Promise<Result<() => void>>;
15
+ delete({ loader: { sthis } }: SerdeGatewayCtx, url: URI): Promise<Result<void>>;
16
+ destroy({ loader: { sthis } }: SerdeGatewayCtx, baseURL: URI): Promise<Result<void>>;
17
+ getPlain({ loader: { sthis } }: SerdeGatewayCtx, iurl: URI, key: string): Promise<Result<Uint8Array<ArrayBufferLike>, Error>>;
18
+ }
19
+ //# sourceMappingURL=def-serde-gateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"def-serde-gateway.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/gateways/def-serde-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAmB,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAExG,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAIvG,qBAAa,eAAgB,YAAW,YAAY;IAElD,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;gBAET,EAAE,EAAE,OAAO;IAIvB,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAI3E,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAIjG,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAIpF,OAAO,CAAC,WAAW,CAAyD;IAEtE,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAe5G,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAM7F,SAAS,CACb,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,eAAe,EAC/C,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAChD,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IA2BxB,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAI/E,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAIpF,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;CAG9E"}
@@ -0,0 +1,73 @@
1
+ import { Result } from "@adviser/cement";
2
+ import { FPEnvelopeTypes } from "../../blockstore/fp-envelope.js";
3
+ import { fpDeserialize, fpSerialize } from "./fp-envelope-serialize.js";
4
+ import { PARAM } from "../../types.js";
5
+ export class DefSerdeGateway {
6
+ constructor(gw) {
7
+ this.subscribeFn = new Map();
8
+ this.gw = gw;
9
+ }
10
+ start({ loader: { sthis } }, baseURL) {
11
+ return this.gw.start(baseURL, sthis);
12
+ }
13
+ async buildUrl({ loader: { sthis } }, baseUrl, key) {
14
+ return this.gw.buildUrl(baseUrl, key, sthis);
15
+ }
16
+ async close({ loader: { sthis } }, uri) {
17
+ return this.gw.close(uri, sthis);
18
+ }
19
+ async put({ loader: { sthis }, encoder }, url, env) {
20
+ const rUint8 = await fpSerialize(sthis, env, encoder);
21
+ if (rUint8.isErr())
22
+ return rUint8;
23
+ const ret = this.gw.put(url, rUint8.Ok(), sthis);
24
+ if (env.type === FPEnvelopeTypes.META) {
25
+ const urlWithoutKey = url.build().delParam(PARAM.KEY).delParam(PARAM.SELF_REFLECT).toString();
26
+ const subFn = this.subscribeFn.get(urlWithoutKey);
27
+ if (subFn) {
28
+ await subFn(rUint8.Ok());
29
+ }
30
+ }
31
+ return ret;
32
+ }
33
+ async get({ loader: { sthis }, decoder }, url) {
34
+ const res = await this.gw.get(url, sthis);
35
+ if (res.isErr())
36
+ return Result.Err(res.Err());
37
+ return fpDeserialize(sthis, url, res, decoder);
38
+ }
39
+ async subscribe({ loader: { sthis }, decoder }, url, callback) {
40
+ function rawCallback(raw) {
41
+ return fpDeserialize(sthis, url, Result.Ok(raw), decoder).then((res) => {
42
+ if (res.isErr()) {
43
+ sthis.logger.Error().Err(res).Msg("Failed to deserialize");
44
+ return;
45
+ }
46
+ callback(res.Ok());
47
+ });
48
+ }
49
+ if (!this.gw.subscribe) {
50
+ if (!url.hasParam(PARAM.SELF_REFLECT)) {
51
+ return Result.Ok(() => {
52
+ });
53
+ }
54
+ const urlWithoutKey = url.build().delParam(PARAM.KEY).delParam(PARAM.SELF_REFLECT).toString();
55
+ this.subscribeFn.set(urlWithoutKey, rawCallback);
56
+ return Result.Ok(() => {
57
+ this.subscribeFn.delete(urlWithoutKey);
58
+ });
59
+ }
60
+ const unreg = await this.gw.subscribe(url, rawCallback, sthis);
61
+ return unreg;
62
+ }
63
+ async delete({ loader: { sthis } }, url) {
64
+ return this.gw.delete(url, sthis);
65
+ }
66
+ async destroy({ loader: { sthis } }, baseURL) {
67
+ return this.gw.destroy(baseURL, sthis);
68
+ }
69
+ async getPlain({ loader: { sthis } }, iurl, key) {
70
+ return this.gw.getPlain(iurl, key, sthis);
71
+ }
72
+ }
73
+ //# sourceMappingURL=def-serde-gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"def-serde-gateway.js","sourceRoot":"","sources":["../../../../../src/runtime/gateways/def-serde-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAwC,MAAM,iCAAiC,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,OAAO,eAAe;IAI1B,YAAY,EAAW;QAgBf,gBAAW,GAAG,IAAI,GAAG,EAA8C,CAAC;QAf1E,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAmB,EAAE,OAAY;QACxD,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAmB,EAAE,OAAY,EAAE,GAAW;QAC9E,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAmB,EAAE,GAAQ;QAC1D,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAID,KAAK,CAAC,GAAG,CAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAmB,EAAE,GAAQ,EAAE,GAAkB;QACxF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAEjD,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9F,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAmB,EAAE,GAAQ;QACpE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,GAAG,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9C,OAAO,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAA+B,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,SAAS,CACb,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAmB,EAC/C,GAAQ,EACR,QAAiD;QAEjD,SAAS,WAAW,CAAC,GAAe;YAClC,OAAO,aAAa,CAAgB,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpF,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;oBAChB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;oBAC3D,OAAO;gBACT,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAoB,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtC,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE;gBAEtB,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9F,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAmB,EAAE,GAAQ;QAC3D,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAmB,EAAE,OAAY;QAChE,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAmB,EAAE,IAAS,EAAE,GAAW;QAC3E,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF"}