@dxos/echo-db 2.33.5-dev.ea3876ba → 2.33.5-dev.fee8f5fe
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.
- package/dist/src/api/index.d.ts +0 -5
- package/dist/src/api/index.d.ts.map +1 -1
- package/dist/src/api/index.js +5 -6
- package/dist/src/api/index.js.map +1 -1
- package/dist/src/api/schema.test.js +1 -1
- package/dist/src/api/schema.test.js.map +1 -1
- package/dist/src/echo.d.ts +1 -0
- package/dist/src/echo.d.ts.map +1 -1
- package/dist/src/echo.js +10 -21
- package/dist/src/echo.js.map +1 -1
- package/dist/src/echo.test.js +12 -4
- package/dist/src/echo.test.js.map +1 -1
- package/dist/src/halo/contact-manager.d.ts +2 -1
- package/dist/src/halo/contact-manager.d.ts.map +1 -1
- package/dist/src/halo/contact-manager.js +1 -1
- package/dist/src/halo/contact-manager.js.map +1 -1
- package/dist/src/halo/halo-factory.d.ts +4 -4
- package/dist/src/halo/halo-factory.d.ts.map +1 -1
- package/dist/src/halo/halo-factory.js +8 -13
- package/dist/src/halo/halo-factory.js.map +1 -1
- package/dist/src/halo/halo-party.d.ts +5 -4
- package/dist/src/halo/halo-party.d.ts.map +1 -1
- package/dist/src/halo/halo-party.js +16 -10
- package/dist/src/halo/halo-party.js.map +1 -1
- package/dist/src/halo/halo.d.ts +2 -2
- package/dist/src/halo/halo.d.ts.map +1 -1
- package/dist/src/halo/halo.test.js +4 -3
- package/dist/src/halo/halo.test.js.map +1 -1
- package/dist/src/halo/identity.js +2 -2
- package/dist/src/halo/identity.js.map +1 -1
- package/dist/src/halo/index.js +5 -1
- package/dist/src/halo/index.js.map +1 -1
- package/dist/src/halo/party-opener.d.ts +1 -1
- package/dist/src/halo/party-opener.d.ts.map +1 -1
- package/dist/src/halo/party-opener.js +5 -3
- package/dist/src/halo/party-opener.js.map +1 -1
- package/dist/src/halo/preferences.d.ts +1 -1
- package/dist/src/halo/preferences.d.ts.map +1 -1
- package/dist/src/halo/preferences.js +8 -11
- package/dist/src/halo/preferences.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/invitations/greeting-initiator.d.ts +4 -5
- package/dist/src/invitations/greeting-initiator.d.ts.map +1 -1
- package/dist/src/invitations/greeting-initiator.js +4 -4
- package/dist/src/invitations/greeting-initiator.js.map +1 -1
- package/dist/src/invitations/greeting-protocol-provider.d.ts.map +1 -1
- package/dist/src/invitations/greeting-protocol-provider.js +5 -9
- package/dist/src/invitations/greeting-protocol-provider.js.map +1 -1
- package/dist/src/invitations/greeting-responder.d.ts +6 -4
- package/dist/src/invitations/greeting-responder.d.ts.map +1 -1
- package/dist/src/invitations/greeting-responder.js +11 -14
- package/dist/src/invitations/greeting-responder.js.map +1 -1
- package/dist/src/invitations/halo-recovery-initiator.d.ts +1 -1
- package/dist/src/invitations/halo-recovery-initiator.d.ts.map +1 -1
- package/dist/src/invitations/halo-recovery-initiator.js +2 -2
- package/dist/src/invitations/halo-recovery-initiator.js.map +1 -1
- package/dist/src/invitations/index.js +5 -1
- package/dist/src/invitations/index.js.map +1 -1
- package/dist/src/invitations/invitation-descriptor.js +6 -2
- package/dist/src/invitations/invitation-descriptor.js.map +1 -1
- package/dist/src/invitations/invitation-factory.d.ts +5 -2
- package/dist/src/invitations/invitation-factory.d.ts.map +1 -1
- package/dist/src/invitations/invitation-factory.js +4 -3
- package/dist/src/invitations/invitation-factory.js.map +1 -1
- package/dist/src/invitations/offline-invitation-claimer.d.ts.map +1 -1
- package/dist/src/invitations/offline-invitation-claimer.js +7 -9
- package/dist/src/invitations/offline-invitation-claimer.js.map +1 -1
- package/dist/src/{database → packlets/database}/data-mirror.d.ts +0 -0
- package/dist/src/packlets/database/data-mirror.d.ts.map +1 -0
- package/dist/src/{database → packlets/database}/data-mirror.js +0 -0
- package/dist/src/packlets/database/data-mirror.js.map +1 -0
- package/dist/src/{database → packlets/database}/data-mirror.test.d.ts +0 -0
- package/dist/src/packlets/database/data-mirror.test.d.ts.map +1 -0
- package/dist/src/{database → packlets/database}/data-mirror.test.js +2 -2
- package/dist/src/packlets/database/data-mirror.test.js.map +1 -0
- package/dist/src/{database → packlets/database}/data-service-host.d.ts +0 -0
- package/dist/src/packlets/database/data-service-host.d.ts.map +1 -0
- package/dist/src/{database → packlets/database}/data-service-host.js +4 -3
- package/dist/src/packlets/database/data-service-host.js.map +1 -0
- package/dist/src/{database → packlets/database}/data-service-router.d.ts +0 -0
- package/dist/src/packlets/database/data-service-router.d.ts.map +1 -0
- package/dist/src/{database → packlets/database}/data-service-router.js +0 -0
- package/dist/src/packlets/database/data-service-router.js.map +1 -0
- package/dist/src/{database → packlets/database}/database-backend.d.ts +4 -5
- package/dist/src/packlets/database/database-backend.d.ts.map +1 -0
- package/dist/src/{database → packlets/database}/database-backend.js +5 -6
- package/dist/src/packlets/database/database-backend.js.map +1 -0
- package/dist/src/{api → packlets/database}/database.d.ts +2 -1
- package/dist/src/packlets/database/database.d.ts.map +1 -0
- package/dist/src/{api → packlets/database}/database.js +2 -2
- package/dist/src/packlets/database/database.js.map +1 -0
- package/dist/src/{api → packlets/database}/database.test.d.ts +0 -0
- package/dist/src/packlets/database/database.test.d.ts.map +1 -0
- package/dist/src/{api → packlets/database}/database.test.js +3 -3
- package/dist/src/packlets/database/database.test.js.map +1 -0
- package/dist/src/{api → packlets/database}/entity.d.ts +1 -1
- package/dist/src/packlets/database/entity.d.ts.map +1 -0
- package/dist/src/{api → packlets/database}/entity.js +0 -0
- package/dist/src/packlets/database/entity.js.map +1 -0
- package/dist/src/{database → packlets/database}/index.d.ts +5 -0
- package/dist/src/packlets/database/index.d.ts.map +1 -0
- package/dist/src/{database → packlets/database}/index.js +10 -1
- package/dist/src/packlets/database/index.js.map +1 -0
- package/dist/src/{database → packlets/database}/item-demuxer.d.ts +5 -4
- package/dist/src/packlets/database/item-demuxer.d.ts.map +1 -0
- package/dist/src/{database → packlets/database}/item-demuxer.js +5 -8
- package/dist/src/packlets/database/item-demuxer.js.map +1 -0
- package/dist/src/{database → packlets/database}/item-demuxer.test.d.ts +0 -0
- package/dist/src/packlets/database/item-demuxer.test.d.ts.map +1 -0
- package/dist/src/{database → packlets/database}/item-demuxer.test.js +15 -11
- package/dist/src/packlets/database/item-demuxer.test.js.map +1 -0
- package/dist/src/{database → packlets/database}/item-manager.d.ts +3 -1
- package/dist/src/packlets/database/item-manager.d.ts.map +1 -0
- package/dist/src/{database → packlets/database}/item-manager.js +13 -12
- package/dist/src/packlets/database/item-manager.js.map +1 -0
- package/dist/src/{database → packlets/database}/item-manager.test.d.ts +0 -0
- package/dist/src/packlets/database/item-manager.test.d.ts.map +1 -0
- package/dist/src/{database → packlets/database}/item-manager.test.js +0 -0
- package/dist/src/packlets/database/item-manager.test.js.map +1 -0
- package/dist/src/{api → packlets/database}/item.d.ts +1 -1
- package/dist/src/packlets/database/item.d.ts.map +1 -0
- package/dist/src/{api → packlets/database}/item.js +0 -0
- package/dist/src/packlets/database/item.js.map +1 -0
- package/dist/src/{api → packlets/database}/link.d.ts +1 -1
- package/dist/src/packlets/database/link.d.ts.map +1 -0
- package/dist/src/{api → packlets/database}/link.js +0 -0
- package/dist/src/packlets/database/link.js.map +1 -0
- package/dist/src/{api → packlets/database}/selection/index.d.ts +0 -0
- package/dist/src/packlets/database/selection/index.d.ts.map +1 -0
- package/dist/src/{api → packlets/database}/selection/index.js +5 -1
- package/dist/src/packlets/database/selection/index.js.map +1 -0
- package/dist/src/{api → packlets/database}/selection/queries.d.ts +0 -0
- package/dist/src/packlets/database/selection/queries.d.ts.map +1 -0
- package/dist/src/{api → packlets/database}/selection/queries.js +13 -17
- package/dist/src/packlets/database/selection/queries.js.map +1 -0
- package/dist/src/{api → packlets/database}/selection/result.d.ts +0 -0
- package/dist/src/packlets/database/selection/result.d.ts.map +1 -0
- package/dist/src/{api → packlets/database}/selection/result.js +0 -0
- package/dist/src/packlets/database/selection/result.js.map +1 -0
- package/dist/src/{api → packlets/database}/selection/selection.d.ts +0 -0
- package/dist/src/packlets/database/selection/selection.d.ts.map +1 -0
- package/dist/src/{api → packlets/database}/selection/selection.js +1 -3
- package/dist/src/packlets/database/selection/selection.js.map +1 -0
- package/dist/src/{api → packlets/database}/selection/selection.test.d.ts +0 -0
- package/dist/src/packlets/database/selection/selection.test.d.ts.map +1 -0
- package/dist/src/{api → packlets/database}/selection/selection.test.js +4 -12
- package/dist/src/packlets/database/selection/selection.test.js.map +1 -0
- package/dist/src/{api → packlets/database}/selection/util.d.ts +0 -0
- package/dist/src/packlets/database/selection/util.d.ts.map +1 -0
- package/dist/src/{api → packlets/database}/selection/util.js +0 -0
- package/dist/src/packlets/database/selection/util.js.map +1 -0
- package/dist/src/{database → packlets/database}/testing.d.ts +1 -1
- package/dist/src/packlets/database/testing.d.ts.map +1 -0
- package/dist/src/{database → packlets/database}/testing.js +5 -6
- package/dist/src/packlets/database/testing.js.map +1 -0
- package/dist/src/{database → packlets/database}/timeframe-clock.d.ts +1 -0
- package/dist/src/packlets/database/timeframe-clock.d.ts.map +1 -0
- package/dist/src/{database → packlets/database}/timeframe-clock.js +3 -0
- package/dist/src/packlets/database/timeframe-clock.js.map +1 -0
- package/dist/src/{errors.d.ts → packlets/errors/index.d.ts} +1 -1
- package/dist/src/packlets/errors/index.d.ts.map +1 -0
- package/dist/src/{errors.js → packlets/errors/index.js} +1 -1
- package/dist/src/packlets/errors/index.js.map +1 -0
- package/dist/src/parties/data-party.d.ts +14 -10
- package/dist/src/parties/data-party.d.ts.map +1 -1
- package/dist/src/parties/data-party.js +39 -15
- package/dist/src/parties/data-party.js.map +1 -1
- package/dist/src/parties/data-party.test.js +42 -22
- package/dist/src/parties/data-party.test.js.map +1 -1
- package/dist/src/parties/index.js +5 -1
- package/dist/src/parties/index.js.map +1 -1
- package/dist/src/parties/party-factory.d.ts +5 -10
- package/dist/src/parties/party-factory.d.ts.map +1 -1
- package/dist/src/parties/party-factory.js +30 -54
- package/dist/src/parties/party-factory.js.map +1 -1
- package/dist/src/parties/party-manager.d.ts +3 -4
- package/dist/src/parties/party-manager.d.ts.map +1 -1
- package/dist/src/parties/party-manager.js +9 -7
- package/dist/src/parties/party-manager.js.map +1 -1
- package/dist/src/parties/party-manager.test.js +16 -15
- package/dist/src/parties/party-manager.test.js.map +1 -1
- package/dist/src/pipeline/{pipeline.d.ts → feed-muxer.d.ts} +10 -15
- package/dist/src/pipeline/feed-muxer.d.ts.map +1 -0
- package/dist/src/pipeline/{pipeline.js → feed-muxer.js} +34 -44
- package/dist/src/pipeline/feed-muxer.js.map +1 -0
- package/dist/src/pipeline/feed-muxer.test.d.ts +2 -0
- package/dist/src/pipeline/feed-muxer.test.d.ts.map +1 -0
- package/dist/src/pipeline/{pipeline.test.js → feed-muxer.test.js} +20 -18
- package/dist/src/pipeline/feed-muxer.test.js.map +1 -0
- package/dist/src/pipeline/index.d.ts +2 -2
- package/dist/src/pipeline/index.d.ts.map +1 -1
- package/dist/src/pipeline/index.js +7 -3
- package/dist/src/pipeline/index.js.map +1 -1
- package/dist/src/pipeline/message-selector.d.ts +3 -3
- package/dist/src/pipeline/message-selector.d.ts.map +1 -1
- package/dist/src/pipeline/message-selector.js +30 -29
- package/dist/src/pipeline/message-selector.js.map +1 -1
- package/dist/src/pipeline/metadata-store.d.ts +5 -4
- package/dist/src/pipeline/metadata-store.d.ts.map +1 -1
- package/dist/src/pipeline/metadata-store.js +11 -5
- package/dist/src/pipeline/metadata-store.js.map +1 -1
- package/dist/src/pipeline/metadata-store.test.js +8 -4
- package/dist/src/pipeline/metadata-store.test.js.map +1 -1
- package/dist/src/pipeline/party-feed-provider.d.ts +2 -3
- package/dist/src/pipeline/party-feed-provider.d.ts.map +1 -1
- package/dist/src/pipeline/party-feed-provider.js +2 -17
- package/dist/src/pipeline/party-feed-provider.js.map +1 -1
- package/dist/src/pipeline/{party-core.d.ts → party-pipeline.d.ts} +26 -11
- package/dist/src/pipeline/party-pipeline.d.ts.map +1 -0
- package/dist/src/pipeline/{party-core.js → party-pipeline.js} +32 -31
- package/dist/src/pipeline/party-pipeline.js.map +1 -0
- package/dist/src/pipeline/party-pipeline.test.d.ts +2 -0
- package/dist/src/pipeline/party-pipeline.test.d.ts.map +1 -0
- package/dist/src/pipeline/{party-core.test.js → party-pipeline.test.js} +64 -46
- package/dist/src/pipeline/party-pipeline.test.js.map +1 -0
- package/dist/src/pipeline/party-processor.d.ts +21 -9
- package/dist/src/pipeline/party-processor.d.ts.map +1 -1
- package/dist/src/pipeline/party-processor.js +0 -8
- package/dist/src/pipeline/party-processor.js.map +1 -1
- package/dist/src/protocol/auth-plugin.d.ts +1 -1
- package/dist/src/protocol/auth-plugin.d.ts.map +1 -1
- package/dist/src/protocol/auth-plugin.js +1 -3
- package/dist/src/protocol/auth-plugin.js.map +1 -1
- package/dist/src/protocol/authenticator.d.ts +4 -4
- package/dist/src/protocol/authenticator.d.ts.map +1 -1
- package/dist/src/protocol/authenticator.js +12 -16
- package/dist/src/protocol/authenticator.js.map +1 -1
- package/dist/src/protocol/authenticator.test.js +1 -4
- package/dist/src/protocol/authenticator.test.js.map +1 -1
- package/dist/src/protocol/halo-recovery-plugin.d.ts +1 -1
- package/dist/src/protocol/halo-recovery-plugin.d.ts.map +1 -1
- package/dist/src/protocol/halo-recovery-plugin.js +1 -3
- package/dist/src/protocol/halo-recovery-plugin.js.map +1 -1
- package/dist/src/protocol/identity-credentials.d.ts +2 -2
- package/dist/src/protocol/identity-credentials.d.ts.map +1 -1
- package/dist/src/protocol/identity-credentials.js +4 -4
- package/dist/src/protocol/identity-credentials.js.map +1 -1
- package/dist/src/protocol/index.js +5 -1
- package/dist/src/protocol/index.js.map +1 -1
- package/dist/src/protocol/offline-invitation-plugin.d.ts +1 -1
- package/dist/src/protocol/offline-invitation-plugin.d.ts.map +1 -1
- package/dist/src/protocol/offline-invitation-plugin.js +1 -3
- package/dist/src/protocol/offline-invitation-plugin.js.map +1 -1
- package/dist/src/protocol/party-protocol-factory.d.ts +1 -14
- package/dist/src/protocol/party-protocol-factory.d.ts.map +1 -1
- package/dist/src/protocol/party-protocol-factory.js +2 -55
- package/dist/src/protocol/party-protocol-factory.js.map +1 -1
- package/dist/src/protocol/replicator-plugin.d.ts +7 -0
- package/dist/src/protocol/replicator-plugin.d.ts.map +1 -0
- package/dist/src/protocol/replicator-plugin.js +36 -0
- package/dist/src/protocol/replicator-plugin.js.map +1 -0
- package/dist/src/snapshots/index.js +5 -1
- package/dist/src/snapshots/index.js.map +1 -1
- package/dist/src/snapshots/snapshot-generator.d.ts +3 -3
- package/dist/src/snapshots/snapshot-generator.d.ts.map +1 -1
- package/dist/src/snapshots/snapshot-generator.js +13 -15
- package/dist/src/snapshots/snapshot-generator.js.map +1 -1
- package/dist/src/snapshots/snapshot-store.d.ts +3 -3
- package/dist/src/snapshots/snapshot-store.d.ts.map +1 -1
- package/dist/src/snapshots/snapshot-store.js +5 -5
- package/dist/src/snapshots/snapshot-store.js.map +1 -1
- package/dist/src/snapshots/snapshot-store.test.js +1 -1
- package/dist/src/snapshots/snapshot-store.test.js.map +1 -1
- package/dist/src/snapshots/snapshot.test.js +1 -1
- package/dist/src/snapshots/snapshot.test.js.map +1 -1
- package/dist/src/testing/benchmark.test.d.ts +2 -0
- package/dist/src/testing/benchmark.test.d.ts.map +1 -0
- package/dist/src/testing/benchmark.test.js +25 -0
- package/dist/src/testing/benchmark.test.js.map +1 -0
- package/dist/src/testing/index.js +5 -1
- package/dist/src/testing/index.js.map +1 -1
- package/dist/src/testing/testing-factories.d.ts +1 -1
- package/dist/src/testing/testing-factories.d.ts.map +1 -1
- package/dist/src/testing/testing-factories.js +2 -2
- package/dist/src/testing/testing-factories.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +19 -19
- package/src/api/index.ts +0 -5
- package/src/api/schema.test.ts +1 -2
- package/src/echo.test.ts +16 -5
- package/src/echo.ts +11 -20
- package/src/halo/contact-manager.ts +3 -2
- package/src/halo/halo-factory.ts +11 -23
- package/src/halo/halo-party.ts +22 -14
- package/src/halo/halo.test.ts +4 -3
- package/src/halo/halo.ts +2 -2
- package/src/halo/identity.ts +2 -2
- package/src/halo/party-opener.ts +5 -3
- package/src/halo/preferences.ts +10 -12
- package/src/index.ts +3 -2
- package/src/invitations/greeting-initiator.ts +10 -9
- package/src/invitations/greeting-protocol-provider.ts +5 -9
- package/src/invitations/greeting-responder.ts +15 -17
- package/src/invitations/halo-recovery-initiator.ts +4 -4
- package/src/invitations/invitation-descriptor.ts +1 -1
- package/src/invitations/invitation-factory.ts +8 -5
- package/src/invitations/offline-invitation-claimer.ts +8 -10
- package/src/{database → packlets/database}/data-mirror.test.ts +3 -3
- package/src/{database → packlets/database}/data-mirror.ts +1 -1
- package/src/{database → packlets/database}/data-service-host.ts +2 -1
- package/src/{database → packlets/database}/data-service-router.ts +0 -0
- package/src/{database → packlets/database}/database-backend.ts +7 -6
- package/src/{api → packlets/database}/database.test.ts +2 -1
- package/src/{api → packlets/database}/database.ts +3 -1
- package/src/{api → packlets/database}/entity.ts +1 -1
- package/src/{database → packlets/database}/index.ts +5 -0
- package/src/{database → packlets/database}/item-demuxer.test.ts +21 -19
- package/src/{database → packlets/database}/item-demuxer.ts +10 -9
- package/src/{database → packlets/database}/item-manager.test.ts +0 -0
- package/src/{database → packlets/database}/item-manager.ts +5 -3
- package/src/{api → packlets/database}/item.ts +2 -2
- package/src/{api → packlets/database}/link.ts +1 -1
- package/src/{api → packlets/database}/selection/index.ts +0 -0
- package/src/{api → packlets/database}/selection/queries.ts +14 -18
- package/src/{api → packlets/database}/selection/result.ts +0 -0
- package/src/{api → packlets/database}/selection/selection.test.ts +4 -12
- package/src/{api → packlets/database}/selection/selection.ts +1 -7
- package/src/{api → packlets/database}/selection/util.ts +0 -0
- package/src/{database → packlets/database}/testing.ts +4 -7
- package/src/{database → packlets/database}/timeframe-clock.ts +4 -0
- package/src/{errors.ts → packlets/errors/index.ts} +0 -0
- package/src/parties/data-party.test.ts +58 -25
- package/src/parties/data-party.ts +48 -20
- package/src/parties/party-factory.ts +40 -84
- package/src/parties/party-manager.test.ts +24 -15
- package/src/parties/party-manager.ts +10 -6
- package/src/pipeline/{pipeline.test.ts → feed-muxer.test.ts} +23 -19
- package/src/pipeline/{pipeline.ts → feed-muxer.ts} +39 -55
- package/src/pipeline/index.ts +2 -2
- package/src/pipeline/message-selector.ts +32 -35
- package/src/pipeline/metadata-store.test.ts +8 -4
- package/src/pipeline/metadata-store.ts +12 -6
- package/src/pipeline/party-feed-provider.ts +3 -16
- package/src/pipeline/{party-core.test.ts → party-pipeline.test.ts} +67 -48
- package/src/pipeline/{party-core.ts → party-pipeline.ts} +59 -31
- package/src/pipeline/party-processor.ts +23 -15
- package/src/protocol/auth-plugin.ts +1 -3
- package/src/protocol/authenticator.test.ts +1 -4
- package/src/protocol/authenticator.ts +33 -33
- package/src/protocol/halo-recovery-plugin.ts +4 -6
- package/src/protocol/identity-credentials.ts +4 -4
- package/src/protocol/offline-invitation-plugin.ts +4 -6
- package/src/protocol/party-protocol-factory.ts +3 -56
- package/src/protocol/replicator-plugin.ts +37 -0
- package/src/snapshots/snapshot-generator.ts +14 -18
- package/src/snapshots/snapshot-store.test.ts +1 -1
- package/src/snapshots/snapshot-store.ts +5 -6
- package/src/snapshots/snapshot.test.ts +1 -1
- package/src/testing/benchmark.test.ts +30 -0
- package/src/testing/testing-factories.ts +3 -3
- package/dist/src/api/database.d.ts.map +0 -1
- package/dist/src/api/database.js.map +0 -1
- package/dist/src/api/database.test.d.ts.map +0 -1
- package/dist/src/api/database.test.js.map +0 -1
- package/dist/src/api/entity.d.ts.map +0 -1
- package/dist/src/api/entity.js.map +0 -1
- package/dist/src/api/item.d.ts.map +0 -1
- package/dist/src/api/item.js.map +0 -1
- package/dist/src/api/link.d.ts.map +0 -1
- package/dist/src/api/link.js.map +0 -1
- package/dist/src/api/selection/index.d.ts.map +0 -1
- package/dist/src/api/selection/index.js.map +0 -1
- package/dist/src/api/selection/queries.d.ts.map +0 -1
- package/dist/src/api/selection/queries.js.map +0 -1
- package/dist/src/api/selection/result.d.ts.map +0 -1
- package/dist/src/api/selection/result.js.map +0 -1
- package/dist/src/api/selection/selection.d.ts.map +0 -1
- package/dist/src/api/selection/selection.js.map +0 -1
- package/dist/src/api/selection/selection.test.d.ts.map +0 -1
- package/dist/src/api/selection/selection.test.js.map +0 -1
- package/dist/src/api/selection/util.d.ts.map +0 -1
- package/dist/src/api/selection/util.js.map +0 -1
- package/dist/src/database/data-mirror.d.ts.map +0 -1
- package/dist/src/database/data-mirror.js.map +0 -1
- package/dist/src/database/data-mirror.test.d.ts.map +0 -1
- package/dist/src/database/data-mirror.test.js.map +0 -1
- package/dist/src/database/data-service-host.d.ts.map +0 -1
- package/dist/src/database/data-service-host.js.map +0 -1
- package/dist/src/database/data-service-router.d.ts.map +0 -1
- package/dist/src/database/data-service-router.js.map +0 -1
- package/dist/src/database/database-backend.d.ts.map +0 -1
- package/dist/src/database/database-backend.js.map +0 -1
- package/dist/src/database/index.d.ts.map +0 -1
- package/dist/src/database/index.js.map +0 -1
- package/dist/src/database/item-demuxer.d.ts.map +0 -1
- package/dist/src/database/item-demuxer.js.map +0 -1
- package/dist/src/database/item-demuxer.test.d.ts.map +0 -1
- package/dist/src/database/item-demuxer.test.js.map +0 -1
- package/dist/src/database/item-manager.d.ts.map +0 -1
- package/dist/src/database/item-manager.js.map +0 -1
- package/dist/src/database/item-manager.test.d.ts.map +0 -1
- package/dist/src/database/item-manager.test.js.map +0 -1
- package/dist/src/database/testing.d.ts.map +0 -1
- package/dist/src/database/testing.js.map +0 -1
- package/dist/src/database/timeframe-clock.d.ts.map +0 -1
- package/dist/src/database/timeframe-clock.js.map +0 -1
- package/dist/src/errors.d.ts.map +0 -1
- package/dist/src/errors.js.map +0 -1
- package/dist/src/pipeline/party-core.d.ts.map +0 -1
- package/dist/src/pipeline/party-core.js.map +0 -1
- package/dist/src/pipeline/party-core.test.d.ts +0 -2
- package/dist/src/pipeline/party-core.test.d.ts.map +0 -1
- package/dist/src/pipeline/party-core.test.js.map +0 -1
- package/dist/src/pipeline/pipeline.d.ts.map +0 -1
- package/dist/src/pipeline/pipeline.js.map +0 -1
- package/dist/src/pipeline/pipeline.test.d.ts +0 -2
- package/dist/src/pipeline/pipeline.test.d.ts.map +0 -1
- package/dist/src/pipeline/pipeline.test.js.map +0 -1
|
@@ -22,14 +22,18 @@ const identity_credentials_1 = require("../protocol/identity-credentials");
|
|
|
22
22
|
const snapshots_1 = require("../snapshots");
|
|
23
23
|
const data_party_1 = require("./data-party");
|
|
24
24
|
describe('DataParty', () => {
|
|
25
|
-
const createParty = async (identity, partyKey,
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
25
|
+
const createParty = async (identity, partyKey, feedHints) => {
|
|
26
|
+
const storage = (0, random_access_multi_storage_1.createStorage)('', random_access_multi_storage_1.StorageType.RAM);
|
|
27
|
+
const snapshotStore = new snapshots_1.SnapshotStore(storage.directory('snapshots'));
|
|
28
|
+
const metadataStore = new pipeline_1.MetadataStore(storage.directory('metadata'));
|
|
29
|
+
const feedStore = new feed_store_1.FeedStore(storage.directory('feed'), { valueEncoding: echo_protocol_1.codec });
|
|
29
30
|
const modelFactory = new model_factory_1.ModelFactory().registerModel(object_model_1.ObjectModel);
|
|
30
31
|
const networkManager = new network_manager_1.NetworkManager();
|
|
31
32
|
const partyFeedProvider = new pipeline_1.PartyFeedProvider(metadataStore, identity.keyring, feedStore, partyKey);
|
|
32
|
-
|
|
33
|
+
const writableFeed = await partyFeedProvider.createOrOpenWritableFeed();
|
|
34
|
+
const party = new data_party_1.DataParty(partyKey, modelFactory, snapshotStore, partyFeedProvider, metadataStore, identity.createCredentialsSigner(), identity.preferences, networkManager);
|
|
35
|
+
party._setFeedHints([...feedHints, writableFeed.key]);
|
|
36
|
+
return party;
|
|
33
37
|
};
|
|
34
38
|
(0, mocha_1.it)('open & close', async () => {
|
|
35
39
|
const keyring = new credentials_1.Keyring();
|
|
@@ -45,20 +49,37 @@ describe('DataParty', () => {
|
|
|
45
49
|
const partyKey = await keyring.createKeyRecord({ type: credentials_1.KeyType.PARTY });
|
|
46
50
|
const party = await createParty(identity, partyKey.publicKey, []);
|
|
47
51
|
await party.open();
|
|
48
|
-
const feed = await party.
|
|
49
|
-
await party.
|
|
52
|
+
const feed = await party.getWriteFeed();
|
|
53
|
+
await party.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feed.key, partyKey));
|
|
50
54
|
await party.database.createItem({ type: 'test:item' });
|
|
51
55
|
await party.close();
|
|
52
56
|
});
|
|
57
|
+
(0, mocha_1.it)('data is immediately available after re-opening', async () => {
|
|
58
|
+
const keyring = new credentials_1.Keyring();
|
|
59
|
+
const identity = await (0, identity_credentials_1.createTestIdentityCredentials)(keyring);
|
|
60
|
+
const partyKey = await keyring.createKeyRecord({ type: credentials_1.KeyType.PARTY });
|
|
61
|
+
const party = await createParty(identity, partyKey.publicKey, []);
|
|
62
|
+
await party.open();
|
|
63
|
+
const feed = await party.getWriteFeed();
|
|
64
|
+
await party.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feed.key, partyKey));
|
|
65
|
+
for (let i = 0; i < 10; i++) {
|
|
66
|
+
await party.database.createItem({ type: 'test:item' });
|
|
67
|
+
}
|
|
68
|
+
await party.close();
|
|
69
|
+
await party.open();
|
|
70
|
+
(0, expect_1.default)(party.database.select({ type: 'test:item' }).exec().entities).toHaveLength(10);
|
|
71
|
+
await party.close();
|
|
72
|
+
});
|
|
53
73
|
(0, mocha_1.it)('authenticates its own credentials', async () => {
|
|
54
74
|
const keyring = new credentials_1.Keyring();
|
|
55
75
|
const identity = await (0, identity_credentials_1.createTestIdentityCredentials)(keyring);
|
|
56
76
|
const partyKey = await keyring.createKeyRecord({ type: credentials_1.KeyType.PARTY });
|
|
57
77
|
const party = await createParty(identity, partyKey.publicKey, []);
|
|
58
78
|
await party.open();
|
|
59
|
-
const feed = await party.
|
|
60
|
-
await party.
|
|
61
|
-
|
|
79
|
+
const feed = await party.getWriteFeed();
|
|
80
|
+
await party.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feed.key, partyKey));
|
|
81
|
+
await party.processor.feedAdded.waitForCount(1);
|
|
82
|
+
const authenticator = (0, protocol_1.createAuthenticator)(party.processor, identity.createCredentialsSigner(), party.credentialsWriter);
|
|
62
83
|
const credentialsProvider = (0, protocol_1.createCredentialsProvider)(identity.createCredentialsSigner(), party.key, feed.key);
|
|
63
84
|
const wrappedCredentials = credentials_1.codec.decode(credentialsProvider.get());
|
|
64
85
|
(0, expect_1.default)(await authenticator.authenticate(wrappedCredentials.payload)).toEqual(true);
|
|
@@ -70,9 +91,10 @@ describe('DataParty', () => {
|
|
|
70
91
|
const partyKey = await keyring.createKeyRecord({ type: credentials_1.KeyType.PARTY });
|
|
71
92
|
const party = await createParty(identityA, partyKey.publicKey, []);
|
|
72
93
|
await party.open();
|
|
73
|
-
const feed = await party.
|
|
74
|
-
await party.
|
|
75
|
-
|
|
94
|
+
const feed = await party.getWriteFeed();
|
|
95
|
+
await party.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feed.key, partyKey));
|
|
96
|
+
await party.processor.feedAdded.waitForCount(1);
|
|
97
|
+
const authenticator = (0, protocol_1.createAuthenticator)(party.processor, identityA.createCredentialsSigner(), party.credentialsWriter);
|
|
76
98
|
const identityB = await (0, identity_credentials_1.deriveTestDeviceCredentials)(identityA);
|
|
77
99
|
const credentialsProvider = (0, protocol_1.createCredentialsProvider)(identityB.createCredentialsSigner(), party.key, feed.key);
|
|
78
100
|
const wrappedCredentials = credentials_1.codec.decode(credentialsProvider.get());
|
|
@@ -85,13 +107,11 @@ describe('DataParty', () => {
|
|
|
85
107
|
const partyKey = await keyring.createKeyRecord({ type: credentials_1.KeyType.PARTY });
|
|
86
108
|
const partyA = await createParty(identityA, partyKey.publicKey, []);
|
|
87
109
|
await partyA.open();
|
|
88
|
-
const feedA = await partyA.
|
|
89
|
-
await partyA.
|
|
90
|
-
await partyA.
|
|
110
|
+
const feedA = await partyA.getWriteFeed();
|
|
111
|
+
await partyA.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feedA.key, partyKey));
|
|
112
|
+
await partyA.credentialsWriter.write((0, credentials_1.createKeyAdmitMessage)(keyring, partyKey.publicKey, identityA.identityKey, [partyKey]));
|
|
91
113
|
const identityB = await (0, identity_credentials_1.deriveTestDeviceCredentials)(identityA);
|
|
92
|
-
const partyB = await createParty(identityB, partyKey.publicKey, [
|
|
93
|
-
{ type: credentials_1.KeyType.FEED, publicKey: feedA.key }
|
|
94
|
-
]);
|
|
114
|
+
const partyB = await createParty(identityB, partyKey.publicKey, [feedA.key]);
|
|
95
115
|
await partyB.open();
|
|
96
116
|
await partyA.database.createItem({ type: 'test:item-a' });
|
|
97
117
|
await partyB.database.waitForItem({ type: 'test:item-a' });
|
|
@@ -105,9 +125,9 @@ describe('DataParty', () => {
|
|
|
105
125
|
const partyKeyA = await identityA.keyring.createKeyRecord({ type: credentials_1.KeyType.PARTY });
|
|
106
126
|
const partyA = await createParty(identityA, partyKeyA.publicKey, []);
|
|
107
127
|
await partyA.open();
|
|
108
|
-
const feedA = await partyA.
|
|
109
|
-
await partyA.
|
|
110
|
-
await partyA.
|
|
128
|
+
const feedA = await partyA.getWriteFeed();
|
|
129
|
+
await partyA.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(identityA.keyring, partyKeyA, feedA.key, partyKeyA));
|
|
130
|
+
await partyA.credentialsWriter.write((0, credentials_1.createKeyAdmitMessage)(identityA.keyring, partyKeyA.publicKey, identityA.identityKey, [partyKeyA]));
|
|
111
131
|
const invitation = await partyA.invitationManager.createInvitation(invitations_1.defaultInvitationAuthenticator);
|
|
112
132
|
const identityB = await (0, identity_credentials_1.createTestIdentityCredentials)(new credentials_1.Keyring());
|
|
113
133
|
const initiator = new invitations_1.GreetingInitiator(new network_manager_1.NetworkManager(), invitation, async (partyKey, nonce) => [(0, invitations_1.createDataPartyAdmissionMessages)(identityB.createCredentialsSigner(), partyKey, identityB.identityGenesis, nonce)]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-party.test.js","sourceRoot":"","sources":["../../../src/parties/data-party.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,oDAA4B;AAC5B,iCAAmC;AAEnC,
|
|
1
|
+
{"version":3,"file":"data-party.test.js","sourceRoot":"","sources":["../../../src/parties/data-party.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
//
|
|
5
5
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
6
|
if (k2 === undefined) k2 = k;
|
|
7
|
-
Object.
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
8
12
|
}) : (function(o, m, k, k2) {
|
|
9
13
|
if (k2 === undefined) k2 = k;
|
|
10
14
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parties/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parties/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,kDAAgC;AAChC,+CAA6B;AAC7B,kDAAgC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SecretProvider } from '@dxos/credentials';
|
|
2
2
|
import { PublicKey } from '@dxos/crypto';
|
|
3
3
|
import { PartyKey, PartySnapshot, Timeframe } from '@dxos/echo-protocol';
|
|
4
4
|
import { ModelFactory } from '@dxos/model-factory';
|
|
5
5
|
import { NetworkManager } from '@dxos/network-manager';
|
|
6
6
|
import { InvitationDescriptor } from '../invitations';
|
|
7
|
-
import { PartyFeedProvider,
|
|
7
|
+
import { MetadataStore, PartyFeedProvider, PipelineOptions } from '../pipeline';
|
|
8
8
|
import { IdentityCredentialsProvider } from '../protocol/identity-credentials';
|
|
9
9
|
import { SnapshotStore } from '../snapshots';
|
|
10
10
|
import { DataParty } from './data-party';
|
|
@@ -17,24 +17,19 @@ export declare class PartyFactory {
|
|
|
17
17
|
private readonly _modelFactory;
|
|
18
18
|
private readonly _snapshotStore;
|
|
19
19
|
private readonly _feedProviderFactory;
|
|
20
|
+
private readonly _metadataStore;
|
|
20
21
|
private readonly _options;
|
|
21
|
-
constructor(_identityProvider: IdentityCredentialsProvider, _networkManager: NetworkManager, _modelFactory: ModelFactory, _snapshotStore: SnapshotStore, _feedProviderFactory: (partyKey: PublicKey) => PartyFeedProvider, _options?:
|
|
22
|
+
constructor(_identityProvider: IdentityCredentialsProvider, _networkManager: NetworkManager, _modelFactory: ModelFactory, _snapshotStore: SnapshotStore, _feedProviderFactory: (partyKey: PublicKey) => PartyFeedProvider, _metadataStore: MetadataStore, _options?: PipelineOptions);
|
|
22
23
|
/**
|
|
23
24
|
* Create a new party with a new feed for it. Writes a party genensis message to this feed.
|
|
24
25
|
*/
|
|
25
26
|
createParty(): Promise<DataParty>;
|
|
26
|
-
/**
|
|
27
|
-
* Constructs a party object and creates a local write feed for it.
|
|
28
|
-
* @param partyKey
|
|
29
|
-
* @param hints
|
|
30
|
-
*/
|
|
31
|
-
addParty(partyKey: PartyKey, hints?: KeyHint[]): Promise<DataParty>;
|
|
32
27
|
/**
|
|
33
28
|
* Constructs a party object from an existing set of feeds.
|
|
34
29
|
* @param partyKey
|
|
35
30
|
* @param hints
|
|
36
31
|
*/
|
|
37
|
-
constructParty(partyKey: PartyKey,
|
|
32
|
+
constructParty(partyKey: PartyKey, initialTimeframe?: Timeframe): Promise<DataParty>;
|
|
38
33
|
constructPartyFromSnapshot(snapshot: PartySnapshot): Promise<DataParty>;
|
|
39
34
|
joinParty(invitationDescriptor: InvitationDescriptor, secretProvider: SecretProvider): Promise<DataParty>;
|
|
40
35
|
cloneParty(snapshot: PartySnapshot): Promise<DataParty>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"party-factory.d.ts","sourceRoot":"","sources":["../../../src/parties/party-factory.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"party-factory.d.ts","sourceRoot":"","sources":["../../../src/parties/party-factory.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAyB,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAiC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAEc,oBAAoB,EACxC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAmB,MAAM,cAAc,CAAC;AAI1D;;GAEG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBANR,iBAAiB,EAAE,2BAA2B,EAC9C,eAAe,EAAE,cAAc,EAC/B,aAAa,EAAE,YAAY,EAC3B,cAAc,EAAE,aAAa,EAC7B,oBAAoB,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,iBAAiB,EAChE,cAAc,EAAE,aAAa,EAC7B,QAAQ,GAAE,eAAoB;IAGjD;;OAEG;IAEG,WAAW,IAAK,OAAO,CAAC,SAAS,CAAC;IA0DxC;;;;OAIG;IACG,cAAc,CAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE,SAAS;IAsBhE,0BAA0B,CAAE,QAAQ,EAAE,aAAa;IASnD,SAAS,CAAE,oBAAoB,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IA8C1G,UAAU,CAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;CAwF/D"}
|
|
@@ -20,20 +20,21 @@ const crypto_1 = require("@dxos/crypto");
|
|
|
20
20
|
const debug_2 = require("@dxos/debug");
|
|
21
21
|
const echo_protocol_1 = require("@dxos/echo-protocol");
|
|
22
22
|
const object_model_1 = require("@dxos/object-model");
|
|
23
|
-
const errors_1 = require("../errors");
|
|
24
23
|
const invitations_1 = require("../invitations");
|
|
24
|
+
const errors_1 = require("../packlets/errors");
|
|
25
25
|
const data_party_1 = require("./data-party");
|
|
26
26
|
const log = (0, debug_1.default)('dxos:echo-db:party-factory');
|
|
27
27
|
/**
|
|
28
28
|
* Creates and constructs party instances.
|
|
29
29
|
*/
|
|
30
30
|
class PartyFactory {
|
|
31
|
-
constructor(_identityProvider, _networkManager, _modelFactory, _snapshotStore, _feedProviderFactory, _options = {}) {
|
|
31
|
+
constructor(_identityProvider, _networkManager, _modelFactory, _snapshotStore, _feedProviderFactory, _metadataStore, _options = {}) {
|
|
32
32
|
this._identityProvider = _identityProvider;
|
|
33
33
|
this._networkManager = _networkManager;
|
|
34
34
|
this._modelFactory = _modelFactory;
|
|
35
35
|
this._snapshotStore = _snapshotStore;
|
|
36
36
|
this._feedProviderFactory = _feedProviderFactory;
|
|
37
|
+
this._metadataStore = _metadataStore;
|
|
37
38
|
this._options = _options;
|
|
38
39
|
}
|
|
39
40
|
/**
|
|
@@ -45,19 +46,21 @@ class PartyFactory {
|
|
|
45
46
|
(0, assert_1.default)(!this._options.readOnly, 'PartyFactory is read-only.');
|
|
46
47
|
const partyKey = await identity.keyring.createKeyRecord({ type: credentials_1.KeyType.PARTY });
|
|
47
48
|
const party = await this.constructParty(partyKey.publicKey);
|
|
49
|
+
const writableFeed = await party.getWriteFeed();
|
|
50
|
+
// Hint at the newly created writable feed so that we can start replicating from it.
|
|
51
|
+
party._setFeedHints([writableFeed.key]);
|
|
48
52
|
// Connect the pipeline.
|
|
49
53
|
await party.open();
|
|
50
|
-
const writableFeed = await party.feedProvider.createOrOpenWritableFeed();
|
|
51
54
|
// PartyGenesis (self-signed by Party).
|
|
52
|
-
await party.
|
|
55
|
+
await party.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(identity.keyring, partyKey, writableFeed.key, partyKey));
|
|
53
56
|
// KeyAdmit (IdentityGenesis in an Envelope signed by Party).
|
|
54
|
-
await party.
|
|
57
|
+
await party.credentialsWriter.write((0, credentials_1.createEnvelopeMessage)(identity.keyring, partyKey.publicKey, (0, credentials_1.wrapMessage)(identity.identityGenesis), [partyKey]));
|
|
55
58
|
// FeedAdmit (signed by the Device KeyChain).
|
|
56
59
|
// TODO(dmaretskyi): Is this really needed since a feed is already admitted by party genesis message.
|
|
57
|
-
await party.
|
|
60
|
+
await party.credentialsWriter.write((0, credentials_1.createFeedAdmitMessage)(identity.keyring, partyKey.publicKey, writableFeed.key, [identity.deviceKeyChain]));
|
|
58
61
|
// IdentityInfo in an Envelope signed by the Device KeyChain.
|
|
59
62
|
if (identity.identityInfo) {
|
|
60
|
-
await party.
|
|
63
|
+
await party.credentialsWriter.write((0, credentials_1.createEnvelopeMessage)(identity.keyring, partyKey.publicKey, (0, credentials_1.wrapMessage)(identity.identityInfo), [identity.deviceKeyChain]));
|
|
61
64
|
}
|
|
62
65
|
// Create special properties item.
|
|
63
66
|
await party.database.createItem({ model: object_model_1.ObjectModel, type: data_party_1.PARTY_ITEM_TYPE });
|
|
@@ -65,57 +68,29 @@ class PartyFactory {
|
|
|
65
68
|
await identity.keyring.deleteSecretKey(partyKey);
|
|
66
69
|
return party;
|
|
67
70
|
}
|
|
68
|
-
/**
|
|
69
|
-
* Constructs a party object and creates a local write feed for it.
|
|
70
|
-
* @param partyKey
|
|
71
|
-
* @param hints
|
|
72
|
-
*/
|
|
73
|
-
async addParty(partyKey, hints = []) {
|
|
74
|
-
var _a;
|
|
75
|
-
const identity = (_a = this._identityProvider()) !== null && _a !== void 0 ? _a : (0, debug_2.raise)(new errors_1.IdentityNotInitializedError());
|
|
76
|
-
/*
|
|
77
|
-
* TODO(telackey): We shouldn't have to add our key here, it should be in the hints, but our hint
|
|
78
|
-
* mechanism is broken by not waiting on the messages to be processed before returning.
|
|
79
|
-
*/
|
|
80
|
-
const feedProvider = this._feedProviderFactory(partyKey);
|
|
81
|
-
const { feed } = await feedProvider.createOrOpenWritableFeed();
|
|
82
|
-
const feedKeyPair = identity.keyring.getKey(feed.key);
|
|
83
|
-
(0, assert_1.default)(feedKeyPair, 'Keypair for writable feed not found.');
|
|
84
|
-
const party = new data_party_1.DataParty(partyKey, this._modelFactory, this._snapshotStore, feedProvider, identity.createCredentialsSigner(), identity.preferences, this._networkManager, hints, undefined, this._options);
|
|
85
|
-
await party.open();
|
|
86
|
-
const isHalo = identity.identityKey.publicKey.equals(partyKey);
|
|
87
|
-
const signingKey = isHalo ? identity.deviceKey : identity.deviceKeyChain;
|
|
88
|
-
(0, assert_1.default)(signingKey, 'No device key or keychain.');
|
|
89
|
-
// Write the Feed genesis message.
|
|
90
|
-
await party.processor.writeHaloMessage((0, credentials_1.createFeedAdmitMessage)(identity.keyring, partyKey, feedKeyPair.publicKey, [signingKey]));
|
|
91
|
-
return party;
|
|
92
|
-
}
|
|
93
71
|
/**
|
|
94
72
|
* Constructs a party object from an existing set of feeds.
|
|
95
73
|
* @param partyKey
|
|
96
74
|
* @param hints
|
|
97
75
|
*/
|
|
98
|
-
async constructParty(partyKey,
|
|
76
|
+
async constructParty(partyKey, initialTimeframe) {
|
|
99
77
|
var _a;
|
|
100
78
|
const identity = (_a = this._identityProvider()) !== null && _a !== void 0 ? _a : (0, debug_2.raise)(new errors_1.IdentityNotInitializedError());
|
|
101
|
-
// TODO(marik-d): Support read-only parties if this feed doesn't exist?
|
|
102
|
-
const feedProvider = this._feedProviderFactory(partyKey);
|
|
103
79
|
//
|
|
104
80
|
// Create the party.
|
|
105
81
|
//
|
|
106
|
-
const party = new data_party_1.DataParty(partyKey, this._modelFactory, this._snapshotStore,
|
|
82
|
+
const party = new data_party_1.DataParty(partyKey, this._modelFactory, this._snapshotStore, this._feedProviderFactory(partyKey), this._metadataStore, identity.createCredentialsSigner(), identity.preferences, this._networkManager, initialTimeframe, this._options);
|
|
107
83
|
return party;
|
|
108
84
|
}
|
|
109
85
|
async constructPartyFromSnapshot(snapshot) {
|
|
110
86
|
(0, assert_1.default)(snapshot.partyKey);
|
|
111
87
|
log(`Constructing ${(0, crypto_1.humanize)(snapshot.partyKey)} from snapshot at ${JSON.stringify(snapshot.timeframe)}.`);
|
|
112
|
-
const party = await this.constructParty(crypto_1.PublicKey.from(snapshot.partyKey),
|
|
88
|
+
const party = await this.constructParty(crypto_1.PublicKey.from(snapshot.partyKey), snapshot.timeframe);
|
|
113
89
|
await party.restoreFromSnapshot(snapshot);
|
|
114
90
|
return party;
|
|
115
91
|
}
|
|
116
92
|
async joinParty(invitationDescriptor, secretProvider) {
|
|
117
93
|
var _a;
|
|
118
|
-
const haloInvitation = !!invitationDescriptor.identityKey;
|
|
119
94
|
const originalInvitation = invitationDescriptor;
|
|
120
95
|
const identity = (_a = this._identityProvider()) !== null && _a !== void 0 ? _a : (0, debug_2.raise)(new errors_1.IdentityNotInitializedError());
|
|
121
96
|
// Claim the offline invitation and convert it into an interactive invitation.
|
|
@@ -130,14 +105,13 @@ class PartyFactory {
|
|
|
130
105
|
const initiator = new invitations_1.GreetingInitiator(this._networkManager, invitationDescriptor, async (partyKey, nonce) => [(0, invitations_1.createDataPartyAdmissionMessages)(identity.createCredentialsSigner(), partyKey, identity.identityGenesis, nonce)]);
|
|
131
106
|
await initiator.connect();
|
|
132
107
|
const { partyKey, hints } = await initiator.redeemInvitation(secretProvider);
|
|
133
|
-
const party = await this.
|
|
108
|
+
const party = await this.constructParty(partyKey);
|
|
109
|
+
party._setFeedHints(hints);
|
|
110
|
+
await party.open();
|
|
134
111
|
await initiator.destroy();
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
if (infoMessage) {
|
|
139
|
-
await party.processor.writeHaloMessage((0, credentials_1.createEnvelopeMessage)(identity.keyring, partyKey, (0, credentials_1.wrapMessage)(infoMessage), [identity.deviceKeyChain]));
|
|
140
|
-
}
|
|
112
|
+
// Copy our signed IdentityInfo into the new Party.
|
|
113
|
+
if (identity.identityInfo) {
|
|
114
|
+
await party.credentialsWriter.write((0, credentials_1.createEnvelopeMessage)(identity.keyring, partyKey, (0, credentials_1.wrapMessage)(identity.identityInfo), [identity.deviceKeyChain]));
|
|
141
115
|
}
|
|
142
116
|
return party;
|
|
143
117
|
}
|
|
@@ -147,34 +121,37 @@ class PartyFactory {
|
|
|
147
121
|
(0, assert_1.default)(!this._options.readOnly, 'PartyFactory is read-only');
|
|
148
122
|
const partyKey = await identity.keyring.createKeyRecord({ type: credentials_1.KeyType.PARTY });
|
|
149
123
|
const party = await this.constructParty(partyKey.publicKey);
|
|
124
|
+
const writableFeed = await party.getWriteFeed();
|
|
125
|
+
// Hint at the newly created writable feed so that we can start replicating from it.
|
|
126
|
+
party._setFeedHints([writableFeed.key]);
|
|
150
127
|
// Connect the pipeline.
|
|
151
128
|
await party.open();
|
|
152
|
-
const writableFeed = await party.feedProvider.createOrOpenWritableFeed();
|
|
153
129
|
// PartyGenesis (self-signed by Party).
|
|
154
|
-
await party.
|
|
130
|
+
await party.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(identity.keyring, partyKey, writableFeed.key, partyKey));
|
|
155
131
|
// KeyAdmit (IdentityGenesis in an Envelope signed by Party).
|
|
156
|
-
await party.
|
|
132
|
+
await party.credentialsWriter.write((0, credentials_1.createEnvelopeMessage)(identity.keyring, partyKey.publicKey, (0, credentials_1.wrapMessage)(identity.identityGenesis), [partyKey]));
|
|
157
133
|
// FeedAdmit (signed by the Device KeyChain).
|
|
158
|
-
await party.
|
|
134
|
+
await party.credentialsWriter.write((0, credentials_1.createFeedAdmitMessage)(identity.keyring, partyKey.publicKey, writableFeed.key, [identity.deviceKeyChain]));
|
|
159
135
|
// IdentityInfo in an Envelope signed by the Device KeyChain.
|
|
160
136
|
if (identity.identityInfo) {
|
|
161
|
-
await party.
|
|
137
|
+
await party.credentialsWriter.write((0, credentials_1.createEnvelopeMessage)(identity.keyring, partyKey.publicKey, (0, credentials_1.wrapMessage)(identity.identityInfo), [identity.deviceKeyChain]));
|
|
162
138
|
}
|
|
163
139
|
// const keyAdmitMessage = snapshot.halo?.messages?.[1];
|
|
164
140
|
// assert(keyAdmitMessage);
|
|
165
|
-
// await party.
|
|
141
|
+
// await party.writeCredentialsMessage(createEnvelopeMessage(
|
|
166
142
|
// identity.signer,
|
|
167
143
|
// partyKey.publicKey,
|
|
168
144
|
// keyAdmitMessage,
|
|
169
145
|
// [partyKey]
|
|
170
146
|
// ));
|
|
171
147
|
// for(const message of snapshot.halo?.messages?.slice(2) || []) {
|
|
172
|
-
// await party.
|
|
148
|
+
// await party.writeCredentialsMessage(message);
|
|
173
149
|
// }
|
|
174
150
|
// Write messages to create ECHO items.
|
|
175
151
|
const feedWriter = (0, echo_protocol_1.createFeedWriter)(writableFeed.feed);
|
|
176
152
|
for (const item of ((_b = snapshot.database) === null || _b === void 0 ? void 0 : _b.items) || []) {
|
|
177
153
|
const message = {
|
|
154
|
+
timeframe: new echo_protocol_1.Timeframe(),
|
|
178
155
|
echo: {
|
|
179
156
|
itemId: (_c = item.itemId) !== null && _c !== void 0 ? _c : (0, debug_2.failUndefined)(),
|
|
180
157
|
genesis: {
|
|
@@ -185,8 +162,7 @@ class PartyFactory {
|
|
|
185
162
|
itemMutation: {
|
|
186
163
|
parentId: item.parentId
|
|
187
164
|
},
|
|
188
|
-
snapshot: item.model
|
|
189
|
-
timeframe: new echo_protocol_1.Timeframe()
|
|
165
|
+
snapshot: item.model
|
|
190
166
|
}
|
|
191
167
|
};
|
|
192
168
|
await feedWriter.write(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"party-factory.js","sourceRoot":"","sources":["../../../src/parties/party-factory.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;AAEF,oDAA4B;AAC5B,kDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"party-factory.js","sourceRoot":"","sources":["../../../src/parties/party-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Event } from '@dxos/async';
|
|
2
|
-
import {
|
|
2
|
+
import { SecretProvider } from '@dxos/credentials';
|
|
3
|
+
import { PublicKey } from '@dxos/crypto';
|
|
3
4
|
import { PartyKey, PartySnapshot } from '@dxos/echo-protocol';
|
|
4
5
|
import { InvitationDescriptor } from '../invitations';
|
|
5
6
|
import { MetadataStore } from '../pipeline';
|
|
@@ -38,10 +39,8 @@ export declare class PartyManager {
|
|
|
38
39
|
createParty(): Promise<DataParty>;
|
|
39
40
|
/**
|
|
40
41
|
* Construct a party object and start replicating with the remote peer that created that party.
|
|
41
|
-
* @param partyKey
|
|
42
|
-
* @param hints
|
|
43
42
|
*/
|
|
44
|
-
addParty(partyKey: PartyKey,
|
|
43
|
+
addParty(partyKey: PartyKey, feedHints?: PublicKey[]): Promise<DataParty | undefined>;
|
|
45
44
|
joinParty(invitationDescriptor: InvitationDescriptor, secretProvider: SecretProvider): Promise<DataParty>;
|
|
46
45
|
cloneParty(snapshot: PartySnapshot): Promise<DataParty>;
|
|
47
46
|
private _setParty;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"party-manager.d.ts","sourceRoot":"","sources":["../../../src/parties/party-manager.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAgB,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"party-manager.d.ts","sourceRoot":"","sources":["../../../src/parties/party-manager.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAgB,MAAM,aAAa,CAAC;AAClD,OAAO,EAAoB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAyC,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAI7C,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,YAAY;IAcrB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAfhC,QAAQ,CAAC,MAAM,mBAA0B;IAGzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4D;IAIrF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IAEvD,OAAO,CAAC,KAAK,CAAS;gBAGH,cAAc,EAAE,aAAa,EAC7B,cAAc,EAAE,aAAa,EAC7B,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,YAAY;IAG9C,IAAI,MAAM,YAET;IAED,IAAI,OAAO,IAAK,SAAS,EAAE,CAE1B;IAKK,IAAI,CAAE,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI;IAqD3D,KAAK;IAuBX;;OAEG;IAEG,WAAW,IAAK,OAAO,CAAC,SAAS,CAAC;IAaxC;;OAEG;IAEG,QAAQ,CAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,GAAE,SAAS,EAAO;IAuBzD,SAAS,CAAE,oBAAoB,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc;IAsBrF,UAAU,CAAE,QAAQ,EAAE,aAAa;IAqBzC,OAAO,CAAC,SAAS;YAkCH,iBAAiB;YAejB,kBAAkB;YAyClB,mBAAmB;CAkBlC"}
|
|
@@ -52,7 +52,7 @@ class PartyManager {
|
|
|
52
52
|
}
|
|
53
53
|
// TODO(burdon): Replace callback with event.
|
|
54
54
|
async open(onProgressCallback) {
|
|
55
|
-
var _a, _b;
|
|
55
|
+
var _a, _b, _c, _d;
|
|
56
56
|
if (this._open) {
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
@@ -74,10 +74,12 @@ class PartyManager {
|
|
|
74
74
|
const partyKey = partyKeys[i];
|
|
75
75
|
if (!this._parties.has(partyKey)) {
|
|
76
76
|
const snapshot = await this._snapshotStore.load(partyKey);
|
|
77
|
+
const metadata = (_a = this._metadataStore.getParty(partyKey)) !== null && _a !== void 0 ? _a : (0, debug_2.failUndefined)();
|
|
77
78
|
const party = snapshot
|
|
78
79
|
? await this._partyFactory.constructPartyFromSnapshot(snapshot)
|
|
79
80
|
: await this._partyFactory.constructParty(partyKey);
|
|
80
|
-
|
|
81
|
+
party._setFeedHints((_b = metadata.feedKeys) !== null && _b !== void 0 ? _b : []);
|
|
82
|
+
const isActive = (_d = (_c = identity === null || identity === void 0 ? void 0 : identity.preferences) === null || _c === void 0 ? void 0 : _c.isPartyActive(partyKey)) !== null && _d !== void 0 ? _d : true;
|
|
81
83
|
if (isActive) {
|
|
82
84
|
await party.open();
|
|
83
85
|
// TODO(marik-d): Might not be required if separately snapshot this item.
|
|
@@ -122,10 +124,8 @@ class PartyManager {
|
|
|
122
124
|
}
|
|
123
125
|
/**
|
|
124
126
|
* Construct a party object and start replicating with the remote peer that created that party.
|
|
125
|
-
* @param partyKey
|
|
126
|
-
* @param hints
|
|
127
127
|
*/
|
|
128
|
-
async addParty(partyKey,
|
|
128
|
+
async addParty(partyKey, feedHints = []) {
|
|
129
129
|
(0, assert_1.default)(this._open, 'PartyManager is not open.');
|
|
130
130
|
/*
|
|
131
131
|
* The caller should have checked if the Party existed before calling addParty, but that check
|
|
@@ -136,8 +136,10 @@ class PartyManager {
|
|
|
136
136
|
log(`Already had party partyKey=${partyKey.toHex()}`);
|
|
137
137
|
return this._parties.get(partyKey);
|
|
138
138
|
}
|
|
139
|
-
log(`Adding party partyKey=${partyKey.toHex()} hints=${
|
|
140
|
-
const party = await this._partyFactory.
|
|
139
|
+
log(`Adding party partyKey=${partyKey.toHex()} hints=${feedHints.length}`);
|
|
140
|
+
const party = await this._partyFactory.constructParty(partyKey);
|
|
141
|
+
party._setFeedHints(feedHints);
|
|
142
|
+
await party.open();
|
|
141
143
|
await this._metadataStore.addParty(party.key);
|
|
142
144
|
this._setParty(party);
|
|
143
145
|
return party;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"party-manager.js","sourceRoot":"","sources":["../../../src/parties/party-manager.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;AAEF,oDAA4B;AAC5B,kDAA0B;AAC1B,wEAAyC;AAEzC,uCAAkD;AAClD,mDAAqE;AACrE,yCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"party-manager.js","sourceRoot":"","sources":["../../../src/parties/party-manager.ts"],"names":[],"mappings":"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"}
|