@dxos/echo-protocol 2.33.8 → 2.33.9-dev.0cfaca1b

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 (104) hide show
  1. package/dist/src/feeds/feed-store-iterator.d.ts +1 -1
  2. package/dist/src/feeds/feed-store-iterator.d.ts.map +1 -1
  3. package/dist/src/feeds/feed-store-iterator.js +6 -6
  4. package/dist/src/feeds/feed-store-iterator.js.map +1 -1
  5. package/dist/src/feeds/feed-store-iterator.test.js +8 -9
  6. package/dist/src/feeds/feed-store-iterator.test.js.map +1 -1
  7. package/dist/src/feeds/feed.test.js +6 -3
  8. package/dist/src/feeds/feed.test.js.map +1 -1
  9. package/dist/src/index.d.ts +0 -1
  10. package/dist/src/index.d.ts.map +1 -1
  11. package/dist/src/index.js +0 -1
  12. package/dist/src/index.js.map +1 -1
  13. package/dist/src/proto/gen/dxos/credentials.d.ts +39 -0
  14. package/dist/src/proto/gen/dxos/credentials.d.ts.map +1 -1
  15. package/dist/src/proto/gen/dxos/echo/feed.d.ts +65 -6
  16. package/dist/src/proto/gen/dxos/echo/feed.d.ts.map +1 -1
  17. package/dist/src/proto/gen/dxos/echo/feed.js +4 -0
  18. package/dist/src/proto/gen/dxos/echo/feed.js.map +1 -1
  19. package/dist/src/proto/gen/dxos/echo/invitation.d.ts +19 -3
  20. package/dist/src/proto/gen/dxos/echo/invitation.d.ts.map +1 -1
  21. package/dist/src/proto/gen/dxos/echo/invitation.js +6 -0
  22. package/dist/src/proto/gen/dxos/echo/invitation.js.map +1 -1
  23. package/dist/src/proto/gen/dxos/echo/metadata.d.ts +31 -8
  24. package/dist/src/proto/gen/dxos/echo/metadata.d.ts.map +1 -1
  25. package/dist/src/proto/gen/dxos/echo/service.d.ts +49 -13
  26. package/dist/src/proto/gen/dxos/echo/service.d.ts.map +1 -1
  27. package/dist/src/proto/gen/dxos/echo/snapshot.d.ts +45 -13
  28. package/dist/src/proto/gen/dxos/echo/snapshot.d.ts.map +1 -1
  29. package/dist/src/proto/gen/dxos/echo/testing.d.ts +15 -3
  30. package/dist/src/proto/gen/dxos/echo/testing.d.ts.map +1 -1
  31. package/dist/src/proto/gen/dxos/echo/timeframe.d.ts +9 -2
  32. package/dist/src/proto/gen/dxos/echo/timeframe.d.ts.map +1 -1
  33. package/dist/src/proto/gen/dxos/halo/keys.d.ts +44 -2
  34. package/dist/src/proto/gen/dxos/halo/keys.d.ts.map +1 -1
  35. package/dist/src/proto/gen/dxos/halo/keys.js +4 -0
  36. package/dist/src/proto/gen/dxos/halo/keys.js.map +1 -1
  37. package/dist/src/proto/gen/dxos/test/echo.d.ts +23 -0
  38. package/dist/src/proto/gen/dxos/test/echo.d.ts.map +1 -0
  39. package/dist/src/proto/gen/dxos/test/echo.js +3 -0
  40. package/dist/src/proto/gen/dxos/test/echo.js.map +1 -0
  41. package/dist/src/proto/gen/google/protobuf.d.ts +4 -4
  42. package/dist/src/proto/gen/google/protobuf.d.ts.map +1 -1
  43. package/dist/src/proto/gen/index.d.ts +4 -0
  44. package/dist/src/proto/gen/index.d.ts.map +1 -1
  45. package/dist/src/proto/gen/index.js +1 -1
  46. package/dist/src/proto/gen/index.js.map +1 -1
  47. package/dist/src/proto/index.d.ts +3 -3
  48. package/dist/src/proto/index.d.ts.map +1 -1
  49. package/dist/src/proto/index.js +3 -3
  50. package/dist/src/proto/index.js.map +1 -1
  51. package/dist/src/proto/messages.d.ts +2 -3
  52. package/dist/src/proto/messages.d.ts.map +1 -1
  53. package/dist/src/proto/messages.js +4 -14
  54. package/dist/src/proto/messages.js.map +1 -1
  55. package/dist/src/proto/substitutions.d.ts +2 -2
  56. package/dist/src/proto/substitutions.d.ts.map +1 -1
  57. package/dist/src/proto/substitutions.js +1 -2
  58. package/dist/src/proto/substitutions.js.map +1 -1
  59. package/dist/src/types.d.ts +1 -2
  60. package/dist/src/types.d.ts.map +1 -1
  61. package/dist/src/types.js.map +1 -1
  62. package/dist/tsconfig.tsbuildinfo +1 -1
  63. package/package.json +14 -10
  64. package/src/feeds/feed-store-iterator.test.ts +3 -4
  65. package/src/feeds/feed-store-iterator.ts +2 -3
  66. package/src/feeds/feed.test.ts +7 -4
  67. package/src/index.ts +0 -1
  68. package/src/proto/defs/import.proto +5 -3
  69. package/src/proto/gen/dxos/credentials.ts +40 -0
  70. package/src/proto/gen/dxos/echo/feed.ts +66 -6
  71. package/src/proto/gen/dxos/echo/invitation.ts +20 -3
  72. package/src/proto/gen/dxos/echo/metadata.ts +32 -8
  73. package/src/proto/gen/dxos/echo/service.ts +50 -13
  74. package/src/proto/gen/dxos/echo/snapshot.ts +46 -13
  75. package/src/proto/gen/dxos/echo/testing.ts +16 -3
  76. package/src/proto/gen/dxos/echo/timeframe.ts +10 -2
  77. package/src/proto/gen/dxos/halo/keys.ts +45 -2
  78. package/src/proto/gen/dxos/test/echo.ts +34 -0
  79. package/src/proto/gen/google/protobuf.ts +5 -4
  80. package/src/proto/gen/index.ts +5 -1
  81. package/src/proto/index.ts +4 -3
  82. package/src/proto/messages.ts +5 -16
  83. package/src/proto/substitutions.ts +1 -3
  84. package/src/types.ts +1 -2
  85. package/dist/src/spacetime/index.d.ts +0 -3
  86. package/dist/src/spacetime/index.d.ts.map +0 -1
  87. package/dist/src/spacetime/index.js +0 -22
  88. package/dist/src/spacetime/index.js.map +0 -1
  89. package/dist/src/spacetime/substitutions.d.ts +0 -13
  90. package/dist/src/spacetime/substitutions.d.ts.map +0 -1
  91. package/dist/src/spacetime/substitutions.js +0 -22
  92. package/dist/src/spacetime/substitutions.js.map +0 -1
  93. package/dist/src/spacetime/timeframe.d.ts +0 -45
  94. package/dist/src/spacetime/timeframe.d.ts.map +0 -1
  95. package/dist/src/spacetime/timeframe.js +0 -101
  96. package/dist/src/spacetime/timeframe.js.map +0 -1
  97. package/dist/src/spacetime/timeframe.test.d.ts +0 -2
  98. package/dist/src/spacetime/timeframe.test.d.ts.map +0 -1
  99. package/dist/src/spacetime/timeframe.test.js +0 -118
  100. package/dist/src/spacetime/timeframe.test.js.map +0 -1
  101. package/src/spacetime/index.ts +0 -6
  102. package/src/spacetime/substitutions.ts +0 -20
  103. package/src/spacetime/timeframe.test.ts +0 -132
  104. package/src/spacetime/timeframe.ts +0 -119
