@dxos/credentials 2.33.8 → 2.33.9-dev.7c8c6a09

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 (76) hide show
  1. package/.rush/temp/package-deps_build.json +21 -21
  2. package/.rush/temp/package-deps_build_test.json +21 -21
  3. package/.rush/temp/shrinkwrap-deps.json +24 -13
  4. package/credentials.build.log +10 -9
  5. package/dist/src/auth/auth-message.js +2 -2
  6. package/dist/src/auth/auth-message.js.map +1 -1
  7. package/dist/src/auth/auth-plugin.d.ts.map +1 -1
  8. package/dist/src/auth/auth-plugin.js +4 -4
  9. package/dist/src/auth/auth-plugin.js.map +1 -1
  10. package/dist/src/auth/auth-plugin.test.js +3 -3
  11. package/dist/src/auth/auth-plugin.test.js.map +1 -1
  12. package/dist/src/greet/greeter-plugin.test.js +7 -12
  13. package/dist/src/greet/greeter-plugin.test.js.map +1 -1
  14. package/dist/src/greet/greeter.d.ts +3 -5
  15. package/dist/src/greet/greeter.d.ts.map +1 -1
  16. package/dist/src/greet/greeter.js +14 -18
  17. package/dist/src/greet/greeter.js.map +1 -1
  18. package/dist/src/greet/greeter.test.js +4 -10
  19. package/dist/src/greet/greeter.test.js.map +1 -1
  20. package/dist/src/greet/greeting-command-plugin.d.ts.map +1 -1
  21. package/dist/src/greet/greeting-command-plugin.js +11 -11
  22. package/dist/src/greet/greeting-command-plugin.js.map +1 -1
  23. package/dist/src/greet/greeting-message.js +9 -9
  24. package/dist/src/greet/greeting-message.js.map +1 -1
  25. package/dist/src/greet/party-invitation-claim-handler.js +5 -5
  26. package/dist/src/greet/party-invitation-claim-handler.js.map +1 -1
  27. package/dist/src/identity/identity-message-processor.d.ts.map +1 -1
  28. package/dist/src/identity/identity-message-processor.js +6 -6
  29. package/dist/src/identity/identity-message-processor.js.map +1 -1
  30. package/dist/src/identity/identity-message.js +7 -7
  31. package/dist/src/identity/identity-message.js.map +1 -1
  32. package/dist/src/identity/seedphrase.js +2 -2
  33. package/dist/src/identity/seedphrase.js.map +1 -1
  34. package/dist/src/keys/keyring-helpers.js +12 -12
  35. package/dist/src/keys/keyring-helpers.js.map +1 -1
  36. package/dist/src/keys/keyring.js +18 -18
  37. package/dist/src/keys/keyring.js.map +1 -1
  38. package/dist/src/keys/keyring.test.js +7 -7
  39. package/dist/src/keys/keyring.test.js.map +1 -1
  40. package/dist/src/keys/keystore.js +5 -5
  41. package/dist/src/keys/keystore.js.map +1 -1
  42. package/dist/src/party/party-credential.js +9 -9
  43. package/dist/src/party/party-credential.js.map +1 -1
  44. package/dist/src/party/party-invitation-manager.js +5 -5
  45. package/dist/src/party/party-invitation-manager.js.map +1 -1
  46. package/dist/src/party/party-state.d.ts.map +1 -1
  47. package/dist/src/party/party-state.js +21 -21
  48. package/dist/src/party/party-state.js.map +1 -1
  49. package/dist/src/proto/gen/dxos/credentials/greet.d.ts +1 -1
  50. package/dist/src/proto/gen/dxos/credentials/greet.d.ts.map +1 -1
  51. package/dist/src/proto/gen/index.d.ts.map +1 -1
  52. package/dist/src/proto/gen/index.js +1 -1
  53. package/dist/src/proto/gen/index.js.map +1 -1
  54. package/dist/tsconfig.tsbuildinfo +1 -1
  55. package/package.json +16 -12
  56. package/src/auth/auth-message.ts +1 -1
  57. package/src/auth/auth-plugin.test.ts +1 -1
  58. package/src/auth/auth-plugin.ts +1 -1
  59. package/src/greet/greeter-plugin.test.ts +8 -14
  60. package/src/greet/greeter.test.js +6 -15
  61. package/src/greet/greeter.ts +10 -14
  62. package/src/greet/greeting-command-plugin.ts +1 -1
  63. package/src/greet/greeting-message.ts +1 -1
  64. package/src/greet/party-invitation-claim-handler.ts +1 -1
  65. package/src/identity/identity-message-processor.ts +1 -1
  66. package/src/identity/identity-message.ts +1 -1
  67. package/src/identity/seedphrase.ts +1 -1
  68. package/src/keys/keyring-helpers.ts +1 -1
  69. package/src/keys/keyring.test.ts +1 -1
  70. package/src/keys/keyring.ts +1 -1
  71. package/src/keys/keystore.ts +1 -1
  72. package/src/party/party-credential.ts +1 -1
  73. package/src/party/party-invitation-manager.ts +1 -1
  74. package/src/party/party-state.ts +1 -1
  75. package/src/proto/gen/dxos/credentials/greet.ts +1 -1
  76. package/src/proto/gen/index.ts +1 -1
