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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/deno/index.d.ts +7 -0
  2. package/deno/index.js +66 -0
  3. package/deno/index.js.map +1 -0
  4. package/deno/metafile-esm.json +1 -0
  5. package/deno.json +2 -2
  6. package/index.cjs +7268 -0
  7. package/index.cjs.map +1 -0
  8. package/index.d.cts +2742 -0
  9. package/index.d.ts +2742 -15
  10. package/index.js +7267 -14
  11. package/index.js.map +1 -1
  12. package/indexeddb/index.cjs +218 -0
  13. package/indexeddb/index.cjs.map +1 -0
  14. package/indexeddb/index.d.cts +30 -0
  15. package/indexeddb/index.d.ts +30 -0
  16. package/indexeddb/index.js +195 -0
  17. package/indexeddb/index.js.map +1 -0
  18. package/indexeddb/metafile-cjs.json +1 -0
  19. package/indexeddb/metafile-esm.json +1 -0
  20. package/metafile-cjs.json +1 -0
  21. package/metafile-esm.json +1 -0
  22. package/node/index.cjs +97 -0
  23. package/node/index.cjs.map +1 -0
  24. package/node/index.d.cts +7 -0
  25. package/node/index.d.ts +7 -0
  26. package/node/index.js +64 -0
  27. package/node/index.js.map +1 -0
  28. package/node/metafile-cjs.json +1 -0
  29. package/node/metafile-esm.json +1 -0
  30. package/package.json +17 -20
  31. package/react/index.cjs +298 -0
  32. package/react/index.cjs.map +1 -0
  33. package/react/{img-file.d.ts → index.d.cts} +53 -6
  34. package/react/index.d.ts +336 -4
  35. package/react/index.js +264 -3
  36. package/react/index.js.map +1 -1
  37. package/react/metafile-cjs.json +1 -0
  38. package/react/metafile-esm.json +1 -0
  39. package/tests/blockstore/loader.test.ts +1 -1
  40. package/tests/blockstore/store.test.ts +4 -9
  41. package/tests/fireproof/attachable.test.ts +3 -3
  42. package/tests/react/use-fireproof-db-switch.test.tsx +91 -0
  43. package/tests/react/use-fireproof-stability.test.tsx +145 -0
  44. package/tests/www/gallery.html +132 -0
  45. package/tests/www/iife.html +42 -0
  46. package/tests/www/todo-aws.html +232 -0
  47. package/tests/www/todo-ipfs.html +213 -0
  48. package/tests/www/todo-local.html +214 -0
  49. package/tests/www/todo-netlify.html +227 -0
  50. package/tests/www/todo.html +254 -0
  51. package/apply-head-queue.d.ts +0 -18
  52. package/apply-head-queue.d.ts.map +0 -1
  53. package/apply-head-queue.js +0 -47
  54. package/apply-head-queue.js.map +0 -1
  55. package/blockstore/attachable-store.d.ts +0 -17
  56. package/blockstore/attachable-store.d.ts.map +0 -1
  57. package/blockstore/attachable-store.js +0 -295
  58. package/blockstore/attachable-store.js.map +0 -1
  59. package/blockstore/commit-queue.d.ts +0 -12
  60. package/blockstore/commit-queue.d.ts.map +0 -1
  61. package/blockstore/commit-queue.js +0 -52
  62. package/blockstore/commit-queue.js.map +0 -1
  63. package/blockstore/commitor.d.ts +0 -21
  64. package/blockstore/commitor.d.ts.map +0 -1
  65. package/blockstore/commitor.js +0 -104
  66. package/blockstore/commitor.js.map +0 -1
  67. package/blockstore/connect-raw.d.ts +0 -2
  68. package/blockstore/connect-raw.d.ts.map +0 -1
  69. package/blockstore/connect-raw.js +0 -2
  70. package/blockstore/connect-raw.js.map +0 -1
  71. package/blockstore/connection-base.d.ts +0 -2
  72. package/blockstore/connection-base.d.ts.map +0 -1
  73. package/blockstore/connection-base.js +0 -2
  74. package/blockstore/connection-base.js.map +0 -1
  75. package/blockstore/encrypt-helpers.d.ts +0 -2
  76. package/blockstore/encrypt-helpers.d.ts.map +0 -1
  77. package/blockstore/encrypt-helpers.js +0 -2
  78. package/blockstore/encrypt-helpers.js.map +0 -1
  79. package/blockstore/fp-envelope.d.ts +0 -32
  80. package/blockstore/fp-envelope.d.ts.map +0 -1
  81. package/blockstore/fp-envelope.js +0 -14
  82. package/blockstore/fp-envelope.js.map +0 -1
  83. package/blockstore/gateway.d.ts +0 -20
  84. package/blockstore/gateway.d.ts.map +0 -1
  85. package/blockstore/gateway.js +0 -2
  86. package/blockstore/gateway.js.map +0 -1
  87. package/blockstore/index.d.ts +0 -16
  88. package/blockstore/index.d.ts.map +0 -1
  89. package/blockstore/index.js +0 -16
  90. package/blockstore/index.js.map +0 -1
  91. package/blockstore/interceptor-gateway.d.ts +0 -29
  92. package/blockstore/interceptor-gateway.d.ts.map +0 -1
  93. package/blockstore/interceptor-gateway.js +0 -137
  94. package/blockstore/interceptor-gateway.js.map +0 -1
  95. package/blockstore/loader-helpers.d.ts +0 -4
  96. package/blockstore/loader-helpers.d.ts.map +0 -1
  97. package/blockstore/loader-helpers.js +0 -16
  98. package/blockstore/loader-helpers.js.map +0 -1
  99. package/blockstore/loader.d.ts +0 -45
  100. package/blockstore/loader.d.ts.map +0 -1
  101. package/blockstore/loader.js +0 -352
  102. package/blockstore/loader.js.map +0 -1
  103. package/blockstore/register-store-protocol.d.ts +0 -22
  104. package/blockstore/register-store-protocol.d.ts.map +0 -1
  105. package/blockstore/register-store-protocol.js +0 -114
  106. package/blockstore/register-store-protocol.js.map +0 -1
  107. package/blockstore/serde-gateway.d.ts +0 -78
  108. package/blockstore/serde-gateway.d.ts.map +0 -1
  109. package/blockstore/serde-gateway.js +0 -2
  110. package/blockstore/serde-gateway.js.map +0 -1
  111. package/blockstore/store-factory.d.ts +0 -11
  112. package/blockstore/store-factory.d.ts.map +0 -1
  113. package/blockstore/store-factory.js +0 -105
  114. package/blockstore/store-factory.js.map +0 -1
  115. package/blockstore/store-remote.d.ts +0 -2
  116. package/blockstore/store-remote.d.ts.map +0 -1
  117. package/blockstore/store-remote.js +0 -2
  118. package/blockstore/store-remote.js.map +0 -1
  119. package/blockstore/store.d.ts +0 -82
  120. package/blockstore/store.d.ts.map +0 -1
  121. package/blockstore/store.js +0 -438
  122. package/blockstore/store.js.map +0 -1
  123. package/blockstore/task-manager.d.ts +0 -19
  124. package/blockstore/task-manager.d.ts.map +0 -1
  125. package/blockstore/task-manager.js +0 -50
  126. package/blockstore/task-manager.js.map +0 -1
  127. package/blockstore/transaction.d.ts +0 -64
  128. package/blockstore/transaction.d.ts.map +0 -1
  129. package/blockstore/transaction.js +0 -249
  130. package/blockstore/transaction.js.map +0 -1
  131. package/blockstore/types.d.ts +0 -400
  132. package/blockstore/types.d.ts.map +0 -1
  133. package/blockstore/types.js +0 -55
  134. package/blockstore/types.js.map +0 -1
  135. package/blockstore/uri-interceptor.d.ts +0 -19
  136. package/blockstore/uri-interceptor.d.ts.map +0 -1
  137. package/blockstore/uri-interceptor.js +0 -61
  138. package/blockstore/uri-interceptor.js.map +0 -1
  139. package/bundle-not-impl.d.ts +0 -2
  140. package/bundle-not-impl.d.ts.map +0 -1
  141. package/bundle-not-impl.js +0 -4
  142. package/bundle-not-impl.js.map +0 -1
  143. package/cli/main.js +0 -26114
  144. package/context.d.ts +0 -7
  145. package/context.d.ts.map +0 -1
  146. package/context.js +0 -15
  147. package/context.js.map +0 -1
  148. package/crdt-clock.d.ts +0 -27
  149. package/crdt-clock.d.ts.map +0 -1
  150. package/crdt-clock.js +0 -140
  151. package/crdt-clock.js.map +0 -1
  152. package/crdt-helpers.d.ts +0 -16
  153. package/crdt-helpers.d.ts.map +0 -1
  154. package/crdt-helpers.js +0 -316
  155. package/crdt-helpers.js.map +0 -1
  156. package/crdt.d.ts +0 -34
  157. package/crdt.d.ts.map +0 -1
  158. package/crdt.js +0 -131
  159. package/crdt.js.map +0 -1
  160. package/database.d.ts +0 -34
  161. package/database.d.ts.map +0 -1
  162. package/database.js +0 -121
  163. package/database.js.map +0 -1
  164. package/index.d.ts.map +0 -1
  165. package/indexer-helpers.d.ts +0 -69
  166. package/indexer-helpers.d.ts.map +0 -1
  167. package/indexer-helpers.js +0 -135
  168. package/indexer-helpers.js.map +0 -1
  169. package/indexer.d.ts +0 -25
  170. package/indexer.d.ts.map +0 -1
  171. package/indexer.js +0 -231
  172. package/indexer.js.map +0 -1
  173. package/ledger.d.ts +0 -56
  174. package/ledger.d.ts.map +0 -1
  175. package/ledger.js +0 -224
  176. package/ledger.js.map +0 -1
  177. package/protocols/cloud/http-connection.d.ts +0 -25
  178. package/protocols/cloud/http-connection.d.ts.map +0 -1
  179. package/protocols/cloud/http-connection.js +0 -153
  180. package/protocols/cloud/http-connection.js.map +0 -1
  181. package/protocols/cloud/index.d.ts +0 -10
  182. package/protocols/cloud/index.d.ts.map +0 -1
  183. package/protocols/cloud/index.js +0 -10
  184. package/protocols/cloud/index.js.map +0 -1
  185. package/protocols/cloud/msg-raw-connection-base.d.ts +0 -16
  186. package/protocols/cloud/msg-raw-connection-base.d.ts.map +0 -1
  187. package/protocols/cloud/msg-raw-connection-base.js +0 -22
  188. package/protocols/cloud/msg-raw-connection-base.js.map +0 -1
  189. package/protocols/cloud/msg-types-data.d.ts +0 -36
  190. package/protocols/cloud/msg-types-data.d.ts.map +0 -1
  191. package/protocols/cloud/msg-types-data.js +0 -38
  192. package/protocols/cloud/msg-types-data.js.map +0 -1
  193. package/protocols/cloud/msg-types-meta.d.ts +0 -41
  194. package/protocols/cloud/msg-types-meta.d.ts.map +0 -1
  195. package/protocols/cloud/msg-types-meta.js +0 -98
  196. package/protocols/cloud/msg-types-meta.js.map +0 -1
  197. package/protocols/cloud/msg-types-wal.d.ts +0 -33
  198. package/protocols/cloud/msg-types-wal.d.ts.map +0 -1
  199. package/protocols/cloud/msg-types-wal.js +0 -38
  200. package/protocols/cloud/msg-types-wal.js.map +0 -1
  201. package/protocols/cloud/msg-types.d.ts +0 -279
  202. package/protocols/cloud/msg-types.d.ts.map +0 -1
  203. package/protocols/cloud/msg-types.js +0 -278
  204. package/protocols/cloud/msg-types.js.map +0 -1
  205. package/protocols/cloud/msger.d.ts +0 -79
  206. package/protocols/cloud/msger.d.ts.map +0 -1
  207. package/protocols/cloud/msger.js +0 -198
  208. package/protocols/cloud/msger.js.map +0 -1
  209. package/protocols/cloud/ws-connection.d.ts +0 -29
  210. package/protocols/cloud/ws-connection.d.ts.map +0 -1
  211. package/protocols/cloud/ws-connection.js +0 -163
  212. package/protocols/cloud/ws-connection.js.map +0 -1
  213. package/protocols/index.d.ts +0 -2
  214. package/protocols/index.d.ts.map +0 -1
  215. package/protocols/index.js +0 -2
  216. package/protocols/index.js.map +0 -1
  217. package/react/img-file.d.ts.map +0 -1
  218. package/react/img-file.js +0 -58
  219. package/react/img-file.js.map +0 -1
  220. package/react/index.d.ts.map +0 -1
  221. package/react/types.d.ts +0 -43
  222. package/react/types.d.ts.map +0 -1
  223. package/react/types.js +0 -2
  224. package/react/types.js.map +0 -1
  225. package/react/use-all-docs.d.ts +0 -4
  226. package/react/use-all-docs.d.ts.map +0 -1
  227. package/react/use-all-docs.js +0 -19
  228. package/react/use-all-docs.js.map +0 -1
  229. package/react/use-changes.d.ts +0 -4
  230. package/react/use-changes.d.ts.map +0 -1
  231. package/react/use-changes.js +0 -19
  232. package/react/use-changes.js.map +0 -1
  233. package/react/use-document.d.ts +0 -4
  234. package/react/use-document.d.ts.map +0 -1
  235. package/react/use-document.js +0 -99
  236. package/react/use-document.js.map +0 -1
  237. package/react/use-fireproof.d.ts +0 -6
  238. package/react/use-fireproof.d.ts.map +0 -1
  239. package/react/use-fireproof.js +0 -15
  240. package/react/use-fireproof.js.map +0 -1
  241. package/react/use-live-query.d.ts +0 -4
  242. package/react/use-live-query.d.ts.map +0 -1
  243. package/react/use-live-query.js +0 -38
  244. package/react/use-live-query.js.map +0 -1
  245. package/react/utils.d.ts +0 -2
  246. package/react/utils.d.ts.map +0 -1
  247. package/react/utils.js +0 -4
  248. package/react/utils.js.map +0 -1
  249. package/runtime/files.d.ts +0 -12
  250. package/runtime/files.d.ts.map +0 -1
  251. package/runtime/files.js +0 -29
  252. package/runtime/files.js.map +0 -1
  253. package/runtime/gateways/cloud/gateway.d.ts +0 -44
  254. package/runtime/gateways/cloud/gateway.d.ts.map +0 -1
  255. package/runtime/gateways/cloud/gateway.js +0 -496
  256. package/runtime/gateways/cloud/gateway.js.map +0 -1
  257. package/runtime/gateways/def-serde-gateway.d.ts +0 -19
  258. package/runtime/gateways/def-serde-gateway.d.ts.map +0 -1
  259. package/runtime/gateways/def-serde-gateway.js +0 -73
  260. package/runtime/gateways/def-serde-gateway.js.map +0 -1
  261. package/runtime/gateways/file/deno/deno-filesystem.d.ts +0 -27
  262. package/runtime/gateways/file/deno/deno-filesystem.d.ts.map +0 -1
  263. package/runtime/gateways/file/deno/deno-filesystem.js +0 -51
  264. package/runtime/gateways/file/deno/deno-filesystem.js.map +0 -1
  265. package/runtime/gateways/file/deno/get-sys-file-system.d.ts +0 -4
  266. package/runtime/gateways/file/deno/get-sys-file-system.d.ts.map +0 -1
  267. package/runtime/gateways/file/deno/get-sys-file-system.js +0 -11
  268. package/runtime/gateways/file/deno/get-sys-file-system.js.map +0 -1
  269. package/runtime/gateways/file/deno/index.d.ts +0 -2
  270. package/runtime/gateways/file/deno/index.d.ts.map +0 -1
  271. package/runtime/gateways/file/deno/index.js +0 -2
  272. package/runtime/gateways/file/deno/index.js.map +0 -1
  273. package/runtime/gateways/file/gateway-impl.d.ts +0 -18
  274. package/runtime/gateways/file/gateway-impl.d.ts.map +0 -1
  275. package/runtime/gateways/file/gateway-impl.js +0 -121
  276. package/runtime/gateways/file/gateway-impl.js.map +0 -1
  277. package/runtime/gateways/file/index.d.ts +0 -3
  278. package/runtime/gateways/file/index.d.ts.map +0 -1
  279. package/runtime/gateways/file/index.js +0 -3
  280. package/runtime/gateways/file/index.js.map +0 -1
  281. package/runtime/gateways/file/key-bag-file.d.ts +0 -19
  282. package/runtime/gateways/file/key-bag-file.d.ts.map +0 -1
  283. package/runtime/gateways/file/key-bag-file.js +0 -40
  284. package/runtime/gateways/file/key-bag-file.js.map +0 -1
  285. package/runtime/gateways/file/node/get-sys-file-system.d.ts +0 -4
  286. package/runtime/gateways/file/node/get-sys-file-system.d.ts.map +0 -1
  287. package/runtime/gateways/file/node/get-sys-file-system.js +0 -11
  288. package/runtime/gateways/file/node/get-sys-file-system.js.map +0 -1
  289. package/runtime/gateways/file/node/index.d.ts +0 -2
  290. package/runtime/gateways/file/node/index.d.ts.map +0 -1
  291. package/runtime/gateways/file/node/index.js +0 -2
  292. package/runtime/gateways/file/node/index.js.map +0 -1
  293. package/runtime/gateways/file/node/node-filesystem.d.ts +0 -32
  294. package/runtime/gateways/file/node/node-filesystem.d.ts.map +0 -1
  295. package/runtime/gateways/file/node/node-filesystem.js +0 -37
  296. package/runtime/gateways/file/node/node-filesystem.js.map +0 -1
  297. package/runtime/gateways/file/node/to-array-buffer.d.ts +0 -2
  298. package/runtime/gateways/file/node/to-array-buffer.d.ts.map +0 -1
  299. package/runtime/gateways/file/node/to-array-buffer.js +0 -12
  300. package/runtime/gateways/file/node/to-array-buffer.js.map +0 -1
  301. package/runtime/gateways/file/sys-file-system-factory.d.ts +0 -4
  302. package/runtime/gateways/file/sys-file-system-factory.d.ts.map +0 -1
  303. package/runtime/gateways/file/sys-file-system-factory.js +0 -13
  304. package/runtime/gateways/file/sys-file-system-factory.js.map +0 -1
  305. package/runtime/gateways/file/utils.d.ts +0 -5
  306. package/runtime/gateways/file/utils.d.ts.map +0 -1
  307. package/runtime/gateways/file/utils.js +0 -27
  308. package/runtime/gateways/file/utils.js.map +0 -1
  309. package/runtime/gateways/file/version.d.ts +0 -2
  310. package/runtime/gateways/file/version.d.ts.map +0 -1
  311. package/runtime/gateways/file/version.js +0 -2
  312. package/runtime/gateways/file/version.js.map +0 -1
  313. package/runtime/gateways/fp-envelope-serialize.d.ts +0 -50
  314. package/runtime/gateways/fp-envelope-serialize.d.ts.map +0 -1
  315. package/runtime/gateways/fp-envelope-serialize.js +0 -141
  316. package/runtime/gateways/fp-envelope-serialize.js.map +0 -1
  317. package/runtime/gateways/index.d.ts +0 -6
  318. package/runtime/gateways/index.d.ts.map +0 -1
  319. package/runtime/gateways/index.js +0 -6
  320. package/runtime/gateways/index.js.map +0 -1
  321. package/runtime/gateways/indexeddb/gateway-impl.d.ts +0 -22
  322. package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +0 -1
  323. package/runtime/gateways/indexeddb/gateway-impl.js +0 -147
  324. package/runtime/gateways/indexeddb/gateway-impl.js.map +0 -1
  325. package/runtime/gateways/indexeddb/index.d.ts +0 -6
  326. package/runtime/gateways/indexeddb/index.d.ts.map +0 -1
  327. package/runtime/gateways/indexeddb/index.js +0 -6
  328. package/runtime/gateways/indexeddb/index.js.map +0 -1
  329. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +0 -15
  330. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +0 -1
  331. package/runtime/gateways/indexeddb/key-bag-indexeddb.js +0 -42
  332. package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +0 -1
  333. package/runtime/gateways/indexeddb-version.d.ts +0 -2
  334. package/runtime/gateways/indexeddb-version.d.ts.map +0 -1
  335. package/runtime/gateways/indexeddb-version.js +0 -2
  336. package/runtime/gateways/indexeddb-version.js.map +0 -1
  337. package/runtime/gateways/memory/gateway.d.ts +0 -18
  338. package/runtime/gateways/memory/gateway.d.ts.map +0 -1
  339. package/runtime/gateways/memory/gateway.js +0 -58
  340. package/runtime/gateways/memory/gateway.js.map +0 -1
  341. package/runtime/gateways/memory/version.d.ts +0 -2
  342. package/runtime/gateways/memory/version.d.ts.map +0 -1
  343. package/runtime/gateways/memory/version.js +0 -2
  344. package/runtime/gateways/memory/version.js.map +0 -1
  345. package/runtime/index.d.ts +0 -13
  346. package/runtime/index.d.ts.map +0 -1
  347. package/runtime/index.js +0 -13
  348. package/runtime/index.js.map +0 -1
  349. package/runtime/key-bag-memory.d.ts +0 -12
  350. package/runtime/key-bag-memory.d.ts.map +0 -1
  351. package/runtime/key-bag-memory.js +0 -23
  352. package/runtime/key-bag-memory.js.map +0 -1
  353. package/runtime/key-bag.d.ts +0 -85
  354. package/runtime/key-bag.d.ts.map +0 -1
  355. package/runtime/key-bag.js +0 -415
  356. package/runtime/key-bag.js.map +0 -1
  357. package/runtime/keyed-crypto.d.ts +0 -19
  358. package/runtime/keyed-crypto.d.ts.map +0 -1
  359. package/runtime/keyed-crypto.js +0 -192
  360. package/runtime/keyed-crypto.js.map +0 -1
  361. package/runtime/memory-sys-container.d.ts +0 -2
  362. package/runtime/memory-sys-container.d.ts.map +0 -1
  363. package/runtime/memory-sys-container.js +0 -2
  364. package/runtime/memory-sys-container.js.map +0 -1
  365. package/runtime/meta-key-hack.d.ts +0 -42
  366. package/runtime/meta-key-hack.d.ts.map +0 -1
  367. package/runtime/meta-key-hack.js +0 -201
  368. package/runtime/meta-key-hack.js.map +0 -1
  369. package/runtime/sts-service/index.d.ts +0 -40
  370. package/runtime/sts-service/index.d.ts.map +0 -1
  371. package/runtime/sts-service/index.js +0 -102
  372. package/runtime/sts-service/index.js.map +0 -1
  373. package/runtime/sys-container.d.ts +0 -2
  374. package/runtime/sys-container.d.ts.map +0 -1
  375. package/runtime/sys-container.js +0 -2
  376. package/runtime/sys-container.js.map +0 -1
  377. package/runtime/wait-pr-multiformats/block.d.ts +0 -47
  378. package/runtime/wait-pr-multiformats/block.d.ts.map +0 -1
  379. package/runtime/wait-pr-multiformats/block.js +0 -64
  380. package/runtime/wait-pr-multiformats/block.js.map +0 -1
  381. package/runtime/wait-pr-multiformats/codec-interface.d.ts +0 -29
  382. package/runtime/wait-pr-multiformats/codec-interface.d.ts.map +0 -1
  383. package/runtime/wait-pr-multiformats/codec-interface.js +0 -2
  384. package/runtime/wait-pr-multiformats/codec-interface.js.map +0 -1
  385. package/runtime/wait-pr-multiformats/index.d.ts +0 -3
  386. package/runtime/wait-pr-multiformats/index.d.ts.map +0 -1
  387. package/runtime/wait-pr-multiformats/index.js +0 -3
  388. package/runtime/wait-pr-multiformats/index.js.map +0 -1
  389. package/types.d.ts +0 -427
  390. package/types.d.ts.map +0 -1
  391. package/types.js +0 -54
  392. package/types.js.map +0 -1
  393. package/use-fireproof/index.d.ts +0 -3
  394. package/use-fireproof/index.d.ts.map +0 -1
  395. package/use-fireproof/index.js +0 -3
  396. package/use-fireproof/index.js.map +0 -1
  397. package/utils.d.ts +0 -36
  398. package/utils.d.ts.map +0 -1
  399. package/utils.js +0 -379
  400. package/utils.js.map +0 -1
  401. package/version.d.ts +0 -2
  402. package/version.d.ts.map +0 -1
  403. package/version.js +0 -4
  404. package/version.js.map +0 -1
  405. package/write-queue.d.ts +0 -9
  406. package/write-queue.d.ts.map +0 -1
  407. package/write-queue.js +0 -70
  408. package/write-queue.js.map +0 -1
@@ -1,496 +0,0 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _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
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../../../../src/runtime/gateways/cloud/gateway.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,73 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"def-serde-gateway.js","sourceRoot":"","sources":["../../../../../src/runtime/gateways/def-serde-gateway.ts"],"names":[],"mappings":"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"}