@fireproof/core 0.20.4 → 0.20.5-dev-preview-3

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 (437) 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 +19 -0
  6. package/blockstore/attachable-store.d.ts.map +1 -0
  7. package/blockstore/attachable-store.js +316 -0
  8. package/blockstore/attachable-store.js.map +1 -0
  9. package/blockstore/commit-queue.d.ts +17 -0
  10. package/blockstore/commit-queue.d.ts.map +1 -0
  11. package/blockstore/commit-queue.js +60 -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 +95 -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 +10 -0
  46. package/blockstore/loader-helpers.d.ts.map +1 -0
  47. package/blockstore/loader-helpers.js +115 -0
  48. package/blockstore/loader-helpers.js.map +1 -0
  49. package/blockstore/loader.d.ts +61 -0
  50. package/blockstore/loader.d.ts.map +1 -0
  51. package/blockstore/loader.js +494 -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 +104 -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 +86 -0
  70. package/blockstore/store.d.ts.map +1 -0
  71. package/blockstore/store.js +439 -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 +62 -0
  78. package/blockstore/transaction.d.ts.map +1 -0
  79. package/blockstore/transaction.js +261 -0
  80. package/blockstore/transaction.js.map +1 -0
  81. package/blockstore/types.d.ts +508 -0
  82. package/blockstore/types.d.ts.map +1 -0
  83. package/blockstore/types.js +83 -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 +26616 -0
  94. package/crdt-clock.d.ts +27 -0
  95. package/crdt-clock.d.ts.map +1 -0
  96. package/crdt-clock.js +138 -0
  97. package/crdt-clock.js.map +1 -0
  98. package/crdt-helpers.d.ts +19 -0
  99. package/crdt-helpers.d.ts.map +1 -0
  100. package/crdt-helpers.js +332 -0
  101. package/crdt-helpers.js.map +1 -0
  102. package/crdt.d.ts +41 -0
  103. package/crdt.d.ts.map +1 -0
  104. package/crdt.js +164 -0
  105. package/crdt.js.map +1 -0
  106. package/database.d.ts +34 -0
  107. package/database.d.ts.map +1 -0
  108. package/database.js +124 -0
  109. package/database.js.map +1 -0
  110. package/deno.json +2 -2
  111. package/index.d.ts +15 -2741
  112. package/index.d.ts.map +1 -0
  113. package/index.js +14 -7274
  114. package/index.js.map +1 -1
  115. package/indexer-helpers.d.ts +69 -0
  116. package/indexer-helpers.d.ts.map +1 -0
  117. package/indexer-helpers.js +136 -0
  118. package/indexer-helpers.js.map +1 -0
  119. package/indexer.d.ts +24 -0
  120. package/indexer.d.ts.map +1 -0
  121. package/indexer.js +230 -0
  122. package/indexer.js.map +1 -0
  123. package/ledger.d.ts +55 -0
  124. package/ledger.d.ts.map +1 -0
  125. package/ledger.js +234 -0
  126. package/ledger.js.map +1 -0
  127. package/package.json +26 -17
  128. package/protocols/cloud/http-connection.d.ts +25 -0
  129. package/protocols/cloud/http-connection.d.ts.map +1 -0
  130. package/protocols/cloud/http-connection.js +153 -0
  131. package/protocols/cloud/http-connection.js.map +1 -0
  132. package/protocols/cloud/index.d.ts +10 -0
  133. package/protocols/cloud/index.d.ts.map +1 -0
  134. package/protocols/cloud/index.js +10 -0
  135. package/protocols/cloud/index.js.map +1 -0
  136. package/protocols/cloud/msg-raw-connection-base.d.ts +16 -0
  137. package/protocols/cloud/msg-raw-connection-base.d.ts.map +1 -0
  138. package/protocols/cloud/msg-raw-connection-base.js +22 -0
  139. package/protocols/cloud/msg-raw-connection-base.js.map +1 -0
  140. package/protocols/cloud/msg-types-data.d.ts +36 -0
  141. package/protocols/cloud/msg-types-data.d.ts.map +1 -0
  142. package/protocols/cloud/msg-types-data.js +38 -0
  143. package/protocols/cloud/msg-types-data.js.map +1 -0
  144. package/protocols/cloud/msg-types-meta.d.ts +41 -0
  145. package/protocols/cloud/msg-types-meta.d.ts.map +1 -0
  146. package/protocols/cloud/msg-types-meta.js +98 -0
  147. package/protocols/cloud/msg-types-meta.js.map +1 -0
  148. package/protocols/cloud/msg-types-wal.d.ts +33 -0
  149. package/protocols/cloud/msg-types-wal.d.ts.map +1 -0
  150. package/protocols/cloud/msg-types-wal.js +38 -0
  151. package/protocols/cloud/msg-types-wal.js.map +1 -0
  152. package/protocols/cloud/msg-types.d.ts +282 -0
  153. package/protocols/cloud/msg-types.d.ts.map +1 -0
  154. package/protocols/cloud/msg-types.js +278 -0
  155. package/protocols/cloud/msg-types.js.map +1 -0
  156. package/protocols/cloud/msger.d.ts +79 -0
  157. package/protocols/cloud/msger.d.ts.map +1 -0
  158. package/protocols/cloud/msger.js +198 -0
  159. package/protocols/cloud/msger.js.map +1 -0
  160. package/protocols/cloud/ws-connection.d.ts +29 -0
  161. package/protocols/cloud/ws-connection.d.ts.map +1 -0
  162. package/protocols/cloud/ws-connection.js +166 -0
  163. package/protocols/cloud/ws-connection.js.map +1 -0
  164. package/protocols/index.d.ts +2 -0
  165. package/protocols/index.d.ts.map +1 -0
  166. package/protocols/index.js +2 -0
  167. package/protocols/index.js.map +1 -0
  168. package/react/create-attach.d.ts +6 -0
  169. package/react/create-attach.d.ts.map +1 -0
  170. package/react/create-attach.js +75 -0
  171. package/react/create-attach.js.map +1 -0
  172. package/react/{index.d.cts → img-file.d.ts} +6 -53
  173. package/react/img-file.d.ts.map +1 -0
  174. package/react/img-file.js +57 -0
  175. package/react/img-file.js.map +1 -0
  176. package/react/index.d.ts +5 -336
  177. package/react/index.d.ts.map +1 -0
  178. package/react/index.js +4 -269
  179. package/react/index.js.map +1 -1
  180. package/react/types.d.ts +71 -0
  181. package/react/types.d.ts.map +1 -0
  182. package/react/types.js +2 -0
  183. package/react/types.js.map +1 -0
  184. package/react/use-all-docs.d.ts +4 -0
  185. package/react/use-all-docs.d.ts.map +1 -0
  186. package/react/use-all-docs.js +25 -0
  187. package/react/use-all-docs.js.map +1 -0
  188. package/react/use-attach.d.ts +6 -0
  189. package/react/use-attach.d.ts.map +1 -0
  190. package/react/use-attach.js +75 -0
  191. package/react/use-attach.js.map +1 -0
  192. package/react/use-changes.d.ts +4 -0
  193. package/react/use-changes.d.ts.map +1 -0
  194. package/react/use-changes.js +19 -0
  195. package/react/use-changes.js.map +1 -0
  196. package/react/use-document.d.ts +4 -0
  197. package/react/use-document.d.ts.map +1 -0
  198. package/react/use-document.js +109 -0
  199. package/react/use-document.js.map +1 -0
  200. package/react/use-fireproof.d.ts +6 -0
  201. package/react/use-fireproof.d.ts.map +1 -0
  202. package/react/use-fireproof.js +20 -0
  203. package/react/use-fireproof.js.map +1 -0
  204. package/react/use-live-query.d.ts +4 -0
  205. package/react/use-live-query.d.ts.map +1 -0
  206. package/react/use-live-query.js +27 -0
  207. package/react/use-live-query.js.map +1 -0
  208. package/runtime/files.d.ts +12 -0
  209. package/runtime/files.d.ts.map +1 -0
  210. package/runtime/files.js +29 -0
  211. package/runtime/files.js.map +1 -0
  212. package/runtime/gateways/cloud/gateway.d.ts +42 -0
  213. package/runtime/gateways/cloud/gateway.d.ts.map +1 -0
  214. package/runtime/gateways/cloud/gateway.js +528 -0
  215. package/runtime/gateways/cloud/gateway.js.map +1 -0
  216. package/runtime/gateways/cloud/index.d.ts +3 -0
  217. package/runtime/gateways/cloud/index.d.ts.map +1 -0
  218. package/runtime/gateways/cloud/index.js +3 -0
  219. package/runtime/gateways/cloud/index.js.map +1 -0
  220. package/runtime/gateways/cloud/to-cloud.d.ts +46 -0
  221. package/runtime/gateways/cloud/to-cloud.d.ts.map +1 -0
  222. package/runtime/gateways/cloud/to-cloud.js +159 -0
  223. package/runtime/gateways/cloud/to-cloud.js.map +1 -0
  224. package/runtime/gateways/def-serde-gateway.d.ts +18 -0
  225. package/runtime/gateways/def-serde-gateway.d.ts.map +1 -0
  226. package/runtime/gateways/def-serde-gateway.js +89 -0
  227. package/runtime/gateways/def-serde-gateway.js.map +1 -0
  228. package/runtime/gateways/file/deno/deno-filesystem.d.ts +27 -0
  229. package/runtime/gateways/file/deno/deno-filesystem.d.ts.map +1 -0
  230. package/runtime/gateways/file/deno/deno-filesystem.js +52 -0
  231. package/runtime/gateways/file/deno/deno-filesystem.js.map +1 -0
  232. package/runtime/gateways/file/deno/get-sys-file-system.d.ts +4 -0
  233. package/runtime/gateways/file/deno/get-sys-file-system.d.ts.map +1 -0
  234. package/runtime/gateways/file/deno/get-sys-file-system.js +11 -0
  235. package/runtime/gateways/file/deno/get-sys-file-system.js.map +1 -0
  236. package/runtime/gateways/file/deno/index.d.ts +2 -0
  237. package/runtime/gateways/file/deno/index.d.ts.map +1 -0
  238. package/runtime/gateways/file/deno/index.js +2 -0
  239. package/runtime/gateways/file/deno/index.js.map +1 -0
  240. package/runtime/gateways/file/gateway-impl.d.ts +18 -0
  241. package/runtime/gateways/file/gateway-impl.d.ts.map +1 -0
  242. package/runtime/gateways/file/gateway-impl.js +121 -0
  243. package/runtime/gateways/file/gateway-impl.js.map +1 -0
  244. package/runtime/gateways/file/index.d.ts +3 -0
  245. package/runtime/gateways/file/index.d.ts.map +1 -0
  246. package/runtime/gateways/file/index.js +3 -0
  247. package/runtime/gateways/file/index.js.map +1 -0
  248. package/runtime/gateways/file/key-bag-file.d.ts +19 -0
  249. package/runtime/gateways/file/key-bag-file.d.ts.map +1 -0
  250. package/runtime/gateways/file/key-bag-file.js +40 -0
  251. package/runtime/gateways/file/key-bag-file.js.map +1 -0
  252. package/runtime/gateways/file/node/get-sys-file-system.d.ts +4 -0
  253. package/runtime/gateways/file/node/get-sys-file-system.d.ts.map +1 -0
  254. package/runtime/gateways/file/node/get-sys-file-system.js +11 -0
  255. package/runtime/gateways/file/node/get-sys-file-system.js.map +1 -0
  256. package/runtime/gateways/file/node/index.d.ts +2 -0
  257. package/runtime/gateways/file/node/index.d.ts.map +1 -0
  258. package/runtime/gateways/file/node/index.js +2 -0
  259. package/runtime/gateways/file/node/index.js.map +1 -0
  260. package/runtime/gateways/file/node/node-filesystem.d.ts +32 -0
  261. package/runtime/gateways/file/node/node-filesystem.d.ts.map +1 -0
  262. package/runtime/gateways/file/node/node-filesystem.js +33 -0
  263. package/runtime/gateways/file/node/node-filesystem.js.map +1 -0
  264. package/runtime/gateways/file/node/to-array-buffer.d.ts +2 -0
  265. package/runtime/gateways/file/node/to-array-buffer.d.ts.map +1 -0
  266. package/runtime/gateways/file/node/to-array-buffer.js +12 -0
  267. package/runtime/gateways/file/node/to-array-buffer.js.map +1 -0
  268. package/runtime/gateways/file/sys-file-system-factory.d.ts +4 -0
  269. package/runtime/gateways/file/sys-file-system-factory.d.ts.map +1 -0
  270. package/runtime/gateways/file/sys-file-system-factory.js +13 -0
  271. package/runtime/gateways/file/sys-file-system-factory.js.map +1 -0
  272. package/runtime/gateways/file/utils.d.ts +5 -0
  273. package/runtime/gateways/file/utils.d.ts.map +1 -0
  274. package/runtime/gateways/file/utils.js +27 -0
  275. package/runtime/gateways/file/utils.js.map +1 -0
  276. package/runtime/gateways/file/version.d.ts +2 -0
  277. package/runtime/gateways/file/version.d.ts.map +1 -0
  278. package/runtime/gateways/file/version.js +2 -0
  279. package/runtime/gateways/file/version.js.map +1 -0
  280. package/runtime/gateways/fp-envelope-serialize.d.ts +50 -0
  281. package/runtime/gateways/fp-envelope-serialize.d.ts.map +1 -0
  282. package/runtime/gateways/fp-envelope-serialize.js +141 -0
  283. package/runtime/gateways/fp-envelope-serialize.js.map +1 -0
  284. package/runtime/gateways/index.d.ts +6 -0
  285. package/runtime/gateways/index.d.ts.map +1 -0
  286. package/runtime/gateways/index.js +6 -0
  287. package/runtime/gateways/index.js.map +1 -0
  288. package/runtime/gateways/indexeddb/gateway-impl.d.ts +22 -0
  289. package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +1 -0
  290. package/runtime/gateways/indexeddb/gateway-impl.js +147 -0
  291. package/runtime/gateways/indexeddb/gateway-impl.js.map +1 -0
  292. package/runtime/gateways/indexeddb/index.d.ts +6 -0
  293. package/runtime/gateways/indexeddb/index.d.ts.map +1 -0
  294. package/runtime/gateways/indexeddb/index.js +6 -0
  295. package/runtime/gateways/indexeddb/index.js.map +1 -0
  296. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +15 -0
  297. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +1 -0
  298. package/runtime/gateways/indexeddb/key-bag-indexeddb.js +42 -0
  299. package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +1 -0
  300. package/runtime/gateways/indexeddb-version.d.ts +2 -0
  301. package/runtime/gateways/indexeddb-version.d.ts.map +1 -0
  302. package/runtime/gateways/indexeddb-version.js +2 -0
  303. package/runtime/gateways/indexeddb-version.js.map +1 -0
  304. package/runtime/gateways/memory/gateway.d.ts +18 -0
  305. package/runtime/gateways/memory/gateway.d.ts.map +1 -0
  306. package/runtime/gateways/memory/gateway.js +73 -0
  307. package/runtime/gateways/memory/gateway.js.map +1 -0
  308. package/runtime/gateways/memory/version.d.ts +2 -0
  309. package/runtime/gateways/memory/version.d.ts.map +1 -0
  310. package/runtime/gateways/memory/version.js +2 -0
  311. package/runtime/gateways/memory/version.js.map +1 -0
  312. package/runtime/index.d.ts +13 -0
  313. package/runtime/index.d.ts.map +1 -0
  314. package/runtime/index.js +13 -0
  315. package/runtime/index.js.map +1 -0
  316. package/runtime/key-bag-memory.d.ts +12 -0
  317. package/runtime/key-bag-memory.d.ts.map +1 -0
  318. package/runtime/key-bag-memory.js +23 -0
  319. package/runtime/key-bag-memory.js.map +1 -0
  320. package/runtime/key-bag.d.ts +85 -0
  321. package/runtime/key-bag.d.ts.map +1 -0
  322. package/runtime/key-bag.js +411 -0
  323. package/runtime/key-bag.js.map +1 -0
  324. package/runtime/keyed-crypto.d.ts +19 -0
  325. package/runtime/keyed-crypto.d.ts.map +1 -0
  326. package/runtime/keyed-crypto.js +192 -0
  327. package/runtime/keyed-crypto.js.map +1 -0
  328. package/runtime/memory-sys-container.d.ts +2 -0
  329. package/runtime/memory-sys-container.d.ts.map +1 -0
  330. package/runtime/memory-sys-container.js +2 -0
  331. package/runtime/memory-sys-container.js.map +1 -0
  332. package/runtime/meta-key-hack.d.ts +42 -0
  333. package/runtime/meta-key-hack.d.ts.map +1 -0
  334. package/runtime/meta-key-hack.js +201 -0
  335. package/runtime/meta-key-hack.js.map +1 -0
  336. package/runtime/sts-service/index.d.ts +40 -0
  337. package/runtime/sts-service/index.d.ts.map +1 -0
  338. package/runtime/sts-service/index.js +102 -0
  339. package/runtime/sts-service/index.js.map +1 -0
  340. package/runtime/sys-container.d.ts +2 -0
  341. package/runtime/sys-container.d.ts.map +1 -0
  342. package/runtime/sys-container.js +2 -0
  343. package/runtime/sys-container.js.map +1 -0
  344. package/runtime/wait-pr-multiformats/block.d.ts +47 -0
  345. package/runtime/wait-pr-multiformats/block.d.ts.map +1 -0
  346. package/runtime/wait-pr-multiformats/block.js +64 -0
  347. package/runtime/wait-pr-multiformats/block.js.map +1 -0
  348. package/runtime/wait-pr-multiformats/codec-interface.d.ts +29 -0
  349. package/runtime/wait-pr-multiformats/codec-interface.d.ts.map +1 -0
  350. package/runtime/wait-pr-multiformats/codec-interface.js +2 -0
  351. package/runtime/wait-pr-multiformats/codec-interface.js.map +1 -0
  352. package/runtime/wait-pr-multiformats/index.d.ts +3 -0
  353. package/runtime/wait-pr-multiformats/index.d.ts.map +1 -0
  354. package/runtime/wait-pr-multiformats/index.js +3 -0
  355. package/runtime/wait-pr-multiformats/index.js.map +1 -0
  356. package/tests/blockstore/interceptor-gateway.test.ts +10 -9
  357. package/tests/blockstore/keyed-crypto.test.ts +2 -2
  358. package/tests/blockstore/loader.test.ts +68 -51
  359. package/tests/blockstore/standalone.test.ts +152 -0
  360. package/tests/blockstore/store.test.ts +16 -9
  361. package/tests/blockstore/transaction.test.ts +19 -16
  362. package/tests/fireproof/all-gateway.test.ts +12 -27
  363. package/tests/fireproof/attachable.test.ts +426 -97
  364. package/tests/fireproof/crdt.test.ts +23 -0
  365. package/tests/fireproof/database.test.ts +13 -12
  366. package/tests/fireproof/fireproof.test.ts +2 -5
  367. package/tests/fireproof/indexer.test.ts +4 -0
  368. package/tests/helpers.ts +30 -14
  369. package/tests/react/img-file.test.tsx +0 -9
  370. package/tests/react/use-fireproof-stability.test.tsx +5 -5
  371. package/tests/react/use-fireproof.test.tsx +18 -13
  372. package/tests/runtime/meta-key-hack.test.ts +7 -6
  373. package/tests/setup.indexeddb.ts +0 -9
  374. package/types.d.ts +460 -0
  375. package/types.d.ts.map +1 -0
  376. package/types.js +60 -0
  377. package/types.js.map +1 -0
  378. package/use-fireproof/iframe-strategy.d.ts +13 -0
  379. package/use-fireproof/iframe-strategy.d.ts.map +1 -0
  380. package/use-fireproof/iframe-strategy.js +83 -0
  381. package/use-fireproof/iframe-strategy.js.map +1 -0
  382. package/use-fireproof/index.d.ts +10 -0
  383. package/use-fireproof/index.d.ts.map +1 -0
  384. package/use-fireproof/index.js +16 -0
  385. package/use-fireproof/index.js.map +1 -0
  386. package/use-fireproof/redirect-strategy.d.ts +8 -0
  387. package/use-fireproof/redirect-strategy.d.ts.map +1 -0
  388. package/use-fireproof/redirect-strategy.js +31 -0
  389. package/use-fireproof/redirect-strategy.js.map +1 -0
  390. package/utils.d.ts +45 -0
  391. package/utils.d.ts.map +1 -0
  392. package/utils.js +406 -0
  393. package/utils.js.map +1 -0
  394. package/version.d.ts +2 -0
  395. package/version.d.ts.map +1 -0
  396. package/version.js +4 -0
  397. package/version.js.map +1 -0
  398. package/write-queue.d.ts +9 -0
  399. package/write-queue.d.ts.map +1 -0
  400. package/write-queue.js +70 -0
  401. package/write-queue.js.map +1 -0
  402. package/deno/index.d.ts +0 -7
  403. package/deno/index.js +0 -66
  404. package/deno/index.js.map +0 -1
  405. package/deno/metafile-esm.json +0 -1
  406. package/index.cjs +0 -7275
  407. package/index.cjs.map +0 -1
  408. package/index.d.cts +0 -2741
  409. package/indexeddb/index.cjs +0 -218
  410. package/indexeddb/index.cjs.map +0 -1
  411. package/indexeddb/index.d.cts +0 -30
  412. package/indexeddb/index.d.ts +0 -30
  413. package/indexeddb/index.js +0 -195
  414. package/indexeddb/index.js.map +0 -1
  415. package/indexeddb/metafile-cjs.json +0 -1
  416. package/indexeddb/metafile-esm.json +0 -1
  417. package/metafile-cjs.json +0 -1
  418. package/metafile-esm.json +0 -1
  419. package/node/index.cjs +0 -97
  420. package/node/index.cjs.map +0 -1
  421. package/node/index.d.cts +0 -7
  422. package/node/index.d.ts +0 -7
  423. package/node/index.js +0 -64
  424. package/node/index.js.map +0 -1
  425. package/node/metafile-cjs.json +0 -1
  426. package/node/metafile-esm.json +0 -1
  427. package/react/index.cjs +0 -303
  428. package/react/index.cjs.map +0 -1
  429. package/react/metafile-cjs.json +0 -1
  430. package/react/metafile-esm.json +0 -1
  431. package/tests/www/gallery.html +0 -132
  432. package/tests/www/iife.html +0 -42
  433. package/tests/www/todo-aws.html +0 -232
  434. package/tests/www/todo-ipfs.html +0 -213
  435. package/tests/www/todo-local.html +0 -214
  436. package/tests/www/todo-netlify.html +0 -227
  437. package/tests/www/todo.html +0 -254
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../../../../../src/runtime/gateways/cloud/gateway.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EACN,GAAG,EAGH,MAAM,EAEN,WAAW,EAIZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAgBnD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAA0B,MAAM,mCAAmC,CAAC;AAU3G,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAEpI,OAAO,EAAE,UAAU,EAAE,cAAc,EAAiB,MAAM,oCAAoC,CAAC;AAmB/F,KAAK,wBAAwB,GAAG,eAAe,GAAG;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE7E,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9F,MAAM,EAAE,CAAC,GAAG,EAAE,wBAAwB,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAC1E;AA8ZD,UAAU,cAAc;IAGtB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC;AAeD,qBAAa,qBAAsB,YAAW,YAAY;;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;gBAGd,KAAK,EAAE,SAAS;IAQtB,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAI/E,KAAK,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAgB3D,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAUlE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBhF,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAS3D,KAAK,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IA4BhE,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,MAAM;IAuBhC,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,cAAc,GAAG,IAAI;IAIlE,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsC3E,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwExH,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAS5D,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;CAS9C;AAGD,wBAAgB,mCAAmC,CAAC,QAAQ,SAAa,cAaxE"}
@@ -0,0 +1,528 @@
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, BuildURI, Future, } 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, hashObject, 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
+ methodParam: {
52
+ method,
53
+ store,
54
+ },
55
+ urlParam: {
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 CurrentMeta {
172
+ constructor(subscriptions) {
173
+ this.boundGetMeta = new KeyedResolvOnce();
174
+ this.currentMeta = new KeyedResolvOnce();
175
+ this.valueReady = new Future();
176
+ this.subscriptions = subscriptions;
177
+ }
178
+ async get(ctx, authType, reqSignedUrl, gwCtx) {
179
+ const key = await hashObject(ctx.conn.conn.Ok().conn);
180
+ const item = this.boundGetMeta.get(key);
181
+ item
182
+ .once(async () => {
183
+ const res = ctx.conn.conn
184
+ .Ok()
185
+ .bind(buildBindGetMeta(ctx.loader.sthis, authType, reqSignedUrl, gwCtx), {
186
+ waitFor: MsgIsEventGetMeta,
187
+ });
188
+ for await (const msg of res) {
189
+ if (MsgIsEventGetMeta(msg)) {
190
+ const rV2Meta = await V2SerializedMetaKeyExtractKey(ctx, msg.meta);
191
+ const r = await decode2DbMetaEvents(ctx.loader.sthis, rV2Meta);
192
+ let value;
193
+ if (r.isErr()) {
194
+ value = Result.Err(r);
195
+ }
196
+ else {
197
+ value = Result.Ok({
198
+ type: "meta",
199
+ payload: r.Ok(),
200
+ });
201
+ }
202
+ this.value = value;
203
+ this.valueReady.resolve();
204
+ this.valueReady = new Future();
205
+ this.currentMeta.get(key).reset();
206
+ if (value.isOk()) {
207
+ for (const cb of this.subscriptions.values()) {
208
+ await cb(value.Ok());
209
+ }
210
+ }
211
+ }
212
+ }
213
+ ctx.loader.logger.Error().Msg("Error bind should not end");
214
+ })
215
+ .catch((err) => {
216
+ ctx.loader.logger.Error().Err(err).Msg("Error in bindGetMeta");
217
+ });
218
+ return this.currentMeta.get(key).once(async () => {
219
+ if (!this.value) {
220
+ await this.valueReady.asPromise();
221
+ }
222
+ const rDbMeta = this.value;
223
+ if (!rDbMeta) {
224
+ return ctx.loader.logger.Error().Msg("No value").ResultError();
225
+ }
226
+ return rDbMeta;
227
+ });
228
+ }
229
+ }
230
+ class MetaGateway extends BaseGateway {
231
+ constructor(sthis) {
232
+ super(sthis, "MetaGateway");
233
+ this.subscriptions = new Map();
234
+ this.currentMeta = new CurrentMeta(this.subscriptions);
235
+ }
236
+ async subscribe(ctx, uri, callback) {
237
+ const key = ctx.loader.sthis.nextId().str;
238
+ const unsub = () => {
239
+ this.subscriptions.delete(key);
240
+ };
241
+ this.subscriptions.set(key, callback);
242
+ return Result.Ok(unsub);
243
+ }
244
+ async get(ctx, uri) {
245
+ const reqSignedUrl = await this.buildReqSignedUrl("bindGetMeta", "GET", "meta", uri, ctx.conn);
246
+ if (MsgIsError(reqSignedUrl)) {
247
+ return this.logger.Error().Err(reqSignedUrl).Msg("Error in buildReqSignedUrl").ResultError();
248
+ }
249
+ const rGwCtx = getGwCtx(ctx.conn.conn.Ok().conn, uri);
250
+ if (rGwCtx.isErr()) {
251
+ return Result.Err(rGwCtx);
252
+ }
253
+ const rAuthType = await ctx.conn.conn.Ok().authType();
254
+ if (rAuthType.isErr()) {
255
+ return Result.Err(rAuthType);
256
+ }
257
+ const rMeta = await this.currentMeta.get(ctx, rAuthType.Ok(), reqSignedUrl, rGwCtx.Ok());
258
+ if (rMeta.isErr()) {
259
+ return Result.Err(rMeta);
260
+ }
261
+ return Result.Ok(rMeta.Ok());
262
+ }
263
+ async put(ctx, uri, imeta) {
264
+ const meta = imeta;
265
+ const reqSignedUrl = await this.buildReqSignedUrl("reqPutMeta", "PUT", "meta", uri, ctx.conn);
266
+ if (MsgIsError(reqSignedUrl)) {
267
+ return this.logger.Error().Err(reqSignedUrl).Msg("Error in buildReqSignedUrl").ResultError();
268
+ }
269
+ const rGwCtx = getGwCtx(ctx.conn.conn.Ok().conn, uri);
270
+ if (rGwCtx.isErr()) {
271
+ return Result.Err(rGwCtx);
272
+ }
273
+ const rAuthType = await ctx.conn.conn.Ok().authType();
274
+ if (rAuthType.isErr()) {
275
+ return Result.Err(rAuthType);
276
+ }
277
+ const serializedMeta = await dbMetaEvent2Serialized(ctx.loader.sthis, meta.payload);
278
+ const rKeyedMeta = await encodeAsV2SerializedMetaKey(ctx, serializedMeta);
279
+ if (rKeyedMeta.isErr()) {
280
+ return rKeyedMeta;
281
+ }
282
+ const reqPutMeta = buildReqPutMeta(ctx.loader.sthis, rAuthType.Ok(), reqSignedUrl.urlParam, rKeyedMeta.Ok(), rGwCtx.Ok());
283
+ const resMsg = await ctx.conn.conn.Ok().request(reqPutMeta, {
284
+ waitFor: MsgIsResPutMeta,
285
+ });
286
+ if (MsgIsError(resMsg)) {
287
+ return this.logger.Error().Err(resMsg).Msg("Error in buildResSignedUrl").ResultError();
288
+ }
289
+ return Result.Ok(undefined);
290
+ }
291
+ async delete(ctx, uri) {
292
+ const reqSignedUrl = await this.getReqSignedUrl("reqDelMeta", "DELETE", "meta", MsgIsResDelData, uri, ctx.conn);
293
+ if (MsgIsError(reqSignedUrl)) {
294
+ return this.logger.Error().Err(reqSignedUrl).Msg("Error in buildReqSignedUrl").ResultError();
295
+ }
296
+ const rGwCtx = getGwCtx(ctx.conn.conn.Ok().conn, uri);
297
+ if (rGwCtx.isErr()) {
298
+ return Result.Err(rGwCtx);
299
+ }
300
+ const rAuthType = await ctx.conn.conn.Ok().authType();
301
+ if (rAuthType.isErr()) {
302
+ return Result.Err(rAuthType);
303
+ }
304
+ const reqDelMeta = buildReqDelMeta(ctx.loader.sthis, rAuthType.Ok(), reqSignedUrl.urlParam, rGwCtx.Ok());
305
+ const resMsg = await ctx.conn.conn.Ok().request(reqDelMeta, {
306
+ waitFor: MsgIsResDelData,
307
+ });
308
+ if (MsgIsError(resMsg)) {
309
+ return this.logger.Error().Err(resMsg).Msg("Error in buildResSignedUrl").ResultError();
310
+ }
311
+ return Result.Ok(undefined);
312
+ }
313
+ }
314
+ class WALGateway extends BaseGateway {
315
+ constructor(sthis) {
316
+ super(sthis, "WALGateway");
317
+ this.wals = new Map();
318
+ }
319
+ getWalKeyFromUri(uri) {
320
+ const rKey = uri.getParamsResult({
321
+ key: 0,
322
+ name: 0,
323
+ });
324
+ if (rKey.isErr()) {
325
+ return Result.Err(rKey.Err());
326
+ }
327
+ const { name, key } = rKey.Ok();
328
+ return Result.Ok(`${name}:${key}`);
329
+ }
330
+ async get(ctx, uri) {
331
+ const rKey = this.getWalKeyFromUri(uri);
332
+ if (rKey.isErr()) {
333
+ return Result.Err(rKey.Err());
334
+ }
335
+ const wal = this.wals.get(rKey.Ok());
336
+ if (!wal) {
337
+ return Result.Err(new NotFoundError("Not found"));
338
+ }
339
+ return Result.Ok(wal);
340
+ }
341
+ async put(ctx, uri, body) {
342
+ const rKey = this.getWalKeyFromUri(uri);
343
+ if (rKey.isErr()) {
344
+ return Result.Err(rKey.Err());
345
+ }
346
+ this.wals.set(rKey.Ok(), body);
347
+ return Result.Ok(undefined);
348
+ }
349
+ async delete(ctx, uri) {
350
+ const rKey = this.getWalKeyFromUri(uri);
351
+ if (rKey.isErr()) {
352
+ return Result.Err(rKey.Err());
353
+ }
354
+ this.wals.delete(rKey.Ok());
355
+ return Result.Ok(undefined);
356
+ }
357
+ }
358
+ const storeTypedGateways = new KeyedResolvOnce();
359
+ function getStoreTypeGateway(sthis, uri) {
360
+ const store = uri.getParam("store");
361
+ switch (store) {
362
+ case "file":
363
+ case "car":
364
+ return storeTypedGateways.get(store).once(() => new DataGateway(sthis));
365
+ case "meta":
366
+ return storeTypedGateways.get(store).once(() => new MetaGateway(sthis));
367
+ case "wal":
368
+ return storeTypedGateways.get(store).once(() => new WALGateway(sthis));
369
+ default:
370
+ throw ensureLogger(sthis, "getStoreTypeGateway").Error().Str("store", store).Msg("Invalid store type").ResultError();
371
+ }
372
+ }
373
+ const subscriptions = new Map();
374
+ export class FireproofCloudGateway {
375
+ constructor(sthis) {
376
+ _FireproofCloudGateway_connectionURIs.set(this, new KeyedResolvOnce());
377
+ this.sthis = sthis;
378
+ this.logger = ensureLogger(sthis, "FireproofCloudGateway", {
379
+ this: true,
380
+ });
381
+ }
382
+ async buildUrl(ctx, baseUrl, key) {
383
+ return Result.Ok(baseUrl.build().setParam("key", key).URI());
384
+ }
385
+ async start(ctx, uri) {
386
+ await this.sthis.start();
387
+ const ret = uri.build().defParam("version", VERSION);
388
+ ret.defParam("protocol", "wss");
389
+ const retURI = ret.URI();
390
+ this.registerConnectionURI(retURI, () => ({
391
+ connection: new ResolveOnce(),
392
+ trackPuts: new Set(),
393
+ }));
394
+ return Result.Ok(retURI);
395
+ }
396
+ async get(ctx, uri) {
397
+ const conn = await this.getCloudConnectionItem(ctx.loader.logger, uri);
398
+ if (conn.conn.isErr()) {
399
+ return Result.Err(conn.conn);
400
+ }
401
+ const ret = await getStoreTypeGateway(ctx.loader.sthis, uri).get({ ...ctx, conn }, uri);
402
+ return ret;
403
+ }
404
+ async put(ctx, uri, body) {
405
+ const conn = await this.getCloudConnectionItem(ctx.loader.logger, uri);
406
+ if (conn.conn.isErr()) {
407
+ return conn.conn;
408
+ }
409
+ const ret = await getStoreTypeGateway(ctx.loader.sthis, uri).put({ ...ctx, conn }, uri, body);
410
+ if (ret.isOk()) {
411
+ if (uri.getParam("testMode")) {
412
+ conn.citem.trackPuts.add(uri.toString());
413
+ }
414
+ }
415
+ return ret;
416
+ }
417
+ async delete(ctx, uri) {
418
+ const conn = await this.getCloudConnectionItem(ctx.loader.logger, uri);
419
+ if (conn.conn.isErr()) {
420
+ return conn.conn;
421
+ }
422
+ conn.citem.trackPuts.delete(uri.toString());
423
+ return getStoreTypeGateway(ctx.loader.sthis, uri).delete({ ...ctx, conn }, uri);
424
+ }
425
+ async close(ctx, uri) {
426
+ const uriStr = uri.toString();
427
+ for (const sub of Array.from(subscriptions.values())) {
428
+ for (const s of sub) {
429
+ if (s.uri.toString() === uriStr) {
430
+ s.unsub();
431
+ }
432
+ }
433
+ }
434
+ const rConn = await this.getCloudConnectionItem(ctx.loader.logger, uri);
435
+ if (rConn.conn.isErr()) {
436
+ return this.logger.Error().Err(rConn).Msg("Error in getCloudConnection").ResultError();
437
+ }
438
+ const conn = rConn.conn.Ok();
439
+ const rAuth = await conn.msgConnAuth();
440
+ await conn.close(rAuth.Ok());
441
+ __classPrivateFieldGet(this, _FireproofCloudGateway_connectionURIs, "f").unget(this.matchURI(uri)());
442
+ return Result.Ok(undefined);
443
+ }
444
+ matchURI(uri) {
445
+ let protocol = uri.getParam("protocol", "https");
446
+ switch (protocol) {
447
+ case "wss":
448
+ protocol = "https";
449
+ break;
450
+ case "ws":
451
+ protocol = "http";
452
+ break;
453
+ case "http":
454
+ break;
455
+ case "https":
456
+ default:
457
+ protocol = "https";
458
+ break;
459
+ }
460
+ const matchURI = BuildURI.from(uri).cleanParams().protocol(protocol).URI().toString();
461
+ return () => {
462
+ return matchURI;
463
+ };
464
+ }
465
+ registerConnectionURI(uri, itemFactory) {
466
+ __classPrivateFieldGet(this, _FireproofCloudGateway_connectionURIs, "f").get(this.matchURI(uri)).once(itemFactory);
467
+ }
468
+ async getCloudConnectionItem(logger, uri) {
469
+ const item = __classPrivateFieldGet(this, _FireproofCloudGateway_connectionURIs, "f").get(this.matchURI(uri));
470
+ const bestMatch = item.value;
471
+ if (!item.ready || !bestMatch) {
472
+ return { conn: logger.Error().Url(uri).Msg("Connection not ready").ResultError(), citem: {} };
473
+ }
474
+ const conn = await bestMatch.connection.once(async () => {
475
+ const rParams = uri.getParamsResult({
476
+ protocol: "https",
477
+ });
478
+ if (rParams.isErr()) {
479
+ return this.logger.Error().Url(uri).Err(rParams).Msg("getCloudConnection:err").ResultError();
480
+ }
481
+ const params = rParams.Ok();
482
+ const rAuth = await authTypeFromUri(this.logger, uri);
483
+ if (rAuth.isErr()) {
484
+ return Result.Err(rAuth);
485
+ }
486
+ const qOpen = buildReqOpen(this.sthis, rAuth.Ok(), {});
487
+ const cUrl = uri.build().protocol(params.protocol).cleanParams().URI();
488
+ return Msger.connect(this.sthis, rAuth.Ok(), cUrl, qOpen);
489
+ });
490
+ if (conn.isErr()) {
491
+ return { conn: Result.Err(conn), citem: bestMatch };
492
+ }
493
+ return { conn: Result.Ok(conn.Ok().attachAuth(() => authTypeFromUri(this.logger, uri))), citem: bestMatch };
494
+ }
495
+ async subscribe(ctx, uri, callback) {
496
+ const metaGw = getStoreTypeGateway(ctx.loader.sthis, uri);
497
+ return metaGw.subscribe(ctx, uri, callback);
498
+ }
499
+ async destroy(ctx, uri) {
500
+ const item = await this.getCloudConnectionItem(ctx.loader.logger, uri);
501
+ if (item.conn.isErr()) {
502
+ return item.conn;
503
+ }
504
+ await Promise.all(Array.from(item.citem.trackPuts).map(async (k) => this.delete(ctx, URI.from(k))));
505
+ return Result.Ok(undefined);
506
+ }
507
+ async getPlain() {
508
+ return Result.Err(new Error("Not implemented"));
509
+ }
510
+ }
511
+ _FireproofCloudGateway_connectionURIs = new WeakMap();
512
+ const onceRegisterFireproofCloudStoreProtocol = new KeyedResolvOnce();
513
+ export function registerFireproofCloudStoreProtocol(protocol = "fpcloud:") {
514
+ return onceRegisterFireproofCloudStoreProtocol.get(protocol).once(() => {
515
+ URI.protocolHasHostpart(protocol);
516
+ return registerStoreProtocol({
517
+ protocol,
518
+ defaultURI() {
519
+ return URI.from("fpcloud://fireproof.cloud/");
520
+ },
521
+ serdegateway: async (sthis) => {
522
+ return new FireproofCloudGateway(sthis);
523
+ },
524
+ });
525
+ });
526
+ }
527
+ registerFireproofCloudStoreProtocol();
528
+ //# 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,3 @@
1
+ export * from "./gateway.js";
2
+ export * from "./to-cloud.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/runtime/gateways/cloud/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./gateway.js";
2
+ export * from "./to-cloud.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/runtime/gateways/cloud/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { CoerceURI, Logger, URI, AppContext } from "@adviser/cement";
2
+ import { Attachable } from "@fireproof/core";
3
+ export interface TokenStrategie {
4
+ open(logger: Logger, deviceId: string, opts: ToCloudOpts): void;
5
+ gatherToken(logger: Logger, opts: ToCloudOpts): Promise<string | undefined>;
6
+ waitForToken(logger: Logger, deviceId: string, opts: ToCloudOpts): Promise<string | undefined>;
7
+ }
8
+ export declare const ToCloudName = "toCloud";
9
+ export interface FPCloudRef {
10
+ readonly base: CoerceURI;
11
+ readonly car: CoerceURI;
12
+ readonly file: CoerceURI;
13
+ readonly meta: CoerceURI;
14
+ }
15
+ interface ToCloudBase {
16
+ readonly name: string;
17
+ readonly interval: number;
18
+ readonly refreshTokenPreset: number;
19
+ readonly context: AppContext;
20
+ readonly tenant?: string;
21
+ readonly ledger?: string;
22
+ }
23
+ export interface ToCloudRequiredOpts {
24
+ readonly urls: Partial<FPCloudRef>;
25
+ readonly strategy: TokenStrategie;
26
+ }
27
+ export type ToCloudOpts = ToCloudRequiredOpts & ToCloudBase;
28
+ export type ToCloudOptionalOpts = ToCloudRequiredOpts & Partial<ToCloudBase>;
29
+ export interface FPCloudUri {
30
+ readonly car: URI;
31
+ readonly file: URI;
32
+ readonly meta: URI;
33
+ }
34
+ export interface ToCloudAttachable extends Attachable {
35
+ token?: string;
36
+ }
37
+ export declare function toCloud(iopts: ToCloudOptionalOpts): ToCloudAttachable;
38
+ export declare class SimpleTokenStrategy implements TokenStrategie {
39
+ private jwk;
40
+ constructor(jwk: string);
41
+ open(): void;
42
+ gatherToken(): Promise<string | undefined>;
43
+ waitForToken(): Promise<string | undefined>;
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=to-cloud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-cloud.d.ts","sourceRoot":"","sources":["../../../../../../src/runtime/gateways/cloud/to-cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAE,MAAM,EAAe,GAAG,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAwC,MAAM,iBAAiB,CAAC;AAGnF,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAChE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5E,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChG;AAED,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG,WAAW,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAE7E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;CACpB;AA+BD,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA4KD,wBAAgB,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,iBAAiB,CAGrE;AAED,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,GAAG,CAAS;gBACR,GAAG,EAAE,MAAM;IAGvB,IAAI,IAAI,IAAI;IAIN,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI1C,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAIlD"}