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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (404) hide show
  1. package/apply-head-queue.d.ts +18 -0
  2. package/apply-head-queue.d.ts.map +1 -0
  3. package/apply-head-queue.js +47 -0
  4. package/apply-head-queue.js.map +1 -0
  5. package/blockstore/attachable-store.d.ts +17 -0
  6. package/blockstore/attachable-store.d.ts.map +1 -0
  7. package/blockstore/attachable-store.js +295 -0
  8. package/blockstore/attachable-store.js.map +1 -0
  9. package/blockstore/commit-queue.d.ts +12 -0
  10. package/blockstore/commit-queue.d.ts.map +1 -0
  11. package/blockstore/commit-queue.js +52 -0
  12. package/blockstore/commit-queue.js.map +1 -0
  13. package/blockstore/commitor.d.ts +21 -0
  14. package/blockstore/commitor.d.ts.map +1 -0
  15. package/blockstore/commitor.js +104 -0
  16. package/blockstore/commitor.js.map +1 -0
  17. package/blockstore/connect-raw.d.ts +2 -0
  18. package/blockstore/connect-raw.d.ts.map +1 -0
  19. package/blockstore/connect-raw.js +2 -0
  20. package/blockstore/connect-raw.js.map +1 -0
  21. package/blockstore/connection-base.d.ts +2 -0
  22. package/blockstore/connection-base.d.ts.map +1 -0
  23. package/blockstore/connection-base.js +2 -0
  24. package/blockstore/connection-base.js.map +1 -0
  25. package/blockstore/encrypt-helpers.d.ts +2 -0
  26. package/blockstore/encrypt-helpers.d.ts.map +1 -0
  27. package/blockstore/encrypt-helpers.js +2 -0
  28. package/blockstore/encrypt-helpers.js.map +1 -0
  29. package/blockstore/fp-envelope.d.ts +32 -0
  30. package/blockstore/fp-envelope.d.ts.map +1 -0
  31. package/blockstore/fp-envelope.js +14 -0
  32. package/blockstore/fp-envelope.js.map +1 -0
  33. package/blockstore/gateway.d.ts +20 -0
  34. package/blockstore/gateway.d.ts.map +1 -0
  35. package/blockstore/gateway.js +2 -0
  36. package/blockstore/gateway.js.map +1 -0
  37. package/blockstore/index.d.ts +16 -0
  38. package/blockstore/index.d.ts.map +1 -0
  39. package/blockstore/index.js +16 -0
  40. package/blockstore/index.js.map +1 -0
  41. package/blockstore/interceptor-gateway.d.ts +29 -0
  42. package/blockstore/interceptor-gateway.d.ts.map +1 -0
  43. package/blockstore/interceptor-gateway.js +137 -0
  44. package/blockstore/interceptor-gateway.js.map +1 -0
  45. package/blockstore/loader-helpers.d.ts +4 -0
  46. package/blockstore/loader-helpers.d.ts.map +1 -0
  47. package/blockstore/loader-helpers.js +16 -0
  48. package/blockstore/loader-helpers.js.map +1 -0
  49. package/blockstore/loader.d.ts +45 -0
  50. package/blockstore/loader.d.ts.map +1 -0
  51. package/blockstore/loader.js +352 -0
  52. package/blockstore/loader.js.map +1 -0
  53. package/blockstore/register-store-protocol.d.ts +22 -0
  54. package/blockstore/register-store-protocol.d.ts.map +1 -0
  55. package/blockstore/register-store-protocol.js +114 -0
  56. package/blockstore/register-store-protocol.js.map +1 -0
  57. package/blockstore/serde-gateway.d.ts +78 -0
  58. package/blockstore/serde-gateway.d.ts.map +1 -0
  59. package/blockstore/serde-gateway.js +2 -0
  60. package/blockstore/serde-gateway.js.map +1 -0
  61. package/blockstore/store-factory.d.ts +11 -0
  62. package/blockstore/store-factory.d.ts.map +1 -0
  63. package/blockstore/store-factory.js +105 -0
  64. package/blockstore/store-factory.js.map +1 -0
  65. package/blockstore/store-remote.d.ts +2 -0
  66. package/blockstore/store-remote.d.ts.map +1 -0
  67. package/blockstore/store-remote.js +2 -0
  68. package/blockstore/store-remote.js.map +1 -0
  69. package/blockstore/store.d.ts +82 -0
  70. package/blockstore/store.d.ts.map +1 -0
  71. package/blockstore/store.js +438 -0
  72. package/blockstore/store.js.map +1 -0
  73. package/blockstore/task-manager.d.ts +19 -0
  74. package/blockstore/task-manager.d.ts.map +1 -0
  75. package/blockstore/task-manager.js +50 -0
  76. package/blockstore/task-manager.js.map +1 -0
  77. package/blockstore/transaction.d.ts +64 -0
  78. package/blockstore/transaction.d.ts.map +1 -0
  79. package/blockstore/transaction.js +249 -0
  80. package/blockstore/transaction.js.map +1 -0
  81. package/blockstore/types.d.ts +400 -0
  82. package/blockstore/types.d.ts.map +1 -0
  83. package/blockstore/types.js +55 -0
  84. package/blockstore/types.js.map +1 -0
  85. package/blockstore/uri-interceptor.d.ts +19 -0
  86. package/blockstore/uri-interceptor.d.ts.map +1 -0
  87. package/blockstore/uri-interceptor.js +61 -0
  88. package/blockstore/uri-interceptor.js.map +1 -0
  89. package/bundle-not-impl.d.ts +2 -0
  90. package/bundle-not-impl.d.ts.map +1 -0
  91. package/bundle-not-impl.js +4 -0
  92. package/bundle-not-impl.js.map +1 -0
  93. package/cli/main.js +26114 -0
  94. package/context.d.ts +7 -0
  95. package/context.d.ts.map +1 -0
  96. package/context.js +15 -0
  97. package/context.js.map +1 -0
  98. package/crdt-clock.d.ts +27 -0
  99. package/crdt-clock.d.ts.map +1 -0
  100. package/crdt-clock.js +140 -0
  101. package/crdt-clock.js.map +1 -0
  102. package/crdt-helpers.d.ts +16 -0
  103. package/crdt-helpers.d.ts.map +1 -0
  104. package/crdt-helpers.js +316 -0
  105. package/crdt-helpers.js.map +1 -0
  106. package/crdt.d.ts +34 -0
  107. package/crdt.d.ts.map +1 -0
  108. package/crdt.js +131 -0
  109. package/crdt.js.map +1 -0
  110. package/database.d.ts +34 -0
  111. package/database.d.ts.map +1 -0
  112. package/database.js +121 -0
  113. package/database.js.map +1 -0
  114. package/index.d.ts +15 -2742
  115. package/index.d.ts.map +1 -0
  116. package/index.js +14 -7267
  117. package/index.js.map +1 -1
  118. package/indexer-helpers.d.ts +69 -0
  119. package/indexer-helpers.d.ts.map +1 -0
  120. package/indexer-helpers.js +135 -0
  121. package/indexer-helpers.js.map +1 -0
  122. package/indexer.d.ts +25 -0
  123. package/indexer.d.ts.map +1 -0
  124. package/indexer.js +231 -0
  125. package/indexer.js.map +1 -0
  126. package/ledger.d.ts +56 -0
  127. package/ledger.d.ts.map +1 -0
  128. package/ledger.js +224 -0
  129. package/ledger.js.map +1 -0
  130. package/package.json +18 -15
  131. package/protocols/cloud/http-connection.d.ts +25 -0
  132. package/protocols/cloud/http-connection.d.ts.map +1 -0
  133. package/protocols/cloud/http-connection.js +153 -0
  134. package/protocols/cloud/http-connection.js.map +1 -0
  135. package/protocols/cloud/index.d.ts +10 -0
  136. package/protocols/cloud/index.d.ts.map +1 -0
  137. package/protocols/cloud/index.js +10 -0
  138. package/protocols/cloud/index.js.map +1 -0
  139. package/protocols/cloud/msg-raw-connection-base.d.ts +16 -0
  140. package/protocols/cloud/msg-raw-connection-base.d.ts.map +1 -0
  141. package/protocols/cloud/msg-raw-connection-base.js +22 -0
  142. package/protocols/cloud/msg-raw-connection-base.js.map +1 -0
  143. package/protocols/cloud/msg-types-data.d.ts +36 -0
  144. package/protocols/cloud/msg-types-data.d.ts.map +1 -0
  145. package/protocols/cloud/msg-types-data.js +38 -0
  146. package/protocols/cloud/msg-types-data.js.map +1 -0
  147. package/protocols/cloud/msg-types-meta.d.ts +41 -0
  148. package/protocols/cloud/msg-types-meta.d.ts.map +1 -0
  149. package/protocols/cloud/msg-types-meta.js +98 -0
  150. package/protocols/cloud/msg-types-meta.js.map +1 -0
  151. package/protocols/cloud/msg-types-wal.d.ts +33 -0
  152. package/protocols/cloud/msg-types-wal.d.ts.map +1 -0
  153. package/protocols/cloud/msg-types-wal.js +38 -0
  154. package/protocols/cloud/msg-types-wal.js.map +1 -0
  155. package/protocols/cloud/msg-types.d.ts +279 -0
  156. package/protocols/cloud/msg-types.d.ts.map +1 -0
  157. package/protocols/cloud/msg-types.js +278 -0
  158. package/protocols/cloud/msg-types.js.map +1 -0
  159. package/protocols/cloud/msger.d.ts +79 -0
  160. package/protocols/cloud/msger.d.ts.map +1 -0
  161. package/protocols/cloud/msger.js +198 -0
  162. package/protocols/cloud/msger.js.map +1 -0
  163. package/protocols/cloud/ws-connection.d.ts +29 -0
  164. package/protocols/cloud/ws-connection.d.ts.map +1 -0
  165. package/protocols/cloud/ws-connection.js +163 -0
  166. package/protocols/cloud/ws-connection.js.map +1 -0
  167. package/protocols/index.d.ts +2 -0
  168. package/protocols/index.d.ts.map +1 -0
  169. package/protocols/index.js +2 -0
  170. package/protocols/index.js.map +1 -0
  171. package/react/{index.d.cts → img-file.d.ts} +6 -53
  172. package/react/img-file.d.ts.map +1 -0
  173. package/react/img-file.js +58 -0
  174. package/react/img-file.js.map +1 -0
  175. package/react/index.d.ts +4 -336
  176. package/react/index.d.ts.map +1 -0
  177. package/react/index.js +3 -263
  178. package/react/index.js.map +1 -1
  179. package/react/types.d.ts +43 -0
  180. package/react/types.d.ts.map +1 -0
  181. package/react/types.js +2 -0
  182. package/react/types.js.map +1 -0
  183. package/react/use-all-docs.d.ts +4 -0
  184. package/react/use-all-docs.d.ts.map +1 -0
  185. package/react/use-all-docs.js +19 -0
  186. package/react/use-all-docs.js.map +1 -0
  187. package/react/use-changes.d.ts +4 -0
  188. package/react/use-changes.d.ts.map +1 -0
  189. package/react/use-changes.js +19 -0
  190. package/react/use-changes.js.map +1 -0
  191. package/react/use-document.d.ts +4 -0
  192. package/react/use-document.d.ts.map +1 -0
  193. package/react/use-document.js +99 -0
  194. package/react/use-document.js.map +1 -0
  195. package/react/use-fireproof.d.ts +6 -0
  196. package/react/use-fireproof.d.ts.map +1 -0
  197. package/react/use-fireproof.js +15 -0
  198. package/react/use-fireproof.js.map +1 -0
  199. package/react/use-live-query.d.ts +4 -0
  200. package/react/use-live-query.d.ts.map +1 -0
  201. package/react/use-live-query.js +38 -0
  202. package/react/use-live-query.js.map +1 -0
  203. package/react/utils.d.ts +2 -0
  204. package/react/utils.d.ts.map +1 -0
  205. package/react/utils.js +4 -0
  206. package/react/utils.js.map +1 -0
  207. package/runtime/files.d.ts +12 -0
  208. package/runtime/files.d.ts.map +1 -0
  209. package/runtime/files.js +29 -0
  210. package/runtime/files.js.map +1 -0
  211. package/runtime/gateways/cloud/gateway.d.ts +44 -0
  212. package/runtime/gateways/cloud/gateway.d.ts.map +1 -0
  213. package/runtime/gateways/cloud/gateway.js +496 -0
  214. package/runtime/gateways/cloud/gateway.js.map +1 -0
  215. package/runtime/gateways/def-serde-gateway.d.ts +19 -0
  216. package/runtime/gateways/def-serde-gateway.d.ts.map +1 -0
  217. package/runtime/gateways/def-serde-gateway.js +73 -0
  218. package/runtime/gateways/def-serde-gateway.js.map +1 -0
  219. package/runtime/gateways/file/deno/deno-filesystem.d.ts +27 -0
  220. package/runtime/gateways/file/deno/deno-filesystem.d.ts.map +1 -0
  221. package/runtime/gateways/file/deno/deno-filesystem.js +51 -0
  222. package/runtime/gateways/file/deno/deno-filesystem.js.map +1 -0
  223. package/runtime/gateways/file/deno/get-sys-file-system.d.ts +4 -0
  224. package/runtime/gateways/file/deno/get-sys-file-system.d.ts.map +1 -0
  225. package/runtime/gateways/file/deno/get-sys-file-system.js +11 -0
  226. package/runtime/gateways/file/deno/get-sys-file-system.js.map +1 -0
  227. package/runtime/gateways/file/deno/index.d.ts +2 -0
  228. package/runtime/gateways/file/deno/index.d.ts.map +1 -0
  229. package/runtime/gateways/file/deno/index.js +2 -0
  230. package/runtime/gateways/file/deno/index.js.map +1 -0
  231. package/runtime/gateways/file/gateway-impl.d.ts +18 -0
  232. package/runtime/gateways/file/gateway-impl.d.ts.map +1 -0
  233. package/runtime/gateways/file/gateway-impl.js +121 -0
  234. package/runtime/gateways/file/gateway-impl.js.map +1 -0
  235. package/runtime/gateways/file/index.d.ts +3 -0
  236. package/runtime/gateways/file/index.d.ts.map +1 -0
  237. package/runtime/gateways/file/index.js +3 -0
  238. package/runtime/gateways/file/index.js.map +1 -0
  239. package/runtime/gateways/file/key-bag-file.d.ts +19 -0
  240. package/runtime/gateways/file/key-bag-file.d.ts.map +1 -0
  241. package/runtime/gateways/file/key-bag-file.js +40 -0
  242. package/runtime/gateways/file/key-bag-file.js.map +1 -0
  243. package/runtime/gateways/file/node/get-sys-file-system.d.ts +4 -0
  244. package/runtime/gateways/file/node/get-sys-file-system.d.ts.map +1 -0
  245. package/runtime/gateways/file/node/get-sys-file-system.js +11 -0
  246. package/runtime/gateways/file/node/get-sys-file-system.js.map +1 -0
  247. package/runtime/gateways/file/node/index.d.ts +2 -0
  248. package/runtime/gateways/file/node/index.d.ts.map +1 -0
  249. package/runtime/gateways/file/node/index.js +2 -0
  250. package/runtime/gateways/file/node/index.js.map +1 -0
  251. package/runtime/gateways/file/node/node-filesystem.d.ts +32 -0
  252. package/runtime/gateways/file/node/node-filesystem.d.ts.map +1 -0
  253. package/runtime/gateways/file/node/node-filesystem.js +37 -0
  254. package/runtime/gateways/file/node/node-filesystem.js.map +1 -0
  255. package/runtime/gateways/file/node/to-array-buffer.d.ts +2 -0
  256. package/runtime/gateways/file/node/to-array-buffer.d.ts.map +1 -0
  257. package/runtime/gateways/file/node/to-array-buffer.js +12 -0
  258. package/runtime/gateways/file/node/to-array-buffer.js.map +1 -0
  259. package/runtime/gateways/file/sys-file-system-factory.d.ts +4 -0
  260. package/runtime/gateways/file/sys-file-system-factory.d.ts.map +1 -0
  261. package/runtime/gateways/file/sys-file-system-factory.js +13 -0
  262. package/runtime/gateways/file/sys-file-system-factory.js.map +1 -0
  263. package/runtime/gateways/file/utils.d.ts +5 -0
  264. package/runtime/gateways/file/utils.d.ts.map +1 -0
  265. package/runtime/gateways/file/utils.js +27 -0
  266. package/runtime/gateways/file/utils.js.map +1 -0
  267. package/runtime/gateways/file/version.d.ts +2 -0
  268. package/runtime/gateways/file/version.d.ts.map +1 -0
  269. package/runtime/gateways/file/version.js +2 -0
  270. package/runtime/gateways/file/version.js.map +1 -0
  271. package/runtime/gateways/fp-envelope-serialize.d.ts +50 -0
  272. package/runtime/gateways/fp-envelope-serialize.d.ts.map +1 -0
  273. package/runtime/gateways/fp-envelope-serialize.js +141 -0
  274. package/runtime/gateways/fp-envelope-serialize.js.map +1 -0
  275. package/runtime/gateways/index.d.ts +6 -0
  276. package/runtime/gateways/index.d.ts.map +1 -0
  277. package/runtime/gateways/index.js +6 -0
  278. package/runtime/gateways/index.js.map +1 -0
  279. package/runtime/gateways/indexeddb/gateway-impl.d.ts +22 -0
  280. package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +1 -0
  281. package/runtime/gateways/indexeddb/gateway-impl.js +147 -0
  282. package/runtime/gateways/indexeddb/gateway-impl.js.map +1 -0
  283. package/runtime/gateways/indexeddb/index.d.ts +6 -0
  284. package/runtime/gateways/indexeddb/index.d.ts.map +1 -0
  285. package/runtime/gateways/indexeddb/index.js +6 -0
  286. package/runtime/gateways/indexeddb/index.js.map +1 -0
  287. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +15 -0
  288. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +1 -0
  289. package/runtime/gateways/indexeddb/key-bag-indexeddb.js +42 -0
  290. package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +1 -0
  291. package/runtime/gateways/indexeddb-version.d.ts +2 -0
  292. package/runtime/gateways/indexeddb-version.d.ts.map +1 -0
  293. package/runtime/gateways/indexeddb-version.js +2 -0
  294. package/runtime/gateways/indexeddb-version.js.map +1 -0
  295. package/runtime/gateways/memory/gateway.d.ts +18 -0
  296. package/runtime/gateways/memory/gateway.d.ts.map +1 -0
  297. package/runtime/gateways/memory/gateway.js +58 -0
  298. package/runtime/gateways/memory/gateway.js.map +1 -0
  299. package/runtime/gateways/memory/version.d.ts +2 -0
  300. package/runtime/gateways/memory/version.d.ts.map +1 -0
  301. package/runtime/gateways/memory/version.js +2 -0
  302. package/runtime/gateways/memory/version.js.map +1 -0
  303. package/runtime/index.d.ts +13 -0
  304. package/runtime/index.d.ts.map +1 -0
  305. package/runtime/index.js +13 -0
  306. package/runtime/index.js.map +1 -0
  307. package/runtime/key-bag-memory.d.ts +12 -0
  308. package/runtime/key-bag-memory.d.ts.map +1 -0
  309. package/runtime/key-bag-memory.js +23 -0
  310. package/runtime/key-bag-memory.js.map +1 -0
  311. package/runtime/key-bag.d.ts +85 -0
  312. package/runtime/key-bag.d.ts.map +1 -0
  313. package/runtime/key-bag.js +415 -0
  314. package/runtime/key-bag.js.map +1 -0
  315. package/runtime/keyed-crypto.d.ts +19 -0
  316. package/runtime/keyed-crypto.d.ts.map +1 -0
  317. package/runtime/keyed-crypto.js +192 -0
  318. package/runtime/keyed-crypto.js.map +1 -0
  319. package/runtime/memory-sys-container.d.ts +2 -0
  320. package/runtime/memory-sys-container.d.ts.map +1 -0
  321. package/runtime/memory-sys-container.js +2 -0
  322. package/runtime/memory-sys-container.js.map +1 -0
  323. package/runtime/meta-key-hack.d.ts +42 -0
  324. package/runtime/meta-key-hack.d.ts.map +1 -0
  325. package/runtime/meta-key-hack.js +201 -0
  326. package/runtime/meta-key-hack.js.map +1 -0
  327. package/runtime/sts-service/index.d.ts +40 -0
  328. package/runtime/sts-service/index.d.ts.map +1 -0
  329. package/runtime/sts-service/index.js +102 -0
  330. package/runtime/sts-service/index.js.map +1 -0
  331. package/runtime/sys-container.d.ts +2 -0
  332. package/runtime/sys-container.d.ts.map +1 -0
  333. package/runtime/sys-container.js +2 -0
  334. package/runtime/sys-container.js.map +1 -0
  335. package/runtime/wait-pr-multiformats/block.d.ts +47 -0
  336. package/runtime/wait-pr-multiformats/block.d.ts.map +1 -0
  337. package/runtime/wait-pr-multiformats/block.js +64 -0
  338. package/runtime/wait-pr-multiformats/block.js.map +1 -0
  339. package/runtime/wait-pr-multiformats/codec-interface.d.ts +29 -0
  340. package/runtime/wait-pr-multiformats/codec-interface.d.ts.map +1 -0
  341. package/runtime/wait-pr-multiformats/codec-interface.js +2 -0
  342. package/runtime/wait-pr-multiformats/codec-interface.js.map +1 -0
  343. package/runtime/wait-pr-multiformats/index.d.ts +3 -0
  344. package/runtime/wait-pr-multiformats/index.d.ts.map +1 -0
  345. package/runtime/wait-pr-multiformats/index.js +3 -0
  346. package/runtime/wait-pr-multiformats/index.js.map +1 -0
  347. package/tests/blockstore/store.test.ts +9 -4
  348. package/tests/fireproof/attachable.test.ts +3 -3
  349. package/types.d.ts +427 -0
  350. package/types.d.ts.map +1 -0
  351. package/types.js +54 -0
  352. package/types.js.map +1 -0
  353. package/use-fireproof/index.d.ts +3 -0
  354. package/use-fireproof/index.d.ts.map +1 -0
  355. package/use-fireproof/index.js +3 -0
  356. package/use-fireproof/index.js.map +1 -0
  357. package/utils.d.ts +36 -0
  358. package/utils.d.ts.map +1 -0
  359. package/utils.js +379 -0
  360. package/utils.js.map +1 -0
  361. package/version.d.ts +2 -0
  362. package/version.d.ts.map +1 -0
  363. package/version.js +4 -0
  364. package/version.js.map +1 -0
  365. package/write-queue.d.ts +9 -0
  366. package/write-queue.d.ts.map +1 -0
  367. package/write-queue.js +70 -0
  368. package/write-queue.js.map +1 -0
  369. package/deno/index.d.ts +0 -7
  370. package/deno/index.js +0 -66
  371. package/deno/index.js.map +0 -1
  372. package/deno/metafile-esm.json +0 -1
  373. package/index.cjs +0 -7268
  374. package/index.cjs.map +0 -1
  375. package/index.d.cts +0 -2742
  376. package/indexeddb/index.cjs +0 -218
  377. package/indexeddb/index.cjs.map +0 -1
  378. package/indexeddb/index.d.cts +0 -30
  379. package/indexeddb/index.d.ts +0 -30
  380. package/indexeddb/index.js +0 -195
  381. package/indexeddb/index.js.map +0 -1
  382. package/indexeddb/metafile-cjs.json +0 -1
  383. package/indexeddb/metafile-esm.json +0 -1
  384. package/metafile-cjs.json +0 -1
  385. package/metafile-esm.json +0 -1
  386. package/node/index.cjs +0 -97
  387. package/node/index.cjs.map +0 -1
  388. package/node/index.d.cts +0 -7
  389. package/node/index.d.ts +0 -7
  390. package/node/index.js +0 -64
  391. package/node/index.js.map +0 -1
  392. package/node/metafile-cjs.json +0 -1
  393. package/node/metafile-esm.json +0 -1
  394. package/react/index.cjs +0 -297
  395. package/react/index.cjs.map +0 -1
  396. package/react/metafile-cjs.json +0 -1
  397. package/react/metafile-esm.json +0 -1
  398. package/tests/www/gallery.html +0 -132
  399. package/tests/www/iife.html +0 -42
  400. package/tests/www/todo-aws.html +0 -232
  401. package/tests/www/todo-ipfs.html +0 -213
  402. package/tests/www/todo-local.html +0 -214
  403. package/tests/www/todo-netlify.html +0 -227
  404. package/tests/www/todo.html +0 -254
