@dxos/echo-db 2.33.5-dev.22471d71 → 2.33.5-dev.33d2877e

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 (359) hide show
  1. package/dist/src/api/index.d.ts +0 -5
  2. package/dist/src/api/index.d.ts.map +1 -1
  3. package/dist/src/api/index.js +0 -5
  4. package/dist/src/api/index.js.map +1 -1
  5. package/dist/src/api/schema.test.js +1 -1
  6. package/dist/src/api/schema.test.js.map +1 -1
  7. package/dist/src/echo.d.ts +1 -0
  8. package/dist/src/echo.d.ts.map +1 -1
  9. package/dist/src/echo.js +9 -20
  10. package/dist/src/echo.js.map +1 -1
  11. package/dist/src/echo.test.js +12 -0
  12. package/dist/src/echo.test.js.map +1 -1
  13. package/dist/src/halo/contact-manager.d.ts +2 -1
  14. package/dist/src/halo/contact-manager.d.ts.map +1 -1
  15. package/dist/src/halo/contact-manager.js +1 -1
  16. package/dist/src/halo/contact-manager.js.map +1 -1
  17. package/dist/src/halo/halo-factory.d.ts +2 -2
  18. package/dist/src/halo/halo-factory.d.ts.map +1 -1
  19. package/dist/src/halo/halo-factory.js +7 -13
  20. package/dist/src/halo/halo-factory.js.map +1 -1
  21. package/dist/src/halo/halo-party.d.ts +4 -3
  22. package/dist/src/halo/halo-party.d.ts.map +1 -1
  23. package/dist/src/halo/halo-party.js +13 -9
  24. package/dist/src/halo/halo-party.js.map +1 -1
  25. package/dist/src/halo/halo.test.js +4 -3
  26. package/dist/src/halo/halo.test.js.map +1 -1
  27. package/dist/src/halo/identity.js +2 -2
  28. package/dist/src/halo/identity.js.map +1 -1
  29. package/dist/src/halo/party-opener.d.ts +1 -1
  30. package/dist/src/halo/party-opener.d.ts.map +1 -1
  31. package/dist/src/halo/party-opener.js +5 -3
  32. package/dist/src/halo/party-opener.js.map +1 -1
  33. package/dist/src/halo/preferences.d.ts +1 -1
  34. package/dist/src/halo/preferences.d.ts.map +1 -1
  35. package/dist/src/halo/preferences.js +8 -11
  36. package/dist/src/halo/preferences.js.map +1 -1
  37. package/dist/src/index.d.ts +2 -2
  38. package/dist/src/index.d.ts.map +1 -1
  39. package/dist/src/index.js +2 -2
  40. package/dist/src/index.js.map +1 -1
  41. package/dist/src/invitations/greeting-initiator.d.ts +2 -2
  42. package/dist/src/invitations/greeting-initiator.d.ts.map +1 -1
  43. package/dist/src/invitations/greeting-initiator.js +2 -1
  44. package/dist/src/invitations/greeting-initiator.js.map +1 -1
  45. package/dist/src/invitations/greeting-protocol-provider.d.ts.map +1 -1
  46. package/dist/src/invitations/greeting-protocol-provider.js +5 -9
  47. package/dist/src/invitations/greeting-protocol-provider.js.map +1 -1
  48. package/dist/src/invitations/greeting-responder.d.ts +6 -4
  49. package/dist/src/invitations/greeting-responder.d.ts.map +1 -1
  50. package/dist/src/invitations/greeting-responder.js +11 -14
  51. package/dist/src/invitations/greeting-responder.js.map +1 -1
  52. package/dist/src/invitations/halo-recovery-initiator.js +1 -1
  53. package/dist/src/invitations/halo-recovery-initiator.js.map +1 -1
  54. package/dist/src/invitations/invitation-descriptor.js +1 -1
  55. package/dist/src/invitations/invitation-descriptor.js.map +1 -1
  56. package/dist/src/invitations/invitation-factory.d.ts +5 -2
  57. package/dist/src/invitations/invitation-factory.d.ts.map +1 -1
  58. package/dist/src/invitations/invitation-factory.js +4 -3
  59. package/dist/src/invitations/invitation-factory.js.map +1 -1
  60. package/dist/src/invitations/offline-invitation-claimer.d.ts.map +1 -1
  61. package/dist/src/invitations/offline-invitation-claimer.js +6 -8
  62. package/dist/src/invitations/offline-invitation-claimer.js.map +1 -1
  63. package/dist/src/{database → packlets/database}/data-mirror.d.ts +0 -0
  64. package/dist/src/packlets/database/data-mirror.d.ts.map +1 -0
  65. package/dist/src/{database → packlets/database}/data-mirror.js +0 -0
  66. package/dist/src/packlets/database/data-mirror.js.map +1 -0
  67. package/dist/src/{database → packlets/database}/data-mirror.test.d.ts +0 -0
  68. package/dist/src/packlets/database/data-mirror.test.d.ts.map +1 -0
  69. package/dist/src/{database → packlets/database}/data-mirror.test.js +0 -0
  70. package/dist/src/packlets/database/data-mirror.test.js.map +1 -0
  71. package/dist/src/{database → packlets/database}/data-service-host.d.ts +0 -0
  72. package/dist/src/packlets/database/data-service-host.d.ts.map +1 -0
  73. package/dist/src/{database → packlets/database}/data-service-host.js +4 -3
  74. package/dist/src/packlets/database/data-service-host.js.map +1 -0
  75. package/dist/src/{database → packlets/database}/data-service-router.d.ts +0 -0
  76. package/dist/src/packlets/database/data-service-router.d.ts.map +1 -0
  77. package/dist/src/{database → packlets/database}/data-service-router.js +0 -0
  78. package/dist/src/packlets/database/data-service-router.js.map +1 -0
  79. package/dist/src/{database → packlets/database}/database-backend.d.ts +0 -0
  80. package/dist/src/packlets/database/database-backend.d.ts.map +1 -0
  81. package/dist/src/{database → packlets/database}/database-backend.js +0 -0
  82. package/dist/src/packlets/database/database-backend.js.map +1 -0
  83. package/dist/src/{api → packlets/database}/database.d.ts +2 -1
  84. package/dist/src/packlets/database/database.d.ts.map +1 -0
  85. package/dist/src/{api → packlets/database}/database.js +2 -2
  86. package/dist/src/packlets/database/database.js.map +1 -0
  87. package/dist/src/{api → packlets/database}/database.test.d.ts +0 -0
  88. package/dist/src/packlets/database/database.test.d.ts.map +1 -0
  89. package/dist/src/{api → packlets/database}/database.test.js +3 -3
  90. package/dist/src/packlets/database/database.test.js.map +1 -0
  91. package/dist/src/{api → packlets/database}/entity.d.ts +1 -1
  92. package/dist/src/packlets/database/entity.d.ts.map +1 -0
  93. package/dist/src/{api → packlets/database}/entity.js +0 -0
  94. package/dist/src/packlets/database/entity.js.map +1 -0
  95. package/dist/src/{database → packlets/database}/index.d.ts +5 -0
  96. package/dist/src/packlets/database/index.d.ts.map +1 -0
  97. package/dist/src/{database → packlets/database}/index.js +5 -0
  98. package/dist/src/packlets/database/index.js.map +1 -0
  99. package/dist/src/{database → packlets/database}/item-demuxer.d.ts +3 -2
  100. package/dist/src/packlets/database/item-demuxer.d.ts.map +1 -0
  101. package/dist/src/{database → packlets/database}/item-demuxer.js +3 -3
  102. package/dist/src/packlets/database/item-demuxer.js.map +1 -0
  103. package/dist/src/{database → packlets/database}/item-demuxer.test.d.ts +0 -0
  104. package/dist/src/packlets/database/item-demuxer.test.d.ts.map +1 -0
  105. package/dist/src/{database → packlets/database}/item-demuxer.test.js +2 -2
  106. package/dist/src/packlets/database/item-demuxer.test.js.map +1 -0
  107. package/dist/src/{database → packlets/database}/item-manager.d.ts +3 -1
  108. package/dist/src/packlets/database/item-manager.d.ts.map +1 -0
  109. package/dist/src/{database → packlets/database}/item-manager.js +13 -12
  110. package/dist/src/packlets/database/item-manager.js.map +1 -0
  111. package/dist/src/{database → packlets/database}/item-manager.test.d.ts +0 -0
  112. package/dist/src/packlets/database/item-manager.test.d.ts.map +1 -0
  113. package/dist/src/{database → packlets/database}/item-manager.test.js +0 -0
  114. package/dist/src/packlets/database/item-manager.test.js.map +1 -0
  115. package/dist/src/{api → packlets/database}/item.d.ts +1 -1
  116. package/dist/src/packlets/database/item.d.ts.map +1 -0
  117. package/dist/src/{api → packlets/database}/item.js +0 -0
  118. package/dist/src/packlets/database/item.js.map +1 -0
  119. package/dist/src/{api → packlets/database}/link.d.ts +1 -1
  120. package/dist/src/packlets/database/link.d.ts.map +1 -0
  121. package/dist/src/{api → packlets/database}/link.js +0 -0
  122. package/dist/src/packlets/database/link.js.map +1 -0
  123. package/dist/src/{api → packlets/database}/selection/index.d.ts +0 -0
  124. package/dist/src/packlets/database/selection/index.d.ts.map +1 -0
  125. package/dist/src/{api → packlets/database}/selection/index.js +0 -0
  126. package/dist/src/packlets/database/selection/index.js.map +1 -0
  127. package/dist/src/{api → packlets/database}/selection/queries.d.ts +0 -0
  128. package/dist/src/packlets/database/selection/queries.d.ts.map +1 -0
  129. package/dist/src/{api → packlets/database}/selection/queries.js +13 -17
  130. package/dist/src/packlets/database/selection/queries.js.map +1 -0
  131. package/dist/src/{api → packlets/database}/selection/result.d.ts +0 -0
  132. package/dist/src/packlets/database/selection/result.d.ts.map +1 -0
  133. package/dist/src/{api → packlets/database}/selection/result.js +0 -0
  134. package/dist/src/packlets/database/selection/result.js.map +1 -0
  135. package/dist/src/{api → packlets/database}/selection/selection.d.ts +0 -0
  136. package/dist/src/packlets/database/selection/selection.d.ts.map +1 -0
  137. package/dist/src/{api → packlets/database}/selection/selection.js +1 -3
  138. package/dist/src/packlets/database/selection/selection.js.map +1 -0
  139. package/dist/src/{api → packlets/database}/selection/selection.test.d.ts +0 -0
  140. package/dist/src/packlets/database/selection/selection.test.d.ts.map +1 -0
  141. package/dist/src/{api → packlets/database}/selection/selection.test.js +4 -12
  142. package/dist/src/packlets/database/selection/selection.test.js.map +1 -0
  143. package/dist/src/{api → packlets/database}/selection/util.d.ts +0 -0
  144. package/dist/src/packlets/database/selection/util.d.ts.map +1 -0
  145. package/dist/src/{api → packlets/database}/selection/util.js +0 -0
  146. package/dist/src/packlets/database/selection/util.js.map +1 -0
  147. package/dist/src/{database → packlets/database}/testing.d.ts +1 -1
  148. package/dist/src/packlets/database/testing.d.ts.map +1 -0
  149. package/dist/src/{database → packlets/database}/testing.js +4 -4
  150. package/dist/src/packlets/database/testing.js.map +1 -0
  151. package/dist/src/{database → packlets/database}/timeframe-clock.d.ts +0 -0
  152. package/dist/src/packlets/database/timeframe-clock.d.ts.map +1 -0
  153. package/dist/src/{database → packlets/database}/timeframe-clock.js +0 -0
  154. package/dist/src/packlets/database/timeframe-clock.js.map +1 -0
  155. package/dist/src/{errors.d.ts → packlets/errors/index.d.ts} +1 -1
  156. package/dist/src/packlets/errors/index.d.ts.map +1 -0
  157. package/dist/src/{errors.js → packlets/errors/index.js} +1 -1
  158. package/dist/src/packlets/errors/index.js.map +1 -0
  159. package/dist/src/parties/data-party.d.ts +11 -8
  160. package/dist/src/parties/data-party.d.ts.map +1 -1
  161. package/dist/src/parties/data-party.js +18 -13
  162. package/dist/src/parties/data-party.js.map +1 -1
  163. package/dist/src/parties/data-party.test.js +23 -22
  164. package/dist/src/parties/data-party.test.js.map +1 -1
  165. package/dist/src/parties/party-factory.d.ts +2 -8
  166. package/dist/src/parties/party-factory.d.ts.map +1 -1
  167. package/dist/src/parties/party-factory.js +22 -50
  168. package/dist/src/parties/party-factory.js.map +1 -1
  169. package/dist/src/parties/party-manager.d.ts +3 -4
  170. package/dist/src/parties/party-manager.d.ts.map +1 -1
  171. package/dist/src/parties/party-manager.js +4 -5
  172. package/dist/src/parties/party-manager.js.map +1 -1
  173. package/dist/src/parties/party-manager.test.js +14 -13
  174. package/dist/src/parties/party-manager.test.js.map +1 -1
  175. package/dist/src/pipeline/message-selector.d.ts +3 -3
  176. package/dist/src/pipeline/message-selector.d.ts.map +1 -1
  177. package/dist/src/pipeline/message-selector.js +30 -29
  178. package/dist/src/pipeline/message-selector.js.map +1 -1
  179. package/dist/src/pipeline/metadata-store.d.ts +3 -3
  180. package/dist/src/pipeline/metadata-store.d.ts.map +1 -1
  181. package/dist/src/pipeline/metadata-store.js +5 -5
  182. package/dist/src/pipeline/metadata-store.js.map +1 -1
  183. package/dist/src/pipeline/metadata-store.test.js +8 -4
  184. package/dist/src/pipeline/metadata-store.test.js.map +1 -1
  185. package/dist/src/pipeline/party-core.d.ts +21 -6
  186. package/dist/src/pipeline/party-core.d.ts.map +1 -1
  187. package/dist/src/pipeline/party-core.js +14 -17
  188. package/dist/src/pipeline/party-core.js.map +1 -1
  189. package/dist/src/pipeline/party-core.test.js +32 -32
  190. package/dist/src/pipeline/party-core.test.js.map +1 -1
  191. package/dist/src/pipeline/party-processor.d.ts +21 -9
  192. package/dist/src/pipeline/party-processor.d.ts.map +1 -1
  193. package/dist/src/pipeline/party-processor.js +0 -8
  194. package/dist/src/pipeline/party-processor.js.map +1 -1
  195. package/dist/src/pipeline/pipeline.d.ts +3 -5
  196. package/dist/src/pipeline/pipeline.d.ts.map +1 -1
  197. package/dist/src/pipeline/pipeline.js +8 -11
  198. package/dist/src/pipeline/pipeline.js.map +1 -1
  199. package/dist/src/pipeline/pipeline.test.js +4 -5
  200. package/dist/src/pipeline/pipeline.test.js.map +1 -1
  201. package/dist/src/protocol/auth-plugin.d.ts +1 -1
  202. package/dist/src/protocol/auth-plugin.d.ts.map +1 -1
  203. package/dist/src/protocol/auth-plugin.js +1 -3
  204. package/dist/src/protocol/auth-plugin.js.map +1 -1
  205. package/dist/src/protocol/authenticator.d.ts +4 -4
  206. package/dist/src/protocol/authenticator.d.ts.map +1 -1
  207. package/dist/src/protocol/authenticator.js +12 -16
  208. package/dist/src/protocol/authenticator.js.map +1 -1
  209. package/dist/src/protocol/authenticator.test.js +1 -4
  210. package/dist/src/protocol/authenticator.test.js.map +1 -1
  211. package/dist/src/protocol/halo-recovery-plugin.d.ts +1 -1
  212. package/dist/src/protocol/halo-recovery-plugin.d.ts.map +1 -1
  213. package/dist/src/protocol/halo-recovery-plugin.js +1 -3
  214. package/dist/src/protocol/halo-recovery-plugin.js.map +1 -1
  215. package/dist/src/protocol/identity-credentials.d.ts +2 -2
  216. package/dist/src/protocol/identity-credentials.d.ts.map +1 -1
  217. package/dist/src/protocol/identity-credentials.js +4 -4
  218. package/dist/src/protocol/identity-credentials.js.map +1 -1
  219. package/dist/src/protocol/offline-invitation-plugin.d.ts +1 -1
  220. package/dist/src/protocol/offline-invitation-plugin.d.ts.map +1 -1
  221. package/dist/src/protocol/offline-invitation-plugin.js +1 -3
  222. package/dist/src/protocol/offline-invitation-plugin.js.map +1 -1
  223. package/dist/src/protocol/replicator-plugin.d.ts.map +1 -1
  224. package/dist/src/protocol/replicator-plugin.js +4 -6
  225. package/dist/src/protocol/replicator-plugin.js.map +1 -1
  226. package/dist/src/snapshots/snapshot-generator.d.ts +2 -2
  227. package/dist/src/snapshots/snapshot-generator.d.ts.map +1 -1
  228. package/dist/src/snapshots/snapshot-generator.js +13 -15
  229. package/dist/src/snapshots/snapshot-generator.js.map +1 -1
  230. package/dist/src/snapshots/snapshot-store.d.ts +3 -3
  231. package/dist/src/snapshots/snapshot-store.d.ts.map +1 -1
  232. package/dist/src/snapshots/snapshot-store.js +5 -5
  233. package/dist/src/snapshots/snapshot-store.js.map +1 -1
  234. package/dist/src/snapshots/snapshot-store.test.js +1 -1
  235. package/dist/src/snapshots/snapshot-store.test.js.map +1 -1
  236. package/dist/src/snapshots/snapshot.test.js +1 -1
  237. package/dist/src/snapshots/snapshot.test.js.map +1 -1
  238. package/dist/src/testing/testing-factories.d.ts +1 -1
  239. package/dist/src/testing/testing-factories.d.ts.map +1 -1
  240. package/dist/src/testing/testing-factories.js +2 -2
  241. package/dist/src/testing/testing-factories.js.map +1 -1
  242. package/dist/tsconfig.tsbuildinfo +1 -1
  243. package/package.json +18 -18
  244. package/src/api/index.ts +0 -5
  245. package/src/api/schema.test.ts +1 -2
  246. package/src/echo.test.ts +16 -1
  247. package/src/echo.ts +10 -20
  248. package/src/halo/contact-manager.ts +3 -2
  249. package/src/halo/halo-factory.ts +8 -21
  250. package/src/halo/halo-party.ts +16 -9
  251. package/src/halo/halo.test.ts +4 -3
  252. package/src/halo/identity.ts +2 -2
  253. package/src/halo/party-opener.ts +5 -3
  254. package/src/halo/preferences.ts +10 -12
  255. package/src/index.ts +3 -2
  256. package/src/invitations/greeting-initiator.ts +5 -4
  257. package/src/invitations/greeting-protocol-provider.ts +5 -9
  258. package/src/invitations/greeting-responder.ts +15 -17
  259. package/src/invitations/halo-recovery-initiator.ts +1 -1
  260. package/src/invitations/invitation-descriptor.ts +1 -1
  261. package/src/invitations/invitation-factory.ts +8 -5
  262. package/src/invitations/offline-invitation-claimer.ts +6 -8
  263. package/src/{database → packlets/database}/data-mirror.test.ts +1 -1
  264. package/src/{database → packlets/database}/data-mirror.ts +1 -1
  265. package/src/{database → packlets/database}/data-service-host.ts +2 -1
  266. package/src/{database → packlets/database}/data-service-router.ts +0 -0
  267. package/src/{database → packlets/database}/database-backend.ts +0 -0
  268. package/src/{api → packlets/database}/database.test.ts +2 -1
  269. package/src/{api → packlets/database}/database.ts +3 -1
  270. package/src/{api → packlets/database}/entity.ts +1 -1
  271. package/src/{database → packlets/database}/index.ts +5 -0
  272. package/src/{database → packlets/database}/item-demuxer.test.ts +1 -1
  273. package/src/{database → packlets/database}/item-demuxer.ts +5 -3
  274. package/src/{database → packlets/database}/item-manager.test.ts +0 -0
  275. package/src/{database → packlets/database}/item-manager.ts +5 -3
  276. package/src/{api → packlets/database}/item.ts +2 -2
  277. package/src/{api → packlets/database}/link.ts +1 -1
  278. package/src/{api → packlets/database}/selection/index.ts +0 -0
  279. package/src/{api → packlets/database}/selection/queries.ts +14 -18
  280. package/src/{api → packlets/database}/selection/result.ts +0 -0
  281. package/src/{api → packlets/database}/selection/selection.test.ts +4 -12
  282. package/src/{api → packlets/database}/selection/selection.ts +1 -7
  283. package/src/{api → packlets/database}/selection/util.ts +0 -0
  284. package/src/{database → packlets/database}/testing.ts +2 -2
  285. package/src/{database → packlets/database}/timeframe-clock.ts +0 -0
  286. package/src/{errors.ts → packlets/errors/index.ts} +0 -0
  287. package/src/parties/data-party.test.ts +26 -23
  288. package/src/parties/data-party.ts +21 -15
  289. package/src/parties/party-factory.ts +28 -75
  290. package/src/parties/party-manager.test.ts +21 -14
  291. package/src/parties/party-manager.ts +4 -5
  292. package/src/pipeline/message-selector.ts +32 -35
  293. package/src/pipeline/metadata-store.test.ts +8 -4
  294. package/src/pipeline/metadata-store.ts +5 -5
  295. package/src/pipeline/party-core.test.ts +33 -33
  296. package/src/pipeline/party-core.ts +34 -19
  297. package/src/pipeline/party-processor.ts +23 -15
  298. package/src/pipeline/pipeline.test.ts +4 -5
  299. package/src/pipeline/pipeline.ts +12 -15
  300. package/src/protocol/auth-plugin.ts +1 -3
  301. package/src/protocol/authenticator.test.ts +1 -4
  302. package/src/protocol/authenticator.ts +33 -33
  303. package/src/protocol/halo-recovery-plugin.ts +4 -6
  304. package/src/protocol/identity-credentials.ts +4 -4
  305. package/src/protocol/offline-invitation-plugin.ts +4 -6
  306. package/src/protocol/replicator-plugin.ts +4 -6
  307. package/src/snapshots/snapshot-generator.ts +13 -17
  308. package/src/snapshots/snapshot-store.test.ts +1 -1
  309. package/src/snapshots/snapshot-store.ts +5 -6
  310. package/src/snapshots/snapshot.test.ts +1 -1
  311. package/src/testing/testing-factories.ts +3 -3
  312. package/dist/src/api/database.d.ts.map +0 -1
  313. package/dist/src/api/database.js.map +0 -1
  314. package/dist/src/api/database.test.d.ts.map +0 -1
  315. package/dist/src/api/database.test.js.map +0 -1
  316. package/dist/src/api/entity.d.ts.map +0 -1
  317. package/dist/src/api/entity.js.map +0 -1
  318. package/dist/src/api/item.d.ts.map +0 -1
  319. package/dist/src/api/item.js.map +0 -1
  320. package/dist/src/api/link.d.ts.map +0 -1
  321. package/dist/src/api/link.js.map +0 -1
  322. package/dist/src/api/selection/index.d.ts.map +0 -1
  323. package/dist/src/api/selection/index.js.map +0 -1
  324. package/dist/src/api/selection/queries.d.ts.map +0 -1
  325. package/dist/src/api/selection/queries.js.map +0 -1
  326. package/dist/src/api/selection/result.d.ts.map +0 -1
  327. package/dist/src/api/selection/result.js.map +0 -1
  328. package/dist/src/api/selection/selection.d.ts.map +0 -1
  329. package/dist/src/api/selection/selection.js.map +0 -1
  330. package/dist/src/api/selection/selection.test.d.ts.map +0 -1
  331. package/dist/src/api/selection/selection.test.js.map +0 -1
  332. package/dist/src/api/selection/util.d.ts.map +0 -1
  333. package/dist/src/api/selection/util.js.map +0 -1
  334. package/dist/src/database/data-mirror.d.ts.map +0 -1
  335. package/dist/src/database/data-mirror.js.map +0 -1
  336. package/dist/src/database/data-mirror.test.d.ts.map +0 -1
  337. package/dist/src/database/data-mirror.test.js.map +0 -1
  338. package/dist/src/database/data-service-host.d.ts.map +0 -1
  339. package/dist/src/database/data-service-host.js.map +0 -1
  340. package/dist/src/database/data-service-router.d.ts.map +0 -1
  341. package/dist/src/database/data-service-router.js.map +0 -1
  342. package/dist/src/database/database-backend.d.ts.map +0 -1
  343. package/dist/src/database/database-backend.js.map +0 -1
  344. package/dist/src/database/index.d.ts.map +0 -1
  345. package/dist/src/database/index.js.map +0 -1
  346. package/dist/src/database/item-demuxer.d.ts.map +0 -1
  347. package/dist/src/database/item-demuxer.js.map +0 -1
  348. package/dist/src/database/item-demuxer.test.d.ts.map +0 -1
  349. package/dist/src/database/item-demuxer.test.js.map +0 -1
  350. package/dist/src/database/item-manager.d.ts.map +0 -1
  351. package/dist/src/database/item-manager.js.map +0 -1
  352. package/dist/src/database/item-manager.test.d.ts.map +0 -1
  353. package/dist/src/database/item-manager.test.js.map +0 -1
  354. package/dist/src/database/testing.d.ts.map +0 -1
  355. package/dist/src/database/testing.js.map +0 -1
  356. package/dist/src/database/timeframe-clock.d.ts.map +0 -1
  357. package/dist/src/database/timeframe-clock.js.map +0 -1
  358. package/dist/src/errors.d.ts.map +0 -1
  359. package/dist/src/errors.js.map +0 -1