@@ -8,7 +8,12 @@ import * as dxos_echo_service from "../echo/service";
8
8
  import * as dxos_echo_snapshot from "../echo/snapshot";
9
9
  import * as dxos_echo_testing from "../echo/testing";
10
10
  import * as dxos_echo_timeframe from "../echo/timeframe";
11
+ import * as dxos_test_echo from "../test/echo";
11
12
  import * as google_protobuf from "../../google/protobuf";
13
+ /**
14
+ * Defined in:
15
+ * {@link file://./../../../../../../../common/protocols/src/proto/dxos/halo/keys.proto}
16
+ */
12
17
  export enum KeyType {
13
18
  UNKNOWN = 0,
14
19
  IDENTITY = 1,
@@ -17,12 +22,24 @@ export enum KeyType {
17
22
  FEED = 4,
18
23
  DXNS_ADDRESS = 5
19
24
  }
25
+ /**
26
+ * Defined in:
27
+ * {@link file://./../../../../../../../common/protocols/src/proto/dxos/halo/keys.proto}
28
+ */
20
29
  export interface PubKey {
21
- data?: Uint8Array;
30
+ data: Uint8Array;
22
31
  }
32
+ /**
33
+ * Defined in:
34
+ * {@link file://./../../../../../../../common/protocols/src/proto/dxos/halo/keys.proto}
35
+ */
23
36
  export interface PrivKey {
24
- data?: Uint8Array;
37
+ data: Uint8Array;
25
38
  }
39
+ /**
40
+ * Defined in:
41
+ * {@link file://./../../../../../../../common/protocols/src/proto/dxos/halo/keys.proto}
42
+ */
26
43
  export interface KeyRecord {
27
44
  /**
28
45
  * The `KeyType` type of the key. This is often unknown for keys from other sources.
@@ -34,33 +51,59 @@ export interface KeyRecord {
34
51
  publicKey: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>;
35
52
  /**
36
53
  * The secret key as a Buffer (this will never be visible outside the Keyring).
54
+ *
55
+ * Options:
56
+ * - proto3_optional = true
37
57
  */
38
58
  secretKey?: ReturnType<(typeof substitutions)["dxos.halo.keys.PrivKey"]["decode"]>;
39
59
  /**
40
60
  * Is this key from a Greeting "hint"?
61
+ *
62
+ * Options:
63
+ * - proto3_optional = true
41
64
  */
42
65
  hint?: boolean;
43
66
  /**
44
67
  * Determines if this is our key?
45
68
  * Usually true if `secretKey` is present; may be false for "inception keys" such as the Party key.
69
+ *
70
+ * Options:
71
+ * - proto3_optional = true
46
72
  */
47
73
  own?: boolean;
48
74
  /**
49
75
  * Is this key to be trusted?
76
+ *
77
+ * Options:
78
+ * - proto3_optional = true
50
79
  */
51
80
  trusted?: boolean;
52
81
  /**
53
82
  * An RFC-3339 date/time string for when the key was added to the Keyring.
83
+ *
84
+ * Options:
85
+ * - proto3_optional = true
54
86
  */
55
87
  added?: string;
56
88
  /**
57
89
  * An RFC-3339 date/time string for when the key was created.
90
+ *
91
+ * Options:
92
+ * - proto3_optional = true
58
93
  */
59
94
  created?: string;
60
95
  }
96
+ /**
97
+ * Defined in:
98
+ * {@link file://./../../../../../../../common/protocols/src/proto/dxos/halo/keys.proto}
99
+ */
61
100
  export interface KeyRecordList {
62
101
  keys?: KeyRecord[];
63
102
  }
103
+ /**
104
+ * Defined in:
105
+ * {@link file://./../../../../../../../common/protocols/src/proto/dxos/halo/keys.proto}
106
+ */
64
107
  export interface KeyChain {
65
108
  publicKey: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>;
66
109
  message: dxos_credentials.SignedMessage;
@@ -0,0 +1,34 @@
1
+ import type { Stream } from "@dxos/codec-protobuf";
2
+ import substitutions from "../../../substitutions";
3
+ import * as dxos_credentials from "../credentials";
4
+ import * as dxos_echo_feed from "../echo/feed";
5
+ import * as dxos_echo_invitation from "../echo/invitation";
6
+ import * as dxos_echo_metadata from "../echo/metadata";
7
+ import * as dxos_echo_service from "../echo/service";
8
+ import * as dxos_echo_snapshot from "../echo/snapshot";
9
+ import * as dxos_echo_testing from "../echo/testing";
10
+ import * as dxos_echo_timeframe from "../echo/timeframe";
11
+ import * as dxos_halo_keys from "../halo/keys";
12
+ import * as google_protobuf from "../../google/protobuf";
13
+ /**
14
+ * Defined in:
15
+ * {@link file://./../../../../../../../common/protocols/src/proto/dxos/test/echo.proto}
16
+ */
17
+ export interface TestItemMutation {
18
+ key: string;
19
+ value: string;
20
+ }
21
+ /**
22
+ * Defined in:
23
+ * {@link file://./../../../../../../../common/protocols/src/proto/dxos/test/echo.proto}
24
+ */
25
+ export interface TestListMutation {
26
+ data: string;
27
+ }
28
+ /**
29
+ * Defined in:
30
+ * {@link file://./../../../../../../../common/protocols/src/proto/dxos/test/echo.proto}
31
+ */
32
+ export interface TestItemSnapshot {
33
+ keys?: TestItemMutation[];
34
+ }
@@ -9,11 +9,12 @@ import * as dxos_echo_snapshot from "../dxos/echo/snapshot";
9
9
  import * as dxos_echo_testing from "../dxos/echo/testing";
10
10
  import * as dxos_echo_timeframe from "../dxos/echo/timeframe";
11
11
  import * as dxos_halo_keys from "../dxos/halo/keys";
12
+ import * as dxos_test_echo from "../dxos/test/echo";
12
13
  export interface Any {
13
- type_url?: string;
14
- value?: Uint8Array;
14
+ type_url: string;
15
+ value: Uint8Array;
15
16
  }
16
17
  export interface Timestamp {
17
- seconds?: string;
18
- nanos?: number;
18
+ seconds: string;
19
+ nanos: number;
19
20
  }
@@ -8,6 +8,7 @@ import * as dxos_echo_snapshot from "./dxos/echo/snapshot";
8
8
  import * as dxos_echo_testing from "./dxos/echo/testing";
9
9
  import * as dxos_echo_timeframe from "./dxos/echo/timeframe";
10
10
  import * as dxos_halo_keys from "./dxos/halo/keys";
11
+ import * as dxos_test_echo from "./dxos/test/echo";
11
12
  import * as google_protobuf from "./google/protobuf";
12
13
  import substitutions from "../substitutions";
13
14
  export interface TYPES {
@@ -53,11 +54,14 @@ export interface TYPES {
53
54
  "dxos.halo.keys.KeyType": dxos_halo_keys.KeyType;
54
55
  "dxos.halo.keys.PrivKey": dxos_halo_keys.PrivKey;
55
56
  "dxos.halo.keys.PubKey": dxos_halo_keys.PubKey;
57
+ "dxos.test.echo.TestItemMutation": dxos_test_echo.TestItemMutation;
58
+ "dxos.test.echo.TestItemSnapshot": dxos_test_echo.TestItemSnapshot;
59
+ "dxos.test.echo.TestListMutation": dxos_test_echo.TestListMutation;
56
60
  "google.protobuf.Any": google_protobuf.Any;
57
61
  "google.protobuf.Timestamp": google_protobuf.Timestamp;
58
62
  }
59
63
  export interface SERVICES {
60
64
  "dxos.echo.service.DataService": dxos_echo_service.DataService;
61
65
  }
62
- export const schemaJson = JSON.parse("{\"nested\":{\"dxos\":{\"nested\":{\"credentials\":{\"nested\":{\"Message\":{\"fields\":{\"payload\":{\"rule\":\"required\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"SignedMessage\":{\"fields\":{\"signed\":{\"rule\":\"required\",\"type\":\"Signed\",\"id\":1,\"comment\":null},\"signatures\":{\"rule\":\"repeated\",\"type\":\"Signature\",\"id\":2,\"comment\":null}},\"nested\":{\"Signature\":{\"fields\":{\"key\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"signature\":{\"rule\":\"required\",\"type\":\"bytes\",\"id\":2,\"comment\":null},\"keyChain\":{\"type\":\"KeyChain\",\"id\":3,\"comment\":null}},\"comment\":null},\"Signed\":{\"fields\":{\"created\":{\"rule\":\"required\",\"type\":\"string\",\"id\":1,\"comment\":null},\"nonce\":{\"rule\":\"required\",\"type\":\"bytes\",\"id\":2,\"comment\":null},\"payload\":{\"rule\":\"required\",\"type\":\"google.protobuf.Any\",\"id\":10,\"comment\":null}},\"comment\":null}},\"comment\":\"A generic container message used whenever messages are signed (e.g. PartyCredential)\"}}},\"echo\":{\"nested\":{\"feed\":{\"nested\":{\"CredentialsMessage\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":\"A container for dxos.credentials.Message\"},\"EchoEnvelope\":{\"fields\":{\"itemId\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"genesis\":{\"type\":\"ItemGenesis\",\"id\":10,\"comment\":null},\"itemMutation\":{\"type\":\"ItemMutation\",\"id\":11,\"comment\":null},\"mutation\":{\"type\":\"bytes\",\"id\":12,\"comment\":null},\"snapshot\":{\"type\":\"ModelSnapshot\",\"id\":13,\"comment\":\"Set the model to the provided snapshot.\"}},\"comment\":\"Wrapper for all ECHO messages.\"},\"FeedMessage\":{\"oneofs\":{\"payload\":{\"oneof\":[\"halo\",\"echo\"],\"comment\":null}},\"fields\":{\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":1,\"comment\":null},\"halo\":{\"type\":\"CredentialsMessage\",\"id\":10,\"comment\":null},\"echo\":{\"type\":\"EchoEnvelope\",\"id\":11,\"comment\":null}},\"comment\":\"Outer message type decoded by Codec.\\nThis is what is written to the feeds.\"},\"ItemGenesis\":{\"fields\":{\"itemType\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"link\":{\"type\":\"LinkData\",\"id\":4,\"comment\":null}},\"comment\":null},\"ItemMutation\":{\"fields\":{\"parentId\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"action\":{\"type\":\"Action\",\"id\":2,\"comment\":null}},\"nested\":{\"Action\":{\"values\":{\"NOOP\":0,\"DELETE\":1,\"RESTORE\":2},\"comment\":null,\"comments\":{\"NOOP\":null,\"DELETE\":null,\"RESTORE\":null}}},\"comment\":\"Item mutation.\"},\"LinkData\":{\"fields\":{\"source\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"target\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"invitation\":{\"nested\":{\"InvitationDescriptor\":{\"fields\":{\"type\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"swarmKey\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"invitation\":{\"type\":\"bytes\",\"id\":3,\"comment\":null},\"identityKey\":{\"type\":\"bytes\",\"id\":4,\"comment\":\"Only present if type == OFFLINE.\"},\"secret\":{\"type\":\"bytes\",\"id\":5,\"comment\":\"Must be stripped out when passing to another peer.\"}},\"nested\":{\"Type\":{\"values\":{\"INTERACTIVE\":1,\"OFFLINE\":2},\"comment\":\"Defines an invitation type.\",\"comments\":{\"INTERACTIVE\":\"Interactive invitation is when both peers are online at the same time.\",\"OFFLINE\":\"Offline is when only a single peer needs to be online at the time.\"}}},\"comment\":null}}},\"metadata\":{\"nested\":{\"EchoMetadata\":{\"fields\":{\"version\":{\"type\":\"int32\",\"id\":1,\"comment\":\"Version number that is inceremnted every time there's a breaking change to the storage schema.\\n\\nThis is used to detect if the storage schema has changed since the last time the client was run.\\nLoading data from a different version will might result in an error.\"},\"parties\":{\"rule\":\"repeated\",\"type\":\"PartyMetadata\",\"id\":2,\"comment\":null},\"created\":{\"type\":\"google.protobuf.Timestamp\",\"id\":3,\"comment\":null},\"updated\":{\"type\":\"google.protobuf.Timestamp\",\"id\":4,\"comment\":null}},\"comment\":null},\"PartyMetadata\":{\"fields\":{\"key\":{\"type\":\"PubKey\",\"id\":1,\"comment\":\"Party key.\"},\"feedKeys\":{\"rule\":\"repeated\",\"type\":\"PubKey\",\"id\":2,\"comment\":\"List of all feed associated with the party.\"},\"dataFeedKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":\"Key of the wriatable data feed.\"},\"controlFeedKey\":{\"type\":\"PubKey\",\"id\":4,\"comment\":\"Key of the wriatable control feed.\"},\"latestTimeframe\":{\"type\":\"TimeframeVector\",\"id\":5,\"comment\":null}},\"comment\":null}}},\"service\":{\"nested\":{\"DataService\":{\"methods\":{\"SubscribeEntitySet\":{\"requestType\":\"SubscribeEntitySetRequest\",\"responseType\":\"SubscribeEntitySetResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeEntityStream\":{\"requestType\":\"SubscribeEntityStreamRequest\",\"responseType\":\"SubscribeEntityStreamResponse\",\"responseStream\":true,\"comment\":null},\"Write\":{\"requestType\":\"WriteRequest\",\"responseType\":\"MutationReceipt\",\"comment\":null}},\"comment\":null},\"MutationReceipt\":{\"fields\":{\"feedKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntitySetRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeEntitySetResponse\":{\"fields\":{\"added\":{\"rule\":\"repeated\",\"type\":\"EchoEnvelope\",\"id\":1,\"comment\":null},\"deleted\":{\"rule\":\"repeated\",\"type\":\"EchoEnvelope\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntityStreamRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"itemId\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntityStreamResponse\":{\"oneofs\":{\"kind\":{\"oneof\":[\"snapshot\",\"mutation\"],\"comment\":null}},\"fields\":{\"snapshot\":{\"type\":\"ItemSnapshot\",\"id\":1,\"comment\":null},\"mutation\":{\"type\":\"Mutation\",\"id\":2,\"comment\":null}},\"nested\":{\"Mutation\":{\"fields\":{\"data\":{\"type\":\"EchoEnvelope\",\"id\":1,\"comment\":null},\"meta\":{\"type\":\"Metadata\",\"id\":2,\"comment\":null}},\"nested\":{\"Metadata\":{\"fields\":{\"feedKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"memberKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":3,\"comment\":null},\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":4,\"comment\":null}},\"comment\":null}},\"comment\":null}},\"comment\":null},\"WriteRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"mutation\":{\"type\":\"EchoEnvelope\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"snapshot\":{\"nested\":{\"DatabaseSnapshot\":{\"fields\":{\"items\":{\"rule\":\"repeated\",\"type\":\"ItemSnapshot\",\"id\":1,\"comment\":null},\"links\":{\"rule\":\"repeated\",\"type\":\"LinkSnapshot\",\"id\":2,\"comment\":null}},\"comment\":null},\"HaloStateSnapshot\":{\"fields\":{\"messages\":{\"rule\":\"repeated\",\"type\":\"dxos.CredentialsMessage\",\"id\":1,\"comment\":null}},\"comment\":null},\"ItemSnapshot\":{\"oneofs\":{\"_itemId\":{\"oneof\":[\"itemId\"]},\"_itemType\":{\"oneof\":[\"itemType\"]},\"_modelType\":{\"oneof\":[\"modelType\"]},\"_modelVersion\":{\"oneof\":[\"modelVersion\"]},\"_parentId\":{\"oneof\":[\"parentId\"]},\"_model\":{\"oneof\":[\"model\"]}},\"fields\":{\"itemId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"itemType\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"parentId\":{\"type\":\"string\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"model\":{\"type\":\"ModelSnapshot\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"LinkSnapshot\":{\"oneofs\":{\"_linkId\":{\"oneof\":[\"linkId\"]},\"_linkType\":{\"oneof\":[\"linkType\"]},\"_modelType\":{\"oneof\":[\"modelType\"]},\"_modelVersion\":{\"oneof\":[\"modelVersion\"]},\"_model\":{\"oneof\":[\"model\"]}},\"fields\":{\"linkId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"linkType\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"source\":{\"rule\":\"required\",\"type\":\"string\",\"id\":5,\"comment\":null},\"target\":{\"rule\":\"required\",\"type\":\"string\",\"id\":6,\"comment\":null},\"model\":{\"type\":\"ModelSnapshot\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ModelMutation\":{\"fields\":{\"mutation\":{\"rule\":\"required\",\"type\":\"bytes\",\"id\":1,\"comment\":null},\"meta\":{\"rule\":\"required\",\"type\":\"ModelMutationMeta\",\"id\":2,\"comment\":null}},\"comment\":null},\"ModelMutationMeta\":{\"fields\":{\"feedKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"seq\":{\"rule\":\"required\",\"type\":\"int32\",\"id\":2,\"comment\":null},\"memberKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":3,\"comment\":null}},\"comment\":null},\"ModelSnapshot\":{\"oneofs\":{\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"snapshot\":{\"type\":\"bytes\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Encoded model snapshot (defined by the model's codec).\\nIf undefined the state machine will be initialized with it's default state.\"},\"mutations\":{\"rule\":\"repeated\",\"type\":\"ModelMutation\",\"id\":2,\"comment\":\"Mutations to be applied on top of the snapshot, or on top of initial state if the snapshot is undefined.\"}},\"comment\":null},\"PartySnapshot\":{\"fields\":{\"partyKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":2,\"comment\":null},\"timestamp\":{\"type\":\"int32\",\"id\":3,\"comment\":null},\"halo\":{\"type\":\"HaloStateSnapshot\",\"id\":11,\"comment\":null},\"database\":{\"type\":\"DatabaseSnapshot\",\"id\":12,\"comment\":null}},\"comment\":null}}},\"testing\":{\"nested\":{\"TestItemMutation\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"value\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"TestItemSnapshot\":{\"fields\":{\"keys\":{\"rule\":\"repeated\",\"type\":\"TestItemMutation\",\"id\":1,\"comment\":null}},\"comment\":null},\"TestListMutation\":{\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null}}},\"timeframe\":{\"nested\":{\"TimeframeVector\":{\"fields\":{\"frames\":{\"rule\":\"repeated\",\"type\":\"Frame\",\"id\":1,\"comment\":null}},\"nested\":{\"Frame\":{\"fields\":{\"feedKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":\"Vector timestamp used to order messages.\"}}}}},\"halo\":{\"nested\":{\"keys\":{\"nested\":{\"KeyChain\":{\"fields\":{\"publicKey\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"message\":{\"rule\":\"required\",\"type\":\"SignedMessage\",\"id\":2,\"comment\":null},\"parents\":{\"rule\":\"repeated\",\"type\":\"KeyChain\",\"id\":3,\"comment\":null}},\"comment\":null},\"KeyRecord\":{\"fields\":{\"type\":{\"rule\":\"required\",\"type\":\"KeyType\",\"id\":1,\"comment\":\"The `KeyType` type of the key. This is often unknown for keys from other sources.\"},\"publicKey\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":2,\"comment\":\"The public key as a Buffer (required).\"},\"secretKey\":{\"type\":\"PrivKey\",\"id\":3,\"comment\":\"The secret key as a Buffer (this will never be visible outside the Keyring).\"},\"hint\":{\"type\":\"bool\",\"id\":4,\"comment\":\"Is this key from a Greeting \\\"hint\\\"?\"},\"own\":{\"type\":\"bool\",\"id\":5,\"comment\":\"Determines if this is our key?\\nUsually true if `secretKey` is present; may be false for \\\"inception keys\\\" such as the Party key.\"},\"trusted\":{\"type\":\"bool\",\"id\":6,\"comment\":\"Is this key to be trusted?\"},\"added\":{\"type\":\"string\",\"id\":7,\"comment\":\"An RFC-3339 date/time string for when the key was added to the Keyring.\"},\"created\":{\"type\":\"string\",\"id\":8,\"comment\":\"An RFC-3339 date/time string for when the key was created.\"}},\"comment\":null},\"KeyRecordList\":{\"fields\":{\"keys\":{\"rule\":\"repeated\",\"type\":\"KeyRecord\",\"id\":1,\"comment\":null}},\"comment\":null},\"KeyType\":{\"values\":{\"UNKNOWN\":0,\"IDENTITY\":1,\"DEVICE\":2,\"PARTY\":3,\"FEED\":4,\"DXNS_ADDRESS\":5},\"comment\":null,\"comments\":{\"UNKNOWN\":null,\"IDENTITY\":null,\"DEVICE\":null,\"PARTY\":null,\"FEED\":null,\"DXNS_ADDRESS\":null}},\"PrivKey\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"PubKey\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null}}}}}}},\"google\":{\"nested\":{\"protobuf\":{\"nested\":{\"Any\":{\"fields\":{\"type_url\":{\"type\":\"string\",\"id\":1},\"value\":{\"type\":\"bytes\",\"id\":2}},\"comment\":null},\"Timestamp\":{\"fields\":{\"seconds\":{\"type\":\"int64\",\"id\":1},\"nanos\":{\"type\":\"int32\",\"id\":2}},\"comment\":null}}}}}}}");
66
+ export const schemaJson = JSON.parse("{\"nested\":{\"dxos\":{\"nested\":{\"credentials\":{\"nested\":{\"Message\":{\"fields\":{\"payload\":{\"rule\":\"required\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"SignedMessage\":{\"fields\":{\"signed\":{\"rule\":\"required\",\"type\":\"Signed\",\"id\":1,\"comment\":\"The signed message contents.\"},\"signatures\":{\"rule\":\"repeated\",\"type\":\"Signature\",\"id\":2,\"comment\":\"An array of Signatures, one for each key that signed the message.\"}},\"nested\":{\"Signature\":{\"oneofs\":{\"_keyChain\":{\"oneof\":[\"keyChain\"]}},\"fields\":{\"key\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":1,\"comment\":\"The publicKey of the keypair that made this signature.\"},\"signature\":{\"rule\":\"required\",\"type\":\"bytes\",\"id\":2,\"comment\":\"The bytes of the signature.\"},\"keyChain\":{\"type\":\"KeyChain\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"The certification chain of SignedMessages for this key.\"}},\"comment\":null},\"Signed\":{\"fields\":{\"created\":{\"rule\":\"required\",\"type\":\"string\",\"id\":1,\"comment\":\"RFC-3339 datetime string.\"},\"nonce\":{\"rule\":\"required\",\"type\":\"bytes\",\"id\":2,\"comment\":null},\"payload\":{\"rule\":\"required\",\"type\":\"google.protobuf.Any\",\"id\":10,\"comment\":\"The payload to be signed.\"}},\"comment\":null}},\"comment\":\"A generic container message used whenever messages are signed (e.g. PartyCredential)\"}}},\"echo\":{\"nested\":{\"feed\":{\"nested\":{\"CredentialsMessage\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":\"A container for dxos.credentials.Message\"},\"EchoEnvelope\":{\"oneofs\":{\"_genesis\":{\"oneof\":[\"genesis\"]},\"_itemMutation\":{\"oneof\":[\"itemMutation\"]},\"_mutation\":{\"oneof\":[\"mutation\"]},\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"itemId\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"genesis\":{\"type\":\"ItemGenesis\",\"id\":10,\"options\":{\"proto3_optional\":true},\"comment\":null},\"itemMutation\":{\"type\":\"ItemMutation\",\"id\":11,\"options\":{\"proto3_optional\":true},\"comment\":null},\"mutation\":{\"type\":\"bytes\",\"id\":12,\"options\":{\"proto3_optional\":true},\"comment\":null},\"snapshot\":{\"type\":\"ModelSnapshot\",\"id\":13,\"options\":{\"proto3_optional\":true},\"comment\":\"Set the model to the provided snapshot.\"}},\"comment\":\"Wrapper for all ECHO messages.\"},\"FeedMessage\":{\"oneofs\":{\"payload\":{\"oneof\":[\"halo\",\"echo\"],\"comment\":null}},\"fields\":{\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":1,\"comment\":null},\"halo\":{\"type\":\"CredentialsMessage\",\"id\":10,\"comment\":null},\"echo\":{\"type\":\"EchoEnvelope\",\"id\":11,\"comment\":null}},\"comment\":\"Outer message type decoded by Codec.\\nThis is what is written to the feeds.\"},\"ItemGenesis\":{\"oneofs\":{\"_itemType\":{\"oneof\":[\"itemType\"]},\"_modelVersion\":{\"oneof\":[\"modelVersion\"]},\"_link\":{\"oneof\":[\"link\"]}},\"fields\":{\"itemType\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"link\":{\"type\":\"LinkData\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ItemMutation\":{\"oneofs\":{\"_parentId\":{\"oneof\":[\"parentId\"]},\"_action\":{\"oneof\":[\"action\"]}},\"fields\":{\"parentId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"action\":{\"type\":\"Action\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Action\":{\"values\":{\"NOOP\":0,\"DELETE\":1,\"RESTORE\":2},\"comment\":null,\"comments\":{\"NOOP\":null,\"DELETE\":null,\"RESTORE\":null}}},\"comment\":\"Item mutation.\"},\"LinkData\":{\"fields\":{\"source\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"target\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"invitation\":{\"nested\":{\"InvitationDescriptor\":{\"oneofs\":{\"_identityKey\":{\"oneof\":[\"identityKey\"]},\"_secret\":{\"oneof\":[\"secret\"]}},\"fields\":{\"type\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"swarmKey\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"invitation\":{\"type\":\"bytes\",\"id\":3,\"comment\":null},\"identityKey\":{\"type\":\"bytes\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Only present if type == OFFLINE.\"},\"secret\":{\"type\":\"bytes\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Must be stripped out when passing to another peer.\"}},\"nested\":{\"Type\":{\"values\":{\"INTERACTIVE\":1,\"OFFLINE\":2},\"comment\":\"Defines an invitation type.\",\"comments\":{\"INTERACTIVE\":\"Interactive invitation is when both peers are online at the same time.\",\"OFFLINE\":\"Offline is when only a single peer needs to be online at the time.\"}}},\"comment\":null}}},\"metadata\":{\"nested\":{\"EchoMetadata\":{\"fields\":{\"version\":{\"type\":\"int32\",\"id\":1,\"comment\":\"Version number that is inceremnted every time there's a breaking change to the storage schema.\\n\\nThis is used to detect if the storage schema has changed since the last time the client was run.\\nLoading data from a different version will might result in an error.\"},\"parties\":{\"rule\":\"repeated\",\"type\":\"PartyMetadata\",\"id\":2,\"comment\":null},\"created\":{\"type\":\"google.protobuf.Timestamp\",\"id\":3,\"comment\":null},\"updated\":{\"type\":\"google.protobuf.Timestamp\",\"id\":4,\"comment\":null}},\"comment\":null},\"PartyMetadata\":{\"oneofs\":{\"_genesisFeedKey\":{\"oneof\":[\"genesisFeedKey\"]},\"_controlFeedKey\":{\"oneof\":[\"controlFeedKey\"]},\"_dataFeedKey\":{\"oneof\":[\"dataFeedKey\"]},\"_latestTimeframe\":{\"oneof\":[\"latestTimeframe\"]}},\"fields\":{\"key\":{\"type\":\"PubKey\",\"id\":1,\"comment\":\"Party key.\"},\"genesisFeedKey\":{\"type\":\"PubKey\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"controlFeedKey\":{\"type\":\"PubKey\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Key of the wriatable control feed.\"},\"dataFeedKey\":{\"type\":\"PubKey\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Key of the wriatable data feed.\"},\"latestTimeframe\":{\"type\":\"TimeframeVector\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"feedKeys\":{\"rule\":\"repeated\",\"type\":\"PubKey\",\"id\":2,\"comment\":\"List of all feed associated with the party.\"}},\"comment\":null}}},\"service\":{\"nested\":{\"DataService\":{\"methods\":{\"SubscribeEntitySet\":{\"requestType\":\"SubscribeEntitySetRequest\",\"responseType\":\"SubscribeEntitySetResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeEntityStream\":{\"requestType\":\"SubscribeEntityStreamRequest\",\"responseType\":\"SubscribeEntityStreamResponse\",\"responseStream\":true,\"comment\":null},\"Write\":{\"requestType\":\"WriteRequest\",\"responseType\":\"MutationReceipt\",\"comment\":null}},\"comment\":null},\"MutationReceipt\":{\"fields\":{\"feedKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntitySetRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeEntitySetResponse\":{\"fields\":{\"added\":{\"rule\":\"repeated\",\"type\":\"EchoEnvelope\",\"id\":1,\"comment\":null},\"deleted\":{\"rule\":\"repeated\",\"type\":\"EchoEnvelope\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntityStreamRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"itemId\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntityStreamResponse\":{\"oneofs\":{\"kind\":{\"oneof\":[\"snapshot\",\"mutation\"],\"comment\":null}},\"fields\":{\"snapshot\":{\"type\":\"ItemSnapshot\",\"id\":1,\"comment\":null},\"mutation\":{\"type\":\"Mutation\",\"id\":2,\"comment\":null}},\"nested\":{\"Mutation\":{\"fields\":{\"data\":{\"type\":\"EchoEnvelope\",\"id\":1,\"comment\":null},\"meta\":{\"type\":\"Metadata\",\"id\":2,\"comment\":null}},\"nested\":{\"Metadata\":{\"fields\":{\"feedKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"memberKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":3,\"comment\":null},\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":4,\"comment\":null}},\"comment\":null}},\"comment\":null}},\"comment\":null},\"WriteRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"mutation\":{\"type\":\"EchoEnvelope\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"snapshot\":{\"nested\":{\"DatabaseSnapshot\":{\"fields\":{\"items\":{\"rule\":\"repeated\",\"type\":\"ItemSnapshot\",\"id\":1,\"comment\":null},\"links\":{\"rule\":\"repeated\",\"type\":\"LinkSnapshot\",\"id\":2,\"comment\":null}},\"comment\":null},\"HaloStateSnapshot\":{\"fields\":{\"messages\":{\"rule\":\"repeated\",\"type\":\"dxos.CredentialsMessage\",\"id\":1,\"comment\":null}},\"comment\":null},\"ItemSnapshot\":{\"oneofs\":{\"_itemId\":{\"oneof\":[\"itemId\"]},\"_itemType\":{\"oneof\":[\"itemType\"]},\"_modelVersion\":{\"oneof\":[\"modelVersion\"]},\"_parentId\":{\"oneof\":[\"parentId\"]},\"_model\":{\"oneof\":[\"model\"]}},\"fields\":{\"itemId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"itemType\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"parentId\":{\"type\":\"string\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"model\":{\"type\":\"ModelSnapshot\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"LinkSnapshot\":{\"oneofs\":{\"_linkId\":{\"oneof\":[\"linkId\"]},\"_linkType\":{\"oneof\":[\"linkType\"]},\"_modelVersion\":{\"oneof\":[\"modelVersion\"]},\"_model\":{\"oneof\":[\"model\"]}},\"fields\":{\"linkId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"linkType\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"source\":{\"rule\":\"required\",\"type\":\"string\",\"id\":5,\"comment\":null},\"target\":{\"rule\":\"required\",\"type\":\"string\",\"id\":6,\"comment\":null},\"model\":{\"type\":\"ModelSnapshot\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ModelMutation\":{\"fields\":{\"mutation\":{\"rule\":\"required\",\"type\":\"bytes\",\"id\":1,\"comment\":null},\"meta\":{\"rule\":\"required\",\"type\":\"ModelMutationMeta\",\"id\":2,\"comment\":null}},\"comment\":null},\"ModelMutationMeta\":{\"fields\":{\"feedKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"seq\":{\"rule\":\"required\",\"type\":\"int32\",\"id\":2,\"comment\":null},\"memberKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":3,\"comment\":null}},\"comment\":null},\"ModelSnapshot\":{\"oneofs\":{\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"snapshot\":{\"type\":\"bytes\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Encoded model snapshot (defined by the model's codec).\\nIf undefined the state machine will be initialized with it's default state.\"},\"mutations\":{\"rule\":\"repeated\",\"type\":\"ModelMutation\",\"id\":2,\"comment\":\"Mutations to be applied on top of the snapshot, or on top of initial state if the snapshot is undefined.\"}},\"comment\":null},\"PartySnapshot\":{\"oneofs\":{\"_timeframe\":{\"oneof\":[\"timeframe\"]},\"_timestamp\":{\"oneof\":[\"timestamp\"]}},\"fields\":{\"partyKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"timestamp\":{\"type\":\"int32\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"halo\":{\"type\":\"HaloStateSnapshot\",\"id\":11,\"comment\":null},\"database\":{\"type\":\"DatabaseSnapshot\",\"id\":12,\"comment\":null}},\"comment\":null}}},\"testing\":{\"nested\":{\"TestItemMutation\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"value\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"TestItemSnapshot\":{\"fields\":{\"keys\":{\"rule\":\"repeated\",\"type\":\"TestItemMutation\",\"id\":1,\"comment\":null}},\"comment\":null},\"TestListMutation\":{\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null}}},\"timeframe\":{\"nested\":{\"TimeframeVector\":{\"fields\":{\"frames\":{\"rule\":\"repeated\",\"type\":\"Frame\",\"id\":1,\"comment\":null}},\"nested\":{\"Frame\":{\"fields\":{\"feedKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":\"Vector timestamp used to order messages.\"}}}}},\"halo\":{\"nested\":{\"keys\":{\"nested\":{\"KeyChain\":{\"fields\":{\"publicKey\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"message\":{\"rule\":\"required\",\"type\":\"SignedMessage\",\"id\":2,\"comment\":null},\"parents\":{\"rule\":\"repeated\",\"type\":\"KeyChain\",\"id\":3,\"comment\":null}},\"comment\":null},\"KeyRecord\":{\"oneofs\":{\"_secretKey\":{\"oneof\":[\"secretKey\"]},\"_hint\":{\"oneof\":[\"hint\"]},\"_own\":{\"oneof\":[\"own\"]},\"_trusted\":{\"oneof\":[\"trusted\"]},\"_added\":{\"oneof\":[\"added\"]},\"_created\":{\"oneof\":[\"created\"]}},\"fields\":{\"type\":{\"rule\":\"required\",\"type\":\"KeyType\",\"id\":1,\"comment\":\"The `KeyType` type of the key. This is often unknown for keys from other sources.\"},\"publicKey\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":2,\"comment\":\"The public key as a Buffer (required).\"},\"secretKey\":{\"type\":\"PrivKey\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"The secret key as a Buffer (this will never be visible outside the Keyring).\"},\"hint\":{\"type\":\"bool\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Is this key from a Greeting \\\"hint\\\"?\"},\"own\":{\"type\":\"bool\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Determines if this is our key?\\nUsually true if `secretKey` is present; may be false for \\\"inception keys\\\" such as the Party key.\"},\"trusted\":{\"type\":\"bool\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":\"Is this key to be trusted?\"},\"added\":{\"type\":\"string\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":\"An RFC-3339 date/time string for when the key was added to the Keyring.\"},\"created\":{\"type\":\"string\",\"id\":8,\"options\":{\"proto3_optional\":true},\"comment\":\"An RFC-3339 date/time string for when the key was created.\"}},\"comment\":null},\"KeyRecordList\":{\"fields\":{\"keys\":{\"rule\":\"repeated\",\"type\":\"KeyRecord\",\"id\":1,\"comment\":null}},\"comment\":null},\"KeyType\":{\"values\":{\"UNKNOWN\":0,\"IDENTITY\":1,\"DEVICE\":2,\"PARTY\":3,\"FEED\":4,\"DXNS_ADDRESS\":5},\"comment\":null,\"comments\":{\"UNKNOWN\":null,\"IDENTITY\":null,\"DEVICE\":null,\"PARTY\":null,\"FEED\":null,\"DXNS_ADDRESS\":null}},\"PrivKey\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"PubKey\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null}}}}},\"test\":{\"nested\":{\"echo\":{\"nested\":{\"TestItemMutation\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"value\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"TestItemSnapshot\":{\"fields\":{\"keys\":{\"rule\":\"repeated\",\"type\":\"TestItemMutation\",\"id\":1,\"comment\":null}},\"comment\":null},\"TestListMutation\":{\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null}}}}}}},\"google\":{\"nested\":{\"protobuf\":{\"nested\":{\"Any\":{\"fields\":{\"type_url\":{\"type\":\"string\",\"id\":1},\"value\":{\"type\":\"bytes\",\"id\":2}},\"comment\":null},\"Timestamp\":{\"fields\":{\"seconds\":{\"type\":\"int64\",\"id\":1},\"nanos\":{\"type\":\"int32\",\"id\":2}},\"comment\":null}}}}}}}");
63
67
  export const schema = Schema.fromJson<TYPES, SERVICES>(schemaJson, substitutions);