@@ -2,8 +2,8 @@
2
2
  // Copyright 2019 DXOS.org
3
3
  //
4
4
 
5
- import assert from 'assert';
6
5
  import debug from 'debug';
6
+ import assert from 'node:assert';
7
7
 
8
8
  import { ERR_EXTENSION_RESPONSE_FAILED } from '@dxos/mesh-protocol';
9
9
  import { PublicKeyLike, PublicKey } from '@dxos/protocols';
@@ -11,7 +11,7 @@ import { arraysEqual } from '@dxos/util';
11
11
 
12
12
  import { Keyring } from '../keys';
13
13
  import { getPartyCredentialMessageType } from '../party';
14
- import { PartyCredential, Message, KeyHint, Command, NotarizeResponse, WithTypeUrl, KeyType } from '../proto';
14
+ import { PartyCredential, Message, Command, NotarizeResponse, WithTypeUrl } from '../proto';
15
15
  import { PeerId } from '../typedefs';
16
16
  import {
17
17
  ERR_GREET_INVALID_COMMAND,
@@ -28,7 +28,6 @@ import { Invitation, InvitationOnFinish, SecretProvider, SecretValidator } from
28
28
  const log = debug('dxos:halo:greet');
29
29
 
30
30
  export type PartyWriter = (params: Message[]) => Promise<Message[]>;
31
- export type HintProvider = (params: Message[]) => Promise<KeyHint[]>;
32
31
 
33
32
  /**
34
33
  * Reference Greeter that uses useable, single-use "invitations" to authenticate the invitee.
@@ -36,7 +35,6 @@ export type HintProvider = (params: Message[]) => Promise<KeyHint[]>;
36
35
  export class Greeter {
37
36
  _partyKey?: PublicKey;
38
37
  _partyWriter?: PartyWriter;
39
- _hintProvider?: HintProvider;
40
38
  _invitations = new Map<string, Invitation>();
41
39
 
42
40
  /**
@@ -44,18 +42,19 @@ export class Greeter {
44
42
  * TODO(telackey): Does it make sense to separate out the Invitee functionality?
45
43
  * @param {PublicKeyLike} [partyKey] The publicKey of the target Party.
46
44
  * @param {function} [partyWriter] Callback function to write messages to the Party.
47
- * @param {function} [hintProvider] Callback function to gather feed and key hints to give to the invitee.
48
45
  */
49
- constructor (partyKey?: PublicKeyLike, partyWriter?: PartyWriter, hintProvider?: HintProvider) {
50
- if (partyKey || partyWriter || hintProvider) {
46
+ constructor (
47
+ partyKey?: PublicKeyLike,
48
+ private readonly _genesisFeedKey?: PublicKey,
49
+ partyWriter?: PartyWriter
50
+ ) {
51
+ if (partyKey || partyWriter) {
51
52
  assert(partyKey);
52
53
  assert(partyWriter);
53
- assert(hintProvider);
54
54
  }
55
55
 
56
56
  this._partyKey = partyKey ? PublicKey.from(partyKey) : undefined;
57
57
  this._partyWriter = partyWriter;
58
- this._hintProvider = hintProvider;
59
58
  }
60
59
 
61
60
  /**
@@ -250,19 +249,16 @@ export class Greeter {
250
249
  log('Admitting new node after successful greeting.');
251
250
 
252
251
  assert(this._partyWriter);
253
- assert(this._hintProvider);
254
252
 
255
253
  // Write the supplied messages to the target Party.
256
254
  const copies = await this._partyWriter(params);
257
255
 
258
- // Retrieve the hinted feed and key info for the invitee.
259
- const hints = await this._hintProvider(params);
260
-
261
256
  await invitation.notarize();
257
+ assert(this._genesisFeedKey);
262
258
  return {
263
259
  '@type': 'dxos.credentials.greet.NotarizeResponse',
264
260
  copies,
265
- feedHints: hints.filter(hint => hint.type === KeyType.FEED).map(hint => hint.publicKey!)
261
+ genesisFeed: this._genesisFeedKey
266
262
  };
267
263
  }
268
264
  }
@@ -7,9 +7,9 @@
7
7
  * and moved somewhere more abstract (RpcProtocolPlugin?).
8
8
  */
9
9
 
10
- import assert from 'assert';
11
10
  import debug from 'debug';
12
11
  import { EventEmitter } from 'events';
12
+ import assert from 'node:assert';
13
13
 
14
14
  import { WithTypeUrl } from '@dxos/codec-protobuf';
15
15
  import { Extension, ERR_EXTENSION_RESPONSE_FAILED, Protocol } from '@dxos/mesh-protocol';
@@ -2,7 +2,7 @@
2
2
  // Copyright 2020 DXOS.org
3
3
  //
4
4
 
5
- import assert from 'assert';
5
+ import assert from 'node:assert';
6
6
 
7
7
  import { ClaimResponse, Command, SignedMessage, Message, WithTypeUrl } from '../proto';
8
8
 
@@ -2,8 +2,8 @@
2
2
  // Copyright 2020 DXOS.org
3
3
  //
4
4
 
5
- import assert from 'assert';
6
5
  import debug from 'debug';
6
+ import assert from 'node:assert';
7
7
 
8
8
  import { ERR_EXTENSION_RESPONSE_FAILED } from '@dxos/mesh-protocol';
9
9
 
@@ -2,9 +2,9 @@
2
2
  // Copyright 2020 DXOS.org
3
3
  //
4
4
 
5
- import assert from 'assert';
6
5
  import debug from 'debug';
7
6
  import { EventEmitter } from 'events';
7
+ import assert from 'node:assert';
8
8
 
9
9
  import { PublicKey, PublicKeyLike } from '@dxos/protocols';
10
10
 
@@ -2,7 +2,7 @@
2
2
  // Copyright 2020 DXOS.org
3
3
  //
4
4
 
5
- import assert from 'assert';
5
+ import assert from 'node:assert';
6
6
 
7
7
  import { Keyring } from '../keys';
8
8
  import { unwrapEnvelopes, extractContents, unwrapMessage, wrapMessage } from '../party';
@@ -2,8 +2,8 @@
2
2
  // Copyright 2020 DXOS.org
3
3
  //
4
4
 
5
- import assert from 'assert';
6
5
  import { generateMnemonic, mnemonicToSeedSync } from 'bip39';
6
+ import assert from 'node:assert';
7
7
 
8
8
  import { createKeyPair } from '@dxos/crypto';
9
9
 
@@ -6,8 +6,8 @@
6
6
  // TODO(burdon): Factor out helpers.
7
7
  //
8
8
 
9
- import assert from 'assert';
10
9
  import stableStringify from 'json-stable-stringify';
10
+ import assert from 'node:assert';
11
11
 
12
12
  import { createKeyPair, KeyPair } from '@dxos/crypto';
13
13
  import { PublicKey, PublicKeyLike, PUBLIC_KEY_LENGTH, SECRET_KEY_LENGTH } from '@dxos/protocols';
@@ -4,8 +4,8 @@
4
4
 
5
5
  // DXOS testing browser.
6
6
 
7
- import assert from 'assert';
8
7
  import expect from 'expect';
8
+ import assert from 'node:assert';
9
9
 
10
10
  import { createKeyPair, randomBytes, verify } from '@dxos/crypto';
11
11
  import { PublicKey } from '@dxos/protocols';
@@ -2,8 +2,8 @@
2
2
  // Copyright 2019 DXOS.org
3
3
  //
4
4
 
5
- import assert from 'assert';
6
5
  import memdown from 'memdown';
6
+ import assert from 'node:assert';
7
7
 
8
8
  import { Event } from '@dxos/async';
9
9
  import {
@@ -2,12 +2,12 @@
2
2
  // Copyright 2019 DXOS.org
3
3
  //
4
4
 
5
- import assert from 'assert';
6
5
  import bufferJson from 'buffer-json-encoding';
7
6
  import debug from 'debug';
8
7
  import encode from 'encoding-down';
9
8
  import levelup, { LevelUp } from 'levelup';
10
9
  import memdown from 'memdown';
10
+ import assert from 'node:assert';
11
11
  import toArray from 'stream-to-array';
12
12
 
13
13
  import { PublicKey } from '@dxos/protocols';
@@ -2,7 +2,7 @@
2
2
  // Copyright 2019 DXOS.org
3
3
  //
4
4
 
5
- import assert from 'assert';
5
+ import assert from 'node:assert';
6
6
 
7
7
  import { randomBytes } from '@dxos/crypto';
8
8
  import { PublicKey, PublicKeyLike } from '@dxos/protocols';
@@ -2,8 +2,8 @@
2
2
  // Copyright 2020 DXOS.org
3
3
  //
4
4
 
5
- import assert from 'assert';
6
5
  import debug from 'debug';
6
+ import assert from 'node:assert';
7
7
 
8
8
  import { PublicKey } from '@dxos/protocols';
9
9
 
@@ -2,9 +2,9 @@
2
2
  // Copyright 2019 DXOS.org
3
3
  //
4
4
 
5
- import assert from 'assert';
6
5
  import debug from 'debug';
7
6
  import { EventEmitter } from 'events';
7
+ import assert from 'node:assert';
8
8
 
9
9
  import { discoveryKey } from '@dxos/crypto';
10
10
  import { PublicKey, PublicKeyLike } from '@dxos/protocols';
@@ -32,7 +32,7 @@ export interface HandshakeResponse {
32
32
  }
33
33
  export interface NotarizeResponse {
34
34
  copies?: ReturnType<(typeof substitutions)["google.protobuf.Any"]["decode"]>[];
35
- feedHints?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>[];
35
+ genesisFeed?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>;
36
36
  }
37
37
  export interface KeyHint {
38
38
  publicKey?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>;
@@ -49,5 +49,5 @@ export interface TYPES {
49
49
  }
50
50
  export interface SERVICES {
51
51
  }
52
- export const schemaJson = JSON.parse("{\"nested\":{\"dxos\":{\"nested\":{\"credentials\":{\"nested\":{\"auth\":{\"nested\":{\"Auth\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":\"The publicKey of the target Party for these credentials.\"},\"deviceKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":\"The publicKey of the authenticating Device.\"},\"identityKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":\"The publicKey of the authenticating Identity.\"},\"feedKey\":{\"type\":\"PubKey\",\"id\":4,\"comment\":\"The publicKey of the authenticating Identity.\"},\"feedAdmit\":{\"type\":\"google.protobuf.Any\",\"id\":5,\"comment\":\"FeedAdmit message to the should be written to a control feed in case the `feedKey` is not admitted to the party.\"}},\"comment\":\"The payload for a SignedMessage sent during handshake for replication authentication.\"}}},\"greet\":{\"nested\":{\"BeginResponse\":{\"fields\":{\"info\":{\"keyType\":\"string\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"ClaimResponse\":{\"fields\":{\"id\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"rendezvousKey\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Command\":{\"fields\":{\"command\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"secret\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"params\":{\"rule\":\"repeated\",\"type\":\"google.protobuf.Any\",\"id\":10,\"comment\":null}},\"nested\":{\"Type\":{\"values\":{\"BEGIN\":0,\"HANDSHAKE\":1,\"NOTARIZE\":2,\"FINISH\":3,\"CLAIM\":10},\"comment\":null,\"comments\":{\"BEGIN\":null,\"HANDSHAKE\":null,\"NOTARIZE\":null,\"FINISH\":null,\"CLAIM\":null}}},\"comment\":\"A Greeter command.\"},\"HandshakeResponse\":{\"fields\":{\"nonce\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"partyKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"KeyHint\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"type\":{\"type\":\"KeyType\",\"id\":2,\"comment\":null}},\"comment\":null},\"NotarizeResponse\":{\"fields\":{\"copies\":{\"rule\":\"repeated\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null},\"feedHints\":{\"rule\":\"repeated\",\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"identity\":{\"nested\":{\"DeviceInfo\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"IdentityInfo\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"Message\":{\"fields\":{\"payload\":{\"rule\":\"required\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"party\":{\"nested\":{\"Envelope\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"message\":{\"type\":\"Message\",\"id\":2,\"comment\":null}},\"comment\":null},\"FeedAdmit\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"feedKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"FeedGenesis\":{\"fields\":{\"feedKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"ownerKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"KeyAdmit\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"admitKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"admitKeyType\":{\"type\":\"KeyType\",\"id\":3,\"comment\":null}},\"comment\":null},\"PartyCredential\":{\"oneofs\":{\"contents\":{\"oneof\":[\"envelope\",\"partyGenesis\",\"keyAdmit\",\"feedAdmit\",\"feedGenesis\"],\"comment\":null}},\"fields\":{\"type\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"envelope\":{\"type\":\"Envelope\",\"id\":10,\"comment\":null},\"partyGenesis\":{\"type\":\"PartyGenesis\",\"id\":11,\"comment\":null},\"keyAdmit\":{\"type\":\"KeyAdmit\",\"id\":12,\"comment\":null},\"feedAdmit\":{\"type\":\"FeedAdmit\",\"id\":13,\"comment\":null},\"feedGenesis\":{\"type\":\"FeedGenesis\",\"id\":14,\"comment\":null}},\"nested\":{\"Type\":{\"values\":{\"ENVELOPE\":0,\"PARTY_GENESIS\":1,\"FEED_GENESIS\":2,\"KEY_ADMIT\":3,\"FEED_ADMIT\":4},\"comment\":null,\"comments\":{\"ENVELOPE\":null,\"PARTY_GENESIS\":null,\"FEED_GENESIS\":null,\"KEY_ADMIT\":null,\"FEED_ADMIT\":null}}},\"comment\":null},\"PartyGenesis\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"feedKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"admitKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":null},\"admitKeyType\":{\"type\":\"KeyType\",\"id\":4,\"comment\":null}},\"comment\":null},\"PartyInvitation\":{\"fields\":{\"id\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"partyKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"issuerKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":null},\"inviteeKey\":{\"type\":\"PubKey\",\"id\":4,\"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)\"}}},\"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},\"BoolValue\":{\"fields\":{\"value\":{\"type\":\"bool\",\"id\":1}},\"comment\":null},\"BytesValue\":{\"fields\":{\"value\":{\"type\":\"bytes\",\"id\":1}},\"comment\":null},\"DoubleValue\":{\"fields\":{\"value\":{\"type\":\"double\",\"id\":1}},\"comment\":null},\"FloatValue\":{\"fields\":{\"value\":{\"type\":\"float\",\"id\":1}},\"comment\":null},\"Int32Value\":{\"fields\":{\"value\":{\"type\":\"int32\",\"id\":1}},\"comment\":null},\"Int64Value\":{\"fields\":{\"value\":{\"type\":\"int64\",\"id\":1}},\"comment\":null},\"StringValue\":{\"fields\":{\"value\":{\"type\":\"string\",\"id\":1}},\"comment\":null},\"UInt32Value\":{\"fields\":{\"value\":{\"type\":\"uint32\",\"id\":1}},\"comment\":null},\"UInt64Value\":{\"fields\":{\"value\":{\"type\":\"uint64\",\"id\":1}},\"comment\":null}}}}}}}");
52
+ export const schemaJson = JSON.parse("{\"nested\":{\"dxos\":{\"nested\":{\"credentials\":{\"nested\":{\"auth\":{\"nested\":{\"Auth\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":\"The publicKey of the target Party for these credentials.\"},\"deviceKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":\"The publicKey of the authenticating Device.\"},\"identityKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":\"The publicKey of the authenticating Identity.\"},\"feedKey\":{\"type\":\"PubKey\",\"id\":4,\"comment\":\"The publicKey of the authenticating Identity.\"},\"feedAdmit\":{\"type\":\"google.protobuf.Any\",\"id\":5,\"comment\":\"FeedAdmit message to the should be written to a control feed in case the `feedKey` is not admitted to the party.\"}},\"comment\":\"The payload for a SignedMessage sent during handshake for replication authentication.\"}}},\"greet\":{\"nested\":{\"BeginResponse\":{\"fields\":{\"info\":{\"keyType\":\"string\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"ClaimResponse\":{\"fields\":{\"id\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"rendezvousKey\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Command\":{\"fields\":{\"command\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"secret\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"params\":{\"rule\":\"repeated\",\"type\":\"google.protobuf.Any\",\"id\":10,\"comment\":null}},\"nested\":{\"Type\":{\"values\":{\"BEGIN\":0,\"HANDSHAKE\":1,\"NOTARIZE\":2,\"FINISH\":3,\"CLAIM\":10},\"comment\":null,\"comments\":{\"BEGIN\":null,\"HANDSHAKE\":null,\"NOTARIZE\":null,\"FINISH\":null,\"CLAIM\":null}}},\"comment\":\"A Greeter command.\"},\"HandshakeResponse\":{\"fields\":{\"nonce\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"partyKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"KeyHint\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"type\":{\"type\":\"KeyType\",\"id\":2,\"comment\":null}},\"comment\":null},\"NotarizeResponse\":{\"fields\":{\"copies\":{\"rule\":\"repeated\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null},\"genesisFeed\":{\"type\":\"PubKey\",\"id\":3,\"comment\":null}},\"comment\":null}}},\"identity\":{\"nested\":{\"DeviceInfo\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"IdentityInfo\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"Message\":{\"fields\":{\"payload\":{\"rule\":\"required\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"party\":{\"nested\":{\"Envelope\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"message\":{\"type\":\"Message\",\"id\":2,\"comment\":null}},\"comment\":null},\"FeedAdmit\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"feedKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"FeedGenesis\":{\"fields\":{\"feedKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"ownerKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"KeyAdmit\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"admitKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"admitKeyType\":{\"type\":\"KeyType\",\"id\":3,\"comment\":null}},\"comment\":null},\"PartyCredential\":{\"oneofs\":{\"contents\":{\"oneof\":[\"envelope\",\"partyGenesis\",\"keyAdmit\",\"feedAdmit\",\"feedGenesis\"],\"comment\":null}},\"fields\":{\"type\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"envelope\":{\"type\":\"Envelope\",\"id\":10,\"comment\":null},\"partyGenesis\":{\"type\":\"PartyGenesis\",\"id\":11,\"comment\":null},\"keyAdmit\":{\"type\":\"KeyAdmit\",\"id\":12,\"comment\":null},\"feedAdmit\":{\"type\":\"FeedAdmit\",\"id\":13,\"comment\":null},\"feedGenesis\":{\"type\":\"FeedGenesis\",\"id\":14,\"comment\":null}},\"nested\":{\"Type\":{\"values\":{\"ENVELOPE\":0,\"PARTY_GENESIS\":1,\"FEED_GENESIS\":2,\"KEY_ADMIT\":3,\"FEED_ADMIT\":4},\"comment\":null,\"comments\":{\"ENVELOPE\":null,\"PARTY_GENESIS\":null,\"FEED_GENESIS\":null,\"KEY_ADMIT\":null,\"FEED_ADMIT\":null}}},\"comment\":null},\"PartyGenesis\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"feedKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"admitKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":null},\"admitKeyType\":{\"type\":\"KeyType\",\"id\":4,\"comment\":null}},\"comment\":null},\"PartyInvitation\":{\"fields\":{\"id\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"partyKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"issuerKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":null},\"inviteeKey\":{\"type\":\"PubKey\",\"id\":4,\"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)\"}}},\"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},\"BoolValue\":{\"fields\":{\"value\":{\"type\":\"bool\",\"id\":1}},\"comment\":null},\"BytesValue\":{\"fields\":{\"value\":{\"type\":\"bytes\",\"id\":1}},\"comment\":null},\"DoubleValue\":{\"fields\":{\"value\":{\"type\":\"double\",\"id\":1}},\"comment\":null},\"FloatValue\":{\"fields\":{\"value\":{\"type\":\"float\",\"id\":1}},\"comment\":null},\"Int32Value\":{\"fields\":{\"value\":{\"type\":\"int32\",\"id\":1}},\"comment\":null},\"Int64Value\":{\"fields\":{\"value\":{\"type\":\"int64\",\"id\":1}},\"comment\":null},\"StringValue\":{\"fields\":{\"value\":{\"type\":\"string\",\"id\":1}},\"comment\":null},\"UInt32Value\":{\"fields\":{\"value\":{\"type\":\"uint32\",\"id\":1}},\"comment\":null},\"UInt64Value\":{\"fields\":{\"value\":{\"type\":\"uint64\",\"id\":1}},\"comment\":null}}}}}}}");
53
53
  export const schema = Schema.fromJson<TYPES, SERVICES>(schemaJson, substitutions);