@@ -10,3 +10,8 @@ export * from './item-demuxer';
10
10
  export * from './item-manager';
11
11
  export * from './testing';
12
12
  export * from './timeframe-clock';
13
+ export * from './item';
14
+ export * from './link';
15
+ export * from './entity';
16
+ export * from './selection';
17
+ export * from './database';
@@ -14,7 +14,7 @@ import { createTransform } from '@dxos/feed-store';
14
14
  import { ModelFactory, TestModel } from '@dxos/model-factory';
15
15
  import { ObjectModel } from '@dxos/object-model';
16
16
 
17
- import { Item } from '../api';
17
+ import { Item } from './item';
18
18
  import { ItemDemuxer } from './item-demuxer';
19
19
  import { ItemManager } from './item-manager';
20
20
 
@@ -11,8 +11,10 @@ import { DatabaseSnapshot, IEchoStream, ItemID, ItemSnapshot, LinkSnapshot } fro
11
11
  import { createWritable } from '@dxos/feed-store';
12
12
  import { Model, ModelFactory, ModelMessage } from '@dxos/model-factory';
13
13
 
14
- import { Entity, Item, Link } from '../api';
14
+ import { Entity } from './entity';
15
+ import { Item } from './item';
15
16
  import { ItemManager, ModelConstructionOptions } from './item-manager';