@@ -6,11 +6,12 @@ import { schema } from './gen';
6
6
 
7
7
  export * from './gen';
8
8
  export * from './gen/dxos/echo/feed';
9
+ export * from './gen/dxos/echo/invitation';
9
10
  export * from './gen/dxos/echo/metadata';
10
- export * from './gen/dxos/echo/snapshot';
11
- export * from './gen/dxos/echo/testing';
12
11
  export * from './gen/dxos/echo/service';
13
- export * from './gen/dxos/echo/invitation';
12
+ export * from './gen/dxos/echo/snapshot';
13
+
14
+ export * from './gen/dxos/test/echo';
14
15
 
15
16
  export * from './messages';
16
17
 
@@ -2,34 +2,23 @@
2
2
  // Copyright 2020 DXOS.org
3
3
  //
4
4
 
5
- import { Timeframe } from '../spacetime';
6
- import { ItemID, ItemType } from '../types';
5
+ import { Timeframe } from '@dxos/protocols';
6
+
7
+ import { ItemID } from '../types';
7
8
  import { schema } from './gen';
8
9
  import { FeedMessage } from './gen/dxos/echo/feed';
9
10
 
10
- //
11
- // ECHO generators.
12
- //
13
-
14
- export const createItemGenesis = (itemId: ItemID, itemType: ItemType): FeedMessage => ({
15
- echo: {
16
- genesis: {
17
- itemType
18
- }
19
- }
20
- });
21
-
22
11
  //