package/ledger.js ADDED
@@ -0,0 +1,224 @@
1
+ import { BuildURI, KeyedResolvOnce, ResolveOnce, URI } from "@adviser/cement";
2
+ import { defaultWriteQueueOpts, writeQueue } from "./write-queue.js";
3
+ import { PARAM } from "./types.js";
4
+ import { ensureLogger, ensureSuperThis, ensureURIDefaults, toSortedArray } from "./utils.js";
5
+ import { decodeFile, encodeFile } from "./runtime/files.js";
6
+ import { defaultKeyBagOpts } from "./runtime/key-bag.js";
7
+ import { getDefaultURI } from "./blockstore/register-store-protocol.js";
8
+ import { DatabaseImpl } from "./database.js";
9
+ import { CRDTImpl } from "./crdt.js";
10
+ import { Context } from "./context.js";
11
+ const ledgers = new KeyedResolvOnce();
12
+ export function keyConfigOpts(sthis, name, opts) {
13
+ return JSON.stringify(toSortedArray({
14
+ name,
15
+ stores: toSortedArray(JSON.parse(JSON.stringify(toStoreURIRuntime(sthis, name, opts?.storeUrls)))),
16
+ }));
17
+ }
18
+ export function isLedger(db) {
19
+ return db instanceof LedgerImpl || db instanceof LedgerShell;
20
+ }
21
+ export function LedgerFactory(name, opts) {
22
+ const sthis = ensureSuperThis(opts);
23
+ return new LedgerShell(ledgers.get(keyConfigOpts(sthis, name, opts)).once((key) => {
24
+ const db = new LedgerImpl(sthis, {
25
+ name,
26
+ meta: opts?.meta,
27
+ keyBag: defaultKeyBagOpts(sthis, opts?.keyBag),
28
+ storeUrls: toStoreURIRuntime(sthis, name, opts?.storeUrls),
29
+ gatewayInterceptor: opts?.gatewayInterceptor,
30
+ writeQueue: defaultWriteQueueOpts(opts?.writeQueue),
31
+ storeEnDe: {
32
+ encodeFile,
33
+ decodeFile,
34
+ ...opts?.storeEnDe,
35
+ },
36
+ });
37
+ db.onClosed(() => {
38
+ ledgers.unget(key);
39
+ });
40
+ return db;
41
+ }));
42
+ }
43
+ export class LedgerShell {
44
+ constructor(ref) {
45
+ this.ref = ref;
46
+ this.writeQueue = ref.writeQueue;
47
+ this.name = ref.name;
48
+ ref.addShell(this);
49
+ }
50
+ attach(a) {
51
+ return this.ref.attach(a);
52
+ }
53
+ get opts() {
54
+ return this.ref.opts;
55
+ }
56
+ get context() {
57
+ return this.ref.context;
58
+ }
59
+ get id() {
60
+ return this.ref.id;
61
+ }
62
+ get logger() {
63
+ return this.ref.logger;
64
+ }
65
+ get sthis() {
66
+ return this.ref.sthis;
67
+ }
68
+ get crdt() {
69
+ return this.ref.crdt;
70
+ }
71
+ onClosed(fn) {
72
+ return this.ref.onClosed(fn);
73
+ }
74
+ close() {
75
+ return this.ref.shellClose(this);
76
+ }
77
+ destroy() {
78
+ return this.ref.destroy();
79
+ }
80
+ ready() {
81
+ return this.ref.ready();
82
+ }
83
+ subscribe(listener, updates) {
84
+ return this.ref.subscribe(listener, updates);
85
+ }
86
+ }
87
+ class LedgerImpl {
88
+ get name() {
89
+ return this.opts.name;
90
+ }
91
+ addShell(shell) {
92
+ this.shells.add(shell);
93
+ }
94
+ onClosed(fn) {
95
+ const id = this.sthis.nextId().str;
96
+ this._onClosedFns.set(id, fn);
97
+ return () => {
98
+ this._onClosedFns.delete(id);
99
+ };
100
+ }
101
+ async close() {
102
+ throw this.logger.Error().Str("db", this.name).Msg(`use shellClose`).AsError();
103
+ }
104
+ async shellClose(db) {
105
+ if (!this.shells.has(db)) {
106
+ throw this.logger.Error().Str("db", this.name).Msg(`LedgerShell mismatch`).AsError();
107
+ }
108
+ this.shells.delete(db);
109
+ if (this.shells.size === 0) {
110
+ await this.ready();
111
+ await this.crdt.close();
112
+ await this.writeQueue.close();
113
+ this._onClosedFns.forEach((fn) => fn());
114
+ }
115
+ }
116
+ async destroy() {
117
+ await this.ready();
118
+ await this.crdt.destroy();
119
+ }
120
+ async ready() {
121
+ const ret = await this._ready.once(async () => {
122
+ await this.sthis.start();
123
+ await this.crdt.ready();
124
+ });
125
+ return ret;
126
+ }
127
+ constructor(sthis, opts) {
128
+ this._listening = false;
129
+ this._listeners = new Set();
130
+ this._noupdate_listeners = new Set();
131
+ this.shells = new Set();
132
+ this.context = new Context();
133
+ this._onClosedFns = new Map();
134
+ this._ready = new ResolveOnce();
135
+ this.opts = opts;
136
+ this.sthis = sthis;
137
+ this.id = sthis.timeOrderedNextId().str;
138
+ this.logger = ensureLogger(this.sthis, "Ledger");
139
+ this.crdt = new CRDTImpl(this.sthis, this.opts);
140
+ this.writeQueue = writeQueue(this.sthis, async (updates) => this.crdt.bulk(updates), this.opts.writeQueue);
141
+ this.crdt.clock.onTock(() => this._no_update_notify());
142
+ }
143
+ async attach(a) {
144
+ await this.ready();
145
+ return this.crdt.blockstore.loader.attach(a);
146
+ }
147
+ subscribe(listener, updates) {
148
+ this.ready();
149
+ this.logger.Debug().Bool("updates", updates).Msg("subscribe");
150
+ if (updates) {
151
+ if (!this._listening) {
152
+ this._listening = true;
153
+ this.crdt.clock.onTick((updates) => {
154
+ void this._notify(updates);
155
+ });
156
+ }
157
+ this._listeners.add(listener);
158
+ return () => {
159
+ this._listeners.delete(listener);
160
+ };
161
+ }
162
+ else {
163
+ this._noupdate_listeners.add(listener);
164
+ return () => {
165
+ this._noupdate_listeners.delete(listener);
166
+ };
167
+ }
168
+ }
169
+ async _notify(updates) {
170
+ await this.ready();
171
+ if (this._listeners.size) {
172
+ const docs = updates.map(({ id, value }) => ({ ...value, _id: id }));
173
+ for (const listener of this._listeners) {
174
+ await (async () => await listener(docs))().catch((e) => {
175
+ this.logger.Error().Err(e).Msg("subscriber error");
176
+ });
177
+ }
178
+ }
179
+ }
180
+ async _no_update_notify() {
181
+ await this.ready();
182
+ if (this._noupdate_listeners.size) {
183
+ for (const listener of this._noupdate_listeners) {
184
+ await (async () => await listener([]))().catch((e) => {
185
+ this.logger.Error().Err(e).Msg("subscriber error");
186
+ });
187
+ }
188
+ }
189
+ }
190
+ }
191
+ export function toStoreURIRuntime(sthis, name, sopts) {
192
+ sopts = sopts || {};
193
+ if (!sopts.base) {
194
+ const fp_env = sthis.env.get("FP_STORAGE_URL");
195
+ if (fp_env) {
196
+ sopts = { ...sopts, base: BuildURI.from(fp_env).setParam(PARAM.URL_GEN, "fromEnv") };
197
+ }
198
+ else {
199
+ sopts = { ...sopts, base: getDefaultURI(sthis).build().setParam(PARAM.URL_GEN, "default") };
200
+ }
201
+ }
202
+ const base = URI.from(sopts.base);
203
+ return {
204
+ idx: {
205
+ car: ensureURIDefaults(sthis, { name }, sopts.idx?.car ?? sopts.data?.car, base, "car", { idx: true }),
206
+ file: ensureURIDefaults(sthis, { name }, sopts.idx?.file ?? sopts.idx?.car ?? sopts.data?.file ?? sopts.data?.car, base, "file", {
207
+ file: true,
208
+ idx: true,
209
+ }),
210
+ meta: ensureURIDefaults(sthis, { name }, sopts.idx?.meta ?? sopts.data?.meta, base, "meta", { idx: true }),
211
+ wal: ensureURIDefaults(sthis, { name }, sopts.idx?.wal ?? sopts.data?.wal, base, "wal", { idx: true }),
212
+ },
213
+ data: {
214
+ car: ensureURIDefaults(sthis, { name }, sopts.data?.car, base, "car"),
215
+ file: ensureURIDefaults(sthis, { name }, sopts.data?.file ?? sopts.data?.car, base, "file", { file: true }),
216
+ meta: ensureURIDefaults(sthis, { name }, sopts.data?.meta, base, "meta"),
217
+ wal: ensureURIDefaults(sthis, { name }, sopts.data?.wal, base, "wal"),
218
+ },
219
+ };
220
+ }
221
+ export function fireproof(name, opts) {
222
+ return new DatabaseImpl(LedgerFactory(name, opts));
223
+ }
224
+ //# sourceMappingURL=ledger.js.map
package/ledger.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../../src/ledger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,14 @@
1
1
  {
2
2
  "name": "@fireproof/core",
3
- "version": "0.20.0-dev-preview-61",
3
+ "version": "0.20.0-dev-preview-63",
4
4
  "description": "Live ledger for the web.",
5
5
  "type": "module",
6
6
  "module": "./index.js",
7
7
  "main": "./index.cjs",
8
8
  "types": "./index.d.ts",
9
+ "bin": {
10
+ "fp-cli": "./cli/main.js"
11
+ },
9
12
  "exports": {
10
13
  ".": {
11
14
  "import": "./index.js",
@@ -15,27 +18,27 @@
15
18
  },
16
19
  "./node": {
17
20
  "import": {
18
- "browser": "./indexeddb/index.js",
19
- "default": "./node/index.js"
21
+ "browser": "./runtime/gateways/indexeddb/index.js",
22
+ "default": "./runtime/gateways/file/node/index.js"
20
23
  },
21
- "browser": "./indexeddb/index.js",
22
- "require": "./node/index.cjs",
23
- "types": "./node/index.d.ts"
24
+ "browser": "./runtime/gateways/indexeddb/index.js",
25
+ "require": "./runtime/gateways/file/node/index.cjs",
26
+ "types": "./runtime/gateways/file/node/index.d.ts"
24
27
  },
25
28
  "./deno": {
26
29
  "import": {
27
- "browser": "./indexeddb/index.js",
28
- "default": "./deno/index.js"
30
+ "browser": "./runtime/gateways/indexeddb/index.js",
31
+ "default": "./runtime/gateways/file/deno/index.js"
29
32
  },
30
- "browser": "./indexeddb/index.js",
31
- "require": "./deno/index.cjs",
32
- "types": "./deno/index.d.ts"
33
+ "browser": "./runtime/gateways/indexeddb/index.js",
34
+ "require": "./runtime/gateways/file/deno/index.cjs",
35
+ "types": "./runtime/gateways/file/deno/index.d.ts"
33
36
  },
34
37
  "./indexeddb": {
35
- "import": "./indexeddb/index.js",
36
- "browser": "./indexeddb/index.js",
37
- "require": "./indexeddb/index.cjs",
38
- "types": "./indexeddb/index.d.ts"
38
+ "import": "./runtime/gateways/indexeddb/index.js",
39
+ "browser": "./runtime/gateways/indexeddb/index.js",
40
+ "require": "./runtime/gateways/indexeddb/index.cjs",
41
+ "types": "./runtime/gateways/indexeddb/index.d.ts"
39
42
  },
40
43
  "./react": {
41
44
  "import": "./react/index.js",
@@ -0,0 +1,25 @@
1
+ import { Logger, Result, URI } from "@adviser/cement";
2
+ import { MsgBase, MsgWithError, RequestOpts } from "./msg-types.js";
3
+ import { ActiveStream, ExchangedGestalt, MsgerParamsWithEnDe, MsgRawConnection, OnMsgFn, UnReg } from "./msger.js";
4
+ import { MsgRawConnectionBase } from "./msg-raw-connection-base.js";
5
+ import { SuperThis } from "../../types.js";
6
+ export declare function ensurePath(uri: URI, fp: string): string;
7
+ export declare class HttpConnection extends MsgRawConnectionBase implements MsgRawConnection {
8
+ #private;
9
+ readonly logger: Logger;
10
+ readonly msgP: MsgerParamsWithEnDe;
11
+ readonly baseURIs: {
12
+ in: URI;
13
+ cleaned: URI;
14
+ }[];
15
+ constructor(sthis: SuperThis, uris: URI[], msgP: MsgerParamsWithEnDe, exGestalt: ExchangedGestalt);
16
+ send<S extends MsgBase, Q extends MsgBase>(_msg: Q): Promise<MsgWithError<S>>;
17
+ start(): Promise<Result<void>>;
18
+ close(): Promise<Result<void>>;
19
+ toMsg<S extends MsgBase>(msg: MsgWithError<S>): MsgWithError<S>;
20
+ onMsg(fn: OnMsgFn): UnReg;
21
+ readonly activeBinds: Map<string, ActiveStream<MsgBase, MsgBase>>;
22
+ bind<Q extends MsgBase, S extends MsgBase>(req: Q, opts: RequestOpts): ReadableStream<MsgWithError<S>>;
23
+ request<Q extends MsgBase, S extends MsgBase>(req: Q, _opts: RequestOpts): Promise<MsgWithError<S>>;
24
+ }
25
+ //# sourceMappingURL=http-connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-connection.d.ts","sourceRoot":"","sources":["../../../../../src/protocols/cloud/http-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,EAAE,GAAG,EAAoB,MAAM,iBAAiB,CAAC;AAEpF,OAAO,EAAE,OAAO,EAAiB,YAAY,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,EAGP,KAAK,EACN,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAmB3C,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED,qBAAa,cAAe,SAAQ,oBAAqB,YAAW,gBAAgB;;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAEnC,QAAQ,CAAC,QAAQ,EAAE;QAAE,EAAE,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;gBAInC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB;IAYjG,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAIvE,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAW9B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAMpC,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAK/D,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,KAAK;IA2BzB,QAAQ,CAAC,WAAW,8CAAqD;IACzE,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAsBhG,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAiE1G"}
@@ -0,0 +1,153 @@
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 _HttpConnection_instances, _HttpConnection_onMsg, _HttpConnection_poll;
7
+ import { HttpHeader, Result, exception2Result } from "@adviser/cement";
8
+ import { ensureLogger } from "../../utils.js";
9
+ import { buildErrorMsg, MsgIsError } from "./msg-types.js";
10
+ import { selectRandom, timeout, } from "./msger.js";
11
+ import { MsgRawConnectionBase } from "./msg-raw-connection-base.js";
12
+ function toHttpProtocol(uri) {
13
+ const protocol = (uri.getParam("protocol") ?? uri.protocol).replace(/:$/, "");
14
+ const toFix = uri.build();
15
+ switch (protocol) {
16
+ case "ws":
17
+ case "http":
18
+ toFix.protocol("http");
19
+ break;
20
+ case "https":
21
+ case "wss":
22
+ default:
23
+ toFix.protocol("https");
24
+ break;
25
+ }
26
+ return toFix.URI();
27
+ }
28
+ export function ensurePath(uri, fp) {
29
+ const path = uri.pathname.replace(/\/$/, "").replace(/^\//, "");
30
+ const buri = uri.build();
31
+ if (path === "") {
32
+ buri.appendRelative(fp);
33
+ }
34
+ return buri.toString();
35
+ }
36
+ export class HttpConnection extends MsgRawConnectionBase {
37
+ constructor(sthis, uris, msgP, exGestalt) {
38
+ super(sthis, exGestalt);
39
+ _HttpConnection_instances.add(this);
40
+ _HttpConnection_onMsg.set(this, new Map());
41
+ this.activeBinds = new Map();
42
+ this.logger = ensureLogger(sthis, "HttpConnection");
43
+ this.baseURIs = uris.map((uri) => ({
44
+ in: uri,
45
+ cleaned: toHttpProtocol(uri),
46
+ }));
47
+ this.msgP = msgP;
48
+ }
49
+ send(_msg) {
50
+ throw new Error("Method not implemented.");
51
+ }
52
+ async start() {
53
+ return Result.Ok(undefined);
54
+ }
55
+ async close() {
56
+ await Promise.all(Array.from(this.activeBinds.values()).map((state) => state.controller?.close()));
57
+ __classPrivateFieldGet(this, _HttpConnection_onMsg, "f").clear();
58
+ return Result.Ok(undefined);
59
+ }
60
+ toMsg(msg) {
61
+ __classPrivateFieldGet(this, _HttpConnection_onMsg, "f").forEach((fn) => fn(msg));
62
+ return msg;
63
+ }
64
+ onMsg(fn) {
65
+ const key = this.sthis.nextId().str;
66
+ __classPrivateFieldGet(this, _HttpConnection_onMsg, "f").set(key, fn);
67
+ return () => __classPrivateFieldGet(this, _HttpConnection_onMsg, "f").delete(key);
68
+ }
69
+ bind(req, opts) {
70
+ const state = {
71
+ id: this.sthis.nextId().str,
72
+ bind: {
73
+ msg: req,
74
+ opts,
75
+ },
76
+ };
77
+ this.activeBinds.set(state.id, state);
78
+ return new ReadableStream({
79
+ cancel: () => {
80
+ clearTimeout(state.timeout);
81
+ this.activeBinds.delete(state.id);
82
+ },
83
+ start: (controller) => {
84
+ state.controller = controller;
85
+ __classPrivateFieldGet(this, _HttpConnection_instances, "m", _HttpConnection_poll).call(this, state);
86
+ },
87
+ });
88
+ }
89
+ async request(req, _opts) {
90
+ const headers = HttpHeader.from();
91
+ headers.Set("Content-Type", this.msgP.mime);
92
+ headers.Set("Accept", this.msgP.mime);
93
+ const rReqBody = exception2Result(() => this.msgP.ende.encode(req));
94
+ if (rReqBody.isErr()) {
95
+ return this.toMsg(buildErrorMsg(this, req, this.logger.Error().Err(rReqBody.Err()).Any("req", req).Msg("encode error").AsError()));
96
+ }
97
+ headers.Set("Content-Length", rReqBody.Ok().byteLength.toString());
98
+ const url = selectRandom(this.baseURIs);
99
+ this.logger.Debug().Any(url).Any("body", req).Msg("request");
100
+ const rRes = await exception2Result(() => timeout(this.msgP.timeout, fetch(ensurePath(url.cleaned, "fp"), {
101
+ method: "PUT",
102
+ headers: headers.AsHeaderInit(),
103
+ body: rReqBody.Ok(),
104
+ })));
105
+ this.logger.Debug().Any(url).Any("body", rRes).Msg("response");
106
+ if (rRes.isErr()) {
107
+ return this.toMsg(buildErrorMsg(this, req, this.logger.Error().Err(rRes).Any(url).Msg("fetch error").AsError()));
108
+ }
109
+ const res = rRes.Ok();
110
+ if (!res.ok) {
111
+ const data = new Uint8Array(await res.arrayBuffer());
112
+ const ret = await exception2Result(async () => this.msgP.ende.decode(data));
113
+ if (ret.isErr() || !MsgIsError(ret.Ok())) {
114
+ return this.toMsg(buildErrorMsg(this, req, this.logger
115
+ .Error()
116
+ .Any(url)
117
+ .Str("status", res.status.toString())
118
+ .Str("statusText", res.statusText)
119
+ .Msg("HTTP Error")
120
+ .AsError(), await res.text().catch(() => "no body")));
121
+ }
122
+ return this.toMsg(ret.Ok());
123
+ }
124
+ const data = new Uint8Array(await res.arrayBuffer());
125
+ const ret = await exception2Result(async () => this.msgP.ende.decode(data));
126
+ if (ret.isErr()) {
127
+ return this.toMsg(buildErrorMsg(this, req, this.logger.Error().Err(ret.Err()).Msg("decode error").AsError(), this.sthis.txt.decode(data)));
128
+ }
129
+ return this.toMsg(ret.Ok());
130
+ }
131
+ }
132
+ _HttpConnection_onMsg = new WeakMap(), _HttpConnection_instances = new WeakSet(), _HttpConnection_poll = function _HttpConnection_poll(state) {
133
+ this.request(state.bind.msg, state.bind.opts)
134
+ .then((msg) => {
135
+ try {
136
+ state.controller?.enqueue(msg);
137
+ if (MsgIsError(msg)) {
138
+ state.controller?.close();
139
+ }
140
+ else {
141
+ state.timeout = setTimeout(() => __classPrivateFieldGet(this, _HttpConnection_instances, "m", _HttpConnection_poll).call(this, state), state.bind.opts.pollInterval ?? 1000);
142
+ }
143
+ }
144
+ catch (err) {
145
+ state.controller?.error(err);
146
+ state.controller?.close();
147
+ }
148
+ })
149
+ .catch((err) => {
150
+ state.controller?.error(err);
151
+ });
152
+ };
153
+ //# sourceMappingURL=http-connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-connection.js","sourceRoot":"","sources":["../../../../../src/protocols/cloud/http-connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export * from "./http-connection.js";
2
+ export * from "./msg-raw-connection-base.js";
3
+ export * from "./msg-types-data.js";
4
+ export * from "./msg-types-meta.js";
5
+ export * from "./msg-types-meta.js";
6
+ export * from "./msg-types-wal.js";
7
+ export * from "./msg-types.js";
8
+ export * from "./msger.js";
9
+ export * from "./ws-connection.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/protocols/cloud/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export * from "./http-connection.js";
2
+ export * from "./msg-raw-connection-base.js";
3
+ export * from "./msg-types-data.js";
4
+ export * from "./msg-types-meta.js";
5
+ export * from "./msg-types-meta.js";
6
+ export * from "./msg-types-wal.js";
7
+ export * from "./msg-types.js";
8
+ export * from "./msger.js";
9
+ export * from "./ws-connection.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/protocols/cloud/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { SuperThis } from "../../types.js";
2
+ import { MsgBase, ErrorMsg } from "./msg-types.js";
3
+ import { ExchangedGestalt, OnErrorFn, UnReg } from "./msger.js";
4
+ import { Logger } from "@adviser/cement";
5
+ export declare class MsgRawConnectionBase {
6
+ readonly sthis: SuperThis;
7
+ readonly exchangedGestalt: ExchangedGestalt;
8
+ constructor(sthis: SuperThis, exGestalt: ExchangedGestalt);
9
+ readonly onErrorFns: Map<string, OnErrorFn>;
10
+ onError(fn: OnErrorFn): UnReg;
11
+ buildErrorMsg(msgCtx: {
12
+ readonly logger: Logger;
13
+ readonly sthis: SuperThis;
14
+ }, msg: Partial<MsgBase>, err: Error): ErrorMsg;
15
+ }
16
+ //# sourceMappingURL=msg-raw-connection-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msg-raw-connection-base.d.ts","sourceRoot":"","sources":["../../../../../src/protocols/cloud/msg-raw-connection-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAiB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,qBAAa,oBAAoB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;gBAEhC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB;IAKzD,QAAQ,CAAC,UAAU,yBAAgC;IACnD,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,KAAK;IAM7B,aAAa,CACX,MAAM,EAAE;QACN,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;KAC3B,EACD,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,GAAG,EAAE,KAAK,GACT,QAAQ;CASZ"}
@@ -0,0 +1,22 @@
1
+ import { buildErrorMsg } from "./msg-types.js";
2
+ export class MsgRawConnectionBase {
3
+ constructor(sthis, exGestalt) {
4
+ this.onErrorFns = new Map();
5
+ this.sthis = sthis;
6
+ this.exchangedGestalt = exGestalt;
7
+ }
8
+ onError(fn) {
9
+ const key = this.sthis.nextId().str;
10
+ this.onErrorFns.set(key, fn);
11
+ return () => this.onErrorFns.delete(key);
12
+ }
13
+ buildErrorMsg(msgCtx, msg, err) {
14
+ const rmsg = Array.from(this.onErrorFns.values()).reduce((msg, fn) => {
15
+ return fn(msg, err);
16
+ }, msg);
17
+ const emsg = buildErrorMsg(msgCtx, rmsg, err);
18
+ msgCtx.logger.Error().Err(err).Any("msg", rmsg).Msg("connection error");
19
+ return emsg;
20
+ }
21
+ }
22
+ //# sourceMappingURL=msg-raw-connection-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msg-raw-connection-base.js","sourceRoot":"","sources":["../../../../../src/protocols/cloud/msg-raw-connection-base.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIlE,MAAM,OAAO,oBAAoB;IAI/B,YAAY,KAAgB,EAAE,SAA2B;QAKhD,eAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;QAJjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACpC,CAAC;IAGD,OAAO,CAAC,EAAa;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CACX,MAGC,EACD,GAAqB,EACrB,GAAU;QAGV,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;YACnE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtB,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ import { Result, URI } from "@adviser/cement";
2
+ import { ReqSignedUrl, NextId, MsgBase, ResSignedUrl, MsgWithError, ReqSignedUrlParam, GwCtx, MsgTypesCtx, MsgWithConnAuth, PreSignedMsg } from "./msg-types.js";
3
+ export interface ReqGetData extends ReqSignedUrl {
4
+ readonly type: "reqGetData";
5
+ }
6
+ export declare function buildReqGetData(sthis: NextId, sup: ReqSignedUrlParam, ctx: GwCtx): ReqGetData;
7
+ export declare function MsgIsReqGetData(msg: MsgBase): msg is ReqGetData;
8
+ export interface ResGetData extends ResSignedUrl {
9
+ readonly type: "resGetData";
10
+ }
11
+ export declare function MsgIsResGetData(msg: MsgBase): msg is ResGetData;
12
+ export interface CalculatePreSignedUrl {
13
+ calculatePreSignedUrl(ctx: MsgTypesCtx, p: PreSignedMsg): Promise<Result<URI>>;
14
+ }
15
+ export declare function buildResGetData(msgCtx: MsgTypesCtx, req: MsgWithConnAuth<ReqGetData>, ctx: CalculatePreSignedUrl): Promise<MsgWithError<ResGetData>>;
16
+ export interface ReqPutData extends ReqSignedUrl {
17
+ readonly type: "reqPutData";
18
+ }
19
+ export declare function MsgIsReqPutData(msg: MsgBase): msg is ReqPutData;
20
+ export declare function buildReqPutData(sthis: NextId, sup: ReqSignedUrlParam, ctx: GwCtx): ReqPutData;
21
+ export interface ResPutData extends ResSignedUrl {
22
+ readonly type: "resPutData";
23
+ }
24
+ export declare function MsgIsResPutData(msg: MsgBase): msg is ResPutData;
25
+ export declare function buildResPutData(msgCtx: MsgTypesCtx, req: MsgWithConnAuth<ReqPutData>, ctx: CalculatePreSignedUrl): Promise<MsgWithError<ResPutData>>;
26
+ export interface ReqDelData extends ReqSignedUrl {
27
+ readonly type: "reqDelData";
28
+ }
29
+ export declare function MsgIsReqDelData(msg: MsgBase): msg is ReqDelData;
30
+ export declare function buildReqDelData(sthis: NextId, sup: ReqSignedUrlParam, ctx: GwCtx): ReqDelData;
31
+ export interface ResDelData extends ResSignedUrl {
32
+ readonly type: "resDelData";
33
+ }
34
+ export declare function MsgIsResDelData(msg: MsgBase): msg is ResDelData;
35
+ export declare function buildResDelData(msgCtx: MsgTypesCtx, req: MsgWithConnAuth<ReqDelData>, ctx: CalculatePreSignedUrl): Promise<MsgWithError<ResDelData>>;
36
+ //# sourceMappingURL=msg-types-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msg-types-data.d.ts","sourceRoot":"","sources":["../../../../../src/protocols/cloud/msg-types-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,MAAM,EACN,OAAO,EACP,YAAY,EACZ,YAAY,EAEZ,iBAAiB,EAEjB,KAAK,EAEL,WAAW,EACX,eAAe,EACf,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,GAAG,UAAU,CAE7F;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAE/D;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAE7B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAE/D;AAED,MAAM,WAAW,qBAAqB;IACpC,qBAAqB,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;CAChF;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,eAAe,CAAC,UAAU,CAAC,EAChC,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAQnC;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAE7B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAE/D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,GAAG,UAAU,CAE7F;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAE/D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,eAAe,CAAC,UAAU,CAAC,EAChC,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAQnC;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAE/D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,GAAG,UAAU,CAE7F;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAE/D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,eAAe,CAAC,UAAU,CAAC,EAChC,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAQnC"}