17
+ import { Link } from './link';
16
18
 
17
19
  const log = debug('dxos:echo-db:item-demuxer');
18
20
 
@@ -185,7 +187,7 @@ export class ItemDemuxer {
185
187
  * Sort based on parents.
186
188
  * @param items
187
189
  */
188
- export function sortItemsTopologically (items: ItemSnapshot[]): ItemSnapshot[] {
190
+ export const sortItemsTopologically = (items: ItemSnapshot[]): ItemSnapshot[] => {
189
191
  const snapshots: ItemSnapshot[] = [];
190
192
  const seenIds = new Set<ItemID>();
191
193
 
@@ -204,4 +206,4 @@ export function sortItemsTopologically (items: ItemSnapshot[]): ItemSnapshot[] {
204
206
  }
205
207
 
206
208
  return snapshots;
207
- }
209
+ };
@@ -11,8 +11,10 @@ import { timed } from '@dxos/debug';
11
11
  import { EchoEnvelope, FeedWriter, ItemID, ItemType, mapFeedWriter, ModelSnapshot } from '@dxos/echo-protocol';
12
12
  import { Model, ModelFactory, ModelMessage, ModelType, StateManager } from '@dxos/model-factory';
13
13
 
14
- import { Entity, Item, Link } from '../api';
15
14
  import { UnknownModelError } from '../errors';
15
+ import { Entity } from './entity';
16
+ import { Item } from './item';
17
+ import { Link } from './link';
16
18
 
17
19
  const log = debug('dxos:echo-db:item-manager');
18
20
 
@@ -375,7 +377,7 @@ export class ItemManager {
375
377
  /**
376
378
  * Returns a new event that groups all of the updates emitted during single tick into a single event emission.
377
379
  */
378
- function debounceEntityUpdateEvent (event: Event<Entity<any>>): Event<Entity<any>[]> {
380
+ const debounceEntityUpdateEvent = (event: Event<Entity<any>>): Event<Entity<any>[]> => {
379
381
  const debouncedEvent = new Event<Entity<any>[]>();
380
382
 
381
383
  let firing = false;
@@ -395,4 +397,4 @@ function debounceEntityUpdateEvent (event: Event<Entity<any>>): Event<Entity<any
395
397
  }));
396
398
 
397
399
  return debouncedEvent;
398
- }
400
+ };
@@ -7,10 +7,10 @@ import debug from 'debug';
7
7
  import { EchoEnvelope, ItemID, ItemMutation, ItemType, FeedWriter } from '@dxos/echo-protocol';