23
12
  // Testing.
24
13
  //
25
14
 
26
15
  export const createTestItemMutation = (
27
- itemId: ItemID, key: string, value: string, timeframe?: Timeframe
16
+ itemId: ItemID, key: string, value: string, timeframe = new Timeframe()
28
17
  ): FeedMessage => ({
29
18
  timeframe,
30
19
  echo: {
31
20
  itemId,
32
- mutation: schema.getCodecForType('dxos.echo.testing.TestItemMutation').encode({
21
+ mutation: schema.getCodecForType('dxos.test.echo.TestItemMutation').encode({
33
22
  key,
34
23
  value
35
24
  })
@@ -4,9 +4,7 @@
4
4
 
5
5
  import { timestampSubstitutions } from '@dxos/codec-protobuf';
6
6
  import { codec, Message } from '@dxos/credentials';
7
- import { publicKeySubstitutions } from '@dxos/protocols';
8
-
9
- import { timeframeSubstitutions } from '../spacetime';
7
+ import { publicKeySubstitutions, timeframeSubstitutions } from '@dxos/protocols';
10
8
 
11
9
  export default {
12
10
  ...timestampSubstitutions,
package/src/types.ts CHANGED
@@ -3,10 +3,9 @@
3
3
  //
4
4
 
5
5
  import { Message as HaloMessage } from '@dxos/credentials';
6
- import { PublicKey } from '@dxos/protocols';
6
+ import { PublicKey, Timeframe } from '@dxos/protocols';
7
7
 
8
8
  import { EchoEnvelope, FeedMessage } from './proto';
9
- import { Timeframe } from './spacetime/timeframe';
10
9
 
11
10
  //
12
11
  // Keys.
@@ -1,3 +0,0 @@
1
- export * from './timeframe';
2
- export * from './substitutions';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spacetime/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2020 DXOS.org
4
- //
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
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);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- __exportStar(require("./timeframe"), exports);
21
- __exportStar(require("./substitutions"), exports);
22
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/spacetime/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,8CAA4B;AAC5B,kDAAgC"}
@@ -1,13 +0,0 @@
1
- import { Timeframe } from './timeframe';
2
- export declare const timeframeSubstitutions: {
3
- 'dxos.echo.timeframe.TimeframeVector': {
4
- encode: (timeframe: Timeframe) => {
5
- frames: {
6
- feedKey: Uint8Array;
7
- seq: number;
8
- }[];
9
- };
10
- decode: (vector: any) => Timeframe;
11
- };
12
- };
13
- //# sourceMappingURL=substitutions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"substitutions.d.ts","sourceRoot":"","sources":["../../../src/spacetime/substitutions.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,sBAAsB;;4BAEX,SAAS;;;;;;yBAGZ,GAAG;;CAMvB,CAAC"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2022 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.timeframeSubstitutions = void 0;
7
- const protocols_1 = require("@dxos/protocols");
8
- const timeframe_1 = require("./timeframe");
9
- exports.timeframeSubstitutions = {
10
- 'dxos.echo.timeframe.TimeframeVector': {
11
- encode: (timeframe) => ({
12
- frames: timeframe.frames().map(([feedKey, seq]) => ({ feedKey: feedKey.asUint8Array(), seq }))
13
- }),
14
- decode: (vector) => {
15
- var _a;
16
- return new timeframe_1.Timeframe(((_a = vector.frames) !== null && _a !== void 0 ? _a : [])
17
- .filter((frame) => frame.feedKey != null && frame.seq != null)
18
- .map((frame) => [protocols_1.PublicKey.from(new Uint8Array(frame.feedKey)), frame.seq]));
19
- }
20
- }
21
- };
22
- //# sourceMappingURL=substitutions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"substitutions.js","sourceRoot":"","sources":["../../../src/spacetime/substitutions.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,+CAA4C;AAE5C,2CAAwC;AAE3B,QAAA,sBAAsB,GAAG;IACpC,qCAAqC,EAAE;QACrC,MAAM,EAAE,CAAC,SAAoB,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;SAC/F,CAAC;QACF,MAAM,EAAE,CAAC,MAAW,EAAE,EAAE;;YAAC,OAAA,IAAI,qBAAS,CACpC,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC;iBAClB,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC;iBAClE,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CACnF,CAAA;SAAA;KACF;CACF,CAAC"}
@@ -1,45 +0,0 @@
1
- /// <reference types="node" />
2
- import { inspect } from 'util';
3
- import { FeedKey } from '../types';
4
- /**
5
- * A mapping of feed key to a sequence number on that feed.
6
- * Describes how many messages have been processed.
7
- */
8
- export declare class Timeframe {
9
- private readonly _frames;
10
- constructor(frames?: [FeedKey, number][]);
11
- get(key: FeedKey): number | undefined;
12
- set(key: FeedKey, value: number): void;
13
- frames(): [FeedKey, number][];
14
- size(): number;
15
- isEmpty(): boolean;
16
- /**
17
- * Returns a new timeframe with specified keys removed.
18
- * @param keys
19
- */
20
- withoutKeys(keys: FeedKey[]): Timeframe;
21
- /**
22
- * Returns a total amount of messages represented by this timeframe.
23
- */
24
- totalMessages(): number;
25
- toJSON(): Record<string, number>;
26
- toString(): string;
27
- /**
28
- * Used by NodeJS to get textual representation of this object when it's printed with a `console.log` statement.
29
- */
30
- [inspect.custom](): string;
31
- /**
32
- * Merges the values, updating the highest sequence numbers.
33
- * @param timeframes
34
- */
35
- static merge(...timeframes: Timeframe[]): Timeframe;
36
- /**
37
- * Compares two timeframes and returns an array of frames from the first timeframe where the sequence number
38
- * is greater than the associated sequence number from the second timeframe.
39
- *
40
- * @param tf1
41
- * @param tf2
42
- */
43
- static dependencies(tf1: Timeframe, tf2: Timeframe): Timeframe;
44
- }
45
- //# sourceMappingURL=timeframe.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeframe.d.ts","sourceRoot":"","sources":["../../../src/spacetime/timeframe.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyE;gBAEpF,MAAM,GAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAO;IAM7C,GAAG,CAAE,GAAG,EAAE,OAAO;IAIjB,GAAG,CAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IAKhC,MAAM,IAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;IAK9B,IAAI;IAKJ,OAAO;IAIP;;;OAGG;IACH,WAAW,CAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS;IAKxC;;OAEG;IACH,aAAa,IAAK,MAAM;IAIxB,MAAM;IAON,QAAQ;IAIR;;OAEG;IACH,CAAC,OAAO,CAAC,MAAM,CAAC;IAIhB;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAE,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS;IAcpD;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CACjB,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAC7B,SAAS;CAWb"}
@@ -1,101 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2020 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Timeframe = void 0;
7
- const util_1 = require("util");
8
- const util_2 = require("@dxos/util");
9
- /**
10
- * A mapping of feed key to a sequence number on that feed.
11
- * Describes how many messages have been processed.
12
- */
13
- class Timeframe {
14
- constructor(frames = []) {
15
- this._frames = new util_2.ComplexMap(key => key.asUint8Array().toString());
16
- for (const [key, seq] of frames) {
17
- this._frames.set(key, seq);
18
- }
19
- }
20
- get(key) {
21
- return this._frames.get(key);
22
- }
23
- set(key, value) {
24
- this._frames.set(key, value);
25
- }
26
- // TODO(burdon): Change to getter.
27
- frames() {
28
- return Array.from(this._frames.entries());
29
- }
30
- // TODO(burdon): Change to getter.
31
- size() {
32
- return this._frames.size;
33
- }
34
- // TODO(burdon): Change to getter (empty).
35
- isEmpty() {
36
- return this.size() === 0;
37
- }
38
- /**
39
- * Returns a new timeframe with specified keys removed.
40
- * @param keys
41
- */
42
- withoutKeys(keys) {
43
- return new Timeframe(this.frames().filter(([frameKey]) => keys.every(key => Buffer.compare(key.asBuffer(), frameKey.asBuffer()) !== 0)));
44
- }
45
- /**
46
- * Returns a total amount of messages represented by this timeframe.
47
- */
48
- totalMessages() {
49
- return Array.from(this._frames.values()).reduce((acc, seq) => acc + seq + 1, 0);
50
- }
51
- toJSON() {
52
- return this.frames().reduce((frames, [key, seq]) => {
53
- frames[(0, util_2.humanize)(key)] = seq;
54
- return frames;
55
- }, {});
56
- }
57
- toString() {
58
- return `(${this.frames().map(([key, seq]) => `${(0, util_2.humanize)(key)} => ${seq}`).join(', ')})`;
59
- }
60
- /**
61
- * Used by NodeJS to get textual representation of this object when it's printed with a `console.log` statement.
62
- */
63
- [util_1.inspect.custom]() {
64
- return `Timeframe${this.toString()}`;
65
- }
66
- /**
67
- * Merges the values, updating the highest sequence numbers.
68
- * @param timeframes
69
- */
70
- static merge(...timeframes) {
71
- const result = new Timeframe();
72
- for (const timeframe of timeframes) {
73
- for (const [key, seq] of timeframe.frames()) {
74
- const current = result.get(key);
75
- if (current === undefined || seq > current) {
76
- result.set(key, seq);
77
- }
78
- }
79
- }
80
- return result;
81
- }
82
- /**
83
- * Compares two timeframes and returns an array of frames from the first timeframe where the sequence number
84
- * is greater than the associated sequence number from the second timeframe.
85
- *
86
- * @param tf1
87
- * @param tf2
88
- */
89
- static dependencies(tf1, tf2) {
90
- const result = new Timeframe();
91
- for (const [key, seq] of tf1.frames()) {
92
- const otherSeq = tf2.get(key);
93
- if (otherSeq === undefined || otherSeq < seq) {
94
- result.set(key, seq);
95
- }
96
- }
97
- return result;
98
- }
99
- }
100
- exports.Timeframe = Timeframe;
101
- //# sourceMappingURL=timeframe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeframe.js","sourceRoot":"","sources":["../../../src/spacetime/timeframe.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=timeframe.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeframe.test.d.ts","sourceRoot":"","sources":["../../../src/spacetime/timeframe.test.ts"],"names":[],"mappings":""}