8
8
  import { Model, StateManager } from '@dxos/model-factory';
9
9
 
10
- import { ItemManager } from '../database';
11
10
  import { Entity } from './entity';
11
+ import { ItemManager } from './item-manager';
12
12
  import type { Link } from './link';
13
- import { Selection, createItemSelection } from './selection';
13
+ import { createItemSelection, Selection } from './selection';
14
14
 
15
15
  const log = debug('dxos:echo-db:item');
16
16
 
@@ -7,9 +7,9 @@ import assert from 'assert';
7
7
  import { ItemID, ItemType } from '@dxos/echo-protocol';
8
8
  import { Model, StateManager } from '@dxos/model-factory';
9
9
 
10
- import { ItemManager } from '../database';
11
10
  import { Entity } from './entity';
12
11
  import { Item } from './item';
12
+ import { ItemManager } from './item-manager';
13
13
 
14
14
  export interface LinkData {
15
15
  sourceId: ItemID
@@ -84,25 +84,21 @@ export const itemFilterToPredicate = (filter: ItemFilter | ItemIdFilter): Predic
84
84
  }
85
85
  };
86
86
 
87
- export const linkFilterToPredicate = (filter: LinkFilter): Predicate<Link> => {
88
- return link => (!filter.type || testOneOrMultiple(filter.type, link.type));
89
- };
87
+ export const linkFilterToPredicate = (filter: LinkFilter): Predicate<Link> => link => (!filter.type || testOneOrMultiple(filter.type, link.type));
90
88
 
91
89
  export const createQueryOptionsFilter = ({
92
90
  deleted = ItemFilterDeleted.HIDE_DELETED
93
- }: QueryOptions): Predicate<Entity> => {
94
- return entity => {
95
- if (entity.model === null) {
96
- return false;
97
- }
98
-
99
- switch (deleted) {
100
- case ItemFilterDeleted.HIDE_DELETED:
101
- return !(entity instanceof Item) || !entity.deleted;
102
- case ItemFilterDeleted.SHOW_DELETED:
103
- return true;
104
- case ItemFilterDeleted.SHOW_DELETED_ONLY:
105
- return entity instanceof Item && entity.deleted;
106
- }
107
- };
91
+ }: QueryOptions): Predicate<Entity> => entity => {
92
+ if (entity.model === null) {
93
+ return false;
94
+ }
95
+
96
+ switch (deleted) {
97
+ case ItemFilterDeleted.HIDE_DELETED:
98
+ return !(entity instanceof Item) || !entity.deleted;
99
+ case ItemFilterDeleted.SHOW_DELETED:
100
+ return true;
101
+ case ItemFilterDeleted.SHOW_DELETED_ONLY:
102
+ return entity instanceof Item && entity.deleted;
103
+ }
108
104
  };
@@ -24,9 +24,7 @@ const modelFactory = new ModelFactory().registerModel(ObjectModel);
24
24
 
25
25
  const createModel = (id: ItemID) => modelFactory.createModel(ObjectModel.meta.type, id, {}, PublicKey.random());
26
26
 
27
- const createItem = (id: ItemID, type: ItemType, parent?: Item<any>) => {
28
- return new Item(null as any, id, type, createModel(id), undefined, parent);
29
- };
27
+ const createItem = (id: ItemID, type: ItemType, parent?: Item<any>) => new Item(null as any, id, type, createModel(id), undefined, parent);
30
28
 
31
29
  const createLink = (id: ItemID, type: ItemType, source: Item<any>, target: Item<any>) => {
32
30
  const link = new Link(null as any, id, type, createModel(id), {
@@ -262,17 +260,11 @@ describe('Selection', () => {
262
260
  test('complex reducer', () => {
263
261
  const query = createReducer({ numItems: 0, numLinks: 0 })
264
262
  .filter({ type: ITEM_ORG })
265
- .call((items: Item[], { numItems, ...rest }) => {
266
- return { ...rest, numItems: numItems + items.length, stage: 'a' };
267
- })
263
+ .call((items: Item[], { numItems, ...rest }) => ({ ...rest, numItems: numItems + items.length, stage: 'a' }))
268
264
  .children({ type: ITEM_PROJECT })
269
- .call((items: Item[], { numItems, ...rest }) => {
270
- return { ...rest, numItems: numItems + items.length, stage: 'b' };
271
- })
265
+ .call((items: Item[], { numItems, ...rest }) => ({ ...rest, numItems: numItems + items.length, stage: 'b' }))
272
266
  .links({ type: LINK_MEMBER })
273
- .call((links: Link[], { numLinks, ...rest }) => {
274
- return { ...rest, numLinks: numLinks + links.length, stage: 'c' };
275
- })
267
+ .call((links: Link[], { numLinks, ...rest }) => ({ ...rest, numLinks: numLinks + links.length, stage: 'c' }))
276
268
  .target()
277
269
  .exec();
278
270
 
@@ -57,13 +57,7 @@ export const createSelection = <R>(
57
57
  * @param update
58
58
  * @param value Initial reducer value.
59
59
  */
60
- export const createItemSelection = <R>(
61
- root: Item<any>,
62
- update: Event<Entity[]>,
63
- value: R
64
- ): Selection<Item<any>, R> => {
65
- return new Selection(() => [[root], value], update, root, value !== undefined);
66
- };
60
+ export const createItemSelection = <R>(root: Item<any>, update: Event<Entity[]>, value: R): Selection<Item<any>, R> => new Selection(() => [[root], value], update, root, value !== undefined);
67
61
 
68
62
  /**
69
63
  * Selections are used to construct database subscriptions.
File without changes
@@ -8,14 +8,14 @@ import { PublicKey } from '@dxos/crypto';
8
8
  import { EchoEnvelope, MockFeedWriter, Timeframe } from '@dxos/echo-protocol';
9
9
  import { ModelFactory } from '@dxos/model-factory';
10
10
 
11
- import { Database } from '../api';
12
11
  import { DataServiceHost } from './data-service-host';
13
12
  import { DataServiceRouter } from './data-service-router';
13
+ import { Database } from './database';
14
14
  import { FeedDatabaseBackend, RemoteDatabaseBackend } from './database-backend';
15
15
 
16
16
  export const createInMemoryDatabase = async (modelFactory: ModelFactory) => {
17
17
  const feed = new MockFeedWriter<EchoEnvelope>();
18
- const inboundStream = new Readable({ read () {}, objectMode: true });
18
+ const inboundStream = new Readable({ read: () => {}, objectMode: true });
19
19
  feed.written.on(([data, meta]) => inboundStream.push({ data, meta: { ...meta, memberKey: PublicKey.random(), timeframe: new Timeframe([[meta.feedKey, meta.seq]]) } }));
20
20
 
21
21
  const database = new Database(
File without changes
@@ -5,7 +5,7 @@
5
5
  import expect from 'expect';
6
6
  import { it as test } from 'mocha';
7
7
 
8
- import { createKeyAdmitMessage, createPartyGenesisMessage, defaultSecretProvider, KeyHint, Keyring, KeyType, codec as haloCodec } from '@dxos/credentials';
8
+ import { createKeyAdmitMessage, createPartyGenesisMessage, defaultSecretProvider, Keyring, KeyType, codec as haloCodec } from '@dxos/credentials';
9
9
  import { PublicKey } from '@dxos/crypto';
10
10
  import { codec } from '@dxos/echo-protocol';
11
11
  import { FeedStore } from '@dxos/feed-store';
@@ -22,10 +22,12 @@ import { SnapshotStore } from '../snapshots';
22
22
  import { DataParty } from './data-party';
23
23
 
24
24
  describe('DataParty', () => {
25
- const createParty = async (identity: IdentityCredentials, partyKey: PublicKey, hints: KeyHint[]) => {
26
- const metadataStore = new MetadataStore(createStorage('metadata', StorageType.RAM));
27
- const feedStore = new FeedStore(createStorage('feed', StorageType.RAM), { valueEncoding: codec });
28
- const snapshotStore = new SnapshotStore(createStorage('snapshots', StorageType.RAM));
25
+ const createParty = async (identity: IdentityCredentials, partyKey: PublicKey, feedHints: PublicKey[]) => {
26
+
27
+ const storage = createStorage('', StorageType.RAM);
28
+ const snapshotStore = new SnapshotStore(storage.directory('snapshots'));
29
+ const metadataStore = new MetadataStore(storage.directory('metadata'));
30
+ const feedStore = new FeedStore(storage.directory('feed'), { valueEncoding: codec });
29
31
  const modelFactory = new ModelFactory().registerModel(ObjectModel);
30
32
  const networkManager = new NetworkManager();
31
33
  const partyFeedProvider = new PartyFeedProvider(metadataStore, identity.keyring, feedStore, partyKey);
@@ -38,7 +40,7 @@ describe('DataParty', () => {
38
40
  identity.createCredentialsSigner(),
39
41
  identity.preferences,
40
42
  networkManager,
41
- hints
43
+ feedHints
42
44
  );
43
45
  };
44
46
 
@@ -59,8 +61,8 @@ describe('DataParty', () => {
59
61
  const party = await createParty(identity, partyKey.publicKey, []);
60
62
  await party.open();
61
63
 
62
- const feed = await party.feedProvider.createOrOpenWritableFeed();
63
- await party.processor.writeHaloMessage(createPartyGenesisMessage(
64
+ const feed = await party.getWriteFeed();
65
+ await party.credentialsWriter.write(createPartyGenesisMessage(
64
66
  keyring,
65
67
  partyKey,
66
68
  feed.key,
@@ -79,15 +81,16 @@ describe('DataParty', () => {
79
81
 
80
82
  const party = await createParty(identity, partyKey.publicKey, []);
81
83
  await party.open();
82
- const feed = await party.feedProvider.createOrOpenWritableFeed();
83
- await party.processor.writeHaloMessage(createPartyGenesisMessage(
84
+ const feed = await party.getWriteFeed();
85
+ await party.credentialsWriter.write(createPartyGenesisMessage(
84
86
  keyring,
85
87
  partyKey,
86
88
  feed.key,
87
89
  partyKey
88
90
  ));
91
+ await party.processor.feedAdded.waitForCount(1);
89
92
 
90
- const authenticator = createAuthenticator(party.processor, identity.createCredentialsSigner());
93
+ const authenticator = createAuthenticator(party.processor, identity.createCredentialsSigner(), party.credentialsWriter);
91
94
  const credentialsProvider = createCredentialsProvider(identity.createCredentialsSigner(), party.key, feed.key);
92
95
 
93
96
  const wrappedCredentials = haloCodec.decode(credentialsProvider.get());
@@ -103,14 +106,16 @@ describe('DataParty', () => {
103
106
 
104
107
  const party = await createParty(identityA, partyKey.publicKey, []);
105
108
  await party.open();
106
- const feed = await party.feedProvider.createOrOpenWritableFeed();
107
- await party.processor.writeHaloMessage(createPartyGenesisMessage(
109
+ const feed = await party.getWriteFeed();
110
+ await party.credentialsWriter.write(createPartyGenesisMessage(
108
111
  keyring,
109
112
  partyKey,
110
113
  feed.key,
111
114
  partyKey
112
115
  ));
113
- const authenticator = createAuthenticator(party.processor, identityA.createCredentialsSigner());
116
+ await party.processor.feedAdded.waitForCount(1);
117
+
118
+ const authenticator = createAuthenticator(party.processor, identityA.createCredentialsSigner(), party.credentialsWriter);
114
119
 
115
120
  const identityB = await deriveTestDeviceCredentials(identityA);
116
121
  const credentialsProvider = createCredentialsProvider(identityB.createCredentialsSigner(), party.key, feed.key);
@@ -128,14 +133,14 @@ describe('DataParty', () => {
128
133
 
129
134
  const partyA = await createParty(identityA, partyKey.publicKey, []);
130
135
  await partyA.open();
131
- const feedA = await partyA.feedProvider.createOrOpenWritableFeed();
132
- await partyA.processor.writeHaloMessage(createPartyGenesisMessage(
136
+ const feedA = await partyA.getWriteFeed();
137
+ await partyA.credentialsWriter.write(createPartyGenesisMessage(
133
138
  keyring,
134
139
  partyKey,
135
140
  feedA.key,
136
141
  partyKey
137
142
  ));
138
- await partyA.processor.writeHaloMessage(createKeyAdmitMessage(
143
+ await partyA.credentialsWriter.write(createKeyAdmitMessage(
139
144
  keyring,
140
145
  partyKey.publicKey,
141
146
  identityA.identityKey,
@@ -143,9 +148,7 @@ describe('DataParty', () => {
143
148
  ));
144
149
 
145
150
  const identityB = await deriveTestDeviceCredentials(identityA);
146
- const partyB = await createParty(identityB, partyKey.publicKey, [
147
- { type: KeyType.FEED, publicKey: feedA.key }
148
- ]);
151
+ const partyB = await createParty(identityB, partyKey.publicKey, [feedA.key]);
149
152
  await partyB.open();
150
153
 
151
154
  await partyA.database.createItem({ type: 'test:item-a' });
@@ -164,14 +167,14 @@ describe('DataParty', () => {
164
167
 
165
168
  const partyA = await createParty(identityA, partyKeyA.publicKey, []);
166
169
  await partyA.open();
167
- const feedA = await partyA.feedProvider.createOrOpenWritableFeed();
168
- await partyA.processor.writeHaloMessage(createPartyGenesisMessage(
170
+ const feedA = await partyA.getWriteFeed();
171
+ await partyA.credentialsWriter.write(createPartyGenesisMessage(
169
172
  identityA.keyring,
170
173
  partyKeyA,
171
174
  feedA.key,
172
175
  partyKeyA
173
176
  ));
174
- await partyA.processor.writeHaloMessage(createKeyAdmitMessage(
177
+ await partyA.credentialsWriter.write(createKeyAdmitMessage(
175
178
  identityA.keyring,
176
179
  partyKeyA.publicKey,
177
180
  identityA.identityKey,
@@ -5,17 +5,18 @@
5
5
  import assert from 'assert';
6
6
 
7
7
  import { synchronized, Event } from '@dxos/async';
8
- import { KeyHint } from '@dxos/credentials';
9
8
  import { PublicKey } from '@dxos/crypto';
10
9
  import { timed } from '@dxos/debug';
11
10
  import { PartyKey, PartySnapshot, Timeframe } from '@dxos/echo-protocol';
11
+ import { FeedDescriptor } from '@dxos/feed-store';
12
12
  import { ModelFactory } from '@dxos/model-factory';
13
13
  import { NetworkManager } from '@dxos/network-manager';
14
14
  import { ObjectModel } from '@dxos/object-model';
15
15
 
16
- import { Database, Item, ResultSet } from '../api';
16
+ import { ResultSet } from '../api';
17
17
  import { ActivationOptions, PartyPreferences, Preferences } from '../halo';
18
18
  import { InvitationFactory } from '../invitations';
19
+ import { Database, Item } from '../packlets/database';
19
20
  import { PartyFeedProvider, PartyProtocolFactory, PartyCore, PartyOptions } from '../pipeline';
20
21
  import { createAuthPlugin, createOfflineInvitationPlugin, createAuthenticator, createCredentialsProvider } from '../protocol';
21
22
  import { CredentialsSigner } from '../protocol/credentials-signer';
@@ -55,8 +56,8 @@ export class DataParty {
55
56
  // TODO(dmaretskyi): Pull this out to a higher level. Should preferences be part of client API instead?
56
57
  private readonly _profilePreferences: Preferences | undefined,
57
58
  private readonly _networkManager: NetworkManager,
58
- private readonly _hints: KeyHint[] = [],
59
- _initialTimeframe?: Timeframe,
59
+ private readonly _feedHints: PublicKey[] = [],
60
+ private readonly _initialTimeframe?: Timeframe,
60
61
  _options: PartyOptions = {}
61
62
  ) {
62
63
  this._partyCore = new PartyCore(
@@ -65,7 +66,6 @@ export class DataParty {
65
66
  modelFactory,
66
67
  snapshotStore,
67
68
  this._credentialsSigner.getIdentityKey().publicKey,
68
- _initialTimeframe,
69
69
  _options
70
70
  );
71
71
 
@@ -126,14 +126,8 @@ export class DataParty {
126
126
  return this._invitationManager;
127
127
  }
128
128
 
129
- // TODO(burdon): Remove?
130
- get feedProvider (): PartyFeedProvider {
131
- return this._feedProvider;
132
- }
133
-
134
- get preferences (): PartyPreferences {
135
- assert(this._preferences, 'Preferences not available.');
136
- return this._preferences;
129
+ get credentialsWriter () {
130
+ return this._partyCore.credentialsWriter;
137
131
  }
138
132
 
139
133
  get title () {
@@ -156,11 +150,15 @@ export class DataParty {
156
150
  return this;
157
151
  }
158
152
 
159
- await this._partyCore.open(this._hints);
153
+ await this._partyCore.open({
154
+ feedHints: this._feedHints,
155
+ initialTimeframe: this._initialTimeframe
156
+ });
160
157
 
161
158
  this._invitationManager = new InvitationFactory(
162
159
  this._partyCore.processor,
163
160
  this._credentialsSigner,
161
+ this._partyCore.credentialsWriter,
164
162
  this._networkManager
165
163
  );
166
164
 
@@ -180,7 +178,7 @@ export class DataParty {
180
178
 
181
179
  await this._protocol.start([
182
180
  createReplicatorPlugin(this._feedProvider),
183
- createAuthPlugin(createAuthenticator(this._partyCore.processor, this._credentialsSigner), deviceKey.publicKey),
181
+ createAuthPlugin(createAuthenticator(this._partyCore.processor, this._credentialsSigner, this.credentialsWriter), deviceKey.publicKey),
184
182
  createOfflineInvitationPlugin(this._invitationManager, deviceKey.publicKey)
185
183
  ]);
186
184
 
@@ -211,6 +209,14 @@ export class DataParty {
211
209
  return this;
212
210
  }
213
211
 
212
+ async getWriteFeed (): Promise<FeedDescriptor> {
213
+ return this._feedProvider.createOrOpenWritableFeed();
214
+ }
215
+
216
+ getFeeds (): FeedDescriptor[] {
217
+ return this._feedProvider.getFeeds();
218
+ }
219
+
214
220
  get isActive (): boolean {
215
221
  assert(this._preferences, 'PartyActivator required');
216
222
  return this._preferences.isActive;