From 6fab74e9c421dc55e54fd51aafac91f5128aa229 Mon Sep 17 00:00:00 2001 From: Robert Cronin Date: Mon, 24 Aug 2020 14:08:05 +0800 Subject: [PATCH 1/2] Expand Testing - Source Files --- README.md | 246 +++++++++++----- package.json | 4 +- proto/Agent.proto | 3 +- scripts/compile_proto.sh | 6 +- src/cli/Agent.ts | 9 - src/cli/Crypto.ts | 12 +- src/cli/Keys.ts | 10 +- src/cli/Secrets.ts | 128 ++++---- src/cli/Vaults.ts | 1 - src/lib/agent/PolykeyAgent.ts | 59 ++-- src/lib/agent/PolykeyClient.ts | 66 +++-- src/lib/git/GitBackend.ts | 124 ++++---- src/lib/git/GitFrontend.ts | 62 ++++ src/lib/git/{GitClient.ts => GitRequest.ts} | 65 +--- src/lib/keys/KeyManager.ts | 38 ++- src/lib/keys/KeyManagerWorker.ts | 5 +- src/lib/peers/PeerManager.ts | 30 +- src/lib/vaults/Vault.ts | 4 +- src/lib/vaults/VaultManager.ts | 8 +- tests/cli/CLI.test.ts | 303 +++++++++++++++++++ tests/lib/agent/Agent.test.ts | 207 +++++++++++-- tests/lib/git/Git.test.ts | 194 ++++++++++++ tests/lib/keys/KeyManager.test.ts | 84 ++++++ tests/lib/peers/PKI.test.ts | 47 +++ tests/lib/peers/PeerManager.test.ts | 90 ++++++ tests/lib/vaults/Vaults.test.ts | 311 ++++++++++++++++++++ typedoc.js | 16 +- 27 files changed, 1710 insertions(+), 422 deletions(-) create mode 100644 src/lib/git/GitFrontend.ts rename src/lib/git/{GitClient.ts => GitRequest.ts} (52%) create mode 100644 tests/cli/CLI.test.ts create mode 100644 tests/lib/git/Git.test.ts create mode 100644 tests/lib/keys/KeyManager.test.ts create mode 100644 tests/lib/peers/PKI.test.ts create mode 100644 tests/lib/peers/PeerManager.test.ts create mode 100644 tests/lib/vaults/Vaults.test.ts diff --git a/README.md b/README.md index 4e212f8ff..ee57848d0 100644 --- a/README.md +++ b/README.md @@ -44,24 +44,29 @@ Here is a demo of the CLI on [asciinema](https://asciinema.org/a/347434). The PolyKey CLI exposes various git-style sub commands that can be used to manipulate the PolyKey node:
+Usage: polykey [options] [command]
+
+Options:
+  --version       output the current version
+  -h, --help      display help for command
+
 Commands:
-  config [options]  configure polykey
-  keymanager        manipulate the keymanager
-  node              network operations on the current polykey node
-  secrets           manipulate secrets for a given vault
-  vaults            manipulate vaults
-  crypto            crypto operations
-  help [command]    display help for command
+  keys            manipulate keys
+  secrets         manipulate secrets for a given vault
+  vaults          manipulate vaults
+  crypto          crypto operations
+  agent           control the polykey agent
+  help [command]  display help for command
 
Usage looks like the following:
-polykey node ...
+polykey agent ...
 polykey vaults ...
 
 # Sub commands are heirarchical like so:
-polykey vaults add ...
-polykey secrets remove ...
+polykey vaults new ...
+polykey secrets delete ...
 
PolyKey also exposes a helpful alias, `pk`, to make typing out commands a little quicker: @@ -75,122 +80,203 @@ If you ever get stuck, every sub command has a help flag: # Either one of -h or --help will do pk -h pk vaults --help -pk secrets add -h +pk secrets new -h -## Config -With this command you can manipulate the configuration of PolyKey including changing the password, importing new private and public keys and changing the path to polykey. +## Agent +With this command you can manipulate the polykey agent including starting/restarting/stopping the agent, creating/importing a new polykey node, and getting the agent status.
+Usage: polykey agent [options] [command]
+
+control the polykey agent
+
 Options:
-  -pub, --public-key                    provide the path to an existing public key
-  -priv, --private-key                 provide the path to an existing private key
-  -pass, --private-passphrase   provide the passphrase to the private key
-  -path, --polykey-path               provide the polykey path. defaults to ~/.polykey
-  -v, --verbose                                    increase verbosity by one level
+  -h, --help         display help for command
+
+Commands:
+  start [options]    start the agent
+  restart [options]  restart the agent
+  status             retrieve the status of the agent
+  stop [options]     stop the agent
+  list|ls [options]  list all the nodes controlled by the node
+  create [options]   create a new polykey node
+  load [options]     load an existing polykey node
+  help [command]     display help for command
 
Example usage:
-# Change the location of PolyKey, perhaps to another node on the same computer
-pk config --polykey-path='~/PolyKeyNode2'
+# managing the polykey agent
+pk agent stop
+pk agent start
+# restart the agent as a daemon
+pk agent restart -d
+pk agent status # agent status is 'online'
 
-# Import a new public key
-pk config -pub ./keys/publicKey.txt
-
+# create a new polykey node +pk agent create -k '~/NewPolykeyNode' -n 'John Smith' -e 'john@email.com' -p 'passphrase' -You can also easily clear the config to start fresh: -
-pk config clear
-
-If one of the required configuration parameters is missing from the config store, PolyKey will prompt you for it on the next command. +# load an existing node +pk agent load -k '~/NewPolykeyNode' -p 'passphrase' -## KeyManager -This command is used to interact with PolyKey's KeyManager. With this command you can generate new keys, import keys and more. -TODO: add commands to interact with the keymanager -
-Commands:
-  derive [options]  manipulate the keymanager
+# list the nodes managed by agent
+pk agent list # ~/NewPolykeyNode
 
-## Node -The node sub command lets you control the daemon responsible for network operations. +Note: Polykey also provides the ability to set an environment variable, `KEYNODE_PATH`, instead of specifying the node path with `-k '~/NewPolykeyNode'` + +## Keys +This command is used to interact with PolyKey's KeyManager. With this command you can generate new keys, list keys and more.
+Usage: polykey keys [options] [command]
+
+manipulate keys
+
+Options:
+  -h, --help         display help for command
+
 Commands:
-  start           start the polykey node
-  stop            stop the polykey node
+  new [options]      derive a new symmetric key
+  delete [options]   delete a symmetric key from the key manager
+  list|ls [options]  list all symmetric keys in the keynode
+  get [options]      get the contents of a specific symmetric key
+  primary [options]  get the contents of the primary keypair
+  help [command]     display help for command
 
- -TODO: add commands to interact with the node +Example usage:
+# create a new key
+pk keys new -n 'NewKey' -p 'Key Passphrase'
+
+# deleting an existing key
+pk keys delete -n 'NewKey'
+
+# list all existing keys
+pk keys list # 'NewKey'
+
+# list primary key with private key included
+pk keys primary -p
+# Public Key:
+# -----BEGIN PGP PUBLIC KEY BLOCK-----
+# ...
+# -----END PGP PUBLIC KEY BLOCK-----
+#
+# Private Key:
+# -----BEGIN PGP PRIVATE KEY BLOCK-----
+# ...
+# -----END PGP PRIVATE KEY BLOCK-----
 
## Vaults The vaults sub command lets you manipulate vaults, e.g. to list the existing vaults, add a new vault or destroy an old vault.
+Usage: polykey vaults [options] [command]
+
+manipulate vaults
+
+Options:
+  -h, --help            display help for command
+
 Commands:
-  list|ls [options]  list all available vaults
-  add                create new vault(s)
-  remove [options]   destroy an existing vault
+  list|ls [options]     list all available vaults
+  new [options]         create new vault(s)
+  delete|del [options]  delete an existing vault
+  help [command]        display help for command
 
-Command examples: +Example usage:
-# List names of all existing vaults
-pk vaults ls
-
-# Create a new vault called 'SecureVault'
-pk vaults add 'SecureVault'
+# create a new vault
+pk vaults add 'NewVault'
 
-# Remove 'SecureVault'
-pk vaults remove --vault-name='SecureVault'
+# list all existing vaults
+pk vaults ls # 'NewVault'
 
-# Remove all vaults at once
-pk vaults remove -a
+# delete a vault
+pk vaults delete 'NewVault'
 
## Secrets -The secrets sub command lets you manipulate secrets in a specific vault including to add new secrets, remove old secrets and modify existing secrets. +The secrets sub command lets you manipulate secrets in a specific vault such as adding new secrets, removing old secrets or modifying existing secrets. In addition, polykey can inject variables into a modified environment with the `pk secrets env` command.
+Usage: polykey secrets [options] [command]
+
+manipulate secrets for a given vault
+
+Options:
+  -h, --help            display help for command
+
 Commands:
-  list|ls [options]  list all available secrets for a given vault
-  add [options]      add a secret to a given vault
-  remove [options]   remove a secret from a given vault
+  list|ls [options]     list all available secrets for a given vault
+  new [options]         create a secret within a given vault, specify an secret
+                        path with '<vaultName>:<secretName>'
+  update [options]      update a secret within a given vault, specify an secret
+                        path with '<vaultName>:<secretName>'
+  delete|del [options]  delete a secret from a given vault, specify an secret
+                        path with '<vaultName>:<secretName>'
+  get [options]         retrieve a secret from a given vault, specify an secret
+                        path with '<vaultName>:<secretName>'
+  env [options]         run a modified environment with injected secrets,
+                        specify an secret path with '<vaultName>:<secretName>'
+  help [command]        display help for command
 
-Command examples: +Example usage:
-# List names of all secrets within 'SecureVault'
-pk secrets list --vault-name='SecureVault'
+# add a new secret
+pk secrets add -f '~/SeretFile' NewVault:NewSecret
 
-# Add a new secret named 'Secret' to 'SecureVault
-pk secrets add --vault-name='SecureVault' --secret-name='Secret'
+# list names of all secrets within specific vaults
+pk secrets list NewVault AnotherVault
+# 1. NewVault:NewSecret
+# 2. AnotherVault:AnotherSecret
 
-# Remove 'Secret' from 'SecureVault'
-pk secrets remove --vault-name='SecureVault' --secret-name='Secret'
+# delete secrets
+pk secrets delete NewVault:NewSecret AnotherVault:AnotherSecret
+
+# retreive a secret
+pk secrets get NewVault:NewSecret
+# <NewSecretContent>
+
+# enter a modified environment with injected secrets
+pk secrets env NewVault:NewSecret=SECRET_1 AnotherVault:AnotherSecret=SECRET_2
+
+# enter a modified environment with injected secrets and execute a command
+pk secrets env NewVault:NewSecret=SECRET_1 --command="echo $SECRET_1"
 
## Crypto The crypto sub command allows you to perform asymmetric cryptography operations (sign/encrypt/verify/decrypt) on files using the loaded public/prvate keypair. -PolyKey signs and verifies files using a [detached signature](https://en.wikipedia.org/wiki/Detached_signature) -TODO: add encryption and decryption -``` -Commands: - sign [options] verification operations - verify [options] signing operations -``` -Command examples: -``` -pk crypto sign ./file --signing-key='./my_priv_key' --key-passphrase='password' +
+Usage: polykey crypto [options] [command]
 
-# If no signing key is provided, polykey will use the loaded private key
-pk crypto sign ./file
+crypto operations
 
+Options:
+  -h, --help         display help for command
 
-pk crypto verify ./signed_file --verifying-key='./my_pub_key' --detach-sig='./signed_file.sig'
+Commands:
+  verify [options]   verification operations
+  sign [options]     signing operations [files]
+  encrypt [options]  encryption operations
+  decrypt [options]  decryption operations
+  help [command]     display help for command
+
-# If no verifying key is provided, polykey will use the loaded public key -pk crypto verify ./signed_file --detach-sig='./signed_file.sig' -``` +Example usage: +
+# sign a file and store as a detached signature
+pk crypto sign ./file # creates ./file.sig
+
+# verify a file
+pk crypto verify -f ./file.sig
+
+# encrypt a file
+pk crypto encrypt ./file
+
+# decrypt a file
+pk crypto decrypt ./file
+
## Verbosity TODO: explain verbosity levels when it is implemented diff --git a/package.json b/package.json index 1fd87c5b7..4b3796ed5 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "build:documentation": "typedoc", "build:all": "npm run build:proto && npm run build:webpack && npm run build:documentation", "generate:sslcerts": "./scripts/generate_ssl_certs.sh", - "test": "jest", + "test": "npm run build:proto && npm run build:webpack && jest", "lint": "eslint '{src,tests}/**/*.{js,ts}' --quiet --fix", "npm:version:patch": "./scripts/npm_version_patch.sh" }, @@ -67,7 +67,7 @@ "futoin-hkdf": "^1.3.2", "google-auth-library": "^6.0.5", "google-protobuf": "^4.0.0-rc.2", - "isomorphic-git": "^1.5.0", + "isomorphic-git": "^1.7.4", "kbpgp": "^2.0.82", "keybase-bot": "^3.6.1", "node-forge": "^0.9.1", diff --git a/proto/Agent.proto b/proto/Agent.proto index ab5433f2a..eba2dae2c 100644 --- a/proto/Agent.proto +++ b/proto/Agent.proto @@ -77,8 +77,7 @@ message SignFileResponseMessage { // ==== VerifyFile ==== // message VerifyFileRequestMessage { string file_path = 1; - string signature_path = 2; - string public_key_path = 3; + string public_key_path = 2; } message VerifyFileResponseMessage { bool verified = 1; diff --git a/scripts/compile_proto.sh b/scripts/compile_proto.sh index 88e683737..df98c1b21 100755 --- a/scripts/compile_proto.sh +++ b/scripts/compile_proto.sh @@ -1,8 +1,8 @@ #!/usr/bin/env bash # This script will compile type definitions and JavaScript files for each of the proto files contained within /proto -rm -r proto/js -mkdir proto/js +rm -rf proto/js +mkdir -p proto/js for filepath in proto/*.proto; do filename=$(basename "$filepath" .proto) @@ -10,5 +10,5 @@ for filepath in proto/*.proto; do pbjs -t static-module -w commonjs --no-beautify --no-convert --no-verify --no-delimited -o proto/js/$filename.js $filepath # Compiles type definition files from JavaScript files - pbts -o proto/js/$filename.d.ts proto/js/$filename.js + pbts -o proto/js/$filename.d.ts proto/js/$filename.js -n $filename done diff --git a/src/cli/Agent.ts b/src/cli/Agent.ts index f4aa0f023..24558b512 100644 --- a/src/cli/Agent.ts +++ b/src/cli/Agent.ts @@ -19,7 +19,6 @@ function makeStartAgentCommand() { const pid = await PolykeyAgent.startAgent(daemon); pkLogger(`agent has started with pid of ${pid}`, PKMessageType.SUCCESS); } - process.exit(); }), ); } @@ -36,7 +35,6 @@ function makeRestartAgentCommand() { const daemon: boolean = options.daemon; const pid = await PolykeyAgent.startAgent(daemon); pkLogger(`agent has restarted with pid of ${pid}`, PKMessageType.SUCCESS); - process.exit(); }), ); } @@ -47,7 +45,6 @@ function makeAgentStatusCommand() { const client = PolykeyAgent.connectToAgent(); const status = await client.getAgentStatus(); pkLogger(`agent status is: '${status}'`, PKMessageType.INFO); - process.exit(); }), ); } @@ -76,7 +73,6 @@ function makeStopAgentCommand() { throw Error('agent failed to stop'); } } - process.exit(); }), ); } @@ -98,7 +94,6 @@ function makeListNodesCommand() { pkLogger(node, PKMessageType.INFO); } } - process.exit(); }), ); } @@ -127,8 +122,6 @@ function makeNewNodeCommand() { } else { throw Error('something went wrong with node creation'); } - - process.exit(); }), ); } @@ -150,8 +143,6 @@ function makeLoadNodeCommand() { } else { throw Error('something went wrong when loading node'); } - - process.exit(); }), ); } diff --git a/src/cli/Crypto.ts b/src/cli/Crypto.ts index 8263db454..4b39d3cda 100644 --- a/src/cli/Crypto.ts +++ b/src/cli/Crypto.ts @@ -47,8 +47,7 @@ function makeVerifyCommand() { '-k, --public-key ', 'path to public key that will be used to verify files, defaults to primary key', ) - .option('-s, --detach-sig ', 'path to detached signature for file, defaults to [filename].sig') - .requiredOption('-f, --verified-file ', 'file to be verified') + .requiredOption('-f, --signed-file ', 'file to be verified') .action( actionRunner(async (options) => { const client = PolykeyAgent.connectToAgent(); @@ -60,9 +59,8 @@ function makeVerifyCommand() { const nodePath = determineNodePath(options); const publicKey = options.publicKey; const filePath = options.signedFile; - const signaturePath = options.detachSig ?? filePath + '.sig'; - const verified = await client.verifyFile(nodePath, filePath, signaturePath); + const verified = await client.verifyFile(nodePath, filePath, publicKey); if (verified) { pkLogger(`file '${filePath}' was successfully verified`, PKMessageType.SUCCESS); } else { @@ -91,7 +89,7 @@ function makeEncryptCommand() { const nodePath = determineNodePath(options); const publicKey = options.publicKey; - const filePath = options.filePath + const filePath = options.filePath; try { const encryptedPath = await client.encryptFile(nodePath, filePath, publicKey); @@ -124,7 +122,7 @@ function makeDecryptCommand() { const privateKey = options.privateKey; const keyPassphrase = options.keyPassphrase; - const filePath = options.filePath + const filePath = options.filePath; try { const decryptedPath = await client.decryptFile(nodePath, filePath, privateKey, keyPassphrase); @@ -142,7 +140,7 @@ function makeCryptoCommand() { .addCommand(makeVerifyCommand()) .addCommand(makeSignCommand()) .addCommand(makeEncryptCommand()) - .addCommand(makeDecryptCommand()) + .addCommand(makeDecryptCommand()); } export default makeCryptoCommand; diff --git a/src/cli/Keys.ts b/src/cli/Keys.ts index 46fad5025..ea50f1d87 100644 --- a/src/cli/Keys.ts +++ b/src/cli/Keys.ts @@ -34,7 +34,7 @@ function makeDeleteKeyCommand() { const successful = await client.deleteKey(nodePath, keyName); pkLogger( - `key '${keyName}' was ${successful ? '' : 'un-'}sucessfully deleted`, + `key '${keyName}' was ${successful ? '' : 'un-'}successfully deleted`, successful ? PKMessageType.SUCCESS : PKMessageType.INFO, ); }), @@ -93,14 +93,14 @@ function makeListPrimaryKeyPairCommand() { if (outputJson) { pkLogger(JSON.stringify(keypair), PKMessageType.INFO); } else { - pkLogger("Public Key:", PKMessageType.SUCCESS); + pkLogger('Public Key:', PKMessageType.SUCCESS); pkLogger(keypair.publicKey, PKMessageType.INFO); if (privateKey) { - pkLogger("Private Key:", PKMessageType.SUCCESS); + pkLogger('Private Key:', PKMessageType.SUCCESS); pkLogger(keypair.privateKey, PKMessageType.INFO); } } - }) + }), ); } @@ -111,7 +111,7 @@ function makeKeyManagerCommand() { .addCommand(makeDeleteKeyCommand()) .addCommand(makeListKeysCommand()) .addCommand(makeGetKeyCommand()) - .addCommand(makeListPrimaryKeyPairCommand()) + .addCommand(makeListPrimaryKeyPairCommand()); } export default makeKeyManagerCommand; diff --git a/src/cli/Secrets.ts b/src/cli/Secrets.ts index 6637984b3..39ba46b09 100644 --- a/src/cli/Secrets.ts +++ b/src/cli/Secrets.ts @@ -4,8 +4,7 @@ import { spawn, ChildProcess, exec } from 'child_process'; import { PolykeyAgent } from '../lib/Polykey'; import { actionRunner, pkLogger, PKMessageType, determineNodePath } from '.'; - -const pathRegex = /^([a-zA-Z0-9_ -]+)(?::)([a-zA-Z0-9_ -]+)(?:=)?([a-zA-Z_][a-zA-Z0-9_]+)?$/ +const pathRegex = /^([a-zA-Z0-9_ -]+)(?::)([a-zA-Z0-9_ -]+)(?:=)?([a-zA-Z_][a-zA-Z0-9_]+)?$/; function makeListSecretsCommand() { return new commander.Command('list') @@ -23,10 +22,9 @@ function makeListSecretsCommand() { const vaultNames: string[] = Array.from(options.args.values()); if (!vaultNames.length) { - throw Error('no vault names provided') + throw Error('no vault names provided'); } - for (const vaultName of vaultNames) { // Get list of secrets from pk const secretNames = await client.listSecrets(nodePath, vaultName); @@ -49,7 +47,7 @@ function makeListSecretsCommand() { function makeNewSecretCommand() { return new commander.Command('new') - .description('create a secret within a given vault') + .description("create a secret within a given vault, specify a secret path with ':'") .option('--node-path ', 'node path') .arguments("secret path of the format ':'") .requiredOption('-f, --file-path ', 'path to the secret to be added') @@ -60,20 +58,20 @@ function makeNewSecretCommand() { const nodePath = determineNodePath(options); const isVerbose: boolean = options.verbose ?? false; - const secretPath: string[] = Array.from(options.args.values()) + const secretPath: string[] = Array.from(options.args.values()); if (secretPath.length < 1 || (secretPath.length == 1 && !pathRegex.test(secretPath[0]))) { - throw Error("please specify a new secret name using the format: ':'") + throw Error("please specify a new secret name using the format: ':'"); } else if (secretPath.length > 1) { - throw Error('you can only add one secret at a time') + throw Error('you can only add one secret at a time'); } - const firstEntry = secretPath[0] - const [_, vaultName, secretName] = firstEntry.match(pathRegex)! + const firstEntry = secretPath[0]; + const [_, vaultName, secretName] = firstEntry.match(pathRegex)!; const filePath: string = options.filePath; try { // Add the secret const successful = await client.createSecret(nodePath, vaultName, secretName, filePath); pkLogger( - `secret '${secretName}' was ${successful ? '' : 'un-'}sucessfully added to vault '${vaultName}'`, + `secret '${secretName}' was ${successful ? '' : 'un-'}successfully added to vault '${vaultName}'`, PKMessageType.SUCCESS, ); } catch (err) { @@ -85,7 +83,7 @@ function makeNewSecretCommand() { function makeUpdateSecretCommand() { return new commander.Command('update') - .description('update a secret within a given vault') + .description("update a secret within a given vault, specify a secret path with ':'") .option('--node-path ', 'node path') .arguments("secret path of the format ':'") .requiredOption('-f, --file-path ', 'path to the new secret') @@ -96,20 +94,20 @@ function makeUpdateSecretCommand() { const nodePath = determineNodePath(options); const isVerbose: boolean = options.verbose ?? false; - const secretPath: string[] = Array.from(options.args.values()) + const secretPath: string[] = Array.from(options.args.values()); if (secretPath.length < 1 || (secretPath.length == 1 && !pathRegex.test(secretPath[0]))) { - throw Error("please specify the secret using the format: ':'") + throw Error("please specify the secret using the format: ':'"); } else if (secretPath.length > 1) { - throw Error('you can only update one secret at a time') + throw Error('you can only update one secret at a time'); } - const firstEntry = secretPath[0] - const [_, vaultName, secretName] = firstEntry.match(pathRegex)! + const firstEntry = secretPath[0]; + const [_, vaultName, secretName] = firstEntry.match(pathRegex)!; const filePath: string = options.filePath; try { // Update the secret const successful = await client.updateSecret(nodePath, vaultName, secretName, filePath); pkLogger( - `secret '${secretName}' was ${successful ? '' : 'un-'}sucessfully updated in vault '${vaultName}'`, + `secret '${secretName}' was ${successful ? '' : 'un-'}successfully updated in vault '${vaultName}'`, successful ? PKMessageType.SUCCESS : PKMessageType.WARNING, ); } catch (err) { @@ -122,7 +120,7 @@ function makeUpdateSecretCommand() { function makeDeleteSecretCommand() { return new commander.Command('delete') .alias('del') - .description('delete a secret from a given vault') + .description("delete a secret from a given vault, specify a secret path with ':'") .arguments("secret path of the format ':'") .option('--verbose', 'increase verbosity level by one') .action( @@ -131,19 +129,19 @@ function makeDeleteSecretCommand() { const nodePath = determineNodePath(options); const isVerbose: boolean = options.verbose ?? false; - const secretPath: string[] = Array.from(options.args.values()) + const secretPath: string[] = Array.from(options.args.values()); if (secretPath.length < 1 || (secretPath.length == 1 && !pathRegex.test(secretPath[0]))) { - throw Error("please specify the secret using the format: ':'") + throw Error("please specify the secret using the format: ':'"); } else if (secretPath.length > 1) { - throw Error('you can only delete one secret at a time') + throw Error('you can only delete one secret at a time'); } - const firstEntry = secretPath[0] - const [_, vaultName, secretName] = firstEntry.match(pathRegex)! + const firstEntry = secretPath[0]; + const [_, vaultName, secretName] = firstEntry.match(pathRegex)!; try { // Remove secret const successful = await client.destroySecret(nodePath, vaultName, secretName); pkLogger( - `secret '${secretName}' was ${successful ? '' : 'un-'}sucessfully removed from vault '${vaultName}'`, + `secret '${secretName}' was ${successful ? '' : 'un-'}successfully removed from vault '${vaultName}'`, PKMessageType.SUCCESS, ); } catch (err) { @@ -155,7 +153,7 @@ function makeDeleteSecretCommand() { function makeGetSecretCommand() { return new commander.Command('get') - .description('retrieve a secret from a given vault') + .description("retrieve a secret from a given vault, specify a secret path with ':'") .arguments("secret path of the format ':'") .option('-e, --env', 'wrap the secret in an environment variable declaration') .action( @@ -165,22 +163,19 @@ function makeGetSecretCommand() { const isEnv: boolean = options.env ?? false; const isVerbose: boolean = options.verbose ?? false; - const secretPath: string[] = Array.from(options.args.values()) + const secretPath: string[] = Array.from(options.args.values()); if (secretPath.length < 1 || (secretPath.length == 1 && !pathRegex.test(secretPath[0]))) { - throw Error("please specify the secret using the format: ':'") + throw Error("please specify the secret using the format: ':'"); } else if (secretPath.length > 1) { - throw Error('you can only get one secret at a time') + throw Error('you can only get one secret at a time'); } - const firstEntry = secretPath[0] - const [_, vaultName, secretName] = firstEntry.match(pathRegex)! + const firstEntry = secretPath[0]; + const [_, vaultName, secretName] = firstEntry.match(pathRegex)!; try { // Retrieve secret const secret = await client.getSecret(nodePath, vaultName, secretName); if (isEnv) { - pkLogger( - `export ${secretName.toUpperCase().replace('-', '_')}='${secret.toString()}'`, - PKMessageType.none - ); + pkLogger(`export ${secretName.toUpperCase().replace('-', '_')}='${secret.toString()}'`, PKMessageType.none); } else { pkLogger(secret.toString(), PKMessageType.none); } @@ -194,13 +189,23 @@ function makeGetSecretCommand() { function makeSecretEnvCommand() { return new commander.Command('env') .storeOptionsAsProperties(false) - .description('run a modified environment with injected secrets') - .option('--command ', 'In the environment of the derivation, run the shell command cmd. This command is executed in an interactive shell. (Use --run to use a non-interactive shell instead.)') - .option('--run ', 'Like --command, but executes the command in a non-interactive shell. This means (among other things) that if you hit Ctrl-C while the command is running, the shell exits.') - .arguments("secrets to inject into env, of the format ':'. you can also control what the environment variable will be called using ':=', defaults to upper, snake case of the original secret name.") + .description( + "run a modified environment with injected secrets, specify a secret path with ':'", + ) + .option( + '--command ', + 'In the environment of the derivation, run the shell command cmd. This command is executed in an interactive shell. (Use --run to use a non-interactive shell instead.)', + ) + .option( + '--run ', + 'Like --command, but executes the command in a non-interactive shell. This means (among other things) that if you hit Ctrl-C while the command is running, the shell exits.', + ) + .arguments( + "secrets to inject into env, of the format ':'. you can also control what the environment variable will be called using ':=', defaults to upper, snake case of the original secret name.", + ) .action( actionRunner(async (cmd) => { - const options = cmd.opts() + const options = cmd.opts(); const client = PolykeyAgent.connectToAgent(); const nodePath = determineNodePath(options); @@ -209,60 +214,59 @@ function makeSecretEnvCommand() { const command: string | undefined = options.command; const run: string | undefined = options.run; - const secretPathList: string[] = Array.from(cmd.args.values()) - + const secretPathList: string[] = Array.from(cmd.args.values()); if (secretPathList.length < 1) { - throw Error("please specify at least one secret") + throw Error('please specify at least one secret'); } // Parse secret paths in list - const parsedPathList: { vaultName: string, secretName: string, variableName: string }[] = [] + const parsedPathList: { vaultName: string; secretName: string; variableName: string }[] = []; for (const path of secretPathList) { if (!pathRegex.test(path)) { - throw Error(`secret path was not of the format ':[=]': ${path}`) + throw Error(`secret path was not of the format ':[=]': ${path}`); } - const [_, vaultName, secretName, variableName] = path.match(pathRegex)! + const [_, vaultName, secretName, variableName] = path.match(pathRegex)!; parsedPathList.push({ vaultName, secretName, - variableName: variableName ?? secretName.toUpperCase().replace('-', '_') - }) + variableName: variableName ?? secretName.toUpperCase().replace('-', '_'), + }); } - const secretEnv = { ...process.env } + const secretEnv = { ...process.env }; try { // Get all the secrets for (const obj of parsedPathList) { const secret = await client.getSecret(nodePath, obj.vaultName, obj.secretName); - secretEnv[obj.variableName] = secret.toString() + secretEnv[obj.variableName] = secret.toString(); } } catch (err) { throw Error(`Error when retrieving secret: ${err.message}`); } try { - const shellPath = process.env.SHELL! - const args: string[] = [] + const shellPath = process.env.SHELL ?? "sh"; + const args: string[] = []; if (command && run) { - throw Error('only one of --command or --run can be specified') + throw Error('only one of --command or --run can be specified'); } else if (command) { - args.push('-i') - args.push('-c') - args.push(`"${command}"`) + args.push('-i'); + args.push('-c'); + args.push(`"${command}"`); } else if (run) { - args.push('-c') - args.push(`"${run}"`) + args.push('-c'); + args.push(`"${run}"`); } const shell = spawn(shellPath, args, { stdio: 'inherit', env: secretEnv, - shell: true - }) + shell: true, + }); shell.on('close', (code) => { if (code != 0) { - pkLogger(`polykey: environment terminated with code: ${code}`, PKMessageType.WARNING) + pkLogger(`polykey: environment terminated with code: ${code}`, PKMessageType.WARNING); } - }) + }); } catch (err) { throw Error(`Error when running environment: ${err.message}`); } diff --git a/src/cli/Vaults.ts b/src/cli/Vaults.ts index 28f1659ff..17760b4a8 100644 --- a/src/cli/Vaults.ts +++ b/src/cli/Vaults.ts @@ -69,7 +69,6 @@ function makeDeleteVaultCommand() { const successful = await client.destroyVault(nodePath, vaultName); pkLogger(`vault '${vaultName}' destroyed ${successful ? 'un-' : ''}successfully`, PKMessageType.SUCCESS); } - }), ); } diff --git a/src/lib/agent/PolykeyAgent.ts b/src/lib/agent/PolykeyAgent.ts index 2aa5b7a01..5bb317349 100644 --- a/src/lib/agent/PolykeyAgent.ts +++ b/src/lib/agent/PolykeyAgent.ts @@ -75,22 +75,23 @@ class PolykeyAgent { nodePathSet.delete(nodePath); this.persistentStore.set('nodePaths', Array.from(nodePathSet.values())); } + private getPolyKey(nodePath: string, failOnLocked: boolean = true): Polykey { - const pk = this.polykeyMap.get(nodePath) + const pk = this.polykeyMap.get(nodePath); if (this.polykeyMap.has(nodePath) && pk) { if (fs.existsSync(nodePath)) { if (failOnLocked && !pk.keyManager.identityLoaded) { - throw Error(`node path exists in memory but is locked: ${nodePath}`) + throw Error(`node path exists in memory but is locked: ${nodePath}`); } else { - return pk + return pk; } } else { - this.removeNodePath(nodePath) - throw Error(`node path exists in memory but does not exist on file system: ${nodePath}`) + this.removeNodePath(nodePath); + throw Error(`node path exists in memory but does not exist on file system: ${nodePath}`); } } else { - this.removeNodePath(nodePath) - throw Error(`node path does not exist in memory: ${nodePath}`) + this.removeNodePath(nodePath); + throw Error(`node path does not exist in memory: ${nodePath}`); } } @@ -150,6 +151,10 @@ class PolykeyAgent { } stop() { + this.polykeyMap.forEach((pk) => { + pk.peerManager.multicastBroadcaster.socket.close() + pk.peerManager.server.forceShutdown() + }) this.server.close(); } @@ -260,8 +265,9 @@ class PolykeyAgent { private async registerNode(nodePath: string, request: Uint8Array) { const { passphrase } = RegisterNodeRequestMessage.decode(request); - let pk: Polykey | undefined = this.getPolyKey(nodePath, false); - if (pk) { + let pk: Polykey; + if (this.polykeyMap.has(nodePath)) { + pk = this.getPolyKey(nodePath, false); if (pk.keyManager.identityLoaded) { throw Error(`node path is already loaded and unlocked: '${nodePath}'`); } @@ -273,9 +279,9 @@ class PolykeyAgent { pk = new Polykey(nodePath, fs, km); } // Load all metadata - await pk.keyManager.loadMetadata() - pk.peerManager.loadMetadata() - await pk.vaultManager.loadMetadata() + await pk.keyManager.loadMetadata(); + pk.peerManager.loadMetadata(); + await pk.vaultManager.loadMetadata(); // Set polykey class this.setPolyKey(nodePath, pk); @@ -350,7 +356,10 @@ class PolykeyAgent { const { includePrivateKey } = GetPrimaryKeyPairRequestMessage.decode(request); const pk = this.getPolyKey(nodePath); const keypair = pk.keyManager.getKeyPair(); - return GetPrimaryKeyPairResponseMessage.encode({ publicKey: keypair.public, privateKey: includePrivateKey ? keypair.private : undefined }).finish(); + return GetPrimaryKeyPairResponseMessage.encode({ + publicKey: keypair.public, + privateKey: includePrivateKey ? keypair.private : undefined, + }).finish(); } private async deleteKey(nodePath: string, request: Uint8Array) { const { keyName } = DeleteKeyRequestMessage.decode(request); @@ -369,9 +378,9 @@ class PolykeyAgent { return SignFileResponseMessage.encode({ signaturePath }).finish(); } private async verifyFile(nodePath: string, request: Uint8Array) { - const { filePath, signaturePath } = VerifyFileRequestMessage.decode(request); + const { filePath, publicKeyPath } = VerifyFileRequestMessage.decode(request); const pk = this.getPolyKey(nodePath); - const verified = await pk.keyManager.verifyFile(filePath, signaturePath); + const verified = await pk.keyManager.verifyFile(filePath, publicKeyPath); return VerifyFileResponseMessage.encode({ verified }).finish(); } private async encryptFile(nodePath: string, request: Uint8Array) { @@ -422,11 +431,11 @@ class PolykeyAgent { const { vaultName, secretName, secretPath, secretContent } = CreateSecretRequestMessage.decode(request); const pk = this.getPolyKey(nodePath); const vault = pk.vaultManager.getVault(vaultName); - let secretBuffer: Buffer + let secretBuffer: Buffer; if (secretPath) { secretBuffer = await fs.promises.readFile(secretPath); } else { - secretBuffer = Buffer.from(secretContent) + secretBuffer = Buffer.from(secretContent); } await vault.addSecret(secretName, secretBuffer); return CreateSecretResponseMessage.encode({ successful: true }).finish(); @@ -449,11 +458,11 @@ class PolykeyAgent { const { vaultName, secretName, secretPath, secretContent } = UpdateSecretRequestMessage.decode(request); const pk = this.getPolyKey(nodePath); const vault = pk.vaultManager.getVault(vaultName); - let secretBuffer: Buffer + let secretBuffer: Buffer; if (secretPath) { secretBuffer = await fs.promises.readFile(secretPath); } else { - secretBuffer = Buffer.from(secretContent) + secretBuffer = Buffer.from(secretContent); } await vault.updateSecret(secretName, secretBuffer); return UpdateSecretResponseMessage.encode({ successful: true }).finish(); @@ -477,7 +486,9 @@ class PolykeyAgent { static get SocketPath(): string { const platform = os.platform(); const userInfo = os.userInfo(); - if (platform == 'win32') { + if (process.env.PK_SOCKET_PATH) { + return process.env.PK_SOCKET_PATH; + } else if (platform == 'win32') { return path.join('\\\\?\\pipe', process.cwd(), 'polykey-agent'); } else { return `/run/user/${userInfo.uid}/polykey/S.polykey-agent`; @@ -487,7 +498,9 @@ class PolykeyAgent { public static get LogPath(): string { const platform = os.platform(); const userInfo = os.userInfo(); - if (platform == 'win32') { + if (process.env.PK_LOG_PATH) { + return process.env.PK_LOG_PATH; + } else if (platform == 'win32') { return path.join(os.tmpdir(), 'polykey', 'log'); } else { return `/run/user/${userInfo.uid}/polykey/log`; @@ -512,12 +525,14 @@ class PolykeyAgent { 'ipc', fs.openSync(path.join(PolykeyAgent.LogPath, 'output.log'), 'a'), fs.openSync(path.join(PolykeyAgent.LogPath, 'error.log'), 'a'), - ] + ], + silent: true, }; const agentProcess = fork(PolykeyAgent.DAEMON_SCRIPT_PATH, undefined, options); const pid = agentProcess.pid; agentProcess.unref(); + agentProcess.disconnect(); resolve(pid); } catch (err) { reject(err); diff --git a/src/lib/agent/PolykeyClient.ts b/src/lib/agent/PolykeyClient.ts index a3e85d889..eee20a816 100644 --- a/src/lib/agent/PolykeyClient.ts +++ b/src/lib/agent/PolykeyClient.ts @@ -63,7 +63,7 @@ class PolykeyClient { if (data instanceof Uint8Array) { responseList.push(data); } else { - responseList.push(...data) + responseList.push(...data); } }); stream.on('error', (err) => { @@ -115,9 +115,13 @@ class PolykeyClient { async registerNode(path: string, passphrase: string) { const registerNodeRequest = RegisterNodeRequestMessage.encode({ passphrase }).finish(); - const encodedResponse = await this.handleAgentCommunication(AgentMessageType.REGISTER_NODE, path, registerNodeRequest); + const encodedResponse = await this.handleAgentCommunication( + AgentMessageType.REGISTER_NODE, + path, + registerNodeRequest, + ); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.REGISTER_NODE)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.REGISTER_NODE)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -132,7 +136,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.NEW_NODE, path, newNodeRequest); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.NEW_NODE)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.NEW_NODE)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -147,7 +151,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_NODES, undefined, newNodeRequest); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.LIST_NODES)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.LIST_NODES)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -164,7 +168,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DERIVE_KEY, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.DERIVE_KEY)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.DERIVE_KEY)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -177,7 +181,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DELETE_KEY, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.DELETE_KEY)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.DELETE_KEY)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -190,7 +194,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_KEYS, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.LIST_KEYS)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.LIST_KEYS)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -203,7 +207,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_KEY, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.GET_KEY)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.GET_KEY)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -214,9 +218,13 @@ class PolykeyClient { async getPrimaryKeyPair(nodePath: string, includePrivateKey: boolean = false) { const request = GetPrimaryKeyPairRequestMessage.encode({ includePrivateKey }).finish(); - const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_PRIMARY_KEYPAIR, nodePath, request); + const encodedResponse = await this.handleAgentCommunication( + AgentMessageType.GET_PRIMARY_KEYPAIR, + nodePath, + request, + ); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.GET_PRIMARY_KEYPAIR)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.GET_PRIMARY_KEYPAIR)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -233,7 +241,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.SIGN_FILE, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.SIGN_FILE)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.SIGN_FILE)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -241,12 +249,12 @@ class PolykeyClient { const { signaturePath } = SignFileResponseMessage.decode(subMessage); return signaturePath; } - async verifyFile(nodePath: string, filePath: string, signaturePath?: string) { - const request = VerifyFileRequestMessage.encode({ filePath, signaturePath }).finish(); + async verifyFile(nodePath: string, filePath: string, publicKeyPath?: string) { + const request = VerifyFileRequestMessage.encode({ filePath, publicKeyPath }).finish(); const encodedResponse = await this.handleAgentCommunication(AgentMessageType.VERIFY_FILE, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.VERIFY_FILE)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.VERIFY_FILE)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -259,7 +267,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.ENCRYPT_FILE, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.ENCRYPT_FILE)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.ENCRYPT_FILE)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -272,7 +280,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DECRYPT_FILE, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.DECRYPT_FILE)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.DECRYPT_FILE)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -287,7 +295,7 @@ class PolykeyClient { async listVaults(nodePath: string) { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_VAULTS, nodePath); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.LIST_VAULTS)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.LIST_VAULTS)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -300,7 +308,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.NEW_VAULT, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.NEW_VAULT)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.NEW_VAULT)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -313,7 +321,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DESTROY_VAULT, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.DESTROY_VAULT)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.DESTROY_VAULT)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -329,7 +337,7 @@ class PolykeyClient { const request = ListSecretsRequestMessage.encode({ vaultName }).finish(); const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_SECRETS, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.LIST_SECRETS)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.LIST_SECRETS)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -338,7 +346,7 @@ class PolykeyClient { return secretNames; } async createSecret(nodePath: string, vaultName: string, secretName: string, secret: string | Buffer) { - let request: Uint8Array + let request: Uint8Array; if (typeof secret == 'string') { request = CreateSecretRequestMessage.encode({ vaultName, secretName, secretPath: secret }).finish(); } else { @@ -347,7 +355,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.CREATE_SECRET, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.CREATE_SECRET)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.CREATE_SECRET)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -360,7 +368,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DESTROY_SECRET, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.DESTROY_SECRET)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.DESTROY_SECRET)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -373,7 +381,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_SECRET, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.GET_SECRET)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.GET_SECRET)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -382,7 +390,7 @@ class PolykeyClient { return Buffer.from(secret); } async updateSecret(nodePath: string, vaultName: string, secretName: string, secret: string | Buffer) { - let request: Uint8Array + let request: Uint8Array; if (typeof secret == 'string') { request = UpdateSecretRequestMessage.encode({ vaultName, secretName, secretPath: secret }).finish(); } else { @@ -391,7 +399,7 @@ class PolykeyClient { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.UPDATE_SECRET, nodePath, request); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.UPDATE_SECRET)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.UPDATE_SECRET)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -407,7 +415,7 @@ class PolykeyClient { try { const encodedResponse = await this.handleAgentCommunication(AgentMessageType.STATUS); - const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.STATUS)?.subMessage + const subMessage = encodedResponse.find((r) => r.type == AgentMessageType.STATUS)?.subMessage; if (!subMessage) { throw Error('agent did not respond'); } @@ -418,7 +426,7 @@ class PolykeyClient { if ((err).toString().match(/ECONNRESET|ENOENT|ECONNRESET/)) { return 'stopped'; } - throw err + throw err; } } async stopAgent(): Promise { diff --git a/src/lib/git/GitBackend.ts b/src/lib/git/GitBackend.ts index 03e7b198b..cb48f23ed 100644 --- a/src/lib/git/GitBackend.ts +++ b/src/lib/git/GitBackend.ts @@ -1,4 +1,5 @@ -import Path from 'path'; +import path from 'path'; +import { EncryptedFS } from 'encryptedfs'; import { PassThrough } from 'readable-stream'; import VaultManager from '../vaults/VaultManager'; import uploadPack from './upload-pack/uploadPack'; @@ -16,97 +17,76 @@ import packObjects from './pack-objects/packObjects'; // We need someway to notify other agents about what vaults we have based on some type of authorisation because they don't explicitly know about them class GitBackend { - private polykeyPath: string; - private vaultManager: VaultManager; - constructor(polykeyPath: string, vaultManager: VaultManager) { - this.polykeyPath = polykeyPath; - this.vaultManager = vaultManager; - } + private repoDirectoryPath: string; + private getFileSystem: (repoName: string) => EncryptedFS; - /** - * Find out whether vault exists. - * @param vaultName Name of vault to check - * @param publicKey Public key of peer trying to access vault - */ - private exists(vaultName: string, publicKey: string) { - try { - const vault = this.vaultManager.getVault(vaultName); - if (vault) { - return vault.peerCanAccess(publicKey); - } - return false; - } catch (error) { - return false; - } + constructor(repoDirectoryPath: string, getFileSystem: (repoName: string) => any) { + this.repoDirectoryPath = repoDirectoryPath; + this.getFileSystem = getFileSystem; } - async handleInfoRequest(vaultName: string): Promise { + async handleInfoRequest(repoName: string): Promise { // Only handle upload-pack for now const service = 'upload-pack'; - const connectingPublicKey = ''; + const fileSystem = this.getFileSystem(repoName); const responseBuffers: Buffer[] = []; - if (!this.exists(vaultName, connectingPublicKey)) { - throw Error(`vault does not exist: '${vaultName}'`); - } else { - responseBuffers.push(Buffer.from(this.createGitPacketLine('# service=git-' + service + '\n'))); - responseBuffers.push(Buffer.from('0000')); + if (!fileSystem.existsSync(path.join(this.repoDirectoryPath, repoName))) { + throw Error(`repository does not exist: '${repoName}'`); + } - const fileSystem = this.vaultManager.getVault(vaultName)?.EncryptedFS; + responseBuffers.push(Buffer.from(this.createGitPacketLine('# service=git-' + service + '\n'))); + responseBuffers.push(Buffer.from('0000')); - const buffers = await uploadPack(fileSystem, Path.join(this.polykeyPath, vaultName), undefined, true); - const buffersToWrite = buffers ?? []; - responseBuffers.push(...buffersToWrite); - } + const buffers = await uploadPack(fileSystem, path.join(this.repoDirectoryPath, repoName), undefined, true); + const buffersToWrite = buffers ?? []; + responseBuffers.push(...buffersToWrite); return Buffer.concat(responseBuffers); } - async handlePackRequest(vaultName: string, body: Buffer): Promise { + async handlePackRequest(repoName: string, body: Buffer): Promise { // eslint-disable-next-line return new Promise(async (resolve, reject) => { const responseBuffers: Buffer[] = []; - // Check if vault exists - const connectingPublicKey = ''; - if (!this.exists(vaultName, connectingPublicKey)) { - throw Error(`vault does not exist: '${vaultName}'`); + const fileSystem = this.getFileSystem(repoName); + + // Check if repo exists + if (!fileSystem.existsSync(path.join(this.repoDirectoryPath, repoName))) { + throw Error(`repository does not exist: '${repoName}'`); } - const fileSystem = this.vaultManager.getVault(vaultName)?.EncryptedFS; - - if (fileSystem) { - if (body.toString().slice(4, 8) == 'want') { - const wantedObjectId = body.toString().slice(9, 49); - const packResult = await packObjects( - fileSystem, - Path.join(this.polykeyPath, vaultName), - [wantedObjectId], - undefined, - ); - - // This the 'wait for more data' line as I understand it - responseBuffers.push(Buffer.from('0008NAK\n')); - - // This is to get the side band stuff working - const readable = new PassThrough(); - const progressStream = new PassThrough(); - const sideBand = GitSideBand.mux('side-band-64', readable, packResult.packstream, progressStream, []); - sideBand.on('data', (data: Buffer) => { - responseBuffers.push(data); - }); - sideBand.on('end', () => { - resolve(Buffer.concat(responseBuffers)); - }); - sideBand.on('error', (err) => { - reject(err); - }); - - // Write progress to the client - progressStream.write(Buffer.from('0014progress is at 50%\n')); - progressStream.end(); - } + if (body.toString().slice(4, 8) == 'want') { + const wantedObjectId = body.toString().slice(9, 49); + const packResult = await packObjects( + fileSystem, + path.join(this.repoDirectoryPath, repoName), + [wantedObjectId], + undefined, + ); + + // This the 'wait for more data' line as I understand it + responseBuffers.push(Buffer.from('0008NAK\n')); + + // This is to get the side band stuff working + const readable = new PassThrough(); + const progressStream = new PassThrough(); + const sideBand = GitSideBand.mux('side-band-64', readable, packResult.packstream, progressStream, []); + sideBand.on('data', (data: Buffer) => { + responseBuffers.push(data); + }); + sideBand.on('end', () => { + resolve(Buffer.concat(responseBuffers)); + }); + sideBand.on('error', (err) => { + reject(err); + }); + + // Write progress to the client + progressStream.write(Buffer.from('0014progress is at 50%\n')); + progressStream.end(); } }); } diff --git a/src/lib/git/GitFrontend.ts b/src/lib/git/GitFrontend.ts new file mode 100644 index 000000000..fdcea689c --- /dev/null +++ b/src/lib/git/GitFrontend.ts @@ -0,0 +1,62 @@ +import * as grpc from '@grpc/grpc-js'; +import { Address } from '../peers/PeerInfo'; +import KeyManager from '../keys/KeyManager'; +import { GitServerClient } from '../../../proto/compiled/Git_grpc_pb'; +import { InfoRequest, PackRequest } from '../../../proto/compiled/Git_pb'; + +/** + * Responsible for converting HTTP messages from isomorphic-git into requests and sending them to a specific peer. + */ +class GitFrontend { + private client: GitServerClient; + private credentials: grpc.ChannelCredentials; + + constructor(address: Address, keyManager: KeyManager) { + const pkiInfo = keyManager.PKIInfo; + if (pkiInfo.caCert && pkiInfo.cert && pkiInfo.key) { + this.credentials = grpc.credentials.createSsl(pkiInfo.caCert, pkiInfo.key, pkiInfo.cert); + } else { + this.credentials = grpc.credentials.createInsecure(); + } + this.client = new GitServerClient(address.toString(), this.credentials); + } + + /** + * Requests remote info from the connected peer for the named vault. + * @param vaultName Name of the desired vault + */ + async requestInfo(vaultName: string): Promise { + return new Promise((resolve, reject) => { + const request = new InfoRequest(); + request.setVaultname(vaultName); + this.client.requestInfo(request, function (err, response) { + if (err) { + reject(err); + } else { + resolve(Buffer.from(response.getBody_asB64(), 'base64')); + } + }); + }); + } + + /** + * Requests a pack from the connected peer for the named vault. + * @param vaultName Name of the desired vault + */ + async requestPack(vaultName: string, body: Uint8Array): Promise { + return new Promise((resolve, reject) => { + const request = new PackRequest(); + request.setVaultname(vaultName); + request.setBody(body); + this.client.requestPack(request, function (err, response) { + if (err) { + reject(err); + } else { + resolve(Buffer.from(response.getBody_asB64(), 'base64')); + } + }); + }); + } +} + +export default GitFrontend; diff --git a/src/lib/git/GitClient.ts b/src/lib/git/GitRequest.ts similarity index 52% rename from src/lib/git/GitClient.ts rename to src/lib/git/GitRequest.ts index 26887c0ea..8c83a657c 100644 --- a/src/lib/git/GitClient.ts +++ b/src/lib/git/GitRequest.ts @@ -1,24 +1,16 @@ -import * as grpc from '@grpc/grpc-js'; -import { Address } from '../peers/PeerInfo'; -import KeyManager from '../keys/KeyManager'; -import { GitServerClient } from '../../../proto/compiled/Git_grpc_pb'; -import { InfoRequest, PackRequest } from '../../../proto/compiled/Git_pb'; - /** * Responsible for converting HTTP messages from isomorphic-git into requests and sending them to a specific peer. */ -class GitClient { - private client: GitServerClient; - private credentials: grpc.ChannelCredentials; +class GitRequest { + private requestInfo: (vaultName: string) => Promise; + private requestPack: (vaultName: string, body: Buffer) => Promise; - constructor(address: Address, keyManager: KeyManager) { - const pkiInfo = keyManager.PKIInfo; - if (pkiInfo.caCert && pkiInfo.cert && pkiInfo.key) { - this.credentials = grpc.credentials.createSsl(pkiInfo.caCert, pkiInfo.key, pkiInfo.cert); - } else { - this.credentials = grpc.credentials.createInsecure(); - } - this.client = new GitServerClient(address.toString(), this.credentials); + constructor( + requestInfo: (vaultName: string) => Promise, + requestPack: (vaultName: string, body: Buffer) => Promise, + ) { + this.requestInfo = requestInfo; + this.requestPack = requestPack; } /** @@ -75,43 +67,6 @@ class GitClient { } // ==== HELPER METHODS ==== // - /** - * Requests remote info from the connected peer for the named vault. - * @param vaultName Name of the desired vault - */ - private async requestInfo(vaultName: string): Promise { - return new Promise((resolve, reject) => { - const request = new InfoRequest(); - request.setVaultname(vaultName); - this.client.requestInfo(request, function (err, response) { - if (err) { - reject(err); - } else { - resolve(Buffer.from(response.getBody_asB64(), 'base64')); - } - }); - }); - } - - /** - * Requests a pack from the connected peer for the named vault. - * @param vaultName Name of the desired vault - */ - private async requestPack(vaultName: string, body: Uint8Array): Promise { - return new Promise((resolve, reject) => { - const request = new PackRequest(); - request.setVaultname(vaultName); - request.setBody(body); - this.client.requestPack(request, function (err, response) { - if (err) { - reject(err); - } else { - resolve(Buffer.from(response.getBody_asB64(), 'base64')); - } - }); - }); - } - /** * Converts a buffer into an iterator expected by isomorphic git. * @param data Data to be turned into an iterator @@ -133,4 +88,4 @@ class GitClient { } } -export default GitClient; +export default GitRequest; diff --git a/src/lib/keys/KeyManager.ts b/src/lib/keys/KeyManager.ts index 1bf559128..5e00b62c9 100644 --- a/src/lib/keys/KeyManager.ts +++ b/src/lib/keys/KeyManager.ts @@ -40,7 +40,7 @@ class KeyManager { publicKeyPath: null, pkiKeyPath: null, pkiCertPath: null, - caCertPath: null + caCertPath: null, }; ///////// @@ -285,10 +285,10 @@ class KeyManager { const salt = crypto.randomBytes(32); const key = await promisify(crypto.pbkdf2)(passphrase, salt, 10000, 256 / 8, 'sha256'); if (storeKey) { - this.derivedKeys[name] = key - await this.writeMetadata() + this.derivedKeys[name] = key; + await this.writeMetadata(); } - return key + return key; } /** @@ -296,16 +296,16 @@ class KeyManager { * @param name Name of the key to be deleted */ async deleteKey(name: string): Promise { - const successful = delete this.derivedKeys[name] - await this.writeMetadata() - return successful + const successful = delete this.derivedKeys[name]; + await this.writeMetadata(); + return successful; } /** * List all keys in the current keymanager */ listKeys(): string[] { - return Object.keys(this.derivedKeys) + return Object.keys(this.derivedKeys); } /** @@ -382,7 +382,7 @@ class KeyManager { async getIdentityFromPrivateKey(privateKey: Buffer, passphrase: string): Promise { const identity = await promisify(kbpgp.KeyManager.import_from_armored_pgp)({ armored: privateKey }); if (identity.is_pgp_locked()) { - await promisify(identity.unlock_pgp)({ passphrase: passphrase }); + await promisify(identity.unlock_pgp.bind(identity))({ passphrase }); } return identity; } @@ -454,10 +454,9 @@ class KeyManager { /** * Verifies the given data with the provided key or the primary key if none is specified * @param data Buffer or file containing the data to be verified - * @param signature The PGP signature * @param publicKey Buffer containing the key to verify with. Defaults to primary public key if no key is given. */ - async verifyData(data: Buffer | string, signature: Buffer, publicKey?: Buffer): Promise { + async verifyData(data: Buffer | string, publicKey?: Buffer): Promise { const ring = new kbpgp.keyring.KeyRing(); let resolvedIdentity: Object; if (publicKey) { @@ -471,13 +470,12 @@ class KeyManager { if (this.useWebWorkers && this.workerPool) { const workerResponse = await this.workerPool.queue(async (workerCrypto) => { - return await workerCrypto.verifyData(data, signature, resolvedIdentity); + return await workerCrypto.verifyData(data, resolvedIdentity); }); return workerResponse; } else { const params = { - armored: signature, - data: data, + armored: data, keyfetch: ring, }; const literals = await promisify(kbpgp.unbox)(params); @@ -505,10 +503,9 @@ class KeyManager { /** * Verifies the given file with the provided key or the primary key if none is specified * @param filePath Path to file containing the data to be verified - * @param signaturePath The path to the file containing the PGP signature * @param publicKey Buffer containing the key to verify with. Defaults to primary public key if no key is given. */ - async verifyFile(filePath: string, signaturePath: string, publicKey?: string | Buffer): Promise { + async verifyFile(filePath: string, publicKey?: string | Buffer): Promise { // Get key if provided let keyBuffer: Buffer; if (publicKey) { @@ -523,8 +520,7 @@ class KeyManager { } // Read in file buffer and signature const fileBuffer = this.fileSystem.readFileSync(filePath); - const signatureBuffer = this.fileSystem.readFileSync(signaturePath); - const isVerified = await this.verifyData(fileBuffer, signatureBuffer, keyBuffer!); + const isVerified = await this.verifyData(fileBuffer, keyBuffer!); return isVerified; } @@ -715,7 +711,7 @@ class KeyManager { this.fileSystem.writeFileSync(this.metadataPath, metadata); // Store the keys if identity is loaded if (this.identityLoaded) { - const derivedKeys = JSON.stringify(this.derivedKeys) + const derivedKeys = JSON.stringify(this.derivedKeys); const encryptedMetadata = await this.encryptData(Buffer.from(derivedKeys)); await this.fileSystem.promises.writeFile(this.derivedKeysPath, encryptedMetadata); } @@ -725,12 +721,12 @@ class KeyManager { if (this.fileSystem.existsSync(this.metadataPath)) { const metadata = this.fileSystem.readFileSync(this.metadataPath).toString(); this.metadata = JSON.parse(metadata); - if (this.identityLoaded) { + if (this.identityLoaded && this.fileSystem.existsSync(this.derivedKeysPath)) { const encryptedMetadata = this.fileSystem.readFileSync(this.derivedKeysPath); const metadata = (await this.decryptData(encryptedMetadata)).toString(); const derivedKeys = JSON.parse(metadata); for (const key of Object.keys(derivedKeys)) { - this.derivedKeys[key] = Buffer.from(derivedKeys[key]) + this.derivedKeys[key] = Buffer.from(derivedKeys[key]); } } } diff --git a/src/lib/keys/KeyManagerWorker.ts b/src/lib/keys/KeyManagerWorker.ts index 7998bdbeb..ac0aa7cea 100644 --- a/src/lib/keys/KeyManagerWorker.ts +++ b/src/lib/keys/KeyManagerWorker.ts @@ -22,13 +22,12 @@ const keyManagerWorker = { * @param signature The PGP signature * @param identity Identity with which to verify with. */ - async verifyData(data: Buffer | string, signature: Buffer, identity: any): Promise { + async verifyData(data: Buffer | string, identity: any): Promise { const ring = new kbpgp.keyring.KeyRing(); ring.add_key_manager(identity); const params = { - armored: signature, - data: data, + armored: data, keyfetch: ring, }; const literals = await promisify(kbpgp.unbox)(params); diff --git a/src/lib/peers/PeerManager.ts b/src/lib/peers/PeerManager.ts index da741ab35..3f43ee596 100644 --- a/src/lib/peers/PeerManager.ts +++ b/src/lib/peers/PeerManager.ts @@ -2,7 +2,8 @@ import os from 'os'; import fs from 'fs'; import path from 'path'; import * as grpc from '@grpc/grpc-js'; -import GitClient from '../git/GitClient'; +import GitRequest from '../git/GitRequest'; +import GitFrontend from '../git/GitFrontend'; import GitBackend from '../git/GitBackend'; import KeyManager from '../keys/KeyManager'; import { peer } from '../../../proto/js/Peer'; @@ -57,7 +58,7 @@ class PeerManager { serverStarted: boolean = false; private gitBackend: GitBackend; private credentials: grpc.ServerCredentials; - private peerConnections: Map; + private peerConnections: Map; constructor( polykeyPath: string = `${os.homedir()}/.polykey`, @@ -102,7 +103,10 @@ class PeerManager { ///////////////// // GRPC Server // ///////////////// - this.gitBackend = new GitBackend(polykeyPath, vaultManager); + this.gitBackend = new GitBackend( + polykeyPath, + ((vaultName: string) => vaultManager.getVault(vaultName).EncryptedFS).bind(vaultManager), + ); this.server = new grpc.Server(); // Add service @@ -113,7 +117,6 @@ class PeerManager { // Create the server credentials. SSL only if ca cert exists const pkiInfo = this.keyManager.PKIInfo; - if (pkiInfo.caCert && pkiInfo.cert && pkiInfo.key) { this.credentials = grpc.ServerCredentials.createSsl( pkiInfo.caCert, @@ -128,13 +131,15 @@ class PeerManager { } else { this.credentials = grpc.ServerCredentials.createInsecure(); } - - this.server.bindAsync(`0.0.0.0:${process.env.PK_PORT ?? 0}`, this.credentials, (err, boundPort) => { + this.server.bindAsync(`0.0.0.0:${process.env.PK_PORT ?? 0}`, this.credentials, async (err, boundPort) => { if (err) { throw err; } else { const address = new Address('localhost', boundPort.toString()); this.server.start(); + while (!this.localPeerInfo) { + await new Promise((r, _) => setTimeout(() => r(), 1000)); + } this.localPeerInfo.connect(address); this.serverStarted = true; } @@ -143,9 +148,7 @@ class PeerManager { private async requestInfo(call, callback) { const infoRequest: InfoRequest = call.request; - const vaultName = infoRequest.getVaultname(); - const infoReply = new InfoReply(); infoReply.setVaultname(vaultName); infoReply.setBody(await this.gitBackend.handleInfoRequest(vaultName)); @@ -156,7 +159,6 @@ class PeerManager { const packRequest: PackRequest = call.request; const vaultName = packRequest.getVaultname(); const body = Buffer.from(packRequest.getBody_asB64(), 'base64'); - const reply = new PackReply(); reply.setVaultname(vaultName); reply.setBody(await this.gitBackend.handlePackRequest(vaultName, body)); @@ -261,16 +263,16 @@ class PeerManager { * Get a secure connection to the peer * @param peer Public key of an existing peer or address of new peer */ - connectToPeer(peer: string | Address): GitClient { + connectToPeer(peer: string | Address): GitFrontend { // Throw error if trying to connect to self if (peer == this.localPeerInfo.connectedAddr || peer == this.localPeerInfo.publicKey) { throw Error('Cannot connect to self'); } let address: Address; if (typeof peer == 'string') { - const existingSocket = this.peerConnections.get(peer); - if (existingSocket) { - return existingSocket; + const existingConnection = this.peerConnections.get(peer); + if (existingConnection) { + return existingConnection; } const peerAddress = this.getPeer(peer)?.connectedAddr; @@ -283,7 +285,7 @@ class PeerManager { address = peer; } - const conn = new GitClient(address, this.keyManager); + const conn = new GitFrontend(address, this.keyManager); if (typeof peer == 'string') { this.peerConnections.set(peer, conn); diff --git a/src/lib/vaults/Vault.ts b/src/lib/vaults/Vault.ts index 7fa9d3879..a0329dfb7 100644 --- a/src/lib/vaults/Vault.ts +++ b/src/lib/vaults/Vault.ts @@ -1,7 +1,7 @@ import fs from 'fs'; import Path from 'path'; import git from 'isomorphic-git'; -import GitClient from '../git/GitClient'; +import GitRequest from '../git/GitRequest'; import { EncryptedFS } from 'encryptedfs'; import { Mutex } from 'async-mutex'; @@ -219,7 +219,7 @@ class Vault { * @param address Address of polykey node that owns vault to be pulled * @param getSocket Function to get an active connection to provided address */ - async pullVault(gitClient: GitClient) { + async pullVault(gitClient: GitRequest) { const release = await this.mutex.acquire(); try { // Strangely enough this is needed for pulls along with ref set to 'HEAD' diff --git a/src/lib/vaults/VaultManager.ts b/src/lib/vaults/VaultManager.ts index cf41b47ab..2c99cf0fa 100644 --- a/src/lib/vaults/VaultManager.ts +++ b/src/lib/vaults/VaultManager.ts @@ -3,7 +3,7 @@ import os from 'os'; import Path from 'path'; import git from 'isomorphic-git'; import Vault from '../vaults/Vault'; -import GitClient from '../git/GitClient'; +import GitRequest from '../git/GitRequest'; import { EncryptedFS } from 'encryptedfs'; import KeyManager from '../keys/KeyManager'; @@ -121,7 +121,7 @@ class VaultManager { * @param address Address of polykey node that owns vault to be cloned * @param getSocket Function to get an active connection to provided address */ - async cloneVault(vaultName: string, gitClient: GitClient): Promise { + async cloneVault(vaultName: string, gitRequest: GitRequest): Promise { // Confirm it doesn't exist locally already if (this.vaultExists(vaultName)) { throw Error('Vault name already exists locally, try pulling instead'); @@ -131,7 +131,7 @@ class VaultManager { // First check if it exists on remote const info = await git.getRemoteInfo({ - http: gitClient, + http: gitRequest, url: vaultUrl, }); @@ -151,7 +151,7 @@ class VaultManager { // Clone vault from address await git.clone({ fs: { promises: newEfs.promises }, - http: gitClient, + http: gitRequest, dir: Path.join(this.polykeyPath, vaultName), url: vaultUrl, ref: 'master', diff --git a/tests/cli/CLI.test.ts b/tests/cli/CLI.test.ts new file mode 100644 index 000000000..ca4e73496 --- /dev/null +++ b/tests/cli/CLI.test.ts @@ -0,0 +1,303 @@ +import fs from 'fs' +import os from 'os' +import path from 'path' +import { spawnSync } from 'child_process'; +import { randomString } from '../../src/lib/utils'; + +const cliPath = require.resolve('../../bin/polykey') + +describe('Polykey CLI', () => { + let pkCliEnv: {} + let tempPkAgentDir: string + + const validateCli = async function validateCli(cliOptions: { + args: string[], + expectedOutput?: string[], + expectedError?: Error, + ignoreOutput?: boolean, + ignoreError?: boolean, + env?: {} + }) { + const args = cliOptions.args + const expectedOutput = cliOptions.expectedOutput ?? [] + const expectedError = cliOptions.expectedError ?? undefined + const ignoreOutput = cliOptions.ignoreOutput ?? false + const ignoreError = cliOptions.ignoreError ?? false + const env = cliOptions.env ?? {} + const { output, error, stdout } = spawnSync(cliPath, args, { env: { ...process.env, ...pkCliEnv, ...env } }) + + const receivedOutput = output + .filter((b) => (b ?? '').toString() != '') + .map((b) => b.toString()) + + if (!ignoreOutput) { + for (const [index, value] of expectedOutput.entries()) { + expect(receivedOutput[index]).toEqual(expect.stringContaining(value)) + } + if (expectedOutput.length == 0) { + expect(receivedOutput).toEqual([]) + } + } + if (!ignoreError) { + expect(error).toEqual(expectedError) + } + // wait a couple of milli-seconds + // this should not normally be needed but there is an issue with + // nodes not being immediately loaded after the agent starts/restarts + await new Promise((r, _) => setTimeout(() => r(), 100)) + } + + beforeAll(() => { + tempPkAgentDir = fs.mkdtempSync(`${os.tmpdir}/pktest${randomString()}`) + pkCliEnv = { + PK_LOG_PATH: path.join(tempPkAgentDir, 'log'), + PK_SOCKET_PATH: path.join(tempPkAgentDir, 'S.testing-socket') + } + }) + afterAll(() => { + fs.rmdirSync(tempPkAgentDir, { recursive: true }) + }) + describe('With Agent Stopped', () => { + beforeEach(async () => { + // stop agent + await validateCli({ args: ['agent', 'stop'], ignoreOutput: true }) + }) + + test('agent status returns correctly if agent is stopped', async () => { + await validateCli({ args: ['agent', 'status'], expectedOutput: ["agent status is: 'stopped'"] }) + }) + + test('can start agent', async () => { + await validateCli({ args: ['agent', 'start'], expectedOutput: ["agent has started"] }) + }) + + test('can start agent as a daemon', async () => { + await validateCli({ args: ['agent', 'start', '-d'], expectedOutput: ["agent has started"] }) + }) + }) + + describe('With Agent Started', () => { + beforeEach(async () => { + await validateCli({ args: ['agent', 'stop'], ignoreOutput: true }) + await validateCli({ args: ['agent', 'start'], ignoreOutput: true }) + }) + + test('agent status returns correctly if agent is started', async () => { + await validateCli({ args: ['agent', 'status'], expectedOutput: ["agent status is: 'online'"] }) + }) + + test('can forcibly stop the agent without errors', async () => { + await validateCli({ args: ['agent', 'stop', '-f'], ignoreOutput: true }) + }) + + test('can restart agent without errors', async () => { + await validateCli({ args: ['agent', 'restart'], expectedOutput: ["agent has restarted"] }) + }) + + test('can restart agent as daemon without errors', async () => { + await validateCli({ args: ['agent', 'restart', '-d'], expectedOutput: ["agent has restarted"] }) + }) + }) + + describe('With New Node Created', () => { + let nodePath: string + let env: {} + beforeAll(async () => { + nodePath = path.join(`${os.tmpdir()}`, `pktest${randomString()}`) + + await validateCli({ args: ['agent', 'stop'], ignoreOutput: true }) + await validateCli({ args: ['agent', 'start'], ignoreOutput: true }) + env = { KEYNODE_PATH: nodePath } + await validateCli({ + args: [ + 'agent', + 'create', + '-n', + 'John Smith', + '-e', + 'john@email.com', + '-p', + 'passphrase', + '-b', + '1024', + ], + ignoreOutput: true, + env + }) + }) + afterAll(() => { + fs.rmdirSync(nodePath, { recursive: true }) + }) + + test('new node shows up in agent list', async () => { + await validateCli({ args: ['agent', 'list'], expectedOutput: [nodePath] }) + }) + + test('cannot operate on a locked node', async () => { + await validateCli({ args: ['agent', 'restart'], expectedOutput: ["agent has restarted"] }) + await validateCli({ args: ['vaults', 'list'], expectedOutput: ['Error: node path exists in memory but is locked'], env }) + }) + + test('can load exisitng node after agent restart', async () => { + await validateCli({ args: ['agent', 'restart'], expectedOutput: ["agent has restarted"] }) + await validateCli({ args: ['agent', 'load', '-p', 'passphrase'], expectedOutput: [nodePath], env }) + }) + + describe('Vault Operations', () => { + let vaultName: string + beforeEach(async () => { + vaultName = `Vault-${randomString()}` + // create a new vault + await validateCli({ args: ['vaults', 'new', vaultName], expectedOutput: ["vault created at"], env }) + }) + + test('existing vault shows up in vault list', async () => { + await validateCli({ args: ['vaults', 'list'], expectedOutput: [vaultName], env }) + }) + + test('can delete vault', async () => { + await validateCli({ args: ['vaults', 'list'], expectedOutput: [vaultName], env }) + }) + + describe('Secret Operations', () => { + let secretName: string + let secretContent: string + beforeEach(async () => { + secretName = `Secret-${randomString()}` + secretContent = `some secret content with random string: ${randomString()}` + // write to temporary file + const secretPath = path.join(os.tmpdir(), secretName) + fs.writeFileSync(secretPath, Buffer.from(secretContent)) + // create a new secret + await validateCli({ + args: ['secrets', 'new', `${vaultName}:${secretName}`, '-f', secretPath], + expectedOutput: [`secret '${secretName}' was successfully added to vault '${vaultName}'`], + env + }) + // delete temporary file + fs.unlinkSync(secretPath) + }) + + test('existing secret shows up in secret list', async () => { + await validateCli({ args: ['secrets', 'list', vaultName], expectedOutput: [secretName], env }) + }) + + test('deleted secret does not show up in secret list', async () => { + await validateCli({ + args: ['secrets', 'delete', `${vaultName}:${secretName}`], + expectedOutput: [`secret '${secretName}' was successfully removed from vault '${vaultName}'`], + env + }) + await validateCli({ args: ['secrets', 'list', vaultName], expectedOutput: [], env }) + }) + + test('can get secret from vault', async () => { + await validateCli({ args: ['secrets', 'get', `${vaultName}:${secretName}`], expectedOutput: [secretContent], env }) + }) + + test('can update secret content', async () => { + const newSecretContent = `very new secret content with another random string: ${randomString()}` + // write to temporary file + const secretPath = path.join(os.tmpdir(), secretName) + fs.writeFileSync(secretPath, Buffer.from(newSecretContent)) + await validateCli({ + args: ['secrets', 'update', `${vaultName}:${secretName}`, '-f', secretPath], + expectedOutput: [`secret '${secretName}' was successfully updated in vault '${vaultName}'`], + env + }) + // delete temporary file + fs.unlinkSync(secretPath) + + // make sure get secret returns correct new content + await validateCli({ args: ['secrets', 'get', `${vaultName}:${secretName}`], expectedOutput: [newSecretContent], env }) + }) + + test('can enter env with secret from vault', async () => { + const envVarName = secretName.toUpperCase().replace('-', '_') + await validateCli({ + args: ['secrets', 'env', `${vaultName}:${secretName}=${envVarName}`, '--command', `echo 'this is the secret: $${envVarName}'`], + expectedOutput: [`this is the secret: ${secretContent}`], + env + }) + }) + }) + }) + + describe('Key Operations', () => { + let keyName: string + let keyPassphrase: string + + let primaryPublicKey: string + let primaryPrivateKey: string + beforeEach(async () => { + keyName = `Key-${randomString()}` + keyPassphrase = `passphrase-${randomString()}` + // create a new key + await validateCli({ args: ['keys', 'new', '-n', keyName, '-p', keyPassphrase], expectedOutput: [`'${keyName}' was added to the Key Manager`], env }) + + // read in public and private keys + primaryPublicKey = fs.readFileSync(path.join(nodePath, '.keys', 'public_key')).toString() + primaryPrivateKey = fs.readFileSync(path.join(nodePath, '.keys', 'private_key')).toString() + }) + + test('existing key shows up in key list', async () => { + await validateCli({ args: ['keys', 'list'], expectedOutput: [keyName], env }) + }) + + test('can get existing key', async () => { + await validateCli({ args: ['keys', 'get', '-n', keyName], ignoreOutput: true, env }) + }) + + test('can delete existing key', async () => { + await validateCli({ args: ['keys', 'delete', '-n', keyName], expectedOutput: [`key '${keyName}' was successfully deleted`], env }) + }) + + test('can retreive primary keypair', async () => { + await validateCli({ + args: ['keys', 'primary', '-p', '-j'], + expectedOutput: [ + JSON.stringify({ publicKey: primaryPublicKey, privateKey: primaryPrivateKey }) + ], + env + }) + }) + }) + + describe('Crypto Operations', () => { + let tempDir: string + let filePath: string + let fileContent: Buffer + beforeEach(async () => { + tempDir = path.join(os.tmpdir(), `pktest${randomString()}`) + fs.mkdirSync(tempDir) + + filePath = path.join(tempDir, `random-file-${randomString()}`) + fileContent = Buffer.from(`file content: ${randomString()}`) + fs.writeFileSync(filePath, fileContent) + }) + + test('can encrypt and decrypt file', async () => { + await validateCli({ args: ['crypto', 'encrypt', '-f', filePath], expectedOutput: [`file successfully encrypted: '${filePath}'`], env }) + const encryptedData = fs.readFileSync(filePath) + expect(encryptedData).not.toEqual(undefined) + + await validateCli({ args: ['crypto', 'decrypt', '-f', filePath], expectedOutput: [`file successfully decrypted: '${filePath}'`], env }) + const decryptedData = fs.readFileSync(filePath) + expect(decryptedData).toEqual(fileContent) + }) + + test('can sign and verify file', async () => { + const signedPath = `${filePath}.sig` + await validateCli({ args: ['crypto', 'sign', filePath], expectedOutput: [`file '${filePath}' successfully signed at '${signedPath}'`], env }) + const signedData = fs.readFileSync(signedPath) + expect(signedData).not.toEqual(undefined) + + await validateCli({ args: ['crypto', 'verify', '-f', signedPath], expectedOutput: [`file '${signedPath}' was successfully verified`], env }) + const verifiedData = fs.readFileSync(filePath) + expect(verifiedData).toEqual(fileContent) + }) + + + }) + }) +}) diff --git a/tests/lib/agent/Agent.test.ts b/tests/lib/agent/Agent.test.ts index 086af6d0d..41515700a 100644 --- a/tests/lib/agent/Agent.test.ts +++ b/tests/lib/agent/Agent.test.ts @@ -2,42 +2,201 @@ import os from 'os'; import fs from 'fs'; import path from 'path'; import { randomString } from '../../../src/lib/utils'; -import { PolykeyAgent, PolykeyClient } from '../../../src/lib/Polykey'; +import Polykey, { PolykeyAgent, PolykeyClient } from '../../../src/lib/Polykey'; // TODO add tests as part of testing PR describe('Agent class', () => { + let pkCliEnv: {} + let tempPkAgentDir: string + let agent: PolykeyAgent let client: PolykeyClient let tempDir: string - beforeEach(async () => { - // // Start the agent running - // fs.mkdirSync(`/run/user/${process.getuid()}/polykey`) - // // This has issues in the gitlab ci/cd pipeline since there is - // // no /run/user//polykey directory - // agent = new PolykeyAgent() - // PolykeyAgent.startAgent() - // client = PolykeyAgent.connectToAgent() - // tempDir = fs.mkdtempSync(`${os.tmpdir}/pktest${randomString()}`) + beforeAll(async () => { + tempPkAgentDir = fs.mkdtempSync(`${os.tmpdir}/pktest${randomString()}`) + pkCliEnv = { + PK_LOG_PATH: path.join(tempPkAgentDir, 'log'), + PK_SOCKET_PATH: path.join(tempPkAgentDir, 'S.testing-socket') + } + process.env = {...process.env, ...pkCliEnv} + + // Start the agent running + agent = new PolykeyAgent() + await PolykeyAgent.startAgent() + + // connect to agent + client = PolykeyAgent.connectToAgent() + tempDir = fs.mkdtempSync(`${os.tmpdir}/pktest${randomString()}`) }) - afterEach(() => { - // agent.stop() - // fs.rmdirSync(tempDir, { recursive: true }) + afterAll(() => { + agent.stop() + fs.rmdirSync(tempPkAgentDir, { recursive: true }) + fs.rmdirSync(tempDir, { recursive: true }) }) - test('can add new node', async () => { - // const nodePath = path.join(tempDir, 'SomePolykey') - // const response = await client.newNode(nodePath, 'Robert Cronin', 'robert.cronin@email.com', 'very password', 1024) - // expect(response).toEqual(true) + test('can get agent status', async () => { + expect(await client.getAgentStatus()).toEqual('online') }) - test('can list nodes', async () => { - // const nodePath = path.join(tempDir, 'SomePolykey') - // const newNodeResponse = await client.newNode(nodePath, 'Robert Cronin', 'robert.cronin@email.com', 'very password', 1024) - // expect(newNodeResponse).toEqual(true) - // // Listed nodes should contain our newly created node - // const listNodesResponse = await client.listNodes() - // expect(listNodesResponse).toEqual([nodePath]) + describe('Node Specific Operations', () => { + let nodePath: string + + beforeAll(async () => { + nodePath = path.join(tempDir, `PolykeyNode-${randomString()}`) + const successful = await client.newNode(nodePath, 'John Smith', 'john@email.com', 'very password', 1024) + expect(successful).toEqual(true) + }) + + test('added nodes turn up in node list', async () => { + expect(await client.listNodes()).toContainEqual(nodePath) + }) + + test('can register node', async () => { + const nonAgentNodePath = path.join(tempDir, `SomePolykey-${randomString()}`) + const pk = new Polykey(nonAgentNodePath, fs) + await pk.keyManager.generateKeyPair('John Smith', 'john@email.com', 'very password', 1024, true) + + expect(await client.registerNode(nonAgentNodePath, 'very password')).toEqual(true) + expect(await client.listNodes()).toContainEqual(nonAgentNodePath) + + // cleanup + pk.peerManager.multicastBroadcaster.socket.close() + }) + + describe('Crypto Specific Operations', () => { + let filePath: string + let fileContent: Buffer + beforeEach(async () => { + filePath = path.join(tempDir, `random-file-${randomString()}`) + fileContent = Buffer.from(`file content: ${randomString()}`) + fs.writeFileSync(filePath, fileContent) + }) + + test('can encrypt and decrypt file', async () => { + const encryptedFilePath = await client.encryptFile(nodePath, filePath) + const encryptedData = fs.readFileSync(encryptedFilePath) + expect(encryptedData).not.toEqual(undefined) + + const decryptedFilePath = await client.decryptFile(nodePath, encryptedFilePath) + const decryptedData = fs.readFileSync(decryptedFilePath) + expect(decryptedData).toEqual(fileContent) + }) + + test('can sign and verify file', async () => { + const signedFilePath = await client.signFile(nodePath, filePath) + const signedData = fs.readFileSync(signedFilePath) + expect(signedData).not.toEqual(undefined) + + const verified = await client.verifyFile(nodePath, signedFilePath) + expect(verified).toEqual(true) + }) + }) + + describe('Key Specific Operations', () => { + let keyName: string + + beforeEach(async () => { + keyName = `random-key-${randomString()}` + const successful = await client.deriveKey(nodePath, keyName, 'passphrase') + expect(successful).toEqual(true) + }) + + test('can retreive keypair', async () => { + const keypair = await client.getPrimaryKeyPair(nodePath, true) + expect(keypair).not.toEqual(undefined) + }) + + test('derived key shows up in key list', async () => { + const keyList = await client.listKeys(nodePath) + expect(keyList).toContainEqual(keyName) + }) + + test('can retreived derived key', async () => { + const keyContent = await client.getKey(nodePath, keyName) + expect(keyContent).not.toEqual(undefined) + }) + + test('can delete derived key', async () => { + const successful = await client.deleteKey(nodePath, keyName) + expect(successful).toEqual(true) + + const keyList = await client.listKeys(nodePath) + expect(keyList).not.toContainEqual(keyName) + + expect(client.getKey(nodePath, keyName)).rejects.toThrow() + }) + }) + + describe('Vault Specific Operations', () => { + let vaultName: string + beforeEach(async () => { + vaultName = `Vault-${randomString()}` + await client.newVault(nodePath, vaultName) + }) + + test('created vault turns up in vault list', async () => { + expect(await client.listVaults(nodePath)).toContainEqual(vaultName) + }) + + test('can destroy vault', async () => { + const successful = await client.destroyVault(nodePath, vaultName) + expect(successful).toEqual(true) + expect(await client.listVaults(nodePath)).not.toContainEqual(vaultName) + }) + + describe('Secret Specific Operations', () => { + let secretName: string + let secretContent: Buffer + + beforeEach(async () => { + secretName = `Secret-${randomString()}` + secretContent = Buffer.from(`some random secret: ${randomString()}`) + const successful = await client.createSecret(nodePath, vaultName, secretName, secretContent) + expect(successful).toEqual(true) + }) + + test('can list secrets', async () => { + const secretList = await client.listSecrets(nodePath, vaultName) + expect(secretList).toContainEqual(secretName) + }) + + test('can retreive secret', async () => { + const retreivedSecretContent = await client.getSecret(nodePath, vaultName, secretName) + expect(retreivedSecretContent).toEqual(secretContent) + }) + + test('can remove secret', async () => { + const successful = await client.destroySecret(nodePath, vaultName, secretName) + expect(successful).toEqual(true) + }) + + test('retreiving a removed secret throws an error', async () => { + const successful = await client.destroySecret(nodePath, vaultName, secretName) + expect(successful).toEqual(true) + + const retreivedSecretContentPromise = client.getSecret(nodePath, vaultName, secretName) + expect(retreivedSecretContentPromise).rejects.toThrow() + }) + + test('removed secret is not listed in secret list', async () => { + const successful = await client.destroySecret(nodePath, vaultName, secretName) + expect(successful).toEqual(true) + + const secretList = await client.listSecrets(nodePath, vaultName) + expect(secretList).not.toContainEqual(secretName) + }) + + test('can update secret content', async () => { + const newContent = Buffer.from(`new secret content: ${randomString()}`) + const successful = await client.updateSecret(nodePath, vaultName, secretName, newContent) + expect(successful).toEqual(true) + + const updatedSecretContent = await client.getSecret(nodePath, vaultName, secretName) + expect(updatedSecretContent).toEqual(newContent) + }) + }) + }) }) }) diff --git a/tests/lib/git/Git.test.ts b/tests/lib/git/Git.test.ts new file mode 100644 index 000000000..20657ba5f --- /dev/null +++ b/tests/lib/git/Git.test.ts @@ -0,0 +1,194 @@ +import os from 'os'; +import fs from 'fs'; +import path from 'path'; +import git from 'isomorphic-git' +import { randomString } from '../../../src/lib/utils'; +import GitBackend from '../../../src/lib/git/GitBackend'; +import GitRequest from '../../../src/lib/git/GitRequest'; + +describe('GitBackend and GitRequest classes', () => { + let sourceDir: string + let targetDir: string + + let repoName: string + let sourceRepoPath: string + let targetRepoPath: string + + let fileName: string + let fileContents: Buffer + + let gitBackend: GitBackend + let gitRequest: GitRequest + + beforeEach(async () => { + + sourceDir = fs.mkdtempSync(`${os.tmpdir}/pktest${randomString()}`) + targetDir = fs.mkdtempSync(`${os.tmpdir}/pktest${randomString()}`) + repoName = `repo-${randomString()}` + sourceRepoPath = path.join(sourceDir, repoName) + targetRepoPath = path.join(targetDir, repoName) + fs.mkdirSync(sourceRepoPath, { recursive: true }) + // Initialize a git repo in sourceDir + await git.init({ + fs, + dir: sourceRepoPath, + }); + + // initial commit + await git.commit({ + fs, + dir: sourceRepoPath, + author: { + name: repoName, + }, + message: 'init commit' + }); + // Write packed-refs file because isomorphic git goes searching for it + // and apparently its not autogenerated + fs.writeFileSync(path.join(sourceRepoPath, '.git', 'packed-refs'), '# pack-refs with: peeled fully-peeled sorted'); + + // create first file + fileName = `some-file-${randomString()}` + fileContents = Buffer.from(`some-file-contents-${randomString()}`) + fs.writeFileSync(path.join(sourceRepoPath, fileName), fileContents) + // commit that file + await git.add({ + fs, + dir: sourceRepoPath, + filepath: fileName + }) + await git.commit({ + fs, + dir: sourceRepoPath, + author: { + name: repoName, + }, + message: 'added first file' + }); + + // set up git backend + gitBackend = new GitBackend(sourceDir, (_) => fs) + // create git request object + gitRequest = new GitRequest( + gitBackend.handleInfoRequest.bind(gitBackend), + gitBackend.handlePackRequest.bind(gitBackend), + ) + }) + + afterEach(() => { + fs.rmdirSync(sourceDir, { recursive: true }) + fs.rmdirSync(targetDir, { recursive: true }) + }) + + test('can clone a repository', async () => { + await git.clone({ + fs: { promises: fs.promises }, + http: gitRequest, + dir: targetRepoPath, + url: `http://0.0.0.0/${repoName}`, + }); + + // check file has been cloned too + expect(fs.readFileSync(path.join(sourceRepoPath, fileName))).toEqual(fileContents) + }) + + describe('Push Operations', () => { + // todo add in testing when push functionaltiy is implemented + }) + + describe('Pull Operations', () => { + beforeEach(async () => { + // clone to the targetDir + await git.clone({ + fs: { promises: fs.promises }, + http: gitRequest, + dir: targetRepoPath, + url: `http://0.0.0.0/${repoName}` + }); + + // set git config + await git.setConfig({ + fs, + dir: targetRepoPath, + path: 'user.name', + value: repoName + }) + }) + + test('file changes are reflected in pulled changes', async () => { + const newFileContents = Buffer.from(`some new random change: ${randomString()}`) + // change file in source repo + fs.writeFileSync(path.join(sourceRepoPath, fileName), newFileContents) + + // add and commit + await git.add({ + fs, + dir: sourceRepoPath, + filepath: fileName + }) + await git.commit({ + fs, + dir: sourceRepoPath, + author: { + name: repoName, + }, + message: 'modified first file' + }); + + // pull in target repo + await git.pull({ + fs, + http: gitRequest, + dir: targetRepoPath + }) + + // expect that the file contents have changed in target repo + expect(fs.readFileSync(path.join(targetRepoPath, fileName))).toEqual(newFileContents) + }) + }) + + describe('Branch Operations', () => { + let branchName: string + beforeEach(async () => { + // clone to the targetDir + await git.clone({ + fs, + http: gitRequest, + dir: targetRepoPath, + url: `http://0.0.0.0/${repoName}` + }); + + // set git config + await git.setConfig({ + fs, + dir: targetRepoPath, + path: 'user.name', + value: repoName + }) + + // add a new branch to the sourceDir + branchName = `random-branch-name-${randomString()}` + await git.branch({ fs, dir: sourceRepoPath, ref: branchName }) + expect(await git.listBranches({ fs, dir: sourceRepoPath })).toContainEqual(branchName) + }) + + test('can pull and checkout new remote branch', async () => { + // pull from sourceDir to get new branch + await git.pull({ + fs, + http: gitRequest, + dir: targetRepoPath, + }) + + // switch to new branch + await git.checkout({ + fs, + dir: targetRepoPath, + ref: branchName + }) + + // branch is listed + expect(await git.listBranches({ fs, dir: targetRepoPath })).toContainEqual(branchName) + }) + }) +}) diff --git a/tests/lib/keys/KeyManager.test.ts b/tests/lib/keys/KeyManager.test.ts new file mode 100644 index 000000000..b2b0dbd0a --- /dev/null +++ b/tests/lib/keys/KeyManager.test.ts @@ -0,0 +1,84 @@ +import fs from 'fs'; +import os from 'os'; +import { randomString } from '../../../src/lib/utils'; +import KeyManager from '../../../src/lib/keys/KeyManager'; + +describe('KeyManager class', () => { + + let tempDir: string + let km: KeyManager + + beforeAll(async done => { + // Define temp directory + tempDir = fs.mkdtempSync(`${os.tmpdir}/pktest${randomString()}`) + + // Create keyManager + km = new KeyManager(tempDir, fs) + await km.generateKeyPair('John Smith', 'john.smith@email.com', 'passphrase', 1024, true) + + done() + }) + + afterAll(() => { + fs.rmdirSync(tempDir, { recursive: true }) + }) + + test('can create keypairs', async done => { + // Create private keys (async) + expect(km.generateKeyPair('John Smith', 'john.smith@gmail.com', 'passphrase', 1024)).resolves.not.toThrow() + + done() + }) + + test('can create symmetric keys', async done => { + const generatedKey = await km.generateKey('new-key', 'passphrase', true) + + const retreivedKey = km.getKey('new-key') + + expect(retreivedKey).toEqual(generatedKey) + + done() + }) + + test('can load an identity from a public key', async done => { + + const keypair = await km.generateKeyPair('John Smith', 'john@email.com', 'passphrase', 1024) + + const identity = await km.getIdentityFromPublicKey(Buffer.from(keypair.public!)) + + expect(identity).not.toEqual(undefined) + + done() + }) + + test('can load an identity from a private key', async done => { + + const keypair = await km.generateKeyPair('John Smith', 'john@email.com', 'passphrase', 1024) + + const identity = await km.getIdentityFromPrivateKey(Buffer.from(keypair.private!), 'passphrase') + + expect(identity).not.toEqual(undefined) + + done() + }) + + test('can sign and verify data', async done => { + const originalData = Buffer.from('I am to be signed') + const signedData = await km.signData(originalData) + const isVerified = await km.verifyData(signedData) + expect(isVerified).toEqual(true) + done() + }) + + test('can sign and verify files', async done => { + const originalData = Buffer.from('I am to be signed') + const filePath = `${tempDir}/file` + fs.writeFileSync(filePath, originalData) + // Sign file + const signedFilePath = await km.signFile(filePath) + // Verify file + const isVerified = await km.verifyFile(signedFilePath) + expect(isVerified).toEqual(true) + done() + }) +}) diff --git a/tests/lib/peers/PKI.test.ts b/tests/lib/peers/PKI.test.ts new file mode 100644 index 000000000..de362a734 --- /dev/null +++ b/tests/lib/peers/PKI.test.ts @@ -0,0 +1,47 @@ +import fs from 'fs' +import os from 'os' +import Polykey from "../../../src/lib/Polykey" +import { randomString } from '../../../src/lib/utils' +import KeyManager from '../../../src/lib/keys/KeyManager' + +// TODO: part of adding PKI functionality to polykey +describe('PKI', () => { + let tempDirPeerA: string + let peerA: Polykey + + let tempDirPeerB: string + let peerB: Polykey + + beforeAll(async () => { + // ======== PEER A ======== // + // Define temp directory + tempDirPeerA = fs.mkdtempSync(`${os.tmpdir}/pktest${randomString()}`) + + // Create keyManager + const keyManagerA = new KeyManager(tempDirPeerA, fs) + await keyManagerA.generateKeyPair('John Smith', 'john.smith@email.com', 'some passphrase', 1024, true) + + // Initialize polykey + peerA = new Polykey( + tempDirPeerA, + fs, + keyManagerA + ) + while (!peerA.peerManager.serverStarted) { + await new Promise((resolve, reject) => { + setTimeout(() => resolve(), 500) + }) + } + }) + + afterAll(() => { + fs.rmdirSync(tempDirPeerA, { recursive: true }) + fs.rmdirSync(tempDirPeerB, { recursive: true }) + }) + + describe('Peer Connections', () => { + test('can connect securely to another peer and send data back and forth', async done => { + done() + }) + }) +}) diff --git a/tests/lib/peers/PeerManager.test.ts b/tests/lib/peers/PeerManager.test.ts new file mode 100644 index 000000000..2a2a1aa18 --- /dev/null +++ b/tests/lib/peers/PeerManager.test.ts @@ -0,0 +1,90 @@ +import fs from 'fs' +import os from 'os' +import Polykey from "../../../src/lib/Polykey" +import { randomString } from '../../../src/lib/utils' +import KeyManager from '../../../src/lib/keys/KeyManager' + +describe('PeerManager class', () => { + let tempDirPeerA: string + let peerA: Polykey + + let tempDirPeerB: string + let peerB: Polykey + + beforeAll(async () => { + // ======== PEER A ======== // + // Define temp directory + tempDirPeerA = fs.mkdtempSync(`${os.tmpdir}/pktest${randomString()}`) + + // Create keyManager + const keyManagerA = new KeyManager(tempDirPeerA, fs) + await keyManagerA.generateKeyPair('John Smith', 'john.smith@email.com', 'some passphrase', 1024, true) + + // Initialize polykey + peerA = new Polykey( + tempDirPeerA, + fs, + keyManagerA + ) + while (!peerA.peerManager.serverStarted) { + await new Promise((resolve, reject) => { + setTimeout(() => resolve(), 500) + }) + } + + // ======== PEER A ======== // + // Define temp directory + tempDirPeerB = fs.mkdtempSync(`${os.tmpdir}/pktest${randomString()}`) + + // Create keyManager + const keyManagerB = new KeyManager(tempDirPeerB, fs) + await keyManagerB.generateKeyPair('Jane Doe', 'jane.doe@email.com', 'some different passphrase', 1024, true) + + // Initialize polykey + peerB = new Polykey( + tempDirPeerB, + fs, + keyManagerB + ) + while (!peerB.peerManager.serverStarted) { + await new Promise((resolve, reject) => { + setTimeout(() => resolve(), 500) + }) + } + + }) + + afterAll(() => { + fs.rmdirSync(tempDirPeerA, { recursive: true }) + fs.rmdirSync(tempDirPeerB, { recursive: true }) + }) + + describe('Peer Connections', () => { + test('can connect securely to another peer and send data back and forth', async done => { + peerA.peerManager.addPeer(peerB.peerManager.getLocalPeerInfo()) + peerB.peerManager.addPeer(peerA.peerManager.getLocalPeerInfo()) + // ==== A to B ==== // + const gitClient = peerA.peerManager.connectToPeer(peerB.peerManager.getLocalPeerInfo().publicKey) + expect(gitClient).not.toEqual(undefined) + + done() + }) + }) + + // describe('Peer Discovery', () => { + // test('find a peer via public key', async done => { + // // TODO: try to find a way to test this, currently its untestable because keybase login integration hasn't been completed + // const peerInfo = await peerA.peerManager.findPubKey(peerB.peerManager.getLocalPeerInfo().publicKey) + // console.log(peerInfo); + + // done() + // }) + + // test('find a user on github', async () => { + // // TODO: try to find a way to test this, currently its untestable because keybase login integration hasn't been completed + // await peerA.peerManager.findSocialUser('robert-cronin', 'github') + // }) + // }) + + +}) diff --git a/tests/lib/vaults/Vaults.test.ts b/tests/lib/vaults/Vaults.test.ts new file mode 100644 index 000000000..5dbb7af6f --- /dev/null +++ b/tests/lib/vaults/Vaults.test.ts @@ -0,0 +1,311 @@ +import fs, { write } from 'fs'; +import os from 'os'; +import path from 'path'; +import Polykey from "../../../src/lib/Polykey"; +import { randomString } from '../../../src/lib/utils'; +import KeyManager from '../../../src/lib/keys/KeyManager'; +import VaultManager from '../../../src/lib/vaults/VaultManager'; +import crypto from 'crypto'; +import GitRequest from '../../../src/lib/git/GitRequest'; + +describe('VaultManager class', () => { + let randomVaultName: string + + let tempDir: string + let pk: Polykey + let vm: VaultManager + + beforeAll(async done => { + // Define temp directory + tempDir = fs.mkdtempSync(`${os.tmpdir}/pktest${randomString()}`) + + // Create keyManager + const km = new KeyManager(tempDir, fs) + + // Generate keypair + await km.generateKeyPair('John Smith', 'john.smith@email.com', 'passphrase', 1024, true) + + // Load pki info + const cwd = process.cwd() + const peer1Path = path.join(cwd, 'tmp', 'secrets', 'peer1') + const caPath = path.join(cwd, 'tmp', 'secrets', 'CA') + if (fs.existsSync(peer1Path) && fs.existsSync(caPath)) { + km.loadPKIInfo( + fs.readFileSync(path.join(peer1Path, 'server.key')), + fs.readFileSync(path.join(peer1Path, 'server.crt')), + fs.readFileSync(path.join(caPath, 'root_ca.crt')), + true + ) + } + + // Initialize polykey + pk = new Polykey( + tempDir, + fs, + km + ) + vm = pk.vaultManager + done() + }) + + afterAll(() => { + fs.rmdirSync(tempDir, { recursive: true }) + }) + + beforeEach(() => { + // Reset the vault name for each test + randomVaultName = `Vault-${randomString()}` + }) + + test('can create vault', async () => { + // Create vault + await vm.createVault(randomVaultName) + const vaultExists = vm.vaultExists(randomVaultName) + expect(vaultExists).toEqual(true) + }) + + test('cannot create same vault twice', async () => { + // Create vault + await vm.createVault(randomVaultName) + const vaultExists = vm.vaultExists(randomVaultName) + expect(vaultExists).toEqual(true) + // Create vault a second time + expect(vm.createVault(randomVaultName)).rejects.toThrow('Vault already exists!') + }) + test('can destroy vaults', async () => { + // Create vault + await vm.createVault(randomVaultName) + expect(vm.vaultExists(randomVaultName)).toStrictEqual(true) + // Destroy the vault + vm.destroyVault(randomVaultName) + expect(vm.vaultExists(randomVaultName)).toStrictEqual(false) + }) + + /////////////////// + // Vault Secrets // + /////////////////// + describe('secrets within vaults', () => { + test('can create secrets and read them back', async () => { + // Create vault + const vault = await vm.createVault(randomVaultName) + + // Run test + const initialSecretName = 'ASecret' + const initialSecret = 'super confidential information' + // Add secret + await vault.addSecret(initialSecretName, Buffer.from(initialSecret)) + + // Read secret + const readBuffer = vault.getSecret(initialSecretName) + const readSecret = readBuffer.toString() + + expect(readSecret).toStrictEqual(initialSecret) + }) + }) + + //////////////////// + // Sharing Vaults // + //////////////////// + describe('sharing vaults', () => { + let tempDir2: string + let peerPk: Polykey + let peerVm: VaultManager + + beforeAll(async done => { + // Define temp directory + tempDir2 = fs.mkdtempSync(`${os.tmpdir}/pktest${randomString()}`) + // Create keyManager + const km2 = new KeyManager(tempDir2, fs) + + // Generate keypair + await km2.generateKeyPair('Jane Doe', 'jane.doe@email.com', 'passphrase', 1024, true) + + // Load pki info + const cwd = process.cwd() + const peer2Path = path.join(cwd, 'tmp', 'secrets', 'peer2') + const caPath = path.join(cwd, 'tmp', 'secrets', 'CA') + if (fs.existsSync(peer2Path) && fs.existsSync(caPath)) { + km2.loadPKIInfo( + fs.readFileSync(path.join(peer2Path, 'server.key')), + fs.readFileSync(path.join(peer2Path, 'server.crt')), + fs.readFileSync(path.join(caPath, 'root_ca.crt')), + true + ) + } + + // Initialize polykey + peerPk = new Polykey( + tempDir2, + fs, + km2 + ) + peerVm = peerPk.vaultManager + done() + }) + + afterAll(() => { + // Remove temp directory + fs.rmdirSync(tempDir2, { recursive: true }) + }) + + test('can clone vault', async done => { + // Create vault + const vault = await vm.createVault(randomVaultName) + // Add secret + const initialSecretName = 'ASecret' + const initialSecret = 'super confidential information' + await vault.addSecret(initialSecretName, Buffer.from(initialSecret)) + + // Pull from pk in peerPk + + const gitFrontend = peerPk.peerManager.connectToPeer(pk.peerManager.getLocalPeerInfo().connectedAddr!) + const gitRequest = new GitRequest( + gitFrontend.requestInfo.bind(gitFrontend), + gitFrontend.requestPack.bind(gitFrontend) + ) + const clonedVault = await peerVm.cloneVault(randomVaultName, gitRequest) + + const pkSecret = vault.getSecret(initialSecretName).toString() + + await clonedVault.pullVault(gitRequest) + + const peerPkSecret = clonedVault.getSecret(initialSecretName).toString() + + expect(peerPkSecret).toStrictEqual(pkSecret) + expect(peerPkSecret).toStrictEqual(initialSecret) + + + done() + }) + + test('stress test - can clone many vaults concurrently', async done => { + + const vaultNameList = [...Array(10).keys()].map((_) => { + return `Vault-${randomString()}` + }) + + for (const vaultName of vaultNameList) { + const vault = await vm.createVault(vaultName) + // Add secret + const initialSecretName = 'ASecret' + const initialSecret = 'super confidential information' + await vault.addSecret(initialSecretName, Buffer.from(initialSecret)) + } + + const gitFrontend = peerPk.peerManager.connectToPeer(pk.peerManager.getLocalPeerInfo().connectedAddr!) + const gitRequest = new GitRequest( + gitFrontend.requestInfo.bind(gitFrontend), + gitFrontend.requestPack.bind(gitFrontend) + ) + + // clone all vaults asynchronously + const clonedVaults = await Promise.all(vaultNameList.map(async (v) => { + return peerVm.cloneVault(v, gitRequest) + })) + const clonedVaultNameList = clonedVaults.map((v) => { + return v.name + }) + + expect(clonedVaultNameList).toEqual(vaultNameList) + + done() + }, 20000) + + test('can pull changes', async done => { + // Create vault + const vault = await vm.createVault(randomVaultName) + // Add secret + const initialSecretName = 'InitialSecret' + const initialSecret = 'super confidential information' + await vault.addSecret(initialSecretName, Buffer.from(initialSecret)) + + // First clone from pk in peerPk + const gitFrontend = peerPk.peerManager.connectToPeer(pk.peerManager.getLocalPeerInfo().connectedAddr!) + const gitRequest = new GitRequest( + gitFrontend.requestInfo.bind(gitFrontend), + gitFrontend.requestPack.bind(gitFrontend) + ) + const clonedVault = await peerVm.cloneVault(randomVaultName, gitRequest) + + // Add secret to pk + await vault.addSecret('NewSecret', Buffer.from('some other secret information')) + + // Pull from vault + await clonedVault.pullVault(gitRequest) + + // Compare new secret + const pkNewSecret = vault.getSecret(initialSecretName).toString() + const peerPkNewSecret = clonedVault.getSecret(initialSecretName).toString() + expect(pkNewSecret).toStrictEqual(peerPkNewSecret) + done() + }) + + test('removing secret is reflected in peer vault', async done => { + // Create vault + const vault = await vm.createVault(randomVaultName) + // Add secret + const initialSecretName = 'InitialSecret' + const initialSecret = 'super confidential information' + await vault.addSecret(initialSecretName, Buffer.from(initialSecret)) + + // First clone from pk in peerPk + const gitFrontend = peerPk.peerManager.connectToPeer(pk.peerManager.getLocalPeerInfo().connectedAddr!) + const gitRequest = new GitRequest( + gitFrontend.requestInfo.bind(gitFrontend), + gitFrontend.requestPack.bind(gitFrontend) + ) + const clonedVault = await peerVm.cloneVault(randomVaultName, gitRequest) + + // Confirm secrets list only contains InitialSecret + const secretList = vault.listSecrets() + const clonedSecretList = clonedVault.listSecrets() + expect(secretList).toEqual(clonedSecretList) + expect(clonedSecretList).toEqual([initialSecretName]) + + // Remove secret from pk vault + await vault.removeSecret(initialSecretName) + + // Pull clonedVault + await clonedVault.pullVault(gitRequest) + + // Confirm secrets list is now empty + const removedSecretList = vault.listSecrets() + const removedClonedSecretList = clonedVault.listSecrets() + expect(removedSecretList).toEqual(removedClonedSecretList) + expect(removedClonedSecretList).toEqual([]) + + done() + }) + }) + + ///////////////// + // Concurrency // + ///////////////// + describe('concurrency', () => { + test('parallel write operations are sequentially executed', async done => { + const vault = await pk.vaultManager.createVault(randomVaultName) + const writeOps: Promise[] = [] + const expectedHistory: number[] = [] + for (const n of Array(50).keys()) { + // Get a random number of bytes so each operation might finish earlier than the others + const randomNumber = 1 + Math.round(Math.random() * 5000) + const secretBuffer = crypto.randomBytes(randomNumber) + const writeOp = vault.addSecret(`${n + 1}`, secretBuffer) + writeOps.push(writeOp) + expectedHistory.push(n + 1) + } + await Promise.all(writeOps) + + const history = (await vault.getVaultHistory()).reverse() + .map((commit) => { + const match = commit.match(/([0-9]+)/) + return (match) ? parseInt(match[0]) : undefined + }) + .filter((n) => n != undefined) + + expect(history).toEqual(expectedHistory) + + done() + }, 20000) + }) +}) diff --git a/typedoc.js b/typedoc.js index bf5ed93f6..049ea8937 100644 --- a/typedoc.js +++ b/typedoc.js @@ -1,15 +1,21 @@ module.exports = { out: 'docs', - includes: './src/lib', - exclude: [ + includes: [ + './src/lib/**/*', './src/cli/**/*', - './src/lib/git/**/*' + './proto/js/**/*.d.ts', + ], + exclude: [ + './src/lib/git/**/*', + './src/lib/agent/internal/**/*', + './proto/js/**/*.js' ], - mode: 'file', + mode: 'modules', + includeDeclarations: true, excludeExternals: true, - excludeNotExported: true, + excludeNotExported: false, excludePrivate: true, name: 'PolyKey (library)' }; From eae7b2cadaca120b4effd22b215af7f172977b34 Mon Sep 17 00:00:00 2001 From: Robert Cronin Date: Tue, 25 Aug 2020 11:38:29 +0800 Subject: [PATCH 2/2] Expand Testing - Generated Files --- dist/cli/cli.js | 46 +- dist/lib/browser-client.d.ts | 2 +- dist/lib/browser-client.js | 20 +- dist/lib/browser-client.js.map | 2 +- dist/lib/polykey.d.ts | 79 +- dist/lib/polykey.js | 254 +- dist/lib/polykey.js.map | 2 +- docs/assets/js/search.json | 2 +- ..._js_agent_d_.agent.agent.agentmessage.html | 471 ++ ...gent.agent.createsecretrequestmessage.html | 471 ++ ...ent.agent.createsecretresponsemessage.html | 411 ++ ...agent.agent.decryptfilerequestmessage.html | 451 ++ ...gent.agent.decryptfileresponsemessage.html | 411 ++ ..._.agent.agent.deletekeyrequestmessage.html | 411 ++ ....agent.agent.deletekeyresponsemessage.html | 411 ++ ..._.agent.agent.derivekeyrequestmessage.html | 451 ++ ....agent.agent.derivekeyresponsemessage.html | 411 ++ ...ent.agent.destroysecretrequestmessage.html | 431 ++ ...nt.agent.destroysecretresponsemessage.html | 411 ++ ...gent.agent.destroyvaultrequestmessage.html | 411 ++ ...ent.agent.destroyvaultresponsemessage.html | 411 ++ ...agent.agent.encryptfilerequestmessage.html | 431 ++ ...gent.agent.encryptfileresponsemessage.html | 411 ++ ..._js_agent_d_.agent.agent.errormessage.html | 411 ++ ...t_d_.agent.agent.getkeyrequestmessage.html | 411 ++ ..._d_.agent.agent.getkeyresponsemessage.html | 431 ++ ...agent.getprimarykeypairrequestmessage.html | 411 ++ ...gent.getprimarykeypairresponsemessage.html | 431 ++ ..._.agent.agent.getsecretrequestmessage.html | 431 ++ ....agent.agent.getsecretresponsemessage.html | 411 ++ ...d_.agent.agent.listkeysrequestmessage.html | 382 ++ ..._.agent.agent.listkeysresponsemessage.html | 411 ++ ..._.agent.agent.listnodesrequestmessage.html | 411 ++ ....agent.agent.listnodesresponsemessage.html | 411 ++ ...agent.agent.listsecretsrequestmessage.html | 411 ++ ...gent.agent.listsecretsresponsemessage.html | 411 ++ ....agent.agent.listvaultsrequestmessage.html | 382 ++ ...agent.agent.listvaultsresponsemessage.html | 411 ++ ..._d_.agent.agent.newnoderequestmessage.html | 471 ++ ...d_.agent.agent.newnoderesponsemessage.html | 411 ++ ...d_.agent.agent.newvaultrequestmessage.html | 411 ++ ..._.agent.agent.newvaultresponsemessage.html | 411 ++ ...gent.agent.registernoderequestmessage.html | 411 ++ ...ent.agent.registernoderesponsemessage.html | 411 ++ ...d_.agent.agent.signfilerequestmessage.html | 451 ++ ..._.agent.agent.signfileresponsemessage.html | 411 ++ ...gent.agent.updatesecretrequestmessage.html | 471 ++ ...ent.agent.updatesecretresponsemessage.html | 411 ++ ....agent.agent.verifyfilerequestmessage.html | 431 ++ ...agent.agent.verifyfileresponsemessage.html | 411 ++ .../_proto_js_git_d_.git.git.gitserver.html | 880 ++++ .../_proto_js_git_d_.git.git.inforeply.html | 455 ++ .../_proto_js_git_d_.git.git.inforequest.html | 435 ++ .../_proto_js_git_d_.git.git.packreply.html | 455 ++ .../_proto_js_git_d_.git.git.packrequest.html | 455 ++ ...js_peer_d_.peer.peer.handshakemessage.html | 480 ++ ..._js_peer_d_.peer.peer.peerinfomessage.html | 460 ++ ...lib_agent_polykeyagent_.polykeyagent.html} | 134 +- ...b_agent_polykeyclient_.polykeyclient.html} | 228 +- ..._src_lib_keys_keymanager_.keymanager.html} | 346 +- ...rastructure_.publickeyinfrastructure.html} | 98 +- ...astbroadcaster_.multicastbroadcaster.html} | 269 +- ... => _src_lib_peers_peerinfo_.address.html} | 123 +- ...=> _src_lib_peers_peerinfo_.peerinfo.html} | 132 +- ...c_lib_peers_peermanager_.peermanager.html} | 206 +- ...ey.html => _src_lib_polykey_.polykey.html} | 122 +- ...html => _src_lib_vaults_vault_.vault.html} | 188 +- ...ib_vaults_vaultmanager_.vaultmanager.html} | 183 +- ...agent_d_.agent.agent.agentmessagetype.html | 527 +++ docs/globals.html | 1428 +----- docs/index.html | 519 +-- ...js_agent_d_.agent.agent.iagentmessage.html | 296 ++ ...ent.agent.icreatesecretrequestmessage.html | 296 ++ ...nt.agent.icreatesecretresponsemessage.html | 239 + ...gent.agent.idecryptfilerequestmessage.html | 277 ++ ...ent.agent.idecryptfileresponsemessage.html | 239 + ....agent.agent.ideletekeyrequestmessage.html | 239 + ...agent.agent.ideletekeyresponsemessage.html | 239 + ....agent.agent.iderivekeyrequestmessage.html | 277 ++ ...agent.agent.iderivekeyresponsemessage.html | 239 + ...nt.agent.idestroysecretrequestmessage.html | 258 ++ ...t.agent.idestroysecretresponsemessage.html | 239 + ...ent.agent.idestroyvaultrequestmessage.html | 239 + ...nt.agent.idestroyvaultresponsemessage.html | 239 + ...gent.agent.iencryptfilerequestmessage.html | 258 ++ ...ent.agent.iencryptfileresponsemessage.html | 239 + ...js_agent_d_.agent.agent.ierrormessage.html | 239 + ..._d_.agent.agent.igetkeyrequestmessage.html | 239 + ...d_.agent.agent.igetkeyresponsemessage.html | 258 ++ ...gent.igetprimarykeypairrequestmessage.html | 239 + ...ent.igetprimarykeypairresponsemessage.html | 258 ++ ....agent.agent.igetsecretrequestmessage.html | 258 ++ ...agent.agent.igetsecretresponsemessage.html | 239 + ..._.agent.agent.ilistkeysrequestmessage.html | 202 + ....agent.agent.ilistkeysresponsemessage.html | 239 + ....agent.agent.ilistnodesrequestmessage.html | 239 + ...agent.agent.ilistnodesresponsemessage.html | 239 + ...gent.agent.ilistsecretsrequestmessage.html | 239 + ...ent.agent.ilistsecretsresponsemessage.html | 239 + ...agent.agent.ilistvaultsrequestmessage.html | 202 + ...gent.agent.ilistvaultsresponsemessage.html | 239 + ...d_.agent.agent.inewnoderequestmessage.html | 296 ++ ..._.agent.agent.inewnoderesponsemessage.html | 239 + ..._.agent.agent.inewvaultrequestmessage.html | 239 + ....agent.agent.inewvaultresponsemessage.html | 239 + ...ent.agent.iregisternoderequestmessage.html | 239 + ...nt.agent.iregisternoderesponsemessage.html | 239 + ..._.agent.agent.isignfilerequestmessage.html | 277 ++ ....agent.agent.isignfileresponsemessage.html | 239 + ...ent.agent.iupdatesecretrequestmessage.html | 296 ++ ...nt.agent.iupdatesecretresponsemessage.html | 239 + ...agent.agent.iverifyfilerequestmessage.html | 258 ++ ...gent.agent.iverifyfileresponsemessage.html | 239 + .../_proto_js_git_d_.git.git.iinforeply.html | 282 ++ ..._proto_js_git_d_.git.git.iinforequest.html | 263 ++ .../_proto_js_git_d_.git.git.ipackreply.html | 282 ++ ..._proto_js_git_d_.git.git.ipackrequest.html | 282 ++ ...s_peer_d_.peer.peer.ihandshakemessage.html | 305 ++ ...js_peer_d_.peer.peer.ipeerinfomessage.html | 286 ++ ...b_peers_peermanager_.socialdiscovery.html} | 93 +- .../_proto_js_agent_d_.agent.agent.html | 540 +++ docs/modules/_proto_js_agent_d_.agent.html | 181 + docs/modules/_proto_js_agent_d_.html | 173 + docs/modules/_proto_js_git_d_.git.git.html | 231 + docs/modules/_proto_js_git_d_.git.html | 181 + docs/modules/_proto_js_git_d_.html | 173 + docs/modules/_proto_js_peer_d_.html | 173 + docs/modules/_proto_js_peer_d_.peer.html | 181 + docs/modules/_proto_js_peer_d_.peer.peer.html | 211 + .../modules/_src_lib_agent_polykeyagent_.html | 781 ++++ .../_src_lib_agent_polykeyclient_.html | 781 ++++ docs/modules/_src_lib_keys_keymanager_.html | 266 ++ .../_src_lib_keys_keymanagerworker_.html | 354 ++ ...lib_keys_pki_publickeyinfrastructure_.html | 171 + .../_src_lib_peers_multicastbroadcaster_.html | 274 ++ docs/modules/_src_lib_peers_peerinfo_.html | 175 + docs/modules/_src_lib_peers_peermanager_.html | 268 ++ docs/modules/_src_lib_polykey_.html | 171 + docs/modules/_src_lib_utils_.html | 278 ++ docs/modules/_src_lib_vaults_vault_.html | 201 + .../_src_lib_vaults_vaultmanager_.html | 171 + nix/node-packages.nix | 92 +- package-lock.json | 125 +- proto/js/Agent.d.ts | 4112 ++++++++--------- proto/js/Agent.js | 16 +- proto/js/Git.d.ts | 536 +-- proto/js/Peer.d.ts | 234 +- 147 files changed, 44203 insertions(+), 5274 deletions(-) create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.agentmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.createsecretresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.decryptfilerequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.decryptfileresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.deletekeyrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.deletekeyresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.derivekeyrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.derivekeyresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.destroysecretrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.destroysecretresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.destroyvaultrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.destroyvaultresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.encryptfilerequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.encryptfileresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.errormessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.getkeyrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.getkeyresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.getprimarykeypairrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.getprimarykeypairresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.getsecretrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.getsecretresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.listkeysrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.listkeysresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.listnodesrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.listnodesresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.listsecretsrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.listsecretsresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.listvaultsrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.listvaultsresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.newnoderesponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.newvaultrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.newvaultresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.registernoderequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.registernoderesponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.signfilerequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.signfileresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.updatesecretresponsemessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.verifyfilerequestmessage.html create mode 100644 docs/classes/_proto_js_agent_d_.agent.agent.verifyfileresponsemessage.html create mode 100644 docs/classes/_proto_js_git_d_.git.git.gitserver.html create mode 100644 docs/classes/_proto_js_git_d_.git.git.inforeply.html create mode 100644 docs/classes/_proto_js_git_d_.git.git.inforequest.html create mode 100644 docs/classes/_proto_js_git_d_.git.git.packreply.html create mode 100644 docs/classes/_proto_js_git_d_.git.git.packrequest.html create mode 100644 docs/classes/_proto_js_peer_d_.peer.peer.handshakemessage.html create mode 100644 docs/classes/_proto_js_peer_d_.peer.peer.peerinfomessage.html rename docs/classes/{polykeyagent.html => _src_lib_agent_polykeyagent_.polykeyagent.html} (68%) rename docs/classes/{polykeyclient.html => _src_lib_agent_polykeyclient_.polykeyclient.html} (81%) rename docs/classes/{keymanager.html => _src_lib_keys_keymanager_.keymanager.html} (81%) rename docs/classes/{publickeyinfrastructure.html => _src_lib_keys_pki_publickeyinfrastructure_.publickeyinfrastructure.html} (69%) rename docs/classes/{multicastbroadcaster.html => _src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html} (73%) rename docs/classes/{address.html => _src_lib_peers_peerinfo_.address.html} (65%) rename docs/classes/{peerinfo.html => _src_lib_peers_peerinfo_.peerinfo.html} (65%) rename docs/classes/{peermanager.html => _src_lib_peers_peermanager_.peermanager.html} (61%) rename docs/classes/{polykey.html => _src_lib_polykey_.polykey.html} (56%) rename docs/classes/{vault.html => _src_lib_vaults_vault_.vault.html} (76%) rename docs/classes/{vaultmanager.html => _src_lib_vaults_vaultmanager_.vaultmanager.html} (68%) create mode 100644 docs/enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.iagentmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.icreatesecretrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.icreatesecretresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.idecryptfilerequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.idecryptfileresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.ideletekeyrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.ideletekeyresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.iderivekeyrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.iderivekeyresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.idestroysecretrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.idestroysecretresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.idestroyvaultrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.idestroyvaultresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.iencryptfilerequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.iencryptfileresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.ierrormessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.igetkeyrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.igetkeyresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.igetsecretrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.igetsecretresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.ilistkeysrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.ilistkeysresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.ilistnodesrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.ilistnodesresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.ilistsecretsrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.ilistsecretsresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.ilistvaultsrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.ilistvaultsresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.inewnoderequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.inewnoderesponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.inewvaultrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.inewvaultresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.iregisternoderequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.iregisternoderesponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.isignfilerequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.isignfileresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretrequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretresponsemessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.iverifyfilerequestmessage.html create mode 100644 docs/interfaces/_proto_js_agent_d_.agent.agent.iverifyfileresponsemessage.html create mode 100644 docs/interfaces/_proto_js_git_d_.git.git.iinforeply.html create mode 100644 docs/interfaces/_proto_js_git_d_.git.git.iinforequest.html create mode 100644 docs/interfaces/_proto_js_git_d_.git.git.ipackreply.html create mode 100644 docs/interfaces/_proto_js_git_d_.git.git.ipackrequest.html create mode 100644 docs/interfaces/_proto_js_peer_d_.peer.peer.ihandshakemessage.html create mode 100644 docs/interfaces/_proto_js_peer_d_.peer.peer.ipeerinfomessage.html rename docs/interfaces/{socialdiscovery.html => _src_lib_peers_peermanager_.socialdiscovery.html} (57%) create mode 100644 docs/modules/_proto_js_agent_d_.agent.agent.html create mode 100644 docs/modules/_proto_js_agent_d_.agent.html create mode 100644 docs/modules/_proto_js_agent_d_.html create mode 100644 docs/modules/_proto_js_git_d_.git.git.html create mode 100644 docs/modules/_proto_js_git_d_.git.html create mode 100644 docs/modules/_proto_js_git_d_.html create mode 100644 docs/modules/_proto_js_peer_d_.html create mode 100644 docs/modules/_proto_js_peer_d_.peer.html create mode 100644 docs/modules/_proto_js_peer_d_.peer.peer.html create mode 100644 docs/modules/_src_lib_agent_polykeyagent_.html create mode 100644 docs/modules/_src_lib_agent_polykeyclient_.html create mode 100644 docs/modules/_src_lib_keys_keymanager_.html create mode 100644 docs/modules/_src_lib_keys_keymanagerworker_.html create mode 100644 docs/modules/_src_lib_keys_pki_publickeyinfrastructure_.html create mode 100644 docs/modules/_src_lib_peers_multicastbroadcaster_.html create mode 100644 docs/modules/_src_lib_peers_peerinfo_.html create mode 100644 docs/modules/_src_lib_peers_peermanager_.html create mode 100644 docs/modules/_src_lib_polykey_.html create mode 100644 docs/modules/_src_lib_utils_.html create mode 100644 docs/modules/_src_lib_vaults_vault_.html create mode 100644 docs/modules/_src_lib_vaults_vaultmanager_.html diff --git a/dist/cli/cli.js b/dist/cli/cli.js index 2011c34c3..1a90cfda9 100644 --- a/dist/cli/cli.js +++ b/dist/cli/cli.js @@ -232,7 +232,6 @@ function makeStartAgentCommand() { const pid = await Polykey_1.PolykeyAgent.startAgent(daemon); _1.pkLogger(`agent has started with pid of ${pid}`, _1.PKMessageType.SUCCESS); } - process.exit(); })); } function makeRestartAgentCommand() { @@ -246,7 +245,6 @@ function makeRestartAgentCommand() { const daemon = options.daemon; const pid = await Polykey_1.PolykeyAgent.startAgent(daemon); _1.pkLogger(`agent has restarted with pid of ${pid}`, _1.PKMessageType.SUCCESS); - process.exit(); })); } function makeAgentStatusCommand() { @@ -254,7 +252,6 @@ function makeAgentStatusCommand() { const client = Polykey_1.PolykeyAgent.connectToAgent(); const status = await client.getAgentStatus(); _1.pkLogger(`agent status is: '${status}'`, _1.PKMessageType.INFO); - process.exit(); })); } function makeStopAgentCommand() { @@ -282,7 +279,6 @@ function makeStopAgentCommand() { throw Error('agent failed to stop'); } } - process.exit(); })); } function makeListNodesCommand() { @@ -302,7 +298,6 @@ function makeListNodesCommand() { _1.pkLogger(node, _1.PKMessageType.INFO); } } - process.exit(); })); } function makeNewNodeCommand() { @@ -328,7 +323,6 @@ function makeNewNodeCommand() { else { throw Error('something went wrong with node creation'); } - process.exit(); })); } function makeLoadNodeCommand() { @@ -347,7 +341,6 @@ function makeLoadNodeCommand() { else { throw Error('something went wrong when loading node'); } - process.exit(); })); } function makeAgentCommand() { @@ -422,10 +415,8 @@ function makeVerifyCommand() { .description('verification operations') .option('--node-path ', 'node path') .option('-k, --public-key ', 'path to public key that will be used to verify files, defaults to primary key') - .option('-s, --detach-sig ', 'path to detached signature for file, defaults to [filename].sig') - .requiredOption('-f, --verified-file ', 'file to be verified') + .requiredOption('-f, --signed-file ', 'file to be verified') .action(_1.actionRunner(async (options) => { - var _a; const client = Polykey_1.PolykeyAgent.connectToAgent(); const status = await client.getAgentStatus(); if (status != 'online') { @@ -434,8 +425,7 @@ function makeVerifyCommand() { const nodePath = _1.determineNodePath(options); const publicKey = options.publicKey; const filePath = options.signedFile; - const signaturePath = (_a = options.detachSig) !== null && _a !== void 0 ? _a : filePath + '.sig'; - const verified = await client.verifyFile(nodePath, filePath, signaturePath); + const verified = await client.verifyFile(nodePath, filePath, publicKey); if (verified) { _1.pkLogger(`file '${filePath}' was successfully verified`, _1.PKMessageType.SUCCESS); } @@ -641,7 +631,7 @@ function makeListSecretsCommand() { } function makeNewSecretCommand() { return new commander_1.default.Command('new') - .description('create a secret within a given vault') + .description("create a secret within a given vault, specify a secret path with ':'") .option('--node-path ', 'node path') .arguments("secret path of the format ':'") .requiredOption('-f, --file-path ', 'path to the secret to be added') @@ -664,7 +654,7 @@ function makeNewSecretCommand() { try { // Add the secret const successful = await client.createSecret(nodePath, vaultName, secretName, filePath); - _1.pkLogger(`secret '${secretName}' was ${successful ? '' : 'un-'}sucessfully added to vault '${vaultName}'`, _1.PKMessageType.SUCCESS); + _1.pkLogger(`secret '${secretName}' was ${successful ? '' : 'un-'}successfully added to vault '${vaultName}'`, _1.PKMessageType.SUCCESS); } catch (err) { throw Error(`Error when adding secret: ${err.message}`); @@ -673,7 +663,7 @@ function makeNewSecretCommand() { } function makeUpdateSecretCommand() { return new commander_1.default.Command('update') - .description('update a secret within a given vault') + .description("update a secret within a given vault, specify a secret path with ':'") .option('--node-path ', 'node path') .arguments("secret path of the format ':'") .requiredOption('-f, --file-path ', 'path to the new secret') @@ -696,7 +686,7 @@ function makeUpdateSecretCommand() { try { // Update the secret const successful = await client.updateSecret(nodePath, vaultName, secretName, filePath); - _1.pkLogger(`secret '${secretName}' was ${successful ? '' : 'un-'}sucessfully updated in vault '${vaultName}'`, successful ? _1.PKMessageType.SUCCESS : _1.PKMessageType.WARNING); + _1.pkLogger(`secret '${secretName}' was ${successful ? '' : 'un-'}successfully updated in vault '${vaultName}'`, successful ? _1.PKMessageType.SUCCESS : _1.PKMessageType.WARNING); } catch (err) { throw Error(`Error when updating secret: ${err.message}`); @@ -706,7 +696,7 @@ function makeUpdateSecretCommand() { function makeDeleteSecretCommand() { return new commander_1.default.Command('delete') .alias('del') - .description('delete a secret from a given vault') + .description("delete a secret from a given vault, specify a secret path with ':'") .arguments("secret path of the format ':'") .option('--verbose', 'increase verbosity level by one') .action(_1.actionRunner(async (options) => { @@ -726,7 +716,7 @@ function makeDeleteSecretCommand() { try { // Remove secret const successful = await client.destroySecret(nodePath, vaultName, secretName); - _1.pkLogger(`secret '${secretName}' was ${successful ? '' : 'un-'}sucessfully removed from vault '${vaultName}'`, _1.PKMessageType.SUCCESS); + _1.pkLogger(`secret '${secretName}' was ${successful ? '' : 'un-'}successfully removed from vault '${vaultName}'`, _1.PKMessageType.SUCCESS); } catch (err) { throw Error(`Error when removing secret: ${err.message}`); @@ -735,7 +725,7 @@ function makeDeleteSecretCommand() { } function makeGetSecretCommand() { return new commander_1.default.Command('get') - .description('retrieve a secret from a given vault') + .description("retrieve a secret from a given vault, specify a secret path with ':'") .arguments("secret path of the format ':'") .option('-e, --env', 'wrap the secret in an environment variable declaration') .action(_1.actionRunner(async (options) => { @@ -771,12 +761,12 @@ function makeGetSecretCommand() { function makeSecretEnvCommand() { return new commander_1.default.Command('env') .storeOptionsAsProperties(false) - .description('run a modified environment with injected secrets') + .description("run a modified environment with injected secrets, specify a secret path with ':'") .option('--command ', 'In the environment of the derivation, run the shell command cmd. This command is executed in an interactive shell. (Use --run to use a non-interactive shell instead.)') .option('--run ', 'Like --command, but executes the command in a non-interactive shell. This means (among other things) that if you hit Ctrl-C while the command is running, the shell exits.') .arguments("secrets to inject into env, of the format ':'. you can also control what the environment variable will be called using ':=', defaults to upper, snake case of the original secret name.") .action(_1.actionRunner(async (cmd) => { - var _a; + var _a, _b; const options = cmd.opts(); const client = Polykey_1.PolykeyAgent.connectToAgent(); const nodePath = _1.determineNodePath(options); @@ -785,7 +775,7 @@ function makeSecretEnvCommand() { const run = options.run; const secretPathList = Array.from(cmd.args.values()); if (secretPathList.length < 1) { - throw Error("please specify at least one secret"); + throw Error('please specify at least one secret'); } // Parse secret paths in list const parsedPathList = []; @@ -797,7 +787,7 @@ function makeSecretEnvCommand() { parsedPathList.push({ vaultName, secretName, - variableName: variableName !== null && variableName !== void 0 ? variableName : secretName.toUpperCase().replace('-', '_') + variableName: variableName !== null && variableName !== void 0 ? variableName : secretName.toUpperCase().replace('-', '_'), }); } const secretEnv = { ...process_1.default.env }; @@ -812,7 +802,7 @@ function makeSecretEnvCommand() { throw Error(`Error when retrieving secret: ${err.message}`); } try { - const shellPath = process_1.default.env.SHELL; + const shellPath = (_b = process_1.default.env.SHELL) !== null && _b !== void 0 ? _b : "sh"; const args = []; if (command && run) { throw Error('only one of --command or --run can be specified'); @@ -829,7 +819,7 @@ function makeSecretEnvCommand() { const shell = child_process_1.spawn(shellPath, args, { stdio: 'inherit', env: secretEnv, - shell: true + shell: true, }); shell.on('close', (code) => { if (code != 0) { @@ -905,7 +895,7 @@ function makeDeleteKeyCommand() { const nodePath = _1.determineNodePath(options); const keyName = options.keyName; const successful = await client.deleteKey(nodePath, keyName); - _1.pkLogger(`key '${keyName}' was ${successful ? '' : 'un-'}sucessfully deleted`, successful ? _1.PKMessageType.SUCCESS : _1.PKMessageType.INFO); + _1.pkLogger(`key '${keyName}' was ${successful ? '' : 'un-'}successfully deleted`, successful ? _1.PKMessageType.SUCCESS : _1.PKMessageType.INFO); })); } function makeListKeysCommand() { @@ -951,10 +941,10 @@ function makeListPrimaryKeyPairCommand() { _1.pkLogger(JSON.stringify(keypair), _1.PKMessageType.INFO); } else { - _1.pkLogger("Public Key:", _1.PKMessageType.SUCCESS); + _1.pkLogger('Public Key:', _1.PKMessageType.SUCCESS); _1.pkLogger(keypair.publicKey, _1.PKMessageType.INFO); if (privateKey) { - _1.pkLogger("Private Key:", _1.PKMessageType.SUCCESS); + _1.pkLogger('Private Key:', _1.PKMessageType.SUCCESS); _1.pkLogger(keypair.privateKey, _1.PKMessageType.INFO); } } diff --git a/dist/lib/browser-client.d.ts b/dist/lib/browser-client.d.ts index 03a8204f2..6b54db0e2 100644 --- a/dist/lib/browser-client.d.ts +++ b/dist/lib/browser-client.d.ts @@ -17,7 +17,7 @@ declare class PolykeyClient { privateKey: string; }>; signFile(nodePath: string, filePath: string, privateKeyPath?: string, passphrase?: string): Promise; - verifyFile(nodePath: string, filePath: string, signaturePath?: string): Promise; + verifyFile(nodePath: string, filePath: string, publicKeyPath?: string): Promise; encryptFile(nodePath: string, filePath: string, publicKeyPath?: string): Promise; decryptFile(nodePath: string, filePath: string, privateKeyPath?: string, passphrase?: string): Promise; listVaults(nodePath: string): Promise; diff --git a/dist/lib/browser-client.js b/dist/lib/browser-client.js index 022c3ed24..b4d80d78c 100644 --- a/dist/lib/browser-client.js +++ b/dist/lib/browser-client.js @@ -264,9 +264,9 @@ class PolykeyClient { const { signaturePath } = SignFileResponseMessage.decode(subMessage); return signaturePath; } - async verifyFile(nodePath, filePath, signaturePath) { + async verifyFile(nodePath, filePath, publicKeyPath) { var _a; - const request = VerifyFileRequestMessage.encode({ filePath, signaturePath }).finish(); + const request = VerifyFileRequestMessage.encode({ filePath, publicKeyPath }).finish(); const encodedResponse = await this.handleAgentCommunication(AgentMessageType.VERIFY_FILE, nodePath, request); const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.VERIFY_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage; if (!subMessage) { @@ -3414,7 +3414,6 @@ $root.agent = (function() { * @memberof agent * @interface IVerifyFileRequestMessage * @property {string|null} [filePath] VerifyFileRequestMessage filePath - * @property {string|null} [signaturePath] VerifyFileRequestMessage signaturePath * @property {string|null} [publicKeyPath] VerifyFileRequestMessage publicKeyPath */ @@ -3441,14 +3440,6 @@ $root.agent = (function() { */ VerifyFileRequestMessage.prototype.filePath = ""; - /** - * VerifyFileRequestMessage signaturePath. - * @member {string} signaturePath - * @memberof agent.VerifyFileRequestMessage - * @instance - */ - VerifyFileRequestMessage.prototype.signaturePath = ""; - /** * VerifyFileRequestMessage publicKeyPath. * @member {string} publicKeyPath @@ -3483,10 +3474,8 @@ $root.agent = (function() { w = $Writer.create(); if (m.filePath != null && Object.hasOwnProperty.call(m, "filePath")) w.uint32(10).string(m.filePath); - if (m.signaturePath != null && Object.hasOwnProperty.call(m, "signaturePath")) - w.uint32(18).string(m.signaturePath); if (m.publicKeyPath != null && Object.hasOwnProperty.call(m, "publicKeyPath")) - w.uint32(26).string(m.publicKeyPath); + w.uint32(18).string(m.publicKeyPath); return w; }; @@ -3512,9 +3501,6 @@ $root.agent = (function() { m.filePath = r.string(); break; case 2: - m.signaturePath = r.string(); - break; - case 3: m.publicKeyPath = r.string(); break; default: diff --git a/dist/lib/browser-client.js.map b/dist/lib/browser-client.js.map index 1f150c095..cecc6adfe 100644 --- a/dist/lib/browser-client.js.map +++ b/dist/lib/browser-client.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://browser-client/webpack/universalModuleDefinition","webpack://browser-client/webpack/bootstrap","webpack://browser-client/./src/lib/agent/PolykeyClient.ts","webpack://browser-client/./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack://browser-client/(webpack)/buildin/global.js","webpack://browser-client/external \"base64-js\"","webpack://browser-client/external \"ieee754\"","webpack://browser-client/external \"isarray\"","webpack://browser-client/./proto/js/Agent.js","webpack://browser-client/external \"protobufjs/minimal\""],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA,8CAAa;AACb,8CAA8C,cAAc;AAC5D,gBAAgB,mBAAO,CAAC,CAAyB;AACjD,OAAO,4lCAA4lC;AACnmC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA,uBAAuB,QAAQ;AAC/B,yDAAyD,MAAM;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,6DAA6D,iCAAiC;AAC9F;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sBAAsB;AAC9E;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,wDAAwD,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,qDAAqD,UAAU;AAC/D;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,gEAAgE,oBAAoB;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,uCAAuC;AAC9F;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,yDAAyD,0BAA0B;AACnF;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,0DAA0D,0BAA0B;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,0DAA0D,uCAAuC;AACjG;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,uDAAuD,YAAY;AACnE;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,2DAA2D,YAAY;AACvE;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,4CAA4C;AACrG;AACA;AACA,yDAAyD,+CAA+C;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,4DAA4D,wBAAwB;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,4CAA4C;AACrG;AACA;AACA,yDAAyD,+CAA+C;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,CAAW;AAChC,cAAc,mBAAO,CAAC,CAAS;AAC/B,cAAc,mBAAO,CAAC,CAAS;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AC5vDA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACnBA,sC;;;;;;ACAA,oC;;;;;;ACAA,oC;;;;;;;ACAA;AACa;;AAEb,gBAAgB,mBAAO,CAAC,CAAoB;;AAE5C;AACA;;AAEA;AACA,0EAA0E;;AAE1E;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,4BAA4B;AAClD,sBAAsB,aAAa;AACnC,sBAAsB,YAAY;AAClC,sBAAsB,gBAAgB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;;AAEA;AACA,4EAA4E,uCAAuC;AACnH;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,mBAAmB;AACxC,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;;AAEA;AACA,4EAA4E,uCAAuC;AACnH;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,mBAAmB;AACxC,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;;AAEA;AACA,2FAA2F,sDAAsD;AACjJ;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,kCAAkC;AACvD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,qBAAqB,4BAA4B;AACjD;AACA;AACA;AACA;;AAEA;AACA,qFAAqF,gDAAgD;AACrI;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,4BAA4B;AACjD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;;AAEA;AACA,sFAAsF,iDAAiD;AACvI;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,6BAA6B;AAClD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAmD;AAC3I;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,+BAA+B;AACpD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;;AAEA;AACA,sFAAsF,iDAAiD;AACvI;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,6BAA6B;AAClD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAmD;AAC3I;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,+BAA+B;AACpD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;;AAEA;AACA,yFAAyF,oDAAoD;AAC7I;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,gCAAgC;AACrD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;;AAEA;AACA,yFAAyF,oDAAoD;AAC7I;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,gCAAgC;AACrD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;;AAEA;AACA,yFAAyF,oDAAoD;AAC7I;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,gCAAgC;AACrD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAmD;AAC3I;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,+BAA+B;AACpD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;;AAEA;AACA,yFAAyF,oDAAoD;AAC7I;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,gCAAgC;AACrD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;;AAEA;AACA,sFAAsF,iDAAiD;AACvI;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,6BAA6B;AAClD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;;AAEA;AACA,2FAA2F,sDAAsD;AACjJ;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,kCAAkC;AACvD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;;AAEA;AACA,yFAAyF,oDAAoD;AAC7I;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,gCAAgC;AACrD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,gBAAgB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;;AAEA;AACA,2FAA2F,sDAAsD;AACjJ;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,kCAAkC;AACvD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;;AAEA;AACA,2FAA2F,sDAAsD;AACjJ;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,kCAAkC;AACvD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qCAAqC;AACxD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qCAAqC;AACxD,qBAAqB,mCAAmC;AACxD;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,uDAAuD;AACnJ;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,mCAAmC;AACxD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAmD;AAC3I;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,+BAA+B;AACpD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAmD;AAC3I;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,+BAA+B;AACpD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;;AAEA;AACA,sFAAsF,iDAAiD;AACvI;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,6BAA6B;AAClD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA,oFAAoF,+CAA+C;AACnI;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,2BAA2B;AAChD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,qBAAqB,4BAA4B;AACjD;AACA;AACA;AACA;;AAEA;AACA,qFAAqF,gDAAgD;AACrI;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,4BAA4B;AACjD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wCAAwC;AAC3D;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wCAAwC;AAC3D,qBAAqB,sCAAsC;AAC3D;AACA;AACA;AACA;;AAEA;AACA,+FAA+F,0DAA0D;AACzJ;AACA;AACA;AACA,mBAAmB,uCAAuC;AAC1D,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,sCAAsC;AAC3D,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yCAAyC;AAC5D;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yCAAyC;AAC5D,qBAAqB,uCAAuC;AAC5D;AACA;AACA;AACA;;AAEA;AACA,gGAAgG,2DAA2D;AAC3J;AACA;AACA;AACA,mBAAmB,wCAAwC;AAC3D,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,uCAAuC;AAC5D,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,gBAAgB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;;AAEA;AACA,2FAA2F,sDAAsD;AACjJ;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,kCAAkC;AACvD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAmD;AAC3I;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,+BAA+B;AACpD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,CAAC;;AAED;;;;;;;ACvuIA,+C","file":"browser-client.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"browser-client\"] = factory();\n\telse\n\t\troot[\"browser-client\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Agent_1 = require(\"../../../proto/js/Agent\");\nconst { AgentMessage, AgentMessageType, CreateSecretRequestMessage, CreateSecretResponseMessage, DecryptFileRequestMessage, DecryptFileResponseMessage, DeleteKeyRequestMessage, DeleteKeyResponseMessage, DeriveKeyRequestMessage, DeriveKeyResponseMessage, DestroySecretRequestMessage, DestroySecretResponseMessage, DestroyVaultRequestMessage, DestroyVaultResponseMessage, EncryptFileRequestMessage, EncryptFileResponseMessage, ErrorMessage, GetPrimaryKeyPairRequestMessage, GetPrimaryKeyPairResponseMessage, GetSecretRequestMessage, GetSecretResponseMessage, GetKeyRequestMessage, GetKeyResponseMessage, ListKeysRequestMessage, ListKeysResponseMessage, ListNodesRequestMessage, ListNodesResponseMessage, ListSecretsRequestMessage, ListSecretsResponseMessage, ListVaultsRequestMessage, ListVaultsResponseMessage, NewNodeRequestMessage, NewNodeResponseMessage, NewVaultRequestMessage, NewVaultResponseMessage, RegisterNodeRequestMessage, RegisterNodeResponseMessage, SignFileRequestMessage, SignFileResponseMessage, UpdateSecretRequestMessage, UpdateSecretResponseMessage, VerifyFileRequestMessage, VerifyFileResponseMessage, } = Agent_1.agent;\nclass PolykeyClient {\n constructor(getStream) {\n this.getStream = getStream;\n }\n async sendRequestToAgent(request) {\n const stream = this.getStream();\n const responseList = await new Promise((resolve, reject) => {\n try {\n const responseList = [];\n stream.on('data', (data) => {\n if (data instanceof Uint8Array) {\n responseList.push(data);\n }\n else {\n responseList.push(...data);\n }\n });\n stream.on('error', (err) => {\n reject(err);\n });\n stream.on('end', () => {\n resolve(responseList);\n });\n if (!stream.writableEnded) {\n stream.write(request);\n }\n }\n catch (err) {\n reject(err);\n }\n });\n return responseList;\n }\n async handleAgentCommunication(type, nodePath, request) {\n // Encode message and sent\n const agentMessage = AgentMessage.encode({\n type: type,\n isResponse: false,\n nodePath: nodePath,\n subMessage: request,\n }).finish();\n const responseList = await this.sendRequestToAgent(agentMessage);\n const agentMessageList = [];\n for (const response of responseList.values()) {\n const { subMessage, type } = AgentMessage.decode(response);\n if (type == AgentMessageType.ERROR) {\n const { error } = ErrorMessage.decode(subMessage);\n const reason = new Error(`Agent Error: ${error}`);\n throw reason;\n }\n else {\n agentMessageList.push(AgentMessage.decode(response));\n }\n }\n return agentMessageList;\n }\n async registerNode(path, passphrase) {\n var _a;\n const registerNodeRequest = RegisterNodeRequestMessage.encode({ passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.REGISTER_NODE, path, registerNodeRequest);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.REGISTER_NODE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = RegisterNodeResponseMessage.decode(subMessage);\n return successful;\n }\n async newNode(path, name, email, passphrase, nbits) {\n var _a;\n const newNodeRequest = NewNodeRequestMessage.encode({ name, email, passphrase, nbits }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.NEW_NODE, path, newNodeRequest);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.NEW_NODE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = NewNodeResponseMessage.decode(subMessage);\n return successful;\n }\n async listNodes(unlockedOnly = true) {\n var _a;\n const newNodeRequest = ListNodesRequestMessage.encode({ unlockedOnly }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_NODES, undefined, newNodeRequest);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_NODES)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { nodes } = ListNodesResponseMessage.decode(subMessage);\n return nodes;\n }\n /////////////////////\n // Key commands //\n /////////////////////\n async deriveKey(nodePath, keyName, passphrase) {\n var _a;\n const request = DeriveKeyRequestMessage.encode({ keyName, passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DERIVE_KEY, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DERIVE_KEY)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DeriveKeyResponseMessage.decode(subMessage);\n return successful;\n }\n async deleteKey(nodePath, keyName) {\n var _a;\n const request = DeleteKeyRequestMessage.encode({ keyName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DELETE_KEY, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DELETE_KEY)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DeleteKeyResponseMessage.decode(subMessage);\n return successful;\n }\n async listKeys(nodePath) {\n var _a;\n const request = ListKeysRequestMessage.encode({}).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_KEYS, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_KEYS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { keyNames } = ListKeysResponseMessage.decode(subMessage);\n return keyNames;\n }\n async getKey(nodePath, keyName) {\n var _a;\n const request = GetKeyRequestMessage.encode({ keyName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_KEY, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.GET_KEY)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { keyContent } = GetKeyResponseMessage.decode(subMessage);\n return keyContent;\n }\n async getPrimaryKeyPair(nodePath, includePrivateKey = false) {\n var _a;\n const request = GetPrimaryKeyPairRequestMessage.encode({ includePrivateKey }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_PRIMARY_KEYPAIR, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.GET_PRIMARY_KEYPAIR)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { publicKey, privateKey } = GetPrimaryKeyPairResponseMessage.decode(subMessage);\n return { publicKey, privateKey };\n }\n /////////////////////\n // Crypto commands //\n /////////////////////\n async signFile(nodePath, filePath, privateKeyPath, passphrase) {\n var _a;\n const request = SignFileRequestMessage.encode({ filePath, privateKeyPath, passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.SIGN_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.SIGN_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { signaturePath } = SignFileResponseMessage.decode(subMessage);\n return signaturePath;\n }\n async verifyFile(nodePath, filePath, signaturePath) {\n var _a;\n const request = VerifyFileRequestMessage.encode({ filePath, signaturePath }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.VERIFY_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.VERIFY_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { verified } = VerifyFileResponseMessage.decode(subMessage);\n return verified;\n }\n async encryptFile(nodePath, filePath, publicKeyPath) {\n var _a;\n const request = EncryptFileRequestMessage.encode({ filePath, publicKeyPath }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.ENCRYPT_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.ENCRYPT_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { encryptedPath } = EncryptFileResponseMessage.decode(subMessage);\n return encryptedPath;\n }\n async decryptFile(nodePath, filePath, privateKeyPath, passphrase) {\n var _a;\n const request = DecryptFileRequestMessage.encode({ filePath, privateKeyPath, passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DECRYPT_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DECRYPT_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { decryptedPath } = DecryptFileResponseMessage.decode(subMessage);\n return decryptedPath;\n }\n //////////////////////\n // Vault Operations //\n //////////////////////\n async listVaults(nodePath) {\n var _a;\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_VAULTS, nodePath);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_VAULTS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { vaultNames } = ListVaultsResponseMessage.decode(subMessage);\n return vaultNames;\n }\n async newVault(nodePath, vaultName) {\n var _a;\n const request = NewVaultRequestMessage.encode({ vaultName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.NEW_VAULT, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.NEW_VAULT)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = NewVaultResponseMessage.decode(subMessage);\n return successful;\n }\n async destroyVault(nodePath, vaultName) {\n var _a;\n const request = DestroyVaultRequestMessage.encode({ vaultName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DESTROY_VAULT, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DESTROY_VAULT)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DestroyVaultResponseMessage.decode(subMessage);\n return successful;\n }\n ///////////////////////\n // Secret Operations //\n ///////////////////////\n async listSecrets(nodePath, vaultName) {\n var _a;\n const request = ListSecretsRequestMessage.encode({ vaultName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_SECRETS, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_SECRETS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { secretNames } = ListSecretsResponseMessage.decode(subMessage);\n return secretNames;\n }\n async createSecret(nodePath, vaultName, secretName, secret) {\n var _a;\n let request;\n if (typeof secret == 'string') {\n request = CreateSecretRequestMessage.encode({ vaultName, secretName, secretPath: secret }).finish();\n }\n else {\n request = CreateSecretRequestMessage.encode({ vaultName, secretName, secretContent: secret }).finish();\n }\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.CREATE_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.CREATE_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = CreateSecretResponseMessage.decode(subMessage);\n return successful;\n }\n async destroySecret(nodePath, vaultName, secretName) {\n var _a;\n const request = DestroySecretRequestMessage.encode({ vaultName, secretName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DESTROY_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DESTROY_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DestroySecretResponseMessage.decode(subMessage);\n return successful;\n }\n async getSecret(nodePath, vaultName, secretName) {\n var _a;\n const request = GetSecretRequestMessage.encode({ vaultName, secretName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.GET_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { secret } = GetSecretResponseMessage.decode(subMessage);\n return Buffer.from(secret);\n }\n async updateSecret(nodePath, vaultName, secretName, secret) {\n var _a;\n let request;\n if (typeof secret == 'string') {\n request = UpdateSecretRequestMessage.encode({ vaultName, secretName, secretPath: secret }).finish();\n }\n else {\n request = UpdateSecretRequestMessage.encode({ vaultName, secretName, secretContent: secret }).finish();\n }\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.UPDATE_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.UPDATE_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = UpdateSecretResponseMessage.decode(subMessage);\n return successful;\n }\n ///////////////////\n // Agent control //\n ///////////////////\n async getAgentStatus() {\n var _a;\n try {\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.STATUS);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.STATUS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const status = Buffer.from(subMessage).toString();\n return status;\n }\n catch (err) {\n if (err.toString().match(/ECONNRESET|ENOENT|ECONNRESET/)) {\n return 'stopped';\n }\n throw err;\n }\n }\n async stopAgent() {\n try {\n // Tell it to start shutting and wait for response\n await this.handleAgentCommunication(AgentMessageType.STOP_AGENT);\n return true;\n }\n catch (err) {\n return (await this.getAgentStatus()) != 'online';\n }\n }\n}\nexports.default = PolykeyClient;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = require(\"base64-js\");","module.exports = require(\"ieee754\");","module.exports = require(\"isarray\");","/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/\n\"use strict\";\n\nvar $protobuf = require(\"protobufjs/minimal\");\n\n// Common aliases\nvar $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n\n// Exported root namespace\nvar $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n\n$root.agent = (function() {\n\n /**\n * Namespace agent.\n * @exports agent\n * @namespace\n */\n var agent = {};\n\n /**\n * AgentMessageType enum.\n * @name agent.AgentMessageType\n * @enum {number}\n * @property {number} ERROR=0 ERROR value\n * @property {number} STOP_AGENT=1 STOP_AGENT value\n * @property {number} STATUS=2 STATUS value\n * @property {number} REGISTER_NODE=3 REGISTER_NODE value\n * @property {number} NEW_NODE=4 NEW_NODE value\n * @property {number} LIST_NODES=5 LIST_NODES value\n * @property {number} DERIVE_KEY=6 DERIVE_KEY value\n * @property {number} SIGN_FILE=7 SIGN_FILE value\n * @property {number} VERIFY_FILE=8 VERIFY_FILE value\n * @property {number} LIST_VAULTS=9 LIST_VAULTS value\n * @property {number} NEW_VAULT=10 NEW_VAULT value\n * @property {number} DESTROY_VAULT=11 DESTROY_VAULT value\n * @property {number} LIST_SECRETS=12 LIST_SECRETS value\n * @property {number} CREATE_SECRET=13 CREATE_SECRET value\n * @property {number} DESTROY_SECRET=14 DESTROY_SECRET value\n * @property {number} GET_SECRET=15 GET_SECRET value\n * @property {number} LIST_KEYS=16 LIST_KEYS value\n * @property {number} GET_KEY=17 GET_KEY value\n * @property {number} DELETE_KEY=18 DELETE_KEY value\n * @property {number} ENCRYPT_FILE=19 ENCRYPT_FILE value\n * @property {number} DECRYPT_FILE=20 DECRYPT_FILE value\n * @property {number} GET_PRIMARY_KEYPAIR=21 GET_PRIMARY_KEYPAIR value\n * @property {number} UPDATE_SECRET=22 UPDATE_SECRET value\n */\n agent.AgentMessageType = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"ERROR\"] = 0;\n values[valuesById[1] = \"STOP_AGENT\"] = 1;\n values[valuesById[2] = \"STATUS\"] = 2;\n values[valuesById[3] = \"REGISTER_NODE\"] = 3;\n values[valuesById[4] = \"NEW_NODE\"] = 4;\n values[valuesById[5] = \"LIST_NODES\"] = 5;\n values[valuesById[6] = \"DERIVE_KEY\"] = 6;\n values[valuesById[7] = \"SIGN_FILE\"] = 7;\n values[valuesById[8] = \"VERIFY_FILE\"] = 8;\n values[valuesById[9] = \"LIST_VAULTS\"] = 9;\n values[valuesById[10] = \"NEW_VAULT\"] = 10;\n values[valuesById[11] = \"DESTROY_VAULT\"] = 11;\n values[valuesById[12] = \"LIST_SECRETS\"] = 12;\n values[valuesById[13] = \"CREATE_SECRET\"] = 13;\n values[valuesById[14] = \"DESTROY_SECRET\"] = 14;\n values[valuesById[15] = \"GET_SECRET\"] = 15;\n values[valuesById[16] = \"LIST_KEYS\"] = 16;\n values[valuesById[17] = \"GET_KEY\"] = 17;\n values[valuesById[18] = \"DELETE_KEY\"] = 18;\n values[valuesById[19] = \"ENCRYPT_FILE\"] = 19;\n values[valuesById[20] = \"DECRYPT_FILE\"] = 20;\n values[valuesById[21] = \"GET_PRIMARY_KEYPAIR\"] = 21;\n values[valuesById[22] = \"UPDATE_SECRET\"] = 22;\n return values;\n })();\n\n agent.AgentMessage = (function() {\n\n /**\n * Properties of an AgentMessage.\n * @memberof agent\n * @interface IAgentMessage\n * @property {agent.AgentMessageType|null} [type] AgentMessage type\n * @property {boolean|null} [isResponse] AgentMessage isResponse\n * @property {string|null} [nodePath] AgentMessage nodePath\n * @property {Uint8Array|null} [subMessage] AgentMessage subMessage\n */\n\n /**\n * Constructs a new AgentMessage.\n * @memberof agent\n * @classdesc Represents an AgentMessage.\n * @implements IAgentMessage\n * @constructor\n * @param {agent.IAgentMessage=} [p] Properties to set\n */\n function AgentMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * AgentMessage type.\n * @member {agent.AgentMessageType} type\n * @memberof agent.AgentMessage\n * @instance\n */\n AgentMessage.prototype.type = 0;\n\n /**\n * AgentMessage isResponse.\n * @member {boolean} isResponse\n * @memberof agent.AgentMessage\n * @instance\n */\n AgentMessage.prototype.isResponse = false;\n\n /**\n * AgentMessage nodePath.\n * @member {string} nodePath\n * @memberof agent.AgentMessage\n * @instance\n */\n AgentMessage.prototype.nodePath = \"\";\n\n /**\n * AgentMessage subMessage.\n * @member {Uint8Array} subMessage\n * @memberof agent.AgentMessage\n * @instance\n */\n AgentMessage.prototype.subMessage = $util.newBuffer([]);\n\n /**\n * Creates a new AgentMessage instance using the specified properties.\n * @function create\n * @memberof agent.AgentMessage\n * @static\n * @param {agent.IAgentMessage=} [properties] Properties to set\n * @returns {agent.AgentMessage} AgentMessage instance\n */\n AgentMessage.create = function create(properties) {\n return new AgentMessage(properties);\n };\n\n /**\n * Encodes the specified AgentMessage message. Does not implicitly {@link agent.AgentMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.AgentMessage\n * @static\n * @param {agent.IAgentMessage} m AgentMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AgentMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.type != null && Object.hasOwnProperty.call(m, \"type\"))\n w.uint32(8).int32(m.type);\n if (m.isResponse != null && Object.hasOwnProperty.call(m, \"isResponse\"))\n w.uint32(16).bool(m.isResponse);\n if (m.nodePath != null && Object.hasOwnProperty.call(m, \"nodePath\"))\n w.uint32(26).string(m.nodePath);\n if (m.subMessage != null && Object.hasOwnProperty.call(m, \"subMessage\"))\n w.uint32(34).bytes(m.subMessage);\n return w;\n };\n\n /**\n * Decodes an AgentMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.AgentMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.AgentMessage} AgentMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AgentMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.AgentMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.type = r.int32();\n break;\n case 2:\n m.isResponse = r.bool();\n break;\n case 3:\n m.nodePath = r.string();\n break;\n case 4:\n m.subMessage = r.bytes();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return AgentMessage;\n })();\n\n agent.ErrorMessage = (function() {\n\n /**\n * Properties of an ErrorMessage.\n * @memberof agent\n * @interface IErrorMessage\n * @property {string|null} [error] ErrorMessage error\n */\n\n /**\n * Constructs a new ErrorMessage.\n * @memberof agent\n * @classdesc Represents an ErrorMessage.\n * @implements IErrorMessage\n * @constructor\n * @param {agent.IErrorMessage=} [p] Properties to set\n */\n function ErrorMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ErrorMessage error.\n * @member {string} error\n * @memberof agent.ErrorMessage\n * @instance\n */\n ErrorMessage.prototype.error = \"\";\n\n /**\n * Creates a new ErrorMessage instance using the specified properties.\n * @function create\n * @memberof agent.ErrorMessage\n * @static\n * @param {agent.IErrorMessage=} [properties] Properties to set\n * @returns {agent.ErrorMessage} ErrorMessage instance\n */\n ErrorMessage.create = function create(properties) {\n return new ErrorMessage(properties);\n };\n\n /**\n * Encodes the specified ErrorMessage message. Does not implicitly {@link agent.ErrorMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ErrorMessage\n * @static\n * @param {agent.IErrorMessage} m ErrorMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ErrorMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.error != null && Object.hasOwnProperty.call(m, \"error\"))\n w.uint32(10).string(m.error);\n return w;\n };\n\n /**\n * Decodes an ErrorMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ErrorMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ErrorMessage} ErrorMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ErrorMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ErrorMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.error = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ErrorMessage;\n })();\n\n agent.RegisterNodeRequestMessage = (function() {\n\n /**\n * Properties of a RegisterNodeRequestMessage.\n * @memberof agent\n * @interface IRegisterNodeRequestMessage\n * @property {string|null} [passphrase] RegisterNodeRequestMessage passphrase\n */\n\n /**\n * Constructs a new RegisterNodeRequestMessage.\n * @memberof agent\n * @classdesc Represents a RegisterNodeRequestMessage.\n * @implements IRegisterNodeRequestMessage\n * @constructor\n * @param {agent.IRegisterNodeRequestMessage=} [p] Properties to set\n */\n function RegisterNodeRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * RegisterNodeRequestMessage passphrase.\n * @member {string} passphrase\n * @memberof agent.RegisterNodeRequestMessage\n * @instance\n */\n RegisterNodeRequestMessage.prototype.passphrase = \"\";\n\n /**\n * Creates a new RegisterNodeRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.RegisterNodeRequestMessage\n * @static\n * @param {agent.IRegisterNodeRequestMessage=} [properties] Properties to set\n * @returns {agent.RegisterNodeRequestMessage} RegisterNodeRequestMessage instance\n */\n RegisterNodeRequestMessage.create = function create(properties) {\n return new RegisterNodeRequestMessage(properties);\n };\n\n /**\n * Encodes the specified RegisterNodeRequestMessage message. Does not implicitly {@link agent.RegisterNodeRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.RegisterNodeRequestMessage\n * @static\n * @param {agent.IRegisterNodeRequestMessage} m RegisterNodeRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RegisterNodeRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.passphrase != null && Object.hasOwnProperty.call(m, \"passphrase\"))\n w.uint32(10).string(m.passphrase);\n return w;\n };\n\n /**\n * Decodes a RegisterNodeRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.RegisterNodeRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.RegisterNodeRequestMessage} RegisterNodeRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RegisterNodeRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.RegisterNodeRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.passphrase = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return RegisterNodeRequestMessage;\n })();\n\n agent.RegisterNodeResponseMessage = (function() {\n\n /**\n * Properties of a RegisterNodeResponseMessage.\n * @memberof agent\n * @interface IRegisterNodeResponseMessage\n * @property {boolean|null} [successful] RegisterNodeResponseMessage successful\n */\n\n /**\n * Constructs a new RegisterNodeResponseMessage.\n * @memberof agent\n * @classdesc Represents a RegisterNodeResponseMessage.\n * @implements IRegisterNodeResponseMessage\n * @constructor\n * @param {agent.IRegisterNodeResponseMessage=} [p] Properties to set\n */\n function RegisterNodeResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * RegisterNodeResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.RegisterNodeResponseMessage\n * @instance\n */\n RegisterNodeResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new RegisterNodeResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.RegisterNodeResponseMessage\n * @static\n * @param {agent.IRegisterNodeResponseMessage=} [properties] Properties to set\n * @returns {agent.RegisterNodeResponseMessage} RegisterNodeResponseMessage instance\n */\n RegisterNodeResponseMessage.create = function create(properties) {\n return new RegisterNodeResponseMessage(properties);\n };\n\n /**\n * Encodes the specified RegisterNodeResponseMessage message. Does not implicitly {@link agent.RegisterNodeResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.RegisterNodeResponseMessage\n * @static\n * @param {agent.IRegisterNodeResponseMessage} m RegisterNodeResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RegisterNodeResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a RegisterNodeResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.RegisterNodeResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.RegisterNodeResponseMessage} RegisterNodeResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RegisterNodeResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.RegisterNodeResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return RegisterNodeResponseMessage;\n })();\n\n agent.NewNodeRequestMessage = (function() {\n\n /**\n * Properties of a NewNodeRequestMessage.\n * @memberof agent\n * @interface INewNodeRequestMessage\n * @property {string|null} [name] NewNodeRequestMessage name\n * @property {string|null} [email] NewNodeRequestMessage email\n * @property {string|null} [passphrase] NewNodeRequestMessage passphrase\n * @property {number|null} [nbits] NewNodeRequestMessage nbits\n */\n\n /**\n * Constructs a new NewNodeRequestMessage.\n * @memberof agent\n * @classdesc Represents a NewNodeRequestMessage.\n * @implements INewNodeRequestMessage\n * @constructor\n * @param {agent.INewNodeRequestMessage=} [p] Properties to set\n */\n function NewNodeRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * NewNodeRequestMessage name.\n * @member {string} name\n * @memberof agent.NewNodeRequestMessage\n * @instance\n */\n NewNodeRequestMessage.prototype.name = \"\";\n\n /**\n * NewNodeRequestMessage email.\n * @member {string} email\n * @memberof agent.NewNodeRequestMessage\n * @instance\n */\n NewNodeRequestMessage.prototype.email = \"\";\n\n /**\n * NewNodeRequestMessage passphrase.\n * @member {string} passphrase\n * @memberof agent.NewNodeRequestMessage\n * @instance\n */\n NewNodeRequestMessage.prototype.passphrase = \"\";\n\n /**\n * NewNodeRequestMessage nbits.\n * @member {number} nbits\n * @memberof agent.NewNodeRequestMessage\n * @instance\n */\n NewNodeRequestMessage.prototype.nbits = 0;\n\n /**\n * Creates a new NewNodeRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.NewNodeRequestMessage\n * @static\n * @param {agent.INewNodeRequestMessage=} [properties] Properties to set\n * @returns {agent.NewNodeRequestMessage} NewNodeRequestMessage instance\n */\n NewNodeRequestMessage.create = function create(properties) {\n return new NewNodeRequestMessage(properties);\n };\n\n /**\n * Encodes the specified NewNodeRequestMessage message. Does not implicitly {@link agent.NewNodeRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.NewNodeRequestMessage\n * @static\n * @param {agent.INewNodeRequestMessage} m NewNodeRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NewNodeRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.name != null && Object.hasOwnProperty.call(m, \"name\"))\n w.uint32(10).string(m.name);\n if (m.email != null && Object.hasOwnProperty.call(m, \"email\"))\n w.uint32(18).string(m.email);\n if (m.passphrase != null && Object.hasOwnProperty.call(m, \"passphrase\"))\n w.uint32(26).string(m.passphrase);\n if (m.nbits != null && Object.hasOwnProperty.call(m, \"nbits\"))\n w.uint32(32).int32(m.nbits);\n return w;\n };\n\n /**\n * Decodes a NewNodeRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.NewNodeRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.NewNodeRequestMessage} NewNodeRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NewNodeRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.NewNodeRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.name = r.string();\n break;\n case 2:\n m.email = r.string();\n break;\n case 3:\n m.passphrase = r.string();\n break;\n case 4:\n m.nbits = r.int32();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return NewNodeRequestMessage;\n })();\n\n agent.NewNodeResponseMessage = (function() {\n\n /**\n * Properties of a NewNodeResponseMessage.\n * @memberof agent\n * @interface INewNodeResponseMessage\n * @property {boolean|null} [successful] NewNodeResponseMessage successful\n */\n\n /**\n * Constructs a new NewNodeResponseMessage.\n * @memberof agent\n * @classdesc Represents a NewNodeResponseMessage.\n * @implements INewNodeResponseMessage\n * @constructor\n * @param {agent.INewNodeResponseMessage=} [p] Properties to set\n */\n function NewNodeResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * NewNodeResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.NewNodeResponseMessage\n * @instance\n */\n NewNodeResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new NewNodeResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.NewNodeResponseMessage\n * @static\n * @param {agent.INewNodeResponseMessage=} [properties] Properties to set\n * @returns {agent.NewNodeResponseMessage} NewNodeResponseMessage instance\n */\n NewNodeResponseMessage.create = function create(properties) {\n return new NewNodeResponseMessage(properties);\n };\n\n /**\n * Encodes the specified NewNodeResponseMessage message. Does not implicitly {@link agent.NewNodeResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.NewNodeResponseMessage\n * @static\n * @param {agent.INewNodeResponseMessage} m NewNodeResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NewNodeResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a NewNodeResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.NewNodeResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.NewNodeResponseMessage} NewNodeResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NewNodeResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.NewNodeResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return NewNodeResponseMessage;\n })();\n\n agent.ListNodesRequestMessage = (function() {\n\n /**\n * Properties of a ListNodesRequestMessage.\n * @memberof agent\n * @interface IListNodesRequestMessage\n * @property {boolean|null} [unlockedOnly] ListNodesRequestMessage unlockedOnly\n */\n\n /**\n * Constructs a new ListNodesRequestMessage.\n * @memberof agent\n * @classdesc Represents a ListNodesRequestMessage.\n * @implements IListNodesRequestMessage\n * @constructor\n * @param {agent.IListNodesRequestMessage=} [p] Properties to set\n */\n function ListNodesRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ListNodesRequestMessage unlockedOnly.\n * @member {boolean} unlockedOnly\n * @memberof agent.ListNodesRequestMessage\n * @instance\n */\n ListNodesRequestMessage.prototype.unlockedOnly = false;\n\n /**\n * Creates a new ListNodesRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListNodesRequestMessage\n * @static\n * @param {agent.IListNodesRequestMessage=} [properties] Properties to set\n * @returns {agent.ListNodesRequestMessage} ListNodesRequestMessage instance\n */\n ListNodesRequestMessage.create = function create(properties) {\n return new ListNodesRequestMessage(properties);\n };\n\n /**\n * Encodes the specified ListNodesRequestMessage message. Does not implicitly {@link agent.ListNodesRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListNodesRequestMessage\n * @static\n * @param {agent.IListNodesRequestMessage} m ListNodesRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListNodesRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.unlockedOnly != null && Object.hasOwnProperty.call(m, \"unlockedOnly\"))\n w.uint32(8).bool(m.unlockedOnly);\n return w;\n };\n\n /**\n * Decodes a ListNodesRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListNodesRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListNodesRequestMessage} ListNodesRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListNodesRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListNodesRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.unlockedOnly = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListNodesRequestMessage;\n })();\n\n agent.ListNodesResponseMessage = (function() {\n\n /**\n * Properties of a ListNodesResponseMessage.\n * @memberof agent\n * @interface IListNodesResponseMessage\n * @property {Array.|null} [nodes] ListNodesResponseMessage nodes\n */\n\n /**\n * Constructs a new ListNodesResponseMessage.\n * @memberof agent\n * @classdesc Represents a ListNodesResponseMessage.\n * @implements IListNodesResponseMessage\n * @constructor\n * @param {agent.IListNodesResponseMessage=} [p] Properties to set\n */\n function ListNodesResponseMessage(p) {\n this.nodes = [];\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ListNodesResponseMessage nodes.\n * @member {Array.} nodes\n * @memberof agent.ListNodesResponseMessage\n * @instance\n */\n ListNodesResponseMessage.prototype.nodes = $util.emptyArray;\n\n /**\n * Creates a new ListNodesResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListNodesResponseMessage\n * @static\n * @param {agent.IListNodesResponseMessage=} [properties] Properties to set\n * @returns {agent.ListNodesResponseMessage} ListNodesResponseMessage instance\n */\n ListNodesResponseMessage.create = function create(properties) {\n return new ListNodesResponseMessage(properties);\n };\n\n /**\n * Encodes the specified ListNodesResponseMessage message. Does not implicitly {@link agent.ListNodesResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListNodesResponseMessage\n * @static\n * @param {agent.IListNodesResponseMessage} m ListNodesResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListNodesResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.nodes != null && m.nodes.length) {\n for (var i = 0; i < m.nodes.length; ++i)\n w.uint32(10).string(m.nodes[i]);\n }\n return w;\n };\n\n /**\n * Decodes a ListNodesResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListNodesResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListNodesResponseMessage} ListNodesResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListNodesResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListNodesResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n if (!(m.nodes && m.nodes.length))\n m.nodes = [];\n m.nodes.push(r.string());\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListNodesResponseMessage;\n })();\n\n agent.SignFileRequestMessage = (function() {\n\n /**\n * Properties of a SignFileRequestMessage.\n * @memberof agent\n * @interface ISignFileRequestMessage\n * @property {string|null} [filePath] SignFileRequestMessage filePath\n * @property {string|null} [privateKeyPath] SignFileRequestMessage privateKeyPath\n * @property {string|null} [passphrase] SignFileRequestMessage passphrase\n */\n\n /**\n * Constructs a new SignFileRequestMessage.\n * @memberof agent\n * @classdesc Represents a SignFileRequestMessage.\n * @implements ISignFileRequestMessage\n * @constructor\n * @param {agent.ISignFileRequestMessage=} [p] Properties to set\n */\n function SignFileRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * SignFileRequestMessage filePath.\n * @member {string} filePath\n * @memberof agent.SignFileRequestMessage\n * @instance\n */\n SignFileRequestMessage.prototype.filePath = \"\";\n\n /**\n * SignFileRequestMessage privateKeyPath.\n * @member {string} privateKeyPath\n * @memberof agent.SignFileRequestMessage\n * @instance\n */\n SignFileRequestMessage.prototype.privateKeyPath = \"\";\n\n /**\n * SignFileRequestMessage passphrase.\n * @member {string} passphrase\n * @memberof agent.SignFileRequestMessage\n * @instance\n */\n SignFileRequestMessage.prototype.passphrase = \"\";\n\n /**\n * Creates a new SignFileRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.SignFileRequestMessage\n * @static\n * @param {agent.ISignFileRequestMessage=} [properties] Properties to set\n * @returns {agent.SignFileRequestMessage} SignFileRequestMessage instance\n */\n SignFileRequestMessage.create = function create(properties) {\n return new SignFileRequestMessage(properties);\n };\n\n /**\n * Encodes the specified SignFileRequestMessage message. Does not implicitly {@link agent.SignFileRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.SignFileRequestMessage\n * @static\n * @param {agent.ISignFileRequestMessage} m SignFileRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SignFileRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.filePath != null && Object.hasOwnProperty.call(m, \"filePath\"))\n w.uint32(10).string(m.filePath);\n if (m.privateKeyPath != null && Object.hasOwnProperty.call(m, \"privateKeyPath\"))\n w.uint32(18).string(m.privateKeyPath);\n if (m.passphrase != null && Object.hasOwnProperty.call(m, \"passphrase\"))\n w.uint32(26).string(m.passphrase);\n return w;\n };\n\n /**\n * Decodes a SignFileRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.SignFileRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.SignFileRequestMessage} SignFileRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SignFileRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.SignFileRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.filePath = r.string();\n break;\n case 2:\n m.privateKeyPath = r.string();\n break;\n case 3:\n m.passphrase = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return SignFileRequestMessage;\n })();\n\n agent.SignFileResponseMessage = (function() {\n\n /**\n * Properties of a SignFileResponseMessage.\n * @memberof agent\n * @interface ISignFileResponseMessage\n * @property {string|null} [signaturePath] SignFileResponseMessage signaturePath\n */\n\n /**\n * Constructs a new SignFileResponseMessage.\n * @memberof agent\n * @classdesc Represents a SignFileResponseMessage.\n * @implements ISignFileResponseMessage\n * @constructor\n * @param {agent.ISignFileResponseMessage=} [p] Properties to set\n */\n function SignFileResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * SignFileResponseMessage signaturePath.\n * @member {string} signaturePath\n * @memberof agent.SignFileResponseMessage\n * @instance\n */\n SignFileResponseMessage.prototype.signaturePath = \"\";\n\n /**\n * Creates a new SignFileResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.SignFileResponseMessage\n * @static\n * @param {agent.ISignFileResponseMessage=} [properties] Properties to set\n * @returns {agent.SignFileResponseMessage} SignFileResponseMessage instance\n */\n SignFileResponseMessage.create = function create(properties) {\n return new SignFileResponseMessage(properties);\n };\n\n /**\n * Encodes the specified SignFileResponseMessage message. Does not implicitly {@link agent.SignFileResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.SignFileResponseMessage\n * @static\n * @param {agent.ISignFileResponseMessage} m SignFileResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SignFileResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.signaturePath != null && Object.hasOwnProperty.call(m, \"signaturePath\"))\n w.uint32(10).string(m.signaturePath);\n return w;\n };\n\n /**\n * Decodes a SignFileResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.SignFileResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.SignFileResponseMessage} SignFileResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SignFileResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.SignFileResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.signaturePath = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return SignFileResponseMessage;\n })();\n\n agent.VerifyFileRequestMessage = (function() {\n\n /**\n * Properties of a VerifyFileRequestMessage.\n * @memberof agent\n * @interface IVerifyFileRequestMessage\n * @property {string|null} [filePath] VerifyFileRequestMessage filePath\n * @property {string|null} [signaturePath] VerifyFileRequestMessage signaturePath\n * @property {string|null} [publicKeyPath] VerifyFileRequestMessage publicKeyPath\n */\n\n /**\n * Constructs a new VerifyFileRequestMessage.\n * @memberof agent\n * @classdesc Represents a VerifyFileRequestMessage.\n * @implements IVerifyFileRequestMessage\n * @constructor\n * @param {agent.IVerifyFileRequestMessage=} [p] Properties to set\n */\n function VerifyFileRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * VerifyFileRequestMessage filePath.\n * @member {string} filePath\n * @memberof agent.VerifyFileRequestMessage\n * @instance\n */\n VerifyFileRequestMessage.prototype.filePath = \"\";\n\n /**\n * VerifyFileRequestMessage signaturePath.\n * @member {string} signaturePath\n * @memberof agent.VerifyFileRequestMessage\n * @instance\n */\n VerifyFileRequestMessage.prototype.signaturePath = \"\";\n\n /**\n * VerifyFileRequestMessage publicKeyPath.\n * @member {string} publicKeyPath\n * @memberof agent.VerifyFileRequestMessage\n * @instance\n */\n VerifyFileRequestMessage.prototype.publicKeyPath = \"\";\n\n /**\n * Creates a new VerifyFileRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.VerifyFileRequestMessage\n * @static\n * @param {agent.IVerifyFileRequestMessage=} [properties] Properties to set\n * @returns {agent.VerifyFileRequestMessage} VerifyFileRequestMessage instance\n */\n VerifyFileRequestMessage.create = function create(properties) {\n return new VerifyFileRequestMessage(properties);\n };\n\n /**\n * Encodes the specified VerifyFileRequestMessage message. Does not implicitly {@link agent.VerifyFileRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.VerifyFileRequestMessage\n * @static\n * @param {agent.IVerifyFileRequestMessage} m VerifyFileRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n VerifyFileRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.filePath != null && Object.hasOwnProperty.call(m, \"filePath\"))\n w.uint32(10).string(m.filePath);\n if (m.signaturePath != null && Object.hasOwnProperty.call(m, \"signaturePath\"))\n w.uint32(18).string(m.signaturePath);\n if (m.publicKeyPath != null && Object.hasOwnProperty.call(m, \"publicKeyPath\"))\n w.uint32(26).string(m.publicKeyPath);\n return w;\n };\n\n /**\n * Decodes a VerifyFileRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.VerifyFileRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.VerifyFileRequestMessage} VerifyFileRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n VerifyFileRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.VerifyFileRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.filePath = r.string();\n break;\n case 2:\n m.signaturePath = r.string();\n break;\n case 3:\n m.publicKeyPath = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return VerifyFileRequestMessage;\n })();\n\n agent.VerifyFileResponseMessage = (function() {\n\n /**\n * Properties of a VerifyFileResponseMessage.\n * @memberof agent\n * @interface IVerifyFileResponseMessage\n * @property {boolean|null} [verified] VerifyFileResponseMessage verified\n */\n\n /**\n * Constructs a new VerifyFileResponseMessage.\n * @memberof agent\n * @classdesc Represents a VerifyFileResponseMessage.\n * @implements IVerifyFileResponseMessage\n * @constructor\n * @param {agent.IVerifyFileResponseMessage=} [p] Properties to set\n */\n function VerifyFileResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * VerifyFileResponseMessage verified.\n * @member {boolean} verified\n * @memberof agent.VerifyFileResponseMessage\n * @instance\n */\n VerifyFileResponseMessage.prototype.verified = false;\n\n /**\n * Creates a new VerifyFileResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.VerifyFileResponseMessage\n * @static\n * @param {agent.IVerifyFileResponseMessage=} [properties] Properties to set\n * @returns {agent.VerifyFileResponseMessage} VerifyFileResponseMessage instance\n */\n VerifyFileResponseMessage.create = function create(properties) {\n return new VerifyFileResponseMessage(properties);\n };\n\n /**\n * Encodes the specified VerifyFileResponseMessage message. Does not implicitly {@link agent.VerifyFileResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.VerifyFileResponseMessage\n * @static\n * @param {agent.IVerifyFileResponseMessage} m VerifyFileResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n VerifyFileResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.verified != null && Object.hasOwnProperty.call(m, \"verified\"))\n w.uint32(8).bool(m.verified);\n return w;\n };\n\n /**\n * Decodes a VerifyFileResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.VerifyFileResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.VerifyFileResponseMessage} VerifyFileResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n VerifyFileResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.VerifyFileResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.verified = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return VerifyFileResponseMessage;\n })();\n\n agent.EncryptFileRequestMessage = (function() {\n\n /**\n * Properties of an EncryptFileRequestMessage.\n * @memberof agent\n * @interface IEncryptFileRequestMessage\n * @property {string|null} [filePath] EncryptFileRequestMessage filePath\n * @property {string|null} [publicKeyPath] EncryptFileRequestMessage publicKeyPath\n */\n\n /**\n * Constructs a new EncryptFileRequestMessage.\n * @memberof agent\n * @classdesc Represents an EncryptFileRequestMessage.\n * @implements IEncryptFileRequestMessage\n * @constructor\n * @param {agent.IEncryptFileRequestMessage=} [p] Properties to set\n */\n function EncryptFileRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * EncryptFileRequestMessage filePath.\n * @member {string} filePath\n * @memberof agent.EncryptFileRequestMessage\n * @instance\n */\n EncryptFileRequestMessage.prototype.filePath = \"\";\n\n /**\n * EncryptFileRequestMessage publicKeyPath.\n * @member {string} publicKeyPath\n * @memberof agent.EncryptFileRequestMessage\n * @instance\n */\n EncryptFileRequestMessage.prototype.publicKeyPath = \"\";\n\n /**\n * Creates a new EncryptFileRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.EncryptFileRequestMessage\n * @static\n * @param {agent.IEncryptFileRequestMessage=} [properties] Properties to set\n * @returns {agent.EncryptFileRequestMessage} EncryptFileRequestMessage instance\n */\n EncryptFileRequestMessage.create = function create(properties) {\n return new EncryptFileRequestMessage(properties);\n };\n\n /**\n * Encodes the specified EncryptFileRequestMessage message. Does not implicitly {@link agent.EncryptFileRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.EncryptFileRequestMessage\n * @static\n * @param {agent.IEncryptFileRequestMessage} m EncryptFileRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EncryptFileRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.filePath != null && Object.hasOwnProperty.call(m, \"filePath\"))\n w.uint32(10).string(m.filePath);\n if (m.publicKeyPath != null && Object.hasOwnProperty.call(m, \"publicKeyPath\"))\n w.uint32(18).string(m.publicKeyPath);\n return w;\n };\n\n /**\n * Decodes an EncryptFileRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.EncryptFileRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.EncryptFileRequestMessage} EncryptFileRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EncryptFileRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.EncryptFileRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.filePath = r.string();\n break;\n case 2:\n m.publicKeyPath = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return EncryptFileRequestMessage;\n })();\n\n agent.EncryptFileResponseMessage = (function() {\n\n /**\n * Properties of an EncryptFileResponseMessage.\n * @memberof agent\n * @interface IEncryptFileResponseMessage\n * @property {string|null} [encryptedPath] EncryptFileResponseMessage encryptedPath\n */\n\n /**\n * Constructs a new EncryptFileResponseMessage.\n * @memberof agent\n * @classdesc Represents an EncryptFileResponseMessage.\n * @implements IEncryptFileResponseMessage\n * @constructor\n * @param {agent.IEncryptFileResponseMessage=} [p] Properties to set\n */\n function EncryptFileResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * EncryptFileResponseMessage encryptedPath.\n * @member {string} encryptedPath\n * @memberof agent.EncryptFileResponseMessage\n * @instance\n */\n EncryptFileResponseMessage.prototype.encryptedPath = \"\";\n\n /**\n * Creates a new EncryptFileResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.EncryptFileResponseMessage\n * @static\n * @param {agent.IEncryptFileResponseMessage=} [properties] Properties to set\n * @returns {agent.EncryptFileResponseMessage} EncryptFileResponseMessage instance\n */\n EncryptFileResponseMessage.create = function create(properties) {\n return new EncryptFileResponseMessage(properties);\n };\n\n /**\n * Encodes the specified EncryptFileResponseMessage message. Does not implicitly {@link agent.EncryptFileResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.EncryptFileResponseMessage\n * @static\n * @param {agent.IEncryptFileResponseMessage} m EncryptFileResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EncryptFileResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.encryptedPath != null && Object.hasOwnProperty.call(m, \"encryptedPath\"))\n w.uint32(10).string(m.encryptedPath);\n return w;\n };\n\n /**\n * Decodes an EncryptFileResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.EncryptFileResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.EncryptFileResponseMessage} EncryptFileResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EncryptFileResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.EncryptFileResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.encryptedPath = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return EncryptFileResponseMessage;\n })();\n\n agent.DecryptFileRequestMessage = (function() {\n\n /**\n * Properties of a DecryptFileRequestMessage.\n * @memberof agent\n * @interface IDecryptFileRequestMessage\n * @property {string|null} [filePath] DecryptFileRequestMessage filePath\n * @property {string|null} [privateKeyPath] DecryptFileRequestMessage privateKeyPath\n * @property {string|null} [passphrase] DecryptFileRequestMessage passphrase\n */\n\n /**\n * Constructs a new DecryptFileRequestMessage.\n * @memberof agent\n * @classdesc Represents a DecryptFileRequestMessage.\n * @implements IDecryptFileRequestMessage\n * @constructor\n * @param {agent.IDecryptFileRequestMessage=} [p] Properties to set\n */\n function DecryptFileRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DecryptFileRequestMessage filePath.\n * @member {string} filePath\n * @memberof agent.DecryptFileRequestMessage\n * @instance\n */\n DecryptFileRequestMessage.prototype.filePath = \"\";\n\n /**\n * DecryptFileRequestMessage privateKeyPath.\n * @member {string} privateKeyPath\n * @memberof agent.DecryptFileRequestMessage\n * @instance\n */\n DecryptFileRequestMessage.prototype.privateKeyPath = \"\";\n\n /**\n * DecryptFileRequestMessage passphrase.\n * @member {string} passphrase\n * @memberof agent.DecryptFileRequestMessage\n * @instance\n */\n DecryptFileRequestMessage.prototype.passphrase = \"\";\n\n /**\n * Creates a new DecryptFileRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.DecryptFileRequestMessage\n * @static\n * @param {agent.IDecryptFileRequestMessage=} [properties] Properties to set\n * @returns {agent.DecryptFileRequestMessage} DecryptFileRequestMessage instance\n */\n DecryptFileRequestMessage.create = function create(properties) {\n return new DecryptFileRequestMessage(properties);\n };\n\n /**\n * Encodes the specified DecryptFileRequestMessage message. Does not implicitly {@link agent.DecryptFileRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DecryptFileRequestMessage\n * @static\n * @param {agent.IDecryptFileRequestMessage} m DecryptFileRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DecryptFileRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.filePath != null && Object.hasOwnProperty.call(m, \"filePath\"))\n w.uint32(10).string(m.filePath);\n if (m.privateKeyPath != null && Object.hasOwnProperty.call(m, \"privateKeyPath\"))\n w.uint32(18).string(m.privateKeyPath);\n if (m.passphrase != null && Object.hasOwnProperty.call(m, \"passphrase\"))\n w.uint32(26).string(m.passphrase);\n return w;\n };\n\n /**\n * Decodes a DecryptFileRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DecryptFileRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DecryptFileRequestMessage} DecryptFileRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DecryptFileRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DecryptFileRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.filePath = r.string();\n break;\n case 2:\n m.privateKeyPath = r.string();\n break;\n case 3:\n m.passphrase = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DecryptFileRequestMessage;\n })();\n\n agent.DecryptFileResponseMessage = (function() {\n\n /**\n * Properties of a DecryptFileResponseMessage.\n * @memberof agent\n * @interface IDecryptFileResponseMessage\n * @property {string|null} [decryptedPath] DecryptFileResponseMessage decryptedPath\n */\n\n /**\n * Constructs a new DecryptFileResponseMessage.\n * @memberof agent\n * @classdesc Represents a DecryptFileResponseMessage.\n * @implements IDecryptFileResponseMessage\n * @constructor\n * @param {agent.IDecryptFileResponseMessage=} [p] Properties to set\n */\n function DecryptFileResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DecryptFileResponseMessage decryptedPath.\n * @member {string} decryptedPath\n * @memberof agent.DecryptFileResponseMessage\n * @instance\n */\n DecryptFileResponseMessage.prototype.decryptedPath = \"\";\n\n /**\n * Creates a new DecryptFileResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.DecryptFileResponseMessage\n * @static\n * @param {agent.IDecryptFileResponseMessage=} [properties] Properties to set\n * @returns {agent.DecryptFileResponseMessage} DecryptFileResponseMessage instance\n */\n DecryptFileResponseMessage.create = function create(properties) {\n return new DecryptFileResponseMessage(properties);\n };\n\n /**\n * Encodes the specified DecryptFileResponseMessage message. Does not implicitly {@link agent.DecryptFileResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DecryptFileResponseMessage\n * @static\n * @param {agent.IDecryptFileResponseMessage} m DecryptFileResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DecryptFileResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.decryptedPath != null && Object.hasOwnProperty.call(m, \"decryptedPath\"))\n w.uint32(10).string(m.decryptedPath);\n return w;\n };\n\n /**\n * Decodes a DecryptFileResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DecryptFileResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DecryptFileResponseMessage} DecryptFileResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DecryptFileResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DecryptFileResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.decryptedPath = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DecryptFileResponseMessage;\n })();\n\n agent.ListVaultsRequestMessage = (function() {\n\n /**\n * Properties of a ListVaultsRequestMessage.\n * @memberof agent\n * @interface IListVaultsRequestMessage\n */\n\n /**\n * Constructs a new ListVaultsRequestMessage.\n * @memberof agent\n * @classdesc Represents a ListVaultsRequestMessage.\n * @implements IListVaultsRequestMessage\n * @constructor\n * @param {agent.IListVaultsRequestMessage=} [p] Properties to set\n */\n function ListVaultsRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * Creates a new ListVaultsRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListVaultsRequestMessage\n * @static\n * @param {agent.IListVaultsRequestMessage=} [properties] Properties to set\n * @returns {agent.ListVaultsRequestMessage} ListVaultsRequestMessage instance\n */\n ListVaultsRequestMessage.create = function create(properties) {\n return new ListVaultsRequestMessage(properties);\n };\n\n /**\n * Encodes the specified ListVaultsRequestMessage message. Does not implicitly {@link agent.ListVaultsRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListVaultsRequestMessage\n * @static\n * @param {agent.IListVaultsRequestMessage} m ListVaultsRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListVaultsRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n return w;\n };\n\n /**\n * Decodes a ListVaultsRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListVaultsRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListVaultsRequestMessage} ListVaultsRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListVaultsRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListVaultsRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListVaultsRequestMessage;\n })();\n\n agent.ListVaultsResponseMessage = (function() {\n\n /**\n * Properties of a ListVaultsResponseMessage.\n * @memberof agent\n * @interface IListVaultsResponseMessage\n * @property {Array.|null} [vaultNames] ListVaultsResponseMessage vaultNames\n */\n\n /**\n * Constructs a new ListVaultsResponseMessage.\n * @memberof agent\n * @classdesc Represents a ListVaultsResponseMessage.\n * @implements IListVaultsResponseMessage\n * @constructor\n * @param {agent.IListVaultsResponseMessage=} [p] Properties to set\n */\n function ListVaultsResponseMessage(p) {\n this.vaultNames = [];\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ListVaultsResponseMessage vaultNames.\n * @member {Array.} vaultNames\n * @memberof agent.ListVaultsResponseMessage\n * @instance\n */\n ListVaultsResponseMessage.prototype.vaultNames = $util.emptyArray;\n\n /**\n * Creates a new ListVaultsResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListVaultsResponseMessage\n * @static\n * @param {agent.IListVaultsResponseMessage=} [properties] Properties to set\n * @returns {agent.ListVaultsResponseMessage} ListVaultsResponseMessage instance\n */\n ListVaultsResponseMessage.create = function create(properties) {\n return new ListVaultsResponseMessage(properties);\n };\n\n /**\n * Encodes the specified ListVaultsResponseMessage message. Does not implicitly {@link agent.ListVaultsResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListVaultsResponseMessage\n * @static\n * @param {agent.IListVaultsResponseMessage} m ListVaultsResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListVaultsResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultNames != null && m.vaultNames.length) {\n for (var i = 0; i < m.vaultNames.length; ++i)\n w.uint32(10).string(m.vaultNames[i]);\n }\n return w;\n };\n\n /**\n * Decodes a ListVaultsResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListVaultsResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListVaultsResponseMessage} ListVaultsResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListVaultsResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListVaultsResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n if (!(m.vaultNames && m.vaultNames.length))\n m.vaultNames = [];\n m.vaultNames.push(r.string());\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListVaultsResponseMessage;\n })();\n\n agent.NewVaultRequestMessage = (function() {\n\n /**\n * Properties of a NewVaultRequestMessage.\n * @memberof agent\n * @interface INewVaultRequestMessage\n * @property {string|null} [vaultName] NewVaultRequestMessage vaultName\n */\n\n /**\n * Constructs a new NewVaultRequestMessage.\n * @memberof agent\n * @classdesc Represents a NewVaultRequestMessage.\n * @implements INewVaultRequestMessage\n * @constructor\n * @param {agent.INewVaultRequestMessage=} [p] Properties to set\n */\n function NewVaultRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * NewVaultRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.NewVaultRequestMessage\n * @instance\n */\n NewVaultRequestMessage.prototype.vaultName = \"\";\n\n /**\n * Creates a new NewVaultRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.NewVaultRequestMessage\n * @static\n * @param {agent.INewVaultRequestMessage=} [properties] Properties to set\n * @returns {agent.NewVaultRequestMessage} NewVaultRequestMessage instance\n */\n NewVaultRequestMessage.create = function create(properties) {\n return new NewVaultRequestMessage(properties);\n };\n\n /**\n * Encodes the specified NewVaultRequestMessage message. Does not implicitly {@link agent.NewVaultRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.NewVaultRequestMessage\n * @static\n * @param {agent.INewVaultRequestMessage} m NewVaultRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NewVaultRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n return w;\n };\n\n /**\n * Decodes a NewVaultRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.NewVaultRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.NewVaultRequestMessage} NewVaultRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NewVaultRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.NewVaultRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return NewVaultRequestMessage;\n })();\n\n agent.NewVaultResponseMessage = (function() {\n\n /**\n * Properties of a NewVaultResponseMessage.\n * @memberof agent\n * @interface INewVaultResponseMessage\n * @property {boolean|null} [successful] NewVaultResponseMessage successful\n */\n\n /**\n * Constructs a new NewVaultResponseMessage.\n * @memberof agent\n * @classdesc Represents a NewVaultResponseMessage.\n * @implements INewVaultResponseMessage\n * @constructor\n * @param {agent.INewVaultResponseMessage=} [p] Properties to set\n */\n function NewVaultResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * NewVaultResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.NewVaultResponseMessage\n * @instance\n */\n NewVaultResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new NewVaultResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.NewVaultResponseMessage\n * @static\n * @param {agent.INewVaultResponseMessage=} [properties] Properties to set\n * @returns {agent.NewVaultResponseMessage} NewVaultResponseMessage instance\n */\n NewVaultResponseMessage.create = function create(properties) {\n return new NewVaultResponseMessage(properties);\n };\n\n /**\n * Encodes the specified NewVaultResponseMessage message. Does not implicitly {@link agent.NewVaultResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.NewVaultResponseMessage\n * @static\n * @param {agent.INewVaultResponseMessage} m NewVaultResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NewVaultResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a NewVaultResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.NewVaultResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.NewVaultResponseMessage} NewVaultResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NewVaultResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.NewVaultResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return NewVaultResponseMessage;\n })();\n\n agent.DestroyVaultRequestMessage = (function() {\n\n /**\n * Properties of a DestroyVaultRequestMessage.\n * @memberof agent\n * @interface IDestroyVaultRequestMessage\n * @property {string|null} [vaultName] DestroyVaultRequestMessage vaultName\n */\n\n /**\n * Constructs a new DestroyVaultRequestMessage.\n * @memberof agent\n * @classdesc Represents a DestroyVaultRequestMessage.\n * @implements IDestroyVaultRequestMessage\n * @constructor\n * @param {agent.IDestroyVaultRequestMessage=} [p] Properties to set\n */\n function DestroyVaultRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DestroyVaultRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.DestroyVaultRequestMessage\n * @instance\n */\n DestroyVaultRequestMessage.prototype.vaultName = \"\";\n\n /**\n * Creates a new DestroyVaultRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.DestroyVaultRequestMessage\n * @static\n * @param {agent.IDestroyVaultRequestMessage=} [properties] Properties to set\n * @returns {agent.DestroyVaultRequestMessage} DestroyVaultRequestMessage instance\n */\n DestroyVaultRequestMessage.create = function create(properties) {\n return new DestroyVaultRequestMessage(properties);\n };\n\n /**\n * Encodes the specified DestroyVaultRequestMessage message. Does not implicitly {@link agent.DestroyVaultRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DestroyVaultRequestMessage\n * @static\n * @param {agent.IDestroyVaultRequestMessage} m DestroyVaultRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DestroyVaultRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n return w;\n };\n\n /**\n * Decodes a DestroyVaultRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DestroyVaultRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DestroyVaultRequestMessage} DestroyVaultRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DestroyVaultRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DestroyVaultRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DestroyVaultRequestMessage;\n })();\n\n agent.DestroyVaultResponseMessage = (function() {\n\n /**\n * Properties of a DestroyVaultResponseMessage.\n * @memberof agent\n * @interface IDestroyVaultResponseMessage\n * @property {boolean|null} [successful] DestroyVaultResponseMessage successful\n */\n\n /**\n * Constructs a new DestroyVaultResponseMessage.\n * @memberof agent\n * @classdesc Represents a DestroyVaultResponseMessage.\n * @implements IDestroyVaultResponseMessage\n * @constructor\n * @param {agent.IDestroyVaultResponseMessage=} [p] Properties to set\n */\n function DestroyVaultResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DestroyVaultResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.DestroyVaultResponseMessage\n * @instance\n */\n DestroyVaultResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new DestroyVaultResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.DestroyVaultResponseMessage\n * @static\n * @param {agent.IDestroyVaultResponseMessage=} [properties] Properties to set\n * @returns {agent.DestroyVaultResponseMessage} DestroyVaultResponseMessage instance\n */\n DestroyVaultResponseMessage.create = function create(properties) {\n return new DestroyVaultResponseMessage(properties);\n };\n\n /**\n * Encodes the specified DestroyVaultResponseMessage message. Does not implicitly {@link agent.DestroyVaultResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DestroyVaultResponseMessage\n * @static\n * @param {agent.IDestroyVaultResponseMessage} m DestroyVaultResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DestroyVaultResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a DestroyVaultResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DestroyVaultResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DestroyVaultResponseMessage} DestroyVaultResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DestroyVaultResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DestroyVaultResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DestroyVaultResponseMessage;\n })();\n\n agent.ListSecretsRequestMessage = (function() {\n\n /**\n * Properties of a ListSecretsRequestMessage.\n * @memberof agent\n * @interface IListSecretsRequestMessage\n * @property {string|null} [vaultName] ListSecretsRequestMessage vaultName\n */\n\n /**\n * Constructs a new ListSecretsRequestMessage.\n * @memberof agent\n * @classdesc Represents a ListSecretsRequestMessage.\n * @implements IListSecretsRequestMessage\n * @constructor\n * @param {agent.IListSecretsRequestMessage=} [p] Properties to set\n */\n function ListSecretsRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ListSecretsRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.ListSecretsRequestMessage\n * @instance\n */\n ListSecretsRequestMessage.prototype.vaultName = \"\";\n\n /**\n * Creates a new ListSecretsRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListSecretsRequestMessage\n * @static\n * @param {agent.IListSecretsRequestMessage=} [properties] Properties to set\n * @returns {agent.ListSecretsRequestMessage} ListSecretsRequestMessage instance\n */\n ListSecretsRequestMessage.create = function create(properties) {\n return new ListSecretsRequestMessage(properties);\n };\n\n /**\n * Encodes the specified ListSecretsRequestMessage message. Does not implicitly {@link agent.ListSecretsRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListSecretsRequestMessage\n * @static\n * @param {agent.IListSecretsRequestMessage} m ListSecretsRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListSecretsRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n return w;\n };\n\n /**\n * Decodes a ListSecretsRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListSecretsRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListSecretsRequestMessage} ListSecretsRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListSecretsRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListSecretsRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListSecretsRequestMessage;\n })();\n\n agent.ListSecretsResponseMessage = (function() {\n\n /**\n * Properties of a ListSecretsResponseMessage.\n * @memberof agent\n * @interface IListSecretsResponseMessage\n * @property {Array.|null} [secretNames] ListSecretsResponseMessage secretNames\n */\n\n /**\n * Constructs a new ListSecretsResponseMessage.\n * @memberof agent\n * @classdesc Represents a ListSecretsResponseMessage.\n * @implements IListSecretsResponseMessage\n * @constructor\n * @param {agent.IListSecretsResponseMessage=} [p] Properties to set\n */\n function ListSecretsResponseMessage(p) {\n this.secretNames = [];\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ListSecretsResponseMessage secretNames.\n * @member {Array.} secretNames\n * @memberof agent.ListSecretsResponseMessage\n * @instance\n */\n ListSecretsResponseMessage.prototype.secretNames = $util.emptyArray;\n\n /**\n * Creates a new ListSecretsResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListSecretsResponseMessage\n * @static\n * @param {agent.IListSecretsResponseMessage=} [properties] Properties to set\n * @returns {agent.ListSecretsResponseMessage} ListSecretsResponseMessage instance\n */\n ListSecretsResponseMessage.create = function create(properties) {\n return new ListSecretsResponseMessage(properties);\n };\n\n /**\n * Encodes the specified ListSecretsResponseMessage message. Does not implicitly {@link agent.ListSecretsResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListSecretsResponseMessage\n * @static\n * @param {agent.IListSecretsResponseMessage} m ListSecretsResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListSecretsResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.secretNames != null && m.secretNames.length) {\n for (var i = 0; i < m.secretNames.length; ++i)\n w.uint32(10).string(m.secretNames[i]);\n }\n return w;\n };\n\n /**\n * Decodes a ListSecretsResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListSecretsResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListSecretsResponseMessage} ListSecretsResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListSecretsResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListSecretsResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n if (!(m.secretNames && m.secretNames.length))\n m.secretNames = [];\n m.secretNames.push(r.string());\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListSecretsResponseMessage;\n })();\n\n agent.CreateSecretRequestMessage = (function() {\n\n /**\n * Properties of a CreateSecretRequestMessage.\n * @memberof agent\n * @interface ICreateSecretRequestMessage\n * @property {string|null} [vaultName] CreateSecretRequestMessage vaultName\n * @property {string|null} [secretName] CreateSecretRequestMessage secretName\n * @property {string|null} [secretPath] CreateSecretRequestMessage secretPath\n * @property {Uint8Array|null} [secretContent] CreateSecretRequestMessage secretContent\n */\n\n /**\n * Constructs a new CreateSecretRequestMessage.\n * @memberof agent\n * @classdesc Represents a CreateSecretRequestMessage.\n * @implements ICreateSecretRequestMessage\n * @constructor\n * @param {agent.ICreateSecretRequestMessage=} [p] Properties to set\n */\n function CreateSecretRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * CreateSecretRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.CreateSecretRequestMessage\n * @instance\n */\n CreateSecretRequestMessage.prototype.vaultName = \"\";\n\n /**\n * CreateSecretRequestMessage secretName.\n * @member {string} secretName\n * @memberof agent.CreateSecretRequestMessage\n * @instance\n */\n CreateSecretRequestMessage.prototype.secretName = \"\";\n\n /**\n * CreateSecretRequestMessage secretPath.\n * @member {string} secretPath\n * @memberof agent.CreateSecretRequestMessage\n * @instance\n */\n CreateSecretRequestMessage.prototype.secretPath = \"\";\n\n /**\n * CreateSecretRequestMessage secretContent.\n * @member {Uint8Array} secretContent\n * @memberof agent.CreateSecretRequestMessage\n * @instance\n */\n CreateSecretRequestMessage.prototype.secretContent = $util.newBuffer([]);\n\n /**\n * Creates a new CreateSecretRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.CreateSecretRequestMessage\n * @static\n * @param {agent.ICreateSecretRequestMessage=} [properties] Properties to set\n * @returns {agent.CreateSecretRequestMessage} CreateSecretRequestMessage instance\n */\n CreateSecretRequestMessage.create = function create(properties) {\n return new CreateSecretRequestMessage(properties);\n };\n\n /**\n * Encodes the specified CreateSecretRequestMessage message. Does not implicitly {@link agent.CreateSecretRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.CreateSecretRequestMessage\n * @static\n * @param {agent.ICreateSecretRequestMessage} m CreateSecretRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CreateSecretRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n if (m.secretName != null && Object.hasOwnProperty.call(m, \"secretName\"))\n w.uint32(18).string(m.secretName);\n if (m.secretPath != null && Object.hasOwnProperty.call(m, \"secretPath\"))\n w.uint32(26).string(m.secretPath);\n if (m.secretContent != null && Object.hasOwnProperty.call(m, \"secretContent\"))\n w.uint32(34).bytes(m.secretContent);\n return w;\n };\n\n /**\n * Decodes a CreateSecretRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.CreateSecretRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.CreateSecretRequestMessage} CreateSecretRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CreateSecretRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.CreateSecretRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n case 2:\n m.secretName = r.string();\n break;\n case 3:\n m.secretPath = r.string();\n break;\n case 4:\n m.secretContent = r.bytes();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return CreateSecretRequestMessage;\n })();\n\n agent.CreateSecretResponseMessage = (function() {\n\n /**\n * Properties of a CreateSecretResponseMessage.\n * @memberof agent\n * @interface ICreateSecretResponseMessage\n * @property {boolean|null} [successful] CreateSecretResponseMessage successful\n */\n\n /**\n * Constructs a new CreateSecretResponseMessage.\n * @memberof agent\n * @classdesc Represents a CreateSecretResponseMessage.\n * @implements ICreateSecretResponseMessage\n * @constructor\n * @param {agent.ICreateSecretResponseMessage=} [p] Properties to set\n */\n function CreateSecretResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * CreateSecretResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.CreateSecretResponseMessage\n * @instance\n */\n CreateSecretResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new CreateSecretResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.CreateSecretResponseMessage\n * @static\n * @param {agent.ICreateSecretResponseMessage=} [properties] Properties to set\n * @returns {agent.CreateSecretResponseMessage} CreateSecretResponseMessage instance\n */\n CreateSecretResponseMessage.create = function create(properties) {\n return new CreateSecretResponseMessage(properties);\n };\n\n /**\n * Encodes the specified CreateSecretResponseMessage message. Does not implicitly {@link agent.CreateSecretResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.CreateSecretResponseMessage\n * @static\n * @param {agent.ICreateSecretResponseMessage} m CreateSecretResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CreateSecretResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a CreateSecretResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.CreateSecretResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.CreateSecretResponseMessage} CreateSecretResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CreateSecretResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.CreateSecretResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return CreateSecretResponseMessage;\n })();\n\n agent.DestroySecretRequestMessage = (function() {\n\n /**\n * Properties of a DestroySecretRequestMessage.\n * @memberof agent\n * @interface IDestroySecretRequestMessage\n * @property {string|null} [vaultName] DestroySecretRequestMessage vaultName\n * @property {string|null} [secretName] DestroySecretRequestMessage secretName\n */\n\n /**\n * Constructs a new DestroySecretRequestMessage.\n * @memberof agent\n * @classdesc Represents a DestroySecretRequestMessage.\n * @implements IDestroySecretRequestMessage\n * @constructor\n * @param {agent.IDestroySecretRequestMessage=} [p] Properties to set\n */\n function DestroySecretRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DestroySecretRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.DestroySecretRequestMessage\n * @instance\n */\n DestroySecretRequestMessage.prototype.vaultName = \"\";\n\n /**\n * DestroySecretRequestMessage secretName.\n * @member {string} secretName\n * @memberof agent.DestroySecretRequestMessage\n * @instance\n */\n DestroySecretRequestMessage.prototype.secretName = \"\";\n\n /**\n * Creates a new DestroySecretRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.DestroySecretRequestMessage\n * @static\n * @param {agent.IDestroySecretRequestMessage=} [properties] Properties to set\n * @returns {agent.DestroySecretRequestMessage} DestroySecretRequestMessage instance\n */\n DestroySecretRequestMessage.create = function create(properties) {\n return new DestroySecretRequestMessage(properties);\n };\n\n /**\n * Encodes the specified DestroySecretRequestMessage message. Does not implicitly {@link agent.DestroySecretRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DestroySecretRequestMessage\n * @static\n * @param {agent.IDestroySecretRequestMessage} m DestroySecretRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DestroySecretRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n if (m.secretName != null && Object.hasOwnProperty.call(m, \"secretName\"))\n w.uint32(18).string(m.secretName);\n return w;\n };\n\n /**\n * Decodes a DestroySecretRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DestroySecretRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DestroySecretRequestMessage} DestroySecretRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DestroySecretRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DestroySecretRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n case 2:\n m.secretName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DestroySecretRequestMessage;\n })();\n\n agent.DestroySecretResponseMessage = (function() {\n\n /**\n * Properties of a DestroySecretResponseMessage.\n * @memberof agent\n * @interface IDestroySecretResponseMessage\n * @property {boolean|null} [successful] DestroySecretResponseMessage successful\n */\n\n /**\n * Constructs a new DestroySecretResponseMessage.\n * @memberof agent\n * @classdesc Represents a DestroySecretResponseMessage.\n * @implements IDestroySecretResponseMessage\n * @constructor\n * @param {agent.IDestroySecretResponseMessage=} [p] Properties to set\n */\n function DestroySecretResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DestroySecretResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.DestroySecretResponseMessage\n * @instance\n */\n DestroySecretResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new DestroySecretResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.DestroySecretResponseMessage\n * @static\n * @param {agent.IDestroySecretResponseMessage=} [properties] Properties to set\n * @returns {agent.DestroySecretResponseMessage} DestroySecretResponseMessage instance\n */\n DestroySecretResponseMessage.create = function create(properties) {\n return new DestroySecretResponseMessage(properties);\n };\n\n /**\n * Encodes the specified DestroySecretResponseMessage message. Does not implicitly {@link agent.DestroySecretResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DestroySecretResponseMessage\n * @static\n * @param {agent.IDestroySecretResponseMessage} m DestroySecretResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DestroySecretResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a DestroySecretResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DestroySecretResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DestroySecretResponseMessage} DestroySecretResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DestroySecretResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DestroySecretResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DestroySecretResponseMessage;\n })();\n\n agent.GetSecretRequestMessage = (function() {\n\n /**\n * Properties of a GetSecretRequestMessage.\n * @memberof agent\n * @interface IGetSecretRequestMessage\n * @property {string|null} [vaultName] GetSecretRequestMessage vaultName\n * @property {string|null} [secretName] GetSecretRequestMessage secretName\n */\n\n /**\n * Constructs a new GetSecretRequestMessage.\n * @memberof agent\n * @classdesc Represents a GetSecretRequestMessage.\n * @implements IGetSecretRequestMessage\n * @constructor\n * @param {agent.IGetSecretRequestMessage=} [p] Properties to set\n */\n function GetSecretRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * GetSecretRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.GetSecretRequestMessage\n * @instance\n */\n GetSecretRequestMessage.prototype.vaultName = \"\";\n\n /**\n * GetSecretRequestMessage secretName.\n * @member {string} secretName\n * @memberof agent.GetSecretRequestMessage\n * @instance\n */\n GetSecretRequestMessage.prototype.secretName = \"\";\n\n /**\n * Creates a new GetSecretRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.GetSecretRequestMessage\n * @static\n * @param {agent.IGetSecretRequestMessage=} [properties] Properties to set\n * @returns {agent.GetSecretRequestMessage} GetSecretRequestMessage instance\n */\n GetSecretRequestMessage.create = function create(properties) {\n return new GetSecretRequestMessage(properties);\n };\n\n /**\n * Encodes the specified GetSecretRequestMessage message. Does not implicitly {@link agent.GetSecretRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.GetSecretRequestMessage\n * @static\n * @param {agent.IGetSecretRequestMessage} m GetSecretRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetSecretRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n if (m.secretName != null && Object.hasOwnProperty.call(m, \"secretName\"))\n w.uint32(18).string(m.secretName);\n return w;\n };\n\n /**\n * Decodes a GetSecretRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.GetSecretRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.GetSecretRequestMessage} GetSecretRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetSecretRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.GetSecretRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n case 2:\n m.secretName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return GetSecretRequestMessage;\n })();\n\n agent.GetSecretResponseMessage = (function() {\n\n /**\n * Properties of a GetSecretResponseMessage.\n * @memberof agent\n * @interface IGetSecretResponseMessage\n * @property {Uint8Array|null} [secret] GetSecretResponseMessage secret\n */\n\n /**\n * Constructs a new GetSecretResponseMessage.\n * @memberof agent\n * @classdesc Represents a GetSecretResponseMessage.\n * @implements IGetSecretResponseMessage\n * @constructor\n * @param {agent.IGetSecretResponseMessage=} [p] Properties to set\n */\n function GetSecretResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * GetSecretResponseMessage secret.\n * @member {Uint8Array} secret\n * @memberof agent.GetSecretResponseMessage\n * @instance\n */\n GetSecretResponseMessage.prototype.secret = $util.newBuffer([]);\n\n /**\n * Creates a new GetSecretResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.GetSecretResponseMessage\n * @static\n * @param {agent.IGetSecretResponseMessage=} [properties] Properties to set\n * @returns {agent.GetSecretResponseMessage} GetSecretResponseMessage instance\n */\n GetSecretResponseMessage.create = function create(properties) {\n return new GetSecretResponseMessage(properties);\n };\n\n /**\n * Encodes the specified GetSecretResponseMessage message. Does not implicitly {@link agent.GetSecretResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.GetSecretResponseMessage\n * @static\n * @param {agent.IGetSecretResponseMessage} m GetSecretResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetSecretResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.secret != null && Object.hasOwnProperty.call(m, \"secret\"))\n w.uint32(10).bytes(m.secret);\n return w;\n };\n\n /**\n * Decodes a GetSecretResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.GetSecretResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.GetSecretResponseMessage} GetSecretResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetSecretResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.GetSecretResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.secret = r.bytes();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return GetSecretResponseMessage;\n })();\n\n agent.DeriveKeyRequestMessage = (function() {\n\n /**\n * Properties of a DeriveKeyRequestMessage.\n * @memberof agent\n * @interface IDeriveKeyRequestMessage\n * @property {string|null} [vaultName] DeriveKeyRequestMessage vaultName\n * @property {string|null} [keyName] DeriveKeyRequestMessage keyName\n * @property {string|null} [passphrase] DeriveKeyRequestMessage passphrase\n */\n\n /**\n * Constructs a new DeriveKeyRequestMessage.\n * @memberof agent\n * @classdesc Represents a DeriveKeyRequestMessage.\n * @implements IDeriveKeyRequestMessage\n * @constructor\n * @param {agent.IDeriveKeyRequestMessage=} [p] Properties to set\n */\n function DeriveKeyRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DeriveKeyRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.DeriveKeyRequestMessage\n * @instance\n */\n DeriveKeyRequestMessage.prototype.vaultName = \"\";\n\n /**\n * DeriveKeyRequestMessage keyName.\n * @member {string} keyName\n * @memberof agent.DeriveKeyRequestMessage\n * @instance\n */\n DeriveKeyRequestMessage.prototype.keyName = \"\";\n\n /**\n * DeriveKeyRequestMessage passphrase.\n * @member {string} passphrase\n * @memberof agent.DeriveKeyRequestMessage\n * @instance\n */\n DeriveKeyRequestMessage.prototype.passphrase = \"\";\n\n /**\n * Creates a new DeriveKeyRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.DeriveKeyRequestMessage\n * @static\n * @param {agent.IDeriveKeyRequestMessage=} [properties] Properties to set\n * @returns {agent.DeriveKeyRequestMessage} DeriveKeyRequestMessage instance\n */\n DeriveKeyRequestMessage.create = function create(properties) {\n return new DeriveKeyRequestMessage(properties);\n };\n\n /**\n * Encodes the specified DeriveKeyRequestMessage message. Does not implicitly {@link agent.DeriveKeyRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DeriveKeyRequestMessage\n * @static\n * @param {agent.IDeriveKeyRequestMessage} m DeriveKeyRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeriveKeyRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n if (m.keyName != null && Object.hasOwnProperty.call(m, \"keyName\"))\n w.uint32(18).string(m.keyName);\n if (m.passphrase != null && Object.hasOwnProperty.call(m, \"passphrase\"))\n w.uint32(26).string(m.passphrase);\n return w;\n };\n\n /**\n * Decodes a DeriveKeyRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DeriveKeyRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DeriveKeyRequestMessage} DeriveKeyRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeriveKeyRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DeriveKeyRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n case 2:\n m.keyName = r.string();\n break;\n case 3:\n m.passphrase = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DeriveKeyRequestMessage;\n })();\n\n agent.DeriveKeyResponseMessage = (function() {\n\n /**\n * Properties of a DeriveKeyResponseMessage.\n * @memberof agent\n * @interface IDeriveKeyResponseMessage\n * @property {boolean|null} [successful] DeriveKeyResponseMessage successful\n */\n\n /**\n * Constructs a new DeriveKeyResponseMessage.\n * @memberof agent\n * @classdesc Represents a DeriveKeyResponseMessage.\n * @implements IDeriveKeyResponseMessage\n * @constructor\n * @param {agent.IDeriveKeyResponseMessage=} [p] Properties to set\n */\n function DeriveKeyResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DeriveKeyResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.DeriveKeyResponseMessage\n * @instance\n */\n DeriveKeyResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new DeriveKeyResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.DeriveKeyResponseMessage\n * @static\n * @param {agent.IDeriveKeyResponseMessage=} [properties] Properties to set\n * @returns {agent.DeriveKeyResponseMessage} DeriveKeyResponseMessage instance\n */\n DeriveKeyResponseMessage.create = function create(properties) {\n return new DeriveKeyResponseMessage(properties);\n };\n\n /**\n * Encodes the specified DeriveKeyResponseMessage message. Does not implicitly {@link agent.DeriveKeyResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DeriveKeyResponseMessage\n * @static\n * @param {agent.IDeriveKeyResponseMessage} m DeriveKeyResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeriveKeyResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a DeriveKeyResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DeriveKeyResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DeriveKeyResponseMessage} DeriveKeyResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeriveKeyResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DeriveKeyResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DeriveKeyResponseMessage;\n })();\n\n agent.ListKeysRequestMessage = (function() {\n\n /**\n * Properties of a ListKeysRequestMessage.\n * @memberof agent\n * @interface IListKeysRequestMessage\n */\n\n /**\n * Constructs a new ListKeysRequestMessage.\n * @memberof agent\n * @classdesc Represents a ListKeysRequestMessage.\n * @implements IListKeysRequestMessage\n * @constructor\n * @param {agent.IListKeysRequestMessage=} [p] Properties to set\n */\n function ListKeysRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * Creates a new ListKeysRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListKeysRequestMessage\n * @static\n * @param {agent.IListKeysRequestMessage=} [properties] Properties to set\n * @returns {agent.ListKeysRequestMessage} ListKeysRequestMessage instance\n */\n ListKeysRequestMessage.create = function create(properties) {\n return new ListKeysRequestMessage(properties);\n };\n\n /**\n * Encodes the specified ListKeysRequestMessage message. Does not implicitly {@link agent.ListKeysRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListKeysRequestMessage\n * @static\n * @param {agent.IListKeysRequestMessage} m ListKeysRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListKeysRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n return w;\n };\n\n /**\n * Decodes a ListKeysRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListKeysRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListKeysRequestMessage} ListKeysRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListKeysRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListKeysRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListKeysRequestMessage;\n })();\n\n agent.ListKeysResponseMessage = (function() {\n\n /**\n * Properties of a ListKeysResponseMessage.\n * @memberof agent\n * @interface IListKeysResponseMessage\n * @property {Array.|null} [keyNames] ListKeysResponseMessage keyNames\n */\n\n /**\n * Constructs a new ListKeysResponseMessage.\n * @memberof agent\n * @classdesc Represents a ListKeysResponseMessage.\n * @implements IListKeysResponseMessage\n * @constructor\n * @param {agent.IListKeysResponseMessage=} [p] Properties to set\n */\n function ListKeysResponseMessage(p) {\n this.keyNames = [];\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ListKeysResponseMessage keyNames.\n * @member {Array.} keyNames\n * @memberof agent.ListKeysResponseMessage\n * @instance\n */\n ListKeysResponseMessage.prototype.keyNames = $util.emptyArray;\n\n /**\n * Creates a new ListKeysResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListKeysResponseMessage\n * @static\n * @param {agent.IListKeysResponseMessage=} [properties] Properties to set\n * @returns {agent.ListKeysResponseMessage} ListKeysResponseMessage instance\n */\n ListKeysResponseMessage.create = function create(properties) {\n return new ListKeysResponseMessage(properties);\n };\n\n /**\n * Encodes the specified ListKeysResponseMessage message. Does not implicitly {@link agent.ListKeysResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListKeysResponseMessage\n * @static\n * @param {agent.IListKeysResponseMessage} m ListKeysResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListKeysResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.keyNames != null && m.keyNames.length) {\n for (var i = 0; i < m.keyNames.length; ++i)\n w.uint32(10).string(m.keyNames[i]);\n }\n return w;\n };\n\n /**\n * Decodes a ListKeysResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListKeysResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListKeysResponseMessage} ListKeysResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListKeysResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListKeysResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n if (!(m.keyNames && m.keyNames.length))\n m.keyNames = [];\n m.keyNames.push(r.string());\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListKeysResponseMessage;\n })();\n\n agent.GetKeyRequestMessage = (function() {\n\n /**\n * Properties of a GetKeyRequestMessage.\n * @memberof agent\n * @interface IGetKeyRequestMessage\n * @property {string|null} [keyName] GetKeyRequestMessage keyName\n */\n\n /**\n * Constructs a new GetKeyRequestMessage.\n * @memberof agent\n * @classdesc Represents a GetKeyRequestMessage.\n * @implements IGetKeyRequestMessage\n * @constructor\n * @param {agent.IGetKeyRequestMessage=} [p] Properties to set\n */\n function GetKeyRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * GetKeyRequestMessage keyName.\n * @member {string} keyName\n * @memberof agent.GetKeyRequestMessage\n * @instance\n */\n GetKeyRequestMessage.prototype.keyName = \"\";\n\n /**\n * Creates a new GetKeyRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.GetKeyRequestMessage\n * @static\n * @param {agent.IGetKeyRequestMessage=} [properties] Properties to set\n * @returns {agent.GetKeyRequestMessage} GetKeyRequestMessage instance\n */\n GetKeyRequestMessage.create = function create(properties) {\n return new GetKeyRequestMessage(properties);\n };\n\n /**\n * Encodes the specified GetKeyRequestMessage message. Does not implicitly {@link agent.GetKeyRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.GetKeyRequestMessage\n * @static\n * @param {agent.IGetKeyRequestMessage} m GetKeyRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetKeyRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.keyName != null && Object.hasOwnProperty.call(m, \"keyName\"))\n w.uint32(10).string(m.keyName);\n return w;\n };\n\n /**\n * Decodes a GetKeyRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.GetKeyRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.GetKeyRequestMessage} GetKeyRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetKeyRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.GetKeyRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.keyName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return GetKeyRequestMessage;\n })();\n\n agent.GetKeyResponseMessage = (function() {\n\n /**\n * Properties of a GetKeyResponseMessage.\n * @memberof agent\n * @interface IGetKeyResponseMessage\n * @property {string|null} [keyName] GetKeyResponseMessage keyName\n * @property {string|null} [keyContent] GetKeyResponseMessage keyContent\n */\n\n /**\n * Constructs a new GetKeyResponseMessage.\n * @memberof agent\n * @classdesc Represents a GetKeyResponseMessage.\n * @implements IGetKeyResponseMessage\n * @constructor\n * @param {agent.IGetKeyResponseMessage=} [p] Properties to set\n */\n function GetKeyResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * GetKeyResponseMessage keyName.\n * @member {string} keyName\n * @memberof agent.GetKeyResponseMessage\n * @instance\n */\n GetKeyResponseMessage.prototype.keyName = \"\";\n\n /**\n * GetKeyResponseMessage keyContent.\n * @member {string} keyContent\n * @memberof agent.GetKeyResponseMessage\n * @instance\n */\n GetKeyResponseMessage.prototype.keyContent = \"\";\n\n /**\n * Creates a new GetKeyResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.GetKeyResponseMessage\n * @static\n * @param {agent.IGetKeyResponseMessage=} [properties] Properties to set\n * @returns {agent.GetKeyResponseMessage} GetKeyResponseMessage instance\n */\n GetKeyResponseMessage.create = function create(properties) {\n return new GetKeyResponseMessage(properties);\n };\n\n /**\n * Encodes the specified GetKeyResponseMessage message. Does not implicitly {@link agent.GetKeyResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.GetKeyResponseMessage\n * @static\n * @param {agent.IGetKeyResponseMessage} m GetKeyResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetKeyResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.keyName != null && Object.hasOwnProperty.call(m, \"keyName\"))\n w.uint32(10).string(m.keyName);\n if (m.keyContent != null && Object.hasOwnProperty.call(m, \"keyContent\"))\n w.uint32(18).string(m.keyContent);\n return w;\n };\n\n /**\n * Decodes a GetKeyResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.GetKeyResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.GetKeyResponseMessage} GetKeyResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetKeyResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.GetKeyResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.keyName = r.string();\n break;\n case 2:\n m.keyContent = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return GetKeyResponseMessage;\n })();\n\n agent.GetPrimaryKeyPairRequestMessage = (function() {\n\n /**\n * Properties of a GetPrimaryKeyPairRequestMessage.\n * @memberof agent\n * @interface IGetPrimaryKeyPairRequestMessage\n * @property {boolean|null} [includePrivateKey] GetPrimaryKeyPairRequestMessage includePrivateKey\n */\n\n /**\n * Constructs a new GetPrimaryKeyPairRequestMessage.\n * @memberof agent\n * @classdesc Represents a GetPrimaryKeyPairRequestMessage.\n * @implements IGetPrimaryKeyPairRequestMessage\n * @constructor\n * @param {agent.IGetPrimaryKeyPairRequestMessage=} [p] Properties to set\n */\n function GetPrimaryKeyPairRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * GetPrimaryKeyPairRequestMessage includePrivateKey.\n * @member {boolean} includePrivateKey\n * @memberof agent.GetPrimaryKeyPairRequestMessage\n * @instance\n */\n GetPrimaryKeyPairRequestMessage.prototype.includePrivateKey = false;\n\n /**\n * Creates a new GetPrimaryKeyPairRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.GetPrimaryKeyPairRequestMessage\n * @static\n * @param {agent.IGetPrimaryKeyPairRequestMessage=} [properties] Properties to set\n * @returns {agent.GetPrimaryKeyPairRequestMessage} GetPrimaryKeyPairRequestMessage instance\n */\n GetPrimaryKeyPairRequestMessage.create = function create(properties) {\n return new GetPrimaryKeyPairRequestMessage(properties);\n };\n\n /**\n * Encodes the specified GetPrimaryKeyPairRequestMessage message. Does not implicitly {@link agent.GetPrimaryKeyPairRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.GetPrimaryKeyPairRequestMessage\n * @static\n * @param {agent.IGetPrimaryKeyPairRequestMessage} m GetPrimaryKeyPairRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetPrimaryKeyPairRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.includePrivateKey != null && Object.hasOwnProperty.call(m, \"includePrivateKey\"))\n w.uint32(8).bool(m.includePrivateKey);\n return w;\n };\n\n /**\n * Decodes a GetPrimaryKeyPairRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.GetPrimaryKeyPairRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.GetPrimaryKeyPairRequestMessage} GetPrimaryKeyPairRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetPrimaryKeyPairRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.GetPrimaryKeyPairRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.includePrivateKey = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return GetPrimaryKeyPairRequestMessage;\n })();\n\n agent.GetPrimaryKeyPairResponseMessage = (function() {\n\n /**\n * Properties of a GetPrimaryKeyPairResponseMessage.\n * @memberof agent\n * @interface IGetPrimaryKeyPairResponseMessage\n * @property {string|null} [publicKey] GetPrimaryKeyPairResponseMessage publicKey\n * @property {string|null} [privateKey] GetPrimaryKeyPairResponseMessage privateKey\n */\n\n /**\n * Constructs a new GetPrimaryKeyPairResponseMessage.\n * @memberof agent\n * @classdesc Represents a GetPrimaryKeyPairResponseMessage.\n * @implements IGetPrimaryKeyPairResponseMessage\n * @constructor\n * @param {agent.IGetPrimaryKeyPairResponseMessage=} [p] Properties to set\n */\n function GetPrimaryKeyPairResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * GetPrimaryKeyPairResponseMessage publicKey.\n * @member {string} publicKey\n * @memberof agent.GetPrimaryKeyPairResponseMessage\n * @instance\n */\n GetPrimaryKeyPairResponseMessage.prototype.publicKey = \"\";\n\n /**\n * GetPrimaryKeyPairResponseMessage privateKey.\n * @member {string} privateKey\n * @memberof agent.GetPrimaryKeyPairResponseMessage\n * @instance\n */\n GetPrimaryKeyPairResponseMessage.prototype.privateKey = \"\";\n\n /**\n * Creates a new GetPrimaryKeyPairResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.GetPrimaryKeyPairResponseMessage\n * @static\n * @param {agent.IGetPrimaryKeyPairResponseMessage=} [properties] Properties to set\n * @returns {agent.GetPrimaryKeyPairResponseMessage} GetPrimaryKeyPairResponseMessage instance\n */\n GetPrimaryKeyPairResponseMessage.create = function create(properties) {\n return new GetPrimaryKeyPairResponseMessage(properties);\n };\n\n /**\n * Encodes the specified GetPrimaryKeyPairResponseMessage message. Does not implicitly {@link agent.GetPrimaryKeyPairResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.GetPrimaryKeyPairResponseMessage\n * @static\n * @param {agent.IGetPrimaryKeyPairResponseMessage} m GetPrimaryKeyPairResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetPrimaryKeyPairResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.publicKey != null && Object.hasOwnProperty.call(m, \"publicKey\"))\n w.uint32(10).string(m.publicKey);\n if (m.privateKey != null && Object.hasOwnProperty.call(m, \"privateKey\"))\n w.uint32(18).string(m.privateKey);\n return w;\n };\n\n /**\n * Decodes a GetPrimaryKeyPairResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.GetPrimaryKeyPairResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.GetPrimaryKeyPairResponseMessage} GetPrimaryKeyPairResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetPrimaryKeyPairResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.GetPrimaryKeyPairResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.publicKey = r.string();\n break;\n case 2:\n m.privateKey = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return GetPrimaryKeyPairResponseMessage;\n })();\n\n agent.UpdateSecretRequestMessage = (function() {\n\n /**\n * Properties of an UpdateSecretRequestMessage.\n * @memberof agent\n * @interface IUpdateSecretRequestMessage\n * @property {string|null} [vaultName] UpdateSecretRequestMessage vaultName\n * @property {string|null} [secretName] UpdateSecretRequestMessage secretName\n * @property {string|null} [secretPath] UpdateSecretRequestMessage secretPath\n * @property {Uint8Array|null} [secretContent] UpdateSecretRequestMessage secretContent\n */\n\n /**\n * Constructs a new UpdateSecretRequestMessage.\n * @memberof agent\n * @classdesc Represents an UpdateSecretRequestMessage.\n * @implements IUpdateSecretRequestMessage\n * @constructor\n * @param {agent.IUpdateSecretRequestMessage=} [p] Properties to set\n */\n function UpdateSecretRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * UpdateSecretRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.UpdateSecretRequestMessage\n * @instance\n */\n UpdateSecretRequestMessage.prototype.vaultName = \"\";\n\n /**\n * UpdateSecretRequestMessage secretName.\n * @member {string} secretName\n * @memberof agent.UpdateSecretRequestMessage\n * @instance\n */\n UpdateSecretRequestMessage.prototype.secretName = \"\";\n\n /**\n * UpdateSecretRequestMessage secretPath.\n * @member {string} secretPath\n * @memberof agent.UpdateSecretRequestMessage\n * @instance\n */\n UpdateSecretRequestMessage.prototype.secretPath = \"\";\n\n /**\n * UpdateSecretRequestMessage secretContent.\n * @member {Uint8Array} secretContent\n * @memberof agent.UpdateSecretRequestMessage\n * @instance\n */\n UpdateSecretRequestMessage.prototype.secretContent = $util.newBuffer([]);\n\n /**\n * Creates a new UpdateSecretRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.UpdateSecretRequestMessage\n * @static\n * @param {agent.IUpdateSecretRequestMessage=} [properties] Properties to set\n * @returns {agent.UpdateSecretRequestMessage} UpdateSecretRequestMessage instance\n */\n UpdateSecretRequestMessage.create = function create(properties) {\n return new UpdateSecretRequestMessage(properties);\n };\n\n /**\n * Encodes the specified UpdateSecretRequestMessage message. Does not implicitly {@link agent.UpdateSecretRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.UpdateSecretRequestMessage\n * @static\n * @param {agent.IUpdateSecretRequestMessage} m UpdateSecretRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n UpdateSecretRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n if (m.secretName != null && Object.hasOwnProperty.call(m, \"secretName\"))\n w.uint32(18).string(m.secretName);\n if (m.secretPath != null && Object.hasOwnProperty.call(m, \"secretPath\"))\n w.uint32(26).string(m.secretPath);\n if (m.secretContent != null && Object.hasOwnProperty.call(m, \"secretContent\"))\n w.uint32(34).bytes(m.secretContent);\n return w;\n };\n\n /**\n * Decodes an UpdateSecretRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.UpdateSecretRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.UpdateSecretRequestMessage} UpdateSecretRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n UpdateSecretRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.UpdateSecretRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n case 2:\n m.secretName = r.string();\n break;\n case 3:\n m.secretPath = r.string();\n break;\n case 4:\n m.secretContent = r.bytes();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return UpdateSecretRequestMessage;\n })();\n\n agent.UpdateSecretResponseMessage = (function() {\n\n /**\n * Properties of an UpdateSecretResponseMessage.\n * @memberof agent\n * @interface IUpdateSecretResponseMessage\n * @property {boolean|null} [successful] UpdateSecretResponseMessage successful\n */\n\n /**\n * Constructs a new UpdateSecretResponseMessage.\n * @memberof agent\n * @classdesc Represents an UpdateSecretResponseMessage.\n * @implements IUpdateSecretResponseMessage\n * @constructor\n * @param {agent.IUpdateSecretResponseMessage=} [p] Properties to set\n */\n function UpdateSecretResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * UpdateSecretResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.UpdateSecretResponseMessage\n * @instance\n */\n UpdateSecretResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new UpdateSecretResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.UpdateSecretResponseMessage\n * @static\n * @param {agent.IUpdateSecretResponseMessage=} [properties] Properties to set\n * @returns {agent.UpdateSecretResponseMessage} UpdateSecretResponseMessage instance\n */\n UpdateSecretResponseMessage.create = function create(properties) {\n return new UpdateSecretResponseMessage(properties);\n };\n\n /**\n * Encodes the specified UpdateSecretResponseMessage message. Does not implicitly {@link agent.UpdateSecretResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.UpdateSecretResponseMessage\n * @static\n * @param {agent.IUpdateSecretResponseMessage} m UpdateSecretResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n UpdateSecretResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes an UpdateSecretResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.UpdateSecretResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.UpdateSecretResponseMessage} UpdateSecretResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n UpdateSecretResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.UpdateSecretResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return UpdateSecretResponseMessage;\n })();\n\n agent.DeleteKeyRequestMessage = (function() {\n\n /**\n * Properties of a DeleteKeyRequestMessage.\n * @memberof agent\n * @interface IDeleteKeyRequestMessage\n * @property {string|null} [keyName] DeleteKeyRequestMessage keyName\n */\n\n /**\n * Constructs a new DeleteKeyRequestMessage.\n * @memberof agent\n * @classdesc Represents a DeleteKeyRequestMessage.\n * @implements IDeleteKeyRequestMessage\n * @constructor\n * @param {agent.IDeleteKeyRequestMessage=} [p] Properties to set\n */\n function DeleteKeyRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DeleteKeyRequestMessage keyName.\n * @member {string} keyName\n * @memberof agent.DeleteKeyRequestMessage\n * @instance\n */\n DeleteKeyRequestMessage.prototype.keyName = \"\";\n\n /**\n * Creates a new DeleteKeyRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.DeleteKeyRequestMessage\n * @static\n * @param {agent.IDeleteKeyRequestMessage=} [properties] Properties to set\n * @returns {agent.DeleteKeyRequestMessage} DeleteKeyRequestMessage instance\n */\n DeleteKeyRequestMessage.create = function create(properties) {\n return new DeleteKeyRequestMessage(properties);\n };\n\n /**\n * Encodes the specified DeleteKeyRequestMessage message. Does not implicitly {@link agent.DeleteKeyRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DeleteKeyRequestMessage\n * @static\n * @param {agent.IDeleteKeyRequestMessage} m DeleteKeyRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeleteKeyRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.keyName != null && Object.hasOwnProperty.call(m, \"keyName\"))\n w.uint32(10).string(m.keyName);\n return w;\n };\n\n /**\n * Decodes a DeleteKeyRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DeleteKeyRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DeleteKeyRequestMessage} DeleteKeyRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeleteKeyRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DeleteKeyRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.keyName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DeleteKeyRequestMessage;\n })();\n\n agent.DeleteKeyResponseMessage = (function() {\n\n /**\n * Properties of a DeleteKeyResponseMessage.\n * @memberof agent\n * @interface IDeleteKeyResponseMessage\n * @property {boolean|null} [successful] DeleteKeyResponseMessage successful\n */\n\n /**\n * Constructs a new DeleteKeyResponseMessage.\n * @memberof agent\n * @classdesc Represents a DeleteKeyResponseMessage.\n * @implements IDeleteKeyResponseMessage\n * @constructor\n * @param {agent.IDeleteKeyResponseMessage=} [p] Properties to set\n */\n function DeleteKeyResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DeleteKeyResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.DeleteKeyResponseMessage\n * @instance\n */\n DeleteKeyResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new DeleteKeyResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.DeleteKeyResponseMessage\n * @static\n * @param {agent.IDeleteKeyResponseMessage=} [properties] Properties to set\n * @returns {agent.DeleteKeyResponseMessage} DeleteKeyResponseMessage instance\n */\n DeleteKeyResponseMessage.create = function create(properties) {\n return new DeleteKeyResponseMessage(properties);\n };\n\n /**\n * Encodes the specified DeleteKeyResponseMessage message. Does not implicitly {@link agent.DeleteKeyResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DeleteKeyResponseMessage\n * @static\n * @param {agent.IDeleteKeyResponseMessage} m DeleteKeyResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeleteKeyResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a DeleteKeyResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DeleteKeyResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DeleteKeyResponseMessage} DeleteKeyResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeleteKeyResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DeleteKeyResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DeleteKeyResponseMessage;\n })();\n\n return agent;\n})();\n\nmodule.exports = $root;\n","module.exports = require(\"protobufjs/minimal\");"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://browser-client/webpack/universalModuleDefinition","webpack://browser-client/webpack/bootstrap","webpack://browser-client/./src/lib/agent/PolykeyClient.ts","webpack://browser-client/./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack://browser-client/(webpack)/buildin/global.js","webpack://browser-client/external \"base64-js\"","webpack://browser-client/external \"ieee754\"","webpack://browser-client/external \"isarray\"","webpack://browser-client/./proto/js/Agent.js","webpack://browser-client/external \"protobufjs/minimal\""],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA,8CAAa;AACb,8CAA8C,cAAc;AAC5D,gBAAgB,mBAAO,CAAC,CAAyB;AACjD,OAAO,4lCAA4lC;AACnmC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA,uBAAuB,QAAQ;AAC/B,yDAAyD,MAAM;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,6DAA6D,iCAAiC;AAC9F;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sBAAsB;AAC9E;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,wDAAwD,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,qDAAqD,UAAU;AAC/D;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,gEAAgE,oBAAoB;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,uCAAuC;AAC9F;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,yDAAyD,0BAA0B;AACnF;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,0DAA0D,0BAA0B;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,0DAA0D,uCAAuC;AACjG;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,uDAAuD,YAAY;AACnE;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,2DAA2D,YAAY;AACvE;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,4CAA4C;AACrG;AACA;AACA,yDAAyD,+CAA+C;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,4DAA4D,wBAAwB;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,4CAA4C;AACrG;AACA;AACA,yDAAyD,+CAA+C;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,CAAW;AAChC,cAAc,mBAAO,CAAC,CAAS;AAC/B,cAAc,mBAAO,CAAC,CAAS;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AC5vDA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACnBA,sC;;;;;;ACAA,oC;;;;;;ACAA,oC;;;;;;;ACAA;AACa;;AAEb,gBAAgB,mBAAO,CAAC,CAAoB;;AAE5C;AACA;;AAEA;AACA,0EAA0E;;AAE1E;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,4BAA4B;AAClD,sBAAsB,aAAa;AACnC,sBAAsB,YAAY;AAClC,sBAAsB,gBAAgB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;;AAEA;AACA,4EAA4E,uCAAuC;AACnH;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,mBAAmB;AACxC,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;;AAEA;AACA,4EAA4E,uCAAuC;AACnH;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,mBAAmB;AACxC,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;;AAEA;AACA,2FAA2F,sDAAsD;AACjJ;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,kCAAkC;AACvD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,qBAAqB,4BAA4B;AACjD;AACA;AACA;AACA;;AAEA;AACA,qFAAqF,gDAAgD;AACrI;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,4BAA4B;AACjD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;;AAEA;AACA,sFAAsF,iDAAiD;AACvI;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,6BAA6B;AAClD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAmD;AAC3I;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,+BAA+B;AACpD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;;AAEA;AACA,sFAAsF,iDAAiD;AACvI;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,6BAA6B;AAClD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAmD;AAC3I;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,+BAA+B;AACpD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;;AAEA;AACA,yFAAyF,oDAAoD;AAC7I;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,gCAAgC;AACrD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;;AAEA;AACA,yFAAyF,oDAAoD;AAC7I;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,gCAAgC;AACrD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;;AAEA;AACA,yFAAyF,oDAAoD;AAC7I;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,gCAAgC;AACrD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAmD;AAC3I;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,+BAA+B;AACpD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;;AAEA;AACA,yFAAyF,oDAAoD;AAC7I;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,gCAAgC;AACrD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;;AAEA;AACA,sFAAsF,iDAAiD;AACvI;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,6BAA6B;AAClD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;;AAEA;AACA,2FAA2F,sDAAsD;AACjJ;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,kCAAkC;AACvD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;;AAEA;AACA,yFAAyF,oDAAoD;AAC7I;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,gCAAgC;AACrD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,gBAAgB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;;AAEA;AACA,2FAA2F,sDAAsD;AACjJ;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,kCAAkC;AACvD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;;AAEA;AACA,2FAA2F,sDAAsD;AACjJ;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,kCAAkC;AACvD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qCAAqC;AACxD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qCAAqC;AACxD,qBAAqB,mCAAmC;AACxD;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,uDAAuD;AACnJ;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,mCAAmC;AACxD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAmD;AAC3I;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,+BAA+B;AACpD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAmD;AAC3I;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,+BAA+B;AACpD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;;AAEA;AACA,sFAAsF,iDAAiD;AACvI;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,6BAA6B;AAClD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA,oFAAoF,+CAA+C;AACnI;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,2BAA2B;AAChD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,qBAAqB,4BAA4B;AACjD;AACA;AACA;AACA;;AAEA;AACA,qFAAqF,gDAAgD;AACrI;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,4BAA4B;AACjD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wCAAwC;AAC3D;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wCAAwC;AAC3D,qBAAqB,sCAAsC;AAC3D;AACA;AACA;AACA;;AAEA;AACA,+FAA+F,0DAA0D;AACzJ;AACA;AACA;AACA,mBAAmB,uCAAuC;AAC1D,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,sCAAsC;AAC3D,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yCAAyC;AAC5D;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yCAAyC;AAC5D,qBAAqB,uCAAuC;AAC5D;AACA;AACA;AACA;;AAEA;AACA,gGAAgG,2DAA2D;AAC3J;AACA;AACA;AACA,mBAAmB,wCAAwC;AAC3D,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,uCAAuC;AAC5D,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,YAAY;AAClC,sBAAsB,gBAAgB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;;AAEA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,iCAAiC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;;AAEA;AACA,2FAA2F,sDAAsD;AACjJ;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,kCAAkC;AACvD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;;AAEA;AACA,uFAAuF,kDAAkD;AACzI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,8BAA8B;AACnD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAmD;AAC3I;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,mBAAmB,iBAAiB;AACpC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,OAAO;AAC1B,qBAAqB,+BAA+B;AACpD,oBAAoB,MAAM;AAC1B,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,CAAC;;AAED;;;;;;;ACztIA,+C","file":"browser-client.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"browser-client\"] = factory();\n\telse\n\t\troot[\"browser-client\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Agent_1 = require(\"../../../proto/js/Agent\");\nconst { AgentMessage, AgentMessageType, CreateSecretRequestMessage, CreateSecretResponseMessage, DecryptFileRequestMessage, DecryptFileResponseMessage, DeleteKeyRequestMessage, DeleteKeyResponseMessage, DeriveKeyRequestMessage, DeriveKeyResponseMessage, DestroySecretRequestMessage, DestroySecretResponseMessage, DestroyVaultRequestMessage, DestroyVaultResponseMessage, EncryptFileRequestMessage, EncryptFileResponseMessage, ErrorMessage, GetPrimaryKeyPairRequestMessage, GetPrimaryKeyPairResponseMessage, GetSecretRequestMessage, GetSecretResponseMessage, GetKeyRequestMessage, GetKeyResponseMessage, ListKeysRequestMessage, ListKeysResponseMessage, ListNodesRequestMessage, ListNodesResponseMessage, ListSecretsRequestMessage, ListSecretsResponseMessage, ListVaultsRequestMessage, ListVaultsResponseMessage, NewNodeRequestMessage, NewNodeResponseMessage, NewVaultRequestMessage, NewVaultResponseMessage, RegisterNodeRequestMessage, RegisterNodeResponseMessage, SignFileRequestMessage, SignFileResponseMessage, UpdateSecretRequestMessage, UpdateSecretResponseMessage, VerifyFileRequestMessage, VerifyFileResponseMessage, } = Agent_1.agent;\nclass PolykeyClient {\n constructor(getStream) {\n this.getStream = getStream;\n }\n async sendRequestToAgent(request) {\n const stream = this.getStream();\n const responseList = await new Promise((resolve, reject) => {\n try {\n const responseList = [];\n stream.on('data', (data) => {\n if (data instanceof Uint8Array) {\n responseList.push(data);\n }\n else {\n responseList.push(...data);\n }\n });\n stream.on('error', (err) => {\n reject(err);\n });\n stream.on('end', () => {\n resolve(responseList);\n });\n if (!stream.writableEnded) {\n stream.write(request);\n }\n }\n catch (err) {\n reject(err);\n }\n });\n return responseList;\n }\n async handleAgentCommunication(type, nodePath, request) {\n // Encode message and sent\n const agentMessage = AgentMessage.encode({\n type: type,\n isResponse: false,\n nodePath: nodePath,\n subMessage: request,\n }).finish();\n const responseList = await this.sendRequestToAgent(agentMessage);\n const agentMessageList = [];\n for (const response of responseList.values()) {\n const { subMessage, type } = AgentMessage.decode(response);\n if (type == AgentMessageType.ERROR) {\n const { error } = ErrorMessage.decode(subMessage);\n const reason = new Error(`Agent Error: ${error}`);\n throw reason;\n }\n else {\n agentMessageList.push(AgentMessage.decode(response));\n }\n }\n return agentMessageList;\n }\n async registerNode(path, passphrase) {\n var _a;\n const registerNodeRequest = RegisterNodeRequestMessage.encode({ passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.REGISTER_NODE, path, registerNodeRequest);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.REGISTER_NODE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = RegisterNodeResponseMessage.decode(subMessage);\n return successful;\n }\n async newNode(path, name, email, passphrase, nbits) {\n var _a;\n const newNodeRequest = NewNodeRequestMessage.encode({ name, email, passphrase, nbits }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.NEW_NODE, path, newNodeRequest);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.NEW_NODE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = NewNodeResponseMessage.decode(subMessage);\n return successful;\n }\n async listNodes(unlockedOnly = true) {\n var _a;\n const newNodeRequest = ListNodesRequestMessage.encode({ unlockedOnly }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_NODES, undefined, newNodeRequest);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_NODES)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { nodes } = ListNodesResponseMessage.decode(subMessage);\n return nodes;\n }\n /////////////////////\n // Key commands //\n /////////////////////\n async deriveKey(nodePath, keyName, passphrase) {\n var _a;\n const request = DeriveKeyRequestMessage.encode({ keyName, passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DERIVE_KEY, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DERIVE_KEY)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DeriveKeyResponseMessage.decode(subMessage);\n return successful;\n }\n async deleteKey(nodePath, keyName) {\n var _a;\n const request = DeleteKeyRequestMessage.encode({ keyName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DELETE_KEY, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DELETE_KEY)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DeleteKeyResponseMessage.decode(subMessage);\n return successful;\n }\n async listKeys(nodePath) {\n var _a;\n const request = ListKeysRequestMessage.encode({}).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_KEYS, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_KEYS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { keyNames } = ListKeysResponseMessage.decode(subMessage);\n return keyNames;\n }\n async getKey(nodePath, keyName) {\n var _a;\n const request = GetKeyRequestMessage.encode({ keyName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_KEY, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.GET_KEY)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { keyContent } = GetKeyResponseMessage.decode(subMessage);\n return keyContent;\n }\n async getPrimaryKeyPair(nodePath, includePrivateKey = false) {\n var _a;\n const request = GetPrimaryKeyPairRequestMessage.encode({ includePrivateKey }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_PRIMARY_KEYPAIR, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.GET_PRIMARY_KEYPAIR)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { publicKey, privateKey } = GetPrimaryKeyPairResponseMessage.decode(subMessage);\n return { publicKey, privateKey };\n }\n /////////////////////\n // Crypto commands //\n /////////////////////\n async signFile(nodePath, filePath, privateKeyPath, passphrase) {\n var _a;\n const request = SignFileRequestMessage.encode({ filePath, privateKeyPath, passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.SIGN_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.SIGN_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { signaturePath } = SignFileResponseMessage.decode(subMessage);\n return signaturePath;\n }\n async verifyFile(nodePath, filePath, publicKeyPath) {\n var _a;\n const request = VerifyFileRequestMessage.encode({ filePath, publicKeyPath }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.VERIFY_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.VERIFY_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { verified } = VerifyFileResponseMessage.decode(subMessage);\n return verified;\n }\n async encryptFile(nodePath, filePath, publicKeyPath) {\n var _a;\n const request = EncryptFileRequestMessage.encode({ filePath, publicKeyPath }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.ENCRYPT_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.ENCRYPT_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { encryptedPath } = EncryptFileResponseMessage.decode(subMessage);\n return encryptedPath;\n }\n async decryptFile(nodePath, filePath, privateKeyPath, passphrase) {\n var _a;\n const request = DecryptFileRequestMessage.encode({ filePath, privateKeyPath, passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DECRYPT_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DECRYPT_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { decryptedPath } = DecryptFileResponseMessage.decode(subMessage);\n return decryptedPath;\n }\n //////////////////////\n // Vault Operations //\n //////////////////////\n async listVaults(nodePath) {\n var _a;\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_VAULTS, nodePath);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_VAULTS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { vaultNames } = ListVaultsResponseMessage.decode(subMessage);\n return vaultNames;\n }\n async newVault(nodePath, vaultName) {\n var _a;\n const request = NewVaultRequestMessage.encode({ vaultName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.NEW_VAULT, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.NEW_VAULT)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = NewVaultResponseMessage.decode(subMessage);\n return successful;\n }\n async destroyVault(nodePath, vaultName) {\n var _a;\n const request = DestroyVaultRequestMessage.encode({ vaultName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DESTROY_VAULT, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DESTROY_VAULT)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DestroyVaultResponseMessage.decode(subMessage);\n return successful;\n }\n ///////////////////////\n // Secret Operations //\n ///////////////////////\n async listSecrets(nodePath, vaultName) {\n var _a;\n const request = ListSecretsRequestMessage.encode({ vaultName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_SECRETS, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_SECRETS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { secretNames } = ListSecretsResponseMessage.decode(subMessage);\n return secretNames;\n }\n async createSecret(nodePath, vaultName, secretName, secret) {\n var _a;\n let request;\n if (typeof secret == 'string') {\n request = CreateSecretRequestMessage.encode({ vaultName, secretName, secretPath: secret }).finish();\n }\n else {\n request = CreateSecretRequestMessage.encode({ vaultName, secretName, secretContent: secret }).finish();\n }\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.CREATE_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.CREATE_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = CreateSecretResponseMessage.decode(subMessage);\n return successful;\n }\n async destroySecret(nodePath, vaultName, secretName) {\n var _a;\n const request = DestroySecretRequestMessage.encode({ vaultName, secretName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DESTROY_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DESTROY_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DestroySecretResponseMessage.decode(subMessage);\n return successful;\n }\n async getSecret(nodePath, vaultName, secretName) {\n var _a;\n const request = GetSecretRequestMessage.encode({ vaultName, secretName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.GET_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { secret } = GetSecretResponseMessage.decode(subMessage);\n return Buffer.from(secret);\n }\n async updateSecret(nodePath, vaultName, secretName, secret) {\n var _a;\n let request;\n if (typeof secret == 'string') {\n request = UpdateSecretRequestMessage.encode({ vaultName, secretName, secretPath: secret }).finish();\n }\n else {\n request = UpdateSecretRequestMessage.encode({ vaultName, secretName, secretContent: secret }).finish();\n }\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.UPDATE_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.UPDATE_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = UpdateSecretResponseMessage.decode(subMessage);\n return successful;\n }\n ///////////////////\n // Agent control //\n ///////////////////\n async getAgentStatus() {\n var _a;\n try {\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.STATUS);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.STATUS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const status = Buffer.from(subMessage).toString();\n return status;\n }\n catch (err) {\n if (err.toString().match(/ECONNRESET|ENOENT|ECONNRESET/)) {\n return 'stopped';\n }\n throw err;\n }\n }\n async stopAgent() {\n try {\n // Tell it to start shutting and wait for response\n await this.handleAgentCommunication(AgentMessageType.STOP_AGENT);\n return true;\n }\n catch (err) {\n return (await this.getAgentStatus()) != 'online';\n }\n }\n}\nexports.default = PolykeyClient;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = require(\"base64-js\");","module.exports = require(\"ieee754\");","module.exports = require(\"isarray\");","/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/\n\"use strict\";\n\nvar $protobuf = require(\"protobufjs/minimal\");\n\n// Common aliases\nvar $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n\n// Exported root namespace\nvar $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n\n$root.agent = (function() {\n\n /**\n * Namespace agent.\n * @exports agent\n * @namespace\n */\n var agent = {};\n\n /**\n * AgentMessageType enum.\n * @name agent.AgentMessageType\n * @enum {number}\n * @property {number} ERROR=0 ERROR value\n * @property {number} STOP_AGENT=1 STOP_AGENT value\n * @property {number} STATUS=2 STATUS value\n * @property {number} REGISTER_NODE=3 REGISTER_NODE value\n * @property {number} NEW_NODE=4 NEW_NODE value\n * @property {number} LIST_NODES=5 LIST_NODES value\n * @property {number} DERIVE_KEY=6 DERIVE_KEY value\n * @property {number} SIGN_FILE=7 SIGN_FILE value\n * @property {number} VERIFY_FILE=8 VERIFY_FILE value\n * @property {number} LIST_VAULTS=9 LIST_VAULTS value\n * @property {number} NEW_VAULT=10 NEW_VAULT value\n * @property {number} DESTROY_VAULT=11 DESTROY_VAULT value\n * @property {number} LIST_SECRETS=12 LIST_SECRETS value\n * @property {number} CREATE_SECRET=13 CREATE_SECRET value\n * @property {number} DESTROY_SECRET=14 DESTROY_SECRET value\n * @property {number} GET_SECRET=15 GET_SECRET value\n * @property {number} LIST_KEYS=16 LIST_KEYS value\n * @property {number} GET_KEY=17 GET_KEY value\n * @property {number} DELETE_KEY=18 DELETE_KEY value\n * @property {number} ENCRYPT_FILE=19 ENCRYPT_FILE value\n * @property {number} DECRYPT_FILE=20 DECRYPT_FILE value\n * @property {number} GET_PRIMARY_KEYPAIR=21 GET_PRIMARY_KEYPAIR value\n * @property {number} UPDATE_SECRET=22 UPDATE_SECRET value\n */\n agent.AgentMessageType = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"ERROR\"] = 0;\n values[valuesById[1] = \"STOP_AGENT\"] = 1;\n values[valuesById[2] = \"STATUS\"] = 2;\n values[valuesById[3] = \"REGISTER_NODE\"] = 3;\n values[valuesById[4] = \"NEW_NODE\"] = 4;\n values[valuesById[5] = \"LIST_NODES\"] = 5;\n values[valuesById[6] = \"DERIVE_KEY\"] = 6;\n values[valuesById[7] = \"SIGN_FILE\"] = 7;\n values[valuesById[8] = \"VERIFY_FILE\"] = 8;\n values[valuesById[9] = \"LIST_VAULTS\"] = 9;\n values[valuesById[10] = \"NEW_VAULT\"] = 10;\n values[valuesById[11] = \"DESTROY_VAULT\"] = 11;\n values[valuesById[12] = \"LIST_SECRETS\"] = 12;\n values[valuesById[13] = \"CREATE_SECRET\"] = 13;\n values[valuesById[14] = \"DESTROY_SECRET\"] = 14;\n values[valuesById[15] = \"GET_SECRET\"] = 15;\n values[valuesById[16] = \"LIST_KEYS\"] = 16;\n values[valuesById[17] = \"GET_KEY\"] = 17;\n values[valuesById[18] = \"DELETE_KEY\"] = 18;\n values[valuesById[19] = \"ENCRYPT_FILE\"] = 19;\n values[valuesById[20] = \"DECRYPT_FILE\"] = 20;\n values[valuesById[21] = \"GET_PRIMARY_KEYPAIR\"] = 21;\n values[valuesById[22] = \"UPDATE_SECRET\"] = 22;\n return values;\n })();\n\n agent.AgentMessage = (function() {\n\n /**\n * Properties of an AgentMessage.\n * @memberof agent\n * @interface IAgentMessage\n * @property {agent.AgentMessageType|null} [type] AgentMessage type\n * @property {boolean|null} [isResponse] AgentMessage isResponse\n * @property {string|null} [nodePath] AgentMessage nodePath\n * @property {Uint8Array|null} [subMessage] AgentMessage subMessage\n */\n\n /**\n * Constructs a new AgentMessage.\n * @memberof agent\n * @classdesc Represents an AgentMessage.\n * @implements IAgentMessage\n * @constructor\n * @param {agent.IAgentMessage=} [p] Properties to set\n */\n function AgentMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * AgentMessage type.\n * @member {agent.AgentMessageType} type\n * @memberof agent.AgentMessage\n * @instance\n */\n AgentMessage.prototype.type = 0;\n\n /**\n * AgentMessage isResponse.\n * @member {boolean} isResponse\n * @memberof agent.AgentMessage\n * @instance\n */\n AgentMessage.prototype.isResponse = false;\n\n /**\n * AgentMessage nodePath.\n * @member {string} nodePath\n * @memberof agent.AgentMessage\n * @instance\n */\n AgentMessage.prototype.nodePath = \"\";\n\n /**\n * AgentMessage subMessage.\n * @member {Uint8Array} subMessage\n * @memberof agent.AgentMessage\n * @instance\n */\n AgentMessage.prototype.subMessage = $util.newBuffer([]);\n\n /**\n * Creates a new AgentMessage instance using the specified properties.\n * @function create\n * @memberof agent.AgentMessage\n * @static\n * @param {agent.IAgentMessage=} [properties] Properties to set\n * @returns {agent.AgentMessage} AgentMessage instance\n */\n AgentMessage.create = function create(properties) {\n return new AgentMessage(properties);\n };\n\n /**\n * Encodes the specified AgentMessage message. Does not implicitly {@link agent.AgentMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.AgentMessage\n * @static\n * @param {agent.IAgentMessage} m AgentMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AgentMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.type != null && Object.hasOwnProperty.call(m, \"type\"))\n w.uint32(8).int32(m.type);\n if (m.isResponse != null && Object.hasOwnProperty.call(m, \"isResponse\"))\n w.uint32(16).bool(m.isResponse);\n if (m.nodePath != null && Object.hasOwnProperty.call(m, \"nodePath\"))\n w.uint32(26).string(m.nodePath);\n if (m.subMessage != null && Object.hasOwnProperty.call(m, \"subMessage\"))\n w.uint32(34).bytes(m.subMessage);\n return w;\n };\n\n /**\n * Decodes an AgentMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.AgentMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.AgentMessage} AgentMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AgentMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.AgentMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.type = r.int32();\n break;\n case 2:\n m.isResponse = r.bool();\n break;\n case 3:\n m.nodePath = r.string();\n break;\n case 4:\n m.subMessage = r.bytes();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return AgentMessage;\n })();\n\n agent.ErrorMessage = (function() {\n\n /**\n * Properties of an ErrorMessage.\n * @memberof agent\n * @interface IErrorMessage\n * @property {string|null} [error] ErrorMessage error\n */\n\n /**\n * Constructs a new ErrorMessage.\n * @memberof agent\n * @classdesc Represents an ErrorMessage.\n * @implements IErrorMessage\n * @constructor\n * @param {agent.IErrorMessage=} [p] Properties to set\n */\n function ErrorMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ErrorMessage error.\n * @member {string} error\n * @memberof agent.ErrorMessage\n * @instance\n */\n ErrorMessage.prototype.error = \"\";\n\n /**\n * Creates a new ErrorMessage instance using the specified properties.\n * @function create\n * @memberof agent.ErrorMessage\n * @static\n * @param {agent.IErrorMessage=} [properties] Properties to set\n * @returns {agent.ErrorMessage} ErrorMessage instance\n */\n ErrorMessage.create = function create(properties) {\n return new ErrorMessage(properties);\n };\n\n /**\n * Encodes the specified ErrorMessage message. Does not implicitly {@link agent.ErrorMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ErrorMessage\n * @static\n * @param {agent.IErrorMessage} m ErrorMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ErrorMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.error != null && Object.hasOwnProperty.call(m, \"error\"))\n w.uint32(10).string(m.error);\n return w;\n };\n\n /**\n * Decodes an ErrorMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ErrorMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ErrorMessage} ErrorMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ErrorMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ErrorMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.error = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ErrorMessage;\n })();\n\n agent.RegisterNodeRequestMessage = (function() {\n\n /**\n * Properties of a RegisterNodeRequestMessage.\n * @memberof agent\n * @interface IRegisterNodeRequestMessage\n * @property {string|null} [passphrase] RegisterNodeRequestMessage passphrase\n */\n\n /**\n * Constructs a new RegisterNodeRequestMessage.\n * @memberof agent\n * @classdesc Represents a RegisterNodeRequestMessage.\n * @implements IRegisterNodeRequestMessage\n * @constructor\n * @param {agent.IRegisterNodeRequestMessage=} [p] Properties to set\n */\n function RegisterNodeRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * RegisterNodeRequestMessage passphrase.\n * @member {string} passphrase\n * @memberof agent.RegisterNodeRequestMessage\n * @instance\n */\n RegisterNodeRequestMessage.prototype.passphrase = \"\";\n\n /**\n * Creates a new RegisterNodeRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.RegisterNodeRequestMessage\n * @static\n * @param {agent.IRegisterNodeRequestMessage=} [properties] Properties to set\n * @returns {agent.RegisterNodeRequestMessage} RegisterNodeRequestMessage instance\n */\n RegisterNodeRequestMessage.create = function create(properties) {\n return new RegisterNodeRequestMessage(properties);\n };\n\n /**\n * Encodes the specified RegisterNodeRequestMessage message. Does not implicitly {@link agent.RegisterNodeRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.RegisterNodeRequestMessage\n * @static\n * @param {agent.IRegisterNodeRequestMessage} m RegisterNodeRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RegisterNodeRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.passphrase != null && Object.hasOwnProperty.call(m, \"passphrase\"))\n w.uint32(10).string(m.passphrase);\n return w;\n };\n\n /**\n * Decodes a RegisterNodeRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.RegisterNodeRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.RegisterNodeRequestMessage} RegisterNodeRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RegisterNodeRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.RegisterNodeRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.passphrase = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return RegisterNodeRequestMessage;\n })();\n\n agent.RegisterNodeResponseMessage = (function() {\n\n /**\n * Properties of a RegisterNodeResponseMessage.\n * @memberof agent\n * @interface IRegisterNodeResponseMessage\n * @property {boolean|null} [successful] RegisterNodeResponseMessage successful\n */\n\n /**\n * Constructs a new RegisterNodeResponseMessage.\n * @memberof agent\n * @classdesc Represents a RegisterNodeResponseMessage.\n * @implements IRegisterNodeResponseMessage\n * @constructor\n * @param {agent.IRegisterNodeResponseMessage=} [p] Properties to set\n */\n function RegisterNodeResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * RegisterNodeResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.RegisterNodeResponseMessage\n * @instance\n */\n RegisterNodeResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new RegisterNodeResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.RegisterNodeResponseMessage\n * @static\n * @param {agent.IRegisterNodeResponseMessage=} [properties] Properties to set\n * @returns {agent.RegisterNodeResponseMessage} RegisterNodeResponseMessage instance\n */\n RegisterNodeResponseMessage.create = function create(properties) {\n return new RegisterNodeResponseMessage(properties);\n };\n\n /**\n * Encodes the specified RegisterNodeResponseMessage message. Does not implicitly {@link agent.RegisterNodeResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.RegisterNodeResponseMessage\n * @static\n * @param {agent.IRegisterNodeResponseMessage} m RegisterNodeResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RegisterNodeResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a RegisterNodeResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.RegisterNodeResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.RegisterNodeResponseMessage} RegisterNodeResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RegisterNodeResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.RegisterNodeResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return RegisterNodeResponseMessage;\n })();\n\n agent.NewNodeRequestMessage = (function() {\n\n /**\n * Properties of a NewNodeRequestMessage.\n * @memberof agent\n * @interface INewNodeRequestMessage\n * @property {string|null} [name] NewNodeRequestMessage name\n * @property {string|null} [email] NewNodeRequestMessage email\n * @property {string|null} [passphrase] NewNodeRequestMessage passphrase\n * @property {number|null} [nbits] NewNodeRequestMessage nbits\n */\n\n /**\n * Constructs a new NewNodeRequestMessage.\n * @memberof agent\n * @classdesc Represents a NewNodeRequestMessage.\n * @implements INewNodeRequestMessage\n * @constructor\n * @param {agent.INewNodeRequestMessage=} [p] Properties to set\n */\n function NewNodeRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * NewNodeRequestMessage name.\n * @member {string} name\n * @memberof agent.NewNodeRequestMessage\n * @instance\n */\n NewNodeRequestMessage.prototype.name = \"\";\n\n /**\n * NewNodeRequestMessage email.\n * @member {string} email\n * @memberof agent.NewNodeRequestMessage\n * @instance\n */\n NewNodeRequestMessage.prototype.email = \"\";\n\n /**\n * NewNodeRequestMessage passphrase.\n * @member {string} passphrase\n * @memberof agent.NewNodeRequestMessage\n * @instance\n */\n NewNodeRequestMessage.prototype.passphrase = \"\";\n\n /**\n * NewNodeRequestMessage nbits.\n * @member {number} nbits\n * @memberof agent.NewNodeRequestMessage\n * @instance\n */\n NewNodeRequestMessage.prototype.nbits = 0;\n\n /**\n * Creates a new NewNodeRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.NewNodeRequestMessage\n * @static\n * @param {agent.INewNodeRequestMessage=} [properties] Properties to set\n * @returns {agent.NewNodeRequestMessage} NewNodeRequestMessage instance\n */\n NewNodeRequestMessage.create = function create(properties) {\n return new NewNodeRequestMessage(properties);\n };\n\n /**\n * Encodes the specified NewNodeRequestMessage message. Does not implicitly {@link agent.NewNodeRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.NewNodeRequestMessage\n * @static\n * @param {agent.INewNodeRequestMessage} m NewNodeRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NewNodeRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.name != null && Object.hasOwnProperty.call(m, \"name\"))\n w.uint32(10).string(m.name);\n if (m.email != null && Object.hasOwnProperty.call(m, \"email\"))\n w.uint32(18).string(m.email);\n if (m.passphrase != null && Object.hasOwnProperty.call(m, \"passphrase\"))\n w.uint32(26).string(m.passphrase);\n if (m.nbits != null && Object.hasOwnProperty.call(m, \"nbits\"))\n w.uint32(32).int32(m.nbits);\n return w;\n };\n\n /**\n * Decodes a NewNodeRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.NewNodeRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.NewNodeRequestMessage} NewNodeRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NewNodeRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.NewNodeRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.name = r.string();\n break;\n case 2:\n m.email = r.string();\n break;\n case 3:\n m.passphrase = r.string();\n break;\n case 4:\n m.nbits = r.int32();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return NewNodeRequestMessage;\n })();\n\n agent.NewNodeResponseMessage = (function() {\n\n /**\n * Properties of a NewNodeResponseMessage.\n * @memberof agent\n * @interface INewNodeResponseMessage\n * @property {boolean|null} [successful] NewNodeResponseMessage successful\n */\n\n /**\n * Constructs a new NewNodeResponseMessage.\n * @memberof agent\n * @classdesc Represents a NewNodeResponseMessage.\n * @implements INewNodeResponseMessage\n * @constructor\n * @param {agent.INewNodeResponseMessage=} [p] Properties to set\n */\n function NewNodeResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * NewNodeResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.NewNodeResponseMessage\n * @instance\n */\n NewNodeResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new NewNodeResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.NewNodeResponseMessage\n * @static\n * @param {agent.INewNodeResponseMessage=} [properties] Properties to set\n * @returns {agent.NewNodeResponseMessage} NewNodeResponseMessage instance\n */\n NewNodeResponseMessage.create = function create(properties) {\n return new NewNodeResponseMessage(properties);\n };\n\n /**\n * Encodes the specified NewNodeResponseMessage message. Does not implicitly {@link agent.NewNodeResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.NewNodeResponseMessage\n * @static\n * @param {agent.INewNodeResponseMessage} m NewNodeResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NewNodeResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a NewNodeResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.NewNodeResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.NewNodeResponseMessage} NewNodeResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NewNodeResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.NewNodeResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return NewNodeResponseMessage;\n })();\n\n agent.ListNodesRequestMessage = (function() {\n\n /**\n * Properties of a ListNodesRequestMessage.\n * @memberof agent\n * @interface IListNodesRequestMessage\n * @property {boolean|null} [unlockedOnly] ListNodesRequestMessage unlockedOnly\n */\n\n /**\n * Constructs a new ListNodesRequestMessage.\n * @memberof agent\n * @classdesc Represents a ListNodesRequestMessage.\n * @implements IListNodesRequestMessage\n * @constructor\n * @param {agent.IListNodesRequestMessage=} [p] Properties to set\n */\n function ListNodesRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ListNodesRequestMessage unlockedOnly.\n * @member {boolean} unlockedOnly\n * @memberof agent.ListNodesRequestMessage\n * @instance\n */\n ListNodesRequestMessage.prototype.unlockedOnly = false;\n\n /**\n * Creates a new ListNodesRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListNodesRequestMessage\n * @static\n * @param {agent.IListNodesRequestMessage=} [properties] Properties to set\n * @returns {agent.ListNodesRequestMessage} ListNodesRequestMessage instance\n */\n ListNodesRequestMessage.create = function create(properties) {\n return new ListNodesRequestMessage(properties);\n };\n\n /**\n * Encodes the specified ListNodesRequestMessage message. Does not implicitly {@link agent.ListNodesRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListNodesRequestMessage\n * @static\n * @param {agent.IListNodesRequestMessage} m ListNodesRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListNodesRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.unlockedOnly != null && Object.hasOwnProperty.call(m, \"unlockedOnly\"))\n w.uint32(8).bool(m.unlockedOnly);\n return w;\n };\n\n /**\n * Decodes a ListNodesRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListNodesRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListNodesRequestMessage} ListNodesRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListNodesRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListNodesRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.unlockedOnly = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListNodesRequestMessage;\n })();\n\n agent.ListNodesResponseMessage = (function() {\n\n /**\n * Properties of a ListNodesResponseMessage.\n * @memberof agent\n * @interface IListNodesResponseMessage\n * @property {Array.|null} [nodes] ListNodesResponseMessage nodes\n */\n\n /**\n * Constructs a new ListNodesResponseMessage.\n * @memberof agent\n * @classdesc Represents a ListNodesResponseMessage.\n * @implements IListNodesResponseMessage\n * @constructor\n * @param {agent.IListNodesResponseMessage=} [p] Properties to set\n */\n function ListNodesResponseMessage(p) {\n this.nodes = [];\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ListNodesResponseMessage nodes.\n * @member {Array.} nodes\n * @memberof agent.ListNodesResponseMessage\n * @instance\n */\n ListNodesResponseMessage.prototype.nodes = $util.emptyArray;\n\n /**\n * Creates a new ListNodesResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListNodesResponseMessage\n * @static\n * @param {agent.IListNodesResponseMessage=} [properties] Properties to set\n * @returns {agent.ListNodesResponseMessage} ListNodesResponseMessage instance\n */\n ListNodesResponseMessage.create = function create(properties) {\n return new ListNodesResponseMessage(properties);\n };\n\n /**\n * Encodes the specified ListNodesResponseMessage message. Does not implicitly {@link agent.ListNodesResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListNodesResponseMessage\n * @static\n * @param {agent.IListNodesResponseMessage} m ListNodesResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListNodesResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.nodes != null && m.nodes.length) {\n for (var i = 0; i < m.nodes.length; ++i)\n w.uint32(10).string(m.nodes[i]);\n }\n return w;\n };\n\n /**\n * Decodes a ListNodesResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListNodesResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListNodesResponseMessage} ListNodesResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListNodesResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListNodesResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n if (!(m.nodes && m.nodes.length))\n m.nodes = [];\n m.nodes.push(r.string());\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListNodesResponseMessage;\n })();\n\n agent.SignFileRequestMessage = (function() {\n\n /**\n * Properties of a SignFileRequestMessage.\n * @memberof agent\n * @interface ISignFileRequestMessage\n * @property {string|null} [filePath] SignFileRequestMessage filePath\n * @property {string|null} [privateKeyPath] SignFileRequestMessage privateKeyPath\n * @property {string|null} [passphrase] SignFileRequestMessage passphrase\n */\n\n /**\n * Constructs a new SignFileRequestMessage.\n * @memberof agent\n * @classdesc Represents a SignFileRequestMessage.\n * @implements ISignFileRequestMessage\n * @constructor\n * @param {agent.ISignFileRequestMessage=} [p] Properties to set\n */\n function SignFileRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * SignFileRequestMessage filePath.\n * @member {string} filePath\n * @memberof agent.SignFileRequestMessage\n * @instance\n */\n SignFileRequestMessage.prototype.filePath = \"\";\n\n /**\n * SignFileRequestMessage privateKeyPath.\n * @member {string} privateKeyPath\n * @memberof agent.SignFileRequestMessage\n * @instance\n */\n SignFileRequestMessage.prototype.privateKeyPath = \"\";\n\n /**\n * SignFileRequestMessage passphrase.\n * @member {string} passphrase\n * @memberof agent.SignFileRequestMessage\n * @instance\n */\n SignFileRequestMessage.prototype.passphrase = \"\";\n\n /**\n * Creates a new SignFileRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.SignFileRequestMessage\n * @static\n * @param {agent.ISignFileRequestMessage=} [properties] Properties to set\n * @returns {agent.SignFileRequestMessage} SignFileRequestMessage instance\n */\n SignFileRequestMessage.create = function create(properties) {\n return new SignFileRequestMessage(properties);\n };\n\n /**\n * Encodes the specified SignFileRequestMessage message. Does not implicitly {@link agent.SignFileRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.SignFileRequestMessage\n * @static\n * @param {agent.ISignFileRequestMessage} m SignFileRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SignFileRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.filePath != null && Object.hasOwnProperty.call(m, \"filePath\"))\n w.uint32(10).string(m.filePath);\n if (m.privateKeyPath != null && Object.hasOwnProperty.call(m, \"privateKeyPath\"))\n w.uint32(18).string(m.privateKeyPath);\n if (m.passphrase != null && Object.hasOwnProperty.call(m, \"passphrase\"))\n w.uint32(26).string(m.passphrase);\n return w;\n };\n\n /**\n * Decodes a SignFileRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.SignFileRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.SignFileRequestMessage} SignFileRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SignFileRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.SignFileRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.filePath = r.string();\n break;\n case 2:\n m.privateKeyPath = r.string();\n break;\n case 3:\n m.passphrase = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return SignFileRequestMessage;\n })();\n\n agent.SignFileResponseMessage = (function() {\n\n /**\n * Properties of a SignFileResponseMessage.\n * @memberof agent\n * @interface ISignFileResponseMessage\n * @property {string|null} [signaturePath] SignFileResponseMessage signaturePath\n */\n\n /**\n * Constructs a new SignFileResponseMessage.\n * @memberof agent\n * @classdesc Represents a SignFileResponseMessage.\n * @implements ISignFileResponseMessage\n * @constructor\n * @param {agent.ISignFileResponseMessage=} [p] Properties to set\n */\n function SignFileResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * SignFileResponseMessage signaturePath.\n * @member {string} signaturePath\n * @memberof agent.SignFileResponseMessage\n * @instance\n */\n SignFileResponseMessage.prototype.signaturePath = \"\";\n\n /**\n * Creates a new SignFileResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.SignFileResponseMessage\n * @static\n * @param {agent.ISignFileResponseMessage=} [properties] Properties to set\n * @returns {agent.SignFileResponseMessage} SignFileResponseMessage instance\n */\n SignFileResponseMessage.create = function create(properties) {\n return new SignFileResponseMessage(properties);\n };\n\n /**\n * Encodes the specified SignFileResponseMessage message. Does not implicitly {@link agent.SignFileResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.SignFileResponseMessage\n * @static\n * @param {agent.ISignFileResponseMessage} m SignFileResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SignFileResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.signaturePath != null && Object.hasOwnProperty.call(m, \"signaturePath\"))\n w.uint32(10).string(m.signaturePath);\n return w;\n };\n\n /**\n * Decodes a SignFileResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.SignFileResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.SignFileResponseMessage} SignFileResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SignFileResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.SignFileResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.signaturePath = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return SignFileResponseMessage;\n })();\n\n agent.VerifyFileRequestMessage = (function() {\n\n /**\n * Properties of a VerifyFileRequestMessage.\n * @memberof agent\n * @interface IVerifyFileRequestMessage\n * @property {string|null} [filePath] VerifyFileRequestMessage filePath\n * @property {string|null} [publicKeyPath] VerifyFileRequestMessage publicKeyPath\n */\n\n /**\n * Constructs a new VerifyFileRequestMessage.\n * @memberof agent\n * @classdesc Represents a VerifyFileRequestMessage.\n * @implements IVerifyFileRequestMessage\n * @constructor\n * @param {agent.IVerifyFileRequestMessage=} [p] Properties to set\n */\n function VerifyFileRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * VerifyFileRequestMessage filePath.\n * @member {string} filePath\n * @memberof agent.VerifyFileRequestMessage\n * @instance\n */\n VerifyFileRequestMessage.prototype.filePath = \"\";\n\n /**\n * VerifyFileRequestMessage publicKeyPath.\n * @member {string} publicKeyPath\n * @memberof agent.VerifyFileRequestMessage\n * @instance\n */\n VerifyFileRequestMessage.prototype.publicKeyPath = \"\";\n\n /**\n * Creates a new VerifyFileRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.VerifyFileRequestMessage\n * @static\n * @param {agent.IVerifyFileRequestMessage=} [properties] Properties to set\n * @returns {agent.VerifyFileRequestMessage} VerifyFileRequestMessage instance\n */\n VerifyFileRequestMessage.create = function create(properties) {\n return new VerifyFileRequestMessage(properties);\n };\n\n /**\n * Encodes the specified VerifyFileRequestMessage message. Does not implicitly {@link agent.VerifyFileRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.VerifyFileRequestMessage\n * @static\n * @param {agent.IVerifyFileRequestMessage} m VerifyFileRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n VerifyFileRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.filePath != null && Object.hasOwnProperty.call(m, \"filePath\"))\n w.uint32(10).string(m.filePath);\n if (m.publicKeyPath != null && Object.hasOwnProperty.call(m, \"publicKeyPath\"))\n w.uint32(18).string(m.publicKeyPath);\n return w;\n };\n\n /**\n * Decodes a VerifyFileRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.VerifyFileRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.VerifyFileRequestMessage} VerifyFileRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n VerifyFileRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.VerifyFileRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.filePath = r.string();\n break;\n case 2:\n m.publicKeyPath = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return VerifyFileRequestMessage;\n })();\n\n agent.VerifyFileResponseMessage = (function() {\n\n /**\n * Properties of a VerifyFileResponseMessage.\n * @memberof agent\n * @interface IVerifyFileResponseMessage\n * @property {boolean|null} [verified] VerifyFileResponseMessage verified\n */\n\n /**\n * Constructs a new VerifyFileResponseMessage.\n * @memberof agent\n * @classdesc Represents a VerifyFileResponseMessage.\n * @implements IVerifyFileResponseMessage\n * @constructor\n * @param {agent.IVerifyFileResponseMessage=} [p] Properties to set\n */\n function VerifyFileResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * VerifyFileResponseMessage verified.\n * @member {boolean} verified\n * @memberof agent.VerifyFileResponseMessage\n * @instance\n */\n VerifyFileResponseMessage.prototype.verified = false;\n\n /**\n * Creates a new VerifyFileResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.VerifyFileResponseMessage\n * @static\n * @param {agent.IVerifyFileResponseMessage=} [properties] Properties to set\n * @returns {agent.VerifyFileResponseMessage} VerifyFileResponseMessage instance\n */\n VerifyFileResponseMessage.create = function create(properties) {\n return new VerifyFileResponseMessage(properties);\n };\n\n /**\n * Encodes the specified VerifyFileResponseMessage message. Does not implicitly {@link agent.VerifyFileResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.VerifyFileResponseMessage\n * @static\n * @param {agent.IVerifyFileResponseMessage} m VerifyFileResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n VerifyFileResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.verified != null && Object.hasOwnProperty.call(m, \"verified\"))\n w.uint32(8).bool(m.verified);\n return w;\n };\n\n /**\n * Decodes a VerifyFileResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.VerifyFileResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.VerifyFileResponseMessage} VerifyFileResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n VerifyFileResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.VerifyFileResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.verified = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return VerifyFileResponseMessage;\n })();\n\n agent.EncryptFileRequestMessage = (function() {\n\n /**\n * Properties of an EncryptFileRequestMessage.\n * @memberof agent\n * @interface IEncryptFileRequestMessage\n * @property {string|null} [filePath] EncryptFileRequestMessage filePath\n * @property {string|null} [publicKeyPath] EncryptFileRequestMessage publicKeyPath\n */\n\n /**\n * Constructs a new EncryptFileRequestMessage.\n * @memberof agent\n * @classdesc Represents an EncryptFileRequestMessage.\n * @implements IEncryptFileRequestMessage\n * @constructor\n * @param {agent.IEncryptFileRequestMessage=} [p] Properties to set\n */\n function EncryptFileRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * EncryptFileRequestMessage filePath.\n * @member {string} filePath\n * @memberof agent.EncryptFileRequestMessage\n * @instance\n */\n EncryptFileRequestMessage.prototype.filePath = \"\";\n\n /**\n * EncryptFileRequestMessage publicKeyPath.\n * @member {string} publicKeyPath\n * @memberof agent.EncryptFileRequestMessage\n * @instance\n */\n EncryptFileRequestMessage.prototype.publicKeyPath = \"\";\n\n /**\n * Creates a new EncryptFileRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.EncryptFileRequestMessage\n * @static\n * @param {agent.IEncryptFileRequestMessage=} [properties] Properties to set\n * @returns {agent.EncryptFileRequestMessage} EncryptFileRequestMessage instance\n */\n EncryptFileRequestMessage.create = function create(properties) {\n return new EncryptFileRequestMessage(properties);\n };\n\n /**\n * Encodes the specified EncryptFileRequestMessage message. Does not implicitly {@link agent.EncryptFileRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.EncryptFileRequestMessage\n * @static\n * @param {agent.IEncryptFileRequestMessage} m EncryptFileRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EncryptFileRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.filePath != null && Object.hasOwnProperty.call(m, \"filePath\"))\n w.uint32(10).string(m.filePath);\n if (m.publicKeyPath != null && Object.hasOwnProperty.call(m, \"publicKeyPath\"))\n w.uint32(18).string(m.publicKeyPath);\n return w;\n };\n\n /**\n * Decodes an EncryptFileRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.EncryptFileRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.EncryptFileRequestMessage} EncryptFileRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EncryptFileRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.EncryptFileRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.filePath = r.string();\n break;\n case 2:\n m.publicKeyPath = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return EncryptFileRequestMessage;\n })();\n\n agent.EncryptFileResponseMessage = (function() {\n\n /**\n * Properties of an EncryptFileResponseMessage.\n * @memberof agent\n * @interface IEncryptFileResponseMessage\n * @property {string|null} [encryptedPath] EncryptFileResponseMessage encryptedPath\n */\n\n /**\n * Constructs a new EncryptFileResponseMessage.\n * @memberof agent\n * @classdesc Represents an EncryptFileResponseMessage.\n * @implements IEncryptFileResponseMessage\n * @constructor\n * @param {agent.IEncryptFileResponseMessage=} [p] Properties to set\n */\n function EncryptFileResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * EncryptFileResponseMessage encryptedPath.\n * @member {string} encryptedPath\n * @memberof agent.EncryptFileResponseMessage\n * @instance\n */\n EncryptFileResponseMessage.prototype.encryptedPath = \"\";\n\n /**\n * Creates a new EncryptFileResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.EncryptFileResponseMessage\n * @static\n * @param {agent.IEncryptFileResponseMessage=} [properties] Properties to set\n * @returns {agent.EncryptFileResponseMessage} EncryptFileResponseMessage instance\n */\n EncryptFileResponseMessage.create = function create(properties) {\n return new EncryptFileResponseMessage(properties);\n };\n\n /**\n * Encodes the specified EncryptFileResponseMessage message. Does not implicitly {@link agent.EncryptFileResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.EncryptFileResponseMessage\n * @static\n * @param {agent.IEncryptFileResponseMessage} m EncryptFileResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EncryptFileResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.encryptedPath != null && Object.hasOwnProperty.call(m, \"encryptedPath\"))\n w.uint32(10).string(m.encryptedPath);\n return w;\n };\n\n /**\n * Decodes an EncryptFileResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.EncryptFileResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.EncryptFileResponseMessage} EncryptFileResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EncryptFileResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.EncryptFileResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.encryptedPath = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return EncryptFileResponseMessage;\n })();\n\n agent.DecryptFileRequestMessage = (function() {\n\n /**\n * Properties of a DecryptFileRequestMessage.\n * @memberof agent\n * @interface IDecryptFileRequestMessage\n * @property {string|null} [filePath] DecryptFileRequestMessage filePath\n * @property {string|null} [privateKeyPath] DecryptFileRequestMessage privateKeyPath\n * @property {string|null} [passphrase] DecryptFileRequestMessage passphrase\n */\n\n /**\n * Constructs a new DecryptFileRequestMessage.\n * @memberof agent\n * @classdesc Represents a DecryptFileRequestMessage.\n * @implements IDecryptFileRequestMessage\n * @constructor\n * @param {agent.IDecryptFileRequestMessage=} [p] Properties to set\n */\n function DecryptFileRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DecryptFileRequestMessage filePath.\n * @member {string} filePath\n * @memberof agent.DecryptFileRequestMessage\n * @instance\n */\n DecryptFileRequestMessage.prototype.filePath = \"\";\n\n /**\n * DecryptFileRequestMessage privateKeyPath.\n * @member {string} privateKeyPath\n * @memberof agent.DecryptFileRequestMessage\n * @instance\n */\n DecryptFileRequestMessage.prototype.privateKeyPath = \"\";\n\n /**\n * DecryptFileRequestMessage passphrase.\n * @member {string} passphrase\n * @memberof agent.DecryptFileRequestMessage\n * @instance\n */\n DecryptFileRequestMessage.prototype.passphrase = \"\";\n\n /**\n * Creates a new DecryptFileRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.DecryptFileRequestMessage\n * @static\n * @param {agent.IDecryptFileRequestMessage=} [properties] Properties to set\n * @returns {agent.DecryptFileRequestMessage} DecryptFileRequestMessage instance\n */\n DecryptFileRequestMessage.create = function create(properties) {\n return new DecryptFileRequestMessage(properties);\n };\n\n /**\n * Encodes the specified DecryptFileRequestMessage message. Does not implicitly {@link agent.DecryptFileRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DecryptFileRequestMessage\n * @static\n * @param {agent.IDecryptFileRequestMessage} m DecryptFileRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DecryptFileRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.filePath != null && Object.hasOwnProperty.call(m, \"filePath\"))\n w.uint32(10).string(m.filePath);\n if (m.privateKeyPath != null && Object.hasOwnProperty.call(m, \"privateKeyPath\"))\n w.uint32(18).string(m.privateKeyPath);\n if (m.passphrase != null && Object.hasOwnProperty.call(m, \"passphrase\"))\n w.uint32(26).string(m.passphrase);\n return w;\n };\n\n /**\n * Decodes a DecryptFileRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DecryptFileRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DecryptFileRequestMessage} DecryptFileRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DecryptFileRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DecryptFileRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.filePath = r.string();\n break;\n case 2:\n m.privateKeyPath = r.string();\n break;\n case 3:\n m.passphrase = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DecryptFileRequestMessage;\n })();\n\n agent.DecryptFileResponseMessage = (function() {\n\n /**\n * Properties of a DecryptFileResponseMessage.\n * @memberof agent\n * @interface IDecryptFileResponseMessage\n * @property {string|null} [decryptedPath] DecryptFileResponseMessage decryptedPath\n */\n\n /**\n * Constructs a new DecryptFileResponseMessage.\n * @memberof agent\n * @classdesc Represents a DecryptFileResponseMessage.\n * @implements IDecryptFileResponseMessage\n * @constructor\n * @param {agent.IDecryptFileResponseMessage=} [p] Properties to set\n */\n function DecryptFileResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DecryptFileResponseMessage decryptedPath.\n * @member {string} decryptedPath\n * @memberof agent.DecryptFileResponseMessage\n * @instance\n */\n DecryptFileResponseMessage.prototype.decryptedPath = \"\";\n\n /**\n * Creates a new DecryptFileResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.DecryptFileResponseMessage\n * @static\n * @param {agent.IDecryptFileResponseMessage=} [properties] Properties to set\n * @returns {agent.DecryptFileResponseMessage} DecryptFileResponseMessage instance\n */\n DecryptFileResponseMessage.create = function create(properties) {\n return new DecryptFileResponseMessage(properties);\n };\n\n /**\n * Encodes the specified DecryptFileResponseMessage message. Does not implicitly {@link agent.DecryptFileResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DecryptFileResponseMessage\n * @static\n * @param {agent.IDecryptFileResponseMessage} m DecryptFileResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DecryptFileResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.decryptedPath != null && Object.hasOwnProperty.call(m, \"decryptedPath\"))\n w.uint32(10).string(m.decryptedPath);\n return w;\n };\n\n /**\n * Decodes a DecryptFileResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DecryptFileResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DecryptFileResponseMessage} DecryptFileResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DecryptFileResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DecryptFileResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.decryptedPath = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DecryptFileResponseMessage;\n })();\n\n agent.ListVaultsRequestMessage = (function() {\n\n /**\n * Properties of a ListVaultsRequestMessage.\n * @memberof agent\n * @interface IListVaultsRequestMessage\n */\n\n /**\n * Constructs a new ListVaultsRequestMessage.\n * @memberof agent\n * @classdesc Represents a ListVaultsRequestMessage.\n * @implements IListVaultsRequestMessage\n * @constructor\n * @param {agent.IListVaultsRequestMessage=} [p] Properties to set\n */\n function ListVaultsRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * Creates a new ListVaultsRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListVaultsRequestMessage\n * @static\n * @param {agent.IListVaultsRequestMessage=} [properties] Properties to set\n * @returns {agent.ListVaultsRequestMessage} ListVaultsRequestMessage instance\n */\n ListVaultsRequestMessage.create = function create(properties) {\n return new ListVaultsRequestMessage(properties);\n };\n\n /**\n * Encodes the specified ListVaultsRequestMessage message. Does not implicitly {@link agent.ListVaultsRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListVaultsRequestMessage\n * @static\n * @param {agent.IListVaultsRequestMessage} m ListVaultsRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListVaultsRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n return w;\n };\n\n /**\n * Decodes a ListVaultsRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListVaultsRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListVaultsRequestMessage} ListVaultsRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListVaultsRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListVaultsRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListVaultsRequestMessage;\n })();\n\n agent.ListVaultsResponseMessage = (function() {\n\n /**\n * Properties of a ListVaultsResponseMessage.\n * @memberof agent\n * @interface IListVaultsResponseMessage\n * @property {Array.|null} [vaultNames] ListVaultsResponseMessage vaultNames\n */\n\n /**\n * Constructs a new ListVaultsResponseMessage.\n * @memberof agent\n * @classdesc Represents a ListVaultsResponseMessage.\n * @implements IListVaultsResponseMessage\n * @constructor\n * @param {agent.IListVaultsResponseMessage=} [p] Properties to set\n */\n function ListVaultsResponseMessage(p) {\n this.vaultNames = [];\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ListVaultsResponseMessage vaultNames.\n * @member {Array.} vaultNames\n * @memberof agent.ListVaultsResponseMessage\n * @instance\n */\n ListVaultsResponseMessage.prototype.vaultNames = $util.emptyArray;\n\n /**\n * Creates a new ListVaultsResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListVaultsResponseMessage\n * @static\n * @param {agent.IListVaultsResponseMessage=} [properties] Properties to set\n * @returns {agent.ListVaultsResponseMessage} ListVaultsResponseMessage instance\n */\n ListVaultsResponseMessage.create = function create(properties) {\n return new ListVaultsResponseMessage(properties);\n };\n\n /**\n * Encodes the specified ListVaultsResponseMessage message. Does not implicitly {@link agent.ListVaultsResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListVaultsResponseMessage\n * @static\n * @param {agent.IListVaultsResponseMessage} m ListVaultsResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListVaultsResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultNames != null && m.vaultNames.length) {\n for (var i = 0; i < m.vaultNames.length; ++i)\n w.uint32(10).string(m.vaultNames[i]);\n }\n return w;\n };\n\n /**\n * Decodes a ListVaultsResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListVaultsResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListVaultsResponseMessage} ListVaultsResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListVaultsResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListVaultsResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n if (!(m.vaultNames && m.vaultNames.length))\n m.vaultNames = [];\n m.vaultNames.push(r.string());\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListVaultsResponseMessage;\n })();\n\n agent.NewVaultRequestMessage = (function() {\n\n /**\n * Properties of a NewVaultRequestMessage.\n * @memberof agent\n * @interface INewVaultRequestMessage\n * @property {string|null} [vaultName] NewVaultRequestMessage vaultName\n */\n\n /**\n * Constructs a new NewVaultRequestMessage.\n * @memberof agent\n * @classdesc Represents a NewVaultRequestMessage.\n * @implements INewVaultRequestMessage\n * @constructor\n * @param {agent.INewVaultRequestMessage=} [p] Properties to set\n */\n function NewVaultRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * NewVaultRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.NewVaultRequestMessage\n * @instance\n */\n NewVaultRequestMessage.prototype.vaultName = \"\";\n\n /**\n * Creates a new NewVaultRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.NewVaultRequestMessage\n * @static\n * @param {agent.INewVaultRequestMessage=} [properties] Properties to set\n * @returns {agent.NewVaultRequestMessage} NewVaultRequestMessage instance\n */\n NewVaultRequestMessage.create = function create(properties) {\n return new NewVaultRequestMessage(properties);\n };\n\n /**\n * Encodes the specified NewVaultRequestMessage message. Does not implicitly {@link agent.NewVaultRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.NewVaultRequestMessage\n * @static\n * @param {agent.INewVaultRequestMessage} m NewVaultRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NewVaultRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n return w;\n };\n\n /**\n * Decodes a NewVaultRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.NewVaultRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.NewVaultRequestMessage} NewVaultRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NewVaultRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.NewVaultRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return NewVaultRequestMessage;\n })();\n\n agent.NewVaultResponseMessage = (function() {\n\n /**\n * Properties of a NewVaultResponseMessage.\n * @memberof agent\n * @interface INewVaultResponseMessage\n * @property {boolean|null} [successful] NewVaultResponseMessage successful\n */\n\n /**\n * Constructs a new NewVaultResponseMessage.\n * @memberof agent\n * @classdesc Represents a NewVaultResponseMessage.\n * @implements INewVaultResponseMessage\n * @constructor\n * @param {agent.INewVaultResponseMessage=} [p] Properties to set\n */\n function NewVaultResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * NewVaultResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.NewVaultResponseMessage\n * @instance\n */\n NewVaultResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new NewVaultResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.NewVaultResponseMessage\n * @static\n * @param {agent.INewVaultResponseMessage=} [properties] Properties to set\n * @returns {agent.NewVaultResponseMessage} NewVaultResponseMessage instance\n */\n NewVaultResponseMessage.create = function create(properties) {\n return new NewVaultResponseMessage(properties);\n };\n\n /**\n * Encodes the specified NewVaultResponseMessage message. Does not implicitly {@link agent.NewVaultResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.NewVaultResponseMessage\n * @static\n * @param {agent.INewVaultResponseMessage} m NewVaultResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NewVaultResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a NewVaultResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.NewVaultResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.NewVaultResponseMessage} NewVaultResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NewVaultResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.NewVaultResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return NewVaultResponseMessage;\n })();\n\n agent.DestroyVaultRequestMessage = (function() {\n\n /**\n * Properties of a DestroyVaultRequestMessage.\n * @memberof agent\n * @interface IDestroyVaultRequestMessage\n * @property {string|null} [vaultName] DestroyVaultRequestMessage vaultName\n */\n\n /**\n * Constructs a new DestroyVaultRequestMessage.\n * @memberof agent\n * @classdesc Represents a DestroyVaultRequestMessage.\n * @implements IDestroyVaultRequestMessage\n * @constructor\n * @param {agent.IDestroyVaultRequestMessage=} [p] Properties to set\n */\n function DestroyVaultRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DestroyVaultRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.DestroyVaultRequestMessage\n * @instance\n */\n DestroyVaultRequestMessage.prototype.vaultName = \"\";\n\n /**\n * Creates a new DestroyVaultRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.DestroyVaultRequestMessage\n * @static\n * @param {agent.IDestroyVaultRequestMessage=} [properties] Properties to set\n * @returns {agent.DestroyVaultRequestMessage} DestroyVaultRequestMessage instance\n */\n DestroyVaultRequestMessage.create = function create(properties) {\n return new DestroyVaultRequestMessage(properties);\n };\n\n /**\n * Encodes the specified DestroyVaultRequestMessage message. Does not implicitly {@link agent.DestroyVaultRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DestroyVaultRequestMessage\n * @static\n * @param {agent.IDestroyVaultRequestMessage} m DestroyVaultRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DestroyVaultRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n return w;\n };\n\n /**\n * Decodes a DestroyVaultRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DestroyVaultRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DestroyVaultRequestMessage} DestroyVaultRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DestroyVaultRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DestroyVaultRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DestroyVaultRequestMessage;\n })();\n\n agent.DestroyVaultResponseMessage = (function() {\n\n /**\n * Properties of a DestroyVaultResponseMessage.\n * @memberof agent\n * @interface IDestroyVaultResponseMessage\n * @property {boolean|null} [successful] DestroyVaultResponseMessage successful\n */\n\n /**\n * Constructs a new DestroyVaultResponseMessage.\n * @memberof agent\n * @classdesc Represents a DestroyVaultResponseMessage.\n * @implements IDestroyVaultResponseMessage\n * @constructor\n * @param {agent.IDestroyVaultResponseMessage=} [p] Properties to set\n */\n function DestroyVaultResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DestroyVaultResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.DestroyVaultResponseMessage\n * @instance\n */\n DestroyVaultResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new DestroyVaultResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.DestroyVaultResponseMessage\n * @static\n * @param {agent.IDestroyVaultResponseMessage=} [properties] Properties to set\n * @returns {agent.DestroyVaultResponseMessage} DestroyVaultResponseMessage instance\n */\n DestroyVaultResponseMessage.create = function create(properties) {\n return new DestroyVaultResponseMessage(properties);\n };\n\n /**\n * Encodes the specified DestroyVaultResponseMessage message. Does not implicitly {@link agent.DestroyVaultResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DestroyVaultResponseMessage\n * @static\n * @param {agent.IDestroyVaultResponseMessage} m DestroyVaultResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DestroyVaultResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a DestroyVaultResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DestroyVaultResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DestroyVaultResponseMessage} DestroyVaultResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DestroyVaultResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DestroyVaultResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DestroyVaultResponseMessage;\n })();\n\n agent.ListSecretsRequestMessage = (function() {\n\n /**\n * Properties of a ListSecretsRequestMessage.\n * @memberof agent\n * @interface IListSecretsRequestMessage\n * @property {string|null} [vaultName] ListSecretsRequestMessage vaultName\n */\n\n /**\n * Constructs a new ListSecretsRequestMessage.\n * @memberof agent\n * @classdesc Represents a ListSecretsRequestMessage.\n * @implements IListSecretsRequestMessage\n * @constructor\n * @param {agent.IListSecretsRequestMessage=} [p] Properties to set\n */\n function ListSecretsRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ListSecretsRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.ListSecretsRequestMessage\n * @instance\n */\n ListSecretsRequestMessage.prototype.vaultName = \"\";\n\n /**\n * Creates a new ListSecretsRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListSecretsRequestMessage\n * @static\n * @param {agent.IListSecretsRequestMessage=} [properties] Properties to set\n * @returns {agent.ListSecretsRequestMessage} ListSecretsRequestMessage instance\n */\n ListSecretsRequestMessage.create = function create(properties) {\n return new ListSecretsRequestMessage(properties);\n };\n\n /**\n * Encodes the specified ListSecretsRequestMessage message. Does not implicitly {@link agent.ListSecretsRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListSecretsRequestMessage\n * @static\n * @param {agent.IListSecretsRequestMessage} m ListSecretsRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListSecretsRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n return w;\n };\n\n /**\n * Decodes a ListSecretsRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListSecretsRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListSecretsRequestMessage} ListSecretsRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListSecretsRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListSecretsRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListSecretsRequestMessage;\n })();\n\n agent.ListSecretsResponseMessage = (function() {\n\n /**\n * Properties of a ListSecretsResponseMessage.\n * @memberof agent\n * @interface IListSecretsResponseMessage\n * @property {Array.|null} [secretNames] ListSecretsResponseMessage secretNames\n */\n\n /**\n * Constructs a new ListSecretsResponseMessage.\n * @memberof agent\n * @classdesc Represents a ListSecretsResponseMessage.\n * @implements IListSecretsResponseMessage\n * @constructor\n * @param {agent.IListSecretsResponseMessage=} [p] Properties to set\n */\n function ListSecretsResponseMessage(p) {\n this.secretNames = [];\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ListSecretsResponseMessage secretNames.\n * @member {Array.} secretNames\n * @memberof agent.ListSecretsResponseMessage\n * @instance\n */\n ListSecretsResponseMessage.prototype.secretNames = $util.emptyArray;\n\n /**\n * Creates a new ListSecretsResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListSecretsResponseMessage\n * @static\n * @param {agent.IListSecretsResponseMessage=} [properties] Properties to set\n * @returns {agent.ListSecretsResponseMessage} ListSecretsResponseMessage instance\n */\n ListSecretsResponseMessage.create = function create(properties) {\n return new ListSecretsResponseMessage(properties);\n };\n\n /**\n * Encodes the specified ListSecretsResponseMessage message. Does not implicitly {@link agent.ListSecretsResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListSecretsResponseMessage\n * @static\n * @param {agent.IListSecretsResponseMessage} m ListSecretsResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListSecretsResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.secretNames != null && m.secretNames.length) {\n for (var i = 0; i < m.secretNames.length; ++i)\n w.uint32(10).string(m.secretNames[i]);\n }\n return w;\n };\n\n /**\n * Decodes a ListSecretsResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListSecretsResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListSecretsResponseMessage} ListSecretsResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListSecretsResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListSecretsResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n if (!(m.secretNames && m.secretNames.length))\n m.secretNames = [];\n m.secretNames.push(r.string());\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListSecretsResponseMessage;\n })();\n\n agent.CreateSecretRequestMessage = (function() {\n\n /**\n * Properties of a CreateSecretRequestMessage.\n * @memberof agent\n * @interface ICreateSecretRequestMessage\n * @property {string|null} [vaultName] CreateSecretRequestMessage vaultName\n * @property {string|null} [secretName] CreateSecretRequestMessage secretName\n * @property {string|null} [secretPath] CreateSecretRequestMessage secretPath\n * @property {Uint8Array|null} [secretContent] CreateSecretRequestMessage secretContent\n */\n\n /**\n * Constructs a new CreateSecretRequestMessage.\n * @memberof agent\n * @classdesc Represents a CreateSecretRequestMessage.\n * @implements ICreateSecretRequestMessage\n * @constructor\n * @param {agent.ICreateSecretRequestMessage=} [p] Properties to set\n */\n function CreateSecretRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * CreateSecretRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.CreateSecretRequestMessage\n * @instance\n */\n CreateSecretRequestMessage.prototype.vaultName = \"\";\n\n /**\n * CreateSecretRequestMessage secretName.\n * @member {string} secretName\n * @memberof agent.CreateSecretRequestMessage\n * @instance\n */\n CreateSecretRequestMessage.prototype.secretName = \"\";\n\n /**\n * CreateSecretRequestMessage secretPath.\n * @member {string} secretPath\n * @memberof agent.CreateSecretRequestMessage\n * @instance\n */\n CreateSecretRequestMessage.prototype.secretPath = \"\";\n\n /**\n * CreateSecretRequestMessage secretContent.\n * @member {Uint8Array} secretContent\n * @memberof agent.CreateSecretRequestMessage\n * @instance\n */\n CreateSecretRequestMessage.prototype.secretContent = $util.newBuffer([]);\n\n /**\n * Creates a new CreateSecretRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.CreateSecretRequestMessage\n * @static\n * @param {agent.ICreateSecretRequestMessage=} [properties] Properties to set\n * @returns {agent.CreateSecretRequestMessage} CreateSecretRequestMessage instance\n */\n CreateSecretRequestMessage.create = function create(properties) {\n return new CreateSecretRequestMessage(properties);\n };\n\n /**\n * Encodes the specified CreateSecretRequestMessage message. Does not implicitly {@link agent.CreateSecretRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.CreateSecretRequestMessage\n * @static\n * @param {agent.ICreateSecretRequestMessage} m CreateSecretRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CreateSecretRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n if (m.secretName != null && Object.hasOwnProperty.call(m, \"secretName\"))\n w.uint32(18).string(m.secretName);\n if (m.secretPath != null && Object.hasOwnProperty.call(m, \"secretPath\"))\n w.uint32(26).string(m.secretPath);\n if (m.secretContent != null && Object.hasOwnProperty.call(m, \"secretContent\"))\n w.uint32(34).bytes(m.secretContent);\n return w;\n };\n\n /**\n * Decodes a CreateSecretRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.CreateSecretRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.CreateSecretRequestMessage} CreateSecretRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CreateSecretRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.CreateSecretRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n case 2:\n m.secretName = r.string();\n break;\n case 3:\n m.secretPath = r.string();\n break;\n case 4:\n m.secretContent = r.bytes();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return CreateSecretRequestMessage;\n })();\n\n agent.CreateSecretResponseMessage = (function() {\n\n /**\n * Properties of a CreateSecretResponseMessage.\n * @memberof agent\n * @interface ICreateSecretResponseMessage\n * @property {boolean|null} [successful] CreateSecretResponseMessage successful\n */\n\n /**\n * Constructs a new CreateSecretResponseMessage.\n * @memberof agent\n * @classdesc Represents a CreateSecretResponseMessage.\n * @implements ICreateSecretResponseMessage\n * @constructor\n * @param {agent.ICreateSecretResponseMessage=} [p] Properties to set\n */\n function CreateSecretResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * CreateSecretResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.CreateSecretResponseMessage\n * @instance\n */\n CreateSecretResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new CreateSecretResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.CreateSecretResponseMessage\n * @static\n * @param {agent.ICreateSecretResponseMessage=} [properties] Properties to set\n * @returns {agent.CreateSecretResponseMessage} CreateSecretResponseMessage instance\n */\n CreateSecretResponseMessage.create = function create(properties) {\n return new CreateSecretResponseMessage(properties);\n };\n\n /**\n * Encodes the specified CreateSecretResponseMessage message. Does not implicitly {@link agent.CreateSecretResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.CreateSecretResponseMessage\n * @static\n * @param {agent.ICreateSecretResponseMessage} m CreateSecretResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CreateSecretResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a CreateSecretResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.CreateSecretResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.CreateSecretResponseMessage} CreateSecretResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CreateSecretResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.CreateSecretResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return CreateSecretResponseMessage;\n })();\n\n agent.DestroySecretRequestMessage = (function() {\n\n /**\n * Properties of a DestroySecretRequestMessage.\n * @memberof agent\n * @interface IDestroySecretRequestMessage\n * @property {string|null} [vaultName] DestroySecretRequestMessage vaultName\n * @property {string|null} [secretName] DestroySecretRequestMessage secretName\n */\n\n /**\n * Constructs a new DestroySecretRequestMessage.\n * @memberof agent\n * @classdesc Represents a DestroySecretRequestMessage.\n * @implements IDestroySecretRequestMessage\n * @constructor\n * @param {agent.IDestroySecretRequestMessage=} [p] Properties to set\n */\n function DestroySecretRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DestroySecretRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.DestroySecretRequestMessage\n * @instance\n */\n DestroySecretRequestMessage.prototype.vaultName = \"\";\n\n /**\n * DestroySecretRequestMessage secretName.\n * @member {string} secretName\n * @memberof agent.DestroySecretRequestMessage\n * @instance\n */\n DestroySecretRequestMessage.prototype.secretName = \"\";\n\n /**\n * Creates a new DestroySecretRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.DestroySecretRequestMessage\n * @static\n * @param {agent.IDestroySecretRequestMessage=} [properties] Properties to set\n * @returns {agent.DestroySecretRequestMessage} DestroySecretRequestMessage instance\n */\n DestroySecretRequestMessage.create = function create(properties) {\n return new DestroySecretRequestMessage(properties);\n };\n\n /**\n * Encodes the specified DestroySecretRequestMessage message. Does not implicitly {@link agent.DestroySecretRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DestroySecretRequestMessage\n * @static\n * @param {agent.IDestroySecretRequestMessage} m DestroySecretRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DestroySecretRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n if (m.secretName != null && Object.hasOwnProperty.call(m, \"secretName\"))\n w.uint32(18).string(m.secretName);\n return w;\n };\n\n /**\n * Decodes a DestroySecretRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DestroySecretRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DestroySecretRequestMessage} DestroySecretRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DestroySecretRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DestroySecretRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n case 2:\n m.secretName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DestroySecretRequestMessage;\n })();\n\n agent.DestroySecretResponseMessage = (function() {\n\n /**\n * Properties of a DestroySecretResponseMessage.\n * @memberof agent\n * @interface IDestroySecretResponseMessage\n * @property {boolean|null} [successful] DestroySecretResponseMessage successful\n */\n\n /**\n * Constructs a new DestroySecretResponseMessage.\n * @memberof agent\n * @classdesc Represents a DestroySecretResponseMessage.\n * @implements IDestroySecretResponseMessage\n * @constructor\n * @param {agent.IDestroySecretResponseMessage=} [p] Properties to set\n */\n function DestroySecretResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DestroySecretResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.DestroySecretResponseMessage\n * @instance\n */\n DestroySecretResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new DestroySecretResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.DestroySecretResponseMessage\n * @static\n * @param {agent.IDestroySecretResponseMessage=} [properties] Properties to set\n * @returns {agent.DestroySecretResponseMessage} DestroySecretResponseMessage instance\n */\n DestroySecretResponseMessage.create = function create(properties) {\n return new DestroySecretResponseMessage(properties);\n };\n\n /**\n * Encodes the specified DestroySecretResponseMessage message. Does not implicitly {@link agent.DestroySecretResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DestroySecretResponseMessage\n * @static\n * @param {agent.IDestroySecretResponseMessage} m DestroySecretResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DestroySecretResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a DestroySecretResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DestroySecretResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DestroySecretResponseMessage} DestroySecretResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DestroySecretResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DestroySecretResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DestroySecretResponseMessage;\n })();\n\n agent.GetSecretRequestMessage = (function() {\n\n /**\n * Properties of a GetSecretRequestMessage.\n * @memberof agent\n * @interface IGetSecretRequestMessage\n * @property {string|null} [vaultName] GetSecretRequestMessage vaultName\n * @property {string|null} [secretName] GetSecretRequestMessage secretName\n */\n\n /**\n * Constructs a new GetSecretRequestMessage.\n * @memberof agent\n * @classdesc Represents a GetSecretRequestMessage.\n * @implements IGetSecretRequestMessage\n * @constructor\n * @param {agent.IGetSecretRequestMessage=} [p] Properties to set\n */\n function GetSecretRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * GetSecretRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.GetSecretRequestMessage\n * @instance\n */\n GetSecretRequestMessage.prototype.vaultName = \"\";\n\n /**\n * GetSecretRequestMessage secretName.\n * @member {string} secretName\n * @memberof agent.GetSecretRequestMessage\n * @instance\n */\n GetSecretRequestMessage.prototype.secretName = \"\";\n\n /**\n * Creates a new GetSecretRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.GetSecretRequestMessage\n * @static\n * @param {agent.IGetSecretRequestMessage=} [properties] Properties to set\n * @returns {agent.GetSecretRequestMessage} GetSecretRequestMessage instance\n */\n GetSecretRequestMessage.create = function create(properties) {\n return new GetSecretRequestMessage(properties);\n };\n\n /**\n * Encodes the specified GetSecretRequestMessage message. Does not implicitly {@link agent.GetSecretRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.GetSecretRequestMessage\n * @static\n * @param {agent.IGetSecretRequestMessage} m GetSecretRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetSecretRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n if (m.secretName != null && Object.hasOwnProperty.call(m, \"secretName\"))\n w.uint32(18).string(m.secretName);\n return w;\n };\n\n /**\n * Decodes a GetSecretRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.GetSecretRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.GetSecretRequestMessage} GetSecretRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetSecretRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.GetSecretRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n case 2:\n m.secretName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return GetSecretRequestMessage;\n })();\n\n agent.GetSecretResponseMessage = (function() {\n\n /**\n * Properties of a GetSecretResponseMessage.\n * @memberof agent\n * @interface IGetSecretResponseMessage\n * @property {Uint8Array|null} [secret] GetSecretResponseMessage secret\n */\n\n /**\n * Constructs a new GetSecretResponseMessage.\n * @memberof agent\n * @classdesc Represents a GetSecretResponseMessage.\n * @implements IGetSecretResponseMessage\n * @constructor\n * @param {agent.IGetSecretResponseMessage=} [p] Properties to set\n */\n function GetSecretResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * GetSecretResponseMessage secret.\n * @member {Uint8Array} secret\n * @memberof agent.GetSecretResponseMessage\n * @instance\n */\n GetSecretResponseMessage.prototype.secret = $util.newBuffer([]);\n\n /**\n * Creates a new GetSecretResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.GetSecretResponseMessage\n * @static\n * @param {agent.IGetSecretResponseMessage=} [properties] Properties to set\n * @returns {agent.GetSecretResponseMessage} GetSecretResponseMessage instance\n */\n GetSecretResponseMessage.create = function create(properties) {\n return new GetSecretResponseMessage(properties);\n };\n\n /**\n * Encodes the specified GetSecretResponseMessage message. Does not implicitly {@link agent.GetSecretResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.GetSecretResponseMessage\n * @static\n * @param {agent.IGetSecretResponseMessage} m GetSecretResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetSecretResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.secret != null && Object.hasOwnProperty.call(m, \"secret\"))\n w.uint32(10).bytes(m.secret);\n return w;\n };\n\n /**\n * Decodes a GetSecretResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.GetSecretResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.GetSecretResponseMessage} GetSecretResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetSecretResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.GetSecretResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.secret = r.bytes();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return GetSecretResponseMessage;\n })();\n\n agent.DeriveKeyRequestMessage = (function() {\n\n /**\n * Properties of a DeriveKeyRequestMessage.\n * @memberof agent\n * @interface IDeriveKeyRequestMessage\n * @property {string|null} [vaultName] DeriveKeyRequestMessage vaultName\n * @property {string|null} [keyName] DeriveKeyRequestMessage keyName\n * @property {string|null} [passphrase] DeriveKeyRequestMessage passphrase\n */\n\n /**\n * Constructs a new DeriveKeyRequestMessage.\n * @memberof agent\n * @classdesc Represents a DeriveKeyRequestMessage.\n * @implements IDeriveKeyRequestMessage\n * @constructor\n * @param {agent.IDeriveKeyRequestMessage=} [p] Properties to set\n */\n function DeriveKeyRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DeriveKeyRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.DeriveKeyRequestMessage\n * @instance\n */\n DeriveKeyRequestMessage.prototype.vaultName = \"\";\n\n /**\n * DeriveKeyRequestMessage keyName.\n * @member {string} keyName\n * @memberof agent.DeriveKeyRequestMessage\n * @instance\n */\n DeriveKeyRequestMessage.prototype.keyName = \"\";\n\n /**\n * DeriveKeyRequestMessage passphrase.\n * @member {string} passphrase\n * @memberof agent.DeriveKeyRequestMessage\n * @instance\n */\n DeriveKeyRequestMessage.prototype.passphrase = \"\";\n\n /**\n * Creates a new DeriveKeyRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.DeriveKeyRequestMessage\n * @static\n * @param {agent.IDeriveKeyRequestMessage=} [properties] Properties to set\n * @returns {agent.DeriveKeyRequestMessage} DeriveKeyRequestMessage instance\n */\n DeriveKeyRequestMessage.create = function create(properties) {\n return new DeriveKeyRequestMessage(properties);\n };\n\n /**\n * Encodes the specified DeriveKeyRequestMessage message. Does not implicitly {@link agent.DeriveKeyRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DeriveKeyRequestMessage\n * @static\n * @param {agent.IDeriveKeyRequestMessage} m DeriveKeyRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeriveKeyRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n if (m.keyName != null && Object.hasOwnProperty.call(m, \"keyName\"))\n w.uint32(18).string(m.keyName);\n if (m.passphrase != null && Object.hasOwnProperty.call(m, \"passphrase\"))\n w.uint32(26).string(m.passphrase);\n return w;\n };\n\n /**\n * Decodes a DeriveKeyRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DeriveKeyRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DeriveKeyRequestMessage} DeriveKeyRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeriveKeyRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DeriveKeyRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n case 2:\n m.keyName = r.string();\n break;\n case 3:\n m.passphrase = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DeriveKeyRequestMessage;\n })();\n\n agent.DeriveKeyResponseMessage = (function() {\n\n /**\n * Properties of a DeriveKeyResponseMessage.\n * @memberof agent\n * @interface IDeriveKeyResponseMessage\n * @property {boolean|null} [successful] DeriveKeyResponseMessage successful\n */\n\n /**\n * Constructs a new DeriveKeyResponseMessage.\n * @memberof agent\n * @classdesc Represents a DeriveKeyResponseMessage.\n * @implements IDeriveKeyResponseMessage\n * @constructor\n * @param {agent.IDeriveKeyResponseMessage=} [p] Properties to set\n */\n function DeriveKeyResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DeriveKeyResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.DeriveKeyResponseMessage\n * @instance\n */\n DeriveKeyResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new DeriveKeyResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.DeriveKeyResponseMessage\n * @static\n * @param {agent.IDeriveKeyResponseMessage=} [properties] Properties to set\n * @returns {agent.DeriveKeyResponseMessage} DeriveKeyResponseMessage instance\n */\n DeriveKeyResponseMessage.create = function create(properties) {\n return new DeriveKeyResponseMessage(properties);\n };\n\n /**\n * Encodes the specified DeriveKeyResponseMessage message. Does not implicitly {@link agent.DeriveKeyResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DeriveKeyResponseMessage\n * @static\n * @param {agent.IDeriveKeyResponseMessage} m DeriveKeyResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeriveKeyResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a DeriveKeyResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DeriveKeyResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DeriveKeyResponseMessage} DeriveKeyResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeriveKeyResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DeriveKeyResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DeriveKeyResponseMessage;\n })();\n\n agent.ListKeysRequestMessage = (function() {\n\n /**\n * Properties of a ListKeysRequestMessage.\n * @memberof agent\n * @interface IListKeysRequestMessage\n */\n\n /**\n * Constructs a new ListKeysRequestMessage.\n * @memberof agent\n * @classdesc Represents a ListKeysRequestMessage.\n * @implements IListKeysRequestMessage\n * @constructor\n * @param {agent.IListKeysRequestMessage=} [p] Properties to set\n */\n function ListKeysRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * Creates a new ListKeysRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListKeysRequestMessage\n * @static\n * @param {agent.IListKeysRequestMessage=} [properties] Properties to set\n * @returns {agent.ListKeysRequestMessage} ListKeysRequestMessage instance\n */\n ListKeysRequestMessage.create = function create(properties) {\n return new ListKeysRequestMessage(properties);\n };\n\n /**\n * Encodes the specified ListKeysRequestMessage message. Does not implicitly {@link agent.ListKeysRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListKeysRequestMessage\n * @static\n * @param {agent.IListKeysRequestMessage} m ListKeysRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListKeysRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n return w;\n };\n\n /**\n * Decodes a ListKeysRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListKeysRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListKeysRequestMessage} ListKeysRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListKeysRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListKeysRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListKeysRequestMessage;\n })();\n\n agent.ListKeysResponseMessage = (function() {\n\n /**\n * Properties of a ListKeysResponseMessage.\n * @memberof agent\n * @interface IListKeysResponseMessage\n * @property {Array.|null} [keyNames] ListKeysResponseMessage keyNames\n */\n\n /**\n * Constructs a new ListKeysResponseMessage.\n * @memberof agent\n * @classdesc Represents a ListKeysResponseMessage.\n * @implements IListKeysResponseMessage\n * @constructor\n * @param {agent.IListKeysResponseMessage=} [p] Properties to set\n */\n function ListKeysResponseMessage(p) {\n this.keyNames = [];\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * ListKeysResponseMessage keyNames.\n * @member {Array.} keyNames\n * @memberof agent.ListKeysResponseMessage\n * @instance\n */\n ListKeysResponseMessage.prototype.keyNames = $util.emptyArray;\n\n /**\n * Creates a new ListKeysResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.ListKeysResponseMessage\n * @static\n * @param {agent.IListKeysResponseMessage=} [properties] Properties to set\n * @returns {agent.ListKeysResponseMessage} ListKeysResponseMessage instance\n */\n ListKeysResponseMessage.create = function create(properties) {\n return new ListKeysResponseMessage(properties);\n };\n\n /**\n * Encodes the specified ListKeysResponseMessage message. Does not implicitly {@link agent.ListKeysResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.ListKeysResponseMessage\n * @static\n * @param {agent.IListKeysResponseMessage} m ListKeysResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ListKeysResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.keyNames != null && m.keyNames.length) {\n for (var i = 0; i < m.keyNames.length; ++i)\n w.uint32(10).string(m.keyNames[i]);\n }\n return w;\n };\n\n /**\n * Decodes a ListKeysResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.ListKeysResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.ListKeysResponseMessage} ListKeysResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ListKeysResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.ListKeysResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n if (!(m.keyNames && m.keyNames.length))\n m.keyNames = [];\n m.keyNames.push(r.string());\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return ListKeysResponseMessage;\n })();\n\n agent.GetKeyRequestMessage = (function() {\n\n /**\n * Properties of a GetKeyRequestMessage.\n * @memberof agent\n * @interface IGetKeyRequestMessage\n * @property {string|null} [keyName] GetKeyRequestMessage keyName\n */\n\n /**\n * Constructs a new GetKeyRequestMessage.\n * @memberof agent\n * @classdesc Represents a GetKeyRequestMessage.\n * @implements IGetKeyRequestMessage\n * @constructor\n * @param {agent.IGetKeyRequestMessage=} [p] Properties to set\n */\n function GetKeyRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * GetKeyRequestMessage keyName.\n * @member {string} keyName\n * @memberof agent.GetKeyRequestMessage\n * @instance\n */\n GetKeyRequestMessage.prototype.keyName = \"\";\n\n /**\n * Creates a new GetKeyRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.GetKeyRequestMessage\n * @static\n * @param {agent.IGetKeyRequestMessage=} [properties] Properties to set\n * @returns {agent.GetKeyRequestMessage} GetKeyRequestMessage instance\n */\n GetKeyRequestMessage.create = function create(properties) {\n return new GetKeyRequestMessage(properties);\n };\n\n /**\n * Encodes the specified GetKeyRequestMessage message. Does not implicitly {@link agent.GetKeyRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.GetKeyRequestMessage\n * @static\n * @param {agent.IGetKeyRequestMessage} m GetKeyRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetKeyRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.keyName != null && Object.hasOwnProperty.call(m, \"keyName\"))\n w.uint32(10).string(m.keyName);\n return w;\n };\n\n /**\n * Decodes a GetKeyRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.GetKeyRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.GetKeyRequestMessage} GetKeyRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetKeyRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.GetKeyRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.keyName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return GetKeyRequestMessage;\n })();\n\n agent.GetKeyResponseMessage = (function() {\n\n /**\n * Properties of a GetKeyResponseMessage.\n * @memberof agent\n * @interface IGetKeyResponseMessage\n * @property {string|null} [keyName] GetKeyResponseMessage keyName\n * @property {string|null} [keyContent] GetKeyResponseMessage keyContent\n */\n\n /**\n * Constructs a new GetKeyResponseMessage.\n * @memberof agent\n * @classdesc Represents a GetKeyResponseMessage.\n * @implements IGetKeyResponseMessage\n * @constructor\n * @param {agent.IGetKeyResponseMessage=} [p] Properties to set\n */\n function GetKeyResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * GetKeyResponseMessage keyName.\n * @member {string} keyName\n * @memberof agent.GetKeyResponseMessage\n * @instance\n */\n GetKeyResponseMessage.prototype.keyName = \"\";\n\n /**\n * GetKeyResponseMessage keyContent.\n * @member {string} keyContent\n * @memberof agent.GetKeyResponseMessage\n * @instance\n */\n GetKeyResponseMessage.prototype.keyContent = \"\";\n\n /**\n * Creates a new GetKeyResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.GetKeyResponseMessage\n * @static\n * @param {agent.IGetKeyResponseMessage=} [properties] Properties to set\n * @returns {agent.GetKeyResponseMessage} GetKeyResponseMessage instance\n */\n GetKeyResponseMessage.create = function create(properties) {\n return new GetKeyResponseMessage(properties);\n };\n\n /**\n * Encodes the specified GetKeyResponseMessage message. Does not implicitly {@link agent.GetKeyResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.GetKeyResponseMessage\n * @static\n * @param {agent.IGetKeyResponseMessage} m GetKeyResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetKeyResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.keyName != null && Object.hasOwnProperty.call(m, \"keyName\"))\n w.uint32(10).string(m.keyName);\n if (m.keyContent != null && Object.hasOwnProperty.call(m, \"keyContent\"))\n w.uint32(18).string(m.keyContent);\n return w;\n };\n\n /**\n * Decodes a GetKeyResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.GetKeyResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.GetKeyResponseMessage} GetKeyResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetKeyResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.GetKeyResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.keyName = r.string();\n break;\n case 2:\n m.keyContent = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return GetKeyResponseMessage;\n })();\n\n agent.GetPrimaryKeyPairRequestMessage = (function() {\n\n /**\n * Properties of a GetPrimaryKeyPairRequestMessage.\n * @memberof agent\n * @interface IGetPrimaryKeyPairRequestMessage\n * @property {boolean|null} [includePrivateKey] GetPrimaryKeyPairRequestMessage includePrivateKey\n */\n\n /**\n * Constructs a new GetPrimaryKeyPairRequestMessage.\n * @memberof agent\n * @classdesc Represents a GetPrimaryKeyPairRequestMessage.\n * @implements IGetPrimaryKeyPairRequestMessage\n * @constructor\n * @param {agent.IGetPrimaryKeyPairRequestMessage=} [p] Properties to set\n */\n function GetPrimaryKeyPairRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * GetPrimaryKeyPairRequestMessage includePrivateKey.\n * @member {boolean} includePrivateKey\n * @memberof agent.GetPrimaryKeyPairRequestMessage\n * @instance\n */\n GetPrimaryKeyPairRequestMessage.prototype.includePrivateKey = false;\n\n /**\n * Creates a new GetPrimaryKeyPairRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.GetPrimaryKeyPairRequestMessage\n * @static\n * @param {agent.IGetPrimaryKeyPairRequestMessage=} [properties] Properties to set\n * @returns {agent.GetPrimaryKeyPairRequestMessage} GetPrimaryKeyPairRequestMessage instance\n */\n GetPrimaryKeyPairRequestMessage.create = function create(properties) {\n return new GetPrimaryKeyPairRequestMessage(properties);\n };\n\n /**\n * Encodes the specified GetPrimaryKeyPairRequestMessage message. Does not implicitly {@link agent.GetPrimaryKeyPairRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.GetPrimaryKeyPairRequestMessage\n * @static\n * @param {agent.IGetPrimaryKeyPairRequestMessage} m GetPrimaryKeyPairRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetPrimaryKeyPairRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.includePrivateKey != null && Object.hasOwnProperty.call(m, \"includePrivateKey\"))\n w.uint32(8).bool(m.includePrivateKey);\n return w;\n };\n\n /**\n * Decodes a GetPrimaryKeyPairRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.GetPrimaryKeyPairRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.GetPrimaryKeyPairRequestMessage} GetPrimaryKeyPairRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetPrimaryKeyPairRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.GetPrimaryKeyPairRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.includePrivateKey = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return GetPrimaryKeyPairRequestMessage;\n })();\n\n agent.GetPrimaryKeyPairResponseMessage = (function() {\n\n /**\n * Properties of a GetPrimaryKeyPairResponseMessage.\n * @memberof agent\n * @interface IGetPrimaryKeyPairResponseMessage\n * @property {string|null} [publicKey] GetPrimaryKeyPairResponseMessage publicKey\n * @property {string|null} [privateKey] GetPrimaryKeyPairResponseMessage privateKey\n */\n\n /**\n * Constructs a new GetPrimaryKeyPairResponseMessage.\n * @memberof agent\n * @classdesc Represents a GetPrimaryKeyPairResponseMessage.\n * @implements IGetPrimaryKeyPairResponseMessage\n * @constructor\n * @param {agent.IGetPrimaryKeyPairResponseMessage=} [p] Properties to set\n */\n function GetPrimaryKeyPairResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * GetPrimaryKeyPairResponseMessage publicKey.\n * @member {string} publicKey\n * @memberof agent.GetPrimaryKeyPairResponseMessage\n * @instance\n */\n GetPrimaryKeyPairResponseMessage.prototype.publicKey = \"\";\n\n /**\n * GetPrimaryKeyPairResponseMessage privateKey.\n * @member {string} privateKey\n * @memberof agent.GetPrimaryKeyPairResponseMessage\n * @instance\n */\n GetPrimaryKeyPairResponseMessage.prototype.privateKey = \"\";\n\n /**\n * Creates a new GetPrimaryKeyPairResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.GetPrimaryKeyPairResponseMessage\n * @static\n * @param {agent.IGetPrimaryKeyPairResponseMessage=} [properties] Properties to set\n * @returns {agent.GetPrimaryKeyPairResponseMessage} GetPrimaryKeyPairResponseMessage instance\n */\n GetPrimaryKeyPairResponseMessage.create = function create(properties) {\n return new GetPrimaryKeyPairResponseMessage(properties);\n };\n\n /**\n * Encodes the specified GetPrimaryKeyPairResponseMessage message. Does not implicitly {@link agent.GetPrimaryKeyPairResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.GetPrimaryKeyPairResponseMessage\n * @static\n * @param {agent.IGetPrimaryKeyPairResponseMessage} m GetPrimaryKeyPairResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetPrimaryKeyPairResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.publicKey != null && Object.hasOwnProperty.call(m, \"publicKey\"))\n w.uint32(10).string(m.publicKey);\n if (m.privateKey != null && Object.hasOwnProperty.call(m, \"privateKey\"))\n w.uint32(18).string(m.privateKey);\n return w;\n };\n\n /**\n * Decodes a GetPrimaryKeyPairResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.GetPrimaryKeyPairResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.GetPrimaryKeyPairResponseMessage} GetPrimaryKeyPairResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetPrimaryKeyPairResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.GetPrimaryKeyPairResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.publicKey = r.string();\n break;\n case 2:\n m.privateKey = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return GetPrimaryKeyPairResponseMessage;\n })();\n\n agent.UpdateSecretRequestMessage = (function() {\n\n /**\n * Properties of an UpdateSecretRequestMessage.\n * @memberof agent\n * @interface IUpdateSecretRequestMessage\n * @property {string|null} [vaultName] UpdateSecretRequestMessage vaultName\n * @property {string|null} [secretName] UpdateSecretRequestMessage secretName\n * @property {string|null} [secretPath] UpdateSecretRequestMessage secretPath\n * @property {Uint8Array|null} [secretContent] UpdateSecretRequestMessage secretContent\n */\n\n /**\n * Constructs a new UpdateSecretRequestMessage.\n * @memberof agent\n * @classdesc Represents an UpdateSecretRequestMessage.\n * @implements IUpdateSecretRequestMessage\n * @constructor\n * @param {agent.IUpdateSecretRequestMessage=} [p] Properties to set\n */\n function UpdateSecretRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * UpdateSecretRequestMessage vaultName.\n * @member {string} vaultName\n * @memberof agent.UpdateSecretRequestMessage\n * @instance\n */\n UpdateSecretRequestMessage.prototype.vaultName = \"\";\n\n /**\n * UpdateSecretRequestMessage secretName.\n * @member {string} secretName\n * @memberof agent.UpdateSecretRequestMessage\n * @instance\n */\n UpdateSecretRequestMessage.prototype.secretName = \"\";\n\n /**\n * UpdateSecretRequestMessage secretPath.\n * @member {string} secretPath\n * @memberof agent.UpdateSecretRequestMessage\n * @instance\n */\n UpdateSecretRequestMessage.prototype.secretPath = \"\";\n\n /**\n * UpdateSecretRequestMessage secretContent.\n * @member {Uint8Array} secretContent\n * @memberof agent.UpdateSecretRequestMessage\n * @instance\n */\n UpdateSecretRequestMessage.prototype.secretContent = $util.newBuffer([]);\n\n /**\n * Creates a new UpdateSecretRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.UpdateSecretRequestMessage\n * @static\n * @param {agent.IUpdateSecretRequestMessage=} [properties] Properties to set\n * @returns {agent.UpdateSecretRequestMessage} UpdateSecretRequestMessage instance\n */\n UpdateSecretRequestMessage.create = function create(properties) {\n return new UpdateSecretRequestMessage(properties);\n };\n\n /**\n * Encodes the specified UpdateSecretRequestMessage message. Does not implicitly {@link agent.UpdateSecretRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.UpdateSecretRequestMessage\n * @static\n * @param {agent.IUpdateSecretRequestMessage} m UpdateSecretRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n UpdateSecretRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.vaultName != null && Object.hasOwnProperty.call(m, \"vaultName\"))\n w.uint32(10).string(m.vaultName);\n if (m.secretName != null && Object.hasOwnProperty.call(m, \"secretName\"))\n w.uint32(18).string(m.secretName);\n if (m.secretPath != null && Object.hasOwnProperty.call(m, \"secretPath\"))\n w.uint32(26).string(m.secretPath);\n if (m.secretContent != null && Object.hasOwnProperty.call(m, \"secretContent\"))\n w.uint32(34).bytes(m.secretContent);\n return w;\n };\n\n /**\n * Decodes an UpdateSecretRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.UpdateSecretRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.UpdateSecretRequestMessage} UpdateSecretRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n UpdateSecretRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.UpdateSecretRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.vaultName = r.string();\n break;\n case 2:\n m.secretName = r.string();\n break;\n case 3:\n m.secretPath = r.string();\n break;\n case 4:\n m.secretContent = r.bytes();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return UpdateSecretRequestMessage;\n })();\n\n agent.UpdateSecretResponseMessage = (function() {\n\n /**\n * Properties of an UpdateSecretResponseMessage.\n * @memberof agent\n * @interface IUpdateSecretResponseMessage\n * @property {boolean|null} [successful] UpdateSecretResponseMessage successful\n */\n\n /**\n * Constructs a new UpdateSecretResponseMessage.\n * @memberof agent\n * @classdesc Represents an UpdateSecretResponseMessage.\n * @implements IUpdateSecretResponseMessage\n * @constructor\n * @param {agent.IUpdateSecretResponseMessage=} [p] Properties to set\n */\n function UpdateSecretResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * UpdateSecretResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.UpdateSecretResponseMessage\n * @instance\n */\n UpdateSecretResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new UpdateSecretResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.UpdateSecretResponseMessage\n * @static\n * @param {agent.IUpdateSecretResponseMessage=} [properties] Properties to set\n * @returns {agent.UpdateSecretResponseMessage} UpdateSecretResponseMessage instance\n */\n UpdateSecretResponseMessage.create = function create(properties) {\n return new UpdateSecretResponseMessage(properties);\n };\n\n /**\n * Encodes the specified UpdateSecretResponseMessage message. Does not implicitly {@link agent.UpdateSecretResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.UpdateSecretResponseMessage\n * @static\n * @param {agent.IUpdateSecretResponseMessage} m UpdateSecretResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n UpdateSecretResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes an UpdateSecretResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.UpdateSecretResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.UpdateSecretResponseMessage} UpdateSecretResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n UpdateSecretResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.UpdateSecretResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return UpdateSecretResponseMessage;\n })();\n\n agent.DeleteKeyRequestMessage = (function() {\n\n /**\n * Properties of a DeleteKeyRequestMessage.\n * @memberof agent\n * @interface IDeleteKeyRequestMessage\n * @property {string|null} [keyName] DeleteKeyRequestMessage keyName\n */\n\n /**\n * Constructs a new DeleteKeyRequestMessage.\n * @memberof agent\n * @classdesc Represents a DeleteKeyRequestMessage.\n * @implements IDeleteKeyRequestMessage\n * @constructor\n * @param {agent.IDeleteKeyRequestMessage=} [p] Properties to set\n */\n function DeleteKeyRequestMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DeleteKeyRequestMessage keyName.\n * @member {string} keyName\n * @memberof agent.DeleteKeyRequestMessage\n * @instance\n */\n DeleteKeyRequestMessage.prototype.keyName = \"\";\n\n /**\n * Creates a new DeleteKeyRequestMessage instance using the specified properties.\n * @function create\n * @memberof agent.DeleteKeyRequestMessage\n * @static\n * @param {agent.IDeleteKeyRequestMessage=} [properties] Properties to set\n * @returns {agent.DeleteKeyRequestMessage} DeleteKeyRequestMessage instance\n */\n DeleteKeyRequestMessage.create = function create(properties) {\n return new DeleteKeyRequestMessage(properties);\n };\n\n /**\n * Encodes the specified DeleteKeyRequestMessage message. Does not implicitly {@link agent.DeleteKeyRequestMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DeleteKeyRequestMessage\n * @static\n * @param {agent.IDeleteKeyRequestMessage} m DeleteKeyRequestMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeleteKeyRequestMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.keyName != null && Object.hasOwnProperty.call(m, \"keyName\"))\n w.uint32(10).string(m.keyName);\n return w;\n };\n\n /**\n * Decodes a DeleteKeyRequestMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DeleteKeyRequestMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DeleteKeyRequestMessage} DeleteKeyRequestMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeleteKeyRequestMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DeleteKeyRequestMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.keyName = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DeleteKeyRequestMessage;\n })();\n\n agent.DeleteKeyResponseMessage = (function() {\n\n /**\n * Properties of a DeleteKeyResponseMessage.\n * @memberof agent\n * @interface IDeleteKeyResponseMessage\n * @property {boolean|null} [successful] DeleteKeyResponseMessage successful\n */\n\n /**\n * Constructs a new DeleteKeyResponseMessage.\n * @memberof agent\n * @classdesc Represents a DeleteKeyResponseMessage.\n * @implements IDeleteKeyResponseMessage\n * @constructor\n * @param {agent.IDeleteKeyResponseMessage=} [p] Properties to set\n */\n function DeleteKeyResponseMessage(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n\n /**\n * DeleteKeyResponseMessage successful.\n * @member {boolean} successful\n * @memberof agent.DeleteKeyResponseMessage\n * @instance\n */\n DeleteKeyResponseMessage.prototype.successful = false;\n\n /**\n * Creates a new DeleteKeyResponseMessage instance using the specified properties.\n * @function create\n * @memberof agent.DeleteKeyResponseMessage\n * @static\n * @param {agent.IDeleteKeyResponseMessage=} [properties] Properties to set\n * @returns {agent.DeleteKeyResponseMessage} DeleteKeyResponseMessage instance\n */\n DeleteKeyResponseMessage.create = function create(properties) {\n return new DeleteKeyResponseMessage(properties);\n };\n\n /**\n * Encodes the specified DeleteKeyResponseMessage message. Does not implicitly {@link agent.DeleteKeyResponseMessage.verify|verify} messages.\n * @function encode\n * @memberof agent.DeleteKeyResponseMessage\n * @static\n * @param {agent.IDeleteKeyResponseMessage} m DeleteKeyResponseMessage message or plain object to encode\n * @param {$protobuf.Writer} [w] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeleteKeyResponseMessage.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.successful != null && Object.hasOwnProperty.call(m, \"successful\"))\n w.uint32(8).bool(m.successful);\n return w;\n };\n\n /**\n * Decodes a DeleteKeyResponseMessage message from the specified reader or buffer.\n * @function decode\n * @memberof agent.DeleteKeyResponseMessage\n * @static\n * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from\n * @param {number} [l] Message length if known beforehand\n * @returns {agent.DeleteKeyResponseMessage} DeleteKeyResponseMessage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeleteKeyResponseMessage.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.agent.DeleteKeyResponseMessage();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.successful = r.bool();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n\n return DeleteKeyResponseMessage;\n })();\n\n return agent;\n})();\n\nmodule.exports = $root;\n","module.exports = require(\"protobufjs/minimal\");"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/lib/polykey.d.ts b/dist/lib/polykey.d.ts index cc2987984..145433515 100644 --- a/dist/lib/polykey.d.ts +++ b/dist/lib/polykey.d.ts @@ -97,7 +97,7 @@ declare module '@matrixai/polykey/src/lib/agent/PolykeyClient' { privateKey: string; }>; signFile(nodePath: string, filePath: string, privateKeyPath?: string, passphrase?: string): Promise; - verifyFile(nodePath: string, filePath: string, signaturePath?: string): Promise; + verifyFile(nodePath: string, filePath: string, publicKeyPath?: string): Promise; encryptFile(nodePath: string, filePath: string, publicKeyPath?: string): Promise; decryptFile(nodePath: string, filePath: string, privateKeyPath?: string, passphrase?: string): Promise; listVaults(nodePath: string): Promise; @@ -120,34 +120,51 @@ declare module '@matrixai/polykey/src/lib/agent/internal/daemon-script' { } declare module '@matrixai/polykey/src/lib/git/GitBackend' { /// - import VaultManager from '@matrixai/polykey/src/lib/vaults/VaultManager'; class GitBackend { - private polykeyPath; - private vaultManager; - constructor(polykeyPath: string, vaultManager: VaultManager); - /** - * Find out whether vault exists. - * @param vaultName Name of vault to check - * @param publicKey Public key of peer trying to access vault - */ - private exists; - handleInfoRequest(vaultName: string): Promise; - handlePackRequest(vaultName: string, body: Buffer): Promise; + private repoDirectoryPath; + private getFileSystem; + constructor(repoDirectoryPath: string, getFileSystem: (repoName: string) => any); + handleInfoRequest(repoName: string): Promise; + handlePackRequest(repoName: string, body: Buffer): Promise; private createGitPacketLine; } export default GitBackend; } -declare module '@matrixai/polykey/src/lib/git/GitClient' { +declare module '@matrixai/polykey/src/lib/git/GitFrontend' { + /// import { Address } from '@matrixai/polykey/src/lib/peers/PeerInfo'; import KeyManager from '@matrixai/polykey/src/lib/keys/KeyManager'; /** * Responsible for converting HTTP messages from isomorphic-git into requests and sending them to a specific peer. */ - class GitClient { + class GitFrontend { private client; private credentials; constructor(address: Address, keyManager: KeyManager); + /** + * Requests remote info from the connected peer for the named vault. + * @param vaultName Name of the desired vault + */ + requestInfo(vaultName: string): Promise; + /** + * Requests a pack from the connected peer for the named vault. + * @param vaultName Name of the desired vault + */ + requestPack(vaultName: string, body: Uint8Array): Promise; + } + export default GitFrontend; + +} +declare module '@matrixai/polykey/src/lib/git/GitRequest' { + /// + /** + * Responsible for converting HTTP messages from isomorphic-git into requests and sending them to a specific peer. + */ + class GitRequest { + private requestInfo; + private requestPack; + constructor(requestInfo: (vaultName: string) => Promise, requestPack: (vaultName: string, body: Buffer) => Promise); /** * The custom http request method to feed into isomorphic-git's [custom http object](https://isomorphic-git.org/docs/en/http) */ @@ -158,23 +175,13 @@ declare module '@matrixai/polykey/src/lib/git/GitClient' { body: any; onProgress: any; }): Promise; - /** - * Requests remote info from the connected peer for the named vault. - * @param vaultName Name of the desired vault - */ - private requestInfo; - /** - * Requests a pack from the connected peer for the named vault. - * @param vaultName Name of the desired vault - */ - private requestPack; /** * Converts a buffer into an iterator expected by isomorphic git. * @param data Data to be turned into an iterator */ private iteratorFromData; } - export default GitClient; + export default GitRequest; } declare module '@matrixai/polykey/src/lib/git/pack-objects/GitCommit' { @@ -557,17 +564,15 @@ declare module '@matrixai/polykey/src/lib/keys/KeyManager' { /** * Verifies the given data with the provided key or the primary key if none is specified * @param data Buffer or file containing the data to be verified - * @param signature The PGP signature * @param publicKey Buffer containing the key to verify with. Defaults to primary public key if no key is given. */ - verifyData(data: Buffer | string, signature: Buffer, publicKey?: Buffer): Promise; + verifyData(data: Buffer | string, publicKey?: Buffer): Promise; /** * Verifies the given file with the provided key or the primary key if none is specified * @param filePath Path to file containing the data to be verified - * @param signaturePath The path to the file containing the PGP signature * @param publicKey Buffer containing the key to verify with. Defaults to primary public key if no key is given. */ - verifyFile(filePath: string, signaturePath: string, publicKey?: string | Buffer): Promise; + verifyFile(filePath: string, publicKey?: string | Buffer): Promise; /** * Encrypts the given data for a specific public key * @param data The data to be encrypted @@ -628,7 +633,7 @@ declare module '@matrixai/polykey/src/lib/keys/KeyManagerWorker' { * @param signature The PGP signature * @param identity Identity with which to verify with. */ - verifyData(data: string | Buffer, signature: Buffer, identity: any): Promise; + verifyData(data: string | Buffer, identity: any): Promise; /** * Encrypts the given data for the provided identity * @param data The data to be encrypted @@ -747,7 +752,7 @@ declare module '@matrixai/polykey/src/lib/peers/PeerManager' { /// import fs from 'fs'; import * as grpc from '@grpc/grpc-js'; - import GitClient from '@matrixai/polykey/src/lib/git/GitClient'; + import GitFrontend from '@matrixai/polykey/src/lib/git/GitFrontend'; import KeyManager from '@matrixai/polykey/src/lib/keys/KeyManager'; import VaultManager from '@matrixai/polykey/src/lib/vaults/VaultManager'; import PeerInfo, { Address } from '@matrixai/polykey/src/lib/peers/PeerInfo'; @@ -812,7 +817,7 @@ declare module '@matrixai/polykey/src/lib/peers/PeerManager' { * Get a secure connection to the peer * @param peer Public key of an existing peer or address of new peer */ - connectToPeer(peer: string | Address): GitClient; + connectToPeer(peer: string | Address): GitFrontend; private writeMetadata; loadMetadata(): void; } @@ -835,7 +840,7 @@ declare module '@matrixai/polykey/src/lib/utils' { } declare module '@matrixai/polykey/src/lib/vaults/Vault' { /// - import GitClient from '@matrixai/polykey/src/lib/git/GitClient'; + import GitRequest from '@matrixai/polykey/src/lib/git/GitRequest'; import { EncryptedFS } from 'encryptedfs'; class Vault { private key; @@ -904,7 +909,7 @@ declare module '@matrixai/polykey/src/lib/vaults/Vault' { * @param address Address of polykey node that owns vault to be pulled * @param getSocket Function to get an active connection to provided address */ - pullVault(gitClient: GitClient): Promise; + pullVault(gitClient: GitRequest): Promise; getVaultHistory(depth?: number): Promise; private writeMetadata; private loadMetadata; @@ -918,7 +923,7 @@ declare module '@matrixai/polykey/src/lib/vaults/VaultManager' { /// import fs from 'fs'; import Vault from '@matrixai/polykey/src/lib/vaults/Vault'; - import GitClient from '@matrixai/polykey/src/lib/git/GitClient'; + import GitRequest from '@matrixai/polykey/src/lib/git/GitRequest'; import KeyManager from '@matrixai/polykey/src/lib/keys/KeyManager'; class VaultManager { polykeyPath: string; @@ -945,7 +950,7 @@ declare module '@matrixai/polykey/src/lib/vaults/VaultManager' { * @param address Address of polykey node that owns vault to be cloned * @param getSocket Function to get an active connection to provided address */ - cloneVault(vaultName: string, gitClient: GitClient): Promise; + cloneVault(vaultName: string, gitRequest: GitRequest): Promise; /** * Determines whether the vault exists * @param vaultName Name of desired vault diff --git a/dist/lib/polykey.js b/dist/lib/polykey.js index 2a6555519..b3c3eb42c 100644 --- a/dist/lib/polykey.js +++ b/dist/lib/polykey.js @@ -938,9 +938,9 @@ class PolykeyClient { const { signaturePath } = SignFileResponseMessage.decode(subMessage); return signaturePath; } - async verifyFile(nodePath, filePath, signaturePath) { + async verifyFile(nodePath, filePath, publicKeyPath) { var _a; - const request = VerifyFileRequestMessage.encode({ filePath, signaturePath }).finish(); + const request = VerifyFileRequestMessage.encode({ filePath, publicKeyPath }).finish(); const encodedResponse = await this.handleAgentCommunication(AgentMessageType.VERIFY_FILE, nodePath, request); const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.VERIFY_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage; if (!subMessage) { @@ -1141,7 +1141,7 @@ class KeyManager { publicKeyPath: null, pkiKeyPath: null, pkiCertPath: null, - caCertPath: null + caCertPath: null, }; ///////// // PKI // @@ -1438,7 +1438,7 @@ class KeyManager { async getIdentityFromPrivateKey(privateKey, passphrase) { const identity = await util_1.promisify(kbpgp_1.default.KeyManager.import_from_armored_pgp)({ armored: privateKey }); if (identity.is_pgp_locked()) { - await util_1.promisify(identity.unlock_pgp)({ passphrase: passphrase }); + await util_1.promisify(identity.unlock_pgp.bind(identity))({ passphrase }); } return identity; } @@ -1509,10 +1509,9 @@ class KeyManager { /** * Verifies the given data with the provided key or the primary key if none is specified * @param data Buffer or file containing the data to be verified - * @param signature The PGP signature * @param publicKey Buffer containing the key to verify with. Defaults to primary public key if no key is given. */ - async verifyData(data, signature, publicKey) { + async verifyData(data, publicKey) { const ring = new kbpgp_1.default.keyring.KeyRing(); let resolvedIdentity; if (publicKey) { @@ -1527,14 +1526,13 @@ class KeyManager { ring.add_key_manager(resolvedIdentity); if (this.useWebWorkers && this.workerPool) { const workerResponse = await this.workerPool.queue(async (workerCrypto) => { - return await workerCrypto.verifyData(data, signature, resolvedIdentity); + return await workerCrypto.verifyData(data, resolvedIdentity); }); return workerResponse; } else { const params = { - armored: signature, - data: data, + armored: data, keyfetch: ring, }; const literals = await util_1.promisify(kbpgp_1.default.unbox)(params); @@ -1563,10 +1561,9 @@ class KeyManager { /** * Verifies the given file with the provided key or the primary key if none is specified * @param filePath Path to file containing the data to be verified - * @param signaturePath The path to the file containing the PGP signature * @param publicKey Buffer containing the key to verify with. Defaults to primary public key if no key is given. */ - async verifyFile(filePath, signaturePath, publicKey) { + async verifyFile(filePath, publicKey) { // Get key if provided let keyBuffer; if (publicKey) { @@ -1582,8 +1579,7 @@ class KeyManager { } // Read in file buffer and signature const fileBuffer = this.fileSystem.readFileSync(filePath); - const signatureBuffer = this.fileSystem.readFileSync(signaturePath); - const isVerified = await this.verifyData(fileBuffer, signatureBuffer, keyBuffer); + const isVerified = await this.verifyData(fileBuffer, keyBuffer); return isVerified; } /** @@ -1776,7 +1772,7 @@ class KeyManager { if (this.fileSystem.existsSync(this.metadataPath)) { const metadata = this.fileSystem.readFileSync(this.metadataPath).toString(); this.metadata = JSON.parse(metadata); - if (this.identityLoaded) { + if (this.identityLoaded && this.fileSystem.existsSync(this.derivedKeysPath)) { const encryptedMetadata = this.fileSystem.readFileSync(this.derivedKeysPath); const metadata = (await this.decryptData(encryptedMetadata)).toString(); const derivedKeys = JSON.parse(metadata); @@ -1822,7 +1818,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const os_1 = __importDefault(__webpack_require__(1)); const path_1 = __importDefault(__webpack_require__(0)); const grpc = __importStar(__webpack_require__(6)); -const GitClient_1 = __importDefault(__webpack_require__(24)); +const GitFrontend_1 = __importDefault(__webpack_require__(24)); const GitBackend_1 = __importDefault(__webpack_require__(25)); const Peer_1 = __webpack_require__(37); const utils_1 = __webpack_require__(38); @@ -1880,7 +1876,7 @@ class PeerManager { ///////////////// // GRPC Server // ///////////////// - this.gitBackend = new GitBackend_1.default(polykeyPath, vaultManager); + this.gitBackend = new GitBackend_1.default(polykeyPath, ((vaultName) => vaultManager.getVault(vaultName).EncryptedFS).bind(vaultManager)); this.server = new grpc.Server(); // Add service this.server.addService(Git_grpc_pb_1.GitServerService, { @@ -1900,13 +1896,16 @@ class PeerManager { else { this.credentials = grpc.ServerCredentials.createInsecure(); } - this.server.bindAsync(`0.0.0.0:${(_a = process.env.PK_PORT) !== null && _a !== void 0 ? _a : 0}`, this.credentials, (err, boundPort) => { + this.server.bindAsync(`0.0.0.0:${(_a = process.env.PK_PORT) !== null && _a !== void 0 ? _a : 0}`, this.credentials, async (err, boundPort) => { if (err) { throw err; } else { const address = new PeerInfo_1.Address('localhost', boundPort.toString()); this.server.start(); + while (!this.localPeerInfo) { + await new Promise((r, _) => setTimeout(() => r(), 1000)); + } this.localPeerInfo.connect(address); this.serverStarted = true; } @@ -2027,9 +2026,9 @@ class PeerManager { } let address; if (typeof peer == 'string') { - const existingSocket = this.peerConnections.get(peer); - if (existingSocket) { - return existingSocket; + const existingConnection = this.peerConnections.get(peer); + if (existingConnection) { + return existingConnection; } const peerAddress = (_a = this.getPeer(peer)) === null || _a === void 0 ? void 0 : _a.connectedAddr; if (peerAddress) { @@ -2042,7 +2041,7 @@ class PeerManager { else { address = peer; } - const conn = new GitClient_1.default(address, this.keyManager); + const conn = new GitFrontend_1.default(address, this.keyManager); if (typeof peer == 'string') { this.peerConnections.set(peer, conn); } @@ -2091,7 +2090,7 @@ const Git_pb_1 = __webpack_require__(8); /** * Responsible for converting HTTP messages from isomorphic-git into requests and sending them to a specific peer. */ -class GitClient { +class GitFrontend { constructor(address, keyManager) { const pkiInfo = keyManager.PKIInfo; if (pkiInfo.caCert && pkiInfo.cert && pkiInfo.key) { @@ -2102,54 +2101,6 @@ class GitClient { } this.client = new Git_grpc_pb_1.GitServerClient(address.toString(), this.credentials); } - /** - * The custom http request method to feed into isomorphic-git's [custom http object](https://isomorphic-git.org/docs/en/http) - */ - async request({ url, method, headers, body, onProgress }) { - // eslint-disable-next-line - return new Promise(async (resolve, reject) => { - const u = new URL(url); - // Parse request - if (method == 'GET') { - // Info request - const match = u.pathname.match(/\/(.+)\/info\/refs$/); - if (!match || /\.\./.test(match[1])) { - reject(new Error('Error')); - } - const vaultName = match[1]; - const infoResponse = await this.requestInfo(vaultName); - resolve({ - url: url, - method: method, - statusCode: 200, - statusMessage: 'OK', - body: this.iteratorFromData(infoResponse), - headers: headers, - }); - } - else if (method == 'POST') { - // Info request - const match = u.pathname.match(/\/(.+)\/git-(.+)/); - if (!match || /\.\./.test(match[1])) { - reject(new Error('Error')); - } - const vaultName = match[1]; - const packResponse = await this.requestPack(vaultName, body[0]); - resolve({ - url: url, - method: method, - statusCode: 200, - statusMessage: 'OK', - body: this.iteratorFromData(packResponse), - headers: headers, - }); - } - else { - reject(new Error('Method not supported')); - } - }); - } - // ==== HELPER METHODS ==== // /** * Requests remote info from the connected peer for the named vault. * @param vaultName Name of the desired vault @@ -2187,28 +2138,8 @@ class GitClient { }); }); } - /** - * Converts a buffer into an iterator expected by isomorphic git. - * @param data Data to be turned into an iterator - */ - iteratorFromData(data) { - let ended = false; - return { - next() { - return new Promise((resolve, reject) => { - if (ended) { - return resolve({ done: true }); - } - else { - ended = true; - resolve({ value: data, done: false }); - } - }); - }, - }; - } } -exports.default = GitClient; +exports.default = GitFrontend; /***/ }), @@ -2234,80 +2165,55 @@ const packObjects_1 = __importDefault(__webpack_require__(30)); // https://github.com/gabrielcsapo/node-git-server // We need someway to notify other agents about what vaults we have based on some type of authorisation because they don't explicitly know about them class GitBackend { - constructor(polykeyPath, vaultManager) { - this.polykeyPath = polykeyPath; - this.vaultManager = vaultManager; + constructor(repoDirectoryPath, getFileSystem) { + this.repoDirectoryPath = repoDirectoryPath; + this.getFileSystem = getFileSystem; } - /** - * Find out whether vault exists. - * @param vaultName Name of vault to check - * @param publicKey Public key of peer trying to access vault - */ - exists(vaultName, publicKey) { - try { - const vault = this.vaultManager.getVault(vaultName); - if (vault) { - return vault.peerCanAccess(publicKey); - } - return false; - } - catch (error) { - return false; - } - } - async handleInfoRequest(vaultName) { - var _a; + async handleInfoRequest(repoName) { // Only handle upload-pack for now const service = 'upload-pack'; - const connectingPublicKey = ''; + const fileSystem = this.getFileSystem(repoName); const responseBuffers = []; - if (!this.exists(vaultName, connectingPublicKey)) { - throw Error(`vault does not exist: '${vaultName}'`); - } - else { - responseBuffers.push(Buffer.from(this.createGitPacketLine('# service=git-' + service + '\n'))); - responseBuffers.push(Buffer.from('0000')); - const fileSystem = (_a = this.vaultManager.getVault(vaultName)) === null || _a === void 0 ? void 0 : _a.EncryptedFS; - const buffers = await uploadPack_1.default(fileSystem, path_1.default.join(this.polykeyPath, vaultName), undefined, true); - const buffersToWrite = buffers !== null && buffers !== void 0 ? buffers : []; - responseBuffers.push(...buffersToWrite); - } + if (!fileSystem.existsSync(path_1.default.join(this.repoDirectoryPath, repoName))) { + throw Error(`repository does not exist: '${repoName}'`); + } + responseBuffers.push(Buffer.from(this.createGitPacketLine('# service=git-' + service + '\n'))); + responseBuffers.push(Buffer.from('0000')); + const buffers = await uploadPack_1.default(fileSystem, path_1.default.join(this.repoDirectoryPath, repoName), undefined, true); + const buffersToWrite = buffers !== null && buffers !== void 0 ? buffers : []; + responseBuffers.push(...buffersToWrite); return Buffer.concat(responseBuffers); } - async handlePackRequest(vaultName, body) { + async handlePackRequest(repoName, body) { // eslint-disable-next-line return new Promise(async (resolve, reject) => { - var _a; const responseBuffers = []; - // Check if vault exists - const connectingPublicKey = ''; - if (!this.exists(vaultName, connectingPublicKey)) { - throw Error(`vault does not exist: '${vaultName}'`); + const fileSystem = this.getFileSystem(repoName); + // Check if repo exists + if (!fileSystem.existsSync(path_1.default.join(this.repoDirectoryPath, repoName))) { + throw Error(`repository does not exist: '${repoName}'`); } - const fileSystem = (_a = this.vaultManager.getVault(vaultName)) === null || _a === void 0 ? void 0 : _a.EncryptedFS; - if (fileSystem) { - if (body.toString().slice(4, 8) == 'want') { - const wantedObjectId = body.toString().slice(9, 49); - const packResult = await packObjects_1.default(fileSystem, path_1.default.join(this.polykeyPath, vaultName), [wantedObjectId], undefined); - // This the 'wait for more data' line as I understand it - responseBuffers.push(Buffer.from('0008NAK\n')); - // This is to get the side band stuff working - const readable = new readable_stream_1.PassThrough(); - const progressStream = new readable_stream_1.PassThrough(); - const sideBand = GitSideBand_1.default.mux('side-band-64', readable, packResult.packstream, progressStream, []); - sideBand.on('data', (data) => { - responseBuffers.push(data); - }); - sideBand.on('end', () => { - resolve(Buffer.concat(responseBuffers)); - }); - sideBand.on('error', (err) => { - reject(err); - }); - // Write progress to the client - progressStream.write(Buffer.from('0014progress is at 50%\n')); - progressStream.end(); - } + if (body.toString().slice(4, 8) == 'want') { + const wantedObjectId = body.toString().slice(9, 49); + const packResult = await packObjects_1.default(fileSystem, path_1.default.join(this.repoDirectoryPath, repoName), [wantedObjectId], undefined); + // This the 'wait for more data' line as I understand it + responseBuffers.push(Buffer.from('0008NAK\n')); + // This is to get the side band stuff working + const readable = new readable_stream_1.PassThrough(); + const progressStream = new readable_stream_1.PassThrough(); + const sideBand = GitSideBand_1.default.mux('side-band-64', readable, packResult.packstream, progressStream, []); + sideBand.on('data', (data) => { + responseBuffers.push(data); + }); + sideBand.on('end', () => { + resolve(Buffer.concat(responseBuffers)); + }); + sideBand.on('error', (err) => { + reject(err); + }); + // Write progress to the client + progressStream.write(Buffer.from('0014progress is at 50%\n')); + progressStream.end(); } }); } @@ -3368,7 +3274,7 @@ class VaultManager { * @param address Address of polykey node that owns vault to be cloned * @param getSocket Function to get an active connection to provided address */ - async cloneVault(vaultName, gitClient) { + async cloneVault(vaultName, gitRequest) { // Confirm it doesn't exist locally already if (this.vaultExists(vaultName)) { throw Error('Vault name already exists locally, try pulling instead'); @@ -3376,7 +3282,7 @@ class VaultManager { const vaultUrl = `http://0.0.0.0/${vaultName}`; // First check if it exists on remote const info = await isomorphic_git_1.default.getRemoteInfo({ - http: gitClient, + http: gitRequest, url: vaultUrl, }); if (!info.refs) { @@ -3391,7 +3297,7 @@ class VaultManager { // Clone vault from address await isomorphic_git_1.default.clone({ fs: { promises: newEfs.promises }, - http: gitClient, + http: gitRequest, dir: path_1.default.join(this.polykeyPath, vaultName), url: vaultUrl, ref: 'master', @@ -3911,6 +3817,10 @@ class PolykeyAgent { }); } stop() { + this.polykeyMap.forEach((pk) => { + pk.peerManager.multicastBroadcaster.socket.close(); + pk.peerManager.server.forceShutdown(); + }); this.server.close(); } handleClientCommunication(socket) { @@ -4019,8 +3929,9 @@ class PolykeyAgent { // Register an existing polykey agent async registerNode(nodePath, request) { const { passphrase } = RegisterNodeRequestMessage.decode(request); - let pk = this.getPolyKey(nodePath, false); - if (pk) { + let pk; + if (this.polykeyMap.has(nodePath)) { + pk = this.getPolyKey(nodePath, false); if (pk.keyManager.identityLoaded) { throw Error(`node path is already loaded and unlocked: '${nodePath}'`); } @@ -4101,7 +4012,10 @@ class PolykeyAgent { const { includePrivateKey } = GetPrimaryKeyPairRequestMessage.decode(request); const pk = this.getPolyKey(nodePath); const keypair = pk.keyManager.getKeyPair(); - return GetPrimaryKeyPairResponseMessage.encode({ publicKey: keypair.public, privateKey: includePrivateKey ? keypair.private : undefined }).finish(); + return GetPrimaryKeyPairResponseMessage.encode({ + publicKey: keypair.public, + privateKey: includePrivateKey ? keypair.private : undefined, + }).finish(); } async deleteKey(nodePath, request) { const { keyName } = DeleteKeyRequestMessage.decode(request); @@ -4119,9 +4033,9 @@ class PolykeyAgent { return SignFileResponseMessage.encode({ signaturePath }).finish(); } async verifyFile(nodePath, request) { - const { filePath, signaturePath } = VerifyFileRequestMessage.decode(request); + const { filePath, publicKeyPath } = VerifyFileRequestMessage.decode(request); const pk = this.getPolyKey(nodePath); - const verified = await pk.keyManager.verifyFile(filePath, signaturePath); + const verified = await pk.keyManager.verifyFile(filePath, publicKeyPath); return VerifyFileResponseMessage.encode({ verified }).finish(); } async encryptFile(nodePath, request) { @@ -4223,7 +4137,10 @@ class PolykeyAgent { static get SocketPath() { const platform = os_1.default.platform(); const userInfo = os_1.default.userInfo(); - if (platform == 'win32') { + if (process_1.default.env.PK_SOCKET_PATH) { + return process_1.default.env.PK_SOCKET_PATH; + } + else if (platform == 'win32') { return path_1.default.join('\\\\?\\pipe', process_1.default.cwd(), 'polykey-agent'); } else { @@ -4233,7 +4150,10 @@ class PolykeyAgent { static get LogPath() { const platform = os_1.default.platform(); const userInfo = os_1.default.userInfo(); - if (platform == 'win32') { + if (process_1.default.env.PK_LOG_PATH) { + return process_1.default.env.PK_LOG_PATH; + } + else if (platform == 'win32') { return path_1.default.join(os_1.default.tmpdir(), 'polykey', 'log'); } else { @@ -4252,11 +4172,13 @@ class PolykeyAgent { 'ipc', fs_1.default.openSync(path_1.default.join(PolykeyAgent.LogPath, 'output.log'), 'a'), fs_1.default.openSync(path_1.default.join(PolykeyAgent.LogPath, 'error.log'), 'a'), - ] + ], + silent: true, }; const agentProcess = child_process_1.fork(PolykeyAgent.DAEMON_SCRIPT_PATH, undefined, options); const pid = agentProcess.pid; agentProcess.unref(); + agentProcess.disconnect(); resolve(pid); } catch (err) { diff --git a/dist/lib/polykey.js.map b/dist/lib/polykey.js.map index 9e12ceb59..eb7881d0e 100644 --- a/dist/lib/polykey.js.map +++ b/dist/lib/polykey.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://polykey/webpack/universalModuleDefinition","webpack://polykey/webpack/bootstrap","webpack://polykey/external \"path\"","webpack://polykey/external \"os\"","webpack://polykey/external \"fs\"","webpack://polykey/external \"readable-stream\"","webpack://polykey/./src/lib/Polykey.ts","webpack://polykey/external \"crypto\"","webpack://polykey/external \"@grpc/grpc-js\"","webpack://polykey/external \"../../proto/compiled/Git_grpc_pb\"","webpack://polykey/external \"../../proto/compiled/Git_pb\"","webpack://polykey/./src/lib/git/upload-pack/GitPktLine.ts","webpack://polykey/./src/lib/git/upload-pack/GitRefManager.ts","webpack://polykey/external \"pako\"","webpack://polykey/./src/lib/git/pack-objects/GitCommit.ts","webpack://polykey/./src/lib/git/pack-objects/GitObjectManager.ts","webpack://polykey/./src/lib/peers/PeerInfo.ts","webpack://polykey/external \"isomorphic-git\"","webpack://polykey/external \"encryptedfs\"","webpack://polykey/external \"virtualfs\"","webpack://polykey/./src/lib/agent/PolykeyClient.ts","webpack://polykey/external \"../../proto/js/Agent\"","webpack://polykey/./src/lib/keys/KeyManager.ts","webpack://polykey/external \"kbpgp\"","webpack://polykey/external \"util\"","webpack://polykey/./src/lib/peers/PeerManager.ts","webpack://polykey/./src/lib/git/GitClient.ts","webpack://polykey/./src/lib/git/GitBackend.ts","webpack://polykey/./src/lib/git/upload-pack/uploadPack.ts","webpack://polykey/./src/lib/git/upload-pack/GitPackedRefs.ts","webpack://polykey/./src/lib/git/side-band/GitSideBand.ts","webpack://polykey/external \"buffer\"","webpack://polykey/./src/lib/git/pack-objects/packObjects.ts","webpack://polykey/./src/lib/git/pack-objects/log.ts","webpack://polykey/./src/lib/git/pack-objects/GitObject.ts","webpack://polykey/./src/lib/git/pack-objects/shasum.ts","webpack://polykey/external \"sha.js/sha1\"","webpack://polykey/./src/lib/git/pack-objects/GitTree.ts","webpack://polykey/external \"sha.js\"","webpack://polykey/external \"../../proto/js/Peer\"","webpack://polykey/./src/lib/utils.ts","webpack://polykey/./src/lib/peers/MulticastBroadcaster.ts","webpack://polykey/external \"dgram\"","webpack://polykey/external \"events\"","webpack://polykey/external \"../../proto/js/Peer.js\"","webpack://polykey/./src/lib/vaults/VaultManager.ts","webpack://polykey/./src/lib/vaults/Vault.ts","webpack://polykey/external \"async-mutex\"","webpack://polykey/./src/lib/agent/PolykeyAgent.ts","webpack://polykey/external \"net\"","webpack://polykey/external \"process\"","webpack://polykey/external \"child_process\"","webpack://polykey/external \"configstore\""],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA,iC;;;;;;ACAA,+B;;;;;;ACAA,+B;;;;;;ACAA,4C;;;;;;;ACAa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,qCAAqC,mBAAO,CAAC,EAAmB;AAChE;AACA,sCAAsC,mBAAO,CAAC,EAAqB;AACnE;AACA,uCAAuC,mBAAO,CAAC,EAAuB;AACtE;AACA,uCAAuC,mBAAO,CAAC,EAAsB;AACrE;AACA,wCAAwC,mBAAO,CAAC,EAAuB;AACvE;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3BA,mC;;;;;;ACAA,0C;;;;;;ACAA,6D;;;;;;ACAA,wD;;;;;;;ACAa;AACb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5Fa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D;AACA,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,wCAAwC,mBAAO,CAAC,EAAiB;AACjE;AACA;AACA,OAAO,IAAI;AACX,YAAY,IAAI;AAChB,iBAAiB,IAAI;AACrB,kBAAkB,IAAI;AACtB,oBAAoB,IAAI;AACxB,oBAAoB,IAAI;AACxB;AACA;AACA;AACA,8BAA8B,EAAE;AAChC,8BAA8B,EAAE;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,gDAAgD,OAAO,gBAAgB,mBAAmB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO,GAAG,SAAS;AACvE,kDAAkD,OAAO,GAAG,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,GAAG;AAC9C;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA,mDAAmD,OAAO,GAAG,IAAI,IAAI,mBAAmB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5HA,iC;;;;;;;ACAa;AACb;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA,6BAA6B,YAAY,IAAI,aAAa,IAAI,iBAAiB,GAAG,4CAA4C;AAC9H;AACA,gCAAgC,eAAe,IAAI,gBAAgB,IAAI,oBAAoB,GAAG,+CAA+C;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtLa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,+BAA+B,mBAAO,CAAC,EAAM;AAC7C,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,oCAAoC,mBAAO,CAAC,EAAa;AACzD;AACA;AACA;AACA;AACA,8CAA8C,OAAO,WAAW,gBAAgB,GAAG,aAAa;AAChG,kCAAkC,gBAAgB,GAAG,aAAa;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,OAAO,gBAAgB,SAAS;AAChG,sCAAsC,OAAO;AAC7C;AACA;AACA,+CAA+C,2BAA2B;AAC1E,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,OAAO,YAAY,mBAAmB;AACxF;AACA,0DAA0D,IAAI;AAC9D;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA,aAAa,eAAe,+BAA+B,cAAc;AACzE;AACA,oBAAoB;AACpB;AACA;AACA;;;;;;;;AC/Da;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,QAAQ,GAAG,UAAU;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ,GAAG,UAAU;AACrE;AACA;AACA,kBAAkB,QAAQ,GAAG,UAAU;AACvC;AACA;AACA;AACA;AACA,cAAc,QAAQ,GAAG,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;AClEA,2C;;;;;;ACAA,wC;;;;;;ACAA,sC;;;;;;;ACAa;AACb,8CAA8C,cAAc;AAC5D,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,OAAO,4lCAA4lC;AACnmC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA,uBAAuB,QAAQ;AAC/B,yDAAyD,MAAM;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,6DAA6D,iCAAiC;AAC9F;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sBAAsB;AAC9E;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,wDAAwD,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,qDAAqD,UAAU;AAC/D;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,gEAAgE,oBAAoB;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,uCAAuC;AAC9F;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,yDAAyD,0BAA0B;AACnF;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,0DAA0D,0BAA0B;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,0DAA0D,uCAAuC;AACjG;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,uDAAuD,YAAY;AACnE;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,2DAA2D,YAAY;AACvE;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,4CAA4C;AACrG;AACA;AACA,yDAAyD,+CAA+C;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,4DAA4D,wBAAwB;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,4CAA4C;AACrG;AACA;AACA,yDAAyD,+CAA+C;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/UA,iD;;;;;;;ACAa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,6BAA6B,mBAAO,CAAC,CAAI;AACzC,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,gCAAgC,mBAAO,CAAC,EAAO;AAC/C,iCAAiC,mBAAO,CAAC,CAAQ;AACjD,eAAe,mBAAO,CAAC,EAAM;AAC7B;AACA,iCAAiC,uBAAuB;AACxD,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC;AAC/F,uBAAuB,KAAK,IAAI,MAAM;AACtC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,+DAA+D;AAC/D;AACA,8FAA8F;AAC9F;AACA,+FAA+F,yBAAyB;AACxH;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,qBAAqB;AAC1H,2EAA2E,sBAAsB;AACjG;AACA,wEAAwE,yBAAyB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,KAAK;AACjE;AACA;AACA,qEAAqE,kBAAkB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,KAAK;AACjE;AACA;AACA,gFAAgF,kBAAkB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,qBAAqB;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,sBAAsB;AAC3H;AACA,yDAAyD,yBAAyB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzpBA,kC;;;;;;ACAA,iC;;;;;;;ACAa;AACb;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,0BAA0B,mBAAO,CAAC,CAAe;AACjD,oCAAoC,mBAAO,CAAC,EAAkB;AAC9D,qCAAqC,mBAAO,CAAC,EAAmB;AAChE,eAAe,mBAAO,CAAC,EAAwB;AAC/C,gBAAgB,mBAAO,CAAC,EAAU;AAClC,gCAAgC,mBAAO,CAAC,EAAmB;AAC3D,+CAA+C,mBAAO,CAAC,EAA+B;AACtF,sBAAsB,mBAAO,CAAC,CAAqC;AACnE,iBAAiB,mBAAO,CAAC,CAAgC;AACzD;AACA;AACA;AACA,qEAAqE,QAAQ,GAAG,OAAO;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY;AAC3D;AACA,KAAK;AACL;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA,yBAAyB;AACzB;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yCAAyC,8DAA8D;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,qBAAqB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA;;;;;;;;ACrQa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D,0BAA0B,mBAAO,CAAC,CAAe;AACjD,sBAAsB,mBAAO,CAAC,CAAqC;AACnE,iBAAiB,mBAAO,CAAC,CAAgC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yCAAyC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,aAAa;AACrD;AACA;AACA;AACA,iCAAiC,2BAA2B;AAC5D;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;;;;;;;;ACpIa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,0BAA0B,mBAAO,CAAC,CAAiB;AACnD,qCAAqC,mBAAO,CAAC,EAA0B;AACvE,sCAAsC,mBAAO,CAAC,EAAyB;AACvE,sCAAsC,mBAAO,CAAC,EAA4B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,UAAU;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,UAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrGa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,qCAAqC,mBAAO,CAAC,CAAc;AAC3D,wCAAwC,mBAAO,CAAC,EAAiB;AACjE,oCAAoC,8BAA8B;AAClE;AACA;AACA;AACA;AACA,0BAA0B,IAAI,GAAG,MAAM;AACvC;AACA,sBAAsB,4BAA4B,GAAG,KAAK;AAC1D,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA,mDAAmD,MAAM,GAAG,IAAI,EAAE,KAAK;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,4CAA4C;AAC5C,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,EAAQ;AACjC,0BAA0B,mBAAO,CAAC,CAAiB;AACnD,qCAAqC,mBAAO,CAAC,CAA2B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;;;;;;ACrJA,mC;;;;;;;ACAa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,+BAA+B,mBAAO,CAAC,EAAM;AAC7C,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,8BAA8B,mBAAO,CAAC,EAAO;AAC7C,kCAAkC,mBAAO,CAAC,EAAW;AACrD,iCAAiC,mBAAO,CAAC,EAAQ;AACjD,oCAAoC,mBAAO,CAAC,EAAa;AACzD,0BAA0B,mBAAO,CAAC,CAAiB;AACnD,2CAA2C,mBAAO,CAAC,EAAoB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvKa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,aAAa,mBAAO,CAAC,CAAM;AAC3B,oCAAoC,mBAAO,CAAC,EAAa;AACzD,2CAA2C,mBAAO,CAAC,EAAoB;AACvE,wCAAwC,mBAAO,CAAC,EAA8B;AAC9E;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA,sCAAsC,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpFa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,iCAAiC,mBAAO,CAAC,EAAU;AACnD;AACA,iBAAiB,eAAe;AAChC,mDAAmD,KAAK,GAAG,6BAA6B;AACxF;AACA;AACA;AACA,iBAAiB,eAAe;AAChC,mDAAmD,KAAK,GAAG,6BAA6B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA,8DAA8D,IAAI,aAAa,IAAI;AACnF;AACA;AACA,mCAAmC;AACnC,kCAAkC;AAClC,uDAAuD;AACvD,6DAA6D;AAC7D;AACA;AACA;AACA,yDAAyD,OAAO,iBAAiB,aAAa;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1Ca;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,+BAA+B,mBAAO,CAAC,EAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA,wC;;;;;;;ACAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,wBAAwB;AACxB;AACA,wBAAwB;AACxB;AACA,wBAAwB;AACxB;AACA,wBAAwB;AACxB,uDAAuD,KAAK;AAC5D;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gDAAgD;AAChD;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,WAAW,GAAG,WAAW,GAAG,UAAU,MAAM,WAAW;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mBAAmB;AACtE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClGA,mC;;;;;;ACAA,gD;;;;;;;ACAa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1Ba;AACb;AACA,4CAA4C;AAC5C;AACA;AACA,8CAA8C,cAAc;AAC5D,gCAAgC,mBAAO,CAAC,EAAO;AAC/C,iCAAiC,mBAAO,CAAC,CAAQ;AACjD,mCAAmC,mBAAO,CAAC,EAAY;AACvD,iBAAiB,mBAAO,CAAC,EAAQ;AACjC,kBAAkB,mBAAO,CAAC,EAA2B;AACrD,OAAO,oCAAoC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gCAAgC;AACpF;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4DAA4D;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/IA,kC;;;;;;ACAA,mC;;;;;;ACAA,mD;;;;;;;ACAa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,yCAAyC,mBAAO,CAAC,EAAgB;AACjE,gCAAgC,mBAAO,CAAC,EAAiB;AACzD,sBAAsB,mBAAO,CAAC,EAAa;AAC3C;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,UAAU;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA,gEAAgE,UAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,sDAAsD,UAAU;AAChE;AACA;AACA;AACA,8DAA8D,UAAU;AACxE;AACA,iCAAiC,mBAAO,CAAC,EAAW;AACpD;AACA;AACA;AACA,iBAAiB,4BAA4B;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,UAAU;AACtE;AACA;AACA,gEAAgE,UAAU;AAC1E;AACA;AACA;AACA,4DAA4D,UAAU;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzNa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,yCAAyC,mBAAO,CAAC,EAAgB;AACjE,sBAAsB,mBAAO,CAAC,EAAa;AAC3C,sBAAsB,mBAAO,CAAC,EAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAO,CAAC,EAAW;AACpD;AACA;AACA;AACA;AACA,4CAA4C,kBAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA,oDAAoD,WAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA,uDAAuD,WAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,WAAW;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA,aAAa;AACb;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uEAAuE,kBAAkB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1SA,wC;;;;;;;ACAa;AACb;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,6BAA6B,mBAAO,CAAC,CAAI;AACzC,8BAA8B,mBAAO,CAAC,EAAK;AAC3C,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,kCAAkC,mBAAO,CAAC,EAAS;AACnD,wBAAwB,mBAAO,CAAC,EAAe;AAC/C,+BAA+B,mBAAO,CAAC,CAAY;AACnD,sCAAsC,mBAAO,CAAC,EAAa;AAC3D,wCAAwC,mBAAO,CAAC,EAAiB;AACjE,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,OAAO,4lCAA4lC;AACnmC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,SAAS;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,SAAS;AACtG;AACA;AACA;AACA;AACA,+DAA+D,SAAS;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,uBAAuB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iEAAiE;AACtH,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA,0EAA0E,SAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA,eAAe,iCAAiC;AAChD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA,oDAAoD,gCAAgC;AACpF;AACA;AACA,oDAAoD,2BAA2B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA;AACA,gDAAgD,mBAAmB;AACnE;AACA;AACA;AACA;AACA,+CAA+C,WAAW;AAC1D;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA,eAAe,oBAAoB;AACnC;AACA;AACA,wDAAwD,yFAAyF;AACjJ;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA,eAAe,uCAAuC;AACtD;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA,eAAe,0BAA0B;AACzC;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA,eAAe,0BAA0B;AACzC;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA,eAAe,uCAAuC;AACtD;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa;AAC9D;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA,+CAA+C,mBAAmB;AAClE;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA,mDAAmD,mBAAmB;AACtE;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA,kDAAkD,cAAc;AAChE;AACA;AACA,eAAe,mDAAmD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mBAAmB;AACtE;AACA;AACA,eAAe,wBAAwB;AACvC;AACA;AACA;AACA,oDAAoD,mBAAmB;AACvE;AACA;AACA,eAAe,wBAAwB;AACvC;AACA;AACA;AACA,gDAAgD,iBAAiB;AACjE;AACA;AACA,eAAe,mDAAmD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mBAAmB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA,8DAA8D,kBAAkB;AAChF,8DAA8D,kBAAkB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxdA,gC;;;;;;ACAA,oC;;;;;;ACAA,0C;;;;;;ACAA,wC","file":"polykey.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"polykey\"] = factory();\n\telse\n\t\troot[\"polykey\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","module.exports = require(\"path\");","module.exports = require(\"os\");","module.exports = require(\"fs\");","module.exports = require(\"readable-stream\");","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst os_1 = __importDefault(require(\"os\"));\nconst KeyManager_1 = __importDefault(require(\"./keys/KeyManager\"));\nexports.KeyManager = KeyManager_1.default;\nconst PeerManager_1 = __importDefault(require(\"./peers/PeerManager\"));\nexports.PeerManager = PeerManager_1.default;\nconst VaultManager_1 = __importDefault(require(\"./vaults/VaultManager\"));\nexports.VaultManager = VaultManager_1.default;\nconst PolykeyAgent_1 = __importDefault(require(\"./agent/PolykeyAgent\"));\nexports.PolykeyAgent = PolykeyAgent_1.default;\nconst PolykeyClient_1 = __importDefault(require(\"./agent/PolykeyClient\"));\nexports.PolykeyClient = PolykeyClient_1.default;\nclass Polykey {\n constructor(polykeyPath = `${os_1.default.homedir()}/.polykey`, fileSystem, keyManager, vaultManager, peerManager) {\n this.polykeyPath = polykeyPath;\n // Set key manager\n this.keyManager = keyManager !== null && keyManager !== void 0 ? keyManager : new KeyManager_1.default(this.polykeyPath, fileSystem);\n // Set or Initialize vaultManager\n this.vaultManager = vaultManager !== null && vaultManager !== void 0 ? vaultManager : new VaultManager_1.default(this.polykeyPath, fileSystem, this.keyManager);\n // Initialize peer store and peer discovery classes\n this.peerManager = peerManager !== null && peerManager !== void 0 ? peerManager : new PeerManager_1.default(this.polykeyPath, fileSystem, this.keyManager, this.vaultManager);\n }\n}\nexports.default = Polykey;\n","module.exports = require(\"crypto\");","module.exports = require(\"@grpc/grpc-js\");","module.exports = require(\"../../proto/compiled/Git_grpc_pb\");","module.exports = require(\"../../proto/compiled/Git_pb\");","\"use strict\";\n/**\npkt-line Format\n---------------\n\nMuch (but not all) of the payload is described around pkt-lines.\n\nA pkt-line is a variable length binary string. The first four bytes\nof the line, the pkt-len, indicates the total length of the line,\nin hexadecimal. The pkt-len includes the 4 bytes used to contain\nthe length's hexadecimal representation.\n\nA pkt-line MAY contain binary data, so implementors MUST ensure\npkt-line parsing/formatting routines are 8-bit clean.\n\nA non-binary line SHOULD BE terminated by an LF, which if present\nMUST be included in the total length. Receivers MUST treat pkt-lines\nwith non-binary data the same whether or not they contain the trailing\nLF (stripping the LF if present, and not complaining when it is\nmissing).\n\nThe maximum length of a pkt-line's data component is 65516 bytes.\nImplementations MUST NOT send pkt-line whose length exceeds 65520\n(65516 bytes of payload + 4 bytes of length data).\n\nImplementations SHOULD NOT send an empty pkt-line (\"0004\").\n\nA pkt-line with a length field of 0 (\"0000\"), called a flush-pkt,\nis a special case and MUST be handled differently than an empty\npkt-line (\"0004\").\n\n----\n pkt-line = data-pkt / flush-pkt\n\n data-pkt = pkt-len pkt-payload\n pkt-len = 4*(HEXDIG)\n pkt-payload = (pkt-len - 4)*(OCTET)\n\n flush-pkt = \"0000\"\n----\n\nExamples (as C-style strings):\n\n----\n pkt-line actual value\n ---------------------------------\n \"0006a\\n\" \"a\\n\"\n \"0005a\" \"a\"\n \"000bfoobar\\n\" \"foobar\\n\"\n \"0004\" \"\"\n----\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction padHex(b, n) {\n const s = n.toString(16);\n return '0'.repeat(b - s.length) + s;\n}\n// I'm really using this more as a namespace.\n// There's not a lot of \"state\" in a pkt-line\nclass GitPktLine {\n static flush() {\n return Buffer.from('0000', 'utf8');\n }\n static encode(line) {\n if (typeof line === 'string') {\n line = Buffer.from(line);\n }\n const length = line.length + 4;\n const hexlength = padHex(4, length);\n return Buffer.concat([Buffer.from(hexlength, 'utf8'), line]);\n }\n static streamReader(stream) {\n return async function read() {\n try {\n let length = await stream.slice(4);\n if (length === null)\n return true;\n length = parseInt(length.toString('utf8'), 16);\n if (length === 0)\n return null;\n let buffer = await stream.slice(length - 4);\n if (buffer === null)\n return true;\n return buffer;\n }\n catch (err) {\n console.log('error', err);\n return true;\n }\n };\n }\n}\nexports.default = GitPktLine;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// This is a convenience wrapper for reading and writing files in the 'refs' directory.\nconst path_1 = __importDefault(require(\"path\"));\nconst GitPackedRefs_1 = __importDefault(require(\"./GitPackedRefs\"));\n// @see https://git-scm.com/docs/git-rev-parse.html#_specifying_revisions\nconst refpaths = (ref) => [\n `${ref}`,\n `refs/${ref}`,\n `refs/tags/${ref}`,\n `refs/heads/${ref}`,\n `refs/remotes/${ref}`,\n `refs/remotes/${ref}/HEAD`,\n];\nfunction compareRefNames(a, b) {\n // https://stackoverflow.com/a/40355107/2168416\n const _a = a.replace(/\\^\\{\\}$/, '');\n const _b = b.replace(/\\^\\{\\}$/, '');\n const tmp = -(_a < _b) || +(_a > _b);\n if (tmp === 0) {\n return a.endsWith('^{}') ? 1 : -1;\n }\n return tmp;\n}\n// @see https://git-scm.com/docs/gitrepository-layout\nconst GIT_FILES = ['config', 'description', 'index', 'shallow', 'commondir'];\n// This function is used to get all the files in the refs folder for listRefs function\nasync function recursiveDirectoryWalk(dir, fileSystem) {\n return new Promise((resolve, reject) => {\n let results = [];\n fileSystem.promises\n .readdir(dir)\n .then(async (list) => {\n var pending = list.length;\n if (!pending)\n return resolve(results);\n list.forEach(async function (file) {\n file = path_1.default.resolve(dir, file);\n fileSystem.promises.stat(file).then(async (stat) => {\n if (stat && stat.isDirectory()) {\n const res = await recursiveDirectoryWalk(file, fileSystem);\n results = results.concat(res);\n if (!--pending)\n resolve(results);\n }\n else {\n results.push(file);\n if (!--pending)\n resolve(results);\n }\n });\n });\n })\n .catch((err) => {\n if (err)\n return reject(err);\n });\n });\n}\nclass GitRefManager {\n static async packedRefs(fileSystem, gitdir) {\n const text = fileSystem.readFileSync(`${gitdir}/packed-refs`, { encoding: 'utf8' });\n const packed = GitPackedRefs_1.default.from(text);\n return packed.refs;\n }\n // List all the refs that match the `filepath` prefix\n static async listRefs(fileSystem, gitdir, filepath) {\n const packedMap = GitRefManager.packedRefs(fileSystem, gitdir);\n let files = [];\n try {\n files = await recursiveDirectoryWalk(`${gitdir}/${filepath}`, fileSystem);\n files = files.map((x) => x.replace(`${gitdir}/${filepath}/`, ''));\n }\n catch (err) {\n files = [];\n }\n for (let key of (await packedMap).keys()) {\n // filter by prefix\n if (key.startsWith(filepath)) {\n // remove prefix\n key = key.replace(filepath + '/', '');\n // Don't include duplicates; the loose files have precedence anyway\n if (!files.includes(key)) {\n files.push(key);\n }\n }\n }\n // since we just appended things onto an array, we need to sort them now\n files.sort(compareRefNames);\n return files;\n }\n static async resolve(fileSystem, gitdir, ref, depth) {\n if (depth !== undefined) {\n depth--;\n if (depth === -1) {\n return ref;\n }\n }\n // Is it a ref pointer?\n if (ref.startsWith('ref: ')) {\n ref = ref.slice('ref: '.length);\n return GitRefManager.resolve(fileSystem, gitdir, ref, depth);\n }\n // Is it a complete and valid SHA?\n if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) {\n return ref;\n }\n // We need to alternate between the file system and the packed-refs\n const packedMap = await GitRefManager.packedRefs(fileSystem, gitdir);\n // Look in all the proper paths, in this order\n const allpaths = refpaths(ref).filter((p) => !GIT_FILES.includes(p)); // exclude git system files (#709)\n for (const ref of allpaths) {\n const sha = fileSystem.readFileSync(`${gitdir}/${ref}`, { encoding: 'utf8' }).toString() || packedMap.get(ref);\n if (sha) {\n return GitRefManager.resolve(fileSystem, gitdir, sha.trim(), depth);\n }\n }\n // Do we give up?\n throw Error('RefNotFound');\n }\n}\nexports.default = GitRefManager;\n","module.exports = require(\"pako\");","\"use strict\";\n// The amount of work that went into crafting these cases to handle\n// -0 (just so we don't lose that information when parsing and reconstructing)\n// but can also default to +0 was extraordinary.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction simpleSign(n) {\n return Math.sign(n) || (Object.is(n, -0) ? -1 : 1);\n}\nfunction negateExceptForZero(n) {\n return n === 0 ? n : -n;\n}\nfunction formatTimezoneOffset(minutes) {\n let sign = simpleSign(negateExceptForZero(minutes));\n minutes = Math.abs(minutes);\n let hours = Math.floor(minutes / 60);\n minutes -= hours * 60;\n let strHours = String(hours);\n let strMinutes = String(minutes);\n if (strHours.length < 2)\n strHours = '0' + strHours;\n if (strMinutes.length < 2)\n strMinutes = '0' + strMinutes;\n return (sign === -1 ? '-' : '+') + strHours + strMinutes;\n}\nfunction parseTimezoneOffset(offset) {\n let [, sign, hours, minutes] = offset.match(/(\\+|-)(\\d\\d)(\\d\\d)/);\n minutes = (sign === '+' ? 1 : -1) * (Number(hours) * 60 + Number(minutes));\n return negateExceptForZero(minutes);\n}\nfunction parseAuthor(author) {\n let [, name, email, timestamp, offset] = author.match(/^(.*) <(.*)> (.*) (.*)$/);\n return {\n name: name,\n email: email,\n timestamp: Number(timestamp),\n timezoneOffset: parseTimezoneOffset(offset),\n };\n}\nfunction normalize(str) {\n // remove all \n str = str.replace(/\\r/g, '');\n // no extra newlines up front\n str = str.replace(/^\\n+/, '');\n // and a single newline at the end\n str = str.replace(/\\n+$/, '') + '\\n';\n return str;\n}\nfunction indent(str) {\n return (str\n .trim()\n .split('\\n')\n .map((x) => ' ' + x)\n .join('\\n') + '\\n');\n}\nfunction outdent(str) {\n return str\n .split('\\n')\n .map((x) => x.replace(/^ /, ''))\n .join('\\n');\n}\n// TODO: Make all functions have static async signature?\nclass GitCommit {\n constructor(commit) {\n if (typeof commit === 'string') {\n this._commit = commit;\n }\n else if (Buffer.isBuffer(commit)) {\n this._commit = commit.toString('utf8');\n }\n else if (typeof commit === 'object') {\n this._commit = GitCommit.render(commit);\n }\n else {\n throw new Error('invalid type passed to GitCommit constructor');\n }\n }\n static fromPayloadSignature({ payload, signature }) {\n let headers = GitCommit.justHeaders(payload);\n let message = GitCommit.justMessage(payload);\n let commit = normalize(headers + '\\ngpgsig' + indent(signature) + '\\n' + message);\n return new GitCommit(commit);\n }\n static from(commit) {\n return new GitCommit(commit);\n }\n toObject() {\n return Buffer.from(this._commit, 'utf8');\n }\n // Todo: allow setting the headers and message\n headers() {\n return this.parseHeaders();\n }\n // Todo: allow setting the headers and message\n message() {\n return GitCommit.justMessage(this._commit);\n }\n parse() {\n return Object.assign({ message: this.message() }, this.headers());\n }\n static justMessage(commit) {\n return normalize(commit.slice(commit.indexOf('\\n\\n') + 2));\n }\n static justHeaders(commit) {\n return commit.slice(0, commit.indexOf('\\n\\n'));\n }\n parseHeaders() {\n let headers = GitCommit.justHeaders(this._commit).split('\\n');\n let hs = [];\n for (let h of headers) {\n if (h[0] === ' ') {\n // combine with previous header (without space indent)\n hs[hs.length - 1] += '\\n' + h.slice(1);\n }\n else {\n hs.push(h);\n }\n }\n let obj = {\n parent: [],\n };\n for (let h of hs) {\n let key = h.slice(0, h.indexOf(' '));\n let value = h.slice(h.indexOf(' ') + 1);\n if (Array.isArray(obj[key])) {\n obj[key].push(value);\n }\n else {\n obj[key] = value;\n }\n }\n if (obj.author) {\n obj.author = parseAuthor(obj.author);\n }\n if (obj.committer) {\n obj.committer = parseAuthor(obj.committer);\n }\n return obj;\n }\n static renderHeaders(obj) {\n let headers = '';\n if (obj.tree) {\n headers += `tree ${obj.tree}\\n`;\n }\n else {\n headers += `tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904\\n`; // the null tree\n }\n if (obj.parent) {\n if (obj.parent.length === undefined) {\n throw new Error(`commit 'parent' property should be an array`);\n }\n for (let p of obj.parent) {\n headers += `parent ${p}\\n`;\n }\n }\n let author = obj.author;\n headers += `author ${author.name} <${author.email}> ${author.timestamp} ${formatTimezoneOffset(author.timezoneOffset)}\\n`;\n let committer = obj.committer || obj.author;\n headers += `committer ${committer.name} <${committer.email}> ${committer.timestamp} ${formatTimezoneOffset(committer.timezoneOffset)}\\n`;\n if (obj.gpgsig) {\n headers += 'gpgsig' + indent(obj.gpgsig);\n }\n return headers;\n }\n static render(obj) {\n return GitCommit.renderHeaders(obj) + '\\n' + normalize(obj.message);\n }\n render() {\n return this._commit;\n }\n withoutSignature() {\n let commit = normalize(this._commit);\n if (commit.indexOf('\\ngpgsig') === -1)\n return commit;\n let headers = commit.slice(0, commit.indexOf('\\ngpgsig'));\n let message = commit.slice(commit.indexOf('-----END PGP SIGNATURE-----\\n') + '-----END PGP SIGNATURE-----\\n'.length);\n return normalize(headers + '\\n' + message);\n }\n isolateSignature() {\n let signature = this._commit.slice(this._commit.indexOf('-----BEGIN PGP SIGNATURE-----'), this._commit.indexOf('-----END PGP SIGNATURE-----') + '-----END PGP SIGNATURE-----'.length);\n return outdent(signature);\n }\n}\nexports.default = GitCommit;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs_1 = __importDefault(require(\"fs\"));\nconst pako_1 = __importDefault(require(\"pako\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst GitObject_1 = __importDefault(require(\"./GitObject\"));\nconst PackfileCache = new Map();\nclass GitObjectManager {\n static async read(fileSystem, gitdir, oid, format = 'content') {\n // Look for it in the loose object directory.\n let file = fileSystem.readFileSync(`${gitdir}/objects/${oid.slice(0, 2)}/${oid.slice(2)}`);\n let source = `./objects/${oid.slice(0, 2)}/${oid.slice(2)}`;\n // Check to see if it's in a packfile.\n if (!file) {\n // Curry the current read method so that the packfile un-deltification\n // process can acquire external ref-deltas.\n const getExternalRefDelta = (oid) => GitObjectManager.read(fileSystem, gitdir, oid);\n // Iterate through all the .pack files\n let list = fs_1.default.readdirSync(path_1.default.join(gitdir, '/objects/pack'));\n list = list.filter((x) => x.endsWith('.pack'));\n for (let filename of list) {\n // Try to get the packfile from the in-memory cache\n let p = PackfileCache.get(filename);\n // If the packfile DOES have the oid we're looking for...\n if (p.offsets.has(oid)) {\n // Make sure the packfile is loaded in memory\n if (!p.pack) {\n const pack = fileSystem.readFileSync(`${gitdir}/objects/pack/${filename}`);\n await p.load({ pack });\n }\n // Get the resolved git object from the packfile\n let result = await p.read({ oid, getExternalRefDelta });\n result.source = `./objects/pack/${filename}`;\n return result;\n }\n }\n }\n // Check to see if it's in shallow commits.\n if (!file) {\n let text = fileSystem.readFileSync(`${gitdir}/shallow`, { encoding: 'utf8' });\n if (text !== null && text.includes(oid)) {\n throw new Error(`ReadShallowObjectFail: ${oid}`);\n }\n }\n // Finally\n if (!file) {\n throw new Error(`ReadObjectFail: ${oid}`);\n }\n if (format === 'deflated') {\n return { format: 'deflated', object: file, source };\n }\n let buffer = Buffer.from(pako_1.default.inflate(file));\n if (format === 'wrapped') {\n return { format: 'wrapped', object: buffer, source };\n }\n let { type, object } = GitObject_1.default.unwrap({ oid, buffer });\n if (format === 'content')\n return { type, format: 'content', object, source };\n }\n}\nexports.default = GitObjectManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Address {\n constructor(ip, port) {\n this.ip = ip;\n this.port = port;\n }\n /**\n * Create an address object from a address string\n * @param addressString Address string in the format of `${this.ip}:${this.port}`\n */\n static parse(addressString) {\n const components = addressString.split(':');\n const ip = components[0];\n const port = components[1];\n return new Address(ip, port);\n }\n /**\n * Create an address object from a net.AddressInfo\n * @param addressInfo AddressInfo of desired address\n */\n static fromAddressInfo(addressInfo) {\n const ip = addressInfo.address == '::' ? 'localhost' : addressInfo.address;\n return new Address(ip, addressInfo.port.toString());\n }\n /**\n * Convert address into string of format `${this.ip}:${this.port}`\n */\n toString() {\n return `${this.ip}:${this.port}`;\n }\n}\nexports.Address = Address;\nAddress.prototype.toString = function () {\n return `${this.ip}:${this.port}`;\n};\nclass PeerInfo {\n constructor(pubKey, addresses = [], connectedAddr) {\n this.publicKey = pubKey;\n this.addresses = new Set(addresses.map((addr) => {\n return Address.parse(addr);\n }));\n this.connectedAddr = connectedAddr ? Address.parse(connectedAddr) : undefined;\n }\n /**\n * Sets the main server address for the peer\n * @param address Main server address for peer\n */\n connect(address) {\n if (!this.addresses.has(address)) {\n this.addresses.add(address);\n }\n this.connectedAddr = address;\n }\n /**\n * Clears the main server address for the peer\n */\n disconnect() {\n this.connectedAddr = undefined;\n }\n get AdressStringList() {\n return Array.from(this.addresses.values()).map((addr) => {\n return addr.toString();\n });\n }\n}\nexports.default = PeerInfo;\n","module.exports = require(\"isomorphic-git\");","module.exports = require(\"encryptedfs\");","module.exports = require(\"virtualfs\");","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Agent_1 = require(\"../../../proto/js/Agent\");\nconst { AgentMessage, AgentMessageType, CreateSecretRequestMessage, CreateSecretResponseMessage, DecryptFileRequestMessage, DecryptFileResponseMessage, DeleteKeyRequestMessage, DeleteKeyResponseMessage, DeriveKeyRequestMessage, DeriveKeyResponseMessage, DestroySecretRequestMessage, DestroySecretResponseMessage, DestroyVaultRequestMessage, DestroyVaultResponseMessage, EncryptFileRequestMessage, EncryptFileResponseMessage, ErrorMessage, GetPrimaryKeyPairRequestMessage, GetPrimaryKeyPairResponseMessage, GetSecretRequestMessage, GetSecretResponseMessage, GetKeyRequestMessage, GetKeyResponseMessage, ListKeysRequestMessage, ListKeysResponseMessage, ListNodesRequestMessage, ListNodesResponseMessage, ListSecretsRequestMessage, ListSecretsResponseMessage, ListVaultsRequestMessage, ListVaultsResponseMessage, NewNodeRequestMessage, NewNodeResponseMessage, NewVaultRequestMessage, NewVaultResponseMessage, RegisterNodeRequestMessage, RegisterNodeResponseMessage, SignFileRequestMessage, SignFileResponseMessage, UpdateSecretRequestMessage, UpdateSecretResponseMessage, VerifyFileRequestMessage, VerifyFileResponseMessage, } = Agent_1.agent;\nclass PolykeyClient {\n constructor(getStream) {\n this.getStream = getStream;\n }\n async sendRequestToAgent(request) {\n const stream = this.getStream();\n const responseList = await new Promise((resolve, reject) => {\n try {\n const responseList = [];\n stream.on('data', (data) => {\n if (data instanceof Uint8Array) {\n responseList.push(data);\n }\n else {\n responseList.push(...data);\n }\n });\n stream.on('error', (err) => {\n reject(err);\n });\n stream.on('end', () => {\n resolve(responseList);\n });\n if (!stream.writableEnded) {\n stream.write(request);\n }\n }\n catch (err) {\n reject(err);\n }\n });\n return responseList;\n }\n async handleAgentCommunication(type, nodePath, request) {\n // Encode message and sent\n const agentMessage = AgentMessage.encode({\n type: type,\n isResponse: false,\n nodePath: nodePath,\n subMessage: request,\n }).finish();\n const responseList = await this.sendRequestToAgent(agentMessage);\n const agentMessageList = [];\n for (const response of responseList.values()) {\n const { subMessage, type } = AgentMessage.decode(response);\n if (type == AgentMessageType.ERROR) {\n const { error } = ErrorMessage.decode(subMessage);\n const reason = new Error(`Agent Error: ${error}`);\n throw reason;\n }\n else {\n agentMessageList.push(AgentMessage.decode(response));\n }\n }\n return agentMessageList;\n }\n async registerNode(path, passphrase) {\n var _a;\n const registerNodeRequest = RegisterNodeRequestMessage.encode({ passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.REGISTER_NODE, path, registerNodeRequest);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.REGISTER_NODE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = RegisterNodeResponseMessage.decode(subMessage);\n return successful;\n }\n async newNode(path, name, email, passphrase, nbits) {\n var _a;\n const newNodeRequest = NewNodeRequestMessage.encode({ name, email, passphrase, nbits }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.NEW_NODE, path, newNodeRequest);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.NEW_NODE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = NewNodeResponseMessage.decode(subMessage);\n return successful;\n }\n async listNodes(unlockedOnly = true) {\n var _a;\n const newNodeRequest = ListNodesRequestMessage.encode({ unlockedOnly }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_NODES, undefined, newNodeRequest);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_NODES)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { nodes } = ListNodesResponseMessage.decode(subMessage);\n return nodes;\n }\n /////////////////////\n // Key commands //\n /////////////////////\n async deriveKey(nodePath, keyName, passphrase) {\n var _a;\n const request = DeriveKeyRequestMessage.encode({ keyName, passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DERIVE_KEY, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DERIVE_KEY)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DeriveKeyResponseMessage.decode(subMessage);\n return successful;\n }\n async deleteKey(nodePath, keyName) {\n var _a;\n const request = DeleteKeyRequestMessage.encode({ keyName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DELETE_KEY, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DELETE_KEY)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DeleteKeyResponseMessage.decode(subMessage);\n return successful;\n }\n async listKeys(nodePath) {\n var _a;\n const request = ListKeysRequestMessage.encode({}).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_KEYS, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_KEYS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { keyNames } = ListKeysResponseMessage.decode(subMessage);\n return keyNames;\n }\n async getKey(nodePath, keyName) {\n var _a;\n const request = GetKeyRequestMessage.encode({ keyName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_KEY, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.GET_KEY)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { keyContent } = GetKeyResponseMessage.decode(subMessage);\n return keyContent;\n }\n async getPrimaryKeyPair(nodePath, includePrivateKey = false) {\n var _a;\n const request = GetPrimaryKeyPairRequestMessage.encode({ includePrivateKey }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_PRIMARY_KEYPAIR, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.GET_PRIMARY_KEYPAIR)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { publicKey, privateKey } = GetPrimaryKeyPairResponseMessage.decode(subMessage);\n return { publicKey, privateKey };\n }\n /////////////////////\n // Crypto commands //\n /////////////////////\n async signFile(nodePath, filePath, privateKeyPath, passphrase) {\n var _a;\n const request = SignFileRequestMessage.encode({ filePath, privateKeyPath, passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.SIGN_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.SIGN_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { signaturePath } = SignFileResponseMessage.decode(subMessage);\n return signaturePath;\n }\n async verifyFile(nodePath, filePath, signaturePath) {\n var _a;\n const request = VerifyFileRequestMessage.encode({ filePath, signaturePath }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.VERIFY_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.VERIFY_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { verified } = VerifyFileResponseMessage.decode(subMessage);\n return verified;\n }\n async encryptFile(nodePath, filePath, publicKeyPath) {\n var _a;\n const request = EncryptFileRequestMessage.encode({ filePath, publicKeyPath }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.ENCRYPT_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.ENCRYPT_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { encryptedPath } = EncryptFileResponseMessage.decode(subMessage);\n return encryptedPath;\n }\n async decryptFile(nodePath, filePath, privateKeyPath, passphrase) {\n var _a;\n const request = DecryptFileRequestMessage.encode({ filePath, privateKeyPath, passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DECRYPT_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DECRYPT_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { decryptedPath } = DecryptFileResponseMessage.decode(subMessage);\n return decryptedPath;\n }\n //////////////////////\n // Vault Operations //\n //////////////////////\n async listVaults(nodePath) {\n var _a;\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_VAULTS, nodePath);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_VAULTS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { vaultNames } = ListVaultsResponseMessage.decode(subMessage);\n return vaultNames;\n }\n async newVault(nodePath, vaultName) {\n var _a;\n const request = NewVaultRequestMessage.encode({ vaultName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.NEW_VAULT, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.NEW_VAULT)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = NewVaultResponseMessage.decode(subMessage);\n return successful;\n }\n async destroyVault(nodePath, vaultName) {\n var _a;\n const request = DestroyVaultRequestMessage.encode({ vaultName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DESTROY_VAULT, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DESTROY_VAULT)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DestroyVaultResponseMessage.decode(subMessage);\n return successful;\n }\n ///////////////////////\n // Secret Operations //\n ///////////////////////\n async listSecrets(nodePath, vaultName) {\n var _a;\n const request = ListSecretsRequestMessage.encode({ vaultName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_SECRETS, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_SECRETS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { secretNames } = ListSecretsResponseMessage.decode(subMessage);\n return secretNames;\n }\n async createSecret(nodePath, vaultName, secretName, secret) {\n var _a;\n let request;\n if (typeof secret == 'string') {\n request = CreateSecretRequestMessage.encode({ vaultName, secretName, secretPath: secret }).finish();\n }\n else {\n request = CreateSecretRequestMessage.encode({ vaultName, secretName, secretContent: secret }).finish();\n }\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.CREATE_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.CREATE_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = CreateSecretResponseMessage.decode(subMessage);\n return successful;\n }\n async destroySecret(nodePath, vaultName, secretName) {\n var _a;\n const request = DestroySecretRequestMessage.encode({ vaultName, secretName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DESTROY_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DESTROY_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DestroySecretResponseMessage.decode(subMessage);\n return successful;\n }\n async getSecret(nodePath, vaultName, secretName) {\n var _a;\n const request = GetSecretRequestMessage.encode({ vaultName, secretName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.GET_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { secret } = GetSecretResponseMessage.decode(subMessage);\n return Buffer.from(secret);\n }\n async updateSecret(nodePath, vaultName, secretName, secret) {\n var _a;\n let request;\n if (typeof secret == 'string') {\n request = UpdateSecretRequestMessage.encode({ vaultName, secretName, secretPath: secret }).finish();\n }\n else {\n request = UpdateSecretRequestMessage.encode({ vaultName, secretName, secretContent: secret }).finish();\n }\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.UPDATE_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.UPDATE_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = UpdateSecretResponseMessage.decode(subMessage);\n return successful;\n }\n ///////////////////\n // Agent control //\n ///////////////////\n async getAgentStatus() {\n var _a;\n try {\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.STATUS);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.STATUS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const status = Buffer.from(subMessage).toString();\n return status;\n }\n catch (err) {\n if (err.toString().match(/ECONNRESET|ENOENT|ECONNRESET/)) {\n return 'stopped';\n }\n throw err;\n }\n }\n async stopAgent() {\n try {\n // Tell it to start shutting and wait for response\n await this.handleAgentCommunication(AgentMessageType.STOP_AGENT);\n return true;\n }\n catch (err) {\n return (await this.getAgentStatus()) != 'online';\n }\n }\n}\nexports.default = PolykeyClient;\n","module.exports = require(\"../../proto/js/Agent\");","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst os_1 = __importDefault(require(\"os\"));\nconst fs_1 = __importDefault(require(\"fs\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst kbpgp_1 = __importDefault(require(\"kbpgp\"));\nconst crypto_1 = __importDefault(require(\"crypto\"));\nconst util_1 = require(\"util\");\nclass KeyManager {\n constructor(polyKeyPath = `${os_1.default.homedir()}/.polykey`, fileSystem, useWebWorkers = false, workerPool) {\n this.primaryKeyPair = { private: null, public: null };\n this.metadata = {\n privateKeyPath: null,\n publicKeyPath: null,\n pkiKeyPath: null,\n pkiCertPath: null,\n caCertPath: null\n };\n /////////\n // PKI //\n /////////\n this.pkiInfo = { key: null, cert: null, caCert: null };\n this.useWebWorkers = useWebWorkers;\n this.workerPool = workerPool;\n this.derivedKeys = new Map();\n this.fileSystem = fileSystem;\n // Load key manager metadata\n this.polykeyPath = polyKeyPath;\n this.keypairPath = path_1.default.join(polyKeyPath, '.keys');\n if (!this.fileSystem.existsSync(this.keypairPath)) {\n this.fileSystem.mkdirSync(this.keypairPath, { recursive: true });\n }\n this.metadataPath = path_1.default.join(this.keypairPath, 'metadata');\n this.derivedKeysPath = path_1.default.join(this.keypairPath, 'derived-keys');\n this.loadMetadata();\n // Load keys if they were provided\n if (this.metadata.privateKeyPath && this.metadata.publicKeyPath) {\n // Load files into memory\n this.loadKeyPair(this.metadata.publicKeyPath, this.metadata.privateKeyPath);\n }\n /////////\n // PKI //\n /////////\n // Load pki keys and certs\n if (this.metadata.pkiKeyPath) {\n this.pkiInfo.key = fs_1.default.readFileSync(this.metadata.pkiKeyPath);\n }\n if (this.metadata.pkiCertPath) {\n this.pkiInfo.cert = fs_1.default.readFileSync(this.metadata.pkiCertPath);\n }\n if (this.metadata.caCertPath) {\n this.pkiInfo.caCert = fs_1.default.readFileSync(this.metadata.caCertPath);\n }\n this.loadPKIInfo(this.pkiInfo.key, this.pkiInfo.cert, this.pkiInfo.caCert, true);\n }\n get identityLoaded() {\n return this.primaryIdentity ? true : false;\n }\n /**\n * Generates a new assymetric key pair (publicKey and privateKey).\n * @param name Name of keypair owner\n * @param email Email of keypair owner\n * @param passphrase Passphrase to lock the keypair\n * @param nbits Size of the new keypair\n * @param replacePrimary If true, the generated keypair becomes the new primary identity of the key manager\n * @param progressCallback A progress hook for keypair generation\n */\n async generateKeyPair(name, email, passphrase, nbits = 4096, replacePrimary = false, progressCallback) {\n // kbpgp doesn't seem to work for small nbits so set a minimum of 1024\n if (nbits < 1024) {\n throw Error('nbits must be greater than 1024 for keypair generation');\n }\n // Define options\n const flags = kbpgp_1.default['const'].openpgp;\n const params = {\n asp: progressCallback ? new kbpgp_1.default.ASP({ progress_hook: progressCallback }) : undefined,\n userid: `${name} <${email}>`,\n primary: {\n nbits: nbits,\n flags: flags.certify_keys | flags.sign_data | flags.auth | flags.encrypt_comm | flags.encrypt_storage,\n expire_in: 0,\n },\n subkeys: [],\n };\n const identity = await util_1.promisify(kbpgp_1.default.KeyManager.generate)(params);\n await util_1.promisify(identity.sign.bind(identity))({});\n // Export pub key first\n const publicKey = await util_1.promisify(identity.export_pgp_public.bind(identity))({});\n // Finally export priv key\n const privateKey = await util_1.promisify(identity.export_pgp_private.bind(identity))({ passphrase: passphrase });\n // Resolve to parent promise\n const keypair = { private: privateKey, public: publicKey };\n if (replacePrimary) {\n // Set the new keypair\n this.primaryKeyPair = keypair;\n // Set the new identity\n this.primaryIdentity = identity;\n // Overwrite in memory\n const privateKeyPath = path_1.default.join(this.keypairPath, 'private_key');\n const publicKeyPath = path_1.default.join(this.keypairPath, 'public_key');\n await this.fileSystem.promises.writeFile(privateKeyPath, keypair.private);\n await this.fileSystem.promises.writeFile(publicKeyPath, keypair.public);\n // Set metadata\n this.metadata.privateKeyPath = privateKeyPath;\n this.metadata.publicKeyPath = publicKeyPath;\n this.writeMetadata();\n }\n return keypair;\n }\n /**\n * Get the primary keypair\n */\n getKeyPair() {\n return this.primaryKeyPair;\n }\n /**\n * Determines whether public key is loaded or not\n */\n hasPublicKey() {\n return this.primaryKeyPair.public ? true : false;\n }\n /**\n * Get the public key of the primary keypair\n */\n getPublicKey() {\n if (!this.primaryKeyPair.public) {\n throw Error('Public key does not exist in memory');\n }\n return this.primaryKeyPair.public;\n }\n /**\n * Get the private key of the primary keypair\n */\n getPrivateKey() {\n if (!this.primaryKeyPair.private) {\n throw Error('Private key does not exist in memory');\n }\n return this.primaryKeyPair.private;\n }\n /**\n * Loads the keypair into the key manager as the primary identity\n * @param publicKey Public Key\n * @param privateKey Private Key\n */\n loadKeyPair(publicKey, privateKey) {\n this.loadPrivateKey(privateKey);\n this.loadPublicKey(publicKey);\n }\n /**\n * Loads the private key into the primary keypair\n * @param privateKey Private Key\n */\n loadPrivateKey(privateKey) {\n let keyBuffer;\n if (typeof privateKey === 'string') {\n keyBuffer = this.fileSystem.readFileSync(privateKey);\n this.metadata.privateKeyPath = privateKey;\n this.writeMetadata();\n }\n else {\n keyBuffer = privateKey;\n }\n this.primaryKeyPair.private = keyBuffer.toString();\n }\n /**\n * Loads the public key into the primary keypair\n * @param publicKey Public Key\n */\n loadPublicKey(publicKey) {\n let keyBuffer;\n if (typeof publicKey === 'string') {\n keyBuffer = this.fileSystem.readFileSync(publicKey);\n this.metadata.publicKeyPath = publicKey;\n this.writeMetadata();\n }\n else {\n keyBuffer = publicKey;\n }\n this.primaryKeyPair.public = keyBuffer.toString();\n }\n /**\n * Loads the primary identity into the key manager from the existing keypair\n * @param passphrase Passphrase to unlock the private key\n */\n async unlockIdentity(passphrase) {\n const publicKey = this.getPublicKey();\n const privateKey = this.getPrivateKey();\n const identity = await util_1.promisify(kbpgp_1.default.KeyManager.import_from_armored_pgp)({ armored: publicKey });\n await util_1.promisify(identity.merge_pgp_private.bind(identity))({ armored: privateKey });\n if (identity.is_pgp_locked.bind(identity)()) {\n await util_1.promisify(identity.unlock_pgp.bind(identity))({ passphrase: passphrase });\n }\n this.primaryIdentity = identity;\n }\n /**\n * Export the primary private key to a specified location\n * @param path Destination path\n */\n exportPrivateKey(path) {\n this.fileSystem.writeFileSync(path, this.primaryKeyPair.private);\n this.metadata.privateKeyPath = path;\n this.writeMetadata();\n }\n /**\n * Export the primary public key to a specified location\n * @param path Destination path\n */\n exportPublicKey(path) {\n this.fileSystem.writeFileSync(path, this.primaryKeyPair.public);\n this.metadata.publicKeyPath = path;\n this.writeMetadata();\n }\n /**\n * Asynchronously Generates a new symmetric key and stores it in the key manager\n * @param name Unique name of the generated key\n * @param passphrase Passphrase to derive the key from\n * @param storeKey Whether to store the key in the key manager\n */\n async generateKey(name, passphrase, storeKey = true) {\n const salt = crypto_1.default.randomBytes(32);\n const key = await util_1.promisify(crypto_1.default.pbkdf2)(passphrase, salt, 10000, 256 / 8, 'sha256');\n if (storeKey) {\n this.derivedKeys[name] = key;\n await this.writeMetadata();\n }\n return key;\n }\n /**\n * Deletes a derived symmetric key from the key manager\n * @param name Name of the key to be deleted\n */\n async deleteKey(name) {\n const successful = delete this.derivedKeys[name];\n await this.writeMetadata();\n return successful;\n }\n /**\n * List all keys in the current keymanager\n */\n listKeys() {\n return Object.keys(this.derivedKeys);\n }\n /**\n * Synchronously imports an existing key from file or Buffer\n * @param name Unique name of the imported key\n * @param key Key to be imported\n */\n importKeySync(name, key) {\n if (typeof key === 'string') {\n this.derivedKeys[name] = this.fileSystem.readFileSync(key);\n }\n else {\n this.derivedKeys[name] = key;\n }\n }\n /**\n * Asynchronously imports an existing key from file or Buffer\n * @param name Unique name of the imported key\n * @param key Key to be imported\n */\n async importKey(name, key) {\n if (typeof key === 'string') {\n this.derivedKeys[name] = await this.fileSystem.promises.readFile(key);\n }\n else {\n this.derivedKeys[name] = key;\n }\n }\n /**\n * Synchronously exports an existing key from file or Buffer\n * @param name Name of the key to be exported\n * @param dest Destination path\n * @param createPath If set to true, the path is recursively created\n */\n exportKeySync(name, dest, createPath) {\n if (!this.derivedKeys.has(name)) {\n throw Error(`There is no key loaded for name: ${name}`);\n }\n if (createPath) {\n this.fileSystem.mkdirSync(path_1.default.dirname(dest), { recursive: true });\n }\n this.fileSystem.writeFileSync(dest, this.derivedKeys[name]);\n }\n /**\n * Asynchronously exports an existing key from file or Buffer\n * @param name Name of the key to be exported\n * @param dest Destination path\n * @param createPath If set to true, the path is recursively created\n */\n async exportKey(name, dest, createPath) {\n if (!this.derivedKeys.has(name)) {\n throw Error(`There is no key loaded for name: ${name}`);\n }\n if (createPath) {\n await this.fileSystem.promises.mkdir(path_1.default.dirname(dest), { recursive: true });\n }\n await this.fileSystem.promises.writeFile(dest, this.derivedKeys[name]);\n }\n /**\n * Loads an identity from the given public key\n * @param publicKey Buffer containing the public key\n */\n async getIdentityFromPublicKey(publicKey) {\n const identity = await util_1.promisify(kbpgp_1.default.KeyManager.import_from_armored_pgp)({ armored: publicKey });\n return identity;\n }\n /**\n * Loads an identity from the given private key\n * @param publicKey Buffer containing the public key\n */\n async getIdentityFromPrivateKey(privateKey, passphrase) {\n const identity = await util_1.promisify(kbpgp_1.default.KeyManager.import_from_armored_pgp)({ armored: privateKey });\n if (identity.is_pgp_locked()) {\n await util_1.promisify(identity.unlock_pgp)({ passphrase: passphrase });\n }\n return identity;\n }\n /**\n * Signs the given data with the provided key or the primary key if none is specified\n * @param data Buffer or file containing the data to be signed\n * @param privateKey Buffer containing the key to sign with. Defaults to primary private key if no key is given.\n * @param keyPassphrase Required if privateKey is provided.\n */\n async signData(data, privateKey, keyPassphrase) {\n let resolvedIdentity;\n if (privateKey) {\n if (!keyPassphrase) {\n throw Error('passphrase for private key was not provided');\n }\n resolvedIdentity = await this.getIdentityFromPrivateKey(privateKey, keyPassphrase);\n }\n else if (this.primaryIdentity) {\n resolvedIdentity = this.primaryIdentity;\n }\n else {\n throw Error('key pair is not loaded');\n }\n if (this.useWebWorkers && this.workerPool) {\n const workerResponse = await this.workerPool.queue(async (workerCrypto) => {\n return await workerCrypto.signData(data, resolvedIdentity);\n });\n return workerResponse;\n }\n else {\n const params = {\n msg: data.toString(),\n sign_with: resolvedIdentity,\n };\n const result_string = await util_1.promisify(kbpgp_1.default.box)(params);\n return Buffer.from(result_string);\n }\n }\n /**\n * Signs the given file with the provided key or the primary key if none is specified\n * @param filePath Path to file containing the data to be signed\n * @param privateKey The key to sign with. Defaults to primary public key if no key is given.\n * @param keyPassphrase Required if privateKey is provided.\n */\n async signFile(filePath, privateKey, keyPassphrase) {\n // Get key if provided\n let keyBuffer;\n if (privateKey) {\n if (typeof privateKey === 'string') {\n // Path\n // Read in from fs\n keyBuffer = this.fileSystem.readFileSync(privateKey);\n }\n else {\n // Buffer\n keyBuffer = privateKey;\n }\n }\n // Read file into buffer\n const buffer = this.fileSystem.readFileSync(filePath);\n // Sign the buffer\n const signedBuffer = await this.signData(buffer, keyBuffer, keyPassphrase);\n // Write buffer to signed file\n const signedPath = `${filePath}.sig`;\n this.fileSystem.writeFileSync(signedPath, signedBuffer);\n return signedPath;\n }\n /**\n * Verifies the given data with the provided key or the primary key if none is specified\n * @param data Buffer or file containing the data to be verified\n * @param signature The PGP signature\n * @param publicKey Buffer containing the key to verify with. Defaults to primary public key if no key is given.\n */\n async verifyData(data, signature, publicKey) {\n const ring = new kbpgp_1.default.keyring.KeyRing();\n let resolvedIdentity;\n if (publicKey) {\n resolvedIdentity = await this.getIdentityFromPublicKey(publicKey);\n }\n else if (this.primaryIdentity) {\n resolvedIdentity = this.primaryIdentity;\n }\n else {\n throw Error('key pair is not loaded');\n }\n ring.add_key_manager(resolvedIdentity);\n if (this.useWebWorkers && this.workerPool) {\n const workerResponse = await this.workerPool.queue(async (workerCrypto) => {\n return await workerCrypto.verifyData(data, signature, resolvedIdentity);\n });\n return workerResponse;\n }\n else {\n const params = {\n armored: signature,\n data: data,\n keyfetch: ring,\n };\n const literals = await util_1.promisify(kbpgp_1.default.unbox)(params);\n // Get the identity that signed the data if any\n let dataSigner = literals[0].get_data_signer();\n // Retrieve the key manager associated with that data signer\n let keyManager;\n if (dataSigner) {\n keyManager = dataSigner.get_key_manager();\n }\n // If we know the pgp finger print then we say the data is verified.\n // Otherwise it is unverified.\n if (keyManager) {\n if (keyManager.get_pgp_fingerprint()) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n }\n }\n /**\n * Verifies the given file with the provided key or the primary key if none is specified\n * @param filePath Path to file containing the data to be verified\n * @param signaturePath The path to the file containing the PGP signature\n * @param publicKey Buffer containing the key to verify with. Defaults to primary public key if no key is given.\n */\n async verifyFile(filePath, signaturePath, publicKey) {\n // Get key if provided\n let keyBuffer;\n if (publicKey) {\n if (typeof publicKey === 'string') {\n // Path\n // Read in from fs\n keyBuffer = this.fileSystem.readFileSync(publicKey);\n }\n else {\n // Buffer\n keyBuffer = publicKey;\n }\n }\n // Read in file buffer and signature\n const fileBuffer = this.fileSystem.readFileSync(filePath);\n const signatureBuffer = this.fileSystem.readFileSync(signaturePath);\n const isVerified = await this.verifyData(fileBuffer, signatureBuffer, keyBuffer);\n return isVerified;\n }\n /**\n * Encrypts the given data for a specific public key\n * @param data The data to be encrypted\n * @param publicKey The key to encrypt for\n */\n async encryptData(data, publicKey) {\n let resolvedIdentity;\n if (publicKey) {\n resolvedIdentity = await this.getIdentityFromPublicKey(publicKey);\n }\n else if (this.primaryIdentity) {\n resolvedIdentity = this.primaryIdentity;\n }\n else {\n throw Error(`Identity could not be resolved for encrypting`);\n }\n if (this.useWebWorkers && this.workerPool) {\n const workerResponse = await this.workerPool.queue(async (workerCrypto) => {\n return await workerCrypto.encryptData(data, resolvedIdentity);\n });\n return workerResponse;\n }\n else {\n const params = {\n msg: data,\n encrypt_for: resolvedIdentity,\n };\n const result_string = await util_1.promisify(kbpgp_1.default.box)(params);\n return result_string;\n }\n }\n /**\n * Encrypts the given file for a specific public key\n * @param filePath Path to file containing the data to be encrypted\n * @param publicKey Buffer containing the key to verify with. Defaults to primary public key if no key is given.\n */\n async encryptFile(filePath, publicKey) {\n // Get key if provided\n let keyBuffer;\n if (publicKey) {\n if (typeof publicKey === 'string') {\n // Read in from fs\n keyBuffer = this.fileSystem.readFileSync(publicKey);\n }\n else {\n // Buffer\n keyBuffer = publicKey;\n }\n }\n // Read file into buffer\n const buffer = this.fileSystem.readFileSync(filePath);\n // Encrypt the buffer\n const encryptedBuffer = await this.encryptData(buffer, keyBuffer);\n // Write buffer to encrypted file\n this.fileSystem.writeFileSync(filePath, encryptedBuffer);\n return filePath;\n }\n /**\n * Decrypts the given data with the provided key or the primary key if none is given\n * @param data The data to be decrypted\n * @param privateKey The key to decrypt with. Defaults to primary private key if no key is given.\n * @param keyPassphrase Required if privateKey is provided.\n */\n async decryptData(data, privateKey, keyPassphrase) {\n var ring = new kbpgp_1.default.keyring.KeyRing();\n let resolvedIdentity;\n if (privateKey) {\n if (keyPassphrase) {\n resolvedIdentity = await this.getIdentityFromPrivateKey(privateKey, keyPassphrase);\n }\n else {\n throw Error('A key passphrase must be supplied if a privateKey is specified');\n }\n }\n else if (this.primaryIdentity) {\n resolvedIdentity = this.primaryIdentity;\n }\n else {\n throw Error('no identity available for decrypting');\n }\n if (this.useWebWorkers && this.workerPool) {\n const workerResponse = await this.workerPool.queue(async (workerCrypto) => {\n return await workerCrypto.decryptData(data, resolvedIdentity);\n });\n return workerResponse;\n }\n else {\n ring.add_key_manager(resolvedIdentity);\n const params = {\n armored: data.toString(),\n keyfetch: ring,\n };\n const literals = await util_1.promisify(kbpgp_1.default.unbox)(params);\n const decryptedData = Buffer.from(literals[0].toString());\n return decryptedData;\n }\n }\n /**\n * Decrypts the given file with the provided key or the primary key if none is given\n * @param filePath Path to file containing the data to be decrypted\n * @param privateKey The key to decrypt with. Defaults to primary private key if no key is given.\n * @param keyPassphrase Required if privateKey is provided.\n */\n async decryptFile(filePath, privateKey, keyPassphrase) {\n // Get key if provided\n let keyBuffer;\n if (privateKey) {\n if (typeof privateKey === 'string') {\n // Read in from fs\n keyBuffer = this.fileSystem.readFileSync(privateKey);\n }\n else {\n // Buffer\n keyBuffer = privateKey;\n }\n }\n // Read in file buffer\n const fileBuffer = this.fileSystem.readFileSync(filePath);\n // Decrypt file buffer\n const decryptedData = await this.decryptData(fileBuffer, keyBuffer, keyPassphrase);\n // Write buffer to decrypted file\n this.fileSystem.writeFileSync(filePath, decryptedData);\n return filePath;\n }\n /////////\n // PKI //\n /////////\n get PKIInfo() {\n return this.pkiInfo;\n }\n loadPKIInfo(key, cert, caCert, writeToFile = false) {\n if (key) {\n this.pkiInfo.key = key;\n }\n if (cert) {\n this.pkiInfo.cert = cert;\n }\n if (caCert) {\n this.pkiInfo.caCert = caCert;\n }\n if (writeToFile) {\n // Store in the metadata path folder\n const storagePath = path_1.default.dirname(this.metadataPath);\n if (key) {\n this.metadata.pkiKeyPath = path_1.default.join(storagePath, 'pki_private_key');\n fs_1.default.writeFileSync(this.metadata.pkiKeyPath, key);\n }\n if (cert) {\n this.metadata.pkiCertPath = path_1.default.join(storagePath, 'pki_cert');\n fs_1.default.writeFileSync(this.metadata.pkiCertPath, cert);\n }\n if (caCert) {\n this.metadata.caCertPath = path_1.default.join(storagePath, 'ca_cert');\n fs_1.default.writeFileSync(this.metadata.caCertPath, caCert);\n }\n }\n }\n /* ============ HELPERS =============== */\n /**\n * Get the key for a given name\n * @param name The unique name of the desired key\n */\n getKey(name) {\n return this.derivedKeys[name];\n }\n /**\n * Determines if the Key Manager has a certain key\n * @param name The unique name of the desired key\n */\n hasKey(name) {\n if (this.derivedKeys[name]) {\n return true;\n }\n return false;\n }\n async writeMetadata() {\n const metadata = JSON.stringify(this.metadata);\n this.fileSystem.writeFileSync(this.metadataPath, metadata);\n // Store the keys if identity is loaded\n if (this.identityLoaded) {\n const derivedKeys = JSON.stringify(this.derivedKeys);\n const encryptedMetadata = await this.encryptData(Buffer.from(derivedKeys));\n await this.fileSystem.promises.writeFile(this.derivedKeysPath, encryptedMetadata);\n }\n }\n async loadMetadata() {\n // Check if file exists\n if (this.fileSystem.existsSync(this.metadataPath)) {\n const metadata = this.fileSystem.readFileSync(this.metadataPath).toString();\n this.metadata = JSON.parse(metadata);\n if (this.identityLoaded) {\n const encryptedMetadata = this.fileSystem.readFileSync(this.derivedKeysPath);\n const metadata = (await this.decryptData(encryptedMetadata)).toString();\n const derivedKeys = JSON.parse(metadata);\n for (const key of Object.keys(derivedKeys)) {\n this.derivedKeys[key] = Buffer.from(derivedKeys[key]);\n }\n }\n }\n }\n}\nexports.default = KeyManager;\n","module.exports = require(\"kbpgp\");","module.exports = require(\"util\");","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst os_1 = __importDefault(require(\"os\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst grpc = __importStar(require(\"@grpc/grpc-js\"));\nconst GitClient_1 = __importDefault(require(\"../git/GitClient\"));\nconst GitBackend_1 = __importDefault(require(\"../git/GitBackend\"));\nconst Peer_1 = require(\"../../../proto/js/Peer\");\nconst utils_1 = require(\"../utils\");\nconst PeerInfo_1 = __importStar(require(\"../peers/PeerInfo\"));\nconst MulticastBroadcaster_1 = __importDefault(require(\"../peers/MulticastBroadcaster\"));\nconst Git_grpc_pb_1 = require(\"../../../proto/compiled/Git_grpc_pb\");\nconst Git_pb_1 = require(\"../../../proto/compiled/Git_pb\");\nconst keybaseDiscovery = {\n name: 'Keybase',\n findUser: async (handle, service) => {\n const url = `https://keybase.io/_/api/1.0/user/lookup.json?${service}=${handle}`;\n try {\n const response = await fetch(url);\n const data = await response.json();\n const pubKey = data.them[0].public_keys.primary.bundle;\n return pubKey;\n }\n catch (err) {\n throw Error(`User was not found: ${err.message}`);\n }\n },\n};\nclass PeerManager {\n constructor(polykeyPath = `${os_1.default.homedir()}/.polykey`, fileSystem, keyManager, vaultManager, peerInfo, socialDiscoveryServices = []) {\n var _a;\n this.metadata = { localPeerInfo: null };\n this.serverStarted = false;\n this.fileSystem = fileSystem;\n this.fileSystem.mkdirSync(polykeyPath, { recursive: true });\n this.metadataPath = path_1.default.join(polykeyPath, '.peerMetadata');\n // Set given variables\n this.keyManager = keyManager;\n this.socialDiscoveryServices = socialDiscoveryServices;\n // Load metadata with peer info\n this.loadMetadata();\n // Load peer store and local peer info\n if (peerInfo) {\n this.localPeerInfo = peerInfo;\n this.writeMetadata();\n }\n else if (this.metadata.localPeerInfo) {\n this.localPeerInfo = this.metadata.localPeerInfo;\n }\n else if (this.keyManager.hasPublicKey()) {\n this.localPeerInfo = new PeerInfo_1.default(this.keyManager.getPublicKey());\n }\n this.peerStore = new Map();\n this.socialDiscoveryServices = [];\n this.socialDiscoveryServices.push(keybaseDiscovery);\n for (const service of socialDiscoveryServices) {\n this.socialDiscoveryServices.push(service);\n }\n this.multicastBroadcaster = new MulticastBroadcaster_1.default(this.addPeer, this.localPeerInfo, this.keyManager);\n this.peerConnections = new Map();\n /////////////////\n // GRPC Server //\n /////////////////\n this.gitBackend = new GitBackend_1.default(polykeyPath, vaultManager);\n this.server = new grpc.Server();\n // Add service\n this.server.addService(Git_grpc_pb_1.GitServerService, {\n requestInfo: this.requestInfo.bind(this),\n requestPack: this.requestPack.bind(this),\n });\n // Create the server credentials. SSL only if ca cert exists\n const pkiInfo = this.keyManager.PKIInfo;\n if (pkiInfo.caCert && pkiInfo.cert && pkiInfo.key) {\n this.credentials = grpc.ServerCredentials.createSsl(pkiInfo.caCert, [\n {\n private_key: pkiInfo.key,\n cert_chain: pkiInfo.cert,\n },\n ], true);\n }\n else {\n this.credentials = grpc.ServerCredentials.createInsecure();\n }\n this.server.bindAsync(`0.0.0.0:${(_a = process.env.PK_PORT) !== null && _a !== void 0 ? _a : 0}`, this.credentials, (err, boundPort) => {\n if (err) {\n throw err;\n }\n else {\n const address = new PeerInfo_1.Address('localhost', boundPort.toString());\n this.server.start();\n this.localPeerInfo.connect(address);\n this.serverStarted = true;\n }\n });\n }\n async requestInfo(call, callback) {\n const infoRequest = call.request;\n const vaultName = infoRequest.getVaultname();\n const infoReply = new Git_pb_1.InfoReply();\n infoReply.setVaultname(vaultName);\n infoReply.setBody(await this.gitBackend.handleInfoRequest(vaultName));\n callback(null, infoReply);\n }\n async requestPack(call, callback) {\n const packRequest = call.request;\n const vaultName = packRequest.getVaultname();\n const body = Buffer.from(packRequest.getBody_asB64(), 'base64');\n const reply = new Git_pb_1.PackReply();\n reply.setVaultname(vaultName);\n reply.setBody(await this.gitBackend.handlePackRequest(vaultName, body));\n callback(null, reply);\n }\n ////////////////\n // Peer store //\n ////////////////\n /**\n * Get the peer info of the current keynode\n */\n getLocalPeerInfo() {\n return this.localPeerInfo;\n }\n /**\n * Set the address of the active server\n * @param adress Address of active server\n */\n connectLocalPeerInfo(address) {\n this.localPeerInfo.connect(address);\n }\n /**\n * Add a peer's info to the peerStore\n * @param peerInfo Info of the peer to be added\n */\n addPeer(peerInfo) {\n this.peerStore.set(peerInfo.publicKey, peerInfo);\n }\n /**\n * Retrieves a peer for the given public key\n * @param publicKey Public key of the desired peer\n */\n getPeer(publicKey) {\n var _a;\n return (_a = this.peerStore.get(publicKey)) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Determines if the peerStore contains the desired peer\n * @param publicKey Public key of the desired peer\n */\n hasPeer(pubKey) {\n return this.peerStore.has(pubKey);\n }\n //////////////////////\n // Social discovery //\n //////////////////////\n /**\n * Finds an existing peer using multicast peer discovery\n * @param publicKey Public key of the desired peer\n */\n async findPubKey(publicKey) {\n return new Promise((resolve, reject) => {\n this.multicastBroadcaster.requestPeerContact(publicKey);\n this.multicastBroadcaster.on('found', (peerInfo) => {\n if (peerInfo.publicKey == publicKey) {\n resolve(peerInfo);\n }\n });\n this.multicastBroadcaster.on('timeout', (timedOutPubKey) => {\n if (timedOutPubKey == publicKey) {\n reject('The broadcaster stopped looking');\n }\n });\n });\n }\n /**\n * Finds an existing peer given a social service and handle\n * @param handle Username or handle of the user (e.g. @john-smith)\n * @param service Service on which to search for the user (e.g. github)\n */\n async findSocialUser(handle, service) {\n const tasks = [];\n for (const socialDiscovery of this.socialDiscoveryServices) {\n try {\n tasks.push(socialDiscovery.findUser(handle, service));\n }\n catch (error) {\n console.log(`Could not find user on this discovery service: ${socialDiscovery.name}`);\n }\n }\n const pubKeyOrFail = await utils_1.firstPromiseFulfilled(tasks);\n if (pubKeyOrFail.length > 1) {\n throw Error('Could not find public key from services');\n }\n const pubKeyFound = pubKeyOrFail[0];\n const peerInfo = await this.findPubKey(pubKeyFound);\n return peerInfo;\n }\n ///////////////////////\n // Peers Connections //\n ///////////////////////\n /**\n * Get a secure connection to the peer\n * @param peer Public key of an existing peer or address of new peer\n */\n connectToPeer(peer) {\n var _a;\n // Throw error if trying to connect to self\n if (peer == this.localPeerInfo.connectedAddr || peer == this.localPeerInfo.publicKey) {\n throw Error('Cannot connect to self');\n }\n let address;\n if (typeof peer == 'string') {\n const existingSocket = this.peerConnections.get(peer);\n if (existingSocket) {\n return existingSocket;\n }\n const peerAddress = (_a = this.getPeer(peer)) === null || _a === void 0 ? void 0 : _a.connectedAddr;\n if (peerAddress) {\n address = peerAddress;\n }\n else {\n throw Error('Peer does not exist in peer store');\n }\n }\n else {\n address = peer;\n }\n const conn = new GitClient_1.default(address, this.keyManager);\n if (typeof peer == 'string') {\n this.peerConnections.set(peer, conn);\n }\n return conn;\n }\n /* ============ HELPERS =============== */\n writeMetadata() {\n var _a;\n const peerInfo = this.localPeerInfo;\n const metadata = Peer_1.peer.PeerInfoMessage.encode({\n addresses: peerInfo.AdressStringList,\n connectedAddr: (_a = peerInfo.connectedAddr) === null || _a === void 0 ? void 0 : _a.toString(),\n pubKey: peerInfo.publicKey,\n }).finish();\n this.fileSystem.writeFileSync(this.metadataPath, metadata);\n }\n loadMetadata() {\n // Check if file exists\n if (this.fileSystem.existsSync(this.metadataPath)) {\n const metadata = this.fileSystem.readFileSync(this.metadataPath);\n const { addresses, connectedAddr, pubKey } = Peer_1.peer.PeerInfoMessage.decode(metadata);\n this.localPeerInfo = new PeerInfo_1.default(pubKey, addresses, connectedAddr);\n }\n }\n}\nexports.default = PeerManager;\n","\"use strict\";\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst grpc = __importStar(require(\"@grpc/grpc-js\"));\nconst Git_grpc_pb_1 = require(\"../../../proto/compiled/Git_grpc_pb\");\nconst Git_pb_1 = require(\"../../../proto/compiled/Git_pb\");\n/**\n * Responsible for converting HTTP messages from isomorphic-git into requests and sending them to a specific peer.\n */\nclass GitClient {\n constructor(address, keyManager) {\n const pkiInfo = keyManager.PKIInfo;\n if (pkiInfo.caCert && pkiInfo.cert && pkiInfo.key) {\n this.credentials = grpc.credentials.createSsl(pkiInfo.caCert, pkiInfo.key, pkiInfo.cert);\n }\n else {\n this.credentials = grpc.credentials.createInsecure();\n }\n this.client = new Git_grpc_pb_1.GitServerClient(address.toString(), this.credentials);\n }\n /**\n * The custom http request method to feed into isomorphic-git's [custom http object](https://isomorphic-git.org/docs/en/http)\n */\n async request({ url, method, headers, body, onProgress }) {\n // eslint-disable-next-line\n return new Promise(async (resolve, reject) => {\n const u = new URL(url);\n // Parse request\n if (method == 'GET') {\n // Info request\n const match = u.pathname.match(/\\/(.+)\\/info\\/refs$/);\n if (!match || /\\.\\./.test(match[1])) {\n reject(new Error('Error'));\n }\n const vaultName = match[1];\n const infoResponse = await this.requestInfo(vaultName);\n resolve({\n url: url,\n method: method,\n statusCode: 200,\n statusMessage: 'OK',\n body: this.iteratorFromData(infoResponse),\n headers: headers,\n });\n }\n else if (method == 'POST') {\n // Info request\n const match = u.pathname.match(/\\/(.+)\\/git-(.+)/);\n if (!match || /\\.\\./.test(match[1])) {\n reject(new Error('Error'));\n }\n const vaultName = match[1];\n const packResponse = await this.requestPack(vaultName, body[0]);\n resolve({\n url: url,\n method: method,\n statusCode: 200,\n statusMessage: 'OK',\n body: this.iteratorFromData(packResponse),\n headers: headers,\n });\n }\n else {\n reject(new Error('Method not supported'));\n }\n });\n }\n // ==== HELPER METHODS ==== //\n /**\n * Requests remote info from the connected peer for the named vault.\n * @param vaultName Name of the desired vault\n */\n async requestInfo(vaultName) {\n return new Promise((resolve, reject) => {\n const request = new Git_pb_1.InfoRequest();\n request.setVaultname(vaultName);\n this.client.requestInfo(request, function (err, response) {\n if (err) {\n reject(err);\n }\n else {\n resolve(Buffer.from(response.getBody_asB64(), 'base64'));\n }\n });\n });\n }\n /**\n * Requests a pack from the connected peer for the named vault.\n * @param vaultName Name of the desired vault\n */\n async requestPack(vaultName, body) {\n return new Promise((resolve, reject) => {\n const request = new Git_pb_1.PackRequest();\n request.setVaultname(vaultName);\n request.setBody(body);\n this.client.requestPack(request, function (err, response) {\n if (err) {\n reject(err);\n }\n else {\n resolve(Buffer.from(response.getBody_asB64(), 'base64'));\n }\n });\n });\n }\n /**\n * Converts a buffer into an iterator expected by isomorphic git.\n * @param data Data to be turned into an iterator\n */\n iteratorFromData(data) {\n let ended = false;\n return {\n next() {\n return new Promise((resolve, reject) => {\n if (ended) {\n return resolve({ done: true });\n }\n else {\n ended = true;\n resolve({ value: data, done: false });\n }\n });\n },\n };\n }\n}\nexports.default = GitClient;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path_1 = __importDefault(require(\"path\"));\nconst readable_stream_1 = require(\"readable-stream\");\nconst uploadPack_1 = __importDefault(require(\"./upload-pack/uploadPack\"));\nconst GitSideBand_1 = __importDefault(require(\"./side-band/GitSideBand\"));\nconst packObjects_1 = __importDefault(require(\"./pack-objects/packObjects\"));\n// Here is the protocol git outlines for sending pack files over http:\n// https://git-scm.com/docs/pack-protocol/2.17.0\n// https://github.com/git/git/blob/master/Documentation/technical/pack-protocol.txt\n// This should be consulted in developing our upload pack implementation\n// This git backend (as well as HttpDuplex class) is heavily inspired by node-git-server:\n// https://github.com/gabrielcsapo/node-git-server\n// We need someway to notify other agents about what vaults we have based on some type of authorisation because they don't explicitly know about them\nclass GitBackend {\n constructor(polykeyPath, vaultManager) {\n this.polykeyPath = polykeyPath;\n this.vaultManager = vaultManager;\n }\n /**\n * Find out whether vault exists.\n * @param vaultName Name of vault to check\n * @param publicKey Public key of peer trying to access vault\n */\n exists(vaultName, publicKey) {\n try {\n const vault = this.vaultManager.getVault(vaultName);\n if (vault) {\n return vault.peerCanAccess(publicKey);\n }\n return false;\n }\n catch (error) {\n return false;\n }\n }\n async handleInfoRequest(vaultName) {\n var _a;\n // Only handle upload-pack for now\n const service = 'upload-pack';\n const connectingPublicKey = '';\n const responseBuffers = [];\n if (!this.exists(vaultName, connectingPublicKey)) {\n throw Error(`vault does not exist: '${vaultName}'`);\n }\n else {\n responseBuffers.push(Buffer.from(this.createGitPacketLine('# service=git-' + service + '\\n')));\n responseBuffers.push(Buffer.from('0000'));\n const fileSystem = (_a = this.vaultManager.getVault(vaultName)) === null || _a === void 0 ? void 0 : _a.EncryptedFS;\n const buffers = await uploadPack_1.default(fileSystem, path_1.default.join(this.polykeyPath, vaultName), undefined, true);\n const buffersToWrite = buffers !== null && buffers !== void 0 ? buffers : [];\n responseBuffers.push(...buffersToWrite);\n }\n return Buffer.concat(responseBuffers);\n }\n async handlePackRequest(vaultName, body) {\n // eslint-disable-next-line\n return new Promise(async (resolve, reject) => {\n var _a;\n const responseBuffers = [];\n // Check if vault exists\n const connectingPublicKey = '';\n if (!this.exists(vaultName, connectingPublicKey)) {\n throw Error(`vault does not exist: '${vaultName}'`);\n }\n const fileSystem = (_a = this.vaultManager.getVault(vaultName)) === null || _a === void 0 ? void 0 : _a.EncryptedFS;\n if (fileSystem) {\n if (body.toString().slice(4, 8) == 'want') {\n const wantedObjectId = body.toString().slice(9, 49);\n const packResult = await packObjects_1.default(fileSystem, path_1.default.join(this.polykeyPath, vaultName), [wantedObjectId], undefined);\n // This the 'wait for more data' line as I understand it\n responseBuffers.push(Buffer.from('0008NAK\\n'));\n // This is to get the side band stuff working\n const readable = new readable_stream_1.PassThrough();\n const progressStream = new readable_stream_1.PassThrough();\n const sideBand = GitSideBand_1.default.mux('side-band-64', readable, packResult.packstream, progressStream, []);\n sideBand.on('data', (data) => {\n responseBuffers.push(data);\n });\n sideBand.on('end', () => {\n resolve(Buffer.concat(responseBuffers));\n });\n sideBand.on('error', (err) => {\n reject(err);\n });\n // Write progress to the client\n progressStream.write(Buffer.from('0014progress is at 50%\\n'));\n progressStream.end();\n }\n }\n });\n }\n // ============ Helper functions ============ //\n createGitPacketLine(line) {\n const hexPrefix = (4 + line.length).toString(16);\n return Array(4 - hexPrefix.length + 1).join('0') + hexPrefix + line;\n }\n}\nexports.default = GitBackend;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path_1 = __importDefault(require(\"path\"));\nconst GitPktLine_1 = __importDefault(require(\"./GitPktLine\"));\nconst GitRefManager_1 = __importDefault(require(\"./GitRefManager\"));\nasync function writeRefsAdResponse({ capabilities, refs, symrefs }) {\n const stream = [];\n // Compose capabilities string\n let syms = '';\n for (const [key, value] of Object.entries(symrefs)) {\n syms += `symref=${key}:${value} `;\n }\n let caps = `\\x00${[...capabilities].join(' ')} ${syms}agent=git/isomorphic-git@1.4.0`;\n // stream.write(GitPktLine.encode(`# service=${service}\\n`))\n // stream.write(GitPktLine.flush())\n // Note: In the edge case of a brand new repo, zero refs (and zero capabilities)\n // are returned.\n for (const [key, value] of Object.entries(refs)) {\n stream.push(GitPktLine_1.default.encode(`${value} ${key}${caps}\\n`));\n caps = '';\n }\n stream.push(GitPktLine_1.default.flush());\n return stream;\n}\nasync function uploadPack(fileSystem, dir, gitdir = path_1.default.join(dir, '.git'), advertiseRefs = false) {\n try {\n if (advertiseRefs) {\n // Send a refs advertisement\n const capabilities = ['side-band-64k'];\n let keys = await GitRefManager_1.default.listRefs(fileSystem, gitdir, 'refs');\n keys = keys.map((ref) => `refs/${ref}`);\n const refs = {};\n keys.unshift('HEAD'); // HEAD must be the first in the list\n for (const key of keys) {\n refs[key] = await GitRefManager_1.default.resolve(fileSystem, gitdir, key);\n }\n const symrefs = {};\n symrefs['HEAD'] = await GitRefManager_1.default.resolve(fileSystem, gitdir, 'HEAD', 2);\n return writeRefsAdResponse({\n capabilities,\n refs,\n symrefs,\n });\n }\n }\n catch (err) {\n err.caller = 'git.uploadPack';\n throw err;\n }\n}\nexports.default = uploadPack;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass GitPackedRefs {\n constructor(text) {\n this.refs = new Map();\n this.parsedConfig = [];\n if (text) {\n let key;\n this.parsedConfig = text\n .trim()\n .split('\\n')\n .map((line) => {\n if (/^\\s*#/.test(line)) {\n return { line: line, comment: true };\n }\n const i = line.indexOf(' ');\n if (line.startsWith('^')) {\n // This is a oid for the commit associated with the annotated tag immediately preceding this line.\n // Trim off the '^'\n const value = line.slice(1);\n // The tagname^{} syntax is based on the output of `git show-ref --tags -d`\n this.refs.set(key + '^{}', value);\n return { line: line, ref: key, peeled: value };\n }\n else {\n // This is an oid followed by the ref name\n const value = line.slice(0, i);\n key = line.slice(i + 1);\n this.refs.set(key, value);\n return { line: line, ref: key, oid: value };\n }\n });\n }\n return this;\n }\n static from(text) {\n return new GitPackedRefs(text);\n }\n}\nexports.default = GitPackedRefs;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\nIf 'side-band' or 'side-band-64k' capabilities have been specified by\nthe client, the server will send the packfile data multiplexed.\n\nEach packet starting with the packet-line length of the amount of data\nthat follows, followed by a single byte specifying the sideband the\nfollowing data is coming in on.\n\nIn 'side-band' mode, it will send up to 999 data bytes plus 1 control\ncode, for a total of up to 1000 bytes in a pkt-line. In 'side-band-64k'\nmode it will send up to 65519 data bytes plus 1 control code, for a\ntotal of up to 65520 bytes in a pkt-line.\n\nThe sideband byte will be a '1', '2' or a '3'. Sideband '1' will contain\npackfile data, sideband '2' will be used for progress information that the\nclient will generally print to stderr and sideband '3' is used for error\ninformation.\n\nIf no 'side-band' capability was specified, the server will stream the\nentire packfile without multiplexing.\n*/\nconst buffer_1 = require(\"buffer\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst GitPktLine_1 = __importDefault(require(\"../upload-pack/GitPktLine\"));\nfunction splitBuffer(buffer, maxBytes) {\n const result = [];\n let index = 0;\n while (index < buffer.length) {\n const buf = buffer.slice(index, index + maxBytes);\n result.push(buf);\n index += buf.length;\n }\n result.push(buffer.slice(index));\n return result;\n}\nclass GitSideBand {\n static demux(input) {\n let read = GitPktLine_1.default.streamReader(input);\n // And now for the ridiculous side-band or side-band-64k protocol\n let packetlines = new readable_stream_1.PassThrough();\n let packfile = new readable_stream_1.PassThrough();\n let progress = new readable_stream_1.PassThrough();\n // TODO: Use a proper through stream?\n const nextBit = async function () {\n let line = await read();\n // Skip over flush packets\n if (line === null)\n return nextBit();\n // A made up convention to signal there's no more to read.\n if (line === true) {\n packetlines.end();\n progress.end();\n packfile.end();\n return;\n }\n // Examine first byte to determine which output \"stream\" to use\n switch (line[0]) {\n case 1: // pack data\n packfile.write(line.slice(1));\n break;\n case 2: // progress message\n progress.write(line.slice(1));\n break;\n case 3: // fatal error message just before stream aborts\n // eslint-disable-next-line\n const error = line.slice(1);\n progress.write(error);\n packfile.destroy(new Error(error.toString('utf8')));\n return;\n default:\n // Not part of the side-band-64k protocol\n packetlines.write(line.slice(0));\n }\n // Careful not to blow up the stack.\n // I think Promises in a tail-call position should be OK.\n nextBit();\n };\n nextBit();\n return {\n packetlines,\n packfile,\n progress,\n };\n }\n static mux(protocol, // 'side-band' or 'side-band-64k'\n packetlines, packfile, progress, error) {\n const MAX_PACKET_LENGTH = protocol === 'side-band-64k' ? 999 : 65519;\n let output = new readable_stream_1.PassThrough();\n packetlines.on('data', (data) => {\n if (data === null) {\n output.write(GitPktLine_1.default.flush());\n }\n else {\n output.write(GitPktLine_1.default.encode(data));\n }\n });\n let packfileWasEmpty = true;\n let packfileEnded = false;\n let progressEnded = false;\n let errorEnded = true;\n let goodbye = buffer_1.Buffer.concat([GitPktLine_1.default.encode(buffer_1.Buffer.from('010A', 'hex')), GitPktLine_1.default.flush()]);\n packfile\n .on('data', (data) => {\n packfileWasEmpty = false;\n const buffers = splitBuffer(data, MAX_PACKET_LENGTH);\n for (const buffer of buffers) {\n output.write(GitPktLine_1.default.encode(buffer_1.Buffer.concat([buffer_1.Buffer.from('01', 'hex'), buffer])));\n }\n })\n .on('end', () => {\n packfileEnded = true;\n if (!packfileWasEmpty)\n output.write(goodbye);\n if (progressEnded && errorEnded)\n output.end();\n });\n progress\n .on('data', (data) => {\n const buffers = splitBuffer(data, MAX_PACKET_LENGTH);\n for (const buffer of buffers) {\n output.write(GitPktLine_1.default.encode(buffer_1.Buffer.concat([buffer_1.Buffer.from('02', 'hex'), buffer])));\n }\n })\n .on('end', () => {\n progressEnded = true;\n if (packfileEnded && errorEnded)\n output.end();\n });\n // error\n // .on('data', data => {\n // const buffers = splitBuffer(data, MAX_PACKET_LENGTH)\n // for (const buffer of buffers) {\n // output.write(\n // GitPktLine.encode(Buffer.concat([Buffer.from('03', 'hex'), buffer]))\n // )\n // }\n // })\n // .on('end', () => {\n // errorEnded = true\n // if (progressEnded && packfileEnded) output.end()\n // })\n return output;\n }\n}\nexports.default = GitSideBand;\n","module.exports = require(\"buffer\");","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst pako_1 = __importDefault(require(\"pako\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst log_1 = __importDefault(require(\"./log\"));\nconst GitTree_1 = __importDefault(require(\"./GitTree\"));\nconst sha_js_1 = __importDefault(require(\"sha.js\"));\nconst GitCommit_1 = __importDefault(require(\"./GitCommit\"));\nconst readable_stream_1 = require(\"readable-stream\");\nconst GitObjectManager_1 = __importDefault(require(\"./GitObjectManager\"));\nconst types = {\n commit: 0b0010000,\n tree: 0b0100000,\n blob: 0b0110000,\n tag: 0b1000000,\n ofs_delta: 0b1100000,\n ref_delta: 0b1110000,\n};\n/**\n * Create a packfile stream\n *\n * @link https://isomorphic-git.github.io/docs/packObjects.html\n */\nasync function packObjects(fileSystem, dir, refs, depth, haves) {\n const gitdir = path_1.default.join(dir, '.git');\n let oids = new Set();\n let shallows = new Set();\n let unshallows = new Set();\n let acks = [];\n haves = haves ? haves : [];\n const emitter = undefined;\n const since = undefined;\n for (const ref of refs) {\n try {\n let commits = await log_1.default(fileSystem, dir, gitdir, emitter, ref, depth, since);\n let oldshallows = [];\n for (let i = 0; i < commits.length; i++) {\n let commit = commits[i];\n if (haves.includes(commit.oid)) {\n acks.push({\n oid: ref,\n });\n break;\n }\n oids.add(commit.oid);\n if (i === commits.length - 1) {\n if (!oldshallows.includes(commit.oid) && (depth !== undefined || since !== undefined)) {\n console.log('make it shallow', commit.oid);\n shallows.add(commit.oid);\n }\n }\n else if (oldshallows.includes(commit.oid)) {\n console.log('make it unshallow', commit.oid);\n unshallows.add(commit.oid);\n }\n }\n }\n catch (err) {\n console.log(err);\n // oh well.\n }\n }\n let objects = await listObjects(fileSystem, dir, gitdir, Array.from(oids));\n let packstream = new readable_stream_1.PassThrough();\n pack(fileSystem, dir, undefined, [...objects], packstream);\n return { packstream, shallows, unshallows, acks };\n}\nasync function listObjects(fileSystem, dir, gitdir = path_1.default.join(dir, '.git'), oids) {\n let commits = new Set();\n let trees = new Set();\n let blobs = new Set();\n // We don't do the purest simplest recursion, because we can\n // avoid reading Blob objects entirely since the Tree objects\n // tell us which oids are Blobs and which are Trees. And we\n // do not need to recurse through commit parents.\n async function walk(oid) {\n let { type, object } = await GitObjectManager_1.default.read(fileSystem, gitdir, oid);\n if (type === 'commit') {\n commits.add(oid);\n let commit = GitCommit_1.default.from(object);\n let tree = commit.headers().tree;\n await walk(tree);\n }\n else if (type === 'tree') {\n trees.add(oid);\n let tree = GitTree_1.default.from(object);\n for (let entry of tree) {\n if (entry.type === 'blob') {\n blobs.add(entry.oid);\n }\n // only recurse for trees\n if (entry.type === 'tree') {\n await walk(entry.oid);\n }\n }\n }\n }\n // Let's go walking!\n for (let oid of oids) {\n await walk(oid);\n }\n return [...commits, ...trees, ...blobs];\n}\nexports.listObjects = listObjects;\nasync function pack(fileSystem, dir, gitdir = path_1.default.join(dir, '.git'), oids, outputStream) {\n let hash = sha_js_1.default('sha1');\n function write(chunk, enc = undefined) {\n if (enc) {\n outputStream.write(chunk, enc);\n }\n else {\n outputStream.write(chunk);\n }\n hash.update(chunk, enc);\n }\n function writeObject(object, stype) {\n let lastFour;\n let multibyte;\n let length;\n // Object type is encoded in bits 654\n let type = types[stype];\n if (type === undefined)\n throw Error('Unrecognized type: ' + stype);\n // The length encoding get complicated.\n length = object.length;\n // Whether the next byte is part of the variable-length encoded number\n // is encoded in bit 7\n multibyte = length > 0b1111 ? 0b10000000 : 0b0;\n // Last four bits of length is encoded in bits 3210\n lastFour = length & 0b1111;\n // Discard those bits\n length = length >>> 4;\n // The first byte is then (1-bit multibyte?), (3-bit type), (4-bit least sig 4-bits of length)\n let byte = (multibyte | type | lastFour).toString(16);\n write(byte, 'hex');\n // Now we keep chopping away at length 7-bits at a time until its zero,\n // writing out the bytes in what amounts to little-endian order.\n while (multibyte) {\n multibyte = length > 0b01111111 ? 0b10000000 : 0b0;\n byte = multibyte | (length & 0b01111111);\n const unpaddedChunk = byte.toString(16);\n const paddedChunk = '0'.repeat(2 - unpaddedChunk.length) + unpaddedChunk;\n write(paddedChunk, 'hex');\n length = length >>> 7;\n }\n // Lastly, we can compress and write the object.\n write(Buffer.from(pako_1.default.deflate(object)));\n }\n write('PACK');\n write('00000002', 'hex');\n // Write a 4 byte (32-bit) int\n const unpaddedChunk = oids.length.toString(16);\n const paddedChunk = '0'.repeat(8 - unpaddedChunk.length) + unpaddedChunk;\n write(paddedChunk, 'hex');\n for (let oid of oids) {\n let { type, object } = await GitObjectManager_1.default.read(fileSystem, gitdir, oid);\n writeObject(object, type);\n }\n // Write SHA1 checksum\n let digest = hash.digest();\n outputStream.end(digest);\n return outputStream;\n}\nexports.pack = pack;\nexports.default = packObjects;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst GitCommit_1 = __importDefault(require(\"./GitCommit\"));\nconst GitObjectManager_1 = __importDefault(require(\"./GitObjectManager\"));\nconst GitRefManager_1 = __importDefault(require(\"../upload-pack/GitRefManager\"));\nasync function logCommit(fileSystem, gitdir, oid, signing) {\n try {\n let { type, object } = await GitObjectManager_1.default.read(fileSystem, gitdir, oid);\n if (type !== 'commit') {\n throw new Error('expected type to be commit');\n }\n const commit = GitCommit_1.default.from(object);\n const result = Object.assign({ oid }, commit.parse());\n if (signing) {\n result.payload = commit.withoutSignature();\n }\n return result;\n }\n catch (err) {\n return {\n oid,\n error: err,\n };\n }\n}\nexports.logCommit = logCommit;\nfunction compareAge(a, b) {\n return a.committer.timestamp - b.committer.timestamp;\n}\n/**\n * Get commit descriptions from the git history\n *\n * @link https://isomorphic-git.github.io/docs/log.html\n */\nasync function log(fileSystem, dir, gitdir = path.join(dir, '.git'), ref = 'HEAD', depth, since, // Date\nsigning = false) {\n try {\n let sinceTimestamp = since === undefined ? undefined : Math.floor(since.valueOf() / 1000);\n // TODO: In the future, we may want to have an API where we return a\n // async iterator that emits commits.\n let commits = [];\n let oid = await GitRefManager_1.default.resolve(fileSystem, gitdir, ref);\n let tips = [await logCommit(fileSystem, gitdir, oid, signing)];\n // eslint-disable-next-line\n while (true) {\n let commit = tips.pop();\n // Stop the loop if we encounter an error\n if (commit.error) {\n commits.push(commit);\n break;\n }\n // Stop the log if we've hit the age limit\n if (sinceTimestamp !== undefined && commit.committer.timestamp <= sinceTimestamp) {\n break;\n }\n commits.push(commit);\n // Stop the loop if we have enough commits now.\n if (depth !== undefined && commits.length === depth)\n break;\n // Add the parents of this commit to the queue\n // Note: for the case of a commit with no parents, it will concat an empty array, having no net effect.\n for (const oid of commit.parent) {\n let commit = await logCommit(fileSystem, gitdir, oid, signing);\n if (!tips.map((commit) => commit.oid).includes(commit.oid)) {\n tips.push(commit);\n }\n }\n // Stop the loop if there are no more commit parents\n if (tips.length === 0)\n break;\n // Process tips in order by age\n tips.sort(compareAge);\n }\n return commits;\n }\n catch (err) {\n err.caller = 'git.log';\n throw err;\n }\n}\nexports.default = log;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst shasum_1 = __importDefault(require(\"./shasum\"));\nclass GitObject {\n static hash({ type, object }) {\n let buffer = Buffer.concat([Buffer.from(`${type} ${object.byteLength.toString()}\\0`), Buffer.from(object)]);\n let oid = shasum_1.default(buffer);\n return oid;\n }\n static wrap({ type, object }) {\n let buffer = Buffer.concat([Buffer.from(`${type} ${object.byteLength.toString()}\\0`), object]);\n let oid = shasum_1.default(buffer);\n return {\n oid,\n buffer,\n };\n }\n static unwrap({ oid, buffer }) {\n if (oid) {\n let sha = shasum_1.default(buffer);\n if (sha !== oid) {\n throw new Error(`SHA check failed! Expected ${oid}, computed ${sha}`);\n }\n }\n let s = buffer.indexOf(32); // first space\n let i = buffer.indexOf(0); // first null value\n let type = buffer.slice(0, s).toString('utf8'); // get type of object\n let length = buffer.slice(s + 1, i).toString('utf8'); // get type of object\n let actualLength = buffer.length - (i + 1);\n // verify length\n if (parseInt(length) !== actualLength) {\n throw new Error(`Length mismatch: expected ${length} bytes but got ${actualLength} instead.`);\n }\n return {\n type,\n object: Buffer.from(buffer.slice(i + 1)),\n };\n }\n}\nexports.default = GitObject;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sha1_1 = __importDefault(require(\"sha.js/sha1\"));\n// This is modeled after @dominictarr's \"shasum\" module,\n// but without the 'json-stable-stringify' dependency and\n// extra type-casting features.\nfunction shasum(buffer) {\n return new sha1_1.default().update(buffer).digest('hex');\n}\nexports.default = shasum;\n","module.exports = require(\"sha.js/sha1\");","\"use strict\";\n/*::\ntype TreeEntry = {\n mode: string,\n path: string,\n oid: string,\n type?: string\n}\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction parseBuffer(buffer) {\n let _entries = [];\n let cursor = 0;\n while (cursor < buffer.length) {\n let space = buffer.indexOf(32, cursor);\n if (space === -1) {\n throw new Error(`GitTree: Error parsing buffer at byte location ${cursor}: Could not find the next space character.`);\n }\n let nullchar = buffer.indexOf(0, cursor);\n if (nullchar === -1) {\n throw new Error(`GitTree: Error parsing buffer at byte location ${cursor}: Could not find the next null character.`);\n }\n let mode = buffer.slice(cursor, space).toString('utf8');\n if (mode === '40000')\n mode = '040000'; // makes it line up neater in printed output\n let type = mode === '040000' ? 'tree' : 'blob';\n let path = buffer.slice(space + 1, nullchar).toString('utf8');\n let oid = buffer.slice(nullchar + 1, nullchar + 21).toString('hex');\n cursor = nullchar + 21;\n _entries.push({ mode, path, oid, type });\n }\n return _entries;\n}\nfunction limitModeToAllowed(mode) {\n if (typeof mode === 'number') {\n mode = mode.toString(8);\n }\n // tree\n if (mode.match(/^0?4.*/))\n return '40000'; // Directory\n if (mode.match(/^1006.*/))\n return '100644'; // Regular non-executable file\n if (mode.match(/^1007.*/))\n return '100755'; // Regular executable file\n if (mode.match(/^120.*/))\n return '120000'; // Symbolic link\n if (mode.match(/^160.*/))\n return '160000'; // Commit (git submodule reference)\n throw new Error(`Could not understand file mode: ${mode}`);\n}\nfunction nudgeIntoShape(entry) {\n if (!entry.oid && entry.sha) {\n entry.oid = entry.sha; // Github\n }\n entry.mode = limitModeToAllowed(entry.mode); // index\n if (!entry.type) {\n entry.type = 'blob'; // index\n }\n return entry;\n}\nclass GitTree {\n constructor(entries) {\n if (Buffer.isBuffer(entries)) {\n this._entries = parseBuffer(entries);\n }\n else if (Array.isArray(entries)) {\n this._entries = entries.map(nudgeIntoShape);\n }\n else {\n throw new Error('invalid type passed to GitTree constructor');\n }\n }\n static from(tree) {\n return new GitTree(tree);\n }\n render() {\n return this._entries.map((entry) => `${entry.mode} ${entry.type} ${entry.oid} ${entry.path}`).join('\\n');\n }\n toObject() {\n return Buffer.concat(this._entries.map((entry) => {\n let mode = Buffer.from(entry.mode.replace(/^0/, ''));\n let space = Buffer.from(' ');\n let path = Buffer.from(entry.path);\n // let path = Buffer.from(entry.path, { encoding: 'utf8' })\n let nullchar = Buffer.from([0]);\n let oid = Buffer.from(entry.oid.match(/../g).map((n) => parseInt(n, 16)));\n return Buffer.concat([mode, space, path, nullchar, oid]);\n }));\n }\n entries() {\n return this._entries;\n }\n *[Symbol.iterator]() {\n for (let entry of this._entries) {\n yield entry;\n }\n }\n}\nexports.default = GitTree;\n","module.exports = require(\"sha.js\");","module.exports = require(\"../../proto/js/Peer\");","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Returns a 5 character long random string of lower case letters\n */\nfunction randomString() {\n return Math.random()\n .toString(36)\n .replace(/[^a-z]+/g, '')\n .substr(0, 5);\n}\nexports.randomString = randomString;\n/**\n * Inverts the provided promise\n * @param p Promise to invert\n */\nfunction invertPromise(p) {\n return new Promise((res, rej) => p.then(rej, res));\n}\n/**\n * Gets the first promise fulfiled\n * @param ps List of promises\n */\nfunction firstPromiseFulfilled(ps) {\n return invertPromise(Promise.all(ps.map(invertPromise)));\n}\nexports.firstPromiseFulfilled = firstPromiseFulfilled;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dgram_1 = __importDefault(require(\"dgram\"));\nconst crypto_1 = __importDefault(require(\"crypto\"));\nconst PeerInfo_1 = __importDefault(require(\"./PeerInfo\"));\nconst events_1 = require(\"events\");\nconst Peer_js_1 = require(\"../../../proto/js/Peer.js\");\nconst { HandshakeMessage, PeerInfoMessage } = Peer_js_1.peer;\n// This module is based heavily on libp2p's mDNS module:\n// https://github.com/libp2p/js-libp2p-mdns\n// It is supposed to discover peers on the local network\n// This module was also generated with the help of:\n// https://nrempel.com/using-udp-multicast-with-node-js/\n//\n// \"\"\"\n// In computer networking, the multicast DNS (mDNS) protocol\n// resolves hostnames to IP addresses within small networks\n// that do not include a local name server\n// \"\"\"\nconst UDP_MULTICAST_PORT = parseInt((_a = process.env.UDP_MULTICAST_PORT) !== null && _a !== void 0 ? _a : '5353');\nconst UDP_MULTICAST_ADDR = (_b = process.env.UDP_MULTICAST_ADDR) !== null && _b !== void 0 ? _b : '224.0.0.251';\nclass MulticastBroadcaster extends events_1.EventEmitter {\n constructor(addPeer, localPeerInfo, keyManager) {\n super();\n this.peerPubKeyMessages = new Map();\n this.addPeer = addPeer;\n this.localPeerInfo = localPeerInfo;\n this.keyManager = keyManager;\n this.interval = 1e3;\n this.queryInterval = null;\n // Create socket\n this.socket = dgram_1.default.createSocket({ type: 'udp4', reuseAddr: true });\n this.socket.bind(UDP_MULTICAST_PORT);\n // Set up listener\n this.socket.on('listening', (() => {\n this.socket.addMembership(UDP_MULTICAST_ADDR);\n const address = this.socket.address();\n }).bind(this));\n // Handle messages\n this.socket.on('message', this.handleHandshakeMessages.bind(this));\n // Start the query process\n this.queryInterval = this.queryLAN();\n }\n /**\n * Request a peer contact for the multicast peer discovery to check for\n * @param publicKey Public key of the desired peer\n */\n async requestPeerContact(publicKey) {\n const pubKeyBuf = Buffer.from(publicKey);\n const randomMessage = crypto_1.default.randomBytes(16);\n // Encrypt message\n const encryptedPeerPubKey = await this.keyManager.encryptData(pubKeyBuf, pubKeyBuf);\n const encryptedRandomMessage = await this.keyManager.encryptData(randomMessage, pubKeyBuf);\n const encryptedLocalPubKey = await this.keyManager.encryptData(Buffer.from(this.keyManager.getPublicKey()), pubKeyBuf);\n // Add to peer messages to be sent over multicast\n this.peerPubKeyMessages.set(publicKey, {\n encryptedLocalPubKey: Buffer.from(encryptedLocalPubKey),\n encryptedPeerPubKey: Buffer.from(encryptedPeerPubKey),\n rawRandomMessage: randomMessage,\n encryptedRandomMessage: Buffer.from(encryptedRandomMessage),\n });\n }\n // ==== Helper methods ==== //\n queryLAN() {\n const query = () => {\n for (const pubKey of this.peerPubKeyMessages.keys()) {\n const peerMessage = this.peerPubKeyMessages.get(pubKey);\n if (peerMessage) {\n const handshakeMessage = HandshakeMessage.encode({\n targetPubKey: peerMessage.encryptedPeerPubKey,\n requestingPubKey: peerMessage.encryptedLocalPubKey,\n message: peerMessage.encryptedRandomMessage,\n }).finish();\n this.socket.send(handshakeMessage, 0, handshakeMessage.length, UDP_MULTICAST_PORT, UDP_MULTICAST_ADDR);\n }\n }\n };\n // Immediately start a query, then do it every interval.\n query();\n return setInterval(query, this.interval);\n }\n async handleHandshakeMessages(request, rinfo) {\n var _a, _b;\n try {\n const { message, requestingPubKey, responsePeerInfo, targetPubKey } = HandshakeMessage.decode(request);\n // Try to decrypt message and pubKey\n const decryptedMessage = await this.keyManager.decryptData(Buffer.from(message));\n const decryptedTargetPubKey = await this.keyManager.decryptData(Buffer.from(targetPubKey));\n const decryptedRequestingPubKey = await this.keyManager.decryptData(Buffer.from(requestingPubKey));\n const myPubKey = this.keyManager.getPublicKey();\n if (decryptedRequestingPubKey.toString() == myPubKey) {\n // Response\n // Make sure decrypted bytes equal raw bytes in memory\n const originalMessage = (_a = this.peerPubKeyMessages.get(decryptedTargetPubKey.toString())) === null || _a === void 0 ? void 0 : _a.rawRandomMessage;\n if (decryptedMessage.toString() == (originalMessage === null || originalMessage === void 0 ? void 0 : originalMessage.toString())) {\n // Validated!\n // Add peer info to peerStore\n const { addresses, connectedAddr, pubKey } = PeerInfoMessage.decode(responsePeerInfo);\n const newPeerInfo = new PeerInfo_1.default(pubKey, addresses, connectedAddr);\n if (newPeerInfo) {\n this.addPeer(newPeerInfo);\n // Remove peerId from requested messages\n const pubKey = newPeerInfo.publicKey;\n this.peerPubKeyMessages.delete(pubKey);\n console.log(`New peer added to the store`);\n this.emit('found', newPeerInfo);\n }\n else {\n this.emit('error', 'I got a validated response. But no peerInfo');\n }\n }\n }\n else {\n // Requests on target node\n // Try decrypting message\n // Re-encrypt the data and send it on its way\n const encryptedTargetPubKey = await this.keyManager.encryptData(Buffer.from(myPubKey), decryptedRequestingPubKey);\n const encryptedMessage = await this.keyManager.encryptData(decryptedMessage, decryptedRequestingPubKey);\n const encryptedPubKey = await this.keyManager.encryptData(decryptedRequestingPubKey, decryptedRequestingPubKey);\n const encodedLocalPeerInfo = PeerInfoMessage.encode({\n addresses: this.localPeerInfo.AdressStringList,\n connectedAddr: (_b = this.localPeerInfo.connectedAddr) === null || _b === void 0 ? void 0 : _b.toString(),\n pubKey: this.localPeerInfo.publicKey,\n }).finish();\n const handshakeMessage = HandshakeMessage.encode({\n targetPubKey: Buffer.from(encryptedTargetPubKey),\n requestingPubKey: Buffer.from(encryptedPubKey),\n message: Buffer.from(encryptedMessage),\n responsePeerInfo: encodedLocalPeerInfo,\n }).finish();\n this.socket.send(handshakeMessage, 0, handshakeMessage.length, UDP_MULTICAST_PORT, UDP_MULTICAST_ADDR);\n }\n }\n catch (err) {\n // Couldn't decode message\n // We don't want the multicast discovery to error on every message it coudln't decode!\n }\n }\n}\nexports.default = MulticastBroadcaster;\n","module.exports = require(\"dgram\");","module.exports = require(\"events\");","module.exports = require(\"../../proto/js/Peer.js\");","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst os_1 = __importDefault(require(\"os\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst isomorphic_git_1 = __importDefault(require(\"isomorphic-git\"));\nconst Vault_1 = __importDefault(require(\"../vaults/Vault\"));\nconst encryptedfs_1 = require(\"encryptedfs\");\nclass VaultManager {\n constructor(polykeyPath = `${os_1.default.homedir()}/.polykey`, fileSystem, keyManager) {\n this.polykeyPath = polykeyPath;\n this.fileSystem = fileSystem;\n this.keyManager = keyManager;\n this.metadataPath = path_1.default.join(polykeyPath, '.vaultKeys');\n // Make polykeyPath if it doesn't exist\n this.fileSystem.mkdirSync(this.polykeyPath, { recursive: true });\n // Initialize stateful variables\n this.vaults = new Map();\n this.vaultKeys = new Map();\n // Read in vault keys\n this.loadMetadata();\n }\n /**\n * Get a vault from the vault manager\n * @param vaultName Name of desired vault\n */\n getVault(vaultName) {\n if (this.vaults.has(vaultName)) {\n const vault = this.vaults.get(vaultName);\n return vault;\n }\n else if (this.vaultKeys.has(vaultName)) {\n // vault not in map, create new instance\n this.validateVault(vaultName);\n const vaultKey = this.vaultKeys.get(vaultName);\n const vault = new Vault_1.default(vaultName, vaultKey, this.polykeyPath);\n this.vaults.set(vaultName, vault);\n return vault;\n }\n else {\n throw Error(`vault does not exist in memory: '${vaultName}'`);\n }\n }\n /**\n * Get a vault from the vault manager\n * @param vaultName Unique name of new vault\n * @param key Optional key to use for the vault encryption, otherwise it is generated\n */\n async createVault(vaultName, key) {\n if (this.vaultExists(vaultName)) {\n throw Error('Vault already exists!');\n }\n try {\n const path = path_1.default.join(this.polykeyPath, vaultName);\n // Directory not present, create one\n this.fileSystem.mkdirSync(path, { recursive: true });\n // Create key if not provided\n let vaultKey;\n if (!key) {\n // Generate new key\n vaultKey = await this.keyManager.generateKey(`${vaultName}-Key`, this.keyManager.getPrivateKey(), false);\n }\n else {\n // Assign key if it is provided\n vaultKey = key;\n }\n this.vaultKeys.set(vaultName, vaultKey);\n this.writeMetadata();\n // Create vault\n const vault = new Vault_1.default(vaultName, vaultKey, this.polykeyPath);\n // Init repository for vault\n const vaultPath = path_1.default.join(this.polykeyPath, vaultName);\n const efs = vault.EncryptedFS;\n const fileSystem = { promises: efs.promises };\n await isomorphic_git_1.default.init({\n fs: fileSystem,\n dir: vaultPath,\n });\n // Initial commit\n await isomorphic_git_1.default.commit({\n fs: fileSystem,\n dir: vaultPath,\n author: {\n name: vaultName,\n },\n message: 'init commit',\n });\n // Write packed-refs file because isomorphic git goes searching for it\n // and apparently its not autogenerated\n efs.writeFileSync(path_1.default.join(vaultPath, '.git', 'packed-refs'), '# pack-refs with: peeled fully-peeled sorted');\n // Set vault\n this.vaults.set(vaultName, vault);\n return this.getVault(vaultName);\n }\n catch (err) {\n // Delete vault dir and garbage collect\n this.destroyVault(vaultName);\n throw err;\n }\n }\n /**\n * Get a vault from the vault manager\n * @param vaultName Name of vault to be cloned\n * @param address Address of polykey node that owns vault to be cloned\n * @param getSocket Function to get an active connection to provided address\n */\n async cloneVault(vaultName, gitClient) {\n // Confirm it doesn't exist locally already\n if (this.vaultExists(vaultName)) {\n throw Error('Vault name already exists locally, try pulling instead');\n }\n const vaultUrl = `http://0.0.0.0/${vaultName}`;\n // First check if it exists on remote\n const info = await isomorphic_git_1.default.getRemoteInfo({\n http: gitClient,\n url: vaultUrl,\n });\n if (!info.refs) {\n throw Error(`Peer does not have vault: '${vaultName}'`);\n }\n // Create new efs first\n // Generate new key\n const vaultKey = await this.keyManager.generateKey(`${vaultName}-Key`, this.keyManager.getPrivateKey());\n // Set filesystem\n const vfsInstance = new (require('virtualfs').VirtualFS)();\n const newEfs = new encryptedfs_1.EncryptedFS(vaultKey, vfsInstance, vfsInstance, this.fileSystem, process);\n // Clone vault from address\n await isomorphic_git_1.default.clone({\n fs: { promises: newEfs.promises },\n http: gitClient,\n dir: path_1.default.join(this.polykeyPath, vaultName),\n url: vaultUrl,\n ref: 'master',\n singleBranch: true,\n });\n // Finally return the vault\n const vault = new Vault_1.default(vaultName, vaultKey, this.polykeyPath);\n this.vaults.set(vaultName, vault);\n return vault;\n }\n /**\n * Determines whether the vault exists\n * @param vaultName Name of desired vault\n */\n vaultExists(vaultName) {\n const path = path_1.default.join(this.polykeyPath, vaultName);\n const vaultExists = this.fileSystem.existsSync(path);\n return vaultExists;\n }\n /**\n * [WARNING] Destroys a certain vault and all its secrets\n * @param vaultName Name of vault to be destroyed\n */\n destroyVault(vaultName) {\n // this is convenience function for removing all tags\n // and triggering garbage collection\n // destruction is a better word as we should ensure all traces is removed\n const path = path_1.default.join(this.polykeyPath, vaultName);\n // Remove directory on file system\n if (this.fileSystem.existsSync(path)) {\n this.fileSystem.rmdirSync(path, { recursive: true });\n }\n // Remove from maps\n this.vaults.delete(vaultName);\n this.vaultKeys.delete(vaultName);\n // Write to metadata file\n this.writeMetadata();\n const vaultPathExists = this.fileSystem.existsSync(path);\n if (vaultPathExists) {\n throw Error('Vault folder could not be destroyed!');\n }\n }\n /**\n * List the names of all vaults in memory\n */\n listVaults() {\n return Array.from(this.vaults.keys());\n }\n /* ============ HELPERS =============== */\n validateVault(vaultName) {\n if (!this.vaults.has(vaultName)) {\n throw Error(`vault does not exist in memory: '${vaultName}'`);\n }\n if (!this.vaultKeys.has(vaultName)) {\n throw Error(`vault key does not exist in memory: '${vaultName}'`);\n }\n const vaultPath = path_1.default.join(this.polykeyPath, vaultName);\n if (!this.fileSystem.existsSync(vaultPath)) {\n throw Error(`vault directory does not exist: '${vaultPath}'`);\n }\n }\n async writeMetadata() {\n const metadata = JSON.stringify([...this.vaultKeys]);\n const encryptedMetadata = await this.keyManager.encryptData(Buffer.from(metadata));\n await this.fileSystem.promises.writeFile(this.metadataPath, encryptedMetadata);\n }\n async loadMetadata() {\n // Check if file exists\n if (this.fileSystem.existsSync(this.metadataPath) && this.keyManager.identityLoaded) {\n const encryptedMetadata = this.fileSystem.readFileSync(this.metadataPath);\n const metadata = (await this.keyManager.decryptData(encryptedMetadata)).toString();\n for (const [key, value] of new Map(JSON.parse(metadata))) {\n this.vaultKeys.set(key, Buffer.from(value));\n }\n // Initialize vaults in memory\n for (const [vaultName, vaultKey] of this.vaultKeys.entries()) {\n const path = path_1.default.join(this.polykeyPath, vaultName);\n if (this.fileSystem.existsSync(path)) {\n const vault = new Vault_1.default(vaultName, vaultKey, this.polykeyPath);\n this.vaults.set(vaultName, vault);\n }\n }\n }\n }\n}\nexports.default = VaultManager;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs_1 = __importDefault(require(\"fs\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst isomorphic_git_1 = __importDefault(require(\"isomorphic-git\"));\nconst encryptedfs_1 = require(\"encryptedfs\");\nconst async_mutex_1 = require(\"async-mutex\");\nclass Vault {\n constructor(name, symKey, baseDir) {\n // Concurrency\n this.mutex = new async_mutex_1.Mutex();\n // how do we create pub/priv key pair?\n // do we use the same gpg pub/priv keypair\n this.key = symKey;\n // Set filesystem\n const vfsInstance = new (require('virtualfs').VirtualFS)();\n this.efs = new encryptedfs_1.EncryptedFS(this.key, vfsInstance, vfsInstance, fs_1.default, process);\n this.name = name;\n this.vaultPath = path_1.default.join(baseDir, name);\n // make the vault directory\n this.efs.mkdirSync(this.vaultPath, { recursive: true });\n this.secrets = new Map();\n this.loadSecrets();\n // Load metadata\n this.metadataPath = path_1.default.join(this.vaultPath, '.vault', 'metadata');\n this.loadMetadata();\n }\n /**\n * Returns the Encrypted File System used for vault operations\n */\n get EncryptedFS() {\n return this.efs;\n }\n /**\n * Determines whether a secret exists in the vault\n * @param secretName Name of desired secret\n */\n secretExists(secretName) {\n const secretPath = path_1.default.join(this.vaultPath, secretName);\n return this.secrets.has(secretName) && this.efs.existsSync(secretPath);\n }\n /**\n * Adds a secret to the vault\n * @param secretName Name of new secret\n * @param secret Content of new secret\n */\n async addSecret(secretName, secret) {\n const release = await this.mutex.acquire();\n try {\n // Check if secret already exists\n if (this.secrets.has(secretName)) {\n throw Error('Secret already exists, try updating it instead.');\n }\n const writePath = path_1.default.join(this.vaultPath, secretName);\n // Write secret\n await this.efs.promises.writeFile(writePath, secret, {});\n // Update secrets map\n this.secrets.set(secretName, secret);\n // Auto commit message\n await this.commitChanges(`Add secret: ${secretName}`, secretName, 'added');\n }\n catch (error) {\n release();\n throw error;\n }\n finally {\n release();\n }\n }\n /**\n * Updates a secret in the vault\n * @param secretName Name of secret to be updated\n * @param secret Content of updated secret\n */\n async updateSecret(secretName, secret) {\n const release = await this.mutex.acquire();\n try {\n // Check if secret already exists\n if (!this.secrets.has(secretName)) {\n throw Error('Secret does not exist, try adding it instead.');\n }\n const writePath = path_1.default.join(this.vaultPath, secretName);\n // Write secret\n await this.efs.promises.writeFile(writePath, secret, {});\n // Update secrets map\n this.secrets.set(secretName, secret);\n // Auto commit message\n await this.commitChanges(`Update secret: ${secretName}`, secretName, 'modified');\n }\n catch (error) {\n release();\n throw error;\n }\n finally {\n release();\n }\n }\n /**\n * Get a secret from the vault\n * @param secretName Name of secret to be retrieved\n */\n getSecret(secretName) {\n if (this.secrets.has(secretName)) {\n const secret = this.secrets.get(secretName);\n if (secret) {\n return secret;\n }\n else {\n const secretPath = path_1.default.join(this.vaultPath, secretName);\n // TODO: this should be async\n const secretBuf = this.efs.readFileSync(secretPath, {});\n this.secrets.set(secretName, secretBuf);\n return secretBuf;\n }\n }\n throw Error('Secret: ' + secretName + ' does not exist');\n }\n /**\n * [WARNING] Removes a secret from the vault\n * @param secretName Name of secret to be removed\n */\n async removeSecret(secretName) {\n const release = await this.mutex.acquire();\n try {\n if (this.secrets.has(secretName)) {\n const successful = this.secrets.delete(secretName);\n // Remove from fs\n await this.efs.promises.unlink(path_1.default.join(this.vaultPath, secretName));\n // Auto commit message\n await this.commitChanges(`Remove secret: ${secretName}`, secretName, 'removed');\n if (successful) {\n return;\n }\n throw Error('Secret: ' + secretName + ' was not removed');\n }\n throw Error('Secret: ' + secretName + ' does not exist');\n }\n catch (error) {\n release();\n throw error;\n }\n finally {\n release();\n }\n }\n /**\n * Lists all the secrets currently in the vault\n */\n listSecrets() {\n let secrets = Array.from(this.secrets.keys());\n return secrets;\n }\n tagVault() { }\n untagVault() { }\n /////////////\n // Sharing //\n /////////////\n /**\n * Allows a particular public key to access the vault\n * @param publicKey Public key to share with\n */\n shareVault(publicKey) {\n if (this.sharedPubKeys.has(name)) {\n throw Error('Vault is already shared with given public key');\n }\n this.sharedPubKeys.add(publicKey);\n // Write metadata\n this.writeMetadata();\n }\n /**\n * Removes access to the vault for a particular public key\n * @param publicKey Public key to unshare with\n */\n unshareVault(publicKey) {\n if (!this.sharedPubKeys.has(publicKey)) {\n throw Error('Vault is not shared with given public key');\n }\n this.sharedPubKeys.delete(publicKey);\n // Write metadata\n this.writeMetadata();\n }\n /**\n * Determines if a particular public key can access the vault\n * @param publicKey Public key to check\n */\n peerCanAccess(publicKey) {\n // return this.sharedPubKeys.has(publicKey)\n return true;\n }\n /**\n * Pulls the vault from a specific address\n * @param address Address of polykey node that owns vault to be pulled\n * @param getSocket Function to get an active connection to provided address\n */\n async pullVault(gitClient) {\n const release = await this.mutex.acquire();\n try {\n // Strangely enough this is needed for pulls along with ref set to 'HEAD'\n // In isogit's documentation, this is just to get the currentBranch name\n // But it solves a bug whereby if not used, git.pull complains that it can't\n // find the master branch or HEAD\n await isomorphic_git_1.default.currentBranch({\n fs: { promises: this.efs.promises },\n dir: this.vaultPath,\n fullname: true,\n });\n // First pull\n await isomorphic_git_1.default.pull({\n fs: { promises: this.efs.promises },\n http: gitClient,\n dir: this.vaultPath,\n url: 'http://' + '0.0.0.0:0' + '/' + this.name,\n ref: 'HEAD',\n singleBranch: true,\n author: {\n name: this.name,\n },\n });\n // Load any new secrets\n this.loadSecrets();\n }\n catch (error) {\n release();\n throw error;\n }\n finally {\n release();\n }\n }\n async getVaultHistory(depth) {\n const logs = await isomorphic_git_1.default.log({\n fs: { promises: this.efs.promises },\n dir: this.vaultPath,\n depth,\n });\n return logs.map((commit) => {\n return commit.commit.message;\n });\n }\n // ============== Helper methods ============== //\n writeMetadata() {\n // mkdir first\n this.efs.mkdirSync(path_1.default.dirname(this.metadataPath), { recursive: true });\n // Create and write metadata\n const metadata = {\n sharedPubKeys: Array.from(this.sharedPubKeys.keys()),\n };\n this.efs.writeFileSync(this.metadataPath, JSON.stringify(metadata));\n }\n loadMetadata() {\n if (this.efs.existsSync(this.metadataPath)) {\n const fileContents = this.efs.readFileSync(this.metadataPath).toString();\n const metadata = JSON.parse(fileContents);\n this.sharedPubKeys = new Set(metadata.sharedPubKeys);\n }\n else {\n // Need to create it\n this.sharedPubKeys = new Set();\n this.writeMetadata();\n }\n }\n async commitChanges(message, secretName, action) {\n if (action == 'removed') {\n await isomorphic_git_1.default.remove({\n fs: { promises: this.efs.promises },\n dir: this.vaultPath,\n filepath: secretName,\n });\n }\n else {\n await isomorphic_git_1.default.add({\n fs: { promises: this.efs.promises },\n dir: this.vaultPath,\n filepath: secretName,\n });\n }\n return await isomorphic_git_1.default.commit({\n fs: { promises: this.efs.promises },\n dir: this.vaultPath,\n author: {\n name: this.name,\n },\n message: message,\n });\n }\n loadSecrets() {\n const secrets = fs_1.default.readdirSync(this.vaultPath, undefined);\n // Remove all secrets first\n this.secrets.clear();\n // Load secrets\n for (const secret of secrets.filter((s) => s[0] != '.')) {\n this.secrets.set(secret, null);\n }\n }\n}\nexports.default = Vault;\n","module.exports = require(\"async-mutex\");","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst os_1 = __importDefault(require(\"os\"));\nconst fs_1 = __importDefault(require(\"fs\"));\nconst net_1 = __importDefault(require(\"net\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst process_1 = __importDefault(require(\"process\"));\nconst child_process_1 = require(\"child_process\");\nconst Polykey_1 = __importStar(require(\"../Polykey\"));\nconst configstore_1 = __importDefault(require(\"configstore\"));\nconst PolykeyClient_1 = __importDefault(require(\"./PolykeyClient\"));\nconst Agent_1 = require(\"../../../proto/js/Agent\");\nconst { AgentMessage, AgentMessageType, CreateSecretRequestMessage, CreateSecretResponseMessage, DecryptFileRequestMessage, DecryptFileResponseMessage, DeleteKeyRequestMessage, DeleteKeyResponseMessage, DeriveKeyRequestMessage, DeriveKeyResponseMessage, DestroySecretRequestMessage, DestroySecretResponseMessage, DestroyVaultRequestMessage, DestroyVaultResponseMessage, EncryptFileRequestMessage, EncryptFileResponseMessage, ErrorMessage, GetPrimaryKeyPairRequestMessage, GetPrimaryKeyPairResponseMessage, GetSecretRequestMessage, GetSecretResponseMessage, GetKeyRequestMessage, GetKeyResponseMessage, ListKeysRequestMessage, ListKeysResponseMessage, ListNodesRequestMessage, ListNodesResponseMessage, ListSecretsRequestMessage, ListSecretsResponseMessage, ListVaultsRequestMessage, ListVaultsResponseMessage, NewNodeRequestMessage, NewNodeResponseMessage, NewVaultRequestMessage, NewVaultResponseMessage, RegisterNodeRequestMessage, RegisterNodeResponseMessage, SignFileRequestMessage, SignFileResponseMessage, UpdateSecretRequestMessage, UpdateSecretResponseMessage, VerifyFileRequestMessage, VerifyFileResponseMessage, } = Agent_1.agent;\nclass PolykeyAgent {\n constructor() {\n this.persistentStore = new configstore_1.default('polykey');\n // For storing the state of each polykey node\n // Keys are the paths to the polykey node, e.g. '~/.polykey'\n this.polykeyMap = new Map();\n this.socketPath = PolykeyAgent.SocketPath;\n // Make sure the socket file doesn't already exist (agent is already running)\n if (fs_1.default.existsSync(this.socketPath)) {\n fs_1.default.unlinkSync(this.socketPath);\n }\n // Make the socket path if it doesn't exist\n if (!fs_1.default.existsSync(path_1.default.dirname(this.socketPath))) {\n fs_1.default.promises.mkdir(path_1.default.dirname(this.socketPath));\n }\n // Load polykeys\n const nodePaths = this.persistentStore.get('nodePaths');\n if (nodePaths === null || nodePaths === void 0 ? void 0 : nodePaths.values) {\n for (const path of nodePaths) {\n if (fs_1.default.existsSync(path)) {\n this.setPolyKey(path, new Polykey_1.default(path, fs_1.default));\n }\n else {\n this.removeNodePath(path);\n }\n }\n }\n else {\n this.persistentStore.set('nodePaths', []);\n }\n // Start the server\n this.server = net_1.default.createServer().listen(this.socketPath);\n this.server.on('connection', (socket) => {\n this.handleClientCommunication(socket);\n });\n }\n setPolyKey(nodePath, pk) {\n this.polykeyMap.set(nodePath, pk);\n const nodePathSet = new Set(this.persistentStore.get('nodePaths'));\n nodePathSet.add(nodePath);\n this.persistentStore.set('nodePaths', Array.from(nodePathSet.values()));\n }\n removeNodePath(nodePath) {\n this.polykeyMap.delete(nodePath);\n const nodePathSet = new Set(this.persistentStore.get('nodePaths'));\n nodePathSet.delete(nodePath);\n this.persistentStore.set('nodePaths', Array.from(nodePathSet.values()));\n }\n getPolyKey(nodePath, failOnLocked = true) {\n const pk = this.polykeyMap.get(nodePath);\n if (this.polykeyMap.has(nodePath) && pk) {\n if (fs_1.default.existsSync(nodePath)) {\n if (failOnLocked && !pk.keyManager.identityLoaded) {\n throw Error(`node path exists in memory but is locked: ${nodePath}`);\n }\n else {\n return pk;\n }\n }\n else {\n this.removeNodePath(nodePath);\n throw Error(`node path exists in memory but does not exist on file system: ${nodePath}`);\n }\n }\n else {\n this.removeNodePath(nodePath);\n throw Error(`node path does not exist in memory: ${nodePath}`);\n }\n }\n get AllNodePaths() {\n return Array.from(this.polykeyMap.keys()).filter((nodePath) => {\n try {\n this.getPolyKey(nodePath, false);\n return true;\n }\n catch (_a) {\n return false;\n }\n });\n }\n get UnlockedNodePaths() {\n return this.AllNodePaths.filter((nodePath) => {\n try {\n return this.getPolyKey(nodePath, false).keyManager.identityLoaded;\n }\n catch (_a) {\n return false;\n }\n });\n }\n stop() {\n this.server.close();\n }\n handleClientCommunication(socket) {\n socket.on('data', async (encodedMessage) => {\n var _a;\n try {\n const { type, nodePath, subMessage } = AgentMessage.decode(encodedMessage);\n let response = undefined;\n switch (type) {\n case AgentMessageType.STATUS:\n response = Buffer.from('online');\n break;\n case AgentMessageType.STOP_AGENT:\n this.stop();\n process_1.default.exit();\n // eslint-disable-next-line\n case AgentMessageType.REGISTER_NODE:\n response = await this.registerNode(nodePath, subMessage);\n break;\n case AgentMessageType.NEW_NODE:\n response = await this.newNode(nodePath, subMessage);\n break;\n case AgentMessageType.LIST_NODES:\n response = this.listNodes(subMessage);\n break;\n case AgentMessageType.DERIVE_KEY:\n response = await this.deriveKey(nodePath, subMessage);\n break;\n case AgentMessageType.LIST_KEYS:\n response = await this.listKeys(nodePath);\n break;\n case AgentMessageType.GET_KEY:\n response = await this.getKey(nodePath, subMessage);\n break;\n case AgentMessageType.GET_PRIMARY_KEYPAIR:\n response = await this.getPrimaryKeyPair(nodePath, subMessage);\n break;\n case AgentMessageType.DELETE_KEY:\n response = await this.deleteKey(nodePath, subMessage);\n break;\n case AgentMessageType.SIGN_FILE:\n response = await this.signFile(nodePath, subMessage);\n break;\n case AgentMessageType.VERIFY_FILE:\n response = await this.verifyFile(nodePath, subMessage);\n break;\n case AgentMessageType.ENCRYPT_FILE:\n response = await this.encryptFile(nodePath, subMessage);\n break;\n case AgentMessageType.DECRYPT_FILE:\n response = await this.decryptFile(nodePath, subMessage);\n break;\n case AgentMessageType.LIST_VAULTS:\n response = await this.listVaults(nodePath);\n break;\n case AgentMessageType.NEW_VAULT:\n response = await this.newVault(nodePath, subMessage);\n break;\n case AgentMessageType.DESTROY_VAULT:\n response = await this.destroyVault(nodePath, subMessage);\n break;\n case AgentMessageType.LIST_SECRETS:\n response = await this.listSecrets(nodePath, subMessage);\n break;\n case AgentMessageType.CREATE_SECRET:\n response = await this.createSecret(nodePath, subMessage);\n break;\n case AgentMessageType.DESTROY_SECRET:\n response = await this.destroySecret(nodePath, subMessage);\n break;\n case AgentMessageType.GET_SECRET:\n response = await this.getSecret(nodePath, subMessage);\n break;\n case AgentMessageType.UPDATE_SECRET:\n response = await this.updateSecret(nodePath, subMessage);\n break;\n default:\n throw Error(`message type not supported: ${AgentMessageType[type]}`);\n }\n if (response) {\n const encodedResponse = AgentMessage.encode({\n type: type,\n isResponse: true,\n nodePath: nodePath,\n subMessage: response,\n }).finish();\n socket.write(encodedResponse);\n }\n else {\n throw Error('something went wrong');\n }\n }\n catch (err) {\n const errorResponse = AgentMessage.encode({\n type: AgentMessageType.ERROR,\n isResponse: true,\n nodePath: undefined,\n subMessage: ErrorMessage.encode({ error: (_a = err.message) !== null && _a !== void 0 ? _a : err }).finish(),\n }).finish();\n socket.write(errorResponse);\n }\n // Close connection\n socket.end();\n });\n }\n // Register an existing polykey agent\n async registerNode(nodePath, request) {\n const { passphrase } = RegisterNodeRequestMessage.decode(request);\n let pk = this.getPolyKey(nodePath, false);\n if (pk) {\n if (pk.keyManager.identityLoaded) {\n throw Error(`node path is already loaded and unlocked: '${nodePath}'`);\n }\n await pk.keyManager.unlockIdentity(passphrase);\n }\n else {\n const km = new Polykey_1.KeyManager(nodePath, fs_1.default);\n await km.unlockIdentity(passphrase);\n // Create polykey class\n pk = new Polykey_1.default(nodePath, fs_1.default, km);\n }\n // Load all metadata\n await pk.keyManager.loadMetadata();\n pk.peerManager.loadMetadata();\n await pk.vaultManager.loadMetadata();\n // Set polykey class\n this.setPolyKey(nodePath, pk);\n // Encode and send response\n const response = NewNodeResponseMessage.encode({\n successful: pk.keyManager.identityLoaded && this.polykeyMap.has(nodePath),\n }).finish();\n return response;\n }\n // Create a new polykey agent\n async newNode(nodePath, request) {\n // Throw if path already exists\n if (this.polykeyMap.has(nodePath) && fs_1.default.existsSync(nodePath)) {\n throw Error(`node path '${nodePath}' is already loaded`);\n }\n else if (fs_1.default.existsSync(nodePath)) {\n throw Error(`node path already exists: '${nodePath}'`);\n }\n const { name, email, passphrase, nbits } = NewNodeRequestMessage.decode(request);\n const km = new Polykey_1.KeyManager(nodePath, fs_1.default);\n await km.generateKeyPair(name, email, passphrase, nbits == 0 ? undefined : nbits, true, (info) => {\n // socket.write(JSON.stringify(info))\n });\n // Create and set polykey class\n const pk = new Polykey_1.default(nodePath, fs_1.default, km);\n this.setPolyKey(nodePath, pk);\n // Encode and send response\n const response = NewNodeResponseMessage.encode({\n successful: km.identityLoaded && this.polykeyMap.has(nodePath),\n }).finish();\n return response;\n }\n // Create a new polykey agent\n listNodes(request) {\n const { unlockedOnly } = ListNodesRequestMessage.decode(request);\n if (unlockedOnly) {\n return ListNodesResponseMessage.encode({ nodes: this.UnlockedNodePaths }).finish();\n }\n else {\n return ListNodesResponseMessage.encode({ nodes: this.AllNodePaths }).finish();\n }\n }\n /////////////////////////\n // KeyManager commands //\n /////////////////////////\n async deriveKey(nodePath, request) {\n const { keyName, passphrase } = DeriveKeyRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n await pk.keyManager.generateKey(keyName, passphrase);\n return DeriveKeyResponseMessage.encode({ successful: true }).finish();\n }\n async listKeys(nodePath) {\n const pk = this.getPolyKey(nodePath);\n const keyNames = pk.keyManager.listKeys();\n return ListKeysResponseMessage.encode({ keyNames }).finish();\n }\n async getKey(nodePath, request) {\n const { keyName } = GetKeyRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const keyContent = pk.keyManager.getKey(keyName).toString();\n return GetKeyResponseMessage.encode({ keyContent }).finish();\n }\n async getPrimaryKeyPair(nodePath, request) {\n const { includePrivateKey } = GetPrimaryKeyPairRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const keypair = pk.keyManager.getKeyPair();\n return GetPrimaryKeyPairResponseMessage.encode({ publicKey: keypair.public, privateKey: includePrivateKey ? keypair.private : undefined }).finish();\n }\n async deleteKey(nodePath, request) {\n const { keyName } = DeleteKeyRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const successful = await pk.keyManager.deleteKey(keyName);\n return DeleteKeyResponseMessage.encode({ successful }).finish();\n }\n /////////////////////\n // Crypto commands //\n /////////////////////\n async signFile(nodePath, request) {\n const { filePath, privateKeyPath, passphrase } = SignFileRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const signaturePath = await pk.keyManager.signFile(filePath, privateKeyPath, passphrase);\n return SignFileResponseMessage.encode({ signaturePath }).finish();\n }\n async verifyFile(nodePath, request) {\n const { filePath, signaturePath } = VerifyFileRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const verified = await pk.keyManager.verifyFile(filePath, signaturePath);\n return VerifyFileResponseMessage.encode({ verified }).finish();\n }\n async encryptFile(nodePath, request) {\n const { filePath, publicKeyPath } = EncryptFileRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const encryptedPath = await pk.keyManager.encryptFile(filePath, publicKeyPath);\n return EncryptFileResponseMessage.encode({ encryptedPath }).finish();\n }\n async decryptFile(nodePath, request) {\n const { filePath, privateKeyPath, passphrase } = DecryptFileRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const decryptedPath = await pk.keyManager.decryptFile(filePath, privateKeyPath, passphrase);\n return DecryptFileResponseMessage.encode({ decryptedPath }).finish();\n }\n //////////////////////\n // Vault Operations //\n //////////////////////\n async listVaults(nodePath) {\n const pk = this.getPolyKey(nodePath);\n const vaultNames = pk.vaultManager.listVaults();\n return ListVaultsResponseMessage.encode({ vaultNames }).finish();\n }\n async newVault(nodePath, request) {\n const { vaultName } = NewVaultRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n await pk.vaultManager.createVault(vaultName);\n return NewVaultResponseMessage.encode({ successful: true }).finish();\n }\n async destroyVault(nodePath, request) {\n const { vaultName } = DestroyVaultRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n pk.vaultManager.destroyVault(vaultName);\n return DestroyVaultResponseMessage.encode({ successful: true }).finish();\n }\n ///////////////////////\n // Secret Operations //\n ///////////////////////\n async listSecrets(nodePath, request) {\n const { vaultName } = ListSecretsRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const vault = pk.vaultManager.getVault(vaultName);\n const secretNames = vault.listSecrets();\n return ListSecretsResponseMessage.encode({ secretNames }).finish();\n }\n async createSecret(nodePath, request) {\n const { vaultName, secretName, secretPath, secretContent } = CreateSecretRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const vault = pk.vaultManager.getVault(vaultName);\n let secretBuffer;\n if (secretPath) {\n secretBuffer = await fs_1.default.promises.readFile(secretPath);\n }\n else {\n secretBuffer = Buffer.from(secretContent);\n }\n await vault.addSecret(secretName, secretBuffer);\n return CreateSecretResponseMessage.encode({ successful: true }).finish();\n }\n async destroySecret(nodePath, request) {\n const { vaultName, secretName } = DestroySecretRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const vault = pk.vaultManager.getVault(vaultName);\n await vault.removeSecret(secretName);\n return DestroySecretResponseMessage.encode({ successful: true }).finish();\n }\n async getSecret(nodePath, request) {\n const { vaultName, secretName } = GetSecretRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const vault = pk.vaultManager.getVault(vaultName);\n const secret = Buffer.from(vault.getSecret(secretName));\n return GetSecretResponseMessage.encode({ secret: secret }).finish();\n }\n async updateSecret(nodePath, request) {\n const { vaultName, secretName, secretPath, secretContent } = UpdateSecretRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const vault = pk.vaultManager.getVault(vaultName);\n let secretBuffer;\n if (secretPath) {\n secretBuffer = await fs_1.default.promises.readFile(secretPath);\n }\n else {\n secretBuffer = Buffer.from(secretContent);\n }\n await vault.updateSecret(secretName, secretBuffer);\n return UpdateSecretResponseMessage.encode({ successful: true }).finish();\n }\n ///////////////////////\n // Client Connection //\n ///////////////////////\n static connectToAgent(getStream) {\n const defaultStream = () => {\n const socket = net_1.default.createConnection(PolykeyAgent.SocketPath);\n return socket;\n };\n const client = new PolykeyClient_1.default(getStream !== null && getStream !== void 0 ? getStream : defaultStream);\n return client;\n }\n // ===== Helper methods===== //\n static get SocketPath() {\n const platform = os_1.default.platform();\n const userInfo = os_1.default.userInfo();\n if (platform == 'win32') {\n return path_1.default.join('\\\\\\\\?\\\\pipe', process_1.default.cwd(), 'polykey-agent');\n }\n else {\n return `/run/user/${userInfo.uid}/polykey/S.polykey-agent`;\n }\n }\n static get LogPath() {\n const platform = os_1.default.platform();\n const userInfo = os_1.default.userInfo();\n if (platform == 'win32') {\n return path_1.default.join(os_1.default.tmpdir(), 'polykey', 'log');\n }\n else {\n return `/run/user/${userInfo.uid}/polykey/log`;\n }\n }\n static async startAgent(daemon = false) {\n return new Promise((resolve, reject) => {\n try {\n fs_1.default.rmdirSync(PolykeyAgent.LogPath, { recursive: true });\n fs_1.default.mkdirSync(PolykeyAgent.LogPath, { recursive: true });\n let options = {\n uid: process_1.default.getuid(),\n detached: daemon,\n stdio: [\n 'ipc',\n fs_1.default.openSync(path_1.default.join(PolykeyAgent.LogPath, 'output.log'), 'a'),\n fs_1.default.openSync(path_1.default.join(PolykeyAgent.LogPath, 'error.log'), 'a'),\n ]\n };\n const agentProcess = child_process_1.fork(PolykeyAgent.DAEMON_SCRIPT_PATH, undefined, options);\n const pid = agentProcess.pid;\n agentProcess.unref();\n resolve(pid);\n }\n catch (err) {\n reject(err);\n }\n });\n }\n}\n//////////////////////\n// Agent Operations //\n//////////////////////\nPolykeyAgent.DAEMON_SCRIPT_PATH = path_1.default.join(__dirname, 'internal', 'daemon-script.js');\nexports.default = PolykeyAgent;\n","module.exports = require(\"net\");","module.exports = require(\"process\");","module.exports = require(\"child_process\");","module.exports = require(\"configstore\");"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://polykey/webpack/universalModuleDefinition","webpack://polykey/webpack/bootstrap","webpack://polykey/external \"path\"","webpack://polykey/external \"os\"","webpack://polykey/external \"fs\"","webpack://polykey/external \"readable-stream\"","webpack://polykey/./src/lib/Polykey.ts","webpack://polykey/external \"crypto\"","webpack://polykey/external \"@grpc/grpc-js\"","webpack://polykey/external \"../../proto/compiled/Git_grpc_pb\"","webpack://polykey/external \"../../proto/compiled/Git_pb\"","webpack://polykey/./src/lib/git/upload-pack/GitPktLine.ts","webpack://polykey/./src/lib/git/upload-pack/GitRefManager.ts","webpack://polykey/external \"pako\"","webpack://polykey/./src/lib/git/pack-objects/GitCommit.ts","webpack://polykey/./src/lib/git/pack-objects/GitObjectManager.ts","webpack://polykey/./src/lib/peers/PeerInfo.ts","webpack://polykey/external \"isomorphic-git\"","webpack://polykey/external \"encryptedfs\"","webpack://polykey/external \"virtualfs\"","webpack://polykey/./src/lib/agent/PolykeyClient.ts","webpack://polykey/external \"../../proto/js/Agent\"","webpack://polykey/./src/lib/keys/KeyManager.ts","webpack://polykey/external \"kbpgp\"","webpack://polykey/external \"util\"","webpack://polykey/./src/lib/peers/PeerManager.ts","webpack://polykey/./src/lib/git/GitFrontend.ts","webpack://polykey/./src/lib/git/GitBackend.ts","webpack://polykey/./src/lib/git/upload-pack/uploadPack.ts","webpack://polykey/./src/lib/git/upload-pack/GitPackedRefs.ts","webpack://polykey/./src/lib/git/side-band/GitSideBand.ts","webpack://polykey/external \"buffer\"","webpack://polykey/./src/lib/git/pack-objects/packObjects.ts","webpack://polykey/./src/lib/git/pack-objects/log.ts","webpack://polykey/./src/lib/git/pack-objects/GitObject.ts","webpack://polykey/./src/lib/git/pack-objects/shasum.ts","webpack://polykey/external \"sha.js/sha1\"","webpack://polykey/./src/lib/git/pack-objects/GitTree.ts","webpack://polykey/external \"sha.js\"","webpack://polykey/external \"../../proto/js/Peer\"","webpack://polykey/./src/lib/utils.ts","webpack://polykey/./src/lib/peers/MulticastBroadcaster.ts","webpack://polykey/external \"dgram\"","webpack://polykey/external \"events\"","webpack://polykey/external \"../../proto/js/Peer.js\"","webpack://polykey/./src/lib/vaults/VaultManager.ts","webpack://polykey/./src/lib/vaults/Vault.ts","webpack://polykey/external \"async-mutex\"","webpack://polykey/./src/lib/agent/PolykeyAgent.ts","webpack://polykey/external \"net\"","webpack://polykey/external \"process\"","webpack://polykey/external \"child_process\"","webpack://polykey/external \"configstore\""],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA,iC;;;;;;ACAA,+B;;;;;;ACAA,+B;;;;;;ACAA,4C;;;;;;;ACAa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,qCAAqC,mBAAO,CAAC,EAAmB;AAChE;AACA,sCAAsC,mBAAO,CAAC,EAAqB;AACnE;AACA,uCAAuC,mBAAO,CAAC,EAAuB;AACtE;AACA,uCAAuC,mBAAO,CAAC,EAAsB;AACrE;AACA,wCAAwC,mBAAO,CAAC,EAAuB;AACvE;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3BA,mC;;;;;;ACAA,0C;;;;;;ACAA,6D;;;;;;ACAA,wD;;;;;;;ACAa;AACb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5Fa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D;AACA,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,wCAAwC,mBAAO,CAAC,EAAiB;AACjE;AACA;AACA,OAAO,IAAI;AACX,YAAY,IAAI;AAChB,iBAAiB,IAAI;AACrB,kBAAkB,IAAI;AACtB,oBAAoB,IAAI;AACxB,oBAAoB,IAAI;AACxB;AACA;AACA;AACA,8BAA8B,EAAE;AAChC,8BAA8B,EAAE;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,gDAAgD,OAAO,gBAAgB,mBAAmB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO,GAAG,SAAS;AACvE,kDAAkD,OAAO,GAAG,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,GAAG;AAC9C;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA,mDAAmD,OAAO,GAAG,IAAI,IAAI,mBAAmB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5HA,iC;;;;;;;ACAa;AACb;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA,6BAA6B,YAAY,IAAI,aAAa,IAAI,iBAAiB,GAAG,4CAA4C;AAC9H;AACA,gCAAgC,eAAe,IAAI,gBAAgB,IAAI,oBAAoB,GAAG,+CAA+C;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtLa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,+BAA+B,mBAAO,CAAC,EAAM;AAC7C,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,oCAAoC,mBAAO,CAAC,EAAa;AACzD;AACA;AACA;AACA;AACA,8CAA8C,OAAO,WAAW,gBAAgB,GAAG,aAAa;AAChG,kCAAkC,gBAAgB,GAAG,aAAa;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,OAAO,gBAAgB,SAAS;AAChG,sCAAsC,OAAO;AAC7C;AACA;AACA,+CAA+C,2BAA2B;AAC1E,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,OAAO,YAAY,mBAAmB;AACxF;AACA,0DAA0D,IAAI;AAC9D;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA,aAAa,eAAe,+BAA+B,cAAc;AACzE;AACA,oBAAoB;AACpB;AACA;AACA;;;;;;;;AC/Da;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,QAAQ,GAAG,UAAU;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ,GAAG,UAAU;AACrE;AACA;AACA,kBAAkB,QAAQ,GAAG,UAAU;AACvC;AACA;AACA;AACA;AACA,cAAc,QAAQ,GAAG,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;AClEA,2C;;;;;;ACAA,wC;;;;;;ACAA,sC;;;;;;;ACAa;AACb,8CAA8C,cAAc;AAC5D,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,OAAO,4lCAA4lC;AACnmC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA,uBAAuB,QAAQ;AAC/B,yDAAyD,MAAM;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,6DAA6D,iCAAiC;AAC9F;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sBAAsB;AAC9E;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,wDAAwD,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,qDAAqD,UAAU;AAC/D;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,gEAAgE,oBAAoB;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,uCAAuC;AAC9F;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,yDAAyD,0BAA0B;AACnF;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,0DAA0D,0BAA0B;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,0DAA0D,uCAAuC;AACjG;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,uDAAuD,YAAY;AACnE;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,2DAA2D,YAAY;AACvE;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,4CAA4C;AACrG;AACA;AACA,yDAAyD,+CAA+C;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,4DAA4D,wBAAwB;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,4CAA4C;AACrG;AACA;AACA,yDAAyD,+CAA+C;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/UA,iD;;;;;;;ACAa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,6BAA6B,mBAAO,CAAC,CAAI;AACzC,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,gCAAgC,mBAAO,CAAC,EAAO;AAC/C,iCAAiC,mBAAO,CAAC,CAAQ;AACjD,eAAe,mBAAO,CAAC,EAAM;AAC7B;AACA,iCAAiC,uBAAuB;AACxD,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC;AAC/F,uBAAuB,KAAK,IAAI,MAAM;AACtC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,+DAA+D;AAC/D;AACA,8FAA8F;AAC9F;AACA,+FAA+F,yBAAyB;AACxH;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,qBAAqB;AAC1H,2EAA2E,sBAAsB;AACjG;AACA,wEAAwE,yBAAyB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,KAAK;AACjE;AACA;AACA,qEAAqE,kBAAkB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,KAAK;AACjE;AACA;AACA,gFAAgF,kBAAkB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,qBAAqB;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,sBAAsB;AAC3H;AACA,wEAAwE,aAAa;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrpBA,kC;;;;;;ACAA,iC;;;;;;;ACAa;AACb;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,0BAA0B,mBAAO,CAAC,CAAe;AACjD,sCAAsC,mBAAO,CAAC,EAAoB;AAClE,qCAAqC,mBAAO,CAAC,EAAmB;AAChE,eAAe,mBAAO,CAAC,EAAwB;AAC/C,gBAAgB,mBAAO,CAAC,EAAU;AAClC,gCAAgC,mBAAO,CAAC,EAAmB;AAC3D,+CAA+C,mBAAO,CAAC,EAA+B;AACtF,sBAAsB,mBAAO,CAAC,CAAqC;AACnE,iBAAiB,mBAAO,CAAC,CAAgC;AACzD;AACA;AACA;AACA,qEAAqE,QAAQ,GAAG,OAAO;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY;AAC3D;AACA,KAAK;AACL;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA,yBAAyB;AACzB;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yCAAyC,8DAA8D;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,qBAAqB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA;;;;;;;;ACxQa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D,0BAA0B,mBAAO,CAAC,CAAe;AACjD,sBAAsB,mBAAO,CAAC,CAAqC;AACnE,iBAAiB,mBAAO,CAAC,CAAgC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;AChEa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,0BAA0B,mBAAO,CAAC,CAAiB;AACnD,qCAAqC,mBAAO,CAAC,EAA0B;AACvE,sCAAsC,mBAAO,CAAC,EAAyB;AACvE,sCAAsC,mBAAO,CAAC,EAA4B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,SAAS;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,SAAS;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5Ea;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,qCAAqC,mBAAO,CAAC,CAAc;AAC3D,wCAAwC,mBAAO,CAAC,EAAiB;AACjE,oCAAoC,8BAA8B;AAClE;AACA;AACA;AACA;AACA,0BAA0B,IAAI,GAAG,MAAM;AACvC;AACA,sBAAsB,4BAA4B,GAAG,KAAK;AAC1D,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA,mDAAmD,MAAM,GAAG,IAAI,EAAE,KAAK;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,4CAA4C;AAC5C,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,EAAQ;AACjC,0BAA0B,mBAAO,CAAC,CAAiB;AACnD,qCAAqC,mBAAO,CAAC,CAA2B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;;;;;;ACrJA,mC;;;;;;;ACAa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,+BAA+B,mBAAO,CAAC,EAAM;AAC7C,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,8BAA8B,mBAAO,CAAC,EAAO;AAC7C,kCAAkC,mBAAO,CAAC,EAAW;AACrD,iCAAiC,mBAAO,CAAC,EAAQ;AACjD,oCAAoC,mBAAO,CAAC,EAAa;AACzD,0BAA0B,mBAAO,CAAC,CAAiB;AACnD,2CAA2C,mBAAO,CAAC,EAAoB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvKa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,aAAa,mBAAO,CAAC,CAAM;AAC3B,oCAAoC,mBAAO,CAAC,EAAa;AACzD,2CAA2C,mBAAO,CAAC,EAAoB;AACvE,wCAAwC,mBAAO,CAAC,EAA8B;AAC9E;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA,sCAAsC,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpFa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,iCAAiC,mBAAO,CAAC,EAAU;AACnD;AACA,iBAAiB,eAAe;AAChC,mDAAmD,KAAK,GAAG,6BAA6B;AACxF;AACA;AACA;AACA,iBAAiB,eAAe;AAChC,mDAAmD,KAAK,GAAG,6BAA6B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA,8DAA8D,IAAI,aAAa,IAAI;AACnF;AACA;AACA,mCAAmC;AACnC,kCAAkC;AAClC,uDAAuD;AACvD,6DAA6D;AAC7D;AACA;AACA;AACA,yDAAyD,OAAO,iBAAiB,aAAa;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1Ca;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,+BAA+B,mBAAO,CAAC,EAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA,wC;;;;;;;ACAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,wBAAwB;AACxB;AACA,wBAAwB;AACxB;AACA,wBAAwB;AACxB;AACA,wBAAwB;AACxB,uDAAuD,KAAK;AAC5D;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gDAAgD;AAChD;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,WAAW,GAAG,WAAW,GAAG,UAAU,MAAM,WAAW;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mBAAmB;AACtE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClGA,mC;;;;;;ACAA,gD;;;;;;;ACAa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1Ba;AACb;AACA,4CAA4C;AAC5C;AACA;AACA,8CAA8C,cAAc;AAC5D,gCAAgC,mBAAO,CAAC,EAAO;AAC/C,iCAAiC,mBAAO,CAAC,CAAQ;AACjD,mCAAmC,mBAAO,CAAC,EAAY;AACvD,iBAAiB,mBAAO,CAAC,EAAQ;AACjC,kBAAkB,mBAAO,CAAC,EAA2B;AACrD,OAAO,oCAAoC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gCAAgC;AACpF;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4DAA4D;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/IA,kC;;;;;;ACAA,mC;;;;;;ACAA,mD;;;;;;;ACAa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,yCAAyC,mBAAO,CAAC,EAAgB;AACjE,gCAAgC,mBAAO,CAAC,EAAiB;AACzD,sBAAsB,mBAAO,CAAC,EAAa;AAC3C;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,UAAU;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA,gEAAgE,UAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,sDAAsD,UAAU;AAChE;AACA;AACA;AACA,8DAA8D,UAAU;AACxE;AACA,iCAAiC,mBAAO,CAAC,EAAW;AACpD;AACA;AACA;AACA,iBAAiB,4BAA4B;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,UAAU;AACtE;AACA;AACA,gEAAgE,UAAU;AAC1E;AACA;AACA;AACA,4DAA4D,UAAU;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzNa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,yCAAyC,mBAAO,CAAC,EAAgB;AACjE,sBAAsB,mBAAO,CAAC,EAAa;AAC3C,sBAAsB,mBAAO,CAAC,EAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAO,CAAC,EAAW;AACpD;AACA;AACA;AACA;AACA,4CAA4C,kBAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA,oDAAoD,WAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA,uDAAuD,WAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,WAAW;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA,aAAa;AACb;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uEAAuE,kBAAkB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1SA,wC;;;;;;;ACAa;AACb;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D,6BAA6B,mBAAO,CAAC,CAAI;AACzC,6BAA6B,mBAAO,CAAC,CAAI;AACzC,8BAA8B,mBAAO,CAAC,EAAK;AAC3C,+BAA+B,mBAAO,CAAC,CAAM;AAC7C,kCAAkC,mBAAO,CAAC,EAAS;AACnD,wBAAwB,mBAAO,CAAC,EAAe;AAC/C,+BAA+B,mBAAO,CAAC,CAAY;AACnD,sCAAsC,mBAAO,CAAC,EAAa;AAC3D,wCAAwC,mBAAO,CAAC,EAAiB;AACjE,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,OAAO,4lCAA4lC;AACnmC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,SAAS;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,SAAS;AACtG;AACA;AACA;AACA;AACA,+DAA+D,SAAS;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,uBAAuB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iEAAiE;AACtH,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,0EAA0E,SAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA,eAAe,iCAAiC;AAChD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA,oDAAoD,gCAAgC;AACpF;AACA;AACA,oDAAoD,2BAA2B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA;AACA,gDAAgD,mBAAmB;AACnE;AACA;AACA;AACA;AACA,+CAA+C,WAAW;AAC1D;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA,eAAe,uCAAuC;AACtD;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA,eAAe,0BAA0B;AACzC;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA,eAAe,0BAA0B;AACzC;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA,eAAe,uCAAuC;AACtD;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa;AAC9D;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA,+CAA+C,mBAAmB;AAClE;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA,mDAAmD,mBAAmB;AACtE;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA,kDAAkD,cAAc;AAChE;AACA;AACA,eAAe,mDAAmD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mBAAmB;AACtE;AACA;AACA,eAAe,wBAAwB;AACvC;AACA;AACA;AACA,oDAAoD,mBAAmB;AACvE;AACA;AACA,eAAe,wBAAwB;AACvC;AACA;AACA;AACA,gDAAgD,iBAAiB;AACjE;AACA;AACA,eAAe,mDAAmD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mBAAmB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA,8DAA8D,kBAAkB;AAChF,8DAA8D,kBAAkB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxeA,gC;;;;;;ACAA,oC;;;;;;ACAA,0C;;;;;;ACAA,wC","file":"polykey.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"polykey\"] = factory();\n\telse\n\t\troot[\"polykey\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","module.exports = require(\"path\");","module.exports = require(\"os\");","module.exports = require(\"fs\");","module.exports = require(\"readable-stream\");","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst os_1 = __importDefault(require(\"os\"));\nconst KeyManager_1 = __importDefault(require(\"./keys/KeyManager\"));\nexports.KeyManager = KeyManager_1.default;\nconst PeerManager_1 = __importDefault(require(\"./peers/PeerManager\"));\nexports.PeerManager = PeerManager_1.default;\nconst VaultManager_1 = __importDefault(require(\"./vaults/VaultManager\"));\nexports.VaultManager = VaultManager_1.default;\nconst PolykeyAgent_1 = __importDefault(require(\"./agent/PolykeyAgent\"));\nexports.PolykeyAgent = PolykeyAgent_1.default;\nconst PolykeyClient_1 = __importDefault(require(\"./agent/PolykeyClient\"));\nexports.PolykeyClient = PolykeyClient_1.default;\nclass Polykey {\n constructor(polykeyPath = `${os_1.default.homedir()}/.polykey`, fileSystem, keyManager, vaultManager, peerManager) {\n this.polykeyPath = polykeyPath;\n // Set key manager\n this.keyManager = keyManager !== null && keyManager !== void 0 ? keyManager : new KeyManager_1.default(this.polykeyPath, fileSystem);\n // Set or Initialize vaultManager\n this.vaultManager = vaultManager !== null && vaultManager !== void 0 ? vaultManager : new VaultManager_1.default(this.polykeyPath, fileSystem, this.keyManager);\n // Initialize peer store and peer discovery classes\n this.peerManager = peerManager !== null && peerManager !== void 0 ? peerManager : new PeerManager_1.default(this.polykeyPath, fileSystem, this.keyManager, this.vaultManager);\n }\n}\nexports.default = Polykey;\n","module.exports = require(\"crypto\");","module.exports = require(\"@grpc/grpc-js\");","module.exports = require(\"../../proto/compiled/Git_grpc_pb\");","module.exports = require(\"../../proto/compiled/Git_pb\");","\"use strict\";\n/**\npkt-line Format\n---------------\n\nMuch (but not all) of the payload is described around pkt-lines.\n\nA pkt-line is a variable length binary string. The first four bytes\nof the line, the pkt-len, indicates the total length of the line,\nin hexadecimal. The pkt-len includes the 4 bytes used to contain\nthe length's hexadecimal representation.\n\nA pkt-line MAY contain binary data, so implementors MUST ensure\npkt-line parsing/formatting routines are 8-bit clean.\n\nA non-binary line SHOULD BE terminated by an LF, which if present\nMUST be included in the total length. Receivers MUST treat pkt-lines\nwith non-binary data the same whether or not they contain the trailing\nLF (stripping the LF if present, and not complaining when it is\nmissing).\n\nThe maximum length of a pkt-line's data component is 65516 bytes.\nImplementations MUST NOT send pkt-line whose length exceeds 65520\n(65516 bytes of payload + 4 bytes of length data).\n\nImplementations SHOULD NOT send an empty pkt-line (\"0004\").\n\nA pkt-line with a length field of 0 (\"0000\"), called a flush-pkt,\nis a special case and MUST be handled differently than an empty\npkt-line (\"0004\").\n\n----\n pkt-line = data-pkt / flush-pkt\n\n data-pkt = pkt-len pkt-payload\n pkt-len = 4*(HEXDIG)\n pkt-payload = (pkt-len - 4)*(OCTET)\n\n flush-pkt = \"0000\"\n----\n\nExamples (as C-style strings):\n\n----\n pkt-line actual value\n ---------------------------------\n \"0006a\\n\" \"a\\n\"\n \"0005a\" \"a\"\n \"000bfoobar\\n\" \"foobar\\n\"\n \"0004\" \"\"\n----\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction padHex(b, n) {\n const s = n.toString(16);\n return '0'.repeat(b - s.length) + s;\n}\n// I'm really using this more as a namespace.\n// There's not a lot of \"state\" in a pkt-line\nclass GitPktLine {\n static flush() {\n return Buffer.from('0000', 'utf8');\n }\n static encode(line) {\n if (typeof line === 'string') {\n line = Buffer.from(line);\n }\n const length = line.length + 4;\n const hexlength = padHex(4, length);\n return Buffer.concat([Buffer.from(hexlength, 'utf8'), line]);\n }\n static streamReader(stream) {\n return async function read() {\n try {\n let length = await stream.slice(4);\n if (length === null)\n return true;\n length = parseInt(length.toString('utf8'), 16);\n if (length === 0)\n return null;\n let buffer = await stream.slice(length - 4);\n if (buffer === null)\n return true;\n return buffer;\n }\n catch (err) {\n console.log('error', err);\n return true;\n }\n };\n }\n}\nexports.default = GitPktLine;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// This is a convenience wrapper for reading and writing files in the 'refs' directory.\nconst path_1 = __importDefault(require(\"path\"));\nconst GitPackedRefs_1 = __importDefault(require(\"./GitPackedRefs\"));\n// @see https://git-scm.com/docs/git-rev-parse.html#_specifying_revisions\nconst refpaths = (ref) => [\n `${ref}`,\n `refs/${ref}`,\n `refs/tags/${ref}`,\n `refs/heads/${ref}`,\n `refs/remotes/${ref}`,\n `refs/remotes/${ref}/HEAD`,\n];\nfunction compareRefNames(a, b) {\n // https://stackoverflow.com/a/40355107/2168416\n const _a = a.replace(/\\^\\{\\}$/, '');\n const _b = b.replace(/\\^\\{\\}$/, '');\n const tmp = -(_a < _b) || +(_a > _b);\n if (tmp === 0) {\n return a.endsWith('^{}') ? 1 : -1;\n }\n return tmp;\n}\n// @see https://git-scm.com/docs/gitrepository-layout\nconst GIT_FILES = ['config', 'description', 'index', 'shallow', 'commondir'];\n// This function is used to get all the files in the refs folder for listRefs function\nasync function recursiveDirectoryWalk(dir, fileSystem) {\n return new Promise((resolve, reject) => {\n let results = [];\n fileSystem.promises\n .readdir(dir)\n .then(async (list) => {\n var pending = list.length;\n if (!pending)\n return resolve(results);\n list.forEach(async function (file) {\n file = path_1.default.resolve(dir, file);\n fileSystem.promises.stat(file).then(async (stat) => {\n if (stat && stat.isDirectory()) {\n const res = await recursiveDirectoryWalk(file, fileSystem);\n results = results.concat(res);\n if (!--pending)\n resolve(results);\n }\n else {\n results.push(file);\n if (!--pending)\n resolve(results);\n }\n });\n });\n })\n .catch((err) => {\n if (err)\n return reject(err);\n });\n });\n}\nclass GitRefManager {\n static async packedRefs(fileSystem, gitdir) {\n const text = fileSystem.readFileSync(`${gitdir}/packed-refs`, { encoding: 'utf8' });\n const packed = GitPackedRefs_1.default.from(text);\n return packed.refs;\n }\n // List all the refs that match the `filepath` prefix\n static async listRefs(fileSystem, gitdir, filepath) {\n const packedMap = GitRefManager.packedRefs(fileSystem, gitdir);\n let files = [];\n try {\n files = await recursiveDirectoryWalk(`${gitdir}/${filepath}`, fileSystem);\n files = files.map((x) => x.replace(`${gitdir}/${filepath}/`, ''));\n }\n catch (err) {\n files = [];\n }\n for (let key of (await packedMap).keys()) {\n // filter by prefix\n if (key.startsWith(filepath)) {\n // remove prefix\n key = key.replace(filepath + '/', '');\n // Don't include duplicates; the loose files have precedence anyway\n if (!files.includes(key)) {\n files.push(key);\n }\n }\n }\n // since we just appended things onto an array, we need to sort them now\n files.sort(compareRefNames);\n return files;\n }\n static async resolve(fileSystem, gitdir, ref, depth) {\n if (depth !== undefined) {\n depth--;\n if (depth === -1) {\n return ref;\n }\n }\n // Is it a ref pointer?\n if (ref.startsWith('ref: ')) {\n ref = ref.slice('ref: '.length);\n return GitRefManager.resolve(fileSystem, gitdir, ref, depth);\n }\n // Is it a complete and valid SHA?\n if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) {\n return ref;\n }\n // We need to alternate between the file system and the packed-refs\n const packedMap = await GitRefManager.packedRefs(fileSystem, gitdir);\n // Look in all the proper paths, in this order\n const allpaths = refpaths(ref).filter((p) => !GIT_FILES.includes(p)); // exclude git system files (#709)\n for (const ref of allpaths) {\n const sha = fileSystem.readFileSync(`${gitdir}/${ref}`, { encoding: 'utf8' }).toString() || packedMap.get(ref);\n if (sha) {\n return GitRefManager.resolve(fileSystem, gitdir, sha.trim(), depth);\n }\n }\n // Do we give up?\n throw Error('RefNotFound');\n }\n}\nexports.default = GitRefManager;\n","module.exports = require(\"pako\");","\"use strict\";\n// The amount of work that went into crafting these cases to handle\n// -0 (just so we don't lose that information when parsing and reconstructing)\n// but can also default to +0 was extraordinary.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction simpleSign(n) {\n return Math.sign(n) || (Object.is(n, -0) ? -1 : 1);\n}\nfunction negateExceptForZero(n) {\n return n === 0 ? n : -n;\n}\nfunction formatTimezoneOffset(minutes) {\n let sign = simpleSign(negateExceptForZero(minutes));\n minutes = Math.abs(minutes);\n let hours = Math.floor(minutes / 60);\n minutes -= hours * 60;\n let strHours = String(hours);\n let strMinutes = String(minutes);\n if (strHours.length < 2)\n strHours = '0' + strHours;\n if (strMinutes.length < 2)\n strMinutes = '0' + strMinutes;\n return (sign === -1 ? '-' : '+') + strHours + strMinutes;\n}\nfunction parseTimezoneOffset(offset) {\n let [, sign, hours, minutes] = offset.match(/(\\+|-)(\\d\\d)(\\d\\d)/);\n minutes = (sign === '+' ? 1 : -1) * (Number(hours) * 60 + Number(minutes));\n return negateExceptForZero(minutes);\n}\nfunction parseAuthor(author) {\n let [, name, email, timestamp, offset] = author.match(/^(.*) <(.*)> (.*) (.*)$/);\n return {\n name: name,\n email: email,\n timestamp: Number(timestamp),\n timezoneOffset: parseTimezoneOffset(offset),\n };\n}\nfunction normalize(str) {\n // remove all \n str = str.replace(/\\r/g, '');\n // no extra newlines up front\n str = str.replace(/^\\n+/, '');\n // and a single newline at the end\n str = str.replace(/\\n+$/, '') + '\\n';\n return str;\n}\nfunction indent(str) {\n return (str\n .trim()\n .split('\\n')\n .map((x) => ' ' + x)\n .join('\\n') + '\\n');\n}\nfunction outdent(str) {\n return str\n .split('\\n')\n .map((x) => x.replace(/^ /, ''))\n .join('\\n');\n}\n// TODO: Make all functions have static async signature?\nclass GitCommit {\n constructor(commit) {\n if (typeof commit === 'string') {\n this._commit = commit;\n }\n else if (Buffer.isBuffer(commit)) {\n this._commit = commit.toString('utf8');\n }\n else if (typeof commit === 'object') {\n this._commit = GitCommit.render(commit);\n }\n else {\n throw new Error('invalid type passed to GitCommit constructor');\n }\n }\n static fromPayloadSignature({ payload, signature }) {\n let headers = GitCommit.justHeaders(payload);\n let message = GitCommit.justMessage(payload);\n let commit = normalize(headers + '\\ngpgsig' + indent(signature) + '\\n' + message);\n return new GitCommit(commit);\n }\n static from(commit) {\n return new GitCommit(commit);\n }\n toObject() {\n return Buffer.from(this._commit, 'utf8');\n }\n // Todo: allow setting the headers and message\n headers() {\n return this.parseHeaders();\n }\n // Todo: allow setting the headers and message\n message() {\n return GitCommit.justMessage(this._commit);\n }\n parse() {\n return Object.assign({ message: this.message() }, this.headers());\n }\n static justMessage(commit) {\n return normalize(commit.slice(commit.indexOf('\\n\\n') + 2));\n }\n static justHeaders(commit) {\n return commit.slice(0, commit.indexOf('\\n\\n'));\n }\n parseHeaders() {\n let headers = GitCommit.justHeaders(this._commit).split('\\n');\n let hs = [];\n for (let h of headers) {\n if (h[0] === ' ') {\n // combine with previous header (without space indent)\n hs[hs.length - 1] += '\\n' + h.slice(1);\n }\n else {\n hs.push(h);\n }\n }\n let obj = {\n parent: [],\n };\n for (let h of hs) {\n let key = h.slice(0, h.indexOf(' '));\n let value = h.slice(h.indexOf(' ') + 1);\n if (Array.isArray(obj[key])) {\n obj[key].push(value);\n }\n else {\n obj[key] = value;\n }\n }\n if (obj.author) {\n obj.author = parseAuthor(obj.author);\n }\n if (obj.committer) {\n obj.committer = parseAuthor(obj.committer);\n }\n return obj;\n }\n static renderHeaders(obj) {\n let headers = '';\n if (obj.tree) {\n headers += `tree ${obj.tree}\\n`;\n }\n else {\n headers += `tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904\\n`; // the null tree\n }\n if (obj.parent) {\n if (obj.parent.length === undefined) {\n throw new Error(`commit 'parent' property should be an array`);\n }\n for (let p of obj.parent) {\n headers += `parent ${p}\\n`;\n }\n }\n let author = obj.author;\n headers += `author ${author.name} <${author.email}> ${author.timestamp} ${formatTimezoneOffset(author.timezoneOffset)}\\n`;\n let committer = obj.committer || obj.author;\n headers += `committer ${committer.name} <${committer.email}> ${committer.timestamp} ${formatTimezoneOffset(committer.timezoneOffset)}\\n`;\n if (obj.gpgsig) {\n headers += 'gpgsig' + indent(obj.gpgsig);\n }\n return headers;\n }\n static render(obj) {\n return GitCommit.renderHeaders(obj) + '\\n' + normalize(obj.message);\n }\n render() {\n return this._commit;\n }\n withoutSignature() {\n let commit = normalize(this._commit);\n if (commit.indexOf('\\ngpgsig') === -1)\n return commit;\n let headers = commit.slice(0, commit.indexOf('\\ngpgsig'));\n let message = commit.slice(commit.indexOf('-----END PGP SIGNATURE-----\\n') + '-----END PGP SIGNATURE-----\\n'.length);\n return normalize(headers + '\\n' + message);\n }\n isolateSignature() {\n let signature = this._commit.slice(this._commit.indexOf('-----BEGIN PGP SIGNATURE-----'), this._commit.indexOf('-----END PGP SIGNATURE-----') + '-----END PGP SIGNATURE-----'.length);\n return outdent(signature);\n }\n}\nexports.default = GitCommit;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs_1 = __importDefault(require(\"fs\"));\nconst pako_1 = __importDefault(require(\"pako\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst GitObject_1 = __importDefault(require(\"./GitObject\"));\nconst PackfileCache = new Map();\nclass GitObjectManager {\n static async read(fileSystem, gitdir, oid, format = 'content') {\n // Look for it in the loose object directory.\n let file = fileSystem.readFileSync(`${gitdir}/objects/${oid.slice(0, 2)}/${oid.slice(2)}`);\n let source = `./objects/${oid.slice(0, 2)}/${oid.slice(2)}`;\n // Check to see if it's in a packfile.\n if (!file) {\n // Curry the current read method so that the packfile un-deltification\n // process can acquire external ref-deltas.\n const getExternalRefDelta = (oid) => GitObjectManager.read(fileSystem, gitdir, oid);\n // Iterate through all the .pack files\n let list = fs_1.default.readdirSync(path_1.default.join(gitdir, '/objects/pack'));\n list = list.filter((x) => x.endsWith('.pack'));\n for (let filename of list) {\n // Try to get the packfile from the in-memory cache\n let p = PackfileCache.get(filename);\n // If the packfile DOES have the oid we're looking for...\n if (p.offsets.has(oid)) {\n // Make sure the packfile is loaded in memory\n if (!p.pack) {\n const pack = fileSystem.readFileSync(`${gitdir}/objects/pack/${filename}`);\n await p.load({ pack });\n }\n // Get the resolved git object from the packfile\n let result = await p.read({ oid, getExternalRefDelta });\n result.source = `./objects/pack/${filename}`;\n return result;\n }\n }\n }\n // Check to see if it's in shallow commits.\n if (!file) {\n let text = fileSystem.readFileSync(`${gitdir}/shallow`, { encoding: 'utf8' });\n if (text !== null && text.includes(oid)) {\n throw new Error(`ReadShallowObjectFail: ${oid}`);\n }\n }\n // Finally\n if (!file) {\n throw new Error(`ReadObjectFail: ${oid}`);\n }\n if (format === 'deflated') {\n return { format: 'deflated', object: file, source };\n }\n let buffer = Buffer.from(pako_1.default.inflate(file));\n if (format === 'wrapped') {\n return { format: 'wrapped', object: buffer, source };\n }\n let { type, object } = GitObject_1.default.unwrap({ oid, buffer });\n if (format === 'content')\n return { type, format: 'content', object, source };\n }\n}\nexports.default = GitObjectManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Address {\n constructor(ip, port) {\n this.ip = ip;\n this.port = port;\n }\n /**\n * Create an address object from a address string\n * @param addressString Address string in the format of `${this.ip}:${this.port}`\n */\n static parse(addressString) {\n const components = addressString.split(':');\n const ip = components[0];\n const port = components[1];\n return new Address(ip, port);\n }\n /**\n * Create an address object from a net.AddressInfo\n * @param addressInfo AddressInfo of desired address\n */\n static fromAddressInfo(addressInfo) {\n const ip = addressInfo.address == '::' ? 'localhost' : addressInfo.address;\n return new Address(ip, addressInfo.port.toString());\n }\n /**\n * Convert address into string of format `${this.ip}:${this.port}`\n */\n toString() {\n return `${this.ip}:${this.port}`;\n }\n}\nexports.Address = Address;\nAddress.prototype.toString = function () {\n return `${this.ip}:${this.port}`;\n};\nclass PeerInfo {\n constructor(pubKey, addresses = [], connectedAddr) {\n this.publicKey = pubKey;\n this.addresses = new Set(addresses.map((addr) => {\n return Address.parse(addr);\n }));\n this.connectedAddr = connectedAddr ? Address.parse(connectedAddr) : undefined;\n }\n /**\n * Sets the main server address for the peer\n * @param address Main server address for peer\n */\n connect(address) {\n if (!this.addresses.has(address)) {\n this.addresses.add(address);\n }\n this.connectedAddr = address;\n }\n /**\n * Clears the main server address for the peer\n */\n disconnect() {\n this.connectedAddr = undefined;\n }\n get AdressStringList() {\n return Array.from(this.addresses.values()).map((addr) => {\n return addr.toString();\n });\n }\n}\nexports.default = PeerInfo;\n","module.exports = require(\"isomorphic-git\");","module.exports = require(\"encryptedfs\");","module.exports = require(\"virtualfs\");","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Agent_1 = require(\"../../../proto/js/Agent\");\nconst { AgentMessage, AgentMessageType, CreateSecretRequestMessage, CreateSecretResponseMessage, DecryptFileRequestMessage, DecryptFileResponseMessage, DeleteKeyRequestMessage, DeleteKeyResponseMessage, DeriveKeyRequestMessage, DeriveKeyResponseMessage, DestroySecretRequestMessage, DestroySecretResponseMessage, DestroyVaultRequestMessage, DestroyVaultResponseMessage, EncryptFileRequestMessage, EncryptFileResponseMessage, ErrorMessage, GetPrimaryKeyPairRequestMessage, GetPrimaryKeyPairResponseMessage, GetSecretRequestMessage, GetSecretResponseMessage, GetKeyRequestMessage, GetKeyResponseMessage, ListKeysRequestMessage, ListKeysResponseMessage, ListNodesRequestMessage, ListNodesResponseMessage, ListSecretsRequestMessage, ListSecretsResponseMessage, ListVaultsRequestMessage, ListVaultsResponseMessage, NewNodeRequestMessage, NewNodeResponseMessage, NewVaultRequestMessage, NewVaultResponseMessage, RegisterNodeRequestMessage, RegisterNodeResponseMessage, SignFileRequestMessage, SignFileResponseMessage, UpdateSecretRequestMessage, UpdateSecretResponseMessage, VerifyFileRequestMessage, VerifyFileResponseMessage, } = Agent_1.agent;\nclass PolykeyClient {\n constructor(getStream) {\n this.getStream = getStream;\n }\n async sendRequestToAgent(request) {\n const stream = this.getStream();\n const responseList = await new Promise((resolve, reject) => {\n try {\n const responseList = [];\n stream.on('data', (data) => {\n if (data instanceof Uint8Array) {\n responseList.push(data);\n }\n else {\n responseList.push(...data);\n }\n });\n stream.on('error', (err) => {\n reject(err);\n });\n stream.on('end', () => {\n resolve(responseList);\n });\n if (!stream.writableEnded) {\n stream.write(request);\n }\n }\n catch (err) {\n reject(err);\n }\n });\n return responseList;\n }\n async handleAgentCommunication(type, nodePath, request) {\n // Encode message and sent\n const agentMessage = AgentMessage.encode({\n type: type,\n isResponse: false,\n nodePath: nodePath,\n subMessage: request,\n }).finish();\n const responseList = await this.sendRequestToAgent(agentMessage);\n const agentMessageList = [];\n for (const response of responseList.values()) {\n const { subMessage, type } = AgentMessage.decode(response);\n if (type == AgentMessageType.ERROR) {\n const { error } = ErrorMessage.decode(subMessage);\n const reason = new Error(`Agent Error: ${error}`);\n throw reason;\n }\n else {\n agentMessageList.push(AgentMessage.decode(response));\n }\n }\n return agentMessageList;\n }\n async registerNode(path, passphrase) {\n var _a;\n const registerNodeRequest = RegisterNodeRequestMessage.encode({ passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.REGISTER_NODE, path, registerNodeRequest);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.REGISTER_NODE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = RegisterNodeResponseMessage.decode(subMessage);\n return successful;\n }\n async newNode(path, name, email, passphrase, nbits) {\n var _a;\n const newNodeRequest = NewNodeRequestMessage.encode({ name, email, passphrase, nbits }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.NEW_NODE, path, newNodeRequest);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.NEW_NODE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = NewNodeResponseMessage.decode(subMessage);\n return successful;\n }\n async listNodes(unlockedOnly = true) {\n var _a;\n const newNodeRequest = ListNodesRequestMessage.encode({ unlockedOnly }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_NODES, undefined, newNodeRequest);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_NODES)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { nodes } = ListNodesResponseMessage.decode(subMessage);\n return nodes;\n }\n /////////////////////\n // Key commands //\n /////////////////////\n async deriveKey(nodePath, keyName, passphrase) {\n var _a;\n const request = DeriveKeyRequestMessage.encode({ keyName, passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DERIVE_KEY, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DERIVE_KEY)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DeriveKeyResponseMessage.decode(subMessage);\n return successful;\n }\n async deleteKey(nodePath, keyName) {\n var _a;\n const request = DeleteKeyRequestMessage.encode({ keyName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DELETE_KEY, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DELETE_KEY)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DeleteKeyResponseMessage.decode(subMessage);\n return successful;\n }\n async listKeys(nodePath) {\n var _a;\n const request = ListKeysRequestMessage.encode({}).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_KEYS, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_KEYS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { keyNames } = ListKeysResponseMessage.decode(subMessage);\n return keyNames;\n }\n async getKey(nodePath, keyName) {\n var _a;\n const request = GetKeyRequestMessage.encode({ keyName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_KEY, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.GET_KEY)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { keyContent } = GetKeyResponseMessage.decode(subMessage);\n return keyContent;\n }\n async getPrimaryKeyPair(nodePath, includePrivateKey = false) {\n var _a;\n const request = GetPrimaryKeyPairRequestMessage.encode({ includePrivateKey }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_PRIMARY_KEYPAIR, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.GET_PRIMARY_KEYPAIR)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { publicKey, privateKey } = GetPrimaryKeyPairResponseMessage.decode(subMessage);\n return { publicKey, privateKey };\n }\n /////////////////////\n // Crypto commands //\n /////////////////////\n async signFile(nodePath, filePath, privateKeyPath, passphrase) {\n var _a;\n const request = SignFileRequestMessage.encode({ filePath, privateKeyPath, passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.SIGN_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.SIGN_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { signaturePath } = SignFileResponseMessage.decode(subMessage);\n return signaturePath;\n }\n async verifyFile(nodePath, filePath, publicKeyPath) {\n var _a;\n const request = VerifyFileRequestMessage.encode({ filePath, publicKeyPath }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.VERIFY_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.VERIFY_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { verified } = VerifyFileResponseMessage.decode(subMessage);\n return verified;\n }\n async encryptFile(nodePath, filePath, publicKeyPath) {\n var _a;\n const request = EncryptFileRequestMessage.encode({ filePath, publicKeyPath }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.ENCRYPT_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.ENCRYPT_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { encryptedPath } = EncryptFileResponseMessage.decode(subMessage);\n return encryptedPath;\n }\n async decryptFile(nodePath, filePath, privateKeyPath, passphrase) {\n var _a;\n const request = DecryptFileRequestMessage.encode({ filePath, privateKeyPath, passphrase }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DECRYPT_FILE, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DECRYPT_FILE)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { decryptedPath } = DecryptFileResponseMessage.decode(subMessage);\n return decryptedPath;\n }\n //////////////////////\n // Vault Operations //\n //////////////////////\n async listVaults(nodePath) {\n var _a;\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_VAULTS, nodePath);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_VAULTS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { vaultNames } = ListVaultsResponseMessage.decode(subMessage);\n return vaultNames;\n }\n async newVault(nodePath, vaultName) {\n var _a;\n const request = NewVaultRequestMessage.encode({ vaultName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.NEW_VAULT, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.NEW_VAULT)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = NewVaultResponseMessage.decode(subMessage);\n return successful;\n }\n async destroyVault(nodePath, vaultName) {\n var _a;\n const request = DestroyVaultRequestMessage.encode({ vaultName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DESTROY_VAULT, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DESTROY_VAULT)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DestroyVaultResponseMessage.decode(subMessage);\n return successful;\n }\n ///////////////////////\n // Secret Operations //\n ///////////////////////\n async listSecrets(nodePath, vaultName) {\n var _a;\n const request = ListSecretsRequestMessage.encode({ vaultName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.LIST_SECRETS, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.LIST_SECRETS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { secretNames } = ListSecretsResponseMessage.decode(subMessage);\n return secretNames;\n }\n async createSecret(nodePath, vaultName, secretName, secret) {\n var _a;\n let request;\n if (typeof secret == 'string') {\n request = CreateSecretRequestMessage.encode({ vaultName, secretName, secretPath: secret }).finish();\n }\n else {\n request = CreateSecretRequestMessage.encode({ vaultName, secretName, secretContent: secret }).finish();\n }\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.CREATE_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.CREATE_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = CreateSecretResponseMessage.decode(subMessage);\n return successful;\n }\n async destroySecret(nodePath, vaultName, secretName) {\n var _a;\n const request = DestroySecretRequestMessage.encode({ vaultName, secretName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.DESTROY_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.DESTROY_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = DestroySecretResponseMessage.decode(subMessage);\n return successful;\n }\n async getSecret(nodePath, vaultName, secretName) {\n var _a;\n const request = GetSecretRequestMessage.encode({ vaultName, secretName }).finish();\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.GET_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.GET_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { secret } = GetSecretResponseMessage.decode(subMessage);\n return Buffer.from(secret);\n }\n async updateSecret(nodePath, vaultName, secretName, secret) {\n var _a;\n let request;\n if (typeof secret == 'string') {\n request = UpdateSecretRequestMessage.encode({ vaultName, secretName, secretPath: secret }).finish();\n }\n else {\n request = UpdateSecretRequestMessage.encode({ vaultName, secretName, secretContent: secret }).finish();\n }\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.UPDATE_SECRET, nodePath, request);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.UPDATE_SECRET)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const { successful } = UpdateSecretResponseMessage.decode(subMessage);\n return successful;\n }\n ///////////////////\n // Agent control //\n ///////////////////\n async getAgentStatus() {\n var _a;\n try {\n const encodedResponse = await this.handleAgentCommunication(AgentMessageType.STATUS);\n const subMessage = (_a = encodedResponse.find((r) => r.type == AgentMessageType.STATUS)) === null || _a === void 0 ? void 0 : _a.subMessage;\n if (!subMessage) {\n throw Error('agent did not respond');\n }\n const status = Buffer.from(subMessage).toString();\n return status;\n }\n catch (err) {\n if (err.toString().match(/ECONNRESET|ENOENT|ECONNRESET/)) {\n return 'stopped';\n }\n throw err;\n }\n }\n async stopAgent() {\n try {\n // Tell it to start shutting and wait for response\n await this.handleAgentCommunication(AgentMessageType.STOP_AGENT);\n return true;\n }\n catch (err) {\n return (await this.getAgentStatus()) != 'online';\n }\n }\n}\nexports.default = PolykeyClient;\n","module.exports = require(\"../../proto/js/Agent\");","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst os_1 = __importDefault(require(\"os\"));\nconst fs_1 = __importDefault(require(\"fs\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst kbpgp_1 = __importDefault(require(\"kbpgp\"));\nconst crypto_1 = __importDefault(require(\"crypto\"));\nconst util_1 = require(\"util\");\nclass KeyManager {\n constructor(polyKeyPath = `${os_1.default.homedir()}/.polykey`, fileSystem, useWebWorkers = false, workerPool) {\n this.primaryKeyPair = { private: null, public: null };\n this.metadata = {\n privateKeyPath: null,\n publicKeyPath: null,\n pkiKeyPath: null,\n pkiCertPath: null,\n caCertPath: null,\n };\n /////////\n // PKI //\n /////////\n this.pkiInfo = { key: null, cert: null, caCert: null };\n this.useWebWorkers = useWebWorkers;\n this.workerPool = workerPool;\n this.derivedKeys = new Map();\n this.fileSystem = fileSystem;\n // Load key manager metadata\n this.polykeyPath = polyKeyPath;\n this.keypairPath = path_1.default.join(polyKeyPath, '.keys');\n if (!this.fileSystem.existsSync(this.keypairPath)) {\n this.fileSystem.mkdirSync(this.keypairPath, { recursive: true });\n }\n this.metadataPath = path_1.default.join(this.keypairPath, 'metadata');\n this.derivedKeysPath = path_1.default.join(this.keypairPath, 'derived-keys');\n this.loadMetadata();\n // Load keys if they were provided\n if (this.metadata.privateKeyPath && this.metadata.publicKeyPath) {\n // Load files into memory\n this.loadKeyPair(this.metadata.publicKeyPath, this.metadata.privateKeyPath);\n }\n /////////\n // PKI //\n /////////\n // Load pki keys and certs\n if (this.metadata.pkiKeyPath) {\n this.pkiInfo.key = fs_1.default.readFileSync(this.metadata.pkiKeyPath);\n }\n if (this.metadata.pkiCertPath) {\n this.pkiInfo.cert = fs_1.default.readFileSync(this.metadata.pkiCertPath);\n }\n if (this.metadata.caCertPath) {\n this.pkiInfo.caCert = fs_1.default.readFileSync(this.metadata.caCertPath);\n }\n this.loadPKIInfo(this.pkiInfo.key, this.pkiInfo.cert, this.pkiInfo.caCert, true);\n }\n get identityLoaded() {\n return this.primaryIdentity ? true : false;\n }\n /**\n * Generates a new assymetric key pair (publicKey and privateKey).\n * @param name Name of keypair owner\n * @param email Email of keypair owner\n * @param passphrase Passphrase to lock the keypair\n * @param nbits Size of the new keypair\n * @param replacePrimary If true, the generated keypair becomes the new primary identity of the key manager\n * @param progressCallback A progress hook for keypair generation\n */\n async generateKeyPair(name, email, passphrase, nbits = 4096, replacePrimary = false, progressCallback) {\n // kbpgp doesn't seem to work for small nbits so set a minimum of 1024\n if (nbits < 1024) {\n throw Error('nbits must be greater than 1024 for keypair generation');\n }\n // Define options\n const flags = kbpgp_1.default['const'].openpgp;\n const params = {\n asp: progressCallback ? new kbpgp_1.default.ASP({ progress_hook: progressCallback }) : undefined,\n userid: `${name} <${email}>`,\n primary: {\n nbits: nbits,\n flags: flags.certify_keys | flags.sign_data | flags.auth | flags.encrypt_comm | flags.encrypt_storage,\n expire_in: 0,\n },\n subkeys: [],\n };\n const identity = await util_1.promisify(kbpgp_1.default.KeyManager.generate)(params);\n await util_1.promisify(identity.sign.bind(identity))({});\n // Export pub key first\n const publicKey = await util_1.promisify(identity.export_pgp_public.bind(identity))({});\n // Finally export priv key\n const privateKey = await util_1.promisify(identity.export_pgp_private.bind(identity))({ passphrase: passphrase });\n // Resolve to parent promise\n const keypair = { private: privateKey, public: publicKey };\n if (replacePrimary) {\n // Set the new keypair\n this.primaryKeyPair = keypair;\n // Set the new identity\n this.primaryIdentity = identity;\n // Overwrite in memory\n const privateKeyPath = path_1.default.join(this.keypairPath, 'private_key');\n const publicKeyPath = path_1.default.join(this.keypairPath, 'public_key');\n await this.fileSystem.promises.writeFile(privateKeyPath, keypair.private);\n await this.fileSystem.promises.writeFile(publicKeyPath, keypair.public);\n // Set metadata\n this.metadata.privateKeyPath = privateKeyPath;\n this.metadata.publicKeyPath = publicKeyPath;\n this.writeMetadata();\n }\n return keypair;\n }\n /**\n * Get the primary keypair\n */\n getKeyPair() {\n return this.primaryKeyPair;\n }\n /**\n * Determines whether public key is loaded or not\n */\n hasPublicKey() {\n return this.primaryKeyPair.public ? true : false;\n }\n /**\n * Get the public key of the primary keypair\n */\n getPublicKey() {\n if (!this.primaryKeyPair.public) {\n throw Error('Public key does not exist in memory');\n }\n return this.primaryKeyPair.public;\n }\n /**\n * Get the private key of the primary keypair\n */\n getPrivateKey() {\n if (!this.primaryKeyPair.private) {\n throw Error('Private key does not exist in memory');\n }\n return this.primaryKeyPair.private;\n }\n /**\n * Loads the keypair into the key manager as the primary identity\n * @param publicKey Public Key\n * @param privateKey Private Key\n */\n loadKeyPair(publicKey, privateKey) {\n this.loadPrivateKey(privateKey);\n this.loadPublicKey(publicKey);\n }\n /**\n * Loads the private key into the primary keypair\n * @param privateKey Private Key\n */\n loadPrivateKey(privateKey) {\n let keyBuffer;\n if (typeof privateKey === 'string') {\n keyBuffer = this.fileSystem.readFileSync(privateKey);\n this.metadata.privateKeyPath = privateKey;\n this.writeMetadata();\n }\n else {\n keyBuffer = privateKey;\n }\n this.primaryKeyPair.private = keyBuffer.toString();\n }\n /**\n * Loads the public key into the primary keypair\n * @param publicKey Public Key\n */\n loadPublicKey(publicKey) {\n let keyBuffer;\n if (typeof publicKey === 'string') {\n keyBuffer = this.fileSystem.readFileSync(publicKey);\n this.metadata.publicKeyPath = publicKey;\n this.writeMetadata();\n }\n else {\n keyBuffer = publicKey;\n }\n this.primaryKeyPair.public = keyBuffer.toString();\n }\n /**\n * Loads the primary identity into the key manager from the existing keypair\n * @param passphrase Passphrase to unlock the private key\n */\n async unlockIdentity(passphrase) {\n const publicKey = this.getPublicKey();\n const privateKey = this.getPrivateKey();\n const identity = await util_1.promisify(kbpgp_1.default.KeyManager.import_from_armored_pgp)({ armored: publicKey });\n await util_1.promisify(identity.merge_pgp_private.bind(identity))({ armored: privateKey });\n if (identity.is_pgp_locked.bind(identity)()) {\n await util_1.promisify(identity.unlock_pgp.bind(identity))({ passphrase: passphrase });\n }\n this.primaryIdentity = identity;\n }\n /**\n * Export the primary private key to a specified location\n * @param path Destination path\n */\n exportPrivateKey(path) {\n this.fileSystem.writeFileSync(path, this.primaryKeyPair.private);\n this.metadata.privateKeyPath = path;\n this.writeMetadata();\n }\n /**\n * Export the primary public key to a specified location\n * @param path Destination path\n */\n exportPublicKey(path) {\n this.fileSystem.writeFileSync(path, this.primaryKeyPair.public);\n this.metadata.publicKeyPath = path;\n this.writeMetadata();\n }\n /**\n * Asynchronously Generates a new symmetric key and stores it in the key manager\n * @param name Unique name of the generated key\n * @param passphrase Passphrase to derive the key from\n * @param storeKey Whether to store the key in the key manager\n */\n async generateKey(name, passphrase, storeKey = true) {\n const salt = crypto_1.default.randomBytes(32);\n const key = await util_1.promisify(crypto_1.default.pbkdf2)(passphrase, salt, 10000, 256 / 8, 'sha256');\n if (storeKey) {\n this.derivedKeys[name] = key;\n await this.writeMetadata();\n }\n return key;\n }\n /**\n * Deletes a derived symmetric key from the key manager\n * @param name Name of the key to be deleted\n */\n async deleteKey(name) {\n const successful = delete this.derivedKeys[name];\n await this.writeMetadata();\n return successful;\n }\n /**\n * List all keys in the current keymanager\n */\n listKeys() {\n return Object.keys(this.derivedKeys);\n }\n /**\n * Synchronously imports an existing key from file or Buffer\n * @param name Unique name of the imported key\n * @param key Key to be imported\n */\n importKeySync(name, key) {\n if (typeof key === 'string') {\n this.derivedKeys[name] = this.fileSystem.readFileSync(key);\n }\n else {\n this.derivedKeys[name] = key;\n }\n }\n /**\n * Asynchronously imports an existing key from file or Buffer\n * @param name Unique name of the imported key\n * @param key Key to be imported\n */\n async importKey(name, key) {\n if (typeof key === 'string') {\n this.derivedKeys[name] = await this.fileSystem.promises.readFile(key);\n }\n else {\n this.derivedKeys[name] = key;\n }\n }\n /**\n * Synchronously exports an existing key from file or Buffer\n * @param name Name of the key to be exported\n * @param dest Destination path\n * @param createPath If set to true, the path is recursively created\n */\n exportKeySync(name, dest, createPath) {\n if (!this.derivedKeys.has(name)) {\n throw Error(`There is no key loaded for name: ${name}`);\n }\n if (createPath) {\n this.fileSystem.mkdirSync(path_1.default.dirname(dest), { recursive: true });\n }\n this.fileSystem.writeFileSync(dest, this.derivedKeys[name]);\n }\n /**\n * Asynchronously exports an existing key from file or Buffer\n * @param name Name of the key to be exported\n * @param dest Destination path\n * @param createPath If set to true, the path is recursively created\n */\n async exportKey(name, dest, createPath) {\n if (!this.derivedKeys.has(name)) {\n throw Error(`There is no key loaded for name: ${name}`);\n }\n if (createPath) {\n await this.fileSystem.promises.mkdir(path_1.default.dirname(dest), { recursive: true });\n }\n await this.fileSystem.promises.writeFile(dest, this.derivedKeys[name]);\n }\n /**\n * Loads an identity from the given public key\n * @param publicKey Buffer containing the public key\n */\n async getIdentityFromPublicKey(publicKey) {\n const identity = await util_1.promisify(kbpgp_1.default.KeyManager.import_from_armored_pgp)({ armored: publicKey });\n return identity;\n }\n /**\n * Loads an identity from the given private key\n * @param publicKey Buffer containing the public key\n */\n async getIdentityFromPrivateKey(privateKey, passphrase) {\n const identity = await util_1.promisify(kbpgp_1.default.KeyManager.import_from_armored_pgp)({ armored: privateKey });\n if (identity.is_pgp_locked()) {\n await util_1.promisify(identity.unlock_pgp.bind(identity))({ passphrase });\n }\n return identity;\n }\n /**\n * Signs the given data with the provided key or the primary key if none is specified\n * @param data Buffer or file containing the data to be signed\n * @param privateKey Buffer containing the key to sign with. Defaults to primary private key if no key is given.\n * @param keyPassphrase Required if privateKey is provided.\n */\n async signData(data, privateKey, keyPassphrase) {\n let resolvedIdentity;\n if (privateKey) {\n if (!keyPassphrase) {\n throw Error('passphrase for private key was not provided');\n }\n resolvedIdentity = await this.getIdentityFromPrivateKey(privateKey, keyPassphrase);\n }\n else if (this.primaryIdentity) {\n resolvedIdentity = this.primaryIdentity;\n }\n else {\n throw Error('key pair is not loaded');\n }\n if (this.useWebWorkers && this.workerPool) {\n const workerResponse = await this.workerPool.queue(async (workerCrypto) => {\n return await workerCrypto.signData(data, resolvedIdentity);\n });\n return workerResponse;\n }\n else {\n const params = {\n msg: data.toString(),\n sign_with: resolvedIdentity,\n };\n const result_string = await util_1.promisify(kbpgp_1.default.box)(params);\n return Buffer.from(result_string);\n }\n }\n /**\n * Signs the given file with the provided key or the primary key if none is specified\n * @param filePath Path to file containing the data to be signed\n * @param privateKey The key to sign with. Defaults to primary public key if no key is given.\n * @param keyPassphrase Required if privateKey is provided.\n */\n async signFile(filePath, privateKey, keyPassphrase) {\n // Get key if provided\n let keyBuffer;\n if (privateKey) {\n if (typeof privateKey === 'string') {\n // Path\n // Read in from fs\n keyBuffer = this.fileSystem.readFileSync(privateKey);\n }\n else {\n // Buffer\n keyBuffer = privateKey;\n }\n }\n // Read file into buffer\n const buffer = this.fileSystem.readFileSync(filePath);\n // Sign the buffer\n const signedBuffer = await this.signData(buffer, keyBuffer, keyPassphrase);\n // Write buffer to signed file\n const signedPath = `${filePath}.sig`;\n this.fileSystem.writeFileSync(signedPath, signedBuffer);\n return signedPath;\n }\n /**\n * Verifies the given data with the provided key or the primary key if none is specified\n * @param data Buffer or file containing the data to be verified\n * @param publicKey Buffer containing the key to verify with. Defaults to primary public key if no key is given.\n */\n async verifyData(data, publicKey) {\n const ring = new kbpgp_1.default.keyring.KeyRing();\n let resolvedIdentity;\n if (publicKey) {\n resolvedIdentity = await this.getIdentityFromPublicKey(publicKey);\n }\n else if (this.primaryIdentity) {\n resolvedIdentity = this.primaryIdentity;\n }\n else {\n throw Error('key pair is not loaded');\n }\n ring.add_key_manager(resolvedIdentity);\n if (this.useWebWorkers && this.workerPool) {\n const workerResponse = await this.workerPool.queue(async (workerCrypto) => {\n return await workerCrypto.verifyData(data, resolvedIdentity);\n });\n return workerResponse;\n }\n else {\n const params = {\n armored: data,\n keyfetch: ring,\n };\n const literals = await util_1.promisify(kbpgp_1.default.unbox)(params);\n // Get the identity that signed the data if any\n let dataSigner = literals[0].get_data_signer();\n // Retrieve the key manager associated with that data signer\n let keyManager;\n if (dataSigner) {\n keyManager = dataSigner.get_key_manager();\n }\n // If we know the pgp finger print then we say the data is verified.\n // Otherwise it is unverified.\n if (keyManager) {\n if (keyManager.get_pgp_fingerprint()) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n }\n }\n /**\n * Verifies the given file with the provided key or the primary key if none is specified\n * @param filePath Path to file containing the data to be verified\n * @param publicKey Buffer containing the key to verify with. Defaults to primary public key if no key is given.\n */\n async verifyFile(filePath, publicKey) {\n // Get key if provided\n let keyBuffer;\n if (publicKey) {\n if (typeof publicKey === 'string') {\n // Path\n // Read in from fs\n keyBuffer = this.fileSystem.readFileSync(publicKey);\n }\n else {\n // Buffer\n keyBuffer = publicKey;\n }\n }\n // Read in file buffer and signature\n const fileBuffer = this.fileSystem.readFileSync(filePath);\n const isVerified = await this.verifyData(fileBuffer, keyBuffer);\n return isVerified;\n }\n /**\n * Encrypts the given data for a specific public key\n * @param data The data to be encrypted\n * @param publicKey The key to encrypt for\n */\n async encryptData(data, publicKey) {\n let resolvedIdentity;\n if (publicKey) {\n resolvedIdentity = await this.getIdentityFromPublicKey(publicKey);\n }\n else if (this.primaryIdentity) {\n resolvedIdentity = this.primaryIdentity;\n }\n else {\n throw Error(`Identity could not be resolved for encrypting`);\n }\n if (this.useWebWorkers && this.workerPool) {\n const workerResponse = await this.workerPool.queue(async (workerCrypto) => {\n return await workerCrypto.encryptData(data, resolvedIdentity);\n });\n return workerResponse;\n }\n else {\n const params = {\n msg: data,\n encrypt_for: resolvedIdentity,\n };\n const result_string = await util_1.promisify(kbpgp_1.default.box)(params);\n return result_string;\n }\n }\n /**\n * Encrypts the given file for a specific public key\n * @param filePath Path to file containing the data to be encrypted\n * @param publicKey Buffer containing the key to verify with. Defaults to primary public key if no key is given.\n */\n async encryptFile(filePath, publicKey) {\n // Get key if provided\n let keyBuffer;\n if (publicKey) {\n if (typeof publicKey === 'string') {\n // Read in from fs\n keyBuffer = this.fileSystem.readFileSync(publicKey);\n }\n else {\n // Buffer\n keyBuffer = publicKey;\n }\n }\n // Read file into buffer\n const buffer = this.fileSystem.readFileSync(filePath);\n // Encrypt the buffer\n const encryptedBuffer = await this.encryptData(buffer, keyBuffer);\n // Write buffer to encrypted file\n this.fileSystem.writeFileSync(filePath, encryptedBuffer);\n return filePath;\n }\n /**\n * Decrypts the given data with the provided key or the primary key if none is given\n * @param data The data to be decrypted\n * @param privateKey The key to decrypt with. Defaults to primary private key if no key is given.\n * @param keyPassphrase Required if privateKey is provided.\n */\n async decryptData(data, privateKey, keyPassphrase) {\n var ring = new kbpgp_1.default.keyring.KeyRing();\n let resolvedIdentity;\n if (privateKey) {\n if (keyPassphrase) {\n resolvedIdentity = await this.getIdentityFromPrivateKey(privateKey, keyPassphrase);\n }\n else {\n throw Error('A key passphrase must be supplied if a privateKey is specified');\n }\n }\n else if (this.primaryIdentity) {\n resolvedIdentity = this.primaryIdentity;\n }\n else {\n throw Error('no identity available for decrypting');\n }\n if (this.useWebWorkers && this.workerPool) {\n const workerResponse = await this.workerPool.queue(async (workerCrypto) => {\n return await workerCrypto.decryptData(data, resolvedIdentity);\n });\n return workerResponse;\n }\n else {\n ring.add_key_manager(resolvedIdentity);\n const params = {\n armored: data.toString(),\n keyfetch: ring,\n };\n const literals = await util_1.promisify(kbpgp_1.default.unbox)(params);\n const decryptedData = Buffer.from(literals[0].toString());\n return decryptedData;\n }\n }\n /**\n * Decrypts the given file with the provided key or the primary key if none is given\n * @param filePath Path to file containing the data to be decrypted\n * @param privateKey The key to decrypt with. Defaults to primary private key if no key is given.\n * @param keyPassphrase Required if privateKey is provided.\n */\n async decryptFile(filePath, privateKey, keyPassphrase) {\n // Get key if provided\n let keyBuffer;\n if (privateKey) {\n if (typeof privateKey === 'string') {\n // Read in from fs\n keyBuffer = this.fileSystem.readFileSync(privateKey);\n }\n else {\n // Buffer\n keyBuffer = privateKey;\n }\n }\n // Read in file buffer\n const fileBuffer = this.fileSystem.readFileSync(filePath);\n // Decrypt file buffer\n const decryptedData = await this.decryptData(fileBuffer, keyBuffer, keyPassphrase);\n // Write buffer to decrypted file\n this.fileSystem.writeFileSync(filePath, decryptedData);\n return filePath;\n }\n /////////\n // PKI //\n /////////\n get PKIInfo() {\n return this.pkiInfo;\n }\n loadPKIInfo(key, cert, caCert, writeToFile = false) {\n if (key) {\n this.pkiInfo.key = key;\n }\n if (cert) {\n this.pkiInfo.cert = cert;\n }\n if (caCert) {\n this.pkiInfo.caCert = caCert;\n }\n if (writeToFile) {\n // Store in the metadata path folder\n const storagePath = path_1.default.dirname(this.metadataPath);\n if (key) {\n this.metadata.pkiKeyPath = path_1.default.join(storagePath, 'pki_private_key');\n fs_1.default.writeFileSync(this.metadata.pkiKeyPath, key);\n }\n if (cert) {\n this.metadata.pkiCertPath = path_1.default.join(storagePath, 'pki_cert');\n fs_1.default.writeFileSync(this.metadata.pkiCertPath, cert);\n }\n if (caCert) {\n this.metadata.caCertPath = path_1.default.join(storagePath, 'ca_cert');\n fs_1.default.writeFileSync(this.metadata.caCertPath, caCert);\n }\n }\n }\n /* ============ HELPERS =============== */\n /**\n * Get the key for a given name\n * @param name The unique name of the desired key\n */\n getKey(name) {\n return this.derivedKeys[name];\n }\n /**\n * Determines if the Key Manager has a certain key\n * @param name The unique name of the desired key\n */\n hasKey(name) {\n if (this.derivedKeys[name]) {\n return true;\n }\n return false;\n }\n async writeMetadata() {\n const metadata = JSON.stringify(this.metadata);\n this.fileSystem.writeFileSync(this.metadataPath, metadata);\n // Store the keys if identity is loaded\n if (this.identityLoaded) {\n const derivedKeys = JSON.stringify(this.derivedKeys);\n const encryptedMetadata = await this.encryptData(Buffer.from(derivedKeys));\n await this.fileSystem.promises.writeFile(this.derivedKeysPath, encryptedMetadata);\n }\n }\n async loadMetadata() {\n // Check if file exists\n if (this.fileSystem.existsSync(this.metadataPath)) {\n const metadata = this.fileSystem.readFileSync(this.metadataPath).toString();\n this.metadata = JSON.parse(metadata);\n if (this.identityLoaded && this.fileSystem.existsSync(this.derivedKeysPath)) {\n const encryptedMetadata = this.fileSystem.readFileSync(this.derivedKeysPath);\n const metadata = (await this.decryptData(encryptedMetadata)).toString();\n const derivedKeys = JSON.parse(metadata);\n for (const key of Object.keys(derivedKeys)) {\n this.derivedKeys[key] = Buffer.from(derivedKeys[key]);\n }\n }\n }\n }\n}\nexports.default = KeyManager;\n","module.exports = require(\"kbpgp\");","module.exports = require(\"util\");","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst os_1 = __importDefault(require(\"os\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst grpc = __importStar(require(\"@grpc/grpc-js\"));\nconst GitFrontend_1 = __importDefault(require(\"../git/GitFrontend\"));\nconst GitBackend_1 = __importDefault(require(\"../git/GitBackend\"));\nconst Peer_1 = require(\"../../../proto/js/Peer\");\nconst utils_1 = require(\"../utils\");\nconst PeerInfo_1 = __importStar(require(\"../peers/PeerInfo\"));\nconst MulticastBroadcaster_1 = __importDefault(require(\"../peers/MulticastBroadcaster\"));\nconst Git_grpc_pb_1 = require(\"../../../proto/compiled/Git_grpc_pb\");\nconst Git_pb_1 = require(\"../../../proto/compiled/Git_pb\");\nconst keybaseDiscovery = {\n name: 'Keybase',\n findUser: async (handle, service) => {\n const url = `https://keybase.io/_/api/1.0/user/lookup.json?${service}=${handle}`;\n try {\n const response = await fetch(url);\n const data = await response.json();\n const pubKey = data.them[0].public_keys.primary.bundle;\n return pubKey;\n }\n catch (err) {\n throw Error(`User was not found: ${err.message}`);\n }\n },\n};\nclass PeerManager {\n constructor(polykeyPath = `${os_1.default.homedir()}/.polykey`, fileSystem, keyManager, vaultManager, peerInfo, socialDiscoveryServices = []) {\n var _a;\n this.metadata = { localPeerInfo: null };\n this.serverStarted = false;\n this.fileSystem = fileSystem;\n this.fileSystem.mkdirSync(polykeyPath, { recursive: true });\n this.metadataPath = path_1.default.join(polykeyPath, '.peerMetadata');\n // Set given variables\n this.keyManager = keyManager;\n this.socialDiscoveryServices = socialDiscoveryServices;\n // Load metadata with peer info\n this.loadMetadata();\n // Load peer store and local peer info\n if (peerInfo) {\n this.localPeerInfo = peerInfo;\n this.writeMetadata();\n }\n else if (this.metadata.localPeerInfo) {\n this.localPeerInfo = this.metadata.localPeerInfo;\n }\n else if (this.keyManager.hasPublicKey()) {\n this.localPeerInfo = new PeerInfo_1.default(this.keyManager.getPublicKey());\n }\n this.peerStore = new Map();\n this.socialDiscoveryServices = [];\n this.socialDiscoveryServices.push(keybaseDiscovery);\n for (const service of socialDiscoveryServices) {\n this.socialDiscoveryServices.push(service);\n }\n this.multicastBroadcaster = new MulticastBroadcaster_1.default(this.addPeer, this.localPeerInfo, this.keyManager);\n this.peerConnections = new Map();\n /////////////////\n // GRPC Server //\n /////////////////\n this.gitBackend = new GitBackend_1.default(polykeyPath, ((vaultName) => vaultManager.getVault(vaultName).EncryptedFS).bind(vaultManager));\n this.server = new grpc.Server();\n // Add service\n this.server.addService(Git_grpc_pb_1.GitServerService, {\n requestInfo: this.requestInfo.bind(this),\n requestPack: this.requestPack.bind(this),\n });\n // Create the server credentials. SSL only if ca cert exists\n const pkiInfo = this.keyManager.PKIInfo;\n if (pkiInfo.caCert && pkiInfo.cert && pkiInfo.key) {\n this.credentials = grpc.ServerCredentials.createSsl(pkiInfo.caCert, [\n {\n private_key: pkiInfo.key,\n cert_chain: pkiInfo.cert,\n },\n ], true);\n }\n else {\n this.credentials = grpc.ServerCredentials.createInsecure();\n }\n this.server.bindAsync(`0.0.0.0:${(_a = process.env.PK_PORT) !== null && _a !== void 0 ? _a : 0}`, this.credentials, async (err, boundPort) => {\n if (err) {\n throw err;\n }\n else {\n const address = new PeerInfo_1.Address('localhost', boundPort.toString());\n this.server.start();\n while (!this.localPeerInfo) {\n await new Promise((r, _) => setTimeout(() => r(), 1000));\n }\n this.localPeerInfo.connect(address);\n this.serverStarted = true;\n }\n });\n }\n async requestInfo(call, callback) {\n const infoRequest = call.request;\n const vaultName = infoRequest.getVaultname();\n const infoReply = new Git_pb_1.InfoReply();\n infoReply.setVaultname(vaultName);\n infoReply.setBody(await this.gitBackend.handleInfoRequest(vaultName));\n callback(null, infoReply);\n }\n async requestPack(call, callback) {\n const packRequest = call.request;\n const vaultName = packRequest.getVaultname();\n const body = Buffer.from(packRequest.getBody_asB64(), 'base64');\n const reply = new Git_pb_1.PackReply();\n reply.setVaultname(vaultName);\n reply.setBody(await this.gitBackend.handlePackRequest(vaultName, body));\n callback(null, reply);\n }\n ////////////////\n // Peer store //\n ////////////////\n /**\n * Get the peer info of the current keynode\n */\n getLocalPeerInfo() {\n return this.localPeerInfo;\n }\n /**\n * Set the address of the active server\n * @param adress Address of active server\n */\n connectLocalPeerInfo(address) {\n this.localPeerInfo.connect(address);\n }\n /**\n * Add a peer's info to the peerStore\n * @param peerInfo Info of the peer to be added\n */\n addPeer(peerInfo) {\n this.peerStore.set(peerInfo.publicKey, peerInfo);\n }\n /**\n * Retrieves a peer for the given public key\n * @param publicKey Public key of the desired peer\n */\n getPeer(publicKey) {\n var _a;\n return (_a = this.peerStore.get(publicKey)) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Determines if the peerStore contains the desired peer\n * @param publicKey Public key of the desired peer\n */\n hasPeer(pubKey) {\n return this.peerStore.has(pubKey);\n }\n //////////////////////\n // Social discovery //\n //////////////////////\n /**\n * Finds an existing peer using multicast peer discovery\n * @param publicKey Public key of the desired peer\n */\n async findPubKey(publicKey) {\n return new Promise((resolve, reject) => {\n this.multicastBroadcaster.requestPeerContact(publicKey);\n this.multicastBroadcaster.on('found', (peerInfo) => {\n if (peerInfo.publicKey == publicKey) {\n resolve(peerInfo);\n }\n });\n this.multicastBroadcaster.on('timeout', (timedOutPubKey) => {\n if (timedOutPubKey == publicKey) {\n reject('The broadcaster stopped looking');\n }\n });\n });\n }\n /**\n * Finds an existing peer given a social service and handle\n * @param handle Username or handle of the user (e.g. @john-smith)\n * @param service Service on which to search for the user (e.g. github)\n */\n async findSocialUser(handle, service) {\n const tasks = [];\n for (const socialDiscovery of this.socialDiscoveryServices) {\n try {\n tasks.push(socialDiscovery.findUser(handle, service));\n }\n catch (error) {\n console.log(`Could not find user on this discovery service: ${socialDiscovery.name}`);\n }\n }\n const pubKeyOrFail = await utils_1.firstPromiseFulfilled(tasks);\n if (pubKeyOrFail.length > 1) {\n throw Error('Could not find public key from services');\n }\n const pubKeyFound = pubKeyOrFail[0];\n const peerInfo = await this.findPubKey(pubKeyFound);\n return peerInfo;\n }\n ///////////////////////\n // Peers Connections //\n ///////////////////////\n /**\n * Get a secure connection to the peer\n * @param peer Public key of an existing peer or address of new peer\n */\n connectToPeer(peer) {\n var _a;\n // Throw error if trying to connect to self\n if (peer == this.localPeerInfo.connectedAddr || peer == this.localPeerInfo.publicKey) {\n throw Error('Cannot connect to self');\n }\n let address;\n if (typeof peer == 'string') {\n const existingConnection = this.peerConnections.get(peer);\n if (existingConnection) {\n return existingConnection;\n }\n const peerAddress = (_a = this.getPeer(peer)) === null || _a === void 0 ? void 0 : _a.connectedAddr;\n if (peerAddress) {\n address = peerAddress;\n }\n else {\n throw Error('Peer does not exist in peer store');\n }\n }\n else {\n address = peer;\n }\n const conn = new GitFrontend_1.default(address, this.keyManager);\n if (typeof peer == 'string') {\n this.peerConnections.set(peer, conn);\n }\n return conn;\n }\n /* ============ HELPERS =============== */\n writeMetadata() {\n var _a;\n const peerInfo = this.localPeerInfo;\n const metadata = Peer_1.peer.PeerInfoMessage.encode({\n addresses: peerInfo.AdressStringList,\n connectedAddr: (_a = peerInfo.connectedAddr) === null || _a === void 0 ? void 0 : _a.toString(),\n pubKey: peerInfo.publicKey,\n }).finish();\n this.fileSystem.writeFileSync(this.metadataPath, metadata);\n }\n loadMetadata() {\n // Check if file exists\n if (this.fileSystem.existsSync(this.metadataPath)) {\n const metadata = this.fileSystem.readFileSync(this.metadataPath);\n const { addresses, connectedAddr, pubKey } = Peer_1.peer.PeerInfoMessage.decode(metadata);\n this.localPeerInfo = new PeerInfo_1.default(pubKey, addresses, connectedAddr);\n }\n }\n}\nexports.default = PeerManager;\n","\"use strict\";\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst grpc = __importStar(require(\"@grpc/grpc-js\"));\nconst Git_grpc_pb_1 = require(\"../../../proto/compiled/Git_grpc_pb\");\nconst Git_pb_1 = require(\"../../../proto/compiled/Git_pb\");\n/**\n * Responsible for converting HTTP messages from isomorphic-git into requests and sending them to a specific peer.\n */\nclass GitFrontend {\n constructor(address, keyManager) {\n const pkiInfo = keyManager.PKIInfo;\n if (pkiInfo.caCert && pkiInfo.cert && pkiInfo.key) {\n this.credentials = grpc.credentials.createSsl(pkiInfo.caCert, pkiInfo.key, pkiInfo.cert);\n }\n else {\n this.credentials = grpc.credentials.createInsecure();\n }\n this.client = new Git_grpc_pb_1.GitServerClient(address.toString(), this.credentials);\n }\n /**\n * Requests remote info from the connected peer for the named vault.\n * @param vaultName Name of the desired vault\n */\n async requestInfo(vaultName) {\n return new Promise((resolve, reject) => {\n const request = new Git_pb_1.InfoRequest();\n request.setVaultname(vaultName);\n this.client.requestInfo(request, function (err, response) {\n if (err) {\n reject(err);\n }\n else {\n resolve(Buffer.from(response.getBody_asB64(), 'base64'));\n }\n });\n });\n }\n /**\n * Requests a pack from the connected peer for the named vault.\n * @param vaultName Name of the desired vault\n */\n async requestPack(vaultName, body) {\n return new Promise((resolve, reject) => {\n const request = new Git_pb_1.PackRequest();\n request.setVaultname(vaultName);\n request.setBody(body);\n this.client.requestPack(request, function (err, response) {\n if (err) {\n reject(err);\n }\n else {\n resolve(Buffer.from(response.getBody_asB64(), 'base64'));\n }\n });\n });\n }\n}\nexports.default = GitFrontend;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path_1 = __importDefault(require(\"path\"));\nconst readable_stream_1 = require(\"readable-stream\");\nconst uploadPack_1 = __importDefault(require(\"./upload-pack/uploadPack\"));\nconst GitSideBand_1 = __importDefault(require(\"./side-band/GitSideBand\"));\nconst packObjects_1 = __importDefault(require(\"./pack-objects/packObjects\"));\n// Here is the protocol git outlines for sending pack files over http:\n// https://git-scm.com/docs/pack-protocol/2.17.0\n// https://github.com/git/git/blob/master/Documentation/technical/pack-protocol.txt\n// This should be consulted in developing our upload pack implementation\n// This git backend (as well as HttpDuplex class) is heavily inspired by node-git-server:\n// https://github.com/gabrielcsapo/node-git-server\n// We need someway to notify other agents about what vaults we have based on some type of authorisation because they don't explicitly know about them\nclass GitBackend {\n constructor(repoDirectoryPath, getFileSystem) {\n this.repoDirectoryPath = repoDirectoryPath;\n this.getFileSystem = getFileSystem;\n }\n async handleInfoRequest(repoName) {\n // Only handle upload-pack for now\n const service = 'upload-pack';\n const fileSystem = this.getFileSystem(repoName);\n const responseBuffers = [];\n if (!fileSystem.existsSync(path_1.default.join(this.repoDirectoryPath, repoName))) {\n throw Error(`repository does not exist: '${repoName}'`);\n }\n responseBuffers.push(Buffer.from(this.createGitPacketLine('# service=git-' + service + '\\n')));\n responseBuffers.push(Buffer.from('0000'));\n const buffers = await uploadPack_1.default(fileSystem, path_1.default.join(this.repoDirectoryPath, repoName), undefined, true);\n const buffersToWrite = buffers !== null && buffers !== void 0 ? buffers : [];\n responseBuffers.push(...buffersToWrite);\n return Buffer.concat(responseBuffers);\n }\n async handlePackRequest(repoName, body) {\n // eslint-disable-next-line\n return new Promise(async (resolve, reject) => {\n const responseBuffers = [];\n const fileSystem = this.getFileSystem(repoName);\n // Check if repo exists\n if (!fileSystem.existsSync(path_1.default.join(this.repoDirectoryPath, repoName))) {\n throw Error(`repository does not exist: '${repoName}'`);\n }\n if (body.toString().slice(4, 8) == 'want') {\n const wantedObjectId = body.toString().slice(9, 49);\n const packResult = await packObjects_1.default(fileSystem, path_1.default.join(this.repoDirectoryPath, repoName), [wantedObjectId], undefined);\n // This the 'wait for more data' line as I understand it\n responseBuffers.push(Buffer.from('0008NAK\\n'));\n // This is to get the side band stuff working\n const readable = new readable_stream_1.PassThrough();\n const progressStream = new readable_stream_1.PassThrough();\n const sideBand = GitSideBand_1.default.mux('side-band-64', readable, packResult.packstream, progressStream, []);\n sideBand.on('data', (data) => {\n responseBuffers.push(data);\n });\n sideBand.on('end', () => {\n resolve(Buffer.concat(responseBuffers));\n });\n sideBand.on('error', (err) => {\n reject(err);\n });\n // Write progress to the client\n progressStream.write(Buffer.from('0014progress is at 50%\\n'));\n progressStream.end();\n }\n });\n }\n // ============ Helper functions ============ //\n createGitPacketLine(line) {\n const hexPrefix = (4 + line.length).toString(16);\n return Array(4 - hexPrefix.length + 1).join('0') + hexPrefix + line;\n }\n}\nexports.default = GitBackend;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path_1 = __importDefault(require(\"path\"));\nconst GitPktLine_1 = __importDefault(require(\"./GitPktLine\"));\nconst GitRefManager_1 = __importDefault(require(\"./GitRefManager\"));\nasync function writeRefsAdResponse({ capabilities, refs, symrefs }) {\n const stream = [];\n // Compose capabilities string\n let syms = '';\n for (const [key, value] of Object.entries(symrefs)) {\n syms += `symref=${key}:${value} `;\n }\n let caps = `\\x00${[...capabilities].join(' ')} ${syms}agent=git/isomorphic-git@1.4.0`;\n // stream.write(GitPktLine.encode(`# service=${service}\\n`))\n // stream.write(GitPktLine.flush())\n // Note: In the edge case of a brand new repo, zero refs (and zero capabilities)\n // are returned.\n for (const [key, value] of Object.entries(refs)) {\n stream.push(GitPktLine_1.default.encode(`${value} ${key}${caps}\\n`));\n caps = '';\n }\n stream.push(GitPktLine_1.default.flush());\n return stream;\n}\nasync function uploadPack(fileSystem, dir, gitdir = path_1.default.join(dir, '.git'), advertiseRefs = false) {\n try {\n if (advertiseRefs) {\n // Send a refs advertisement\n const capabilities = ['side-band-64k'];\n let keys = await GitRefManager_1.default.listRefs(fileSystem, gitdir, 'refs');\n keys = keys.map((ref) => `refs/${ref}`);\n const refs = {};\n keys.unshift('HEAD'); // HEAD must be the first in the list\n for (const key of keys) {\n refs[key] = await GitRefManager_1.default.resolve(fileSystem, gitdir, key);\n }\n const symrefs = {};\n symrefs['HEAD'] = await GitRefManager_1.default.resolve(fileSystem, gitdir, 'HEAD', 2);\n return writeRefsAdResponse({\n capabilities,\n refs,\n symrefs,\n });\n }\n }\n catch (err) {\n err.caller = 'git.uploadPack';\n throw err;\n }\n}\nexports.default = uploadPack;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass GitPackedRefs {\n constructor(text) {\n this.refs = new Map();\n this.parsedConfig = [];\n if (text) {\n let key;\n this.parsedConfig = text\n .trim()\n .split('\\n')\n .map((line) => {\n if (/^\\s*#/.test(line)) {\n return { line: line, comment: true };\n }\n const i = line.indexOf(' ');\n if (line.startsWith('^')) {\n // This is a oid for the commit associated with the annotated tag immediately preceding this line.\n // Trim off the '^'\n const value = line.slice(1);\n // The tagname^{} syntax is based on the output of `git show-ref --tags -d`\n this.refs.set(key + '^{}', value);\n return { line: line, ref: key, peeled: value };\n }\n else {\n // This is an oid followed by the ref name\n const value = line.slice(0, i);\n key = line.slice(i + 1);\n this.refs.set(key, value);\n return { line: line, ref: key, oid: value };\n }\n });\n }\n return this;\n }\n static from(text) {\n return new GitPackedRefs(text);\n }\n}\nexports.default = GitPackedRefs;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\nIf 'side-band' or 'side-band-64k' capabilities have been specified by\nthe client, the server will send the packfile data multiplexed.\n\nEach packet starting with the packet-line length of the amount of data\nthat follows, followed by a single byte specifying the sideband the\nfollowing data is coming in on.\n\nIn 'side-band' mode, it will send up to 999 data bytes plus 1 control\ncode, for a total of up to 1000 bytes in a pkt-line. In 'side-band-64k'\nmode it will send up to 65519 data bytes plus 1 control code, for a\ntotal of up to 65520 bytes in a pkt-line.\n\nThe sideband byte will be a '1', '2' or a '3'. Sideband '1' will contain\npackfile data, sideband '2' will be used for progress information that the\nclient will generally print to stderr and sideband '3' is used for error\ninformation.\n\nIf no 'side-band' capability was specified, the server will stream the\nentire packfile without multiplexing.\n*/\nconst buffer_1 = require(\"buffer\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst GitPktLine_1 = __importDefault(require(\"../upload-pack/GitPktLine\"));\nfunction splitBuffer(buffer, maxBytes) {\n const result = [];\n let index = 0;\n while (index < buffer.length) {\n const buf = buffer.slice(index, index + maxBytes);\n result.push(buf);\n index += buf.length;\n }\n result.push(buffer.slice(index));\n return result;\n}\nclass GitSideBand {\n static demux(input) {\n let read = GitPktLine_1.default.streamReader(input);\n // And now for the ridiculous side-band or side-band-64k protocol\n let packetlines = new readable_stream_1.PassThrough();\n let packfile = new readable_stream_1.PassThrough();\n let progress = new readable_stream_1.PassThrough();\n // TODO: Use a proper through stream?\n const nextBit = async function () {\n let line = await read();\n // Skip over flush packets\n if (line === null)\n return nextBit();\n // A made up convention to signal there's no more to read.\n if (line === true) {\n packetlines.end();\n progress.end();\n packfile.end();\n return;\n }\n // Examine first byte to determine which output \"stream\" to use\n switch (line[0]) {\n case 1: // pack data\n packfile.write(line.slice(1));\n break;\n case 2: // progress message\n progress.write(line.slice(1));\n break;\n case 3: // fatal error message just before stream aborts\n // eslint-disable-next-line\n const error = line.slice(1);\n progress.write(error);\n packfile.destroy(new Error(error.toString('utf8')));\n return;\n default:\n // Not part of the side-band-64k protocol\n packetlines.write(line.slice(0));\n }\n // Careful not to blow up the stack.\n // I think Promises in a tail-call position should be OK.\n nextBit();\n };\n nextBit();\n return {\n packetlines,\n packfile,\n progress,\n };\n }\n static mux(protocol, // 'side-band' or 'side-band-64k'\n packetlines, packfile, progress, error) {\n const MAX_PACKET_LENGTH = protocol === 'side-band-64k' ? 999 : 65519;\n let output = new readable_stream_1.PassThrough();\n packetlines.on('data', (data) => {\n if (data === null) {\n output.write(GitPktLine_1.default.flush());\n }\n else {\n output.write(GitPktLine_1.default.encode(data));\n }\n });\n let packfileWasEmpty = true;\n let packfileEnded = false;\n let progressEnded = false;\n let errorEnded = true;\n let goodbye = buffer_1.Buffer.concat([GitPktLine_1.default.encode(buffer_1.Buffer.from('010A', 'hex')), GitPktLine_1.default.flush()]);\n packfile\n .on('data', (data) => {\n packfileWasEmpty = false;\n const buffers = splitBuffer(data, MAX_PACKET_LENGTH);\n for (const buffer of buffers) {\n output.write(GitPktLine_1.default.encode(buffer_1.Buffer.concat([buffer_1.Buffer.from('01', 'hex'), buffer])));\n }\n })\n .on('end', () => {\n packfileEnded = true;\n if (!packfileWasEmpty)\n output.write(goodbye);\n if (progressEnded && errorEnded)\n output.end();\n });\n progress\n .on('data', (data) => {\n const buffers = splitBuffer(data, MAX_PACKET_LENGTH);\n for (const buffer of buffers) {\n output.write(GitPktLine_1.default.encode(buffer_1.Buffer.concat([buffer_1.Buffer.from('02', 'hex'), buffer])));\n }\n })\n .on('end', () => {\n progressEnded = true;\n if (packfileEnded && errorEnded)\n output.end();\n });\n // error\n // .on('data', data => {\n // const buffers = splitBuffer(data, MAX_PACKET_LENGTH)\n // for (const buffer of buffers) {\n // output.write(\n // GitPktLine.encode(Buffer.concat([Buffer.from('03', 'hex'), buffer]))\n // )\n // }\n // })\n // .on('end', () => {\n // errorEnded = true\n // if (progressEnded && packfileEnded) output.end()\n // })\n return output;\n }\n}\nexports.default = GitSideBand;\n","module.exports = require(\"buffer\");","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst pako_1 = __importDefault(require(\"pako\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst log_1 = __importDefault(require(\"./log\"));\nconst GitTree_1 = __importDefault(require(\"./GitTree\"));\nconst sha_js_1 = __importDefault(require(\"sha.js\"));\nconst GitCommit_1 = __importDefault(require(\"./GitCommit\"));\nconst readable_stream_1 = require(\"readable-stream\");\nconst GitObjectManager_1 = __importDefault(require(\"./GitObjectManager\"));\nconst types = {\n commit: 0b0010000,\n tree: 0b0100000,\n blob: 0b0110000,\n tag: 0b1000000,\n ofs_delta: 0b1100000,\n ref_delta: 0b1110000,\n};\n/**\n * Create a packfile stream\n *\n * @link https://isomorphic-git.github.io/docs/packObjects.html\n */\nasync function packObjects(fileSystem, dir, refs, depth, haves) {\n const gitdir = path_1.default.join(dir, '.git');\n let oids = new Set();\n let shallows = new Set();\n let unshallows = new Set();\n let acks = [];\n haves = haves ? haves : [];\n const emitter = undefined;\n const since = undefined;\n for (const ref of refs) {\n try {\n let commits = await log_1.default(fileSystem, dir, gitdir, emitter, ref, depth, since);\n let oldshallows = [];\n for (let i = 0; i < commits.length; i++) {\n let commit = commits[i];\n if (haves.includes(commit.oid)) {\n acks.push({\n oid: ref,\n });\n break;\n }\n oids.add(commit.oid);\n if (i === commits.length - 1) {\n if (!oldshallows.includes(commit.oid) && (depth !== undefined || since !== undefined)) {\n console.log('make it shallow', commit.oid);\n shallows.add(commit.oid);\n }\n }\n else if (oldshallows.includes(commit.oid)) {\n console.log('make it unshallow', commit.oid);\n unshallows.add(commit.oid);\n }\n }\n }\n catch (err) {\n console.log(err);\n // oh well.\n }\n }\n let objects = await listObjects(fileSystem, dir, gitdir, Array.from(oids));\n let packstream = new readable_stream_1.PassThrough();\n pack(fileSystem, dir, undefined, [...objects], packstream);\n return { packstream, shallows, unshallows, acks };\n}\nasync function listObjects(fileSystem, dir, gitdir = path_1.default.join(dir, '.git'), oids) {\n let commits = new Set();\n let trees = new Set();\n let blobs = new Set();\n // We don't do the purest simplest recursion, because we can\n // avoid reading Blob objects entirely since the Tree objects\n // tell us which oids are Blobs and which are Trees. And we\n // do not need to recurse through commit parents.\n async function walk(oid) {\n let { type, object } = await GitObjectManager_1.default.read(fileSystem, gitdir, oid);\n if (type === 'commit') {\n commits.add(oid);\n let commit = GitCommit_1.default.from(object);\n let tree = commit.headers().tree;\n await walk(tree);\n }\n else if (type === 'tree') {\n trees.add(oid);\n let tree = GitTree_1.default.from(object);\n for (let entry of tree) {\n if (entry.type === 'blob') {\n blobs.add(entry.oid);\n }\n // only recurse for trees\n if (entry.type === 'tree') {\n await walk(entry.oid);\n }\n }\n }\n }\n // Let's go walking!\n for (let oid of oids) {\n await walk(oid);\n }\n return [...commits, ...trees, ...blobs];\n}\nexports.listObjects = listObjects;\nasync function pack(fileSystem, dir, gitdir = path_1.default.join(dir, '.git'), oids, outputStream) {\n let hash = sha_js_1.default('sha1');\n function write(chunk, enc = undefined) {\n if (enc) {\n outputStream.write(chunk, enc);\n }\n else {\n outputStream.write(chunk);\n }\n hash.update(chunk, enc);\n }\n function writeObject(object, stype) {\n let lastFour;\n let multibyte;\n let length;\n // Object type is encoded in bits 654\n let type = types[stype];\n if (type === undefined)\n throw Error('Unrecognized type: ' + stype);\n // The length encoding get complicated.\n length = object.length;\n // Whether the next byte is part of the variable-length encoded number\n // is encoded in bit 7\n multibyte = length > 0b1111 ? 0b10000000 : 0b0;\n // Last four bits of length is encoded in bits 3210\n lastFour = length & 0b1111;\n // Discard those bits\n length = length >>> 4;\n // The first byte is then (1-bit multibyte?), (3-bit type), (4-bit least sig 4-bits of length)\n let byte = (multibyte | type | lastFour).toString(16);\n write(byte, 'hex');\n // Now we keep chopping away at length 7-bits at a time until its zero,\n // writing out the bytes in what amounts to little-endian order.\n while (multibyte) {\n multibyte = length > 0b01111111 ? 0b10000000 : 0b0;\n byte = multibyte | (length & 0b01111111);\n const unpaddedChunk = byte.toString(16);\n const paddedChunk = '0'.repeat(2 - unpaddedChunk.length) + unpaddedChunk;\n write(paddedChunk, 'hex');\n length = length >>> 7;\n }\n // Lastly, we can compress and write the object.\n write(Buffer.from(pako_1.default.deflate(object)));\n }\n write('PACK');\n write('00000002', 'hex');\n // Write a 4 byte (32-bit) int\n const unpaddedChunk = oids.length.toString(16);\n const paddedChunk = '0'.repeat(8 - unpaddedChunk.length) + unpaddedChunk;\n write(paddedChunk, 'hex');\n for (let oid of oids) {\n let { type, object } = await GitObjectManager_1.default.read(fileSystem, gitdir, oid);\n writeObject(object, type);\n }\n // Write SHA1 checksum\n let digest = hash.digest();\n outputStream.end(digest);\n return outputStream;\n}\nexports.pack = pack;\nexports.default = packObjects;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst GitCommit_1 = __importDefault(require(\"./GitCommit\"));\nconst GitObjectManager_1 = __importDefault(require(\"./GitObjectManager\"));\nconst GitRefManager_1 = __importDefault(require(\"../upload-pack/GitRefManager\"));\nasync function logCommit(fileSystem, gitdir, oid, signing) {\n try {\n let { type, object } = await GitObjectManager_1.default.read(fileSystem, gitdir, oid);\n if (type !== 'commit') {\n throw new Error('expected type to be commit');\n }\n const commit = GitCommit_1.default.from(object);\n const result = Object.assign({ oid }, commit.parse());\n if (signing) {\n result.payload = commit.withoutSignature();\n }\n return result;\n }\n catch (err) {\n return {\n oid,\n error: err,\n };\n }\n}\nexports.logCommit = logCommit;\nfunction compareAge(a, b) {\n return a.committer.timestamp - b.committer.timestamp;\n}\n/**\n * Get commit descriptions from the git history\n *\n * @link https://isomorphic-git.github.io/docs/log.html\n */\nasync function log(fileSystem, dir, gitdir = path.join(dir, '.git'), ref = 'HEAD', depth, since, // Date\nsigning = false) {\n try {\n let sinceTimestamp = since === undefined ? undefined : Math.floor(since.valueOf() / 1000);\n // TODO: In the future, we may want to have an API where we return a\n // async iterator that emits commits.\n let commits = [];\n let oid = await GitRefManager_1.default.resolve(fileSystem, gitdir, ref);\n let tips = [await logCommit(fileSystem, gitdir, oid, signing)];\n // eslint-disable-next-line\n while (true) {\n let commit = tips.pop();\n // Stop the loop if we encounter an error\n if (commit.error) {\n commits.push(commit);\n break;\n }\n // Stop the log if we've hit the age limit\n if (sinceTimestamp !== undefined && commit.committer.timestamp <= sinceTimestamp) {\n break;\n }\n commits.push(commit);\n // Stop the loop if we have enough commits now.\n if (depth !== undefined && commits.length === depth)\n break;\n // Add the parents of this commit to the queue\n // Note: for the case of a commit with no parents, it will concat an empty array, having no net effect.\n for (const oid of commit.parent) {\n let commit = await logCommit(fileSystem, gitdir, oid, signing);\n if (!tips.map((commit) => commit.oid).includes(commit.oid)) {\n tips.push(commit);\n }\n }\n // Stop the loop if there are no more commit parents\n if (tips.length === 0)\n break;\n // Process tips in order by age\n tips.sort(compareAge);\n }\n return commits;\n }\n catch (err) {\n err.caller = 'git.log';\n throw err;\n }\n}\nexports.default = log;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst shasum_1 = __importDefault(require(\"./shasum\"));\nclass GitObject {\n static hash({ type, object }) {\n let buffer = Buffer.concat([Buffer.from(`${type} ${object.byteLength.toString()}\\0`), Buffer.from(object)]);\n let oid = shasum_1.default(buffer);\n return oid;\n }\n static wrap({ type, object }) {\n let buffer = Buffer.concat([Buffer.from(`${type} ${object.byteLength.toString()}\\0`), object]);\n let oid = shasum_1.default(buffer);\n return {\n oid,\n buffer,\n };\n }\n static unwrap({ oid, buffer }) {\n if (oid) {\n let sha = shasum_1.default(buffer);\n if (sha !== oid) {\n throw new Error(`SHA check failed! Expected ${oid}, computed ${sha}`);\n }\n }\n let s = buffer.indexOf(32); // first space\n let i = buffer.indexOf(0); // first null value\n let type = buffer.slice(0, s).toString('utf8'); // get type of object\n let length = buffer.slice(s + 1, i).toString('utf8'); // get type of object\n let actualLength = buffer.length - (i + 1);\n // verify length\n if (parseInt(length) !== actualLength) {\n throw new Error(`Length mismatch: expected ${length} bytes but got ${actualLength} instead.`);\n }\n return {\n type,\n object: Buffer.from(buffer.slice(i + 1)),\n };\n }\n}\nexports.default = GitObject;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sha1_1 = __importDefault(require(\"sha.js/sha1\"));\n// This is modeled after @dominictarr's \"shasum\" module,\n// but without the 'json-stable-stringify' dependency and\n// extra type-casting features.\nfunction shasum(buffer) {\n return new sha1_1.default().update(buffer).digest('hex');\n}\nexports.default = shasum;\n","module.exports = require(\"sha.js/sha1\");","\"use strict\";\n/*::\ntype TreeEntry = {\n mode: string,\n path: string,\n oid: string,\n type?: string\n}\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction parseBuffer(buffer) {\n let _entries = [];\n let cursor = 0;\n while (cursor < buffer.length) {\n let space = buffer.indexOf(32, cursor);\n if (space === -1) {\n throw new Error(`GitTree: Error parsing buffer at byte location ${cursor}: Could not find the next space character.`);\n }\n let nullchar = buffer.indexOf(0, cursor);\n if (nullchar === -1) {\n throw new Error(`GitTree: Error parsing buffer at byte location ${cursor}: Could not find the next null character.`);\n }\n let mode = buffer.slice(cursor, space).toString('utf8');\n if (mode === '40000')\n mode = '040000'; // makes it line up neater in printed output\n let type = mode === '040000' ? 'tree' : 'blob';\n let path = buffer.slice(space + 1, nullchar).toString('utf8');\n let oid = buffer.slice(nullchar + 1, nullchar + 21).toString('hex');\n cursor = nullchar + 21;\n _entries.push({ mode, path, oid, type });\n }\n return _entries;\n}\nfunction limitModeToAllowed(mode) {\n if (typeof mode === 'number') {\n mode = mode.toString(8);\n }\n // tree\n if (mode.match(/^0?4.*/))\n return '40000'; // Directory\n if (mode.match(/^1006.*/))\n return '100644'; // Regular non-executable file\n if (mode.match(/^1007.*/))\n return '100755'; // Regular executable file\n if (mode.match(/^120.*/))\n return '120000'; // Symbolic link\n if (mode.match(/^160.*/))\n return '160000'; // Commit (git submodule reference)\n throw new Error(`Could not understand file mode: ${mode}`);\n}\nfunction nudgeIntoShape(entry) {\n if (!entry.oid && entry.sha) {\n entry.oid = entry.sha; // Github\n }\n entry.mode = limitModeToAllowed(entry.mode); // index\n if (!entry.type) {\n entry.type = 'blob'; // index\n }\n return entry;\n}\nclass GitTree {\n constructor(entries) {\n if (Buffer.isBuffer(entries)) {\n this._entries = parseBuffer(entries);\n }\n else if (Array.isArray(entries)) {\n this._entries = entries.map(nudgeIntoShape);\n }\n else {\n throw new Error('invalid type passed to GitTree constructor');\n }\n }\n static from(tree) {\n return new GitTree(tree);\n }\n render() {\n return this._entries.map((entry) => `${entry.mode} ${entry.type} ${entry.oid} ${entry.path}`).join('\\n');\n }\n toObject() {\n return Buffer.concat(this._entries.map((entry) => {\n let mode = Buffer.from(entry.mode.replace(/^0/, ''));\n let space = Buffer.from(' ');\n let path = Buffer.from(entry.path);\n // let path = Buffer.from(entry.path, { encoding: 'utf8' })\n let nullchar = Buffer.from([0]);\n let oid = Buffer.from(entry.oid.match(/../g).map((n) => parseInt(n, 16)));\n return Buffer.concat([mode, space, path, nullchar, oid]);\n }));\n }\n entries() {\n return this._entries;\n }\n *[Symbol.iterator]() {\n for (let entry of this._entries) {\n yield entry;\n }\n }\n}\nexports.default = GitTree;\n","module.exports = require(\"sha.js\");","module.exports = require(\"../../proto/js/Peer\");","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Returns a 5 character long random string of lower case letters\n */\nfunction randomString() {\n return Math.random()\n .toString(36)\n .replace(/[^a-z]+/g, '')\n .substr(0, 5);\n}\nexports.randomString = randomString;\n/**\n * Inverts the provided promise\n * @param p Promise to invert\n */\nfunction invertPromise(p) {\n return new Promise((res, rej) => p.then(rej, res));\n}\n/**\n * Gets the first promise fulfiled\n * @param ps List of promises\n */\nfunction firstPromiseFulfilled(ps) {\n return invertPromise(Promise.all(ps.map(invertPromise)));\n}\nexports.firstPromiseFulfilled = firstPromiseFulfilled;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dgram_1 = __importDefault(require(\"dgram\"));\nconst crypto_1 = __importDefault(require(\"crypto\"));\nconst PeerInfo_1 = __importDefault(require(\"./PeerInfo\"));\nconst events_1 = require(\"events\");\nconst Peer_js_1 = require(\"../../../proto/js/Peer.js\");\nconst { HandshakeMessage, PeerInfoMessage } = Peer_js_1.peer;\n// This module is based heavily on libp2p's mDNS module:\n// https://github.com/libp2p/js-libp2p-mdns\n// It is supposed to discover peers on the local network\n// This module was also generated with the help of:\n// https://nrempel.com/using-udp-multicast-with-node-js/\n//\n// \"\"\"\n// In computer networking, the multicast DNS (mDNS) protocol\n// resolves hostnames to IP addresses within small networks\n// that do not include a local name server\n// \"\"\"\nconst UDP_MULTICAST_PORT = parseInt((_a = process.env.UDP_MULTICAST_PORT) !== null && _a !== void 0 ? _a : '5353');\nconst UDP_MULTICAST_ADDR = (_b = process.env.UDP_MULTICAST_ADDR) !== null && _b !== void 0 ? _b : '224.0.0.251';\nclass MulticastBroadcaster extends events_1.EventEmitter {\n constructor(addPeer, localPeerInfo, keyManager) {\n super();\n this.peerPubKeyMessages = new Map();\n this.addPeer = addPeer;\n this.localPeerInfo = localPeerInfo;\n this.keyManager = keyManager;\n this.interval = 1e3;\n this.queryInterval = null;\n // Create socket\n this.socket = dgram_1.default.createSocket({ type: 'udp4', reuseAddr: true });\n this.socket.bind(UDP_MULTICAST_PORT);\n // Set up listener\n this.socket.on('listening', (() => {\n this.socket.addMembership(UDP_MULTICAST_ADDR);\n const address = this.socket.address();\n }).bind(this));\n // Handle messages\n this.socket.on('message', this.handleHandshakeMessages.bind(this));\n // Start the query process\n this.queryInterval = this.queryLAN();\n }\n /**\n * Request a peer contact for the multicast peer discovery to check for\n * @param publicKey Public key of the desired peer\n */\n async requestPeerContact(publicKey) {\n const pubKeyBuf = Buffer.from(publicKey);\n const randomMessage = crypto_1.default.randomBytes(16);\n // Encrypt message\n const encryptedPeerPubKey = await this.keyManager.encryptData(pubKeyBuf, pubKeyBuf);\n const encryptedRandomMessage = await this.keyManager.encryptData(randomMessage, pubKeyBuf);\n const encryptedLocalPubKey = await this.keyManager.encryptData(Buffer.from(this.keyManager.getPublicKey()), pubKeyBuf);\n // Add to peer messages to be sent over multicast\n this.peerPubKeyMessages.set(publicKey, {\n encryptedLocalPubKey: Buffer.from(encryptedLocalPubKey),\n encryptedPeerPubKey: Buffer.from(encryptedPeerPubKey),\n rawRandomMessage: randomMessage,\n encryptedRandomMessage: Buffer.from(encryptedRandomMessage),\n });\n }\n // ==== Helper methods ==== //\n queryLAN() {\n const query = () => {\n for (const pubKey of this.peerPubKeyMessages.keys()) {\n const peerMessage = this.peerPubKeyMessages.get(pubKey);\n if (peerMessage) {\n const handshakeMessage = HandshakeMessage.encode({\n targetPubKey: peerMessage.encryptedPeerPubKey,\n requestingPubKey: peerMessage.encryptedLocalPubKey,\n message: peerMessage.encryptedRandomMessage,\n }).finish();\n this.socket.send(handshakeMessage, 0, handshakeMessage.length, UDP_MULTICAST_PORT, UDP_MULTICAST_ADDR);\n }\n }\n };\n // Immediately start a query, then do it every interval.\n query();\n return setInterval(query, this.interval);\n }\n async handleHandshakeMessages(request, rinfo) {\n var _a, _b;\n try {\n const { message, requestingPubKey, responsePeerInfo, targetPubKey } = HandshakeMessage.decode(request);\n // Try to decrypt message and pubKey\n const decryptedMessage = await this.keyManager.decryptData(Buffer.from(message));\n const decryptedTargetPubKey = await this.keyManager.decryptData(Buffer.from(targetPubKey));\n const decryptedRequestingPubKey = await this.keyManager.decryptData(Buffer.from(requestingPubKey));\n const myPubKey = this.keyManager.getPublicKey();\n if (decryptedRequestingPubKey.toString() == myPubKey) {\n // Response\n // Make sure decrypted bytes equal raw bytes in memory\n const originalMessage = (_a = this.peerPubKeyMessages.get(decryptedTargetPubKey.toString())) === null || _a === void 0 ? void 0 : _a.rawRandomMessage;\n if (decryptedMessage.toString() == (originalMessage === null || originalMessage === void 0 ? void 0 : originalMessage.toString())) {\n // Validated!\n // Add peer info to peerStore\n const { addresses, connectedAddr, pubKey } = PeerInfoMessage.decode(responsePeerInfo);\n const newPeerInfo = new PeerInfo_1.default(pubKey, addresses, connectedAddr);\n if (newPeerInfo) {\n this.addPeer(newPeerInfo);\n // Remove peerId from requested messages\n const pubKey = newPeerInfo.publicKey;\n this.peerPubKeyMessages.delete(pubKey);\n console.log(`New peer added to the store`);\n this.emit('found', newPeerInfo);\n }\n else {\n this.emit('error', 'I got a validated response. But no peerInfo');\n }\n }\n }\n else {\n // Requests on target node\n // Try decrypting message\n // Re-encrypt the data and send it on its way\n const encryptedTargetPubKey = await this.keyManager.encryptData(Buffer.from(myPubKey), decryptedRequestingPubKey);\n const encryptedMessage = await this.keyManager.encryptData(decryptedMessage, decryptedRequestingPubKey);\n const encryptedPubKey = await this.keyManager.encryptData(decryptedRequestingPubKey, decryptedRequestingPubKey);\n const encodedLocalPeerInfo = PeerInfoMessage.encode({\n addresses: this.localPeerInfo.AdressStringList,\n connectedAddr: (_b = this.localPeerInfo.connectedAddr) === null || _b === void 0 ? void 0 : _b.toString(),\n pubKey: this.localPeerInfo.publicKey,\n }).finish();\n const handshakeMessage = HandshakeMessage.encode({\n targetPubKey: Buffer.from(encryptedTargetPubKey),\n requestingPubKey: Buffer.from(encryptedPubKey),\n message: Buffer.from(encryptedMessage),\n responsePeerInfo: encodedLocalPeerInfo,\n }).finish();\n this.socket.send(handshakeMessage, 0, handshakeMessage.length, UDP_MULTICAST_PORT, UDP_MULTICAST_ADDR);\n }\n }\n catch (err) {\n // Couldn't decode message\n // We don't want the multicast discovery to error on every message it coudln't decode!\n }\n }\n}\nexports.default = MulticastBroadcaster;\n","module.exports = require(\"dgram\");","module.exports = require(\"events\");","module.exports = require(\"../../proto/js/Peer.js\");","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst os_1 = __importDefault(require(\"os\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst isomorphic_git_1 = __importDefault(require(\"isomorphic-git\"));\nconst Vault_1 = __importDefault(require(\"../vaults/Vault\"));\nconst encryptedfs_1 = require(\"encryptedfs\");\nclass VaultManager {\n constructor(polykeyPath = `${os_1.default.homedir()}/.polykey`, fileSystem, keyManager) {\n this.polykeyPath = polykeyPath;\n this.fileSystem = fileSystem;\n this.keyManager = keyManager;\n this.metadataPath = path_1.default.join(polykeyPath, '.vaultKeys');\n // Make polykeyPath if it doesn't exist\n this.fileSystem.mkdirSync(this.polykeyPath, { recursive: true });\n // Initialize stateful variables\n this.vaults = new Map();\n this.vaultKeys = new Map();\n // Read in vault keys\n this.loadMetadata();\n }\n /**\n * Get a vault from the vault manager\n * @param vaultName Name of desired vault\n */\n getVault(vaultName) {\n if (this.vaults.has(vaultName)) {\n const vault = this.vaults.get(vaultName);\n return vault;\n }\n else if (this.vaultKeys.has(vaultName)) {\n // vault not in map, create new instance\n this.validateVault(vaultName);\n const vaultKey = this.vaultKeys.get(vaultName);\n const vault = new Vault_1.default(vaultName, vaultKey, this.polykeyPath);\n this.vaults.set(vaultName, vault);\n return vault;\n }\n else {\n throw Error(`vault does not exist in memory: '${vaultName}'`);\n }\n }\n /**\n * Get a vault from the vault manager\n * @param vaultName Unique name of new vault\n * @param key Optional key to use for the vault encryption, otherwise it is generated\n */\n async createVault(vaultName, key) {\n if (this.vaultExists(vaultName)) {\n throw Error('Vault already exists!');\n }\n try {\n const path = path_1.default.join(this.polykeyPath, vaultName);\n // Directory not present, create one\n this.fileSystem.mkdirSync(path, { recursive: true });\n // Create key if not provided\n let vaultKey;\n if (!key) {\n // Generate new key\n vaultKey = await this.keyManager.generateKey(`${vaultName}-Key`, this.keyManager.getPrivateKey(), false);\n }\n else {\n // Assign key if it is provided\n vaultKey = key;\n }\n this.vaultKeys.set(vaultName, vaultKey);\n this.writeMetadata();\n // Create vault\n const vault = new Vault_1.default(vaultName, vaultKey, this.polykeyPath);\n // Init repository for vault\n const vaultPath = path_1.default.join(this.polykeyPath, vaultName);\n const efs = vault.EncryptedFS;\n const fileSystem = { promises: efs.promises };\n await isomorphic_git_1.default.init({\n fs: fileSystem,\n dir: vaultPath,\n });\n // Initial commit\n await isomorphic_git_1.default.commit({\n fs: fileSystem,\n dir: vaultPath,\n author: {\n name: vaultName,\n },\n message: 'init commit',\n });\n // Write packed-refs file because isomorphic git goes searching for it\n // and apparently its not autogenerated\n efs.writeFileSync(path_1.default.join(vaultPath, '.git', 'packed-refs'), '# pack-refs with: peeled fully-peeled sorted');\n // Set vault\n this.vaults.set(vaultName, vault);\n return this.getVault(vaultName);\n }\n catch (err) {\n // Delete vault dir and garbage collect\n this.destroyVault(vaultName);\n throw err;\n }\n }\n /**\n * Get a vault from the vault manager\n * @param vaultName Name of vault to be cloned\n * @param address Address of polykey node that owns vault to be cloned\n * @param getSocket Function to get an active connection to provided address\n */\n async cloneVault(vaultName, gitRequest) {\n // Confirm it doesn't exist locally already\n if (this.vaultExists(vaultName)) {\n throw Error('Vault name already exists locally, try pulling instead');\n }\n const vaultUrl = `http://0.0.0.0/${vaultName}`;\n // First check if it exists on remote\n const info = await isomorphic_git_1.default.getRemoteInfo({\n http: gitRequest,\n url: vaultUrl,\n });\n if (!info.refs) {\n throw Error(`Peer does not have vault: '${vaultName}'`);\n }\n // Create new efs first\n // Generate new key\n const vaultKey = await this.keyManager.generateKey(`${vaultName}-Key`, this.keyManager.getPrivateKey());\n // Set filesystem\n const vfsInstance = new (require('virtualfs').VirtualFS)();\n const newEfs = new encryptedfs_1.EncryptedFS(vaultKey, vfsInstance, vfsInstance, this.fileSystem, process);\n // Clone vault from address\n await isomorphic_git_1.default.clone({\n fs: { promises: newEfs.promises },\n http: gitRequest,\n dir: path_1.default.join(this.polykeyPath, vaultName),\n url: vaultUrl,\n ref: 'master',\n singleBranch: true,\n });\n // Finally return the vault\n const vault = new Vault_1.default(vaultName, vaultKey, this.polykeyPath);\n this.vaults.set(vaultName, vault);\n return vault;\n }\n /**\n * Determines whether the vault exists\n * @param vaultName Name of desired vault\n */\n vaultExists(vaultName) {\n const path = path_1.default.join(this.polykeyPath, vaultName);\n const vaultExists = this.fileSystem.existsSync(path);\n return vaultExists;\n }\n /**\n * [WARNING] Destroys a certain vault and all its secrets\n * @param vaultName Name of vault to be destroyed\n */\n destroyVault(vaultName) {\n // this is convenience function for removing all tags\n // and triggering garbage collection\n // destruction is a better word as we should ensure all traces is removed\n const path = path_1.default.join(this.polykeyPath, vaultName);\n // Remove directory on file system\n if (this.fileSystem.existsSync(path)) {\n this.fileSystem.rmdirSync(path, { recursive: true });\n }\n // Remove from maps\n this.vaults.delete(vaultName);\n this.vaultKeys.delete(vaultName);\n // Write to metadata file\n this.writeMetadata();\n const vaultPathExists = this.fileSystem.existsSync(path);\n if (vaultPathExists) {\n throw Error('Vault folder could not be destroyed!');\n }\n }\n /**\n * List the names of all vaults in memory\n */\n listVaults() {\n return Array.from(this.vaults.keys());\n }\n /* ============ HELPERS =============== */\n validateVault(vaultName) {\n if (!this.vaults.has(vaultName)) {\n throw Error(`vault does not exist in memory: '${vaultName}'`);\n }\n if (!this.vaultKeys.has(vaultName)) {\n throw Error(`vault key does not exist in memory: '${vaultName}'`);\n }\n const vaultPath = path_1.default.join(this.polykeyPath, vaultName);\n if (!this.fileSystem.existsSync(vaultPath)) {\n throw Error(`vault directory does not exist: '${vaultPath}'`);\n }\n }\n async writeMetadata() {\n const metadata = JSON.stringify([...this.vaultKeys]);\n const encryptedMetadata = await this.keyManager.encryptData(Buffer.from(metadata));\n await this.fileSystem.promises.writeFile(this.metadataPath, encryptedMetadata);\n }\n async loadMetadata() {\n // Check if file exists\n if (this.fileSystem.existsSync(this.metadataPath) && this.keyManager.identityLoaded) {\n const encryptedMetadata = this.fileSystem.readFileSync(this.metadataPath);\n const metadata = (await this.keyManager.decryptData(encryptedMetadata)).toString();\n for (const [key, value] of new Map(JSON.parse(metadata))) {\n this.vaultKeys.set(key, Buffer.from(value));\n }\n // Initialize vaults in memory\n for (const [vaultName, vaultKey] of this.vaultKeys.entries()) {\n const path = path_1.default.join(this.polykeyPath, vaultName);\n if (this.fileSystem.existsSync(path)) {\n const vault = new Vault_1.default(vaultName, vaultKey, this.polykeyPath);\n this.vaults.set(vaultName, vault);\n }\n }\n }\n }\n}\nexports.default = VaultManager;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs_1 = __importDefault(require(\"fs\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst isomorphic_git_1 = __importDefault(require(\"isomorphic-git\"));\nconst encryptedfs_1 = require(\"encryptedfs\");\nconst async_mutex_1 = require(\"async-mutex\");\nclass Vault {\n constructor(name, symKey, baseDir) {\n // Concurrency\n this.mutex = new async_mutex_1.Mutex();\n // how do we create pub/priv key pair?\n // do we use the same gpg pub/priv keypair\n this.key = symKey;\n // Set filesystem\n const vfsInstance = new (require('virtualfs').VirtualFS)();\n this.efs = new encryptedfs_1.EncryptedFS(this.key, vfsInstance, vfsInstance, fs_1.default, process);\n this.name = name;\n this.vaultPath = path_1.default.join(baseDir, name);\n // make the vault directory\n this.efs.mkdirSync(this.vaultPath, { recursive: true });\n this.secrets = new Map();\n this.loadSecrets();\n // Load metadata\n this.metadataPath = path_1.default.join(this.vaultPath, '.vault', 'metadata');\n this.loadMetadata();\n }\n /**\n * Returns the Encrypted File System used for vault operations\n */\n get EncryptedFS() {\n return this.efs;\n }\n /**\n * Determines whether a secret exists in the vault\n * @param secretName Name of desired secret\n */\n secretExists(secretName) {\n const secretPath = path_1.default.join(this.vaultPath, secretName);\n return this.secrets.has(secretName) && this.efs.existsSync(secretPath);\n }\n /**\n * Adds a secret to the vault\n * @param secretName Name of new secret\n * @param secret Content of new secret\n */\n async addSecret(secretName, secret) {\n const release = await this.mutex.acquire();\n try {\n // Check if secret already exists\n if (this.secrets.has(secretName)) {\n throw Error('Secret already exists, try updating it instead.');\n }\n const writePath = path_1.default.join(this.vaultPath, secretName);\n // Write secret\n await this.efs.promises.writeFile(writePath, secret, {});\n // Update secrets map\n this.secrets.set(secretName, secret);\n // Auto commit message\n await this.commitChanges(`Add secret: ${secretName}`, secretName, 'added');\n }\n catch (error) {\n release();\n throw error;\n }\n finally {\n release();\n }\n }\n /**\n * Updates a secret in the vault\n * @param secretName Name of secret to be updated\n * @param secret Content of updated secret\n */\n async updateSecret(secretName, secret) {\n const release = await this.mutex.acquire();\n try {\n // Check if secret already exists\n if (!this.secrets.has(secretName)) {\n throw Error('Secret does not exist, try adding it instead.');\n }\n const writePath = path_1.default.join(this.vaultPath, secretName);\n // Write secret\n await this.efs.promises.writeFile(writePath, secret, {});\n // Update secrets map\n this.secrets.set(secretName, secret);\n // Auto commit message\n await this.commitChanges(`Update secret: ${secretName}`, secretName, 'modified');\n }\n catch (error) {\n release();\n throw error;\n }\n finally {\n release();\n }\n }\n /**\n * Get a secret from the vault\n * @param secretName Name of secret to be retrieved\n */\n getSecret(secretName) {\n if (this.secrets.has(secretName)) {\n const secret = this.secrets.get(secretName);\n if (secret) {\n return secret;\n }\n else {\n const secretPath = path_1.default.join(this.vaultPath, secretName);\n // TODO: this should be async\n const secretBuf = this.efs.readFileSync(secretPath, {});\n this.secrets.set(secretName, secretBuf);\n return secretBuf;\n }\n }\n throw Error('Secret: ' + secretName + ' does not exist');\n }\n /**\n * [WARNING] Removes a secret from the vault\n * @param secretName Name of secret to be removed\n */\n async removeSecret(secretName) {\n const release = await this.mutex.acquire();\n try {\n if (this.secrets.has(secretName)) {\n const successful = this.secrets.delete(secretName);\n // Remove from fs\n await this.efs.promises.unlink(path_1.default.join(this.vaultPath, secretName));\n // Auto commit message\n await this.commitChanges(`Remove secret: ${secretName}`, secretName, 'removed');\n if (successful) {\n return;\n }\n throw Error('Secret: ' + secretName + ' was not removed');\n }\n throw Error('Secret: ' + secretName + ' does not exist');\n }\n catch (error) {\n release();\n throw error;\n }\n finally {\n release();\n }\n }\n /**\n * Lists all the secrets currently in the vault\n */\n listSecrets() {\n let secrets = Array.from(this.secrets.keys());\n return secrets;\n }\n tagVault() { }\n untagVault() { }\n /////////////\n // Sharing //\n /////////////\n /**\n * Allows a particular public key to access the vault\n * @param publicKey Public key to share with\n */\n shareVault(publicKey) {\n if (this.sharedPubKeys.has(name)) {\n throw Error('Vault is already shared with given public key');\n }\n this.sharedPubKeys.add(publicKey);\n // Write metadata\n this.writeMetadata();\n }\n /**\n * Removes access to the vault for a particular public key\n * @param publicKey Public key to unshare with\n */\n unshareVault(publicKey) {\n if (!this.sharedPubKeys.has(publicKey)) {\n throw Error('Vault is not shared with given public key');\n }\n this.sharedPubKeys.delete(publicKey);\n // Write metadata\n this.writeMetadata();\n }\n /**\n * Determines if a particular public key can access the vault\n * @param publicKey Public key to check\n */\n peerCanAccess(publicKey) {\n // return this.sharedPubKeys.has(publicKey)\n return true;\n }\n /**\n * Pulls the vault from a specific address\n * @param address Address of polykey node that owns vault to be pulled\n * @param getSocket Function to get an active connection to provided address\n */\n async pullVault(gitClient) {\n const release = await this.mutex.acquire();\n try {\n // Strangely enough this is needed for pulls along with ref set to 'HEAD'\n // In isogit's documentation, this is just to get the currentBranch name\n // But it solves a bug whereby if not used, git.pull complains that it can't\n // find the master branch or HEAD\n await isomorphic_git_1.default.currentBranch({\n fs: { promises: this.efs.promises },\n dir: this.vaultPath,\n fullname: true,\n });\n // First pull\n await isomorphic_git_1.default.pull({\n fs: { promises: this.efs.promises },\n http: gitClient,\n dir: this.vaultPath,\n url: 'http://' + '0.0.0.0:0' + '/' + this.name,\n ref: 'HEAD',\n singleBranch: true,\n author: {\n name: this.name,\n },\n });\n // Load any new secrets\n this.loadSecrets();\n }\n catch (error) {\n release();\n throw error;\n }\n finally {\n release();\n }\n }\n async getVaultHistory(depth) {\n const logs = await isomorphic_git_1.default.log({\n fs: { promises: this.efs.promises },\n dir: this.vaultPath,\n depth,\n });\n return logs.map((commit) => {\n return commit.commit.message;\n });\n }\n // ============== Helper methods ============== //\n writeMetadata() {\n // mkdir first\n this.efs.mkdirSync(path_1.default.dirname(this.metadataPath), { recursive: true });\n // Create and write metadata\n const metadata = {\n sharedPubKeys: Array.from(this.sharedPubKeys.keys()),\n };\n this.efs.writeFileSync(this.metadataPath, JSON.stringify(metadata));\n }\n loadMetadata() {\n if (this.efs.existsSync(this.metadataPath)) {\n const fileContents = this.efs.readFileSync(this.metadataPath).toString();\n const metadata = JSON.parse(fileContents);\n this.sharedPubKeys = new Set(metadata.sharedPubKeys);\n }\n else {\n // Need to create it\n this.sharedPubKeys = new Set();\n this.writeMetadata();\n }\n }\n async commitChanges(message, secretName, action) {\n if (action == 'removed') {\n await isomorphic_git_1.default.remove({\n fs: { promises: this.efs.promises },\n dir: this.vaultPath,\n filepath: secretName,\n });\n }\n else {\n await isomorphic_git_1.default.add({\n fs: { promises: this.efs.promises },\n dir: this.vaultPath,\n filepath: secretName,\n });\n }\n return await isomorphic_git_1.default.commit({\n fs: { promises: this.efs.promises },\n dir: this.vaultPath,\n author: {\n name: this.name,\n },\n message: message,\n });\n }\n loadSecrets() {\n const secrets = fs_1.default.readdirSync(this.vaultPath, undefined);\n // Remove all secrets first\n this.secrets.clear();\n // Load secrets\n for (const secret of secrets.filter((s) => s[0] != '.')) {\n this.secrets.set(secret, null);\n }\n }\n}\nexports.default = Vault;\n","module.exports = require(\"async-mutex\");","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst os_1 = __importDefault(require(\"os\"));\nconst fs_1 = __importDefault(require(\"fs\"));\nconst net_1 = __importDefault(require(\"net\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst process_1 = __importDefault(require(\"process\"));\nconst child_process_1 = require(\"child_process\");\nconst Polykey_1 = __importStar(require(\"../Polykey\"));\nconst configstore_1 = __importDefault(require(\"configstore\"));\nconst PolykeyClient_1 = __importDefault(require(\"./PolykeyClient\"));\nconst Agent_1 = require(\"../../../proto/js/Agent\");\nconst { AgentMessage, AgentMessageType, CreateSecretRequestMessage, CreateSecretResponseMessage, DecryptFileRequestMessage, DecryptFileResponseMessage, DeleteKeyRequestMessage, DeleteKeyResponseMessage, DeriveKeyRequestMessage, DeriveKeyResponseMessage, DestroySecretRequestMessage, DestroySecretResponseMessage, DestroyVaultRequestMessage, DestroyVaultResponseMessage, EncryptFileRequestMessage, EncryptFileResponseMessage, ErrorMessage, GetPrimaryKeyPairRequestMessage, GetPrimaryKeyPairResponseMessage, GetSecretRequestMessage, GetSecretResponseMessage, GetKeyRequestMessage, GetKeyResponseMessage, ListKeysRequestMessage, ListKeysResponseMessage, ListNodesRequestMessage, ListNodesResponseMessage, ListSecretsRequestMessage, ListSecretsResponseMessage, ListVaultsRequestMessage, ListVaultsResponseMessage, NewNodeRequestMessage, NewNodeResponseMessage, NewVaultRequestMessage, NewVaultResponseMessage, RegisterNodeRequestMessage, RegisterNodeResponseMessage, SignFileRequestMessage, SignFileResponseMessage, UpdateSecretRequestMessage, UpdateSecretResponseMessage, VerifyFileRequestMessage, VerifyFileResponseMessage, } = Agent_1.agent;\nclass PolykeyAgent {\n constructor() {\n this.persistentStore = new configstore_1.default('polykey');\n // For storing the state of each polykey node\n // Keys are the paths to the polykey node, e.g. '~/.polykey'\n this.polykeyMap = new Map();\n this.socketPath = PolykeyAgent.SocketPath;\n // Make sure the socket file doesn't already exist (agent is already running)\n if (fs_1.default.existsSync(this.socketPath)) {\n fs_1.default.unlinkSync(this.socketPath);\n }\n // Make the socket path if it doesn't exist\n if (!fs_1.default.existsSync(path_1.default.dirname(this.socketPath))) {\n fs_1.default.promises.mkdir(path_1.default.dirname(this.socketPath));\n }\n // Load polykeys\n const nodePaths = this.persistentStore.get('nodePaths');\n if (nodePaths === null || nodePaths === void 0 ? void 0 : nodePaths.values) {\n for (const path of nodePaths) {\n if (fs_1.default.existsSync(path)) {\n this.setPolyKey(path, new Polykey_1.default(path, fs_1.default));\n }\n else {\n this.removeNodePath(path);\n }\n }\n }\n else {\n this.persistentStore.set('nodePaths', []);\n }\n // Start the server\n this.server = net_1.default.createServer().listen(this.socketPath);\n this.server.on('connection', (socket) => {\n this.handleClientCommunication(socket);\n });\n }\n setPolyKey(nodePath, pk) {\n this.polykeyMap.set(nodePath, pk);\n const nodePathSet = new Set(this.persistentStore.get('nodePaths'));\n nodePathSet.add(nodePath);\n this.persistentStore.set('nodePaths', Array.from(nodePathSet.values()));\n }\n removeNodePath(nodePath) {\n this.polykeyMap.delete(nodePath);\n const nodePathSet = new Set(this.persistentStore.get('nodePaths'));\n nodePathSet.delete(nodePath);\n this.persistentStore.set('nodePaths', Array.from(nodePathSet.values()));\n }\n getPolyKey(nodePath, failOnLocked = true) {\n const pk = this.polykeyMap.get(nodePath);\n if (this.polykeyMap.has(nodePath) && pk) {\n if (fs_1.default.existsSync(nodePath)) {\n if (failOnLocked && !pk.keyManager.identityLoaded) {\n throw Error(`node path exists in memory but is locked: ${nodePath}`);\n }\n else {\n return pk;\n }\n }\n else {\n this.removeNodePath(nodePath);\n throw Error(`node path exists in memory but does not exist on file system: ${nodePath}`);\n }\n }\n else {\n this.removeNodePath(nodePath);\n throw Error(`node path does not exist in memory: ${nodePath}`);\n }\n }\n get AllNodePaths() {\n return Array.from(this.polykeyMap.keys()).filter((nodePath) => {\n try {\n this.getPolyKey(nodePath, false);\n return true;\n }\n catch (_a) {\n return false;\n }\n });\n }\n get UnlockedNodePaths() {\n return this.AllNodePaths.filter((nodePath) => {\n try {\n return this.getPolyKey(nodePath, false).keyManager.identityLoaded;\n }\n catch (_a) {\n return false;\n }\n });\n }\n stop() {\n this.polykeyMap.forEach((pk) => {\n pk.peerManager.multicastBroadcaster.socket.close();\n pk.peerManager.server.forceShutdown();\n });\n this.server.close();\n }\n handleClientCommunication(socket) {\n socket.on('data', async (encodedMessage) => {\n var _a;\n try {\n const { type, nodePath, subMessage } = AgentMessage.decode(encodedMessage);\n let response = undefined;\n switch (type) {\n case AgentMessageType.STATUS:\n response = Buffer.from('online');\n break;\n case AgentMessageType.STOP_AGENT:\n this.stop();\n process_1.default.exit();\n // eslint-disable-next-line\n case AgentMessageType.REGISTER_NODE:\n response = await this.registerNode(nodePath, subMessage);\n break;\n case AgentMessageType.NEW_NODE:\n response = await this.newNode(nodePath, subMessage);\n break;\n case AgentMessageType.LIST_NODES:\n response = this.listNodes(subMessage);\n break;\n case AgentMessageType.DERIVE_KEY:\n response = await this.deriveKey(nodePath, subMessage);\n break;\n case AgentMessageType.LIST_KEYS:\n response = await this.listKeys(nodePath);\n break;\n case AgentMessageType.GET_KEY:\n response = await this.getKey(nodePath, subMessage);\n break;\n case AgentMessageType.GET_PRIMARY_KEYPAIR:\n response = await this.getPrimaryKeyPair(nodePath, subMessage);\n break;\n case AgentMessageType.DELETE_KEY:\n response = await this.deleteKey(nodePath, subMessage);\n break;\n case AgentMessageType.SIGN_FILE:\n response = await this.signFile(nodePath, subMessage);\n break;\n case AgentMessageType.VERIFY_FILE:\n response = await this.verifyFile(nodePath, subMessage);\n break;\n case AgentMessageType.ENCRYPT_FILE:\n response = await this.encryptFile(nodePath, subMessage);\n break;\n case AgentMessageType.DECRYPT_FILE:\n response = await this.decryptFile(nodePath, subMessage);\n break;\n case AgentMessageType.LIST_VAULTS:\n response = await this.listVaults(nodePath);\n break;\n case AgentMessageType.NEW_VAULT:\n response = await this.newVault(nodePath, subMessage);\n break;\n case AgentMessageType.DESTROY_VAULT:\n response = await this.destroyVault(nodePath, subMessage);\n break;\n case AgentMessageType.LIST_SECRETS:\n response = await this.listSecrets(nodePath, subMessage);\n break;\n case AgentMessageType.CREATE_SECRET:\n response = await this.createSecret(nodePath, subMessage);\n break;\n case AgentMessageType.DESTROY_SECRET:\n response = await this.destroySecret(nodePath, subMessage);\n break;\n case AgentMessageType.GET_SECRET:\n response = await this.getSecret(nodePath, subMessage);\n break;\n case AgentMessageType.UPDATE_SECRET:\n response = await this.updateSecret(nodePath, subMessage);\n break;\n default:\n throw Error(`message type not supported: ${AgentMessageType[type]}`);\n }\n if (response) {\n const encodedResponse = AgentMessage.encode({\n type: type,\n isResponse: true,\n nodePath: nodePath,\n subMessage: response,\n }).finish();\n socket.write(encodedResponse);\n }\n else {\n throw Error('something went wrong');\n }\n }\n catch (err) {\n const errorResponse = AgentMessage.encode({\n type: AgentMessageType.ERROR,\n isResponse: true,\n nodePath: undefined,\n subMessage: ErrorMessage.encode({ error: (_a = err.message) !== null && _a !== void 0 ? _a : err }).finish(),\n }).finish();\n socket.write(errorResponse);\n }\n // Close connection\n socket.end();\n });\n }\n // Register an existing polykey agent\n async registerNode(nodePath, request) {\n const { passphrase } = RegisterNodeRequestMessage.decode(request);\n let pk;\n if (this.polykeyMap.has(nodePath)) {\n pk = this.getPolyKey(nodePath, false);\n if (pk.keyManager.identityLoaded) {\n throw Error(`node path is already loaded and unlocked: '${nodePath}'`);\n }\n await pk.keyManager.unlockIdentity(passphrase);\n }\n else {\n const km = new Polykey_1.KeyManager(nodePath, fs_1.default);\n await km.unlockIdentity(passphrase);\n // Create polykey class\n pk = new Polykey_1.default(nodePath, fs_1.default, km);\n }\n // Load all metadata\n await pk.keyManager.loadMetadata();\n pk.peerManager.loadMetadata();\n await pk.vaultManager.loadMetadata();\n // Set polykey class\n this.setPolyKey(nodePath, pk);\n // Encode and send response\n const response = NewNodeResponseMessage.encode({\n successful: pk.keyManager.identityLoaded && this.polykeyMap.has(nodePath),\n }).finish();\n return response;\n }\n // Create a new polykey agent\n async newNode(nodePath, request) {\n // Throw if path already exists\n if (this.polykeyMap.has(nodePath) && fs_1.default.existsSync(nodePath)) {\n throw Error(`node path '${nodePath}' is already loaded`);\n }\n else if (fs_1.default.existsSync(nodePath)) {\n throw Error(`node path already exists: '${nodePath}'`);\n }\n const { name, email, passphrase, nbits } = NewNodeRequestMessage.decode(request);\n const km = new Polykey_1.KeyManager(nodePath, fs_1.default);\n await km.generateKeyPair(name, email, passphrase, nbits == 0 ? undefined : nbits, true, (info) => {\n // socket.write(JSON.stringify(info))\n });\n // Create and set polykey class\n const pk = new Polykey_1.default(nodePath, fs_1.default, km);\n this.setPolyKey(nodePath, pk);\n // Encode and send response\n const response = NewNodeResponseMessage.encode({\n successful: km.identityLoaded && this.polykeyMap.has(nodePath),\n }).finish();\n return response;\n }\n // Create a new polykey agent\n listNodes(request) {\n const { unlockedOnly } = ListNodesRequestMessage.decode(request);\n if (unlockedOnly) {\n return ListNodesResponseMessage.encode({ nodes: this.UnlockedNodePaths }).finish();\n }\n else {\n return ListNodesResponseMessage.encode({ nodes: this.AllNodePaths }).finish();\n }\n }\n /////////////////////////\n // KeyManager commands //\n /////////////////////////\n async deriveKey(nodePath, request) {\n const { keyName, passphrase } = DeriveKeyRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n await pk.keyManager.generateKey(keyName, passphrase);\n return DeriveKeyResponseMessage.encode({ successful: true }).finish();\n }\n async listKeys(nodePath) {\n const pk = this.getPolyKey(nodePath);\n const keyNames = pk.keyManager.listKeys();\n return ListKeysResponseMessage.encode({ keyNames }).finish();\n }\n async getKey(nodePath, request) {\n const { keyName } = GetKeyRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const keyContent = pk.keyManager.getKey(keyName).toString();\n return GetKeyResponseMessage.encode({ keyContent }).finish();\n }\n async getPrimaryKeyPair(nodePath, request) {\n const { includePrivateKey } = GetPrimaryKeyPairRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const keypair = pk.keyManager.getKeyPair();\n return GetPrimaryKeyPairResponseMessage.encode({\n publicKey: keypair.public,\n privateKey: includePrivateKey ? keypair.private : undefined,\n }).finish();\n }\n async deleteKey(nodePath, request) {\n const { keyName } = DeleteKeyRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const successful = await pk.keyManager.deleteKey(keyName);\n return DeleteKeyResponseMessage.encode({ successful }).finish();\n }\n /////////////////////\n // Crypto commands //\n /////////////////////\n async signFile(nodePath, request) {\n const { filePath, privateKeyPath, passphrase } = SignFileRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const signaturePath = await pk.keyManager.signFile(filePath, privateKeyPath, passphrase);\n return SignFileResponseMessage.encode({ signaturePath }).finish();\n }\n async verifyFile(nodePath, request) {\n const { filePath, publicKeyPath } = VerifyFileRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const verified = await pk.keyManager.verifyFile(filePath, publicKeyPath);\n return VerifyFileResponseMessage.encode({ verified }).finish();\n }\n async encryptFile(nodePath, request) {\n const { filePath, publicKeyPath } = EncryptFileRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const encryptedPath = await pk.keyManager.encryptFile(filePath, publicKeyPath);\n return EncryptFileResponseMessage.encode({ encryptedPath }).finish();\n }\n async decryptFile(nodePath, request) {\n const { filePath, privateKeyPath, passphrase } = DecryptFileRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const decryptedPath = await pk.keyManager.decryptFile(filePath, privateKeyPath, passphrase);\n return DecryptFileResponseMessage.encode({ decryptedPath }).finish();\n }\n //////////////////////\n // Vault Operations //\n //////////////////////\n async listVaults(nodePath) {\n const pk = this.getPolyKey(nodePath);\n const vaultNames = pk.vaultManager.listVaults();\n return ListVaultsResponseMessage.encode({ vaultNames }).finish();\n }\n async newVault(nodePath, request) {\n const { vaultName } = NewVaultRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n await pk.vaultManager.createVault(vaultName);\n return NewVaultResponseMessage.encode({ successful: true }).finish();\n }\n async destroyVault(nodePath, request) {\n const { vaultName } = DestroyVaultRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n pk.vaultManager.destroyVault(vaultName);\n return DestroyVaultResponseMessage.encode({ successful: true }).finish();\n }\n ///////////////////////\n // Secret Operations //\n ///////////////////////\n async listSecrets(nodePath, request) {\n const { vaultName } = ListSecretsRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const vault = pk.vaultManager.getVault(vaultName);\n const secretNames = vault.listSecrets();\n return ListSecretsResponseMessage.encode({ secretNames }).finish();\n }\n async createSecret(nodePath, request) {\n const { vaultName, secretName, secretPath, secretContent } = CreateSecretRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const vault = pk.vaultManager.getVault(vaultName);\n let secretBuffer;\n if (secretPath) {\n secretBuffer = await fs_1.default.promises.readFile(secretPath);\n }\n else {\n secretBuffer = Buffer.from(secretContent);\n }\n await vault.addSecret(secretName, secretBuffer);\n return CreateSecretResponseMessage.encode({ successful: true }).finish();\n }\n async destroySecret(nodePath, request) {\n const { vaultName, secretName } = DestroySecretRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const vault = pk.vaultManager.getVault(vaultName);\n await vault.removeSecret(secretName);\n return DestroySecretResponseMessage.encode({ successful: true }).finish();\n }\n async getSecret(nodePath, request) {\n const { vaultName, secretName } = GetSecretRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const vault = pk.vaultManager.getVault(vaultName);\n const secret = Buffer.from(vault.getSecret(secretName));\n return GetSecretResponseMessage.encode({ secret: secret }).finish();\n }\n async updateSecret(nodePath, request) {\n const { vaultName, secretName, secretPath, secretContent } = UpdateSecretRequestMessage.decode(request);\n const pk = this.getPolyKey(nodePath);\n const vault = pk.vaultManager.getVault(vaultName);\n let secretBuffer;\n if (secretPath) {\n secretBuffer = await fs_1.default.promises.readFile(secretPath);\n }\n else {\n secretBuffer = Buffer.from(secretContent);\n }\n await vault.updateSecret(secretName, secretBuffer);\n return UpdateSecretResponseMessage.encode({ successful: true }).finish();\n }\n ///////////////////////\n // Client Connection //\n ///////////////////////\n static connectToAgent(getStream) {\n const defaultStream = () => {\n const socket = net_1.default.createConnection(PolykeyAgent.SocketPath);\n return socket;\n };\n const client = new PolykeyClient_1.default(getStream !== null && getStream !== void 0 ? getStream : defaultStream);\n return client;\n }\n // ===== Helper methods===== //\n static get SocketPath() {\n const platform = os_1.default.platform();\n const userInfo = os_1.default.userInfo();\n if (process_1.default.env.PK_SOCKET_PATH) {\n return process_1.default.env.PK_SOCKET_PATH;\n }\n else if (platform == 'win32') {\n return path_1.default.join('\\\\\\\\?\\\\pipe', process_1.default.cwd(), 'polykey-agent');\n }\n else {\n return `/run/user/${userInfo.uid}/polykey/S.polykey-agent`;\n }\n }\n static get LogPath() {\n const platform = os_1.default.platform();\n const userInfo = os_1.default.userInfo();\n if (process_1.default.env.PK_LOG_PATH) {\n return process_1.default.env.PK_LOG_PATH;\n }\n else if (platform == 'win32') {\n return path_1.default.join(os_1.default.tmpdir(), 'polykey', 'log');\n }\n else {\n return `/run/user/${userInfo.uid}/polykey/log`;\n }\n }\n static async startAgent(daemon = false) {\n return new Promise((resolve, reject) => {\n try {\n fs_1.default.rmdirSync(PolykeyAgent.LogPath, { recursive: true });\n fs_1.default.mkdirSync(PolykeyAgent.LogPath, { recursive: true });\n let options = {\n uid: process_1.default.getuid(),\n detached: daemon,\n stdio: [\n 'ipc',\n fs_1.default.openSync(path_1.default.join(PolykeyAgent.LogPath, 'output.log'), 'a'),\n fs_1.default.openSync(path_1.default.join(PolykeyAgent.LogPath, 'error.log'), 'a'),\n ],\n silent: true,\n };\n const agentProcess = child_process_1.fork(PolykeyAgent.DAEMON_SCRIPT_PATH, undefined, options);\n const pid = agentProcess.pid;\n agentProcess.unref();\n agentProcess.disconnect();\n resolve(pid);\n }\n catch (err) {\n reject(err);\n }\n });\n }\n}\n//////////////////////\n// Agent Operations //\n//////////////////////\nPolykeyAgent.DAEMON_SCRIPT_PATH = path_1.default.join(__dirname, 'internal', 'daemon-script.js');\nexports.default = PolykeyAgent;\n","module.exports = require(\"net\");","module.exports = require(\"process\");","module.exports = require(\"child_process\");","module.exports = require(\"configstore\");"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/assets/js/search.json b/docs/assets/js/search.json index 937234be9..cdec17385 100644 --- a/docs/assets/js/search.json +++ b/docs/assets/js/search.json @@ -1 +1 @@ -{"kinds":{"32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor","2097152":"Object literal","4194304":"Type alias"},"rows":[{"id":0,"kind":2097152,"name":"keyManagerWorker","url":"globals.html#keymanagerworker","classes":"tsd-kind-object-literal"},{"id":1,"kind":64,"name":"signData","url":"globals.html#keymanagerworker.signdata","classes":"tsd-kind-function tsd-parent-kind-object-literal","parent":"keyManagerWorker"},{"id":2,"kind":64,"name":"verifyData","url":"globals.html#keymanagerworker.verifydata","classes":"tsd-kind-function tsd-parent-kind-object-literal","parent":"keyManagerWorker"},{"id":3,"kind":64,"name":"encryptData","url":"globals.html#keymanagerworker.encryptdata","classes":"tsd-kind-function tsd-parent-kind-object-literal","parent":"keyManagerWorker"},{"id":4,"kind":64,"name":"decryptData","url":"globals.html#keymanagerworker.decryptdata","classes":"tsd-kind-function tsd-parent-kind-object-literal","parent":"keyManagerWorker"},{"id":5,"kind":4194304,"name":"KeyManagerWorker","url":"globals.html#keymanagerworker","classes":"tsd-kind-type-alias"},{"id":6,"kind":128,"name":"KeyManager","url":"classes/keymanager.html","classes":"tsd-kind-class"},{"id":7,"kind":1024,"name":"polykeyPath","url":"classes/keymanager.html#polykeypath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"KeyManager"},{"id":8,"kind":2097152,"name":"pkiInfo","url":"classes/keymanager.html#pkiinfo-1","classes":"tsd-kind-object-literal tsd-parent-kind-class","parent":"KeyManager"},{"id":9,"kind":32,"name":"key","url":"classes/keymanager.html#pkiinfo-1.key","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"KeyManager.pkiInfo"},{"id":10,"kind":32,"name":"cert","url":"classes/keymanager.html#pkiinfo-1.cert","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"KeyManager.pkiInfo"},{"id":11,"kind":32,"name":"caCert","url":"classes/keymanager.html#pkiinfo-1.cacert","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"KeyManager.pkiInfo"},{"id":12,"kind":512,"name":"constructor","url":"classes/keymanager.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"KeyManager"},{"id":13,"kind":262144,"name":"identityLoaded","url":"classes/keymanager.html#identityloaded","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"KeyManager"},{"id":14,"kind":2048,"name":"generateKeyPair","url":"classes/keymanager.html#generatekeypair","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":15,"kind":2048,"name":"getKeyPair","url":"classes/keymanager.html#getkeypair","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":16,"kind":2048,"name":"hasPublicKey","url":"classes/keymanager.html#haspublickey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":17,"kind":2048,"name":"getPublicKey","url":"classes/keymanager.html#getpublickey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":18,"kind":2048,"name":"getPrivateKey","url":"classes/keymanager.html#getprivatekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":19,"kind":2048,"name":"loadKeyPair","url":"classes/keymanager.html#loadkeypair","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":20,"kind":2048,"name":"loadPrivateKey","url":"classes/keymanager.html#loadprivatekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":21,"kind":2048,"name":"loadPublicKey","url":"classes/keymanager.html#loadpublickey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":22,"kind":2048,"name":"unlockIdentity","url":"classes/keymanager.html#unlockidentity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":23,"kind":2048,"name":"exportPrivateKey","url":"classes/keymanager.html#exportprivatekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":24,"kind":2048,"name":"exportPublicKey","url":"classes/keymanager.html#exportpublickey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":25,"kind":2048,"name":"generateKey","url":"classes/keymanager.html#generatekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":26,"kind":2048,"name":"deleteKey","url":"classes/keymanager.html#deletekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":27,"kind":2048,"name":"listKeys","url":"classes/keymanager.html#listkeys","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":28,"kind":2048,"name":"importKeySync","url":"classes/keymanager.html#importkeysync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":29,"kind":2048,"name":"importKey","url":"classes/keymanager.html#importkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":30,"kind":2048,"name":"exportKeySync","url":"classes/keymanager.html#exportkeysync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":31,"kind":2048,"name":"exportKey","url":"classes/keymanager.html#exportkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":32,"kind":2048,"name":"getIdentityFromPublicKey","url":"classes/keymanager.html#getidentityfrompublickey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":33,"kind":2048,"name":"getIdentityFromPrivateKey","url":"classes/keymanager.html#getidentityfromprivatekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":34,"kind":2048,"name":"signData","url":"classes/keymanager.html#signdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":35,"kind":2048,"name":"signFile","url":"classes/keymanager.html#signfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":36,"kind":2048,"name":"verifyData","url":"classes/keymanager.html#verifydata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":37,"kind":2048,"name":"verifyFile","url":"classes/keymanager.html#verifyfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":38,"kind":2048,"name":"encryptData","url":"classes/keymanager.html#encryptdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":39,"kind":2048,"name":"encryptFile","url":"classes/keymanager.html#encryptfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":40,"kind":2048,"name":"decryptData","url":"classes/keymanager.html#decryptdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":41,"kind":2048,"name":"decryptFile","url":"classes/keymanager.html#decryptfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":42,"kind":262144,"name":"PKIInfo","url":"classes/keymanager.html#pkiinfo","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"KeyManager"},{"id":43,"kind":2048,"name":"loadPKIInfo","url":"classes/keymanager.html#loadpkiinfo","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":44,"kind":2048,"name":"getKey","url":"classes/keymanager.html#getkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":45,"kind":2048,"name":"hasKey","url":"classes/keymanager.html#haskey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":46,"kind":2048,"name":"loadMetadata","url":"classes/keymanager.html#loadmetadata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyManager"},{"id":47,"kind":4194304,"name":"KeyManagerMetadata","url":"globals.html#keymanagermetadata","classes":"tsd-kind-type-alias"},{"id":48,"kind":65536,"name":"__type","url":"globals.html#keymanagermetadata.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"KeyManagerMetadata"},{"id":49,"kind":32,"name":"privateKeyPath","url":"globals.html#keymanagermetadata.__type.privatekeypath","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"KeyManagerMetadata.__type"},{"id":50,"kind":32,"name":"publicKeyPath","url":"globals.html#keymanagermetadata.__type.publickeypath","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"KeyManagerMetadata.__type"},{"id":51,"kind":32,"name":"pkiKeyPath","url":"globals.html#keymanagermetadata.__type.pkikeypath","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"KeyManagerMetadata.__type"},{"id":52,"kind":32,"name":"pkiCertPath","url":"globals.html#keymanagermetadata.__type.pkicertpath","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"KeyManagerMetadata.__type"},{"id":53,"kind":32,"name":"caCertPath","url":"globals.html#keymanagermetadata.__type.cacertpath","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"KeyManagerMetadata.__type"},{"id":54,"kind":4194304,"name":"KeyPair","url":"globals.html#keypair","classes":"tsd-kind-type-alias"},{"id":55,"kind":65536,"name":"__type","url":"globals.html#keypair.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"KeyPair"},{"id":56,"kind":32,"name":"private","url":"globals.html#keypair.__type.private","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"KeyPair.__type"},{"id":57,"kind":32,"name":"public","url":"globals.html#keypair.__type.public","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"KeyPair.__type"},{"id":58,"kind":4194304,"name":"PKInfo","url":"globals.html#pkinfo","classes":"tsd-kind-type-alias"},{"id":59,"kind":65536,"name":"__type","url":"globals.html#pkinfo.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"PKInfo"},{"id":60,"kind":32,"name":"key","url":"globals.html#pkinfo.__type.key","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"PKInfo.__type"},{"id":61,"kind":32,"name":"cert","url":"globals.html#pkinfo.__type.cert","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"PKInfo.__type"},{"id":62,"kind":32,"name":"caCert","url":"globals.html#pkinfo.__type.cacert","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"PKInfo.__type"},{"id":63,"kind":128,"name":"Address","url":"classes/address.html","classes":"tsd-kind-class"},{"id":64,"kind":1024,"name":"ip","url":"classes/address.html#ip","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Address"},{"id":65,"kind":1024,"name":"port","url":"classes/address.html#port","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Address"},{"id":66,"kind":512,"name":"constructor","url":"classes/address.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Address"},{"id":67,"kind":2048,"name":"parse","url":"classes/address.html#parse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Address"},{"id":68,"kind":2048,"name":"fromAddressInfo","url":"classes/address.html#fromaddressinfo","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Address"},{"id":69,"kind":2048,"name":"toString","url":"classes/address.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Address"},{"id":70,"kind":128,"name":"PeerInfo","url":"classes/peerinfo.html","classes":"tsd-kind-class"},{"id":71,"kind":1024,"name":"publicKey","url":"classes/peerinfo.html#publickey","classes":"tsd-kind-property tsd-parent-kind-class","parent":"PeerInfo"},{"id":72,"kind":1024,"name":"addresses","url":"classes/peerinfo.html#addresses","classes":"tsd-kind-property tsd-parent-kind-class","parent":"PeerInfo"},{"id":73,"kind":1024,"name":"connectedAddr","url":"classes/peerinfo.html#connectedaddr","classes":"tsd-kind-property tsd-parent-kind-class","parent":"PeerInfo"},{"id":74,"kind":512,"name":"constructor","url":"classes/peerinfo.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PeerInfo"},{"id":75,"kind":2048,"name":"connect","url":"classes/peerinfo.html#connect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PeerInfo"},{"id":76,"kind":2048,"name":"disconnect","url":"classes/peerinfo.html#disconnect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PeerInfo"},{"id":77,"kind":262144,"name":"AdressStringList","url":"classes/peerinfo.html#adressstringlist","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"PeerInfo"},{"id":78,"kind":128,"name":"Vault","url":"classes/vault.html","classes":"tsd-kind-class"},{"id":79,"kind":1024,"name":"name","url":"classes/vault.html#name","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Vault"},{"id":80,"kind":1024,"name":"vaultPath","url":"classes/vault.html#vaultpath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Vault"},{"id":81,"kind":512,"name":"constructor","url":"classes/vault.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Vault"},{"id":82,"kind":262144,"name":"EncryptedFS","url":"classes/vault.html#encryptedfs","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"Vault"},{"id":83,"kind":2048,"name":"secretExists","url":"classes/vault.html#secretexists","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":84,"kind":2048,"name":"addSecret","url":"classes/vault.html#addsecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":85,"kind":2048,"name":"updateSecret","url":"classes/vault.html#updatesecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":86,"kind":2048,"name":"getSecret","url":"classes/vault.html#getsecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":87,"kind":2048,"name":"removeSecret","url":"classes/vault.html#removesecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":88,"kind":2048,"name":"listSecrets","url":"classes/vault.html#listsecrets","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":89,"kind":2048,"name":"tagVault","url":"classes/vault.html#tagvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":90,"kind":2048,"name":"untagVault","url":"classes/vault.html#untagvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":91,"kind":2048,"name":"shareVault","url":"classes/vault.html#sharevault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":92,"kind":2048,"name":"unshareVault","url":"classes/vault.html#unsharevault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":93,"kind":2048,"name":"peerCanAccess","url":"classes/vault.html#peercanaccess","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":94,"kind":2048,"name":"pullVault","url":"classes/vault.html#pullvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":95,"kind":2048,"name":"getVaultHistory","url":"classes/vault.html#getvaulthistory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vault"},{"id":96,"kind":4194304,"name":"VaultMetadata","url":"globals.html#vaultmetadata","classes":"tsd-kind-type-alias"},{"id":97,"kind":65536,"name":"__type","url":"globals.html#vaultmetadata.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"VaultMetadata"},{"id":98,"kind":32,"name":"sharedPubKeys","url":"globals.html#vaultmetadata.__type.sharedpubkeys","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"VaultMetadata.__type"},{"id":99,"kind":128,"name":"VaultManager","url":"classes/vaultmanager.html","classes":"tsd-kind-class"},{"id":100,"kind":1024,"name":"polykeyPath","url":"classes/vaultmanager.html#polykeypath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"VaultManager"},{"id":101,"kind":1024,"name":"fileSystem","url":"classes/vaultmanager.html#filesystem","classes":"tsd-kind-property tsd-parent-kind-class","parent":"VaultManager"},{"id":102,"kind":1024,"name":"keyManager","url":"classes/vaultmanager.html#keymanager","classes":"tsd-kind-property tsd-parent-kind-class","parent":"VaultManager"},{"id":103,"kind":1024,"name":"metadataPath","url":"classes/vaultmanager.html#metadatapath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"VaultManager"},{"id":104,"kind":1024,"name":"vaults","url":"classes/vaultmanager.html#vaults","classes":"tsd-kind-property tsd-parent-kind-class","parent":"VaultManager"},{"id":105,"kind":1024,"name":"vaultKeys","url":"classes/vaultmanager.html#vaultkeys","classes":"tsd-kind-property tsd-parent-kind-class","parent":"VaultManager"},{"id":106,"kind":512,"name":"constructor","url":"classes/vaultmanager.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"VaultManager"},{"id":107,"kind":2048,"name":"getVault","url":"classes/vaultmanager.html#getvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VaultManager"},{"id":108,"kind":2048,"name":"createVault","url":"classes/vaultmanager.html#createvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VaultManager"},{"id":109,"kind":2048,"name":"cloneVault","url":"classes/vaultmanager.html#clonevault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VaultManager"},{"id":110,"kind":2048,"name":"vaultExists","url":"classes/vaultmanager.html#vaultexists","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VaultManager"},{"id":111,"kind":2048,"name":"destroyVault","url":"classes/vaultmanager.html#destroyvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VaultManager"},{"id":112,"kind":2048,"name":"listVaults","url":"classes/vaultmanager.html#listvaults","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VaultManager"},{"id":113,"kind":2048,"name":"loadMetadata","url":"classes/vaultmanager.html#loadmetadata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VaultManager"},{"id":114,"kind":64,"name":"randomString","url":"globals.html#randomstring","classes":"tsd-kind-function"},{"id":115,"kind":64,"name":"invertPromise","url":"globals.html#invertpromise","classes":"tsd-kind-function tsd-has-type-parameter"},{"id":116,"kind":64,"name":"firstPromiseFulfilled","url":"globals.html#firstpromisefulfilled","classes":"tsd-kind-function tsd-has-type-parameter"},{"id":117,"kind":128,"name":"MulticastBroadcaster","url":"classes/multicastbroadcaster.html","classes":"tsd-kind-class"},{"id":118,"kind":1024,"name":"addPeer","url":"classes/multicastbroadcaster.html#addpeer","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MulticastBroadcaster"},{"id":119,"kind":65536,"name":"__type","url":"classes/multicastbroadcaster.html#addpeer.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"MulticastBroadcaster.addPeer"},{"id":120,"kind":1024,"name":"localPeerInfo","url":"classes/multicastbroadcaster.html#localpeerinfo","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MulticastBroadcaster"},{"id":121,"kind":1024,"name":"keyManager","url":"classes/multicastbroadcaster.html#keymanager","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MulticastBroadcaster"},{"id":122,"kind":1024,"name":"socket","url":"classes/multicastbroadcaster.html#socket","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MulticastBroadcaster"},{"id":123,"kind":1024,"name":"interval","url":"classes/multicastbroadcaster.html#interval","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MulticastBroadcaster"},{"id":124,"kind":1024,"name":"queryInterval","url":"classes/multicastbroadcaster.html#queryinterval","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MulticastBroadcaster"},{"id":125,"kind":1024,"name":"peerPubKeyMessages","url":"classes/multicastbroadcaster.html#peerpubkeymessages","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MulticastBroadcaster"},{"id":126,"kind":512,"name":"constructor","url":"classes/multicastbroadcaster.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"MulticastBroadcaster"},{"id":127,"kind":2048,"name":"requestPeerContact","url":"classes/multicastbroadcaster.html#requestpeercontact","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MulticastBroadcaster"},{"id":128,"kind":2048,"name":"addListener","url":"classes/multicastbroadcaster.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":129,"kind":2048,"name":"on","url":"classes/multicastbroadcaster.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":130,"kind":2048,"name":"once","url":"classes/multicastbroadcaster.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":131,"kind":2048,"name":"removeListener","url":"classes/multicastbroadcaster.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":132,"kind":2048,"name":"off","url":"classes/multicastbroadcaster.html#off","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":133,"kind":2048,"name":"removeAllListeners","url":"classes/multicastbroadcaster.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":134,"kind":2048,"name":"setMaxListeners","url":"classes/multicastbroadcaster.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":135,"kind":2048,"name":"getMaxListeners","url":"classes/multicastbroadcaster.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":136,"kind":2048,"name":"listeners","url":"classes/multicastbroadcaster.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":137,"kind":2048,"name":"rawListeners","url":"classes/multicastbroadcaster.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":138,"kind":2048,"name":"emit","url":"classes/multicastbroadcaster.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":139,"kind":2048,"name":"listenerCount","url":"classes/multicastbroadcaster.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":140,"kind":2048,"name":"prependListener","url":"classes/multicastbroadcaster.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":141,"kind":2048,"name":"prependOnceListener","url":"classes/multicastbroadcaster.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":142,"kind":2048,"name":"eventNames","url":"classes/multicastbroadcaster.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MulticastBroadcaster"},{"id":143,"kind":2048,"name":"listenerCount","url":"classes/multicastbroadcaster.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"MulticastBroadcaster"},{"id":144,"kind":1024,"name":"defaultMaxListeners","url":"classes/multicastbroadcaster.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"MulticastBroadcaster"},{"id":145,"kind":32,"name":"HandshakeMessage","url":"globals.html#handshakemessage","classes":"tsd-kind-variable"},{"id":146,"kind":32,"name":"PeerInfoMessage","url":"globals.html#peerinfomessage","classes":"tsd-kind-variable"},{"id":147,"kind":32,"name":"UDP_MULTICAST_PORT","url":"globals.html#udp_multicast_port","classes":"tsd-kind-variable"},{"id":148,"kind":32,"name":"UDP_MULTICAST_ADDR","url":"globals.html#udp_multicast_addr","classes":"tsd-kind-variable"},{"id":149,"kind":4194304,"name":"PeerMessage","url":"globals.html#peermessage","classes":"tsd-kind-type-alias"},{"id":150,"kind":65536,"name":"__type","url":"globals.html#peermessage.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"PeerMessage"},{"id":151,"kind":32,"name":"encryptedLocalPubKey","url":"globals.html#peermessage.__type.encryptedlocalpubkey","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"PeerMessage.__type"},{"id":152,"kind":32,"name":"encryptedPeerPubKey","url":"globals.html#peermessage.__type.encryptedpeerpubkey","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"PeerMessage.__type"},{"id":153,"kind":32,"name":"rawRandomMessage","url":"globals.html#peermessage.__type.rawrandommessage","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"PeerMessage.__type"},{"id":154,"kind":32,"name":"encryptedRandomMessage","url":"globals.html#peermessage.__type.encryptedrandommessage","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"PeerMessage.__type"},{"id":155,"kind":256,"name":"SocialDiscovery","url":"interfaces/socialdiscovery.html","classes":"tsd-kind-interface"},{"id":156,"kind":1024,"name":"name","url":"interfaces/socialdiscovery.html#name","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"SocialDiscovery"},{"id":157,"kind":2048,"name":"findUser","url":"interfaces/socialdiscovery.html#finduser","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"SocialDiscovery"},{"id":158,"kind":128,"name":"PeerManager","url":"classes/peermanager.html","classes":"tsd-kind-class"},{"id":159,"kind":1024,"name":"multicastBroadcaster","url":"classes/peermanager.html#multicastbroadcaster","classes":"tsd-kind-property tsd-parent-kind-class","parent":"PeerManager"},{"id":160,"kind":1024,"name":"server","url":"classes/peermanager.html#server","classes":"tsd-kind-property tsd-parent-kind-class","parent":"PeerManager"},{"id":161,"kind":1024,"name":"serverStarted","url":"classes/peermanager.html#serverstarted","classes":"tsd-kind-property tsd-parent-kind-class","parent":"PeerManager"},{"id":162,"kind":512,"name":"constructor","url":"classes/peermanager.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PeerManager"},{"id":163,"kind":2048,"name":"getLocalPeerInfo","url":"classes/peermanager.html#getlocalpeerinfo","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PeerManager"},{"id":164,"kind":2048,"name":"connectLocalPeerInfo","url":"classes/peermanager.html#connectlocalpeerinfo","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PeerManager"},{"id":165,"kind":2048,"name":"addPeer","url":"classes/peermanager.html#addpeer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PeerManager"},{"id":166,"kind":2048,"name":"getPeer","url":"classes/peermanager.html#getpeer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PeerManager"},{"id":167,"kind":2048,"name":"hasPeer","url":"classes/peermanager.html#haspeer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PeerManager"},{"id":168,"kind":2048,"name":"findPubKey","url":"classes/peermanager.html#findpubkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PeerManager"},{"id":169,"kind":2048,"name":"findSocialUser","url":"classes/peermanager.html#findsocialuser","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PeerManager"},{"id":170,"kind":2048,"name":"connectToPeer","url":"classes/peermanager.html#connecttopeer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PeerManager"},{"id":171,"kind":2048,"name":"loadMetadata","url":"classes/peermanager.html#loadmetadata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PeerManager"},{"id":172,"kind":2097152,"name":"keybaseDiscovery","url":"globals.html#keybasediscovery","classes":"tsd-kind-object-literal"},{"id":173,"kind":32,"name":"name","url":"globals.html#keybasediscovery.name","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"keybaseDiscovery"},{"id":174,"kind":64,"name":"findUser","url":"globals.html#keybasediscovery.finduser","classes":"tsd-kind-function tsd-parent-kind-object-literal","parent":"keybaseDiscovery"},{"id":175,"kind":4194304,"name":"PeerManagerMetadata","url":"globals.html#peermanagermetadata","classes":"tsd-kind-type-alias"},{"id":176,"kind":65536,"name":"__type","url":"globals.html#peermanagermetadata.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"PeerManagerMetadata"},{"id":177,"kind":32,"name":"localPeerInfo","url":"globals.html#peermanagermetadata.__type.localpeerinfo","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"PeerManagerMetadata.__type"},{"id":178,"kind":128,"name":"PolykeyClient","url":"classes/polykeyclient.html","classes":"tsd-kind-class"},{"id":179,"kind":512,"name":"constructor","url":"classes/polykeyclient.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PolykeyClient"},{"id":180,"kind":2048,"name":"sendRequestToAgent","url":"classes/polykeyclient.html#sendrequesttoagent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":181,"kind":2048,"name":"registerNode","url":"classes/polykeyclient.html#registernode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":182,"kind":2048,"name":"newNode","url":"classes/polykeyclient.html#newnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":183,"kind":2048,"name":"listNodes","url":"classes/polykeyclient.html#listnodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":184,"kind":2048,"name":"deriveKey","url":"classes/polykeyclient.html#derivekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":185,"kind":2048,"name":"deleteKey","url":"classes/polykeyclient.html#deletekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":186,"kind":2048,"name":"listKeys","url":"classes/polykeyclient.html#listkeys","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":187,"kind":2048,"name":"getKey","url":"classes/polykeyclient.html#getkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":188,"kind":2048,"name":"getPrimaryKeyPair","url":"classes/polykeyclient.html#getprimarykeypair","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":189,"kind":2048,"name":"signFile","url":"classes/polykeyclient.html#signfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":190,"kind":2048,"name":"verifyFile","url":"classes/polykeyclient.html#verifyfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":191,"kind":2048,"name":"encryptFile","url":"classes/polykeyclient.html#encryptfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":192,"kind":2048,"name":"decryptFile","url":"classes/polykeyclient.html#decryptfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":193,"kind":2048,"name":"listVaults","url":"classes/polykeyclient.html#listvaults","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":194,"kind":2048,"name":"newVault","url":"classes/polykeyclient.html#newvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":195,"kind":2048,"name":"destroyVault","url":"classes/polykeyclient.html#destroyvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":196,"kind":2048,"name":"listSecrets","url":"classes/polykeyclient.html#listsecrets","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":197,"kind":2048,"name":"createSecret","url":"classes/polykeyclient.html#createsecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":198,"kind":2048,"name":"destroySecret","url":"classes/polykeyclient.html#destroysecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":199,"kind":2048,"name":"getSecret","url":"classes/polykeyclient.html#getsecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":200,"kind":2048,"name":"updateSecret","url":"classes/polykeyclient.html#updatesecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":201,"kind":2048,"name":"getAgentStatus","url":"classes/polykeyclient.html#getagentstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":202,"kind":2048,"name":"stopAgent","url":"classes/polykeyclient.html#stopagent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyClient"},{"id":203,"kind":32,"name":"AgentMessage","url":"globals.html#agentmessage","classes":"tsd-kind-variable"},{"id":204,"kind":32,"name":"AgentMessageType","url":"globals.html#agentmessagetype","classes":"tsd-kind-variable"},{"id":205,"kind":32,"name":"CreateSecretRequestMessage","url":"globals.html#createsecretrequestmessage","classes":"tsd-kind-variable"},{"id":206,"kind":32,"name":"CreateSecretResponseMessage","url":"globals.html#createsecretresponsemessage","classes":"tsd-kind-variable"},{"id":207,"kind":32,"name":"DecryptFileRequestMessage","url":"globals.html#decryptfilerequestmessage","classes":"tsd-kind-variable"},{"id":208,"kind":32,"name":"DecryptFileResponseMessage","url":"globals.html#decryptfileresponsemessage","classes":"tsd-kind-variable"},{"id":209,"kind":32,"name":"DeleteKeyRequestMessage","url":"globals.html#deletekeyrequestmessage","classes":"tsd-kind-variable"},{"id":210,"kind":32,"name":"DeleteKeyResponseMessage","url":"globals.html#deletekeyresponsemessage","classes":"tsd-kind-variable"},{"id":211,"kind":32,"name":"DeriveKeyRequestMessage","url":"globals.html#derivekeyrequestmessage","classes":"tsd-kind-variable"},{"id":212,"kind":32,"name":"DeriveKeyResponseMessage","url":"globals.html#derivekeyresponsemessage","classes":"tsd-kind-variable"},{"id":213,"kind":32,"name":"DestroySecretRequestMessage","url":"globals.html#destroysecretrequestmessage","classes":"tsd-kind-variable"},{"id":214,"kind":32,"name":"DestroySecretResponseMessage","url":"globals.html#destroysecretresponsemessage","classes":"tsd-kind-variable"},{"id":215,"kind":32,"name":"DestroyVaultRequestMessage","url":"globals.html#destroyvaultrequestmessage","classes":"tsd-kind-variable"},{"id":216,"kind":32,"name":"DestroyVaultResponseMessage","url":"globals.html#destroyvaultresponsemessage","classes":"tsd-kind-variable"},{"id":217,"kind":32,"name":"EncryptFileRequestMessage","url":"globals.html#encryptfilerequestmessage","classes":"tsd-kind-variable"},{"id":218,"kind":32,"name":"EncryptFileResponseMessage","url":"globals.html#encryptfileresponsemessage","classes":"tsd-kind-variable"},{"id":219,"kind":32,"name":"ErrorMessage","url":"globals.html#errormessage","classes":"tsd-kind-variable"},{"id":220,"kind":32,"name":"GetPrimaryKeyPairRequestMessage","url":"globals.html#getprimarykeypairrequestmessage","classes":"tsd-kind-variable"},{"id":221,"kind":32,"name":"GetPrimaryKeyPairResponseMessage","url":"globals.html#getprimarykeypairresponsemessage","classes":"tsd-kind-variable"},{"id":222,"kind":32,"name":"GetSecretRequestMessage","url":"globals.html#getsecretrequestmessage","classes":"tsd-kind-variable"},{"id":223,"kind":32,"name":"GetSecretResponseMessage","url":"globals.html#getsecretresponsemessage","classes":"tsd-kind-variable"},{"id":224,"kind":32,"name":"GetKeyRequestMessage","url":"globals.html#getkeyrequestmessage","classes":"tsd-kind-variable"},{"id":225,"kind":32,"name":"GetKeyResponseMessage","url":"globals.html#getkeyresponsemessage","classes":"tsd-kind-variable"},{"id":226,"kind":32,"name":"ListKeysRequestMessage","url":"globals.html#listkeysrequestmessage","classes":"tsd-kind-variable"},{"id":227,"kind":32,"name":"ListKeysResponseMessage","url":"globals.html#listkeysresponsemessage","classes":"tsd-kind-variable"},{"id":228,"kind":32,"name":"ListNodesRequestMessage","url":"globals.html#listnodesrequestmessage","classes":"tsd-kind-variable"},{"id":229,"kind":32,"name":"ListNodesResponseMessage","url":"globals.html#listnodesresponsemessage","classes":"tsd-kind-variable"},{"id":230,"kind":32,"name":"ListSecretsRequestMessage","url":"globals.html#listsecretsrequestmessage","classes":"tsd-kind-variable"},{"id":231,"kind":32,"name":"ListSecretsResponseMessage","url":"globals.html#listsecretsresponsemessage","classes":"tsd-kind-variable"},{"id":232,"kind":32,"name":"ListVaultsRequestMessage","url":"globals.html#listvaultsrequestmessage","classes":"tsd-kind-variable"},{"id":233,"kind":32,"name":"ListVaultsResponseMessage","url":"globals.html#listvaultsresponsemessage","classes":"tsd-kind-variable"},{"id":234,"kind":32,"name":"NewNodeRequestMessage","url":"globals.html#newnoderequestmessage","classes":"tsd-kind-variable"},{"id":235,"kind":32,"name":"NewNodeResponseMessage","url":"globals.html#newnoderesponsemessage","classes":"tsd-kind-variable"},{"id":236,"kind":32,"name":"NewVaultRequestMessage","url":"globals.html#newvaultrequestmessage","classes":"tsd-kind-variable"},{"id":237,"kind":32,"name":"NewVaultResponseMessage","url":"globals.html#newvaultresponsemessage","classes":"tsd-kind-variable"},{"id":238,"kind":32,"name":"RegisterNodeRequestMessage","url":"globals.html#registernoderequestmessage","classes":"tsd-kind-variable"},{"id":239,"kind":32,"name":"RegisterNodeResponseMessage","url":"globals.html#registernoderesponsemessage","classes":"tsd-kind-variable"},{"id":240,"kind":32,"name":"SignFileRequestMessage","url":"globals.html#signfilerequestmessage","classes":"tsd-kind-variable"},{"id":241,"kind":32,"name":"SignFileResponseMessage","url":"globals.html#signfileresponsemessage","classes":"tsd-kind-variable"},{"id":242,"kind":32,"name":"UpdateSecretRequestMessage","url":"globals.html#updatesecretrequestmessage","classes":"tsd-kind-variable"},{"id":243,"kind":32,"name":"UpdateSecretResponseMessage","url":"globals.html#updatesecretresponsemessage","classes":"tsd-kind-variable"},{"id":244,"kind":32,"name":"VerifyFileRequestMessage","url":"globals.html#verifyfilerequestmessage","classes":"tsd-kind-variable"},{"id":245,"kind":32,"name":"VerifyFileResponseMessage","url":"globals.html#verifyfileresponsemessage","classes":"tsd-kind-variable"},{"id":246,"kind":128,"name":"PolykeyAgent","url":"classes/polykeyagent.html","classes":"tsd-kind-class"},{"id":247,"kind":262144,"name":"AllNodePaths","url":"classes/polykeyagent.html#allnodepaths","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"PolykeyAgent"},{"id":248,"kind":262144,"name":"UnlockedNodePaths","url":"classes/polykeyagent.html#unlockednodepaths","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"PolykeyAgent"},{"id":249,"kind":512,"name":"constructor","url":"classes/polykeyagent.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PolykeyAgent"},{"id":250,"kind":2048,"name":"stop","url":"classes/polykeyagent.html#stop","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PolykeyAgent"},{"id":251,"kind":2048,"name":"connectToAgent","url":"classes/polykeyagent.html#connecttoagent","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"PolykeyAgent"},{"id":252,"kind":262144,"name":"SocketPath","url":"classes/polykeyagent.html#socketpath","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-static","parent":"PolykeyAgent"},{"id":253,"kind":262144,"name":"LogPath","url":"classes/polykeyagent.html#logpath","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-static","parent":"PolykeyAgent"},{"id":254,"kind":1024,"name":"DAEMON_SCRIPT_PATH","url":"classes/polykeyagent.html#daemon_script_path","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"PolykeyAgent"},{"id":255,"kind":2048,"name":"startAgent","url":"classes/polykeyagent.html#startagent","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"PolykeyAgent"},{"id":256,"kind":128,"name":"Polykey","url":"classes/polykey.html","classes":"tsd-kind-class"},{"id":257,"kind":1024,"name":"polykeyPath","url":"classes/polykey.html#polykeypath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Polykey"},{"id":258,"kind":1024,"name":"vaultManager","url":"classes/polykey.html#vaultmanager","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Polykey"},{"id":259,"kind":1024,"name":"keyManager","url":"classes/polykey.html#keymanager","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Polykey"},{"id":260,"kind":1024,"name":"peerManager","url":"classes/polykey.html#peermanager","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Polykey"},{"id":261,"kind":512,"name":"constructor","url":"classes/polykey.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Polykey"},{"id":262,"kind":128,"name":"PublicKeyInfrastructure","url":"classes/publickeyinfrastructure.html","classes":"tsd-kind-class"},{"id":263,"kind":1024,"name":"N_BITS","url":"classes/publickeyinfrastructure.html#n_bits","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"PublicKeyInfrastructure"},{"id":264,"kind":1024,"name":"COMMON_NAME","url":"classes/publickeyinfrastructure.html#common_name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"PublicKeyInfrastructure"},{"id":265,"kind":1024,"name":"ORGANIZATION_NAME","url":"classes/publickeyinfrastructure.html#organization_name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"PublicKeyInfrastructure"},{"id":266,"kind":2048,"name":"createX509Certificate","url":"classes/publickeyinfrastructure.html#createx509certificate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"PublicKeyInfrastructure"},{"id":267,"kind":32,"name":"$protobuf","url":"globals.html#_protobuf","classes":"tsd-kind-variable"},{"id":268,"kind":32,"name":"$Reader","url":"globals.html#_reader","classes":"tsd-kind-variable"},{"id":269,"kind":32,"name":"$Writer","url":"globals.html#_writer","classes":"tsd-kind-variable"},{"id":270,"kind":32,"name":"$util","url":"globals.html#_util","classes":"tsd-kind-variable"},{"id":271,"kind":32,"name":"$root","url":"globals.html#_root","classes":"tsd-kind-variable"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,37.377]],["parent/0",[]],["name/1",[1,46.932]],["parent/1",[0,3.226]],["name/2",[2,46.932]],["parent/2",[0,3.226]],["name/3",[3,46.932]],["parent/3",[0,3.226]],["name/4",[4,46.932]],["parent/4",[0,3.226]],["name/5",[0,37.377]],["parent/5",[]],["name/6",[5,18.838]],["parent/6",[]],["name/7",[6,43.567]],["parent/7",[5,1.626]],["name/8",[7,46.932]],["parent/8",[5,1.626]],["name/9",[8,46.932]],["parent/9",[9,3.76]],["name/10",[10,46.932]],["parent/10",[9,3.76]],["name/11",[11,46.932]],["parent/11",[9,3.76]],["name/12",[12,32.581]],["parent/12",[5,1.626]],["name/13",[13,52.04]],["parent/13",[5,1.626]],["name/14",[14,52.04]],["parent/14",[5,1.626]],["name/15",[15,52.04]],["parent/15",[5,1.626]],["name/16",[16,52.04]],["parent/16",[5,1.626]],["name/17",[17,52.04]],["parent/17",[5,1.626]],["name/18",[18,52.04]],["parent/18",[5,1.626]],["name/19",[19,52.04]],["parent/19",[5,1.626]],["name/20",[20,52.04]],["parent/20",[5,1.626]],["name/21",[21,52.04]],["parent/21",[5,1.626]],["name/22",[22,52.04]],["parent/22",[5,1.626]],["name/23",[23,52.04]],["parent/23",[5,1.626]],["name/24",[24,52.04]],["parent/24",[5,1.626]],["name/25",[25,52.04]],["parent/25",[5,1.626]],["name/26",[26,46.932]],["parent/26",[5,1.626]],["name/27",[27,46.932]],["parent/27",[5,1.626]],["name/28",[28,52.04]],["parent/28",[5,1.626]],["name/29",[29,52.04]],["parent/29",[5,1.626]],["name/30",[30,52.04]],["parent/30",[5,1.626]],["name/31",[31,52.04]],["parent/31",[5,1.626]],["name/32",[32,52.04]],["parent/32",[5,1.626]],["name/33",[33,52.04]],["parent/33",[5,1.626]],["name/34",[1,46.932]],["parent/34",[5,1.626]],["name/35",[34,46.932]],["parent/35",[5,1.626]],["name/36",[2,46.932]],["parent/36",[5,1.626]],["name/37",[35,46.932]],["parent/37",[5,1.626]],["name/38",[3,46.932]],["parent/38",[5,1.626]],["name/39",[36,46.932]],["parent/39",[5,1.626]],["name/40",[4,46.932]],["parent/40",[5,1.626]],["name/41",[37,46.932]],["parent/41",[5,1.626]],["name/42",[7,46.932]],["parent/42",[5,1.626]],["name/43",[38,52.04]],["parent/43",[5,1.626]],["name/44",[39,46.932]],["parent/44",[5,1.626]],["name/45",[40,52.04]],["parent/45",[5,1.626]],["name/46",[41,43.567]],["parent/46",[5,1.626]],["name/47",[42,46.932]],["parent/47",[]],["name/48",[43,35.946]],["parent/48",[42,4.051]],["name/49",[44,52.04]],["parent/49",[45,3.37]],["name/50",[46,52.04]],["parent/50",[45,3.37]],["name/51",[47,52.04]],["parent/51",[45,3.37]],["name/52",[48,52.04]],["parent/52",[45,3.37]],["name/53",[49,52.04]],["parent/53",[45,3.37]],["name/54",[50,46.932]],["parent/54",[]],["name/55",[43,35.946]],["parent/55",[50,4.051]],["name/56",[51,52.04]],["parent/56",[52,4.051]],["name/57",[53,52.04]],["parent/57",[52,4.051]],["name/58",[54,46.932]],["parent/58",[]],["name/59",[43,35.946]],["parent/59",[54,4.051]],["name/60",[8,46.932]],["parent/60",[55,3.76]],["name/61",[10,46.932]],["parent/61",[55,3.76]],["name/62",[11,46.932]],["parent/62",[55,3.76]],["name/63",[56,35.946]],["parent/63",[]],["name/64",[57,52.04]],["parent/64",[56,3.102]],["name/65",[58,52.04]],["parent/65",[56,3.102]],["name/66",[12,32.581]],["parent/66",[56,3.102]],["name/67",[59,52.04]],["parent/67",[56,3.102]],["name/68",[60,52.04]],["parent/68",[56,3.102]],["name/69",[61,52.04]],["parent/69",[56,3.102]],["name/70",[62,34.694]],["parent/70",[]],["name/71",[63,52.04]],["parent/71",[62,2.994]],["name/72",[64,52.04]],["parent/72",[62,2.994]],["name/73",[65,52.04]],["parent/73",[62,2.994]],["name/74",[12,32.581]],["parent/74",[62,2.994]],["name/75",[66,52.04]],["parent/75",[62,2.994]],["name/76",[67,52.04]],["parent/76",[62,2.994]],["name/77",[68,52.04]],["parent/77",[62,2.994]],["name/78",[69,26.917]],["parent/78",[]],["name/79",[70,43.567]],["parent/79",[69,2.323]],["name/80",[71,52.04]],["parent/80",[69,2.323]],["name/81",[12,32.581]],["parent/81",[69,2.323]],["name/82",[72,52.04]],["parent/82",[69,2.323]],["name/83",[73,52.04]],["parent/83",[69,2.323]],["name/84",[74,52.04]],["parent/84",[69,2.323]],["name/85",[75,46.932]],["parent/85",[69,2.323]],["name/86",[76,46.932]],["parent/86",[69,2.323]],["name/87",[77,52.04]],["parent/87",[69,2.323]],["name/88",[78,46.932]],["parent/88",[69,2.323]],["name/89",[79,52.04]],["parent/89",[69,2.323]],["name/90",[80,52.04]],["parent/90",[69,2.323]],["name/91",[81,52.04]],["parent/91",[69,2.323]],["name/92",[82,52.04]],["parent/92",[69,2.323]],["name/93",[83,52.04]],["parent/93",[69,2.323]],["name/94",[84,52.04]],["parent/94",[69,2.323]],["name/95",[85,52.04]],["parent/95",[69,2.323]],["name/96",[86,46.932]],["parent/96",[]],["name/97",[43,35.946]],["parent/97",[86,4.051]],["name/98",[87,52.04]],["parent/98",[88,4.492]],["name/99",[89,28.061]],["parent/99",[]],["name/100",[6,43.567]],["parent/100",[89,2.422]],["name/101",[90,52.04]],["parent/101",[89,2.422]],["name/102",[5,18.838]],["parent/102",[89,2.422]],["name/103",[91,52.04]],["parent/103",[89,2.422]],["name/104",[92,52.04]],["parent/104",[89,2.422]],["name/105",[93,52.04]],["parent/105",[89,2.422]],["name/106",[12,32.581]],["parent/106",[89,2.422]],["name/107",[94,52.04]],["parent/107",[89,2.422]],["name/108",[95,52.04]],["parent/108",[89,2.422]],["name/109",[96,52.04]],["parent/109",[89,2.422]],["name/110",[97,52.04]],["parent/110",[89,2.422]],["name/111",[98,46.932]],["parent/111",[89,2.422]],["name/112",[99,46.932]],["parent/112",[89,2.422]],["name/113",[41,43.567]],["parent/113",[89,2.422]],["name/114",[100,52.04]],["parent/114",[]],["name/115",[101,52.04]],["parent/115",[]],["name/116",[102,52.04]],["parent/116",[]],["name/117",[103,22.596]],["parent/117",[]],["name/118",[104,46.932]],["parent/118",[103,1.95]],["name/119",[43,35.946]],["parent/119",[105,4.492]],["name/120",[106,46.932]],["parent/120",[103,1.95]],["name/121",[5,18.838]],["parent/121",[103,1.95]],["name/122",[107,52.04]],["parent/122",[103,1.95]],["name/123",[108,52.04]],["parent/123",[103,1.95]],["name/124",[109,52.04]],["parent/124",[103,1.95]],["name/125",[110,52.04]],["parent/125",[103,1.95]],["name/126",[12,32.581]],["parent/126",[103,1.95]],["name/127",[111,52.04]],["parent/127",[103,1.95]],["name/128",[112,52.04]],["parent/128",[103,1.95]],["name/129",[113,52.04]],["parent/129",[103,1.95]],["name/130",[114,52.04]],["parent/130",[103,1.95]],["name/131",[115,52.04]],["parent/131",[103,1.95]],["name/132",[116,52.04]],["parent/132",[103,1.95]],["name/133",[117,52.04]],["parent/133",[103,1.95]],["name/134",[118,52.04]],["parent/134",[103,1.95]],["name/135",[119,52.04]],["parent/135",[103,1.95]],["name/136",[120,52.04]],["parent/136",[103,1.95]],["name/137",[121,52.04]],["parent/137",[103,1.95]],["name/138",[122,52.04]],["parent/138",[103,1.95]],["name/139",[123,46.932]],["parent/139",[103,1.95]],["name/140",[124,52.04]],["parent/140",[103,1.95]],["name/141",[125,52.04]],["parent/141",[103,1.95]],["name/142",[126,52.04]],["parent/142",[103,1.95]],["name/143",[123,46.932]],["parent/143",[103,1.95]],["name/144",[127,52.04]],["parent/144",[103,1.95]],["name/145",[128,52.04]],["parent/145",[]],["name/146",[129,52.04]],["parent/146",[]],["name/147",[130,52.04]],["parent/147",[]],["name/148",[131,52.04]],["parent/148",[]],["name/149",[132,46.932]],["parent/149",[]],["name/150",[43,35.946]],["parent/150",[132,4.051]],["name/151",[133,52.04]],["parent/151",[134,3.543]],["name/152",[135,52.04]],["parent/152",[134,3.543]],["name/153",[136,52.04]],["parent/153",[134,3.543]],["name/154",[137,52.04]],["parent/154",[134,3.543]],["name/155",[138,43.567]],["parent/155",[]],["name/156",[70,43.567]],["parent/156",[138,3.76]],["name/157",[139,46.932]],["parent/157",[138,3.76]],["name/158",[140,28.686]],["parent/158",[]],["name/159",[103,22.596]],["parent/159",[140,2.476]],["name/160",[141,52.04]],["parent/160",[140,2.476]],["name/161",[142,52.04]],["parent/161",[140,2.476]],["name/162",[12,32.581]],["parent/162",[140,2.476]],["name/163",[143,52.04]],["parent/163",[140,2.476]],["name/164",[144,52.04]],["parent/164",[140,2.476]],["name/165",[104,46.932]],["parent/165",[140,2.476]],["name/166",[145,52.04]],["parent/166",[140,2.476]],["name/167",[146,52.04]],["parent/167",[140,2.476]],["name/168",[147,52.04]],["parent/168",[140,2.476]],["name/169",[148,52.04]],["parent/169",[140,2.476]],["name/170",[149,52.04]],["parent/170",[140,2.476]],["name/171",[41,43.567]],["parent/171",[140,2.476]],["name/172",[150,43.567]],["parent/172",[]],["name/173",[70,43.567]],["parent/173",[150,3.76]],["name/174",[139,46.932]],["parent/174",[150,3.76]],["name/175",[151,46.932]],["parent/175",[]],["name/176",[43,35.946]],["parent/176",[151,4.051]],["name/177",[106,46.932]],["parent/177",[152,4.492]],["name/178",[153,23.708]],["parent/178",[]],["name/179",[12,32.581]],["parent/179",[153,2.046]],["name/180",[154,52.04]],["parent/180",[153,2.046]],["name/181",[155,52.04]],["parent/181",[153,2.046]],["name/182",[156,52.04]],["parent/182",[153,2.046]],["name/183",[157,52.04]],["parent/183",[153,2.046]],["name/184",[158,52.04]],["parent/184",[153,2.046]],["name/185",[26,46.932]],["parent/185",[153,2.046]],["name/186",[27,46.932]],["parent/186",[153,2.046]],["name/187",[39,46.932]],["parent/187",[153,2.046]],["name/188",[159,52.04]],["parent/188",[153,2.046]],["name/189",[34,46.932]],["parent/189",[153,2.046]],["name/190",[35,46.932]],["parent/190",[153,2.046]],["name/191",[36,46.932]],["parent/191",[153,2.046]],["name/192",[37,46.932]],["parent/192",[153,2.046]],["name/193",[99,46.932]],["parent/193",[153,2.046]],["name/194",[160,52.04]],["parent/194",[153,2.046]],["name/195",[98,46.932]],["parent/195",[153,2.046]],["name/196",[78,46.932]],["parent/196",[153,2.046]],["name/197",[161,52.04]],["parent/197",[153,2.046]],["name/198",[162,52.04]],["parent/198",[153,2.046]],["name/199",[76,46.932]],["parent/199",[153,2.046]],["name/200",[75,46.932]],["parent/200",[153,2.046]],["name/201",[163,52.04]],["parent/201",[153,2.046]],["name/202",[164,52.04]],["parent/202",[153,2.046]],["name/203",[165,52.04]],["parent/203",[]],["name/204",[166,52.04]],["parent/204",[]],["name/205",[167,52.04]],["parent/205",[]],["name/206",[168,52.04]],["parent/206",[]],["name/207",[169,52.04]],["parent/207",[]],["name/208",[170,52.04]],["parent/208",[]],["name/209",[171,52.04]],["parent/209",[]],["name/210",[172,52.04]],["parent/210",[]],["name/211",[173,52.04]],["parent/211",[]],["name/212",[174,52.04]],["parent/212",[]],["name/213",[175,52.04]],["parent/213",[]],["name/214",[176,52.04]],["parent/214",[]],["name/215",[177,52.04]],["parent/215",[]],["name/216",[178,52.04]],["parent/216",[]],["name/217",[179,52.04]],["parent/217",[]],["name/218",[180,52.04]],["parent/218",[]],["name/219",[181,52.04]],["parent/219",[]],["name/220",[182,52.04]],["parent/220",[]],["name/221",[183,52.04]],["parent/221",[]],["name/222",[184,52.04]],["parent/222",[]],["name/223",[185,52.04]],["parent/223",[]],["name/224",[186,52.04]],["parent/224",[]],["name/225",[187,52.04]],["parent/225",[]],["name/226",[188,52.04]],["parent/226",[]],["name/227",[189,52.04]],["parent/227",[]],["name/228",[190,52.04]],["parent/228",[]],["name/229",[191,52.04]],["parent/229",[]],["name/230",[192,52.04]],["parent/230",[]],["name/231",[193,52.04]],["parent/231",[]],["name/232",[194,52.04]],["parent/232",[]],["name/233",[195,52.04]],["parent/233",[]],["name/234",[196,52.04]],["parent/234",[]],["name/235",[197,52.04]],["parent/235",[]],["name/236",[198,52.04]],["parent/236",[]],["name/237",[199,52.04]],["parent/237",[]],["name/238",[200,52.04]],["parent/238",[]],["name/239",[201,52.04]],["parent/239",[]],["name/240",[202,52.04]],["parent/240",[]],["name/241",[203,52.04]],["parent/241",[]],["name/242",[204,52.04]],["parent/242",[]],["name/243",[205,52.04]],["parent/243",[]],["name/244",[206,52.04]],["parent/244",[]],["name/245",[207,52.04]],["parent/245",[]],["name/246",[208,32.581]],["parent/246",[]],["name/247",[209,52.04]],["parent/247",[208,2.812]],["name/248",[210,52.04]],["parent/248",[208,2.812]],["name/249",[12,32.581]],["parent/249",[208,2.812]],["name/250",[211,52.04]],["parent/250",[208,2.812]],["name/251",[212,52.04]],["parent/251",[208,2.812]],["name/252",[213,52.04]],["parent/252",[208,2.812]],["name/253",[214,52.04]],["parent/253",[208,2.812]],["name/254",[215,52.04]],["parent/254",[208,2.812]],["name/255",[216,52.04]],["parent/255",[208,2.812]],["name/256",[217,37.377]],["parent/256",[]],["name/257",[6,43.567]],["parent/257",[217,3.226]],["name/258",[89,28.061]],["parent/258",[217,3.226]],["name/259",[5,18.838]],["parent/259",[217,3.226]],["name/260",[140,28.686]],["parent/260",[217,3.226]],["name/261",[12,32.581]],["parent/261",[217,3.226]],["name/262",[218,39.047]],["parent/262",[]],["name/263",[219,52.04]],["parent/263",[218,3.37]],["name/264",[220,52.04]],["parent/264",[218,3.37]],["name/265",[221,52.04]],["parent/265",[218,3.37]],["name/266",[222,52.04]],["parent/266",[218,3.37]],["name/267",[223,52.04]],["parent/267",[]],["name/268",[224,52.04]],["parent/268",[]],["name/269",[225,52.04]],["parent/269",[]],["name/270",[226,52.04]],["parent/270",[]],["name/271",[227,52.04]],["parent/271",[]]],"invertedIndex":[["__type",{"_index":43,"name":{"48":{},"55":{},"59":{},"97":{},"119":{},"150":{},"176":{}},"parent":{}}],["addlistener",{"_index":112,"name":{"128":{}},"parent":{}}],["addpeer",{"_index":104,"name":{"118":{},"165":{}},"parent":{}}],["address",{"_index":56,"name":{"63":{}},"parent":{"64":{},"65":{},"66":{},"67":{},"68":{},"69":{}}}],["addresses",{"_index":64,"name":{"72":{}},"parent":{}}],["addsecret",{"_index":74,"name":{"84":{}},"parent":{}}],["adressstringlist",{"_index":68,"name":{"77":{}},"parent":{}}],["agentmessage",{"_index":165,"name":{"203":{}},"parent":{}}],["agentmessagetype",{"_index":166,"name":{"204":{}},"parent":{}}],["allnodepaths",{"_index":209,"name":{"247":{}},"parent":{}}],["cacert",{"_index":11,"name":{"11":{},"62":{}},"parent":{}}],["cacertpath",{"_index":49,"name":{"53":{}},"parent":{}}],["cert",{"_index":10,"name":{"10":{},"61":{}},"parent":{}}],["clonevault",{"_index":96,"name":{"109":{}},"parent":{}}],["common_name",{"_index":220,"name":{"264":{}},"parent":{}}],["connect",{"_index":66,"name":{"75":{}},"parent":{}}],["connectedaddr",{"_index":65,"name":{"73":{}},"parent":{}}],["connectlocalpeerinfo",{"_index":144,"name":{"164":{}},"parent":{}}],["connecttoagent",{"_index":212,"name":{"251":{}},"parent":{}}],["connecttopeer",{"_index":149,"name":{"170":{}},"parent":{}}],["constructor",{"_index":12,"name":{"12":{},"66":{},"74":{},"81":{},"106":{},"126":{},"162":{},"179":{},"249":{},"261":{}},"parent":{}}],["createsecret",{"_index":161,"name":{"197":{}},"parent":{}}],["createsecretrequestmessage",{"_index":167,"name":{"205":{}},"parent":{}}],["createsecretresponsemessage",{"_index":168,"name":{"206":{}},"parent":{}}],["createvault",{"_index":95,"name":{"108":{}},"parent":{}}],["createx509certificate",{"_index":222,"name":{"266":{}},"parent":{}}],["daemon_script_path",{"_index":215,"name":{"254":{}},"parent":{}}],["decryptdata",{"_index":4,"name":{"4":{},"40":{}},"parent":{}}],["decryptfile",{"_index":37,"name":{"41":{},"192":{}},"parent":{}}],["decryptfilerequestmessage",{"_index":169,"name":{"207":{}},"parent":{}}],["decryptfileresponsemessage",{"_index":170,"name":{"208":{}},"parent":{}}],["defaultmaxlisteners",{"_index":127,"name":{"144":{}},"parent":{}}],["deletekey",{"_index":26,"name":{"26":{},"185":{}},"parent":{}}],["deletekeyrequestmessage",{"_index":171,"name":{"209":{}},"parent":{}}],["deletekeyresponsemessage",{"_index":172,"name":{"210":{}},"parent":{}}],["derivekey",{"_index":158,"name":{"184":{}},"parent":{}}],["derivekeyrequestmessage",{"_index":173,"name":{"211":{}},"parent":{}}],["derivekeyresponsemessage",{"_index":174,"name":{"212":{}},"parent":{}}],["destroysecret",{"_index":162,"name":{"198":{}},"parent":{}}],["destroysecretrequestmessage",{"_index":175,"name":{"213":{}},"parent":{}}],["destroysecretresponsemessage",{"_index":176,"name":{"214":{}},"parent":{}}],["destroyvault",{"_index":98,"name":{"111":{},"195":{}},"parent":{}}],["destroyvaultrequestmessage",{"_index":177,"name":{"215":{}},"parent":{}}],["destroyvaultresponsemessage",{"_index":178,"name":{"216":{}},"parent":{}}],["disconnect",{"_index":67,"name":{"76":{}},"parent":{}}],["emit",{"_index":122,"name":{"138":{}},"parent":{}}],["encryptdata",{"_index":3,"name":{"3":{},"38":{}},"parent":{}}],["encryptedfs",{"_index":72,"name":{"82":{}},"parent":{}}],["encryptedlocalpubkey",{"_index":133,"name":{"151":{}},"parent":{}}],["encryptedpeerpubkey",{"_index":135,"name":{"152":{}},"parent":{}}],["encryptedrandommessage",{"_index":137,"name":{"154":{}},"parent":{}}],["encryptfile",{"_index":36,"name":{"39":{},"191":{}},"parent":{}}],["encryptfilerequestmessage",{"_index":179,"name":{"217":{}},"parent":{}}],["encryptfileresponsemessage",{"_index":180,"name":{"218":{}},"parent":{}}],["errormessage",{"_index":181,"name":{"219":{}},"parent":{}}],["eventnames",{"_index":126,"name":{"142":{}},"parent":{}}],["exportkey",{"_index":31,"name":{"31":{}},"parent":{}}],["exportkeysync",{"_index":30,"name":{"30":{}},"parent":{}}],["exportprivatekey",{"_index":23,"name":{"23":{}},"parent":{}}],["exportpublickey",{"_index":24,"name":{"24":{}},"parent":{}}],["filesystem",{"_index":90,"name":{"101":{}},"parent":{}}],["findpubkey",{"_index":147,"name":{"168":{}},"parent":{}}],["findsocialuser",{"_index":148,"name":{"169":{}},"parent":{}}],["finduser",{"_index":139,"name":{"157":{},"174":{}},"parent":{}}],["firstpromisefulfilled",{"_index":102,"name":{"116":{}},"parent":{}}],["fromaddressinfo",{"_index":60,"name":{"68":{}},"parent":{}}],["generatekey",{"_index":25,"name":{"25":{}},"parent":{}}],["generatekeypair",{"_index":14,"name":{"14":{}},"parent":{}}],["getagentstatus",{"_index":163,"name":{"201":{}},"parent":{}}],["getidentityfromprivatekey",{"_index":33,"name":{"33":{}},"parent":{}}],["getidentityfrompublickey",{"_index":32,"name":{"32":{}},"parent":{}}],["getkey",{"_index":39,"name":{"44":{},"187":{}},"parent":{}}],["getkeypair",{"_index":15,"name":{"15":{}},"parent":{}}],["getkeyrequestmessage",{"_index":186,"name":{"224":{}},"parent":{}}],["getkeyresponsemessage",{"_index":187,"name":{"225":{}},"parent":{}}],["getlocalpeerinfo",{"_index":143,"name":{"163":{}},"parent":{}}],["getmaxlisteners",{"_index":119,"name":{"135":{}},"parent":{}}],["getpeer",{"_index":145,"name":{"166":{}},"parent":{}}],["getprimarykeypair",{"_index":159,"name":{"188":{}},"parent":{}}],["getprimarykeypairrequestmessage",{"_index":182,"name":{"220":{}},"parent":{}}],["getprimarykeypairresponsemessage",{"_index":183,"name":{"221":{}},"parent":{}}],["getprivatekey",{"_index":18,"name":{"18":{}},"parent":{}}],["getpublickey",{"_index":17,"name":{"17":{}},"parent":{}}],["getsecret",{"_index":76,"name":{"86":{},"199":{}},"parent":{}}],["getsecretrequestmessage",{"_index":184,"name":{"222":{}},"parent":{}}],["getsecretresponsemessage",{"_index":185,"name":{"223":{}},"parent":{}}],["getvault",{"_index":94,"name":{"107":{}},"parent":{}}],["getvaulthistory",{"_index":85,"name":{"95":{}},"parent":{}}],["handshakemessage",{"_index":128,"name":{"145":{}},"parent":{}}],["haskey",{"_index":40,"name":{"45":{}},"parent":{}}],["haspeer",{"_index":146,"name":{"167":{}},"parent":{}}],["haspublickey",{"_index":16,"name":{"16":{}},"parent":{}}],["identityloaded",{"_index":13,"name":{"13":{}},"parent":{}}],["importkey",{"_index":29,"name":{"29":{}},"parent":{}}],["importkeysync",{"_index":28,"name":{"28":{}},"parent":{}}],["interval",{"_index":108,"name":{"123":{}},"parent":{}}],["invertpromise",{"_index":101,"name":{"115":{}},"parent":{}}],["ip",{"_index":57,"name":{"64":{}},"parent":{}}],["key",{"_index":8,"name":{"9":{},"60":{}},"parent":{}}],["keybasediscovery",{"_index":150,"name":{"172":{}},"parent":{"173":{},"174":{}}}],["keymanager",{"_index":5,"name":{"6":{},"102":{},"121":{},"259":{}},"parent":{"7":{},"8":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{}}}],["keymanager.pkiinfo",{"_index":9,"name":{},"parent":{"9":{},"10":{},"11":{}}}],["keymanagermetadata",{"_index":42,"name":{"47":{}},"parent":{"48":{}}}],["keymanagermetadata.__type",{"_index":45,"name":{},"parent":{"49":{},"50":{},"51":{},"52":{},"53":{}}}],["keymanagerworker",{"_index":0,"name":{"0":{},"5":{}},"parent":{"1":{},"2":{},"3":{},"4":{}}}],["keypair",{"_index":50,"name":{"54":{}},"parent":{"55":{}}}],["keypair.__type",{"_index":52,"name":{},"parent":{"56":{},"57":{}}}],["listenercount",{"_index":123,"name":{"139":{},"143":{}},"parent":{}}],["listeners",{"_index":120,"name":{"136":{}},"parent":{}}],["listkeys",{"_index":27,"name":{"27":{},"186":{}},"parent":{}}],["listkeysrequestmessage",{"_index":188,"name":{"226":{}},"parent":{}}],["listkeysresponsemessage",{"_index":189,"name":{"227":{}},"parent":{}}],["listnodes",{"_index":157,"name":{"183":{}},"parent":{}}],["listnodesrequestmessage",{"_index":190,"name":{"228":{}},"parent":{}}],["listnodesresponsemessage",{"_index":191,"name":{"229":{}},"parent":{}}],["listsecrets",{"_index":78,"name":{"88":{},"196":{}},"parent":{}}],["listsecretsrequestmessage",{"_index":192,"name":{"230":{}},"parent":{}}],["listsecretsresponsemessage",{"_index":193,"name":{"231":{}},"parent":{}}],["listvaults",{"_index":99,"name":{"112":{},"193":{}},"parent":{}}],["listvaultsrequestmessage",{"_index":194,"name":{"232":{}},"parent":{}}],["listvaultsresponsemessage",{"_index":195,"name":{"233":{}},"parent":{}}],["loadkeypair",{"_index":19,"name":{"19":{}},"parent":{}}],["loadmetadata",{"_index":41,"name":{"46":{},"113":{},"171":{}},"parent":{}}],["loadpkiinfo",{"_index":38,"name":{"43":{}},"parent":{}}],["loadprivatekey",{"_index":20,"name":{"20":{}},"parent":{}}],["loadpublickey",{"_index":21,"name":{"21":{}},"parent":{}}],["localpeerinfo",{"_index":106,"name":{"120":{},"177":{}},"parent":{}}],["logpath",{"_index":214,"name":{"253":{}},"parent":{}}],["metadatapath",{"_index":91,"name":{"103":{}},"parent":{}}],["multicastbroadcaster",{"_index":103,"name":{"117":{},"159":{}},"parent":{"118":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{}}}],["multicastbroadcaster.addpeer",{"_index":105,"name":{},"parent":{"119":{}}}],["n_bits",{"_index":219,"name":{"263":{}},"parent":{}}],["name",{"_index":70,"name":{"79":{},"156":{},"173":{}},"parent":{}}],["newnode",{"_index":156,"name":{"182":{}},"parent":{}}],["newnoderequestmessage",{"_index":196,"name":{"234":{}},"parent":{}}],["newnoderesponsemessage",{"_index":197,"name":{"235":{}},"parent":{}}],["newvault",{"_index":160,"name":{"194":{}},"parent":{}}],["newvaultrequestmessage",{"_index":198,"name":{"236":{}},"parent":{}}],["newvaultresponsemessage",{"_index":199,"name":{"237":{}},"parent":{}}],["off",{"_index":116,"name":{"132":{}},"parent":{}}],["on",{"_index":113,"name":{"129":{}},"parent":{}}],["once",{"_index":114,"name":{"130":{}},"parent":{}}],["organization_name",{"_index":221,"name":{"265":{}},"parent":{}}],["parse",{"_index":59,"name":{"67":{}},"parent":{}}],["peercanaccess",{"_index":83,"name":{"93":{}},"parent":{}}],["peerinfo",{"_index":62,"name":{"70":{}},"parent":{"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{}}}],["peerinfomessage",{"_index":129,"name":{"146":{}},"parent":{}}],["peermanager",{"_index":140,"name":{"158":{},"260":{}},"parent":{"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{}}}],["peermanagermetadata",{"_index":151,"name":{"175":{}},"parent":{"176":{}}}],["peermanagermetadata.__type",{"_index":152,"name":{},"parent":{"177":{}}}],["peermessage",{"_index":132,"name":{"149":{}},"parent":{"150":{}}}],["peermessage.__type",{"_index":134,"name":{},"parent":{"151":{},"152":{},"153":{},"154":{}}}],["peerpubkeymessages",{"_index":110,"name":{"125":{}},"parent":{}}],["pkicertpath",{"_index":48,"name":{"52":{}},"parent":{}}],["pkiinfo",{"_index":7,"name":{"8":{},"42":{}},"parent":{}}],["pkikeypath",{"_index":47,"name":{"51":{}},"parent":{}}],["pkinfo",{"_index":54,"name":{"58":{}},"parent":{"59":{}}}],["pkinfo.__type",{"_index":55,"name":{},"parent":{"60":{},"61":{},"62":{}}}],["polykey",{"_index":217,"name":{"256":{}},"parent":{"257":{},"258":{},"259":{},"260":{},"261":{}}}],["polykeyagent",{"_index":208,"name":{"246":{}},"parent":{"247":{},"248":{},"249":{},"250":{},"251":{},"252":{},"253":{},"254":{},"255":{}}}],["polykeyclient",{"_index":153,"name":{"178":{}},"parent":{"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{}}}],["polykeypath",{"_index":6,"name":{"7":{},"100":{},"257":{}},"parent":{}}],["port",{"_index":58,"name":{"65":{}},"parent":{}}],["prependlistener",{"_index":124,"name":{"140":{}},"parent":{}}],["prependoncelistener",{"_index":125,"name":{"141":{}},"parent":{}}],["private",{"_index":51,"name":{"56":{}},"parent":{}}],["privatekeypath",{"_index":44,"name":{"49":{}},"parent":{}}],["protobuf",{"_index":223,"name":{"267":{}},"parent":{}}],["public",{"_index":53,"name":{"57":{}},"parent":{}}],["publickey",{"_index":63,"name":{"71":{}},"parent":{}}],["publickeyinfrastructure",{"_index":218,"name":{"262":{}},"parent":{"263":{},"264":{},"265":{},"266":{}}}],["publickeypath",{"_index":46,"name":{"50":{}},"parent":{}}],["pullvault",{"_index":84,"name":{"94":{}},"parent":{}}],["queryinterval",{"_index":109,"name":{"124":{}},"parent":{}}],["randomstring",{"_index":100,"name":{"114":{}},"parent":{}}],["rawlisteners",{"_index":121,"name":{"137":{}},"parent":{}}],["rawrandommessage",{"_index":136,"name":{"153":{}},"parent":{}}],["reader",{"_index":224,"name":{"268":{}},"parent":{}}],["registernode",{"_index":155,"name":{"181":{}},"parent":{}}],["registernoderequestmessage",{"_index":200,"name":{"238":{}},"parent":{}}],["registernoderesponsemessage",{"_index":201,"name":{"239":{}},"parent":{}}],["removealllisteners",{"_index":117,"name":{"133":{}},"parent":{}}],["removelistener",{"_index":115,"name":{"131":{}},"parent":{}}],["removesecret",{"_index":77,"name":{"87":{}},"parent":{}}],["requestpeercontact",{"_index":111,"name":{"127":{}},"parent":{}}],["root",{"_index":227,"name":{"271":{}},"parent":{}}],["secretexists",{"_index":73,"name":{"83":{}},"parent":{}}],["sendrequesttoagent",{"_index":154,"name":{"180":{}},"parent":{}}],["server",{"_index":141,"name":{"160":{}},"parent":{}}],["serverstarted",{"_index":142,"name":{"161":{}},"parent":{}}],["setmaxlisteners",{"_index":118,"name":{"134":{}},"parent":{}}],["sharedpubkeys",{"_index":87,"name":{"98":{}},"parent":{}}],["sharevault",{"_index":81,"name":{"91":{}},"parent":{}}],["signdata",{"_index":1,"name":{"1":{},"34":{}},"parent":{}}],["signfile",{"_index":34,"name":{"35":{},"189":{}},"parent":{}}],["signfilerequestmessage",{"_index":202,"name":{"240":{}},"parent":{}}],["signfileresponsemessage",{"_index":203,"name":{"241":{}},"parent":{}}],["socialdiscovery",{"_index":138,"name":{"155":{}},"parent":{"156":{},"157":{}}}],["socket",{"_index":107,"name":{"122":{}},"parent":{}}],["socketpath",{"_index":213,"name":{"252":{}},"parent":{}}],["startagent",{"_index":216,"name":{"255":{}},"parent":{}}],["stop",{"_index":211,"name":{"250":{}},"parent":{}}],["stopagent",{"_index":164,"name":{"202":{}},"parent":{}}],["tagvault",{"_index":79,"name":{"89":{}},"parent":{}}],["tostring",{"_index":61,"name":{"69":{}},"parent":{}}],["udp_multicast_addr",{"_index":131,"name":{"148":{}},"parent":{}}],["udp_multicast_port",{"_index":130,"name":{"147":{}},"parent":{}}],["unlockednodepaths",{"_index":210,"name":{"248":{}},"parent":{}}],["unlockidentity",{"_index":22,"name":{"22":{}},"parent":{}}],["unsharevault",{"_index":82,"name":{"92":{}},"parent":{}}],["untagvault",{"_index":80,"name":{"90":{}},"parent":{}}],["updatesecret",{"_index":75,"name":{"85":{},"200":{}},"parent":{}}],["updatesecretrequestmessage",{"_index":204,"name":{"242":{}},"parent":{}}],["updatesecretresponsemessage",{"_index":205,"name":{"243":{}},"parent":{}}],["util",{"_index":226,"name":{"270":{}},"parent":{}}],["vault",{"_index":69,"name":{"78":{}},"parent":{"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{}}}],["vaultexists",{"_index":97,"name":{"110":{}},"parent":{}}],["vaultkeys",{"_index":93,"name":{"105":{}},"parent":{}}],["vaultmanager",{"_index":89,"name":{"99":{},"258":{}},"parent":{"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{}}}],["vaultmetadata",{"_index":86,"name":{"96":{}},"parent":{"97":{}}}],["vaultmetadata.__type",{"_index":88,"name":{},"parent":{"98":{}}}],["vaultpath",{"_index":71,"name":{"80":{}},"parent":{}}],["vaults",{"_index":92,"name":{"104":{}},"parent":{}}],["verifydata",{"_index":2,"name":{"2":{},"36":{}},"parent":{}}],["verifyfile",{"_index":35,"name":{"37":{},"190":{}},"parent":{}}],["verifyfilerequestmessage",{"_index":206,"name":{"244":{}},"parent":{}}],["verifyfileresponsemessage",{"_index":207,"name":{"245":{}},"parent":{}}],["writer",{"_index":225,"name":{"269":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file +{"kinds":{"1":"Module","2":"Namespace","4":"Enumeration","16":"Enumeration member","32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor","2097152":"Object literal","4194304":"Type alias"},"rows":[{"id":0,"kind":1,"name":"\"src/lib/keys/KeyManagerWorker\"","url":"modules/_src_lib_keys_keymanagerworker_.html","classes":"tsd-kind-module"},{"id":1,"kind":2097152,"name":"keyManagerWorker","url":"modules/_src_lib_keys_keymanagerworker_.html#keymanagerworker-1","classes":"tsd-kind-object-literal tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/keys/KeyManagerWorker\""},{"id":2,"kind":64,"name":"signData","url":"modules/_src_lib_keys_keymanagerworker_.html#keymanagerworker-1.signdata","classes":"tsd-kind-function tsd-parent-kind-object-literal tsd-is-not-exported","parent":"\"src/lib/keys/KeyManagerWorker\".keyManagerWorker"},{"id":3,"kind":64,"name":"verifyData","url":"modules/_src_lib_keys_keymanagerworker_.html#keymanagerworker-1.verifydata","classes":"tsd-kind-function tsd-parent-kind-object-literal tsd-is-not-exported","parent":"\"src/lib/keys/KeyManagerWorker\".keyManagerWorker"},{"id":4,"kind":64,"name":"encryptData","url":"modules/_src_lib_keys_keymanagerworker_.html#keymanagerworker-1.encryptdata","classes":"tsd-kind-function tsd-parent-kind-object-literal tsd-is-not-exported","parent":"\"src/lib/keys/KeyManagerWorker\".keyManagerWorker"},{"id":5,"kind":64,"name":"decryptData","url":"modules/_src_lib_keys_keymanagerworker_.html#keymanagerworker-1.decryptdata","classes":"tsd-kind-function tsd-parent-kind-object-literal tsd-is-not-exported","parent":"\"src/lib/keys/KeyManagerWorker\".keyManagerWorker"},{"id":6,"kind":4194304,"name":"KeyManagerWorker","url":"modules/_src_lib_keys_keymanagerworker_.html#keymanagerworker","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"src/lib/keys/KeyManagerWorker\""},{"id":7,"kind":1,"name":"\"src/lib/keys/KeyManager\"","url":"modules/_src_lib_keys_keymanager_.html","classes":"tsd-kind-module"},{"id":8,"kind":128,"name":"KeyManager","url":"classes/_src_lib_keys_keymanager_.keymanager.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"src/lib/keys/KeyManager\""},{"id":9,"kind":1024,"name":"polykeyPath","url":"classes/_src_lib_keys_keymanager_.keymanager.html#polykeypath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":10,"kind":2097152,"name":"pkiInfo","url":"classes/_src_lib_keys_keymanager_.keymanager.html#pkiinfo-1","classes":"tsd-kind-object-literal tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":11,"kind":32,"name":"key","url":"classes/_src_lib_keys_keymanager_.keymanager.html#pkiinfo-1.key","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"\"src/lib/keys/KeyManager\".KeyManager.pkiInfo"},{"id":12,"kind":32,"name":"cert","url":"classes/_src_lib_keys_keymanager_.keymanager.html#pkiinfo-1.cert","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"\"src/lib/keys/KeyManager\".KeyManager.pkiInfo"},{"id":13,"kind":32,"name":"caCert","url":"classes/_src_lib_keys_keymanager_.keymanager.html#pkiinfo-1.cacert","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"\"src/lib/keys/KeyManager\".KeyManager.pkiInfo"},{"id":14,"kind":512,"name":"constructor","url":"classes/_src_lib_keys_keymanager_.keymanager.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":15,"kind":262144,"name":"identityLoaded","url":"classes/_src_lib_keys_keymanager_.keymanager.html#identityloaded","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":16,"kind":2048,"name":"generateKeyPair","url":"classes/_src_lib_keys_keymanager_.keymanager.html#generatekeypair","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":17,"kind":2048,"name":"getKeyPair","url":"classes/_src_lib_keys_keymanager_.keymanager.html#getkeypair","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":18,"kind":2048,"name":"hasPublicKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#haspublickey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":19,"kind":2048,"name":"getPublicKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#getpublickey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":20,"kind":2048,"name":"getPrivateKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#getprivatekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":21,"kind":2048,"name":"loadKeyPair","url":"classes/_src_lib_keys_keymanager_.keymanager.html#loadkeypair","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":22,"kind":2048,"name":"loadPrivateKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#loadprivatekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":23,"kind":2048,"name":"loadPublicKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#loadpublickey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":24,"kind":2048,"name":"unlockIdentity","url":"classes/_src_lib_keys_keymanager_.keymanager.html#unlockidentity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":25,"kind":2048,"name":"exportPrivateKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#exportprivatekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":26,"kind":2048,"name":"exportPublicKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#exportpublickey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":27,"kind":2048,"name":"generateKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#generatekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":28,"kind":2048,"name":"deleteKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#deletekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":29,"kind":2048,"name":"listKeys","url":"classes/_src_lib_keys_keymanager_.keymanager.html#listkeys","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":30,"kind":2048,"name":"importKeySync","url":"classes/_src_lib_keys_keymanager_.keymanager.html#importkeysync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":31,"kind":2048,"name":"importKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#importkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":32,"kind":2048,"name":"exportKeySync","url":"classes/_src_lib_keys_keymanager_.keymanager.html#exportkeysync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":33,"kind":2048,"name":"exportKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#exportkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":34,"kind":2048,"name":"getIdentityFromPublicKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#getidentityfrompublickey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":35,"kind":2048,"name":"getIdentityFromPrivateKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#getidentityfromprivatekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":36,"kind":2048,"name":"signData","url":"classes/_src_lib_keys_keymanager_.keymanager.html#signdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":37,"kind":2048,"name":"signFile","url":"classes/_src_lib_keys_keymanager_.keymanager.html#signfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":38,"kind":2048,"name":"verifyData","url":"classes/_src_lib_keys_keymanager_.keymanager.html#verifydata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":39,"kind":2048,"name":"verifyFile","url":"classes/_src_lib_keys_keymanager_.keymanager.html#verifyfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":40,"kind":2048,"name":"encryptData","url":"classes/_src_lib_keys_keymanager_.keymanager.html#encryptdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":41,"kind":2048,"name":"encryptFile","url":"classes/_src_lib_keys_keymanager_.keymanager.html#encryptfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":42,"kind":2048,"name":"decryptData","url":"classes/_src_lib_keys_keymanager_.keymanager.html#decryptdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":43,"kind":2048,"name":"decryptFile","url":"classes/_src_lib_keys_keymanager_.keymanager.html#decryptfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":44,"kind":262144,"name":"PKIInfo","url":"classes/_src_lib_keys_keymanager_.keymanager.html#pkiinfo","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":45,"kind":2048,"name":"loadPKIInfo","url":"classes/_src_lib_keys_keymanager_.keymanager.html#loadpkiinfo","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":46,"kind":2048,"name":"getKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#getkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":47,"kind":2048,"name":"hasKey","url":"classes/_src_lib_keys_keymanager_.keymanager.html#haskey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":48,"kind":2048,"name":"loadMetadata","url":"classes/_src_lib_keys_keymanager_.keymanager.html#loadmetadata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/keys/KeyManager\".KeyManager"},{"id":49,"kind":4194304,"name":"KeyManagerMetadata","url":"modules/_src_lib_keys_keymanager_.html#keymanagermetadata","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/keys/KeyManager\""},{"id":50,"kind":65536,"name":"__type","url":"modules/_src_lib_keys_keymanager_.html#keymanagermetadata.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"src/lib/keys/KeyManager\".KeyManagerMetadata"},{"id":51,"kind":32,"name":"privateKeyPath","url":"modules/_src_lib_keys_keymanager_.html#keymanagermetadata.__type.privatekeypath","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/keys/KeyManager\".KeyManagerMetadata.__type"},{"id":52,"kind":32,"name":"publicKeyPath","url":"modules/_src_lib_keys_keymanager_.html#keymanagermetadata.__type.publickeypath","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/keys/KeyManager\".KeyManagerMetadata.__type"},{"id":53,"kind":32,"name":"pkiKeyPath","url":"modules/_src_lib_keys_keymanager_.html#keymanagermetadata.__type.pkikeypath","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/keys/KeyManager\".KeyManagerMetadata.__type"},{"id":54,"kind":32,"name":"pkiCertPath","url":"modules/_src_lib_keys_keymanager_.html#keymanagermetadata.__type.pkicertpath","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/keys/KeyManager\".KeyManagerMetadata.__type"},{"id":55,"kind":32,"name":"caCertPath","url":"modules/_src_lib_keys_keymanager_.html#keymanagermetadata.__type.cacertpath","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/keys/KeyManager\".KeyManagerMetadata.__type"},{"id":56,"kind":4194304,"name":"KeyPair","url":"modules/_src_lib_keys_keymanager_.html#keypair","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"src/lib/keys/KeyManager\""},{"id":57,"kind":65536,"name":"__type","url":"modules/_src_lib_keys_keymanager_.html#keypair.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"src/lib/keys/KeyManager\".KeyPair"},{"id":58,"kind":32,"name":"private","url":"modules/_src_lib_keys_keymanager_.html#keypair.__type-1.private","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"src/lib/keys/KeyManager\".KeyPair.__type"},{"id":59,"kind":32,"name":"public","url":"modules/_src_lib_keys_keymanager_.html#keypair.__type-1.public","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"src/lib/keys/KeyManager\".KeyPair.__type"},{"id":60,"kind":4194304,"name":"PKInfo","url":"modules/_src_lib_keys_keymanager_.html#pkinfo","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/keys/KeyManager\""},{"id":61,"kind":65536,"name":"__type","url":"modules/_src_lib_keys_keymanager_.html#pkinfo.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"src/lib/keys/KeyManager\".PKInfo"},{"id":62,"kind":32,"name":"key","url":"modules/_src_lib_keys_keymanager_.html#pkinfo.__type-2.key","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/keys/KeyManager\".PKInfo.__type"},{"id":63,"kind":32,"name":"cert","url":"modules/_src_lib_keys_keymanager_.html#pkinfo.__type-2.cert","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/keys/KeyManager\".PKInfo.__type"},{"id":64,"kind":32,"name":"caCert","url":"modules/_src_lib_keys_keymanager_.html#pkinfo.__type-2.cacert","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/keys/KeyManager\".PKInfo.__type"},{"id":65,"kind":1,"name":"\"src/lib/peers/PeerInfo\"","url":"modules/_src_lib_peers_peerinfo_.html","classes":"tsd-kind-module"},{"id":66,"kind":128,"name":"Address","url":"classes/_src_lib_peers_peerinfo_.address.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"src/lib/peers/PeerInfo\""},{"id":67,"kind":1024,"name":"ip","url":"classes/_src_lib_peers_peerinfo_.address.html#ip","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/PeerInfo\".Address"},{"id":68,"kind":1024,"name":"port","url":"classes/_src_lib_peers_peerinfo_.address.html#port","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/PeerInfo\".Address"},{"id":69,"kind":512,"name":"constructor","url":"classes/_src_lib_peers_peerinfo_.address.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"src/lib/peers/PeerInfo\".Address"},{"id":70,"kind":2048,"name":"parse","url":"classes/_src_lib_peers_peerinfo_.address.html#parse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"src/lib/peers/PeerInfo\".Address"},{"id":71,"kind":2048,"name":"fromAddressInfo","url":"classes/_src_lib_peers_peerinfo_.address.html#fromaddressinfo","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"src/lib/peers/PeerInfo\".Address"},{"id":72,"kind":2048,"name":"toString","url":"classes/_src_lib_peers_peerinfo_.address.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/PeerInfo\".Address"},{"id":73,"kind":128,"name":"PeerInfo","url":"classes/_src_lib_peers_peerinfo_.peerinfo.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"src/lib/peers/PeerInfo\""},{"id":74,"kind":1024,"name":"publicKey","url":"classes/_src_lib_peers_peerinfo_.peerinfo.html#publickey","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/PeerInfo\".PeerInfo"},{"id":75,"kind":1024,"name":"addresses","url":"classes/_src_lib_peers_peerinfo_.peerinfo.html#addresses","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/PeerInfo\".PeerInfo"},{"id":76,"kind":1024,"name":"connectedAddr","url":"classes/_src_lib_peers_peerinfo_.peerinfo.html#connectedaddr","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/PeerInfo\".PeerInfo"},{"id":77,"kind":512,"name":"constructor","url":"classes/_src_lib_peers_peerinfo_.peerinfo.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"src/lib/peers/PeerInfo\".PeerInfo"},{"id":78,"kind":2048,"name":"connect","url":"classes/_src_lib_peers_peerinfo_.peerinfo.html#connect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/PeerInfo\".PeerInfo"},{"id":79,"kind":2048,"name":"disconnect","url":"classes/_src_lib_peers_peerinfo_.peerinfo.html#disconnect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/PeerInfo\".PeerInfo"},{"id":80,"kind":262144,"name":"AdressStringList","url":"classes/_src_lib_peers_peerinfo_.peerinfo.html#adressstringlist","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"\"src/lib/peers/PeerInfo\".PeerInfo"},{"id":81,"kind":1,"name":"\"src/lib/vaults/Vault\"","url":"modules/_src_lib_vaults_vault_.html","classes":"tsd-kind-module"},{"id":82,"kind":128,"name":"Vault","url":"classes/_src_lib_vaults_vault_.vault.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"src/lib/vaults/Vault\""},{"id":83,"kind":1024,"name":"name","url":"classes/_src_lib_vaults_vault_.vault.html#name","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":84,"kind":1024,"name":"vaultPath","url":"classes/_src_lib_vaults_vault_.vault.html#vaultpath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":85,"kind":512,"name":"constructor","url":"classes/_src_lib_vaults_vault_.vault.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":86,"kind":262144,"name":"EncryptedFS","url":"classes/_src_lib_vaults_vault_.vault.html#encryptedfs","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":87,"kind":2048,"name":"secretExists","url":"classes/_src_lib_vaults_vault_.vault.html#secretexists","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":88,"kind":2048,"name":"addSecret","url":"classes/_src_lib_vaults_vault_.vault.html#addsecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":89,"kind":2048,"name":"updateSecret","url":"classes/_src_lib_vaults_vault_.vault.html#updatesecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":90,"kind":2048,"name":"getSecret","url":"classes/_src_lib_vaults_vault_.vault.html#getsecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":91,"kind":2048,"name":"removeSecret","url":"classes/_src_lib_vaults_vault_.vault.html#removesecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":92,"kind":2048,"name":"listSecrets","url":"classes/_src_lib_vaults_vault_.vault.html#listsecrets","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":93,"kind":2048,"name":"tagVault","url":"classes/_src_lib_vaults_vault_.vault.html#tagvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":94,"kind":2048,"name":"untagVault","url":"classes/_src_lib_vaults_vault_.vault.html#untagvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":95,"kind":2048,"name":"shareVault","url":"classes/_src_lib_vaults_vault_.vault.html#sharevault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":96,"kind":2048,"name":"unshareVault","url":"classes/_src_lib_vaults_vault_.vault.html#unsharevault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":97,"kind":2048,"name":"peerCanAccess","url":"classes/_src_lib_vaults_vault_.vault.html#peercanaccess","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":98,"kind":2048,"name":"pullVault","url":"classes/_src_lib_vaults_vault_.vault.html#pullvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":99,"kind":2048,"name":"getVaultHistory","url":"classes/_src_lib_vaults_vault_.vault.html#getvaulthistory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/Vault\".Vault"},{"id":100,"kind":4194304,"name":"VaultMetadata","url":"modules/_src_lib_vaults_vault_.html#vaultmetadata","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/vaults/Vault\""},{"id":101,"kind":65536,"name":"__type","url":"modules/_src_lib_vaults_vault_.html#vaultmetadata.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"src/lib/vaults/Vault\".VaultMetadata"},{"id":102,"kind":32,"name":"sharedPubKeys","url":"modules/_src_lib_vaults_vault_.html#vaultmetadata.__type.sharedpubkeys","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/vaults/Vault\".VaultMetadata.__type"},{"id":103,"kind":1,"name":"\"src/lib/vaults/VaultManager\"","url":"modules/_src_lib_vaults_vaultmanager_.html","classes":"tsd-kind-module"},{"id":104,"kind":128,"name":"VaultManager","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"src/lib/vaults/VaultManager\""},{"id":105,"kind":1024,"name":"polykeyPath","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#polykeypath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":106,"kind":1024,"name":"fileSystem","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#filesystem","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":107,"kind":1024,"name":"keyManager","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#keymanager","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":108,"kind":1024,"name":"metadataPath","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#metadatapath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":109,"kind":1024,"name":"vaults","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#vaults","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":110,"kind":1024,"name":"vaultKeys","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#vaultkeys","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":111,"kind":512,"name":"constructor","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":112,"kind":2048,"name":"getVault","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#getvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":113,"kind":2048,"name":"createVault","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#createvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":114,"kind":2048,"name":"cloneVault","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#clonevault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":115,"kind":2048,"name":"vaultExists","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#vaultexists","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":116,"kind":2048,"name":"destroyVault","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#destroyvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":117,"kind":2048,"name":"listVaults","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#listvaults","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":118,"kind":2048,"name":"loadMetadata","url":"classes/_src_lib_vaults_vaultmanager_.vaultmanager.html#loadmetadata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/vaults/VaultManager\".VaultManager"},{"id":119,"kind":1,"name":"\"proto/js/Peer.d\"","url":"modules/_proto_js_peer_d_.html","classes":"tsd-kind-module"},{"id":120,"kind":2,"name":"Peer","url":"modules/_proto_js_peer_d_.peer.html","classes":"tsd-kind-namespace tsd-parent-kind-module tsd-is-not-exported","parent":"\"proto/js/Peer.d\""},{"id":121,"kind":2,"name":"peer","url":"modules/_proto_js_peer_d_.peer.peer.html","classes":"tsd-kind-namespace tsd-parent-kind-namespace","parent":"\"proto/js/Peer.d\".Peer"},{"id":122,"kind":256,"name":"IHandshakeMessage","url":"interfaces/_proto_js_peer_d_.peer.peer.ihandshakemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Peer.d\".Peer.peer"},{"id":123,"kind":1024,"name":"targetPubKey","url":"interfaces/_proto_js_peer_d_.peer.peer.ihandshakemessage.html#targetpubkey","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Peer.d\".Peer.peer.IHandshakeMessage"},{"id":124,"kind":1024,"name":"requestingPubKey","url":"interfaces/_proto_js_peer_d_.peer.peer.ihandshakemessage.html#requestingpubkey","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Peer.d\".Peer.peer.IHandshakeMessage"},{"id":125,"kind":1024,"name":"message","url":"interfaces/_proto_js_peer_d_.peer.peer.ihandshakemessage.html#message","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Peer.d\".Peer.peer.IHandshakeMessage"},{"id":126,"kind":1024,"name":"responsePeerInfo","url":"interfaces/_proto_js_peer_d_.peer.peer.ihandshakemessage.html#responsepeerinfo","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Peer.d\".Peer.peer.IHandshakeMessage"},{"id":127,"kind":128,"name":"HandshakeMessage","url":"classes/_proto_js_peer_d_.peer.peer.handshakemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Peer.d\".Peer.peer"},{"id":128,"kind":512,"name":"constructor","url":"classes/_proto_js_peer_d_.peer.peer.handshakemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Peer.d\".Peer.peer.HandshakeMessage"},{"id":129,"kind":1024,"name":"targetPubKey","url":"classes/_proto_js_peer_d_.peer.peer.handshakemessage.html#targetpubkey","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Peer.d\".Peer.peer.HandshakeMessage"},{"id":130,"kind":1024,"name":"requestingPubKey","url":"classes/_proto_js_peer_d_.peer.peer.handshakemessage.html#requestingpubkey","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Peer.d\".Peer.peer.HandshakeMessage"},{"id":131,"kind":1024,"name":"message","url":"classes/_proto_js_peer_d_.peer.peer.handshakemessage.html#message","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Peer.d\".Peer.peer.HandshakeMessage"},{"id":132,"kind":1024,"name":"responsePeerInfo","url":"classes/_proto_js_peer_d_.peer.peer.handshakemessage.html#responsepeerinfo","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Peer.d\".Peer.peer.HandshakeMessage"},{"id":133,"kind":2048,"name":"create","url":"classes/_proto_js_peer_d_.peer.peer.handshakemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Peer.d\".Peer.peer.HandshakeMessage"},{"id":134,"kind":2048,"name":"encode","url":"classes/_proto_js_peer_d_.peer.peer.handshakemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Peer.d\".Peer.peer.HandshakeMessage"},{"id":135,"kind":2048,"name":"decode","url":"classes/_proto_js_peer_d_.peer.peer.handshakemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Peer.d\".Peer.peer.HandshakeMessage"},{"id":136,"kind":256,"name":"IPeerInfoMessage","url":"interfaces/_proto_js_peer_d_.peer.peer.ipeerinfomessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Peer.d\".Peer.peer"},{"id":137,"kind":1024,"name":"pubKey","url":"interfaces/_proto_js_peer_d_.peer.peer.ipeerinfomessage.html#pubkey","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Peer.d\".Peer.peer.IPeerInfoMessage"},{"id":138,"kind":1024,"name":"addresses","url":"interfaces/_proto_js_peer_d_.peer.peer.ipeerinfomessage.html#addresses","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Peer.d\".Peer.peer.IPeerInfoMessage"},{"id":139,"kind":1024,"name":"connectedAddr","url":"interfaces/_proto_js_peer_d_.peer.peer.ipeerinfomessage.html#connectedaddr","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Peer.d\".Peer.peer.IPeerInfoMessage"},{"id":140,"kind":128,"name":"PeerInfoMessage","url":"classes/_proto_js_peer_d_.peer.peer.peerinfomessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Peer.d\".Peer.peer"},{"id":141,"kind":512,"name":"constructor","url":"classes/_proto_js_peer_d_.peer.peer.peerinfomessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Peer.d\".Peer.peer.PeerInfoMessage"},{"id":142,"kind":1024,"name":"pubKey","url":"classes/_proto_js_peer_d_.peer.peer.peerinfomessage.html#pubkey","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Peer.d\".Peer.peer.PeerInfoMessage"},{"id":143,"kind":1024,"name":"addresses","url":"classes/_proto_js_peer_d_.peer.peer.peerinfomessage.html#addresses","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Peer.d\".Peer.peer.PeerInfoMessage"},{"id":144,"kind":1024,"name":"connectedAddr","url":"classes/_proto_js_peer_d_.peer.peer.peerinfomessage.html#connectedaddr","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Peer.d\".Peer.peer.PeerInfoMessage"},{"id":145,"kind":2048,"name":"create","url":"classes/_proto_js_peer_d_.peer.peer.peerinfomessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Peer.d\".Peer.peer.PeerInfoMessage"},{"id":146,"kind":2048,"name":"encode","url":"classes/_proto_js_peer_d_.peer.peer.peerinfomessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Peer.d\".Peer.peer.PeerInfoMessage"},{"id":147,"kind":2048,"name":"decode","url":"classes/_proto_js_peer_d_.peer.peer.peerinfomessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Peer.d\".Peer.peer.PeerInfoMessage"},{"id":148,"kind":1,"name":"\"src/lib/utils\"","url":"modules/_src_lib_utils_.html","classes":"tsd-kind-module"},{"id":149,"kind":64,"name":"randomString","url":"modules/_src_lib_utils_.html#randomstring","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"src/lib/utils\""},{"id":150,"kind":64,"name":"invertPromise","url":"modules/_src_lib_utils_.html#invertpromise","classes":"tsd-kind-function tsd-parent-kind-module tsd-has-type-parameter tsd-is-not-exported","parent":"\"src/lib/utils\""},{"id":151,"kind":64,"name":"firstPromiseFulfilled","url":"modules/_src_lib_utils_.html#firstpromisefulfilled","classes":"tsd-kind-function tsd-parent-kind-module tsd-has-type-parameter","parent":"\"src/lib/utils\""},{"id":152,"kind":1,"name":"\"src/lib/peers/MulticastBroadcaster\"","url":"modules/_src_lib_peers_multicastbroadcaster_.html","classes":"tsd-kind-module"},{"id":153,"kind":128,"name":"MulticastBroadcaster","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"src/lib/peers/MulticastBroadcaster\""},{"id":154,"kind":1024,"name":"addPeer","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#addpeer","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":155,"kind":65536,"name":"__type","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#addpeer.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster.addPeer"},{"id":156,"kind":1024,"name":"localPeerInfo","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#localpeerinfo","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":157,"kind":1024,"name":"keyManager","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#keymanager","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":158,"kind":1024,"name":"socket","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#socket","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":159,"kind":1024,"name":"interval","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#interval","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":160,"kind":1024,"name":"queryInterval","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#queryinterval","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":161,"kind":1024,"name":"peerPubKeyMessages","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#peerpubkeymessages","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":162,"kind":512,"name":"constructor","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":163,"kind":2048,"name":"requestPeerContact","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#requestpeercontact","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":164,"kind":2048,"name":"addListener","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":165,"kind":2048,"name":"on","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":166,"kind":2048,"name":"once","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":167,"kind":2048,"name":"removeListener","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":168,"kind":2048,"name":"off","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#off","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":169,"kind":2048,"name":"removeAllListeners","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":170,"kind":2048,"name":"setMaxListeners","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":171,"kind":2048,"name":"getMaxListeners","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":172,"kind":2048,"name":"listeners","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":173,"kind":2048,"name":"rawListeners","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":174,"kind":2048,"name":"emit","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":175,"kind":2048,"name":"listenerCount","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":176,"kind":2048,"name":"prependListener","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":177,"kind":2048,"name":"prependOnceListener","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":178,"kind":2048,"name":"eventNames","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":179,"kind":2048,"name":"listenerCount","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":180,"kind":1024,"name":"defaultMaxListeners","url":"classes/_src_lib_peers_multicastbroadcaster_.multicastbroadcaster.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"\"src/lib/peers/MulticastBroadcaster\".MulticastBroadcaster"},{"id":181,"kind":32,"name":"HandshakeMessage","url":"modules/_src_lib_peers_multicastbroadcaster_.html#handshakemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/peers/MulticastBroadcaster\""},{"id":182,"kind":32,"name":"PeerInfoMessage","url":"modules/_src_lib_peers_multicastbroadcaster_.html#peerinfomessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/peers/MulticastBroadcaster\""},{"id":183,"kind":32,"name":"UDP_MULTICAST_PORT","url":"modules/_src_lib_peers_multicastbroadcaster_.html#udp_multicast_port","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/peers/MulticastBroadcaster\""},{"id":184,"kind":32,"name":"UDP_MULTICAST_ADDR","url":"modules/_src_lib_peers_multicastbroadcaster_.html#udp_multicast_addr","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/peers/MulticastBroadcaster\""},{"id":185,"kind":4194304,"name":"PeerMessage","url":"modules/_src_lib_peers_multicastbroadcaster_.html#peermessage","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/peers/MulticastBroadcaster\""},{"id":186,"kind":65536,"name":"__type","url":"modules/_src_lib_peers_multicastbroadcaster_.html#peermessage.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"src/lib/peers/MulticastBroadcaster\".PeerMessage"},{"id":187,"kind":32,"name":"encryptedLocalPubKey","url":"modules/_src_lib_peers_multicastbroadcaster_.html#peermessage.__type.encryptedlocalpubkey","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/peers/MulticastBroadcaster\".PeerMessage.__type"},{"id":188,"kind":32,"name":"encryptedPeerPubKey","url":"modules/_src_lib_peers_multicastbroadcaster_.html#peermessage.__type.encryptedpeerpubkey","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/peers/MulticastBroadcaster\".PeerMessage.__type"},{"id":189,"kind":32,"name":"rawRandomMessage","url":"modules/_src_lib_peers_multicastbroadcaster_.html#peermessage.__type.rawrandommessage","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/peers/MulticastBroadcaster\".PeerMessage.__type"},{"id":190,"kind":32,"name":"encryptedRandomMessage","url":"modules/_src_lib_peers_multicastbroadcaster_.html#peermessage.__type.encryptedrandommessage","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/peers/MulticastBroadcaster\".PeerMessage.__type"},{"id":191,"kind":1,"name":"\"src/lib/peers/PeerManager\"","url":"modules/_src_lib_peers_peermanager_.html","classes":"tsd-kind-module"},{"id":192,"kind":256,"name":"SocialDiscovery","url":"interfaces/_src_lib_peers_peermanager_.socialdiscovery.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"src/lib/peers/PeerManager\""},{"id":193,"kind":1024,"name":"name","url":"interfaces/_src_lib_peers_peermanager_.socialdiscovery.html#name","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"src/lib/peers/PeerManager\".SocialDiscovery"},{"id":194,"kind":2048,"name":"findUser","url":"interfaces/_src_lib_peers_peermanager_.socialdiscovery.html#finduser","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"src/lib/peers/PeerManager\".SocialDiscovery"},{"id":195,"kind":128,"name":"PeerManager","url":"classes/_src_lib_peers_peermanager_.peermanager.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"src/lib/peers/PeerManager\""},{"id":196,"kind":1024,"name":"multicastBroadcaster","url":"classes/_src_lib_peers_peermanager_.peermanager.html#multicastbroadcaster","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":197,"kind":1024,"name":"server","url":"classes/_src_lib_peers_peermanager_.peermanager.html#server","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":198,"kind":1024,"name":"serverStarted","url":"classes/_src_lib_peers_peermanager_.peermanager.html#serverstarted","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":199,"kind":512,"name":"constructor","url":"classes/_src_lib_peers_peermanager_.peermanager.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":200,"kind":2048,"name":"getLocalPeerInfo","url":"classes/_src_lib_peers_peermanager_.peermanager.html#getlocalpeerinfo","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":201,"kind":2048,"name":"connectLocalPeerInfo","url":"classes/_src_lib_peers_peermanager_.peermanager.html#connectlocalpeerinfo","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":202,"kind":2048,"name":"addPeer","url":"classes/_src_lib_peers_peermanager_.peermanager.html#addpeer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":203,"kind":2048,"name":"getPeer","url":"classes/_src_lib_peers_peermanager_.peermanager.html#getpeer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":204,"kind":2048,"name":"hasPeer","url":"classes/_src_lib_peers_peermanager_.peermanager.html#haspeer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":205,"kind":2048,"name":"findPubKey","url":"classes/_src_lib_peers_peermanager_.peermanager.html#findpubkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":206,"kind":2048,"name":"findSocialUser","url":"classes/_src_lib_peers_peermanager_.peermanager.html#findsocialuser","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":207,"kind":2048,"name":"connectToPeer","url":"classes/_src_lib_peers_peermanager_.peermanager.html#connecttopeer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":208,"kind":2048,"name":"loadMetadata","url":"classes/_src_lib_peers_peermanager_.peermanager.html#loadmetadata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/peers/PeerManager\".PeerManager"},{"id":209,"kind":2097152,"name":"keybaseDiscovery","url":"modules/_src_lib_peers_peermanager_.html#keybasediscovery","classes":"tsd-kind-object-literal tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/peers/PeerManager\""},{"id":210,"kind":32,"name":"name","url":"modules/_src_lib_peers_peermanager_.html#keybasediscovery.name","classes":"tsd-kind-variable tsd-parent-kind-object-literal tsd-is-not-exported","parent":"\"src/lib/peers/PeerManager\".keybaseDiscovery"},{"id":211,"kind":64,"name":"findUser","url":"modules/_src_lib_peers_peermanager_.html#keybasediscovery.finduser","classes":"tsd-kind-function tsd-parent-kind-object-literal tsd-is-not-exported","parent":"\"src/lib/peers/PeerManager\".keybaseDiscovery"},{"id":212,"kind":4194304,"name":"PeerManagerMetadata","url":"modules/_src_lib_peers_peermanager_.html#peermanagermetadata","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/peers/PeerManager\""},{"id":213,"kind":65536,"name":"__type","url":"modules/_src_lib_peers_peermanager_.html#peermanagermetadata.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"src/lib/peers/PeerManager\".PeerManagerMetadata"},{"id":214,"kind":32,"name":"localPeerInfo","url":"modules/_src_lib_peers_peermanager_.html#peermanagermetadata.__type.localpeerinfo","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"src/lib/peers/PeerManager\".PeerManagerMetadata.__type"},{"id":215,"kind":1,"name":"\"proto/js/Agent.d\"","url":"modules/_proto_js_agent_d_.html","classes":"tsd-kind-module"},{"id":216,"kind":2,"name":"Agent","url":"modules/_proto_js_agent_d_.agent.html","classes":"tsd-kind-namespace tsd-parent-kind-module tsd-is-not-exported","parent":"\"proto/js/Agent.d\""},{"id":217,"kind":2,"name":"agent","url":"modules/_proto_js_agent_d_.agent.agent.html","classes":"tsd-kind-namespace tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent"},{"id":218,"kind":4,"name":"AgentMessageType","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html","classes":"tsd-kind-enum tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":219,"kind":16,"name":"ERROR","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#error","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":220,"kind":16,"name":"STOP_AGENT","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#stop_agent","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":221,"kind":16,"name":"STATUS","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#status","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":222,"kind":16,"name":"REGISTER_NODE","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#register_node","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":223,"kind":16,"name":"NEW_NODE","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#new_node","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":224,"kind":16,"name":"LIST_NODES","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#list_nodes","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":225,"kind":16,"name":"DERIVE_KEY","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#derive_key","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":226,"kind":16,"name":"SIGN_FILE","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#sign_file","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":227,"kind":16,"name":"VERIFY_FILE","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#verify_file","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":228,"kind":16,"name":"LIST_VAULTS","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#list_vaults","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":229,"kind":16,"name":"NEW_VAULT","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#new_vault","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":230,"kind":16,"name":"DESTROY_VAULT","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#destroy_vault","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":231,"kind":16,"name":"LIST_SECRETS","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#list_secrets","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":232,"kind":16,"name":"CREATE_SECRET","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#create_secret","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":233,"kind":16,"name":"DESTROY_SECRET","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#destroy_secret","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":234,"kind":16,"name":"GET_SECRET","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#get_secret","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":235,"kind":16,"name":"LIST_KEYS","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#list_keys","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":236,"kind":16,"name":"GET_KEY","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#get_key","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":237,"kind":16,"name":"DELETE_KEY","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#delete_key","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":238,"kind":16,"name":"ENCRYPT_FILE","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#encrypt_file","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":239,"kind":16,"name":"DECRYPT_FILE","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#decrypt_file","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":240,"kind":16,"name":"GET_PRIMARY_KEYPAIR","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#get_primary_keypair","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":241,"kind":16,"name":"UPDATE_SECRET","url":"enums/_proto_js_agent_d_.agent.agent.agentmessagetype.html#update_secret","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessageType"},{"id":242,"kind":256,"name":"IAgentMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.iagentmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":243,"kind":1024,"name":"type","url":"interfaces/_proto_js_agent_d_.agent.agent.iagentmessage.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IAgentMessage"},{"id":244,"kind":1024,"name":"isResponse","url":"interfaces/_proto_js_agent_d_.agent.agent.iagentmessage.html#isresponse","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IAgentMessage"},{"id":245,"kind":1024,"name":"nodePath","url":"interfaces/_proto_js_agent_d_.agent.agent.iagentmessage.html#nodepath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IAgentMessage"},{"id":246,"kind":1024,"name":"subMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.iagentmessage.html#submessage","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IAgentMessage"},{"id":247,"kind":128,"name":"AgentMessage","url":"classes/_proto_js_agent_d_.agent.agent.agentmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":248,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.agentmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessage"},{"id":249,"kind":1024,"name":"type","url":"classes/_proto_js_agent_d_.agent.agent.agentmessage.html#type","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessage"},{"id":250,"kind":1024,"name":"isResponse","url":"classes/_proto_js_agent_d_.agent.agent.agentmessage.html#isresponse","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessage"},{"id":251,"kind":1024,"name":"nodePath","url":"classes/_proto_js_agent_d_.agent.agent.agentmessage.html#nodepath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessage"},{"id":252,"kind":1024,"name":"subMessage","url":"classes/_proto_js_agent_d_.agent.agent.agentmessage.html#submessage","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessage"},{"id":253,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.agentmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessage"},{"id":254,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.agentmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessage"},{"id":255,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.agentmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.AgentMessage"},{"id":256,"kind":256,"name":"IErrorMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.ierrormessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":257,"kind":1024,"name":"error","url":"interfaces/_proto_js_agent_d_.agent.agent.ierrormessage.html#error","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IErrorMessage"},{"id":258,"kind":128,"name":"ErrorMessage","url":"classes/_proto_js_agent_d_.agent.agent.errormessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":259,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.errormessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ErrorMessage"},{"id":260,"kind":1024,"name":"error","url":"classes/_proto_js_agent_d_.agent.agent.errormessage.html#error","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ErrorMessage"},{"id":261,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.errormessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ErrorMessage"},{"id":262,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.errormessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ErrorMessage"},{"id":263,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.errormessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ErrorMessage"},{"id":264,"kind":256,"name":"IRegisterNodeRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.iregisternoderequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":265,"kind":1024,"name":"passphrase","url":"interfaces/_proto_js_agent_d_.agent.agent.iregisternoderequestmessage.html#passphrase","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IRegisterNodeRequestMessage"},{"id":266,"kind":128,"name":"RegisterNodeRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.registernoderequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":267,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.registernoderequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.RegisterNodeRequestMessage"},{"id":268,"kind":1024,"name":"passphrase","url":"classes/_proto_js_agent_d_.agent.agent.registernoderequestmessage.html#passphrase","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.RegisterNodeRequestMessage"},{"id":269,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.registernoderequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.RegisterNodeRequestMessage"},{"id":270,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.registernoderequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.RegisterNodeRequestMessage"},{"id":271,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.registernoderequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.RegisterNodeRequestMessage"},{"id":272,"kind":256,"name":"IRegisterNodeResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.iregisternoderesponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":273,"kind":1024,"name":"successful","url":"interfaces/_proto_js_agent_d_.agent.agent.iregisternoderesponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IRegisterNodeResponseMessage"},{"id":274,"kind":128,"name":"RegisterNodeResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.registernoderesponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":275,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.registernoderesponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.RegisterNodeResponseMessage"},{"id":276,"kind":1024,"name":"successful","url":"classes/_proto_js_agent_d_.agent.agent.registernoderesponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.RegisterNodeResponseMessage"},{"id":277,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.registernoderesponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.RegisterNodeResponseMessage"},{"id":278,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.registernoderesponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.RegisterNodeResponseMessage"},{"id":279,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.registernoderesponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.RegisterNodeResponseMessage"},{"id":280,"kind":256,"name":"INewNodeRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.inewnoderequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":281,"kind":1024,"name":"name","url":"interfaces/_proto_js_agent_d_.agent.agent.inewnoderequestmessage.html#name","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.INewNodeRequestMessage"},{"id":282,"kind":1024,"name":"email","url":"interfaces/_proto_js_agent_d_.agent.agent.inewnoderequestmessage.html#email","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.INewNodeRequestMessage"},{"id":283,"kind":1024,"name":"passphrase","url":"interfaces/_proto_js_agent_d_.agent.agent.inewnoderequestmessage.html#passphrase","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.INewNodeRequestMessage"},{"id":284,"kind":1024,"name":"nbits","url":"interfaces/_proto_js_agent_d_.agent.agent.inewnoderequestmessage.html#nbits","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.INewNodeRequestMessage"},{"id":285,"kind":128,"name":"NewNodeRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":286,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeRequestMessage"},{"id":287,"kind":1024,"name":"name","url":"classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html#name","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeRequestMessage"},{"id":288,"kind":1024,"name":"email","url":"classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html#email","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeRequestMessage"},{"id":289,"kind":1024,"name":"passphrase","url":"classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html#passphrase","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeRequestMessage"},{"id":290,"kind":1024,"name":"nbits","url":"classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html#nbits","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeRequestMessage"},{"id":291,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeRequestMessage"},{"id":292,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeRequestMessage"},{"id":293,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeRequestMessage"},{"id":294,"kind":256,"name":"INewNodeResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.inewnoderesponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":295,"kind":1024,"name":"successful","url":"interfaces/_proto_js_agent_d_.agent.agent.inewnoderesponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.INewNodeResponseMessage"},{"id":296,"kind":128,"name":"NewNodeResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.newnoderesponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":297,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.newnoderesponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeResponseMessage"},{"id":298,"kind":1024,"name":"successful","url":"classes/_proto_js_agent_d_.agent.agent.newnoderesponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeResponseMessage"},{"id":299,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.newnoderesponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeResponseMessage"},{"id":300,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.newnoderesponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeResponseMessage"},{"id":301,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.newnoderesponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.NewNodeResponseMessage"},{"id":302,"kind":256,"name":"IListNodesRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistnodesrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":303,"kind":1024,"name":"unlockedOnly","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistnodesrequestmessage.html#unlockedonly","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IListNodesRequestMessage"},{"id":304,"kind":128,"name":"ListNodesRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.listnodesrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":305,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.listnodesrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListNodesRequestMessage"},{"id":306,"kind":1024,"name":"unlockedOnly","url":"classes/_proto_js_agent_d_.agent.agent.listnodesrequestmessage.html#unlockedonly","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListNodesRequestMessage"},{"id":307,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.listnodesrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListNodesRequestMessage"},{"id":308,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.listnodesrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListNodesRequestMessage"},{"id":309,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.listnodesrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListNodesRequestMessage"},{"id":310,"kind":256,"name":"IListNodesResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistnodesresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":311,"kind":1024,"name":"nodes","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistnodesresponsemessage.html#nodes","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IListNodesResponseMessage"},{"id":312,"kind":128,"name":"ListNodesResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.listnodesresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":313,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.listnodesresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListNodesResponseMessage"},{"id":314,"kind":1024,"name":"nodes","url":"classes/_proto_js_agent_d_.agent.agent.listnodesresponsemessage.html#nodes","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListNodesResponseMessage"},{"id":315,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.listnodesresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListNodesResponseMessage"},{"id":316,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.listnodesresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListNodesResponseMessage"},{"id":317,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.listnodesresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListNodesResponseMessage"},{"id":318,"kind":256,"name":"ISignFileRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.isignfilerequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":319,"kind":1024,"name":"filePath","url":"interfaces/_proto_js_agent_d_.agent.agent.isignfilerequestmessage.html#filepath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.ISignFileRequestMessage"},{"id":320,"kind":1024,"name":"privateKeyPath","url":"interfaces/_proto_js_agent_d_.agent.agent.isignfilerequestmessage.html#privatekeypath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.ISignFileRequestMessage"},{"id":321,"kind":1024,"name":"passphrase","url":"interfaces/_proto_js_agent_d_.agent.agent.isignfilerequestmessage.html#passphrase","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.ISignFileRequestMessage"},{"id":322,"kind":128,"name":"SignFileRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.signfilerequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":323,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.signfilerequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.SignFileRequestMessage"},{"id":324,"kind":1024,"name":"filePath","url":"classes/_proto_js_agent_d_.agent.agent.signfilerequestmessage.html#filepath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.SignFileRequestMessage"},{"id":325,"kind":1024,"name":"privateKeyPath","url":"classes/_proto_js_agent_d_.agent.agent.signfilerequestmessage.html#privatekeypath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.SignFileRequestMessage"},{"id":326,"kind":1024,"name":"passphrase","url":"classes/_proto_js_agent_d_.agent.agent.signfilerequestmessage.html#passphrase","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.SignFileRequestMessage"},{"id":327,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.signfilerequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.SignFileRequestMessage"},{"id":328,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.signfilerequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.SignFileRequestMessage"},{"id":329,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.signfilerequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.SignFileRequestMessage"},{"id":330,"kind":256,"name":"ISignFileResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.isignfileresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":331,"kind":1024,"name":"signaturePath","url":"interfaces/_proto_js_agent_d_.agent.agent.isignfileresponsemessage.html#signaturepath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.ISignFileResponseMessage"},{"id":332,"kind":128,"name":"SignFileResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.signfileresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":333,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.signfileresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.SignFileResponseMessage"},{"id":334,"kind":1024,"name":"signaturePath","url":"classes/_proto_js_agent_d_.agent.agent.signfileresponsemessage.html#signaturepath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.SignFileResponseMessage"},{"id":335,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.signfileresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.SignFileResponseMessage"},{"id":336,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.signfileresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.SignFileResponseMessage"},{"id":337,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.signfileresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.SignFileResponseMessage"},{"id":338,"kind":256,"name":"IVerifyFileRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.iverifyfilerequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":339,"kind":1024,"name":"filePath","url":"interfaces/_proto_js_agent_d_.agent.agent.iverifyfilerequestmessage.html#filepath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IVerifyFileRequestMessage"},{"id":340,"kind":1024,"name":"publicKeyPath","url":"interfaces/_proto_js_agent_d_.agent.agent.iverifyfilerequestmessage.html#publickeypath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IVerifyFileRequestMessage"},{"id":341,"kind":128,"name":"VerifyFileRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.verifyfilerequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":342,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.verifyfilerequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.VerifyFileRequestMessage"},{"id":343,"kind":1024,"name":"filePath","url":"classes/_proto_js_agent_d_.agent.agent.verifyfilerequestmessage.html#filepath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.VerifyFileRequestMessage"},{"id":344,"kind":1024,"name":"publicKeyPath","url":"classes/_proto_js_agent_d_.agent.agent.verifyfilerequestmessage.html#publickeypath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.VerifyFileRequestMessage"},{"id":345,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.verifyfilerequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.VerifyFileRequestMessage"},{"id":346,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.verifyfilerequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.VerifyFileRequestMessage"},{"id":347,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.verifyfilerequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.VerifyFileRequestMessage"},{"id":348,"kind":256,"name":"IVerifyFileResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.iverifyfileresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":349,"kind":1024,"name":"verified","url":"interfaces/_proto_js_agent_d_.agent.agent.iverifyfileresponsemessage.html#verified","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IVerifyFileResponseMessage"},{"id":350,"kind":128,"name":"VerifyFileResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.verifyfileresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":351,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.verifyfileresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.VerifyFileResponseMessage"},{"id":352,"kind":1024,"name":"verified","url":"classes/_proto_js_agent_d_.agent.agent.verifyfileresponsemessage.html#verified","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.VerifyFileResponseMessage"},{"id":353,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.verifyfileresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.VerifyFileResponseMessage"},{"id":354,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.verifyfileresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.VerifyFileResponseMessage"},{"id":355,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.verifyfileresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.VerifyFileResponseMessage"},{"id":356,"kind":256,"name":"IEncryptFileRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.iencryptfilerequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":357,"kind":1024,"name":"filePath","url":"interfaces/_proto_js_agent_d_.agent.agent.iencryptfilerequestmessage.html#filepath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IEncryptFileRequestMessage"},{"id":358,"kind":1024,"name":"publicKeyPath","url":"interfaces/_proto_js_agent_d_.agent.agent.iencryptfilerequestmessage.html#publickeypath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IEncryptFileRequestMessage"},{"id":359,"kind":128,"name":"EncryptFileRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.encryptfilerequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":360,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.encryptfilerequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.EncryptFileRequestMessage"},{"id":361,"kind":1024,"name":"filePath","url":"classes/_proto_js_agent_d_.agent.agent.encryptfilerequestmessage.html#filepath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.EncryptFileRequestMessage"},{"id":362,"kind":1024,"name":"publicKeyPath","url":"classes/_proto_js_agent_d_.agent.agent.encryptfilerequestmessage.html#publickeypath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.EncryptFileRequestMessage"},{"id":363,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.encryptfilerequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.EncryptFileRequestMessage"},{"id":364,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.encryptfilerequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.EncryptFileRequestMessage"},{"id":365,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.encryptfilerequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.EncryptFileRequestMessage"},{"id":366,"kind":256,"name":"IEncryptFileResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.iencryptfileresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":367,"kind":1024,"name":"encryptedPath","url":"interfaces/_proto_js_agent_d_.agent.agent.iencryptfileresponsemessage.html#encryptedpath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IEncryptFileResponseMessage"},{"id":368,"kind":128,"name":"EncryptFileResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.encryptfileresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":369,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.encryptfileresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.EncryptFileResponseMessage"},{"id":370,"kind":1024,"name":"encryptedPath","url":"classes/_proto_js_agent_d_.agent.agent.encryptfileresponsemessage.html#encryptedpath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.EncryptFileResponseMessage"},{"id":371,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.encryptfileresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.EncryptFileResponseMessage"},{"id":372,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.encryptfileresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.EncryptFileResponseMessage"},{"id":373,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.encryptfileresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.EncryptFileResponseMessage"},{"id":374,"kind":256,"name":"IDecryptFileRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.idecryptfilerequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":375,"kind":1024,"name":"filePath","url":"interfaces/_proto_js_agent_d_.agent.agent.idecryptfilerequestmessage.html#filepath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDecryptFileRequestMessage"},{"id":376,"kind":1024,"name":"privateKeyPath","url":"interfaces/_proto_js_agent_d_.agent.agent.idecryptfilerequestmessage.html#privatekeypath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDecryptFileRequestMessage"},{"id":377,"kind":1024,"name":"passphrase","url":"interfaces/_proto_js_agent_d_.agent.agent.idecryptfilerequestmessage.html#passphrase","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDecryptFileRequestMessage"},{"id":378,"kind":128,"name":"DecryptFileRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.decryptfilerequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":379,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.decryptfilerequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DecryptFileRequestMessage"},{"id":380,"kind":1024,"name":"filePath","url":"classes/_proto_js_agent_d_.agent.agent.decryptfilerequestmessage.html#filepath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DecryptFileRequestMessage"},{"id":381,"kind":1024,"name":"privateKeyPath","url":"classes/_proto_js_agent_d_.agent.agent.decryptfilerequestmessage.html#privatekeypath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DecryptFileRequestMessage"},{"id":382,"kind":1024,"name":"passphrase","url":"classes/_proto_js_agent_d_.agent.agent.decryptfilerequestmessage.html#passphrase","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DecryptFileRequestMessage"},{"id":383,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.decryptfilerequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DecryptFileRequestMessage"},{"id":384,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.decryptfilerequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DecryptFileRequestMessage"},{"id":385,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.decryptfilerequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DecryptFileRequestMessage"},{"id":386,"kind":256,"name":"IDecryptFileResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.idecryptfileresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":387,"kind":1024,"name":"decryptedPath","url":"interfaces/_proto_js_agent_d_.agent.agent.idecryptfileresponsemessage.html#decryptedpath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDecryptFileResponseMessage"},{"id":388,"kind":128,"name":"DecryptFileResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.decryptfileresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":389,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.decryptfileresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DecryptFileResponseMessage"},{"id":390,"kind":1024,"name":"decryptedPath","url":"classes/_proto_js_agent_d_.agent.agent.decryptfileresponsemessage.html#decryptedpath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DecryptFileResponseMessage"},{"id":391,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.decryptfileresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DecryptFileResponseMessage"},{"id":392,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.decryptfileresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DecryptFileResponseMessage"},{"id":393,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.decryptfileresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DecryptFileResponseMessage"},{"id":394,"kind":256,"name":"IListVaultsRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistvaultsrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":395,"kind":128,"name":"ListVaultsRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.listvaultsrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":396,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.listvaultsrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListVaultsRequestMessage"},{"id":397,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.listvaultsrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListVaultsRequestMessage"},{"id":398,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.listvaultsrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListVaultsRequestMessage"},{"id":399,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.listvaultsrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListVaultsRequestMessage"},{"id":400,"kind":256,"name":"IListVaultsResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistvaultsresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":401,"kind":1024,"name":"vaultNames","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistvaultsresponsemessage.html#vaultnames","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IListVaultsResponseMessage"},{"id":402,"kind":128,"name":"ListVaultsResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.listvaultsresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":403,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.listvaultsresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListVaultsResponseMessage"},{"id":404,"kind":1024,"name":"vaultNames","url":"classes/_proto_js_agent_d_.agent.agent.listvaultsresponsemessage.html#vaultnames","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListVaultsResponseMessage"},{"id":405,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.listvaultsresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListVaultsResponseMessage"},{"id":406,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.listvaultsresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListVaultsResponseMessage"},{"id":407,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.listvaultsresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListVaultsResponseMessage"},{"id":408,"kind":256,"name":"INewVaultRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.inewvaultrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":409,"kind":1024,"name":"vaultName","url":"interfaces/_proto_js_agent_d_.agent.agent.inewvaultrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.INewVaultRequestMessage"},{"id":410,"kind":128,"name":"NewVaultRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.newvaultrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":411,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.newvaultrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.NewVaultRequestMessage"},{"id":412,"kind":1024,"name":"vaultName","url":"classes/_proto_js_agent_d_.agent.agent.newvaultrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.NewVaultRequestMessage"},{"id":413,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.newvaultrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.NewVaultRequestMessage"},{"id":414,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.newvaultrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.NewVaultRequestMessage"},{"id":415,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.newvaultrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.NewVaultRequestMessage"},{"id":416,"kind":256,"name":"INewVaultResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.inewvaultresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":417,"kind":1024,"name":"successful","url":"interfaces/_proto_js_agent_d_.agent.agent.inewvaultresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.INewVaultResponseMessage"},{"id":418,"kind":128,"name":"NewVaultResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.newvaultresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":419,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.newvaultresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.NewVaultResponseMessage"},{"id":420,"kind":1024,"name":"successful","url":"classes/_proto_js_agent_d_.agent.agent.newvaultresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.NewVaultResponseMessage"},{"id":421,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.newvaultresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.NewVaultResponseMessage"},{"id":422,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.newvaultresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.NewVaultResponseMessage"},{"id":423,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.newvaultresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.NewVaultResponseMessage"},{"id":424,"kind":256,"name":"IDestroyVaultRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.idestroyvaultrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":425,"kind":1024,"name":"vaultName","url":"interfaces/_proto_js_agent_d_.agent.agent.idestroyvaultrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDestroyVaultRequestMessage"},{"id":426,"kind":128,"name":"DestroyVaultRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.destroyvaultrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":427,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.destroyvaultrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DestroyVaultRequestMessage"},{"id":428,"kind":1024,"name":"vaultName","url":"classes/_proto_js_agent_d_.agent.agent.destroyvaultrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DestroyVaultRequestMessage"},{"id":429,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.destroyvaultrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DestroyVaultRequestMessage"},{"id":430,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.destroyvaultrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DestroyVaultRequestMessage"},{"id":431,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.destroyvaultrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DestroyVaultRequestMessage"},{"id":432,"kind":256,"name":"IDestroyVaultResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.idestroyvaultresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":433,"kind":1024,"name":"successful","url":"interfaces/_proto_js_agent_d_.agent.agent.idestroyvaultresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDestroyVaultResponseMessage"},{"id":434,"kind":128,"name":"DestroyVaultResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.destroyvaultresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":435,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.destroyvaultresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DestroyVaultResponseMessage"},{"id":436,"kind":1024,"name":"successful","url":"classes/_proto_js_agent_d_.agent.agent.destroyvaultresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DestroyVaultResponseMessage"},{"id":437,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.destroyvaultresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DestroyVaultResponseMessage"},{"id":438,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.destroyvaultresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DestroyVaultResponseMessage"},{"id":439,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.destroyvaultresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DestroyVaultResponseMessage"},{"id":440,"kind":256,"name":"IListSecretsRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistsecretsrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":441,"kind":1024,"name":"vaultName","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistsecretsrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IListSecretsRequestMessage"},{"id":442,"kind":128,"name":"ListSecretsRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.listsecretsrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":443,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.listsecretsrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListSecretsRequestMessage"},{"id":444,"kind":1024,"name":"vaultName","url":"classes/_proto_js_agent_d_.agent.agent.listsecretsrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListSecretsRequestMessage"},{"id":445,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.listsecretsrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListSecretsRequestMessage"},{"id":446,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.listsecretsrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListSecretsRequestMessage"},{"id":447,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.listsecretsrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListSecretsRequestMessage"},{"id":448,"kind":256,"name":"IListSecretsResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistsecretsresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":449,"kind":1024,"name":"secretNames","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistsecretsresponsemessage.html#secretnames","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IListSecretsResponseMessage"},{"id":450,"kind":128,"name":"ListSecretsResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.listsecretsresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":451,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.listsecretsresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListSecretsResponseMessage"},{"id":452,"kind":1024,"name":"secretNames","url":"classes/_proto_js_agent_d_.agent.agent.listsecretsresponsemessage.html#secretnames","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListSecretsResponseMessage"},{"id":453,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.listsecretsresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListSecretsResponseMessage"},{"id":454,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.listsecretsresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListSecretsResponseMessage"},{"id":455,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.listsecretsresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListSecretsResponseMessage"},{"id":456,"kind":256,"name":"ICreateSecretRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.icreatesecretrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":457,"kind":1024,"name":"vaultName","url":"interfaces/_proto_js_agent_d_.agent.agent.icreatesecretrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.ICreateSecretRequestMessage"},{"id":458,"kind":1024,"name":"secretName","url":"interfaces/_proto_js_agent_d_.agent.agent.icreatesecretrequestmessage.html#secretname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.ICreateSecretRequestMessage"},{"id":459,"kind":1024,"name":"secretPath","url":"interfaces/_proto_js_agent_d_.agent.agent.icreatesecretrequestmessage.html#secretpath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.ICreateSecretRequestMessage"},{"id":460,"kind":1024,"name":"secretContent","url":"interfaces/_proto_js_agent_d_.agent.agent.icreatesecretrequestmessage.html#secretcontent","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.ICreateSecretRequestMessage"},{"id":461,"kind":128,"name":"CreateSecretRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":462,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretRequestMessage"},{"id":463,"kind":1024,"name":"vaultName","url":"classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretRequestMessage"},{"id":464,"kind":1024,"name":"secretName","url":"classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html#secretname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretRequestMessage"},{"id":465,"kind":1024,"name":"secretPath","url":"classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html#secretpath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretRequestMessage"},{"id":466,"kind":1024,"name":"secretContent","url":"classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html#secretcontent","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretRequestMessage"},{"id":467,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretRequestMessage"},{"id":468,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretRequestMessage"},{"id":469,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretRequestMessage"},{"id":470,"kind":256,"name":"ICreateSecretResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.icreatesecretresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":471,"kind":1024,"name":"successful","url":"interfaces/_proto_js_agent_d_.agent.agent.icreatesecretresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.ICreateSecretResponseMessage"},{"id":472,"kind":128,"name":"CreateSecretResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.createsecretresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":473,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.createsecretresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretResponseMessage"},{"id":474,"kind":1024,"name":"successful","url":"classes/_proto_js_agent_d_.agent.agent.createsecretresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretResponseMessage"},{"id":475,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.createsecretresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretResponseMessage"},{"id":476,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.createsecretresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretResponseMessage"},{"id":477,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.createsecretresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.CreateSecretResponseMessage"},{"id":478,"kind":256,"name":"IDestroySecretRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.idestroysecretrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":479,"kind":1024,"name":"vaultName","url":"interfaces/_proto_js_agent_d_.agent.agent.idestroysecretrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDestroySecretRequestMessage"},{"id":480,"kind":1024,"name":"secretName","url":"interfaces/_proto_js_agent_d_.agent.agent.idestroysecretrequestmessage.html#secretname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDestroySecretRequestMessage"},{"id":481,"kind":128,"name":"DestroySecretRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":482,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DestroySecretRequestMessage"},{"id":483,"kind":1024,"name":"vaultName","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DestroySecretRequestMessage"},{"id":484,"kind":1024,"name":"secretName","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretrequestmessage.html#secretname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DestroySecretRequestMessage"},{"id":485,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DestroySecretRequestMessage"},{"id":486,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DestroySecretRequestMessage"},{"id":487,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DestroySecretRequestMessage"},{"id":488,"kind":256,"name":"IDestroySecretResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.idestroysecretresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":489,"kind":1024,"name":"successful","url":"interfaces/_proto_js_agent_d_.agent.agent.idestroysecretresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDestroySecretResponseMessage"},{"id":490,"kind":128,"name":"DestroySecretResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":491,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DestroySecretResponseMessage"},{"id":492,"kind":1024,"name":"successful","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DestroySecretResponseMessage"},{"id":493,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DestroySecretResponseMessage"},{"id":494,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DestroySecretResponseMessage"},{"id":495,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.destroysecretresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DestroySecretResponseMessage"},{"id":496,"kind":256,"name":"IGetSecretRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.igetsecretrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":497,"kind":1024,"name":"vaultName","url":"interfaces/_proto_js_agent_d_.agent.agent.igetsecretrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IGetSecretRequestMessage"},{"id":498,"kind":1024,"name":"secretName","url":"interfaces/_proto_js_agent_d_.agent.agent.igetsecretrequestmessage.html#secretname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IGetSecretRequestMessage"},{"id":499,"kind":128,"name":"GetSecretRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.getsecretrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":500,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.getsecretrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetSecretRequestMessage"},{"id":501,"kind":1024,"name":"vaultName","url":"classes/_proto_js_agent_d_.agent.agent.getsecretrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetSecretRequestMessage"},{"id":502,"kind":1024,"name":"secretName","url":"classes/_proto_js_agent_d_.agent.agent.getsecretrequestmessage.html#secretname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetSecretRequestMessage"},{"id":503,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.getsecretrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetSecretRequestMessage"},{"id":504,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.getsecretrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetSecretRequestMessage"},{"id":505,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.getsecretrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetSecretRequestMessage"},{"id":506,"kind":256,"name":"IGetSecretResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.igetsecretresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":507,"kind":1024,"name":"secret","url":"interfaces/_proto_js_agent_d_.agent.agent.igetsecretresponsemessage.html#secret","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IGetSecretResponseMessage"},{"id":508,"kind":128,"name":"GetSecretResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.getsecretresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":509,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.getsecretresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetSecretResponseMessage"},{"id":510,"kind":1024,"name":"secret","url":"classes/_proto_js_agent_d_.agent.agent.getsecretresponsemessage.html#secret","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetSecretResponseMessage"},{"id":511,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.getsecretresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetSecretResponseMessage"},{"id":512,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.getsecretresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetSecretResponseMessage"},{"id":513,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.getsecretresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetSecretResponseMessage"},{"id":514,"kind":256,"name":"IDeriveKeyRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.iderivekeyrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":515,"kind":1024,"name":"vaultName","url":"interfaces/_proto_js_agent_d_.agent.agent.iderivekeyrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDeriveKeyRequestMessage"},{"id":516,"kind":1024,"name":"keyName","url":"interfaces/_proto_js_agent_d_.agent.agent.iderivekeyrequestmessage.html#keyname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDeriveKeyRequestMessage"},{"id":517,"kind":1024,"name":"passphrase","url":"interfaces/_proto_js_agent_d_.agent.agent.iderivekeyrequestmessage.html#passphrase","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDeriveKeyRequestMessage"},{"id":518,"kind":128,"name":"DeriveKeyRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":519,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DeriveKeyRequestMessage"},{"id":520,"kind":1024,"name":"vaultName","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DeriveKeyRequestMessage"},{"id":521,"kind":1024,"name":"keyName","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyrequestmessage.html#keyname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DeriveKeyRequestMessage"},{"id":522,"kind":1024,"name":"passphrase","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyrequestmessage.html#passphrase","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DeriveKeyRequestMessage"},{"id":523,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DeriveKeyRequestMessage"},{"id":524,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DeriveKeyRequestMessage"},{"id":525,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DeriveKeyRequestMessage"},{"id":526,"kind":256,"name":"IDeriveKeyResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.iderivekeyresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":527,"kind":1024,"name":"successful","url":"interfaces/_proto_js_agent_d_.agent.agent.iderivekeyresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDeriveKeyResponseMessage"},{"id":528,"kind":128,"name":"DeriveKeyResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":529,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DeriveKeyResponseMessage"},{"id":530,"kind":1024,"name":"successful","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DeriveKeyResponseMessage"},{"id":531,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DeriveKeyResponseMessage"},{"id":532,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DeriveKeyResponseMessage"},{"id":533,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.derivekeyresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DeriveKeyResponseMessage"},{"id":534,"kind":256,"name":"IListKeysRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistkeysrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":535,"kind":128,"name":"ListKeysRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.listkeysrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":536,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.listkeysrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListKeysRequestMessage"},{"id":537,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.listkeysrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListKeysRequestMessage"},{"id":538,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.listkeysrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListKeysRequestMessage"},{"id":539,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.listkeysrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListKeysRequestMessage"},{"id":540,"kind":256,"name":"IListKeysResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistkeysresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":541,"kind":1024,"name":"keyNames","url":"interfaces/_proto_js_agent_d_.agent.agent.ilistkeysresponsemessage.html#keynames","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IListKeysResponseMessage"},{"id":542,"kind":128,"name":"ListKeysResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.listkeysresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":543,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.listkeysresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListKeysResponseMessage"},{"id":544,"kind":1024,"name":"keyNames","url":"classes/_proto_js_agent_d_.agent.agent.listkeysresponsemessage.html#keynames","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.ListKeysResponseMessage"},{"id":545,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.listkeysresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListKeysResponseMessage"},{"id":546,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.listkeysresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListKeysResponseMessage"},{"id":547,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.listkeysresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.ListKeysResponseMessage"},{"id":548,"kind":256,"name":"IGetKeyRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.igetkeyrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":549,"kind":1024,"name":"keyName","url":"interfaces/_proto_js_agent_d_.agent.agent.igetkeyrequestmessage.html#keyname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IGetKeyRequestMessage"},{"id":550,"kind":128,"name":"GetKeyRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.getkeyrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":551,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.getkeyrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetKeyRequestMessage"},{"id":552,"kind":1024,"name":"keyName","url":"classes/_proto_js_agent_d_.agent.agent.getkeyrequestmessage.html#keyname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetKeyRequestMessage"},{"id":553,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.getkeyrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetKeyRequestMessage"},{"id":554,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.getkeyrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetKeyRequestMessage"},{"id":555,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.getkeyrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetKeyRequestMessage"},{"id":556,"kind":256,"name":"IGetKeyResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.igetkeyresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":557,"kind":1024,"name":"keyName","url":"interfaces/_proto_js_agent_d_.agent.agent.igetkeyresponsemessage.html#keyname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IGetKeyResponseMessage"},{"id":558,"kind":1024,"name":"keyContent","url":"interfaces/_proto_js_agent_d_.agent.agent.igetkeyresponsemessage.html#keycontent","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IGetKeyResponseMessage"},{"id":559,"kind":128,"name":"GetKeyResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.getkeyresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":560,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.getkeyresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetKeyResponseMessage"},{"id":561,"kind":1024,"name":"keyName","url":"classes/_proto_js_agent_d_.agent.agent.getkeyresponsemessage.html#keyname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetKeyResponseMessage"},{"id":562,"kind":1024,"name":"keyContent","url":"classes/_proto_js_agent_d_.agent.agent.getkeyresponsemessage.html#keycontent","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetKeyResponseMessage"},{"id":563,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.getkeyresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetKeyResponseMessage"},{"id":564,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.getkeyresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetKeyResponseMessage"},{"id":565,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.getkeyresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetKeyResponseMessage"},{"id":566,"kind":256,"name":"IGetPrimaryKeyPairRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":567,"kind":1024,"name":"includePrivateKey","url":"interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairrequestmessage.html#includeprivatekey","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IGetPrimaryKeyPairRequestMessage"},{"id":568,"kind":128,"name":"GetPrimaryKeyPairRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":569,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetPrimaryKeyPairRequestMessage"},{"id":570,"kind":1024,"name":"includePrivateKey","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairrequestmessage.html#includeprivatekey","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetPrimaryKeyPairRequestMessage"},{"id":571,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetPrimaryKeyPairRequestMessage"},{"id":572,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetPrimaryKeyPairRequestMessage"},{"id":573,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetPrimaryKeyPairRequestMessage"},{"id":574,"kind":256,"name":"IGetPrimaryKeyPairResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":575,"kind":1024,"name":"publicKey","url":"interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairresponsemessage.html#publickey","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IGetPrimaryKeyPairResponseMessage"},{"id":576,"kind":1024,"name":"privateKey","url":"interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairresponsemessage.html#privatekey","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IGetPrimaryKeyPairResponseMessage"},{"id":577,"kind":128,"name":"GetPrimaryKeyPairResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":578,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetPrimaryKeyPairResponseMessage"},{"id":579,"kind":1024,"name":"publicKey","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairresponsemessage.html#publickey","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetPrimaryKeyPairResponseMessage"},{"id":580,"kind":1024,"name":"privateKey","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairresponsemessage.html#privatekey","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.GetPrimaryKeyPairResponseMessage"},{"id":581,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetPrimaryKeyPairResponseMessage"},{"id":582,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetPrimaryKeyPairResponseMessage"},{"id":583,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.getprimarykeypairresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.GetPrimaryKeyPairResponseMessage"},{"id":584,"kind":256,"name":"IUpdateSecretRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":585,"kind":1024,"name":"vaultName","url":"interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IUpdateSecretRequestMessage"},{"id":586,"kind":1024,"name":"secretName","url":"interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretrequestmessage.html#secretname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IUpdateSecretRequestMessage"},{"id":587,"kind":1024,"name":"secretPath","url":"interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretrequestmessage.html#secretpath","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IUpdateSecretRequestMessage"},{"id":588,"kind":1024,"name":"secretContent","url":"interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretrequestmessage.html#secretcontent","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IUpdateSecretRequestMessage"},{"id":589,"kind":128,"name":"UpdateSecretRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":590,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretRequestMessage"},{"id":591,"kind":1024,"name":"vaultName","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretRequestMessage"},{"id":592,"kind":1024,"name":"secretName","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html#secretname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretRequestMessage"},{"id":593,"kind":1024,"name":"secretPath","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html#secretpath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretRequestMessage"},{"id":594,"kind":1024,"name":"secretContent","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html#secretcontent","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretRequestMessage"},{"id":595,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretRequestMessage"},{"id":596,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretRequestMessage"},{"id":597,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretRequestMessage"},{"id":598,"kind":256,"name":"IUpdateSecretResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":599,"kind":1024,"name":"successful","url":"interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IUpdateSecretResponseMessage"},{"id":600,"kind":128,"name":"UpdateSecretResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":601,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretResponseMessage"},{"id":602,"kind":1024,"name":"successful","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretResponseMessage"},{"id":603,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretResponseMessage"},{"id":604,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretResponseMessage"},{"id":605,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.updatesecretresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.UpdateSecretResponseMessage"},{"id":606,"kind":256,"name":"IDeleteKeyRequestMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.ideletekeyrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":607,"kind":1024,"name":"keyName","url":"interfaces/_proto_js_agent_d_.agent.agent.ideletekeyrequestmessage.html#keyname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDeleteKeyRequestMessage"},{"id":608,"kind":128,"name":"DeleteKeyRequestMessage","url":"classes/_proto_js_agent_d_.agent.agent.deletekeyrequestmessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":609,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.deletekeyrequestmessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DeleteKeyRequestMessage"},{"id":610,"kind":1024,"name":"keyName","url":"classes/_proto_js_agent_d_.agent.agent.deletekeyrequestmessage.html#keyname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DeleteKeyRequestMessage"},{"id":611,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.deletekeyrequestmessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DeleteKeyRequestMessage"},{"id":612,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.deletekeyrequestmessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DeleteKeyRequestMessage"},{"id":613,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.deletekeyrequestmessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DeleteKeyRequestMessage"},{"id":614,"kind":256,"name":"IDeleteKeyResponseMessage","url":"interfaces/_proto_js_agent_d_.agent.agent.ideletekeyresponsemessage.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":615,"kind":1024,"name":"successful","url":"interfaces/_proto_js_agent_d_.agent.agent.ideletekeyresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Agent.d\".Agent.agent.IDeleteKeyResponseMessage"},{"id":616,"kind":128,"name":"DeleteKeyResponseMessage","url":"classes/_proto_js_agent_d_.agent.agent.deletekeyresponsemessage.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Agent.d\".Agent.agent"},{"id":617,"kind":512,"name":"constructor","url":"classes/_proto_js_agent_d_.agent.agent.deletekeyresponsemessage.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DeleteKeyResponseMessage"},{"id":618,"kind":1024,"name":"successful","url":"classes/_proto_js_agent_d_.agent.agent.deletekeyresponsemessage.html#successful","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Agent.d\".Agent.agent.DeleteKeyResponseMessage"},{"id":619,"kind":2048,"name":"create","url":"classes/_proto_js_agent_d_.agent.agent.deletekeyresponsemessage.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DeleteKeyResponseMessage"},{"id":620,"kind":2048,"name":"encode","url":"classes/_proto_js_agent_d_.agent.agent.deletekeyresponsemessage.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DeleteKeyResponseMessage"},{"id":621,"kind":2048,"name":"decode","url":"classes/_proto_js_agent_d_.agent.agent.deletekeyresponsemessage.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Agent.d\".Agent.agent.DeleteKeyResponseMessage"},{"id":622,"kind":1,"name":"\"src/lib/agent/PolykeyClient\"","url":"modules/_src_lib_agent_polykeyclient_.html","classes":"tsd-kind-module"},{"id":623,"kind":128,"name":"PolykeyClient","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"src/lib/agent/PolykeyClient\""},{"id":624,"kind":512,"name":"constructor","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":625,"kind":2048,"name":"sendRequestToAgent","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#sendrequesttoagent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":626,"kind":2048,"name":"registerNode","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#registernode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":627,"kind":2048,"name":"newNode","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#newnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":628,"kind":2048,"name":"listNodes","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#listnodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":629,"kind":2048,"name":"deriveKey","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#derivekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":630,"kind":2048,"name":"deleteKey","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#deletekey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":631,"kind":2048,"name":"listKeys","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#listkeys","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":632,"kind":2048,"name":"getKey","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#getkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":633,"kind":2048,"name":"getPrimaryKeyPair","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#getprimarykeypair","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":634,"kind":2048,"name":"signFile","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#signfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":635,"kind":2048,"name":"verifyFile","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#verifyfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":636,"kind":2048,"name":"encryptFile","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#encryptfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":637,"kind":2048,"name":"decryptFile","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#decryptfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":638,"kind":2048,"name":"listVaults","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#listvaults","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":639,"kind":2048,"name":"newVault","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#newvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":640,"kind":2048,"name":"destroyVault","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#destroyvault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":641,"kind":2048,"name":"listSecrets","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#listsecrets","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":642,"kind":2048,"name":"createSecret","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#createsecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":643,"kind":2048,"name":"destroySecret","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#destroysecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":644,"kind":2048,"name":"getSecret","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#getsecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":645,"kind":2048,"name":"updateSecret","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#updatesecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":646,"kind":2048,"name":"getAgentStatus","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#getagentstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":647,"kind":2048,"name":"stopAgent","url":"classes/_src_lib_agent_polykeyclient_.polykeyclient.html#stopagent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyClient\".PolykeyClient"},{"id":648,"kind":32,"name":"AgentMessage","url":"modules/_src_lib_agent_polykeyclient_.html#agentmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":649,"kind":32,"name":"AgentMessageType","url":"modules/_src_lib_agent_polykeyclient_.html#agentmessagetype","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":650,"kind":32,"name":"CreateSecretRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#createsecretrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":651,"kind":32,"name":"CreateSecretResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#createsecretresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":652,"kind":32,"name":"DecryptFileRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#decryptfilerequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":653,"kind":32,"name":"DecryptFileResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#decryptfileresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":654,"kind":32,"name":"DeleteKeyRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#deletekeyrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":655,"kind":32,"name":"DeleteKeyResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#deletekeyresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":656,"kind":32,"name":"DeriveKeyRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#derivekeyrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":657,"kind":32,"name":"DeriveKeyResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#derivekeyresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":658,"kind":32,"name":"DestroySecretRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#destroysecretrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":659,"kind":32,"name":"DestroySecretResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#destroysecretresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":660,"kind":32,"name":"DestroyVaultRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#destroyvaultrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":661,"kind":32,"name":"DestroyVaultResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#destroyvaultresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":662,"kind":32,"name":"EncryptFileRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#encryptfilerequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":663,"kind":32,"name":"EncryptFileResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#encryptfileresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":664,"kind":32,"name":"ErrorMessage","url":"modules/_src_lib_agent_polykeyclient_.html#errormessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":665,"kind":32,"name":"GetPrimaryKeyPairRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#getprimarykeypairrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":666,"kind":32,"name":"GetPrimaryKeyPairResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#getprimarykeypairresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":667,"kind":32,"name":"GetSecretRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#getsecretrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":668,"kind":32,"name":"GetSecretResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#getsecretresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":669,"kind":32,"name":"GetKeyRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#getkeyrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":670,"kind":32,"name":"GetKeyResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#getkeyresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":671,"kind":32,"name":"ListKeysRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#listkeysrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":672,"kind":32,"name":"ListKeysResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#listkeysresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":673,"kind":32,"name":"ListNodesRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#listnodesrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":674,"kind":32,"name":"ListNodesResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#listnodesresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":675,"kind":32,"name":"ListSecretsRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#listsecretsrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":676,"kind":32,"name":"ListSecretsResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#listsecretsresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":677,"kind":32,"name":"ListVaultsRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#listvaultsrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":678,"kind":32,"name":"ListVaultsResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#listvaultsresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":679,"kind":32,"name":"NewNodeRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#newnoderequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":680,"kind":32,"name":"NewNodeResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#newnoderesponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":681,"kind":32,"name":"NewVaultRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#newvaultrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":682,"kind":32,"name":"NewVaultResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#newvaultresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":683,"kind":32,"name":"RegisterNodeRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#registernoderequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":684,"kind":32,"name":"RegisterNodeResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#registernoderesponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":685,"kind":32,"name":"SignFileRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#signfilerequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":686,"kind":32,"name":"SignFileResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#signfileresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":687,"kind":32,"name":"UpdateSecretRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#updatesecretrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":688,"kind":32,"name":"UpdateSecretResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#updatesecretresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":689,"kind":32,"name":"VerifyFileRequestMessage","url":"modules/_src_lib_agent_polykeyclient_.html#verifyfilerequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":690,"kind":32,"name":"VerifyFileResponseMessage","url":"modules/_src_lib_agent_polykeyclient_.html#verifyfileresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyClient\""},{"id":691,"kind":1,"name":"\"src/lib/agent/PolykeyAgent\"","url":"modules/_src_lib_agent_polykeyagent_.html","classes":"tsd-kind-module"},{"id":692,"kind":128,"name":"PolykeyAgent","url":"classes/_src_lib_agent_polykeyagent_.polykeyagent.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":693,"kind":262144,"name":"AllNodePaths","url":"classes/_src_lib_agent_polykeyagent_.polykeyagent.html#allnodepaths","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyAgent\".PolykeyAgent"},{"id":694,"kind":262144,"name":"UnlockedNodePaths","url":"classes/_src_lib_agent_polykeyagent_.polykeyagent.html#unlockednodepaths","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyAgent\".PolykeyAgent"},{"id":695,"kind":512,"name":"constructor","url":"classes/_src_lib_agent_polykeyagent_.polykeyagent.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyAgent\".PolykeyAgent"},{"id":696,"kind":2048,"name":"stop","url":"classes/_src_lib_agent_polykeyagent_.polykeyagent.html#stop","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"src/lib/agent/PolykeyAgent\".PolykeyAgent"},{"id":697,"kind":2048,"name":"connectToAgent","url":"classes/_src_lib_agent_polykeyagent_.polykeyagent.html#connecttoagent","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"src/lib/agent/PolykeyAgent\".PolykeyAgent"},{"id":698,"kind":262144,"name":"SocketPath","url":"classes/_src_lib_agent_polykeyagent_.polykeyagent.html#socketpath","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-static","parent":"\"src/lib/agent/PolykeyAgent\".PolykeyAgent"},{"id":699,"kind":262144,"name":"LogPath","url":"classes/_src_lib_agent_polykeyagent_.polykeyagent.html#logpath","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-static","parent":"\"src/lib/agent/PolykeyAgent\".PolykeyAgent"},{"id":700,"kind":1024,"name":"DAEMON_SCRIPT_PATH","url":"classes/_src_lib_agent_polykeyagent_.polykeyagent.html#daemon_script_path","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"\"src/lib/agent/PolykeyAgent\".PolykeyAgent"},{"id":701,"kind":2048,"name":"startAgent","url":"classes/_src_lib_agent_polykeyagent_.polykeyagent.html#startagent","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"src/lib/agent/PolykeyAgent\".PolykeyAgent"},{"id":702,"kind":32,"name":"AgentMessage","url":"modules/_src_lib_agent_polykeyagent_.html#agentmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":703,"kind":32,"name":"AgentMessageType","url":"modules/_src_lib_agent_polykeyagent_.html#agentmessagetype","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":704,"kind":32,"name":"CreateSecretRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#createsecretrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":705,"kind":32,"name":"CreateSecretResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#createsecretresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":706,"kind":32,"name":"DecryptFileRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#decryptfilerequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":707,"kind":32,"name":"DecryptFileResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#decryptfileresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":708,"kind":32,"name":"DeleteKeyRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#deletekeyrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":709,"kind":32,"name":"DeleteKeyResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#deletekeyresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":710,"kind":32,"name":"DeriveKeyRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#derivekeyrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":711,"kind":32,"name":"DeriveKeyResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#derivekeyresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":712,"kind":32,"name":"DestroySecretRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#destroysecretrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":713,"kind":32,"name":"DestroySecretResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#destroysecretresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":714,"kind":32,"name":"DestroyVaultRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#destroyvaultrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":715,"kind":32,"name":"DestroyVaultResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#destroyvaultresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":716,"kind":32,"name":"EncryptFileRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#encryptfilerequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":717,"kind":32,"name":"EncryptFileResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#encryptfileresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":718,"kind":32,"name":"ErrorMessage","url":"modules/_src_lib_agent_polykeyagent_.html#errormessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":719,"kind":32,"name":"GetPrimaryKeyPairRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#getprimarykeypairrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":720,"kind":32,"name":"GetPrimaryKeyPairResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#getprimarykeypairresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":721,"kind":32,"name":"GetSecretRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#getsecretrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":722,"kind":32,"name":"GetSecretResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#getsecretresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":723,"kind":32,"name":"GetKeyRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#getkeyrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":724,"kind":32,"name":"GetKeyResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#getkeyresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":725,"kind":32,"name":"ListKeysRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#listkeysrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":726,"kind":32,"name":"ListKeysResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#listkeysresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":727,"kind":32,"name":"ListNodesRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#listnodesrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":728,"kind":32,"name":"ListNodesResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#listnodesresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":729,"kind":32,"name":"ListSecretsRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#listsecretsrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":730,"kind":32,"name":"ListSecretsResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#listsecretsresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":731,"kind":32,"name":"ListVaultsRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#listvaultsrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":732,"kind":32,"name":"ListVaultsResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#listvaultsresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":733,"kind":32,"name":"NewNodeRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#newnoderequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":734,"kind":32,"name":"NewNodeResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#newnoderesponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":735,"kind":32,"name":"NewVaultRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#newvaultrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":736,"kind":32,"name":"NewVaultResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#newvaultresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":737,"kind":32,"name":"RegisterNodeRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#registernoderequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":738,"kind":32,"name":"RegisterNodeResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#registernoderesponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":739,"kind":32,"name":"SignFileRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#signfilerequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":740,"kind":32,"name":"SignFileResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#signfileresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":741,"kind":32,"name":"UpdateSecretRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#updatesecretrequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":742,"kind":32,"name":"UpdateSecretResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#updatesecretresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":743,"kind":32,"name":"VerifyFileRequestMessage","url":"modules/_src_lib_agent_polykeyagent_.html#verifyfilerequestmessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":744,"kind":32,"name":"VerifyFileResponseMessage","url":"modules/_src_lib_agent_polykeyagent_.html#verifyfileresponsemessage","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"src/lib/agent/PolykeyAgent\""},{"id":745,"kind":1,"name":"\"src/lib/Polykey\"","url":"modules/_src_lib_polykey_.html","classes":"tsd-kind-module"},{"id":746,"kind":128,"name":"Polykey","url":"classes/_src_lib_polykey_.polykey.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"src/lib/Polykey\""},{"id":747,"kind":1024,"name":"polykeyPath","url":"classes/_src_lib_polykey_.polykey.html#polykeypath","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/Polykey\".Polykey"},{"id":748,"kind":1024,"name":"vaultManager","url":"classes/_src_lib_polykey_.polykey.html#vaultmanager","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/Polykey\".Polykey"},{"id":749,"kind":1024,"name":"keyManager","url":"classes/_src_lib_polykey_.polykey.html#keymanager","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/Polykey\".Polykey"},{"id":750,"kind":1024,"name":"peerManager","url":"classes/_src_lib_polykey_.polykey.html#peermanager","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"src/lib/Polykey\".Polykey"},{"id":751,"kind":512,"name":"constructor","url":"classes/_src_lib_polykey_.polykey.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"src/lib/Polykey\".Polykey"},{"id":752,"kind":1,"name":"\"src/lib/keys/pki/PublicKeyInfrastructure\"","url":"modules/_src_lib_keys_pki_publickeyinfrastructure_.html","classes":"tsd-kind-module"},{"id":753,"kind":128,"name":"PublicKeyInfrastructure","url":"classes/_src_lib_keys_pki_publickeyinfrastructure_.publickeyinfrastructure.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"src/lib/keys/pki/PublicKeyInfrastructure\""},{"id":754,"kind":1024,"name":"N_BITS","url":"classes/_src_lib_keys_pki_publickeyinfrastructure_.publickeyinfrastructure.html#n_bits","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"\"src/lib/keys/pki/PublicKeyInfrastructure\".PublicKeyInfrastructure"},{"id":755,"kind":1024,"name":"COMMON_NAME","url":"classes/_src_lib_keys_pki_publickeyinfrastructure_.publickeyinfrastructure.html#common_name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"\"src/lib/keys/pki/PublicKeyInfrastructure\".PublicKeyInfrastructure"},{"id":756,"kind":1024,"name":"ORGANIZATION_NAME","url":"classes/_src_lib_keys_pki_publickeyinfrastructure_.publickeyinfrastructure.html#organization_name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"\"src/lib/keys/pki/PublicKeyInfrastructure\".PublicKeyInfrastructure"},{"id":757,"kind":2048,"name":"createX509Certificate","url":"classes/_src_lib_keys_pki_publickeyinfrastructure_.publickeyinfrastructure.html#createx509certificate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"src/lib/keys/pki/PublicKeyInfrastructure\".PublicKeyInfrastructure"},{"id":758,"kind":1,"name":"\"proto/js/Git.d\"","url":"modules/_proto_js_git_d_.html","classes":"tsd-kind-module"},{"id":759,"kind":2,"name":"Git","url":"modules/_proto_js_git_d_.git.html","classes":"tsd-kind-namespace tsd-parent-kind-module tsd-is-not-exported","parent":"\"proto/js/Git.d\""},{"id":760,"kind":2,"name":"git","url":"modules/_proto_js_git_d_.git.git.html","classes":"tsd-kind-namespace tsd-parent-kind-namespace","parent":"\"proto/js/Git.d\".Git"},{"id":761,"kind":128,"name":"GitServer","url":"classes/_proto_js_git_d_.git.git.gitserver.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Git.d\".Git.git"},{"id":762,"kind":512,"name":"constructor","url":"classes/_proto_js_git_d_.git.git.gitserver.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":763,"kind":2048,"name":"create","url":"classes/_proto_js_git_d_.git.git.gitserver.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":764,"kind":2048,"name":"requestInfo","url":"classes/_proto_js_git_d_.git.git.gitserver.html#requestinfo","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":765,"kind":2048,"name":"requestPack","url":"classes/_proto_js_git_d_.git.git.gitserver.html#requestpack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":766,"kind":1024,"name":"rpcImpl","url":"classes/_proto_js_git_d_.git.git.gitserver.html#rpcimpl","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":767,"kind":1024,"name":"requestDelimited","url":"classes/_proto_js_git_d_.git.git.gitserver.html#requestdelimited","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":768,"kind":1024,"name":"responseDelimited","url":"classes/_proto_js_git_d_.git.git.gitserver.html#responsedelimited","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":769,"kind":2048,"name":"rpcCall","url":"classes/_proto_js_git_d_.git.git.gitserver.html#rpccall","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":770,"kind":2048,"name":"end","url":"classes/_proto_js_git_d_.git.git.gitserver.html#end","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":771,"kind":2048,"name":"on","url":"classes/_proto_js_git_d_.git.git.gitserver.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":772,"kind":2048,"name":"off","url":"classes/_proto_js_git_d_.git.git.gitserver.html#off","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":773,"kind":2048,"name":"emit","url":"classes/_proto_js_git_d_.git.git.gitserver.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":774,"kind":256,"name":"IInfoRequest","url":"interfaces/_proto_js_git_d_.git.git.iinforequest.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Git.d\".Git.git"},{"id":775,"kind":1024,"name":"vaultName","url":"interfaces/_proto_js_git_d_.git.git.iinforequest.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Git.d\".Git.git.IInfoRequest"},{"id":776,"kind":128,"name":"InfoRequest","url":"classes/_proto_js_git_d_.git.git.inforequest.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Git.d\".Git.git"},{"id":777,"kind":512,"name":"constructor","url":"classes/_proto_js_git_d_.git.git.inforequest.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.InfoRequest"},{"id":778,"kind":1024,"name":"vaultName","url":"classes/_proto_js_git_d_.git.git.inforequest.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.InfoRequest"},{"id":779,"kind":2048,"name":"create","url":"classes/_proto_js_git_d_.git.git.inforequest.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.InfoRequest"},{"id":780,"kind":2048,"name":"encode","url":"classes/_proto_js_git_d_.git.git.inforequest.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.InfoRequest"},{"id":781,"kind":2048,"name":"decode","url":"classes/_proto_js_git_d_.git.git.inforequest.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.InfoRequest"},{"id":782,"kind":256,"name":"IInfoReply","url":"interfaces/_proto_js_git_d_.git.git.iinforeply.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Git.d\".Git.git"},{"id":783,"kind":1024,"name":"vaultName","url":"interfaces/_proto_js_git_d_.git.git.iinforeply.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Git.d\".Git.git.IInfoReply"},{"id":784,"kind":1024,"name":"body","url":"interfaces/_proto_js_git_d_.git.git.iinforeply.html#body","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Git.d\".Git.git.IInfoReply"},{"id":785,"kind":128,"name":"InfoReply","url":"classes/_proto_js_git_d_.git.git.inforeply.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Git.d\".Git.git"},{"id":786,"kind":512,"name":"constructor","url":"classes/_proto_js_git_d_.git.git.inforeply.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.InfoReply"},{"id":787,"kind":1024,"name":"vaultName","url":"classes/_proto_js_git_d_.git.git.inforeply.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.InfoReply"},{"id":788,"kind":1024,"name":"body","url":"classes/_proto_js_git_d_.git.git.inforeply.html#body","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.InfoReply"},{"id":789,"kind":2048,"name":"create","url":"classes/_proto_js_git_d_.git.git.inforeply.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.InfoReply"},{"id":790,"kind":2048,"name":"encode","url":"classes/_proto_js_git_d_.git.git.inforeply.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.InfoReply"},{"id":791,"kind":2048,"name":"decode","url":"classes/_proto_js_git_d_.git.git.inforeply.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.InfoReply"},{"id":792,"kind":256,"name":"IPackRequest","url":"interfaces/_proto_js_git_d_.git.git.ipackrequest.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Git.d\".Git.git"},{"id":793,"kind":1024,"name":"vaultName","url":"interfaces/_proto_js_git_d_.git.git.ipackrequest.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Git.d\".Git.git.IPackRequest"},{"id":794,"kind":1024,"name":"body","url":"interfaces/_proto_js_git_d_.git.git.ipackrequest.html#body","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Git.d\".Git.git.IPackRequest"},{"id":795,"kind":128,"name":"PackRequest","url":"classes/_proto_js_git_d_.git.git.packrequest.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Git.d\".Git.git"},{"id":796,"kind":512,"name":"constructor","url":"classes/_proto_js_git_d_.git.git.packrequest.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.PackRequest"},{"id":797,"kind":1024,"name":"vaultName","url":"classes/_proto_js_git_d_.git.git.packrequest.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.PackRequest"},{"id":798,"kind":1024,"name":"body","url":"classes/_proto_js_git_d_.git.git.packrequest.html#body","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.PackRequest"},{"id":799,"kind":2048,"name":"create","url":"classes/_proto_js_git_d_.git.git.packrequest.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.PackRequest"},{"id":800,"kind":2048,"name":"encode","url":"classes/_proto_js_git_d_.git.git.packrequest.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.PackRequest"},{"id":801,"kind":2048,"name":"decode","url":"classes/_proto_js_git_d_.git.git.packrequest.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.PackRequest"},{"id":802,"kind":256,"name":"IPackReply","url":"interfaces/_proto_js_git_d_.git.git.ipackreply.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"\"proto/js/Git.d\".Git.git"},{"id":803,"kind":1024,"name":"vaultName","url":"interfaces/_proto_js_git_d_.git.git.ipackreply.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Git.d\".Git.git.IPackReply"},{"id":804,"kind":1024,"name":"body","url":"interfaces/_proto_js_git_d_.git.git.ipackreply.html#body","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"proto/js/Git.d\".Git.git.IPackReply"},{"id":805,"kind":128,"name":"PackReply","url":"classes/_proto_js_git_d_.git.git.packreply.html","classes":"tsd-kind-class tsd-parent-kind-namespace","parent":"\"proto/js/Git.d\".Git.git"},{"id":806,"kind":512,"name":"constructor","url":"classes/_proto_js_git_d_.git.git.packreply.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.PackReply"},{"id":807,"kind":1024,"name":"vaultName","url":"classes/_proto_js_git_d_.git.git.packreply.html#vaultname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.PackReply"},{"id":808,"kind":1024,"name":"body","url":"classes/_proto_js_git_d_.git.git.packreply.html#body","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"proto/js/Git.d\".Git.git.PackReply"},{"id":809,"kind":2048,"name":"create","url":"classes/_proto_js_git_d_.git.git.packreply.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.PackReply"},{"id":810,"kind":2048,"name":"encode","url":"classes/_proto_js_git_d_.git.git.packreply.html#encode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.PackReply"},{"id":811,"kind":2048,"name":"decode","url":"classes/_proto_js_git_d_.git.git.packreply.html#decode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.PackReply"},{"id":812,"kind":4194304,"name":"RequestInfoCallback","url":"classes/_proto_js_git_d_.git.git.gitserver.html#requestinfocallback","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":813,"kind":65536,"name":"__type","url":"classes/_proto_js_git_d_.git.git.gitserver.html#requestinfocallback.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"proto/js/Git.d\".Git.git.GitServer.RequestInfoCallback"},{"id":814,"kind":4194304,"name":"RequestPackCallback","url":"classes/_proto_js_git_d_.git.git.gitserver.html#requestpackcallback","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"\"proto/js/Git.d\".Git.git.GitServer"},{"id":815,"kind":65536,"name":"__type","url":"classes/_proto_js_git_d_.git.git.gitserver.html#requestpackcallback.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"proto/js/Git.d\".Git.git.GitServer.RequestPackCallback"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,54.529]],["parent/0",[]],["name/1",[1,57.893]],["parent/1",[0,5.411]],["name/2",[2,57.893]],["parent/2",[3,5.162]],["name/3",[4,57.893]],["parent/3",[3,5.162]],["name/4",[5,57.893]],["parent/4",[3,5.162]],["name/5",[6,57.893]],["parent/5",[3,5.162]],["name/6",[1,57.893]],["parent/6",[0,5.411]],["name/7",[7,50.009]],["parent/7",[]],["name/8",[8,52.016]],["parent/8",[7,4.963]],["name/9",[9,54.529]],["parent/9",[10,3.058]],["name/10",[11,57.893]],["parent/10",[10,3.058]],["name/11",[12,57.893]],["parent/11",[13,5.411]],["name/12",[14,57.893]],["parent/12",[13,5.411]],["name/13",[15,57.893]],["parent/13",[13,5.411]],["name/14",[16,26.197]],["parent/14",[10,3.058]],["name/15",[17,63.002]],["parent/15",[10,3.058]],["name/16",[18,63.002]],["parent/16",[10,3.058]],["name/17",[19,63.002]],["parent/17",[10,3.058]],["name/18",[20,63.002]],["parent/18",[10,3.058]],["name/19",[21,63.002]],["parent/19",[10,3.058]],["name/20",[22,63.002]],["parent/20",[10,3.058]],["name/21",[23,63.002]],["parent/21",[10,3.058]],["name/22",[24,63.002]],["parent/22",[10,3.058]],["name/23",[25,63.002]],["parent/23",[10,3.058]],["name/24",[26,63.002]],["parent/24",[10,3.058]],["name/25",[27,63.002]],["parent/25",[10,3.058]],["name/26",[28,63.002]],["parent/26",[10,3.058]],["name/27",[29,63.002]],["parent/27",[10,3.058]],["name/28",[30,57.893]],["parent/28",[10,3.058]],["name/29",[31,57.893]],["parent/29",[10,3.058]],["name/30",[32,63.002]],["parent/30",[10,3.058]],["name/31",[33,63.002]],["parent/31",[10,3.058]],["name/32",[34,63.002]],["parent/32",[10,3.058]],["name/33",[35,63.002]],["parent/33",[10,3.058]],["name/34",[36,63.002]],["parent/34",[10,3.058]],["name/35",[37,63.002]],["parent/35",[10,3.058]],["name/36",[2,57.893]],["parent/36",[10,3.058]],["name/37",[38,57.893]],["parent/37",[10,3.058]],["name/38",[4,57.893]],["parent/38",[10,3.058]],["name/39",[39,57.893]],["parent/39",[10,3.058]],["name/40",[5,57.893]],["parent/40",[10,3.058]],["name/41",[40,57.893]],["parent/41",[10,3.058]],["name/42",[6,57.893]],["parent/42",[10,3.058]],["name/43",[41,57.893]],["parent/43",[10,3.058]],["name/44",[11,57.893]],["parent/44",[10,3.058]],["name/45",[42,63.002]],["parent/45",[10,3.058]],["name/46",[43,57.893]],["parent/46",[10,3.058]],["name/47",[44,63.002]],["parent/47",[10,3.058]],["name/48",[45,54.529]],["parent/48",[10,3.058]],["name/49",[46,63.002]],["parent/49",[7,4.963]],["name/50",[47,44.543]],["parent/50",[48,6.252]],["name/51",[49,50.009]],["parent/51",[50,4.963]],["name/52",[51,50.009]],["parent/52",[50,4.963]],["name/53",[52,63.002]],["parent/53",[50,4.963]],["name/54",[53,63.002]],["parent/54",[50,4.963]],["name/55",[54,63.002]],["parent/55",[50,4.963]],["name/56",[55,63.002]],["parent/56",[7,4.963]],["name/57",[47,44.543]],["parent/57",[56,6.252]],["name/58",[57,63.002]],["parent/58",[58,5.745]],["name/59",[59,63.002]],["parent/59",[58,5.745]],["name/60",[60,63.002]],["parent/60",[7,4.963]],["name/61",[47,44.543]],["parent/61",[61,6.252]],["name/62",[12,57.893]],["parent/62",[62,5.411]],["name/63",[14,57.893]],["parent/63",[62,5.411]],["name/64",[15,57.893]],["parent/64",[62,5.411]],["name/65",[63,54.529]],["parent/65",[]],["name/66",[64,63.002]],["parent/66",[63,5.411]],["name/67",[65,63.002]],["parent/67",[66,4.797]],["name/68",[67,63.002]],["parent/68",[66,4.797]],["name/69",[16,26.197]],["parent/69",[66,4.797]],["name/70",[68,63.002]],["parent/70",[66,4.797]],["name/71",[69,63.002]],["parent/71",[66,4.797]],["name/72",[70,63.002]],["parent/72",[66,4.797]],["name/73",[71,63.002]],["parent/73",[63,5.411]],["name/74",[72,54.529]],["parent/74",[73,4.655]],["name/75",[74,54.529]],["parent/75",[73,4.655]],["name/76",[75,54.529]],["parent/76",[73,4.655]],["name/77",[16,26.197]],["parent/77",[73,4.655]],["name/78",[76,63.002]],["parent/78",[73,4.655]],["name/79",[77,63.002]],["parent/79",[73,4.655]],["name/80",[78,63.002]],["parent/80",[73,4.655]],["name/81",[79,54.529]],["parent/81",[]],["name/82",[80,63.002]],["parent/82",[79,5.411]],["name/83",[81,50.009]],["parent/83",[82,3.814]],["name/84",[83,63.002]],["parent/84",[82,3.814]],["name/85",[16,26.197]],["parent/85",[82,3.814]],["name/86",[84,63.002]],["parent/86",[82,3.814]],["name/87",[85,63.002]],["parent/87",[82,3.814]],["name/88",[86,63.002]],["parent/88",[82,3.814]],["name/89",[87,57.893]],["parent/89",[82,3.814]],["name/90",[88,57.893]],["parent/90",[82,3.814]],["name/91",[89,63.002]],["parent/91",[82,3.814]],["name/92",[90,57.893]],["parent/92",[82,3.814]],["name/93",[91,63.002]],["parent/93",[82,3.814]],["name/94",[92,63.002]],["parent/94",[82,3.814]],["name/95",[93,63.002]],["parent/95",[82,3.814]],["name/96",[94,63.002]],["parent/96",[82,3.814]],["name/97",[95,63.002]],["parent/97",[82,3.814]],["name/98",[96,63.002]],["parent/98",[82,3.814]],["name/99",[97,63.002]],["parent/99",[82,3.814]],["name/100",[98,63.002]],["parent/100",[79,5.411]],["name/101",[47,44.543]],["parent/101",[99,6.252]],["name/102",[100,63.002]],["parent/102",[101,6.252]],["name/103",[102,57.893]],["parent/103",[]],["name/104",[103,57.893]],["parent/104",[102,5.745]],["name/105",[9,54.529]],["parent/105",[104,4.001]],["name/106",[105,63.002]],["parent/106",[104,4.001]],["name/107",[8,52.016]],["parent/107",[104,4.001]],["name/108",[106,63.002]],["parent/108",[104,4.001]],["name/109",[107,63.002]],["parent/109",[104,4.001]],["name/110",[108,63.002]],["parent/110",[104,4.001]],["name/111",[16,26.197]],["parent/111",[104,4.001]],["name/112",[109,63.002]],["parent/112",[104,4.001]],["name/113",[110,63.002]],["parent/113",[104,4.001]],["name/114",[111,63.002]],["parent/114",[104,4.001]],["name/115",[112,63.002]],["parent/115",[104,4.001]],["name/116",[113,57.893]],["parent/116",[104,4.001]],["name/117",[114,57.893]],["parent/117",[104,4.001]],["name/118",[45,54.529]],["parent/118",[104,4.001]],["name/119",[115,57.893]],["parent/119",[]],["name/120",[116,57.893]],["parent/120",[115,5.745]],["name/121",[116,57.893]],["parent/121",[117,6.252]],["name/122",[118,63.002]],["parent/122",[119,5.162]],["name/123",[120,57.893]],["parent/123",[121,5.162]],["name/124",[122,57.893]],["parent/124",[121,5.162]],["name/125",[123,57.893]],["parent/125",[121,5.162]],["name/126",[124,57.893]],["parent/126",[121,5.162]],["name/127",[125,57.893]],["parent/127",[119,5.162]],["name/128",[16,26.197]],["parent/128",[126,4.531]],["name/129",[120,57.893]],["parent/129",[126,4.531]],["name/130",[122,57.893]],["parent/130",[126,4.531]],["name/131",[123,57.893]],["parent/131",[126,4.531]],["name/132",[124,57.893]],["parent/132",[126,4.531]],["name/133",[127,28.037]],["parent/133",[126,4.531]],["name/134",[128,28.241]],["parent/134",[126,4.531]],["name/135",[129,28.241]],["parent/135",[126,4.531]],["name/136",[130,63.002]],["parent/136",[119,5.162]],["name/137",[131,57.893]],["parent/137",[132,5.411]],["name/138",[74,54.529]],["parent/138",[132,5.411]],["name/139",[75,54.529]],["parent/139",[132,5.411]],["name/140",[133,57.893]],["parent/140",[119,5.162]],["name/141",[16,26.197]],["parent/141",[134,4.655]],["name/142",[131,57.893]],["parent/142",[134,4.655]],["name/143",[74,54.529]],["parent/143",[134,4.655]],["name/144",[75,54.529]],["parent/144",[134,4.655]],["name/145",[127,28.037]],["parent/145",[134,4.655]],["name/146",[128,28.241]],["parent/146",[134,4.655]],["name/147",[129,28.241]],["parent/147",[134,4.655]],["name/148",[135,52.016]],["parent/148",[]],["name/149",[136,63.002]],["parent/149",[135,5.162]],["name/150",[137,63.002]],["parent/150",[135,5.162]],["name/151",[138,63.002]],["parent/151",[135,5.162]],["name/152",[139,46.907]],["parent/152",[]],["name/153",[140,57.893]],["parent/153",[139,4.655]],["name/154",[141,57.893]],["parent/154",[142,3.402]],["name/155",[47,44.543]],["parent/155",[143,6.252]],["name/156",[144,57.893]],["parent/156",[142,3.402]],["name/157",[8,52.016]],["parent/157",[142,3.402]],["name/158",[145,63.002]],["parent/158",[142,3.402]],["name/159",[146,63.002]],["parent/159",[142,3.402]],["name/160",[147,63.002]],["parent/160",[142,3.402]],["name/161",[148,63.002]],["parent/161",[142,3.402]],["name/162",[16,26.197]],["parent/162",[142,3.402]],["name/163",[149,63.002]],["parent/163",[142,3.402]],["name/164",[150,63.002]],["parent/164",[142,3.402]],["name/165",[151,57.893]],["parent/165",[142,3.402]],["name/166",[152,63.002]],["parent/166",[142,3.402]],["name/167",[153,63.002]],["parent/167",[142,3.402]],["name/168",[154,57.893]],["parent/168",[142,3.402]],["name/169",[155,63.002]],["parent/169",[142,3.402]],["name/170",[156,63.002]],["parent/170",[142,3.402]],["name/171",[157,63.002]],["parent/171",[142,3.402]],["name/172",[158,63.002]],["parent/172",[142,3.402]],["name/173",[159,63.002]],["parent/173",[142,3.402]],["name/174",[160,57.893]],["parent/174",[142,3.402]],["name/175",[161,57.893]],["parent/175",[142,3.402]],["name/176",[162,63.002]],["parent/176",[142,3.402]],["name/177",[163,63.002]],["parent/177",[142,3.402]],["name/178",[164,63.002]],["parent/178",[142,3.402]],["name/179",[161,57.893]],["parent/179",[142,3.402]],["name/180",[165,63.002]],["parent/180",[142,3.402]],["name/181",[125,57.893]],["parent/181",[139,4.655]],["name/182",[133,57.893]],["parent/182",[139,4.655]],["name/183",[166,63.002]],["parent/183",[139,4.655]],["name/184",[167,63.002]],["parent/184",[139,4.655]],["name/185",[168,63.002]],["parent/185",[139,4.655]],["name/186",[47,44.543]],["parent/186",[169,6.252]],["name/187",[170,63.002]],["parent/187",[171,5.162]],["name/188",[172,63.002]],["parent/188",[171,5.162]],["name/189",[173,63.002]],["parent/189",[171,5.162]],["name/190",[174,63.002]],["parent/190",[171,5.162]],["name/191",[175,50.009]],["parent/191",[]],["name/192",[176,63.002]],["parent/192",[175,4.963]],["name/193",[81,50.009]],["parent/193",[177,5.745]],["name/194",[178,57.893]],["parent/194",[177,5.745]],["name/195",[179,57.893]],["parent/195",[175,4.963]],["name/196",[140,57.893]],["parent/196",[180,4.072]],["name/197",[181,63.002]],["parent/197",[180,4.072]],["name/198",[182,63.002]],["parent/198",[180,4.072]],["name/199",[16,26.197]],["parent/199",[180,4.072]],["name/200",[183,63.002]],["parent/200",[180,4.072]],["name/201",[184,63.002]],["parent/201",[180,4.072]],["name/202",[141,57.893]],["parent/202",[180,4.072]],["name/203",[185,63.002]],["parent/203",[180,4.072]],["name/204",[186,63.002]],["parent/204",[180,4.072]],["name/205",[187,63.002]],["parent/205",[180,4.072]],["name/206",[188,63.002]],["parent/206",[180,4.072]],["name/207",[189,63.002]],["parent/207",[180,4.072]],["name/208",[45,54.529]],["parent/208",[180,4.072]],["name/209",[190,63.002]],["parent/209",[175,4.963]],["name/210",[81,50.009]],["parent/210",[191,5.745]],["name/211",[178,57.893]],["parent/211",[191,5.745]],["name/212",[192,63.002]],["parent/212",[175,4.963]],["name/213",[47,44.543]],["parent/213",[193,6.252]],["name/214",[144,57.893]],["parent/214",[194,6.252]],["name/215",[195,57.893]],["parent/215",[]],["name/216",[196,57.893]],["parent/216",[195,5.745]],["name/217",[196,57.893]],["parent/217",[197,6.252]],["name/218",[198,54.529]],["parent/218",[199,2.24]],["name/219",[200,54.529]],["parent/219",[201,3.522]],["name/220",[202,63.002]],["parent/220",[201,3.522]],["name/221",[203,63.002]],["parent/221",[201,3.522]],["name/222",[204,63.002]],["parent/222",[201,3.522]],["name/223",[205,63.002]],["parent/223",[201,3.522]],["name/224",[206,63.002]],["parent/224",[201,3.522]],["name/225",[207,63.002]],["parent/225",[201,3.522]],["name/226",[208,63.002]],["parent/226",[201,3.522]],["name/227",[209,63.002]],["parent/227",[201,3.522]],["name/228",[210,63.002]],["parent/228",[201,3.522]],["name/229",[211,63.002]],["parent/229",[201,3.522]],["name/230",[212,63.002]],["parent/230",[201,3.522]],["name/231",[213,63.002]],["parent/231",[201,3.522]],["name/232",[214,63.002]],["parent/232",[201,3.522]],["name/233",[215,63.002]],["parent/233",[201,3.522]],["name/234",[216,63.002]],["parent/234",[201,3.522]],["name/235",[217,63.002]],["parent/235",[201,3.522]],["name/236",[218,63.002]],["parent/236",[201,3.522]],["name/237",[219,63.002]],["parent/237",[201,3.522]],["name/238",[220,63.002]],["parent/238",[201,3.522]],["name/239",[221,63.002]],["parent/239",[201,3.522]],["name/240",[222,63.002]],["parent/240",[201,3.522]],["name/241",[223,63.002]],["parent/241",[201,3.522]],["name/242",[224,63.002]],["parent/242",[199,2.24]],["name/243",[225,57.893]],["parent/243",[226,5.162]],["name/244",[227,57.893]],["parent/244",[226,5.162]],["name/245",[228,57.893]],["parent/245",[226,5.162]],["name/246",[229,57.893]],["parent/246",[226,5.162]],["name/247",[230,54.529]],["parent/247",[199,2.24]],["name/248",[16,26.197]],["parent/248",[231,4.531]],["name/249",[225,57.893]],["parent/249",[231,4.531]],["name/250",[227,57.893]],["parent/250",[231,4.531]],["name/251",[228,57.893]],["parent/251",[231,4.531]],["name/252",[229,57.893]],["parent/252",[231,4.531]],["name/253",[127,28.037]],["parent/253",[231,4.531]],["name/254",[128,28.241]],["parent/254",[231,4.531]],["name/255",[129,28.241]],["parent/255",[231,4.531]],["name/256",[232,63.002]],["parent/256",[199,2.24]],["name/257",[200,54.529]],["parent/257",[233,6.252]],["name/258",[234,54.529]],["parent/258",[199,2.24]],["name/259",[16,26.197]],["parent/259",[235,4.963]],["name/260",[200,54.529]],["parent/260",[235,4.963]],["name/261",[127,28.037]],["parent/261",[235,4.963]],["name/262",[128,28.241]],["parent/262",[235,4.963]],["name/263",[129,28.241]],["parent/263",[235,4.963]],["name/264",[236,63.002]],["parent/264",[199,2.24]],["name/265",[237,43.543]],["parent/265",[238,6.252]],["name/266",[239,54.529]],["parent/266",[199,2.24]],["name/267",[16,26.197]],["parent/267",[240,4.963]],["name/268",[237,43.543]],["parent/268",[240,4.963]],["name/269",[127,28.037]],["parent/269",[240,4.963]],["name/270",[128,28.241]],["parent/270",[240,4.963]],["name/271",[129,28.241]],["parent/271",[240,4.963]],["name/272",[241,63.002]],["parent/272",[199,2.24]],["name/273",[242,37.879]],["parent/273",[243,6.252]],["name/274",[244,54.529]],["parent/274",[199,2.24]],["name/275",[16,26.197]],["parent/275",[245,4.963]],["name/276",[242,37.879]],["parent/276",[245,4.963]],["name/277",[127,28.037]],["parent/277",[245,4.963]],["name/278",[128,28.241]],["parent/278",[245,4.963]],["name/279",[129,28.241]],["parent/279",[245,4.963]],["name/280",[246,63.002]],["parent/280",[199,2.24]],["name/281",[81,50.009]],["parent/281",[247,5.162]],["name/282",[248,57.893]],["parent/282",[247,5.162]],["name/283",[237,43.543]],["parent/283",[247,5.162]],["name/284",[249,57.893]],["parent/284",[247,5.162]],["name/285",[250,54.529]],["parent/285",[199,2.24]],["name/286",[16,26.197]],["parent/286",[251,4.531]],["name/287",[81,50.009]],["parent/287",[251,4.531]],["name/288",[248,57.893]],["parent/288",[251,4.531]],["name/289",[237,43.543]],["parent/289",[251,4.531]],["name/290",[249,57.893]],["parent/290",[251,4.531]],["name/291",[127,28.037]],["parent/291",[251,4.531]],["name/292",[128,28.241]],["parent/292",[251,4.531]],["name/293",[129,28.241]],["parent/293",[251,4.531]],["name/294",[252,63.002]],["parent/294",[199,2.24]],["name/295",[242,37.879]],["parent/295",[253,6.252]],["name/296",[254,54.529]],["parent/296",[199,2.24]],["name/297",[16,26.197]],["parent/297",[255,4.963]],["name/298",[242,37.879]],["parent/298",[255,4.963]],["name/299",[127,28.037]],["parent/299",[255,4.963]],["name/300",[128,28.241]],["parent/300",[255,4.963]],["name/301",[129,28.241]],["parent/301",[255,4.963]],["name/302",[256,63.002]],["parent/302",[199,2.24]],["name/303",[257,57.893]],["parent/303",[258,6.252]],["name/304",[259,54.529]],["parent/304",[199,2.24]],["name/305",[16,26.197]],["parent/305",[260,4.963]],["name/306",[257,57.893]],["parent/306",[260,4.963]],["name/307",[127,28.037]],["parent/307",[260,4.963]],["name/308",[128,28.241]],["parent/308",[260,4.963]],["name/309",[129,28.241]],["parent/309",[260,4.963]],["name/310",[261,63.002]],["parent/310",[199,2.24]],["name/311",[262,57.893]],["parent/311",[263,6.252]],["name/312",[264,54.529]],["parent/312",[199,2.24]],["name/313",[16,26.197]],["parent/313",[265,4.963]],["name/314",[262,57.893]],["parent/314",[265,4.963]],["name/315",[127,28.037]],["parent/315",[265,4.963]],["name/316",[128,28.241]],["parent/316",[265,4.963]],["name/317",[129,28.241]],["parent/317",[265,4.963]],["name/318",[266,63.002]],["parent/318",[199,2.24]],["name/319",[267,45.656]],["parent/319",[268,5.411]],["name/320",[49,50.009]],["parent/320",[268,5.411]],["name/321",[237,43.543]],["parent/321",[268,5.411]],["name/322",[269,54.529]],["parent/322",[199,2.24]],["name/323",[16,26.197]],["parent/323",[270,4.655]],["name/324",[267,45.656]],["parent/324",[270,4.655]],["name/325",[49,50.009]],["parent/325",[270,4.655]],["name/326",[237,43.543]],["parent/326",[270,4.655]],["name/327",[127,28.037]],["parent/327",[270,4.655]],["name/328",[128,28.241]],["parent/328",[270,4.655]],["name/329",[129,28.241]],["parent/329",[270,4.655]],["name/330",[271,63.002]],["parent/330",[199,2.24]],["name/331",[272,57.893]],["parent/331",[273,6.252]],["name/332",[274,54.529]],["parent/332",[199,2.24]],["name/333",[16,26.197]],["parent/333",[275,4.963]],["name/334",[272,57.893]],["parent/334",[275,4.963]],["name/335",[127,28.037]],["parent/335",[275,4.963]],["name/336",[128,28.241]],["parent/336",[275,4.963]],["name/337",[129,28.241]],["parent/337",[275,4.963]],["name/338",[276,63.002]],["parent/338",[199,2.24]],["name/339",[267,45.656]],["parent/339",[277,5.745]],["name/340",[51,50.009]],["parent/340",[277,5.745]],["name/341",[278,54.529]],["parent/341",[199,2.24]],["name/342",[16,26.197]],["parent/342",[279,4.797]],["name/343",[267,45.656]],["parent/343",[279,4.797]],["name/344",[51,50.009]],["parent/344",[279,4.797]],["name/345",[127,28.037]],["parent/345",[279,4.797]],["name/346",[128,28.241]],["parent/346",[279,4.797]],["name/347",[129,28.241]],["parent/347",[279,4.797]],["name/348",[280,63.002]],["parent/348",[199,2.24]],["name/349",[281,57.893]],["parent/349",[282,6.252]],["name/350",[283,54.529]],["parent/350",[199,2.24]],["name/351",[16,26.197]],["parent/351",[284,4.963]],["name/352",[281,57.893]],["parent/352",[284,4.963]],["name/353",[127,28.037]],["parent/353",[284,4.963]],["name/354",[128,28.241]],["parent/354",[284,4.963]],["name/355",[129,28.241]],["parent/355",[284,4.963]],["name/356",[285,63.002]],["parent/356",[199,2.24]],["name/357",[267,45.656]],["parent/357",[286,5.745]],["name/358",[51,50.009]],["parent/358",[286,5.745]],["name/359",[287,54.529]],["parent/359",[199,2.24]],["name/360",[16,26.197]],["parent/360",[288,4.797]],["name/361",[267,45.656]],["parent/361",[288,4.797]],["name/362",[51,50.009]],["parent/362",[288,4.797]],["name/363",[127,28.037]],["parent/363",[288,4.797]],["name/364",[128,28.241]],["parent/364",[288,4.797]],["name/365",[129,28.241]],["parent/365",[288,4.797]],["name/366",[289,63.002]],["parent/366",[199,2.24]],["name/367",[290,57.893]],["parent/367",[291,6.252]],["name/368",[292,54.529]],["parent/368",[199,2.24]],["name/369",[16,26.197]],["parent/369",[293,4.963]],["name/370",[290,57.893]],["parent/370",[293,4.963]],["name/371",[127,28.037]],["parent/371",[293,4.963]],["name/372",[128,28.241]],["parent/372",[293,4.963]],["name/373",[129,28.241]],["parent/373",[293,4.963]],["name/374",[294,63.002]],["parent/374",[199,2.24]],["name/375",[267,45.656]],["parent/375",[295,5.411]],["name/376",[49,50.009]],["parent/376",[295,5.411]],["name/377",[237,43.543]],["parent/377",[295,5.411]],["name/378",[296,54.529]],["parent/378",[199,2.24]],["name/379",[16,26.197]],["parent/379",[297,4.655]],["name/380",[267,45.656]],["parent/380",[297,4.655]],["name/381",[49,50.009]],["parent/381",[297,4.655]],["name/382",[237,43.543]],["parent/382",[297,4.655]],["name/383",[127,28.037]],["parent/383",[297,4.655]],["name/384",[128,28.241]],["parent/384",[297,4.655]],["name/385",[129,28.241]],["parent/385",[297,4.655]],["name/386",[298,63.002]],["parent/386",[199,2.24]],["name/387",[299,57.893]],["parent/387",[300,6.252]],["name/388",[301,54.529]],["parent/388",[199,2.24]],["name/389",[16,26.197]],["parent/389",[302,4.963]],["name/390",[299,57.893]],["parent/390",[302,4.963]],["name/391",[127,28.037]],["parent/391",[302,4.963]],["name/392",[128,28.241]],["parent/392",[302,4.963]],["name/393",[129,28.241]],["parent/393",[302,4.963]],["name/394",[303,63.002]],["parent/394",[199,2.24]],["name/395",[304,54.529]],["parent/395",[199,2.24]],["name/396",[16,26.197]],["parent/396",[305,5.162]],["name/397",[127,28.037]],["parent/397",[305,5.162]],["name/398",[128,28.241]],["parent/398",[305,5.162]],["name/399",[129,28.241]],["parent/399",[305,5.162]],["name/400",[306,63.002]],["parent/400",[199,2.24]],["name/401",[307,57.893]],["parent/401",[308,6.252]],["name/402",[309,54.529]],["parent/402",[199,2.24]],["name/403",[16,26.197]],["parent/403",[310,4.963]],["name/404",[307,57.893]],["parent/404",[310,4.963]],["name/405",[127,28.037]],["parent/405",[310,4.963]],["name/406",[128,28.241]],["parent/406",[310,4.963]],["name/407",[129,28.241]],["parent/407",[310,4.963]],["name/408",[311,63.002]],["parent/408",[199,2.24]],["name/409",[312,35.07]],["parent/409",[313,6.252]],["name/410",[314,54.529]],["parent/410",[199,2.24]],["name/411",[16,26.197]],["parent/411",[315,4.963]],["name/412",[312,35.07]],["parent/412",[315,4.963]],["name/413",[127,28.037]],["parent/413",[315,4.963]],["name/414",[128,28.241]],["parent/414",[315,4.963]],["name/415",[129,28.241]],["parent/415",[315,4.963]],["name/416",[316,63.002]],["parent/416",[199,2.24]],["name/417",[242,37.879]],["parent/417",[317,6.252]],["name/418",[318,54.529]],["parent/418",[199,2.24]],["name/419",[16,26.197]],["parent/419",[319,4.963]],["name/420",[242,37.879]],["parent/420",[319,4.963]],["name/421",[127,28.037]],["parent/421",[319,4.963]],["name/422",[128,28.241]],["parent/422",[319,4.963]],["name/423",[129,28.241]],["parent/423",[319,4.963]],["name/424",[320,63.002]],["parent/424",[199,2.24]],["name/425",[312,35.07]],["parent/425",[321,6.252]],["name/426",[322,54.529]],["parent/426",[199,2.24]],["name/427",[16,26.197]],["parent/427",[323,4.963]],["name/428",[312,35.07]],["parent/428",[323,4.963]],["name/429",[127,28.037]],["parent/429",[323,4.963]],["name/430",[128,28.241]],["parent/430",[323,4.963]],["name/431",[129,28.241]],["parent/431",[323,4.963]],["name/432",[324,63.002]],["parent/432",[199,2.24]],["name/433",[242,37.879]],["parent/433",[325,6.252]],["name/434",[326,54.529]],["parent/434",[199,2.24]],["name/435",[16,26.197]],["parent/435",[327,4.963]],["name/436",[242,37.879]],["parent/436",[327,4.963]],["name/437",[127,28.037]],["parent/437",[327,4.963]],["name/438",[128,28.241]],["parent/438",[327,4.963]],["name/439",[129,28.241]],["parent/439",[327,4.963]],["name/440",[328,63.002]],["parent/440",[199,2.24]],["name/441",[312,35.07]],["parent/441",[329,6.252]],["name/442",[330,54.529]],["parent/442",[199,2.24]],["name/443",[16,26.197]],["parent/443",[331,4.963]],["name/444",[312,35.07]],["parent/444",[331,4.963]],["name/445",[127,28.037]],["parent/445",[331,4.963]],["name/446",[128,28.241]],["parent/446",[331,4.963]],["name/447",[129,28.241]],["parent/447",[331,4.963]],["name/448",[332,63.002]],["parent/448",[199,2.24]],["name/449",[333,57.893]],["parent/449",[334,6.252]],["name/450",[335,54.529]],["parent/450",[199,2.24]],["name/451",[16,26.197]],["parent/451",[336,4.963]],["name/452",[333,57.893]],["parent/452",[336,4.963]],["name/453",[127,28.037]],["parent/453",[336,4.963]],["name/454",[128,28.241]],["parent/454",[336,4.963]],["name/455",[129,28.241]],["parent/455",[336,4.963]],["name/456",[337,63.002]],["parent/456",[199,2.24]],["name/457",[312,35.07]],["parent/457",[338,5.162]],["name/458",[339,45.656]],["parent/458",[338,5.162]],["name/459",[340,52.016]],["parent/459",[338,5.162]],["name/460",[341,52.016]],["parent/460",[338,5.162]],["name/461",[342,54.529]],["parent/461",[199,2.24]],["name/462",[16,26.197]],["parent/462",[343,4.531]],["name/463",[312,35.07]],["parent/463",[343,4.531]],["name/464",[339,45.656]],["parent/464",[343,4.531]],["name/465",[340,52.016]],["parent/465",[343,4.531]],["name/466",[341,52.016]],["parent/466",[343,4.531]],["name/467",[127,28.037]],["parent/467",[343,4.531]],["name/468",[128,28.241]],["parent/468",[343,4.531]],["name/469",[129,28.241]],["parent/469",[343,4.531]],["name/470",[344,63.002]],["parent/470",[199,2.24]],["name/471",[242,37.879]],["parent/471",[345,6.252]],["name/472",[346,54.529]],["parent/472",[199,2.24]],["name/473",[16,26.197]],["parent/473",[347,4.963]],["name/474",[242,37.879]],["parent/474",[347,4.963]],["name/475",[127,28.037]],["parent/475",[347,4.963]],["name/476",[128,28.241]],["parent/476",[347,4.963]],["name/477",[129,28.241]],["parent/477",[347,4.963]],["name/478",[348,63.002]],["parent/478",[199,2.24]],["name/479",[312,35.07]],["parent/479",[349,5.745]],["name/480",[339,45.656]],["parent/480",[349,5.745]],["name/481",[350,54.529]],["parent/481",[199,2.24]],["name/482",[16,26.197]],["parent/482",[351,4.797]],["name/483",[312,35.07]],["parent/483",[351,4.797]],["name/484",[339,45.656]],["parent/484",[351,4.797]],["name/485",[127,28.037]],["parent/485",[351,4.797]],["name/486",[128,28.241]],["parent/486",[351,4.797]],["name/487",[129,28.241]],["parent/487",[351,4.797]],["name/488",[352,63.002]],["parent/488",[199,2.24]],["name/489",[242,37.879]],["parent/489",[353,6.252]],["name/490",[354,54.529]],["parent/490",[199,2.24]],["name/491",[16,26.197]],["parent/491",[355,4.963]],["name/492",[242,37.879]],["parent/492",[355,4.963]],["name/493",[127,28.037]],["parent/493",[355,4.963]],["name/494",[128,28.241]],["parent/494",[355,4.963]],["name/495",[129,28.241]],["parent/495",[355,4.963]],["name/496",[356,63.002]],["parent/496",[199,2.24]],["name/497",[312,35.07]],["parent/497",[357,5.745]],["name/498",[339,45.656]],["parent/498",[357,5.745]],["name/499",[358,54.529]],["parent/499",[199,2.24]],["name/500",[16,26.197]],["parent/500",[359,4.797]],["name/501",[312,35.07]],["parent/501",[359,4.797]],["name/502",[339,45.656]],["parent/502",[359,4.797]],["name/503",[127,28.037]],["parent/503",[359,4.797]],["name/504",[128,28.241]],["parent/504",[359,4.797]],["name/505",[129,28.241]],["parent/505",[359,4.797]],["name/506",[360,63.002]],["parent/506",[199,2.24]],["name/507",[361,57.893]],["parent/507",[362,6.252]],["name/508",[363,54.529]],["parent/508",[199,2.24]],["name/509",[16,26.197]],["parent/509",[364,4.963]],["name/510",[361,57.893]],["parent/510",[364,4.963]],["name/511",[127,28.037]],["parent/511",[364,4.963]],["name/512",[128,28.241]],["parent/512",[364,4.963]],["name/513",[129,28.241]],["parent/513",[364,4.963]],["name/514",[365,63.002]],["parent/514",[199,2.24]],["name/515",[312,35.07]],["parent/515",[366,5.411]],["name/516",[367,45.656]],["parent/516",[366,5.411]],["name/517",[237,43.543]],["parent/517",[366,5.411]],["name/518",[368,54.529]],["parent/518",[199,2.24]],["name/519",[16,26.197]],["parent/519",[369,4.655]],["name/520",[312,35.07]],["parent/520",[369,4.655]],["name/521",[367,45.656]],["parent/521",[369,4.655]],["name/522",[237,43.543]],["parent/522",[369,4.655]],["name/523",[127,28.037]],["parent/523",[369,4.655]],["name/524",[128,28.241]],["parent/524",[369,4.655]],["name/525",[129,28.241]],["parent/525",[369,4.655]],["name/526",[370,63.002]],["parent/526",[199,2.24]],["name/527",[242,37.879]],["parent/527",[371,6.252]],["name/528",[372,54.529]],["parent/528",[199,2.24]],["name/529",[16,26.197]],["parent/529",[373,4.963]],["name/530",[242,37.879]],["parent/530",[373,4.963]],["name/531",[127,28.037]],["parent/531",[373,4.963]],["name/532",[128,28.241]],["parent/532",[373,4.963]],["name/533",[129,28.241]],["parent/533",[373,4.963]],["name/534",[374,63.002]],["parent/534",[199,2.24]],["name/535",[375,54.529]],["parent/535",[199,2.24]],["name/536",[16,26.197]],["parent/536",[376,5.162]],["name/537",[127,28.037]],["parent/537",[376,5.162]],["name/538",[128,28.241]],["parent/538",[376,5.162]],["name/539",[129,28.241]],["parent/539",[376,5.162]],["name/540",[377,63.002]],["parent/540",[199,2.24]],["name/541",[378,57.893]],["parent/541",[379,6.252]],["name/542",[380,54.529]],["parent/542",[199,2.24]],["name/543",[16,26.197]],["parent/543",[381,4.963]],["name/544",[378,57.893]],["parent/544",[381,4.963]],["name/545",[127,28.037]],["parent/545",[381,4.963]],["name/546",[128,28.241]],["parent/546",[381,4.963]],["name/547",[129,28.241]],["parent/547",[381,4.963]],["name/548",[382,63.002]],["parent/548",[199,2.24]],["name/549",[367,45.656]],["parent/549",[383,6.252]],["name/550",[384,54.529]],["parent/550",[199,2.24]],["name/551",[16,26.197]],["parent/551",[385,4.963]],["name/552",[367,45.656]],["parent/552",[385,4.963]],["name/553",[127,28.037]],["parent/553",[385,4.963]],["name/554",[128,28.241]],["parent/554",[385,4.963]],["name/555",[129,28.241]],["parent/555",[385,4.963]],["name/556",[386,63.002]],["parent/556",[199,2.24]],["name/557",[367,45.656]],["parent/557",[387,5.745]],["name/558",[388,57.893]],["parent/558",[387,5.745]],["name/559",[389,54.529]],["parent/559",[199,2.24]],["name/560",[16,26.197]],["parent/560",[390,4.797]],["name/561",[367,45.656]],["parent/561",[390,4.797]],["name/562",[388,57.893]],["parent/562",[390,4.797]],["name/563",[127,28.037]],["parent/563",[390,4.797]],["name/564",[128,28.241]],["parent/564",[390,4.797]],["name/565",[129,28.241]],["parent/565",[390,4.797]],["name/566",[391,63.002]],["parent/566",[199,2.24]],["name/567",[392,57.893]],["parent/567",[393,6.252]],["name/568",[394,54.529]],["parent/568",[199,2.24]],["name/569",[16,26.197]],["parent/569",[395,4.963]],["name/570",[392,57.893]],["parent/570",[395,4.963]],["name/571",[127,28.037]],["parent/571",[395,4.963]],["name/572",[128,28.241]],["parent/572",[395,4.963]],["name/573",[129,28.241]],["parent/573",[395,4.963]],["name/574",[396,63.002]],["parent/574",[199,2.24]],["name/575",[72,54.529]],["parent/575",[397,5.745]],["name/576",[398,57.893]],["parent/576",[397,5.745]],["name/577",[399,54.529]],["parent/577",[199,2.24]],["name/578",[16,26.197]],["parent/578",[400,4.797]],["name/579",[72,54.529]],["parent/579",[400,4.797]],["name/580",[398,57.893]],["parent/580",[400,4.797]],["name/581",[127,28.037]],["parent/581",[400,4.797]],["name/582",[128,28.241]],["parent/582",[400,4.797]],["name/583",[129,28.241]],["parent/583",[400,4.797]],["name/584",[401,63.002]],["parent/584",[199,2.24]],["name/585",[312,35.07]],["parent/585",[402,5.162]],["name/586",[339,45.656]],["parent/586",[402,5.162]],["name/587",[340,52.016]],["parent/587",[402,5.162]],["name/588",[341,52.016]],["parent/588",[402,5.162]],["name/589",[403,54.529]],["parent/589",[199,2.24]],["name/590",[16,26.197]],["parent/590",[404,4.531]],["name/591",[312,35.07]],["parent/591",[404,4.531]],["name/592",[339,45.656]],["parent/592",[404,4.531]],["name/593",[340,52.016]],["parent/593",[404,4.531]],["name/594",[341,52.016]],["parent/594",[404,4.531]],["name/595",[127,28.037]],["parent/595",[404,4.531]],["name/596",[128,28.241]],["parent/596",[404,4.531]],["name/597",[129,28.241]],["parent/597",[404,4.531]],["name/598",[405,63.002]],["parent/598",[199,2.24]],["name/599",[242,37.879]],["parent/599",[406,6.252]],["name/600",[407,54.529]],["parent/600",[199,2.24]],["name/601",[16,26.197]],["parent/601",[408,4.963]],["name/602",[242,37.879]],["parent/602",[408,4.963]],["name/603",[127,28.037]],["parent/603",[408,4.963]],["name/604",[128,28.241]],["parent/604",[408,4.963]],["name/605",[129,28.241]],["parent/605",[408,4.963]],["name/606",[409,63.002]],["parent/606",[199,2.24]],["name/607",[367,45.656]],["parent/607",[410,6.252]],["name/608",[411,54.529]],["parent/608",[199,2.24]],["name/609",[16,26.197]],["parent/609",[412,4.963]],["name/610",[367,45.656]],["parent/610",[412,4.963]],["name/611",[127,28.037]],["parent/611",[412,4.963]],["name/612",[128,28.241]],["parent/612",[412,4.963]],["name/613",[129,28.241]],["parent/613",[412,4.963]],["name/614",[413,63.002]],["parent/614",[199,2.24]],["name/615",[242,37.879]],["parent/615",[414,6.252]],["name/616",[415,54.529]],["parent/616",[199,2.24]],["name/617",[16,26.197]],["parent/617",[416,4.963]],["name/618",[242,37.879]],["parent/618",[416,4.963]],["name/619",[127,28.037]],["parent/619",[416,4.963]],["name/620",[128,28.241]],["parent/620",[416,4.963]],["name/621",[129,28.241]],["parent/621",[416,4.963]],["name/622",[417,28.879]],["parent/622",[]],["name/623",[418,63.002]],["parent/623",[417,2.866]],["name/624",[16,26.197]],["parent/624",[419,3.48]],["name/625",[420,63.002]],["parent/625",[419,3.48]],["name/626",[421,63.002]],["parent/626",[419,3.48]],["name/627",[422,63.002]],["parent/627",[419,3.48]],["name/628",[423,63.002]],["parent/628",[419,3.48]],["name/629",[424,63.002]],["parent/629",[419,3.48]],["name/630",[30,57.893]],["parent/630",[419,3.48]],["name/631",[31,57.893]],["parent/631",[419,3.48]],["name/632",[43,57.893]],["parent/632",[419,3.48]],["name/633",[425,63.002]],["parent/633",[419,3.48]],["name/634",[38,57.893]],["parent/634",[419,3.48]],["name/635",[39,57.893]],["parent/635",[419,3.48]],["name/636",[40,57.893]],["parent/636",[419,3.48]],["name/637",[41,57.893]],["parent/637",[419,3.48]],["name/638",[114,57.893]],["parent/638",[419,3.48]],["name/639",[426,63.002]],["parent/639",[419,3.48]],["name/640",[113,57.893]],["parent/640",[419,3.48]],["name/641",[90,57.893]],["parent/641",[419,3.48]],["name/642",[427,63.002]],["parent/642",[419,3.48]],["name/643",[428,63.002]],["parent/643",[419,3.48]],["name/644",[88,57.893]],["parent/644",[419,3.48]],["name/645",[87,57.893]],["parent/645",[419,3.48]],["name/646",[429,63.002]],["parent/646",[419,3.48]],["name/647",[430,63.002]],["parent/647",[419,3.48]],["name/648",[230,54.529]],["parent/648",[417,2.866]],["name/649",[198,54.529]],["parent/649",[417,2.866]],["name/650",[342,54.529]],["parent/650",[417,2.866]],["name/651",[346,54.529]],["parent/651",[417,2.866]],["name/652",[296,54.529]],["parent/652",[417,2.866]],["name/653",[301,54.529]],["parent/653",[417,2.866]],["name/654",[411,54.529]],["parent/654",[417,2.866]],["name/655",[415,54.529]],["parent/655",[417,2.866]],["name/656",[368,54.529]],["parent/656",[417,2.866]],["name/657",[372,54.529]],["parent/657",[417,2.866]],["name/658",[350,54.529]],["parent/658",[417,2.866]],["name/659",[354,54.529]],["parent/659",[417,2.866]],["name/660",[322,54.529]],["parent/660",[417,2.866]],["name/661",[326,54.529]],["parent/661",[417,2.866]],["name/662",[287,54.529]],["parent/662",[417,2.866]],["name/663",[292,54.529]],["parent/663",[417,2.866]],["name/664",[234,54.529]],["parent/664",[417,2.866]],["name/665",[394,54.529]],["parent/665",[417,2.866]],["name/666",[399,54.529]],["parent/666",[417,2.866]],["name/667",[358,54.529]],["parent/667",[417,2.866]],["name/668",[363,54.529]],["parent/668",[417,2.866]],["name/669",[384,54.529]],["parent/669",[417,2.866]],["name/670",[389,54.529]],["parent/670",[417,2.866]],["name/671",[375,54.529]],["parent/671",[417,2.866]],["name/672",[380,54.529]],["parent/672",[417,2.866]],["name/673",[259,54.529]],["parent/673",[417,2.866]],["name/674",[264,54.529]],["parent/674",[417,2.866]],["name/675",[330,54.529]],["parent/675",[417,2.866]],["name/676",[335,54.529]],["parent/676",[417,2.866]],["name/677",[304,54.529]],["parent/677",[417,2.866]],["name/678",[309,54.529]],["parent/678",[417,2.866]],["name/679",[250,54.529]],["parent/679",[417,2.866]],["name/680",[254,54.529]],["parent/680",[417,2.866]],["name/681",[314,54.529]],["parent/681",[417,2.866]],["name/682",[318,54.529]],["parent/682",[417,2.866]],["name/683",[239,54.529]],["parent/683",[417,2.866]],["name/684",[244,54.529]],["parent/684",[417,2.866]],["name/685",[269,54.529]],["parent/685",[417,2.866]],["name/686",[274,54.529]],["parent/686",[417,2.866]],["name/687",[403,54.529]],["parent/687",[417,2.866]],["name/688",[407,54.529]],["parent/688",[417,2.866]],["name/689",[278,54.529]],["parent/689",[417,2.866]],["name/690",[283,54.529]],["parent/690",[417,2.866]],["name/691",[431,28.879]],["parent/691",[]],["name/692",[432,63.002]],["parent/692",[431,2.866]],["name/693",[433,63.002]],["parent/693",[434,4.42]],["name/694",[435,63.002]],["parent/694",[434,4.42]],["name/695",[16,26.197]],["parent/695",[434,4.42]],["name/696",[436,63.002]],["parent/696",[434,4.42]],["name/697",[437,63.002]],["parent/697",[434,4.42]],["name/698",[438,63.002]],["parent/698",[434,4.42]],["name/699",[439,63.002]],["parent/699",[434,4.42]],["name/700",[440,63.002]],["parent/700",[434,4.42]],["name/701",[441,63.002]],["parent/701",[434,4.42]],["name/702",[230,54.529]],["parent/702",[431,2.866]],["name/703",[198,54.529]],["parent/703",[431,2.866]],["name/704",[342,54.529]],["parent/704",[431,2.866]],["name/705",[346,54.529]],["parent/705",[431,2.866]],["name/706",[296,54.529]],["parent/706",[431,2.866]],["name/707",[301,54.529]],["parent/707",[431,2.866]],["name/708",[411,54.529]],["parent/708",[431,2.866]],["name/709",[415,54.529]],["parent/709",[431,2.866]],["name/710",[368,54.529]],["parent/710",[431,2.866]],["name/711",[372,54.529]],["parent/711",[431,2.866]],["name/712",[350,54.529]],["parent/712",[431,2.866]],["name/713",[354,54.529]],["parent/713",[431,2.866]],["name/714",[322,54.529]],["parent/714",[431,2.866]],["name/715",[326,54.529]],["parent/715",[431,2.866]],["name/716",[287,54.529]],["parent/716",[431,2.866]],["name/717",[292,54.529]],["parent/717",[431,2.866]],["name/718",[234,54.529]],["parent/718",[431,2.866]],["name/719",[394,54.529]],["parent/719",[431,2.866]],["name/720",[399,54.529]],["parent/720",[431,2.866]],["name/721",[358,54.529]],["parent/721",[431,2.866]],["name/722",[363,54.529]],["parent/722",[431,2.866]],["name/723",[384,54.529]],["parent/723",[431,2.866]],["name/724",[389,54.529]],["parent/724",[431,2.866]],["name/725",[375,54.529]],["parent/725",[431,2.866]],["name/726",[380,54.529]],["parent/726",[431,2.866]],["name/727",[259,54.529]],["parent/727",[431,2.866]],["name/728",[264,54.529]],["parent/728",[431,2.866]],["name/729",[330,54.529]],["parent/729",[431,2.866]],["name/730",[335,54.529]],["parent/730",[431,2.866]],["name/731",[304,54.529]],["parent/731",[431,2.866]],["name/732",[309,54.529]],["parent/732",[431,2.866]],["name/733",[250,54.529]],["parent/733",[431,2.866]],["name/734",[254,54.529]],["parent/734",[431,2.866]],["name/735",[314,54.529]],["parent/735",[431,2.866]],["name/736",[318,54.529]],["parent/736",[431,2.866]],["name/737",[239,54.529]],["parent/737",[431,2.866]],["name/738",[244,54.529]],["parent/738",[431,2.866]],["name/739",[269,54.529]],["parent/739",[431,2.866]],["name/740",[274,54.529]],["parent/740",[431,2.866]],["name/741",[403,54.529]],["parent/741",[431,2.866]],["name/742",[407,54.529]],["parent/742",[431,2.866]],["name/743",[278,54.529]],["parent/743",[431,2.866]],["name/744",[283,54.529]],["parent/744",[431,2.866]],["name/745",[442,57.893]],["parent/745",[]],["name/746",[443,63.002]],["parent/746",[442,5.745]],["name/747",[9,54.529]],["parent/747",[444,4.963]],["name/748",[103,57.893]],["parent/748",[444,4.963]],["name/749",[8,52.016]],["parent/749",[444,4.963]],["name/750",[179,57.893]],["parent/750",[444,4.963]],["name/751",[16,26.197]],["parent/751",[444,4.963]],["name/752",[445,57.893]],["parent/752",[]],["name/753",[446,63.002]],["parent/753",[445,5.745]],["name/754",[447,63.002]],["parent/754",[448,5.162]],["name/755",[449,63.002]],["parent/755",[448,5.162]],["name/756",[450,63.002]],["parent/756",[448,5.162]],["name/757",[451,63.002]],["parent/757",[448,5.162]],["name/758",[452,57.893]],["parent/758",[]],["name/759",[453,57.893]],["parent/759",[452,5.745]],["name/760",[453,57.893]],["parent/760",[454,6.252]],["name/761",[455,63.002]],["parent/761",[456,4.42]],["name/762",[16,26.197]],["parent/762",[457,4.001]],["name/763",[127,28.037]],["parent/763",[457,4.001]],["name/764",[458,63.002]],["parent/764",[457,4.001]],["name/765",[459,63.002]],["parent/765",[457,4.001]],["name/766",[460,63.002]],["parent/766",[457,4.001]],["name/767",[461,63.002]],["parent/767",[457,4.001]],["name/768",[462,63.002]],["parent/768",[457,4.001]],["name/769",[463,63.002]],["parent/769",[457,4.001]],["name/770",[464,63.002]],["parent/770",[457,4.001]],["name/771",[151,57.893]],["parent/771",[457,4.001]],["name/772",[154,57.893]],["parent/772",[457,4.001]],["name/773",[160,57.893]],["parent/773",[457,4.001]],["name/774",[465,63.002]],["parent/774",[456,4.42]],["name/775",[312,35.07]],["parent/775",[466,6.252]],["name/776",[467,63.002]],["parent/776",[456,4.42]],["name/777",[16,26.197]],["parent/777",[468,4.963]],["name/778",[312,35.07]],["parent/778",[468,4.963]],["name/779",[127,28.037]],["parent/779",[468,4.963]],["name/780",[128,28.241]],["parent/780",[468,4.963]],["name/781",[129,28.241]],["parent/781",[468,4.963]],["name/782",[469,63.002]],["parent/782",[456,4.42]],["name/783",[312,35.07]],["parent/783",[470,5.745]],["name/784",[471,48.338]],["parent/784",[470,5.745]],["name/785",[472,63.002]],["parent/785",[456,4.42]],["name/786",[16,26.197]],["parent/786",[473,4.797]],["name/787",[312,35.07]],["parent/787",[473,4.797]],["name/788",[471,48.338]],["parent/788",[473,4.797]],["name/789",[127,28.037]],["parent/789",[473,4.797]],["name/790",[128,28.241]],["parent/790",[473,4.797]],["name/791",[129,28.241]],["parent/791",[473,4.797]],["name/792",[474,63.002]],["parent/792",[456,4.42]],["name/793",[312,35.07]],["parent/793",[475,5.745]],["name/794",[471,48.338]],["parent/794",[475,5.745]],["name/795",[476,63.002]],["parent/795",[456,4.42]],["name/796",[16,26.197]],["parent/796",[477,4.797]],["name/797",[312,35.07]],["parent/797",[477,4.797]],["name/798",[471,48.338]],["parent/798",[477,4.797]],["name/799",[127,28.037]],["parent/799",[477,4.797]],["name/800",[128,28.241]],["parent/800",[477,4.797]],["name/801",[129,28.241]],["parent/801",[477,4.797]],["name/802",[478,63.002]],["parent/802",[456,4.42]],["name/803",[312,35.07]],["parent/803",[479,5.745]],["name/804",[471,48.338]],["parent/804",[479,5.745]],["name/805",[480,63.002]],["parent/805",[456,4.42]],["name/806",[16,26.197]],["parent/806",[481,4.797]],["name/807",[312,35.07]],["parent/807",[481,4.797]],["name/808",[471,48.338]],["parent/808",[481,4.797]],["name/809",[127,28.037]],["parent/809",[481,4.797]],["name/810",[128,28.241]],["parent/810",[481,4.797]],["name/811",[129,28.241]],["parent/811",[481,4.797]],["name/812",[482,63.002]],["parent/812",[457,4.001]],["name/813",[47,44.543]],["parent/813",[483,6.252]],["name/814",[484,63.002]],["parent/814",[457,4.001]],["name/815",[47,44.543]],["parent/815",[485,6.252]]],"invertedIndex":[["__type",{"_index":47,"name":{"50":{},"57":{},"61":{},"101":{},"155":{},"186":{},"213":{},"813":{},"815":{}},"parent":{}}],["addlistener",{"_index":150,"name":{"164":{}},"parent":{}}],["addpeer",{"_index":141,"name":{"154":{},"202":{}},"parent":{}}],["address",{"_index":64,"name":{"66":{}},"parent":{}}],["addresses",{"_index":74,"name":{"75":{},"138":{},"143":{}},"parent":{}}],["addsecret",{"_index":86,"name":{"88":{}},"parent":{}}],["adressstringlist",{"_index":78,"name":{"80":{}},"parent":{}}],["agent",{"_index":196,"name":{"216":{},"217":{}},"parent":{}}],["agentmessage",{"_index":230,"name":{"247":{},"648":{},"702":{}},"parent":{}}],["agentmessagetype",{"_index":198,"name":{"218":{},"649":{},"703":{}},"parent":{}}],["allnodepaths",{"_index":433,"name":{"693":{}},"parent":{}}],["body",{"_index":471,"name":{"784":{},"788":{},"794":{},"798":{},"804":{},"808":{}},"parent":{}}],["cacert",{"_index":15,"name":{"13":{},"64":{}},"parent":{}}],["cacertpath",{"_index":54,"name":{"55":{}},"parent":{}}],["cert",{"_index":14,"name":{"12":{},"63":{}},"parent":{}}],["clonevault",{"_index":111,"name":{"114":{}},"parent":{}}],["common_name",{"_index":449,"name":{"755":{}},"parent":{}}],["connect",{"_index":76,"name":{"78":{}},"parent":{}}],["connectedaddr",{"_index":75,"name":{"76":{},"139":{},"144":{}},"parent":{}}],["connectlocalpeerinfo",{"_index":184,"name":{"201":{}},"parent":{}}],["connecttoagent",{"_index":437,"name":{"697":{}},"parent":{}}],["connecttopeer",{"_index":189,"name":{"207":{}},"parent":{}}],["constructor",{"_index":16,"name":{"14":{},"69":{},"77":{},"85":{},"111":{},"128":{},"141":{},"162":{},"199":{},"248":{},"259":{},"267":{},"275":{},"286":{},"297":{},"305":{},"313":{},"323":{},"333":{},"342":{},"351":{},"360":{},"369":{},"379":{},"389":{},"396":{},"403":{},"411":{},"419":{},"427":{},"435":{},"443":{},"451":{},"462":{},"473":{},"482":{},"491":{},"500":{},"509":{},"519":{},"529":{},"536":{},"543":{},"551":{},"560":{},"569":{},"578":{},"590":{},"601":{},"609":{},"617":{},"624":{},"695":{},"751":{},"762":{},"777":{},"786":{},"796":{},"806":{}},"parent":{}}],["create",{"_index":127,"name":{"133":{},"145":{},"253":{},"261":{},"269":{},"277":{},"291":{},"299":{},"307":{},"315":{},"327":{},"335":{},"345":{},"353":{},"363":{},"371":{},"383":{},"391":{},"397":{},"405":{},"413":{},"421":{},"429":{},"437":{},"445":{},"453":{},"467":{},"475":{},"485":{},"493":{},"503":{},"511":{},"523":{},"531":{},"537":{},"545":{},"553":{},"563":{},"571":{},"581":{},"595":{},"603":{},"611":{},"619":{},"763":{},"779":{},"789":{},"799":{},"809":{}},"parent":{}}],["create_secret",{"_index":214,"name":{"232":{}},"parent":{}}],["createsecret",{"_index":427,"name":{"642":{}},"parent":{}}],["createsecretrequestmessage",{"_index":342,"name":{"461":{},"650":{},"704":{}},"parent":{}}],["createsecretresponsemessage",{"_index":346,"name":{"472":{},"651":{},"705":{}},"parent":{}}],["createvault",{"_index":110,"name":{"113":{}},"parent":{}}],["createx509certificate",{"_index":451,"name":{"757":{}},"parent":{}}],["daemon_script_path",{"_index":440,"name":{"700":{}},"parent":{}}],["decode",{"_index":129,"name":{"135":{},"147":{},"255":{},"263":{},"271":{},"279":{},"293":{},"301":{},"309":{},"317":{},"329":{},"337":{},"347":{},"355":{},"365":{},"373":{},"385":{},"393":{},"399":{},"407":{},"415":{},"423":{},"431":{},"439":{},"447":{},"455":{},"469":{},"477":{},"487":{},"495":{},"505":{},"513":{},"525":{},"533":{},"539":{},"547":{},"555":{},"565":{},"573":{},"583":{},"597":{},"605":{},"613":{},"621":{},"781":{},"791":{},"801":{},"811":{}},"parent":{}}],["decrypt_file",{"_index":221,"name":{"239":{}},"parent":{}}],["decryptdata",{"_index":6,"name":{"5":{},"42":{}},"parent":{}}],["decryptedpath",{"_index":299,"name":{"387":{},"390":{}},"parent":{}}],["decryptfile",{"_index":41,"name":{"43":{},"637":{}},"parent":{}}],["decryptfilerequestmessage",{"_index":296,"name":{"378":{},"652":{},"706":{}},"parent":{}}],["decryptfileresponsemessage",{"_index":301,"name":{"388":{},"653":{},"707":{}},"parent":{}}],["defaultmaxlisteners",{"_index":165,"name":{"180":{}},"parent":{}}],["delete_key",{"_index":219,"name":{"237":{}},"parent":{}}],["deletekey",{"_index":30,"name":{"28":{},"630":{}},"parent":{}}],["deletekeyrequestmessage",{"_index":411,"name":{"608":{},"654":{},"708":{}},"parent":{}}],["deletekeyresponsemessage",{"_index":415,"name":{"616":{},"655":{},"709":{}},"parent":{}}],["derive_key",{"_index":207,"name":{"225":{}},"parent":{}}],["derivekey",{"_index":424,"name":{"629":{}},"parent":{}}],["derivekeyrequestmessage",{"_index":368,"name":{"518":{},"656":{},"710":{}},"parent":{}}],["derivekeyresponsemessage",{"_index":372,"name":{"528":{},"657":{},"711":{}},"parent":{}}],["destroy_secret",{"_index":215,"name":{"233":{}},"parent":{}}],["destroy_vault",{"_index":212,"name":{"230":{}},"parent":{}}],["destroysecret",{"_index":428,"name":{"643":{}},"parent":{}}],["destroysecretrequestmessage",{"_index":350,"name":{"481":{},"658":{},"712":{}},"parent":{}}],["destroysecretresponsemessage",{"_index":354,"name":{"490":{},"659":{},"713":{}},"parent":{}}],["destroyvault",{"_index":113,"name":{"116":{},"640":{}},"parent":{}}],["destroyvaultrequestmessage",{"_index":322,"name":{"426":{},"660":{},"714":{}},"parent":{}}],["destroyvaultresponsemessage",{"_index":326,"name":{"434":{},"661":{},"715":{}},"parent":{}}],["disconnect",{"_index":77,"name":{"79":{}},"parent":{}}],["email",{"_index":248,"name":{"282":{},"288":{}},"parent":{}}],["emit",{"_index":160,"name":{"174":{},"773":{}},"parent":{}}],["encode",{"_index":128,"name":{"134":{},"146":{},"254":{},"262":{},"270":{},"278":{},"292":{},"300":{},"308":{},"316":{},"328":{},"336":{},"346":{},"354":{},"364":{},"372":{},"384":{},"392":{},"398":{},"406":{},"414":{},"422":{},"430":{},"438":{},"446":{},"454":{},"468":{},"476":{},"486":{},"494":{},"504":{},"512":{},"524":{},"532":{},"538":{},"546":{},"554":{},"564":{},"572":{},"582":{},"596":{},"604":{},"612":{},"620":{},"780":{},"790":{},"800":{},"810":{}},"parent":{}}],["encrypt_file",{"_index":220,"name":{"238":{}},"parent":{}}],["encryptdata",{"_index":5,"name":{"4":{},"40":{}},"parent":{}}],["encryptedfs",{"_index":84,"name":{"86":{}},"parent":{}}],["encryptedlocalpubkey",{"_index":170,"name":{"187":{}},"parent":{}}],["encryptedpath",{"_index":290,"name":{"367":{},"370":{}},"parent":{}}],["encryptedpeerpubkey",{"_index":172,"name":{"188":{}},"parent":{}}],["encryptedrandommessage",{"_index":174,"name":{"190":{}},"parent":{}}],["encryptfile",{"_index":40,"name":{"41":{},"636":{}},"parent":{}}],["encryptfilerequestmessage",{"_index":287,"name":{"359":{},"662":{},"716":{}},"parent":{}}],["encryptfileresponsemessage",{"_index":292,"name":{"368":{},"663":{},"717":{}},"parent":{}}],["end",{"_index":464,"name":{"770":{}},"parent":{}}],["error",{"_index":200,"name":{"219":{},"257":{},"260":{}},"parent":{}}],["errormessage",{"_index":234,"name":{"258":{},"664":{},"718":{}},"parent":{}}],["eventnames",{"_index":164,"name":{"178":{}},"parent":{}}],["exportkey",{"_index":35,"name":{"33":{}},"parent":{}}],["exportkeysync",{"_index":34,"name":{"32":{}},"parent":{}}],["exportprivatekey",{"_index":27,"name":{"25":{}},"parent":{}}],["exportpublickey",{"_index":28,"name":{"26":{}},"parent":{}}],["filepath",{"_index":267,"name":{"319":{},"324":{},"339":{},"343":{},"357":{},"361":{},"375":{},"380":{}},"parent":{}}],["filesystem",{"_index":105,"name":{"106":{}},"parent":{}}],["findpubkey",{"_index":187,"name":{"205":{}},"parent":{}}],["findsocialuser",{"_index":188,"name":{"206":{}},"parent":{}}],["finduser",{"_index":178,"name":{"194":{},"211":{}},"parent":{}}],["firstpromisefulfilled",{"_index":138,"name":{"151":{}},"parent":{}}],["fromaddressinfo",{"_index":69,"name":{"71":{}},"parent":{}}],["generatekey",{"_index":29,"name":{"27":{}},"parent":{}}],["generatekeypair",{"_index":18,"name":{"16":{}},"parent":{}}],["get_key",{"_index":218,"name":{"236":{}},"parent":{}}],["get_primary_keypair",{"_index":222,"name":{"240":{}},"parent":{}}],["get_secret",{"_index":216,"name":{"234":{}},"parent":{}}],["getagentstatus",{"_index":429,"name":{"646":{}},"parent":{}}],["getidentityfromprivatekey",{"_index":37,"name":{"35":{}},"parent":{}}],["getidentityfrompublickey",{"_index":36,"name":{"34":{}},"parent":{}}],["getkey",{"_index":43,"name":{"46":{},"632":{}},"parent":{}}],["getkeypair",{"_index":19,"name":{"17":{}},"parent":{}}],["getkeyrequestmessage",{"_index":384,"name":{"550":{},"669":{},"723":{}},"parent":{}}],["getkeyresponsemessage",{"_index":389,"name":{"559":{},"670":{},"724":{}},"parent":{}}],["getlocalpeerinfo",{"_index":183,"name":{"200":{}},"parent":{}}],["getmaxlisteners",{"_index":157,"name":{"171":{}},"parent":{}}],["getpeer",{"_index":185,"name":{"203":{}},"parent":{}}],["getprimarykeypair",{"_index":425,"name":{"633":{}},"parent":{}}],["getprimarykeypairrequestmessage",{"_index":394,"name":{"568":{},"665":{},"719":{}},"parent":{}}],["getprimarykeypairresponsemessage",{"_index":399,"name":{"577":{},"666":{},"720":{}},"parent":{}}],["getprivatekey",{"_index":22,"name":{"20":{}},"parent":{}}],["getpublickey",{"_index":21,"name":{"19":{}},"parent":{}}],["getsecret",{"_index":88,"name":{"90":{},"644":{}},"parent":{}}],["getsecretrequestmessage",{"_index":358,"name":{"499":{},"667":{},"721":{}},"parent":{}}],["getsecretresponsemessage",{"_index":363,"name":{"508":{},"668":{},"722":{}},"parent":{}}],["getvault",{"_index":109,"name":{"112":{}},"parent":{}}],["getvaulthistory",{"_index":97,"name":{"99":{}},"parent":{}}],["git",{"_index":453,"name":{"759":{},"760":{}},"parent":{}}],["gitserver",{"_index":455,"name":{"761":{}},"parent":{}}],["handshakemessage",{"_index":125,"name":{"127":{},"181":{}},"parent":{}}],["haskey",{"_index":44,"name":{"47":{}},"parent":{}}],["haspeer",{"_index":186,"name":{"204":{}},"parent":{}}],["haspublickey",{"_index":20,"name":{"18":{}},"parent":{}}],["iagentmessage",{"_index":224,"name":{"242":{}},"parent":{}}],["icreatesecretrequestmessage",{"_index":337,"name":{"456":{}},"parent":{}}],["icreatesecretresponsemessage",{"_index":344,"name":{"470":{}},"parent":{}}],["idecryptfilerequestmessage",{"_index":294,"name":{"374":{}},"parent":{}}],["idecryptfileresponsemessage",{"_index":298,"name":{"386":{}},"parent":{}}],["ideletekeyrequestmessage",{"_index":409,"name":{"606":{}},"parent":{}}],["ideletekeyresponsemessage",{"_index":413,"name":{"614":{}},"parent":{}}],["identityloaded",{"_index":17,"name":{"15":{}},"parent":{}}],["iderivekeyrequestmessage",{"_index":365,"name":{"514":{}},"parent":{}}],["iderivekeyresponsemessage",{"_index":370,"name":{"526":{}},"parent":{}}],["idestroysecretrequestmessage",{"_index":348,"name":{"478":{}},"parent":{}}],["idestroysecretresponsemessage",{"_index":352,"name":{"488":{}},"parent":{}}],["idestroyvaultrequestmessage",{"_index":320,"name":{"424":{}},"parent":{}}],["idestroyvaultresponsemessage",{"_index":324,"name":{"432":{}},"parent":{}}],["iencryptfilerequestmessage",{"_index":285,"name":{"356":{}},"parent":{}}],["iencryptfileresponsemessage",{"_index":289,"name":{"366":{}},"parent":{}}],["ierrormessage",{"_index":232,"name":{"256":{}},"parent":{}}],["igetkeyrequestmessage",{"_index":382,"name":{"548":{}},"parent":{}}],["igetkeyresponsemessage",{"_index":386,"name":{"556":{}},"parent":{}}],["igetprimarykeypairrequestmessage",{"_index":391,"name":{"566":{}},"parent":{}}],["igetprimarykeypairresponsemessage",{"_index":396,"name":{"574":{}},"parent":{}}],["igetsecretrequestmessage",{"_index":356,"name":{"496":{}},"parent":{}}],["igetsecretresponsemessage",{"_index":360,"name":{"506":{}},"parent":{}}],["ihandshakemessage",{"_index":118,"name":{"122":{}},"parent":{}}],["iinforeply",{"_index":469,"name":{"782":{}},"parent":{}}],["iinforequest",{"_index":465,"name":{"774":{}},"parent":{}}],["ilistkeysrequestmessage",{"_index":374,"name":{"534":{}},"parent":{}}],["ilistkeysresponsemessage",{"_index":377,"name":{"540":{}},"parent":{}}],["ilistnodesrequestmessage",{"_index":256,"name":{"302":{}},"parent":{}}],["ilistnodesresponsemessage",{"_index":261,"name":{"310":{}},"parent":{}}],["ilistsecretsrequestmessage",{"_index":328,"name":{"440":{}},"parent":{}}],["ilistsecretsresponsemessage",{"_index":332,"name":{"448":{}},"parent":{}}],["ilistvaultsrequestmessage",{"_index":303,"name":{"394":{}},"parent":{}}],["ilistvaultsresponsemessage",{"_index":306,"name":{"400":{}},"parent":{}}],["importkey",{"_index":33,"name":{"31":{}},"parent":{}}],["importkeysync",{"_index":32,"name":{"30":{}},"parent":{}}],["includeprivatekey",{"_index":392,"name":{"567":{},"570":{}},"parent":{}}],["inewnoderequestmessage",{"_index":246,"name":{"280":{}},"parent":{}}],["inewnoderesponsemessage",{"_index":252,"name":{"294":{}},"parent":{}}],["inewvaultrequestmessage",{"_index":311,"name":{"408":{}},"parent":{}}],["inewvaultresponsemessage",{"_index":316,"name":{"416":{}},"parent":{}}],["inforeply",{"_index":472,"name":{"785":{}},"parent":{}}],["inforequest",{"_index":467,"name":{"776":{}},"parent":{}}],["interval",{"_index":146,"name":{"159":{}},"parent":{}}],["invertpromise",{"_index":137,"name":{"150":{}},"parent":{}}],["ip",{"_index":65,"name":{"67":{}},"parent":{}}],["ipackreply",{"_index":478,"name":{"802":{}},"parent":{}}],["ipackrequest",{"_index":474,"name":{"792":{}},"parent":{}}],["ipeerinfomessage",{"_index":130,"name":{"136":{}},"parent":{}}],["iregisternoderequestmessage",{"_index":236,"name":{"264":{}},"parent":{}}],["iregisternoderesponsemessage",{"_index":241,"name":{"272":{}},"parent":{}}],["isignfilerequestmessage",{"_index":266,"name":{"318":{}},"parent":{}}],["isignfileresponsemessage",{"_index":271,"name":{"330":{}},"parent":{}}],["isresponse",{"_index":227,"name":{"244":{},"250":{}},"parent":{}}],["iupdatesecretrequestmessage",{"_index":401,"name":{"584":{}},"parent":{}}],["iupdatesecretresponsemessage",{"_index":405,"name":{"598":{}},"parent":{}}],["iverifyfilerequestmessage",{"_index":276,"name":{"338":{}},"parent":{}}],["iverifyfileresponsemessage",{"_index":280,"name":{"348":{}},"parent":{}}],["key",{"_index":12,"name":{"11":{},"62":{}},"parent":{}}],["keybasediscovery",{"_index":190,"name":{"209":{}},"parent":{}}],["keycontent",{"_index":388,"name":{"558":{},"562":{}},"parent":{}}],["keymanager",{"_index":8,"name":{"8":{},"107":{},"157":{},"749":{}},"parent":{}}],["keymanagermetadata",{"_index":46,"name":{"49":{}},"parent":{}}],["keymanagerworker",{"_index":1,"name":{"1":{},"6":{}},"parent":{}}],["keyname",{"_index":367,"name":{"516":{},"521":{},"549":{},"552":{},"557":{},"561":{},"607":{},"610":{}},"parent":{}}],["keynames",{"_index":378,"name":{"541":{},"544":{}},"parent":{}}],["keypair",{"_index":55,"name":{"56":{}},"parent":{}}],["list_keys",{"_index":217,"name":{"235":{}},"parent":{}}],["list_nodes",{"_index":206,"name":{"224":{}},"parent":{}}],["list_secrets",{"_index":213,"name":{"231":{}},"parent":{}}],["list_vaults",{"_index":210,"name":{"228":{}},"parent":{}}],["listenercount",{"_index":161,"name":{"175":{},"179":{}},"parent":{}}],["listeners",{"_index":158,"name":{"172":{}},"parent":{}}],["listkeys",{"_index":31,"name":{"29":{},"631":{}},"parent":{}}],["listkeysrequestmessage",{"_index":375,"name":{"535":{},"671":{},"725":{}},"parent":{}}],["listkeysresponsemessage",{"_index":380,"name":{"542":{},"672":{},"726":{}},"parent":{}}],["listnodes",{"_index":423,"name":{"628":{}},"parent":{}}],["listnodesrequestmessage",{"_index":259,"name":{"304":{},"673":{},"727":{}},"parent":{}}],["listnodesresponsemessage",{"_index":264,"name":{"312":{},"674":{},"728":{}},"parent":{}}],["listsecrets",{"_index":90,"name":{"92":{},"641":{}},"parent":{}}],["listsecretsrequestmessage",{"_index":330,"name":{"442":{},"675":{},"729":{}},"parent":{}}],["listsecretsresponsemessage",{"_index":335,"name":{"450":{},"676":{},"730":{}},"parent":{}}],["listvaults",{"_index":114,"name":{"117":{},"638":{}},"parent":{}}],["listvaultsrequestmessage",{"_index":304,"name":{"395":{},"677":{},"731":{}},"parent":{}}],["listvaultsresponsemessage",{"_index":309,"name":{"402":{},"678":{},"732":{}},"parent":{}}],["loadkeypair",{"_index":23,"name":{"21":{}},"parent":{}}],["loadmetadata",{"_index":45,"name":{"48":{},"118":{},"208":{}},"parent":{}}],["loadpkiinfo",{"_index":42,"name":{"45":{}},"parent":{}}],["loadprivatekey",{"_index":24,"name":{"22":{}},"parent":{}}],["loadpublickey",{"_index":25,"name":{"23":{}},"parent":{}}],["localpeerinfo",{"_index":144,"name":{"156":{},"214":{}},"parent":{}}],["logpath",{"_index":439,"name":{"699":{}},"parent":{}}],["message",{"_index":123,"name":{"125":{},"131":{}},"parent":{}}],["metadatapath",{"_index":106,"name":{"108":{}},"parent":{}}],["multicastbroadcaster",{"_index":140,"name":{"153":{},"196":{}},"parent":{}}],["n_bits",{"_index":447,"name":{"754":{}},"parent":{}}],["name",{"_index":81,"name":{"83":{},"193":{},"210":{},"281":{},"287":{}},"parent":{}}],["nbits",{"_index":249,"name":{"284":{},"290":{}},"parent":{}}],["new_node",{"_index":205,"name":{"223":{}},"parent":{}}],["new_vault",{"_index":211,"name":{"229":{}},"parent":{}}],["newnode",{"_index":422,"name":{"627":{}},"parent":{}}],["newnoderequestmessage",{"_index":250,"name":{"285":{},"679":{},"733":{}},"parent":{}}],["newnoderesponsemessage",{"_index":254,"name":{"296":{},"680":{},"734":{}},"parent":{}}],["newvault",{"_index":426,"name":{"639":{}},"parent":{}}],["newvaultrequestmessage",{"_index":314,"name":{"410":{},"681":{},"735":{}},"parent":{}}],["newvaultresponsemessage",{"_index":318,"name":{"418":{},"682":{},"736":{}},"parent":{}}],["nodepath",{"_index":228,"name":{"245":{},"251":{}},"parent":{}}],["nodes",{"_index":262,"name":{"311":{},"314":{}},"parent":{}}],["off",{"_index":154,"name":{"168":{},"772":{}},"parent":{}}],["on",{"_index":151,"name":{"165":{},"771":{}},"parent":{}}],["once",{"_index":152,"name":{"166":{}},"parent":{}}],["organization_name",{"_index":450,"name":{"756":{}},"parent":{}}],["packreply",{"_index":480,"name":{"805":{}},"parent":{}}],["packrequest",{"_index":476,"name":{"795":{}},"parent":{}}],["parse",{"_index":68,"name":{"70":{}},"parent":{}}],["passphrase",{"_index":237,"name":{"265":{},"268":{},"283":{},"289":{},"321":{},"326":{},"377":{},"382":{},"517":{},"522":{}},"parent":{}}],["peer",{"_index":116,"name":{"120":{},"121":{}},"parent":{}}],["peercanaccess",{"_index":95,"name":{"97":{}},"parent":{}}],["peerinfo",{"_index":71,"name":{"73":{}},"parent":{}}],["peerinfomessage",{"_index":133,"name":{"140":{},"182":{}},"parent":{}}],["peermanager",{"_index":179,"name":{"195":{},"750":{}},"parent":{}}],["peermanagermetadata",{"_index":192,"name":{"212":{}},"parent":{}}],["peermessage",{"_index":168,"name":{"185":{}},"parent":{}}],["peerpubkeymessages",{"_index":148,"name":{"161":{}},"parent":{}}],["pkicertpath",{"_index":53,"name":{"54":{}},"parent":{}}],["pkiinfo",{"_index":11,"name":{"10":{},"44":{}},"parent":{}}],["pkikeypath",{"_index":52,"name":{"53":{}},"parent":{}}],["pkinfo",{"_index":60,"name":{"60":{}},"parent":{}}],["polykey",{"_index":443,"name":{"746":{}},"parent":{}}],["polykeyagent",{"_index":432,"name":{"692":{}},"parent":{}}],["polykeyclient",{"_index":418,"name":{"623":{}},"parent":{}}],["polykeypath",{"_index":9,"name":{"9":{},"105":{},"747":{}},"parent":{}}],["port",{"_index":67,"name":{"68":{}},"parent":{}}],["prependlistener",{"_index":162,"name":{"176":{}},"parent":{}}],["prependoncelistener",{"_index":163,"name":{"177":{}},"parent":{}}],["private",{"_index":57,"name":{"58":{}},"parent":{}}],["privatekey",{"_index":398,"name":{"576":{},"580":{}},"parent":{}}],["privatekeypath",{"_index":49,"name":{"51":{},"320":{},"325":{},"376":{},"381":{}},"parent":{}}],["proto/js/agent.d",{"_index":195,"name":{"215":{}},"parent":{"216":{}}}],["proto/js/agent.d\".agent",{"_index":197,"name":{},"parent":{"217":{}}}],["proto/js/agent.d\".agent.agent",{"_index":199,"name":{},"parent":{"218":{},"242":{},"247":{},"256":{},"258":{},"264":{},"266":{},"272":{},"274":{},"280":{},"285":{},"294":{},"296":{},"302":{},"304":{},"310":{},"312":{},"318":{},"322":{},"330":{},"332":{},"338":{},"341":{},"348":{},"350":{},"356":{},"359":{},"366":{},"368":{},"374":{},"378":{},"386":{},"388":{},"394":{},"395":{},"400":{},"402":{},"408":{},"410":{},"416":{},"418":{},"424":{},"426":{},"432":{},"434":{},"440":{},"442":{},"448":{},"450":{},"456":{},"461":{},"470":{},"472":{},"478":{},"481":{},"488":{},"490":{},"496":{},"499":{},"506":{},"508":{},"514":{},"518":{},"526":{},"528":{},"534":{},"535":{},"540":{},"542":{},"548":{},"550":{},"556":{},"559":{},"566":{},"568":{},"574":{},"577":{},"584":{},"589":{},"598":{},"600":{},"606":{},"608":{},"614":{},"616":{}}}],["proto/js/agent.d\".agent.agent.agentmessage",{"_index":231,"name":{},"parent":{"248":{},"249":{},"250":{},"251":{},"252":{},"253":{},"254":{},"255":{}}}],["proto/js/agent.d\".agent.agent.agentmessagetype",{"_index":201,"name":{},"parent":{"219":{},"220":{},"221":{},"222":{},"223":{},"224":{},"225":{},"226":{},"227":{},"228":{},"229":{},"230":{},"231":{},"232":{},"233":{},"234":{},"235":{},"236":{},"237":{},"238":{},"239":{},"240":{},"241":{}}}],["proto/js/agent.d\".agent.agent.createsecretrequestmessage",{"_index":343,"name":{},"parent":{"462":{},"463":{},"464":{},"465":{},"466":{},"467":{},"468":{},"469":{}}}],["proto/js/agent.d\".agent.agent.createsecretresponsemessage",{"_index":347,"name":{},"parent":{"473":{},"474":{},"475":{},"476":{},"477":{}}}],["proto/js/agent.d\".agent.agent.decryptfilerequestmessage",{"_index":297,"name":{},"parent":{"379":{},"380":{},"381":{},"382":{},"383":{},"384":{},"385":{}}}],["proto/js/agent.d\".agent.agent.decryptfileresponsemessage",{"_index":302,"name":{},"parent":{"389":{},"390":{},"391":{},"392":{},"393":{}}}],["proto/js/agent.d\".agent.agent.deletekeyrequestmessage",{"_index":412,"name":{},"parent":{"609":{},"610":{},"611":{},"612":{},"613":{}}}],["proto/js/agent.d\".agent.agent.deletekeyresponsemessage",{"_index":416,"name":{},"parent":{"617":{},"618":{},"619":{},"620":{},"621":{}}}],["proto/js/agent.d\".agent.agent.derivekeyrequestmessage",{"_index":369,"name":{},"parent":{"519":{},"520":{},"521":{},"522":{},"523":{},"524":{},"525":{}}}],["proto/js/agent.d\".agent.agent.derivekeyresponsemessage",{"_index":373,"name":{},"parent":{"529":{},"530":{},"531":{},"532":{},"533":{}}}],["proto/js/agent.d\".agent.agent.destroysecretrequestmessage",{"_index":351,"name":{},"parent":{"482":{},"483":{},"484":{},"485":{},"486":{},"487":{}}}],["proto/js/agent.d\".agent.agent.destroysecretresponsemessage",{"_index":355,"name":{},"parent":{"491":{},"492":{},"493":{},"494":{},"495":{}}}],["proto/js/agent.d\".agent.agent.destroyvaultrequestmessage",{"_index":323,"name":{},"parent":{"427":{},"428":{},"429":{},"430":{},"431":{}}}],["proto/js/agent.d\".agent.agent.destroyvaultresponsemessage",{"_index":327,"name":{},"parent":{"435":{},"436":{},"437":{},"438":{},"439":{}}}],["proto/js/agent.d\".agent.agent.encryptfilerequestmessage",{"_index":288,"name":{},"parent":{"360":{},"361":{},"362":{},"363":{},"364":{},"365":{}}}],["proto/js/agent.d\".agent.agent.encryptfileresponsemessage",{"_index":293,"name":{},"parent":{"369":{},"370":{},"371":{},"372":{},"373":{}}}],["proto/js/agent.d\".agent.agent.errormessage",{"_index":235,"name":{},"parent":{"259":{},"260":{},"261":{},"262":{},"263":{}}}],["proto/js/agent.d\".agent.agent.getkeyrequestmessage",{"_index":385,"name":{},"parent":{"551":{},"552":{},"553":{},"554":{},"555":{}}}],["proto/js/agent.d\".agent.agent.getkeyresponsemessage",{"_index":390,"name":{},"parent":{"560":{},"561":{},"562":{},"563":{},"564":{},"565":{}}}],["proto/js/agent.d\".agent.agent.getprimarykeypairrequestmessage",{"_index":395,"name":{},"parent":{"569":{},"570":{},"571":{},"572":{},"573":{}}}],["proto/js/agent.d\".agent.agent.getprimarykeypairresponsemessage",{"_index":400,"name":{},"parent":{"578":{},"579":{},"580":{},"581":{},"582":{},"583":{}}}],["proto/js/agent.d\".agent.agent.getsecretrequestmessage",{"_index":359,"name":{},"parent":{"500":{},"501":{},"502":{},"503":{},"504":{},"505":{}}}],["proto/js/agent.d\".agent.agent.getsecretresponsemessage",{"_index":364,"name":{},"parent":{"509":{},"510":{},"511":{},"512":{},"513":{}}}],["proto/js/agent.d\".agent.agent.iagentmessage",{"_index":226,"name":{},"parent":{"243":{},"244":{},"245":{},"246":{}}}],["proto/js/agent.d\".agent.agent.icreatesecretrequestmessage",{"_index":338,"name":{},"parent":{"457":{},"458":{},"459":{},"460":{}}}],["proto/js/agent.d\".agent.agent.icreatesecretresponsemessage",{"_index":345,"name":{},"parent":{"471":{}}}],["proto/js/agent.d\".agent.agent.idecryptfilerequestmessage",{"_index":295,"name":{},"parent":{"375":{},"376":{},"377":{}}}],["proto/js/agent.d\".agent.agent.idecryptfileresponsemessage",{"_index":300,"name":{},"parent":{"387":{}}}],["proto/js/agent.d\".agent.agent.ideletekeyrequestmessage",{"_index":410,"name":{},"parent":{"607":{}}}],["proto/js/agent.d\".agent.agent.ideletekeyresponsemessage",{"_index":414,"name":{},"parent":{"615":{}}}],["proto/js/agent.d\".agent.agent.iderivekeyrequestmessage",{"_index":366,"name":{},"parent":{"515":{},"516":{},"517":{}}}],["proto/js/agent.d\".agent.agent.iderivekeyresponsemessage",{"_index":371,"name":{},"parent":{"527":{}}}],["proto/js/agent.d\".agent.agent.idestroysecretrequestmessage",{"_index":349,"name":{},"parent":{"479":{},"480":{}}}],["proto/js/agent.d\".agent.agent.idestroysecretresponsemessage",{"_index":353,"name":{},"parent":{"489":{}}}],["proto/js/agent.d\".agent.agent.idestroyvaultrequestmessage",{"_index":321,"name":{},"parent":{"425":{}}}],["proto/js/agent.d\".agent.agent.idestroyvaultresponsemessage",{"_index":325,"name":{},"parent":{"433":{}}}],["proto/js/agent.d\".agent.agent.iencryptfilerequestmessage",{"_index":286,"name":{},"parent":{"357":{},"358":{}}}],["proto/js/agent.d\".agent.agent.iencryptfileresponsemessage",{"_index":291,"name":{},"parent":{"367":{}}}],["proto/js/agent.d\".agent.agent.ierrormessage",{"_index":233,"name":{},"parent":{"257":{}}}],["proto/js/agent.d\".agent.agent.igetkeyrequestmessage",{"_index":383,"name":{},"parent":{"549":{}}}],["proto/js/agent.d\".agent.agent.igetkeyresponsemessage",{"_index":387,"name":{},"parent":{"557":{},"558":{}}}],["proto/js/agent.d\".agent.agent.igetprimarykeypairrequestmessage",{"_index":393,"name":{},"parent":{"567":{}}}],["proto/js/agent.d\".agent.agent.igetprimarykeypairresponsemessage",{"_index":397,"name":{},"parent":{"575":{},"576":{}}}],["proto/js/agent.d\".agent.agent.igetsecretrequestmessage",{"_index":357,"name":{},"parent":{"497":{},"498":{}}}],["proto/js/agent.d\".agent.agent.igetsecretresponsemessage",{"_index":362,"name":{},"parent":{"507":{}}}],["proto/js/agent.d\".agent.agent.ilistkeysresponsemessage",{"_index":379,"name":{},"parent":{"541":{}}}],["proto/js/agent.d\".agent.agent.ilistnodesrequestmessage",{"_index":258,"name":{},"parent":{"303":{}}}],["proto/js/agent.d\".agent.agent.ilistnodesresponsemessage",{"_index":263,"name":{},"parent":{"311":{}}}],["proto/js/agent.d\".agent.agent.ilistsecretsrequestmessage",{"_index":329,"name":{},"parent":{"441":{}}}],["proto/js/agent.d\".agent.agent.ilistsecretsresponsemessage",{"_index":334,"name":{},"parent":{"449":{}}}],["proto/js/agent.d\".agent.agent.ilistvaultsresponsemessage",{"_index":308,"name":{},"parent":{"401":{}}}],["proto/js/agent.d\".agent.agent.inewnoderequestmessage",{"_index":247,"name":{},"parent":{"281":{},"282":{},"283":{},"284":{}}}],["proto/js/agent.d\".agent.agent.inewnoderesponsemessage",{"_index":253,"name":{},"parent":{"295":{}}}],["proto/js/agent.d\".agent.agent.inewvaultrequestmessage",{"_index":313,"name":{},"parent":{"409":{}}}],["proto/js/agent.d\".agent.agent.inewvaultresponsemessage",{"_index":317,"name":{},"parent":{"417":{}}}],["proto/js/agent.d\".agent.agent.iregisternoderequestmessage",{"_index":238,"name":{},"parent":{"265":{}}}],["proto/js/agent.d\".agent.agent.iregisternoderesponsemessage",{"_index":243,"name":{},"parent":{"273":{}}}],["proto/js/agent.d\".agent.agent.isignfilerequestmessage",{"_index":268,"name":{},"parent":{"319":{},"320":{},"321":{}}}],["proto/js/agent.d\".agent.agent.isignfileresponsemessage",{"_index":273,"name":{},"parent":{"331":{}}}],["proto/js/agent.d\".agent.agent.iupdatesecretrequestmessage",{"_index":402,"name":{},"parent":{"585":{},"586":{},"587":{},"588":{}}}],["proto/js/agent.d\".agent.agent.iupdatesecretresponsemessage",{"_index":406,"name":{},"parent":{"599":{}}}],["proto/js/agent.d\".agent.agent.iverifyfilerequestmessage",{"_index":277,"name":{},"parent":{"339":{},"340":{}}}],["proto/js/agent.d\".agent.agent.iverifyfileresponsemessage",{"_index":282,"name":{},"parent":{"349":{}}}],["proto/js/agent.d\".agent.agent.listkeysrequestmessage",{"_index":376,"name":{},"parent":{"536":{},"537":{},"538":{},"539":{}}}],["proto/js/agent.d\".agent.agent.listkeysresponsemessage",{"_index":381,"name":{},"parent":{"543":{},"544":{},"545":{},"546":{},"547":{}}}],["proto/js/agent.d\".agent.agent.listnodesrequestmessage",{"_index":260,"name":{},"parent":{"305":{},"306":{},"307":{},"308":{},"309":{}}}],["proto/js/agent.d\".agent.agent.listnodesresponsemessage",{"_index":265,"name":{},"parent":{"313":{},"314":{},"315":{},"316":{},"317":{}}}],["proto/js/agent.d\".agent.agent.listsecretsrequestmessage",{"_index":331,"name":{},"parent":{"443":{},"444":{},"445":{},"446":{},"447":{}}}],["proto/js/agent.d\".agent.agent.listsecretsresponsemessage",{"_index":336,"name":{},"parent":{"451":{},"452":{},"453":{},"454":{},"455":{}}}],["proto/js/agent.d\".agent.agent.listvaultsrequestmessage",{"_index":305,"name":{},"parent":{"396":{},"397":{},"398":{},"399":{}}}],["proto/js/agent.d\".agent.agent.listvaultsresponsemessage",{"_index":310,"name":{},"parent":{"403":{},"404":{},"405":{},"406":{},"407":{}}}],["proto/js/agent.d\".agent.agent.newnoderequestmessage",{"_index":251,"name":{},"parent":{"286":{},"287":{},"288":{},"289":{},"290":{},"291":{},"292":{},"293":{}}}],["proto/js/agent.d\".agent.agent.newnoderesponsemessage",{"_index":255,"name":{},"parent":{"297":{},"298":{},"299":{},"300":{},"301":{}}}],["proto/js/agent.d\".agent.agent.newvaultrequestmessage",{"_index":315,"name":{},"parent":{"411":{},"412":{},"413":{},"414":{},"415":{}}}],["proto/js/agent.d\".agent.agent.newvaultresponsemessage",{"_index":319,"name":{},"parent":{"419":{},"420":{},"421":{},"422":{},"423":{}}}],["proto/js/agent.d\".agent.agent.registernoderequestmessage",{"_index":240,"name":{},"parent":{"267":{},"268":{},"269":{},"270":{},"271":{}}}],["proto/js/agent.d\".agent.agent.registernoderesponsemessage",{"_index":245,"name":{},"parent":{"275":{},"276":{},"277":{},"278":{},"279":{}}}],["proto/js/agent.d\".agent.agent.signfilerequestmessage",{"_index":270,"name":{},"parent":{"323":{},"324":{},"325":{},"326":{},"327":{},"328":{},"329":{}}}],["proto/js/agent.d\".agent.agent.signfileresponsemessage",{"_index":275,"name":{},"parent":{"333":{},"334":{},"335":{},"336":{},"337":{}}}],["proto/js/agent.d\".agent.agent.updatesecretrequestmessage",{"_index":404,"name":{},"parent":{"590":{},"591":{},"592":{},"593":{},"594":{},"595":{},"596":{},"597":{}}}],["proto/js/agent.d\".agent.agent.updatesecretresponsemessage",{"_index":408,"name":{},"parent":{"601":{},"602":{},"603":{},"604":{},"605":{}}}],["proto/js/agent.d\".agent.agent.verifyfilerequestmessage",{"_index":279,"name":{},"parent":{"342":{},"343":{},"344":{},"345":{},"346":{},"347":{}}}],["proto/js/agent.d\".agent.agent.verifyfileresponsemessage",{"_index":284,"name":{},"parent":{"351":{},"352":{},"353":{},"354":{},"355":{}}}],["proto/js/git.d",{"_index":452,"name":{"758":{}},"parent":{"759":{}}}],["proto/js/git.d\".git",{"_index":454,"name":{},"parent":{"760":{}}}],["proto/js/git.d\".git.git",{"_index":456,"name":{},"parent":{"761":{},"774":{},"776":{},"782":{},"785":{},"792":{},"795":{},"802":{},"805":{}}}],["proto/js/git.d\".git.git.gitserver",{"_index":457,"name":{},"parent":{"762":{},"763":{},"764":{},"765":{},"766":{},"767":{},"768":{},"769":{},"770":{},"771":{},"772":{},"773":{},"812":{},"814":{}}}],["proto/js/git.d\".git.git.gitserver.requestinfocallback",{"_index":483,"name":{},"parent":{"813":{}}}],["proto/js/git.d\".git.git.gitserver.requestpackcallback",{"_index":485,"name":{},"parent":{"815":{}}}],["proto/js/git.d\".git.git.iinforeply",{"_index":470,"name":{},"parent":{"783":{},"784":{}}}],["proto/js/git.d\".git.git.iinforequest",{"_index":466,"name":{},"parent":{"775":{}}}],["proto/js/git.d\".git.git.inforeply",{"_index":473,"name":{},"parent":{"786":{},"787":{},"788":{},"789":{},"790":{},"791":{}}}],["proto/js/git.d\".git.git.inforequest",{"_index":468,"name":{},"parent":{"777":{},"778":{},"779":{},"780":{},"781":{}}}],["proto/js/git.d\".git.git.ipackreply",{"_index":479,"name":{},"parent":{"803":{},"804":{}}}],["proto/js/git.d\".git.git.ipackrequest",{"_index":475,"name":{},"parent":{"793":{},"794":{}}}],["proto/js/git.d\".git.git.packreply",{"_index":481,"name":{},"parent":{"806":{},"807":{},"808":{},"809":{},"810":{},"811":{}}}],["proto/js/git.d\".git.git.packrequest",{"_index":477,"name":{},"parent":{"796":{},"797":{},"798":{},"799":{},"800":{},"801":{}}}],["proto/js/peer.d",{"_index":115,"name":{"119":{}},"parent":{"120":{}}}],["proto/js/peer.d\".peer",{"_index":117,"name":{},"parent":{"121":{}}}],["proto/js/peer.d\".peer.peer",{"_index":119,"name":{},"parent":{"122":{},"127":{},"136":{},"140":{}}}],["proto/js/peer.d\".peer.peer.handshakemessage",{"_index":126,"name":{},"parent":{"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{}}}],["proto/js/peer.d\".peer.peer.ihandshakemessage",{"_index":121,"name":{},"parent":{"123":{},"124":{},"125":{},"126":{}}}],["proto/js/peer.d\".peer.peer.ipeerinfomessage",{"_index":132,"name":{},"parent":{"137":{},"138":{},"139":{}}}],["proto/js/peer.d\".peer.peer.peerinfomessage",{"_index":134,"name":{},"parent":{"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{}}}],["pubkey",{"_index":131,"name":{"137":{},"142":{}},"parent":{}}],["public",{"_index":59,"name":{"59":{}},"parent":{}}],["publickey",{"_index":72,"name":{"74":{},"575":{},"579":{}},"parent":{}}],["publickeyinfrastructure",{"_index":446,"name":{"753":{}},"parent":{}}],["publickeypath",{"_index":51,"name":{"52":{},"340":{},"344":{},"358":{},"362":{}},"parent":{}}],["pullvault",{"_index":96,"name":{"98":{}},"parent":{}}],["queryinterval",{"_index":147,"name":{"160":{}},"parent":{}}],["randomstring",{"_index":136,"name":{"149":{}},"parent":{}}],["rawlisteners",{"_index":159,"name":{"173":{}},"parent":{}}],["rawrandommessage",{"_index":173,"name":{"189":{}},"parent":{}}],["register_node",{"_index":204,"name":{"222":{}},"parent":{}}],["registernode",{"_index":421,"name":{"626":{}},"parent":{}}],["registernoderequestmessage",{"_index":239,"name":{"266":{},"683":{},"737":{}},"parent":{}}],["registernoderesponsemessage",{"_index":244,"name":{"274":{},"684":{},"738":{}},"parent":{}}],["removealllisteners",{"_index":155,"name":{"169":{}},"parent":{}}],["removelistener",{"_index":153,"name":{"167":{}},"parent":{}}],["removesecret",{"_index":89,"name":{"91":{}},"parent":{}}],["requestdelimited",{"_index":461,"name":{"767":{}},"parent":{}}],["requestinfo",{"_index":458,"name":{"764":{}},"parent":{}}],["requestinfocallback",{"_index":482,"name":{"812":{}},"parent":{}}],["requestingpubkey",{"_index":122,"name":{"124":{},"130":{}},"parent":{}}],["requestpack",{"_index":459,"name":{"765":{}},"parent":{}}],["requestpackcallback",{"_index":484,"name":{"814":{}},"parent":{}}],["requestpeercontact",{"_index":149,"name":{"163":{}},"parent":{}}],["responsedelimited",{"_index":462,"name":{"768":{}},"parent":{}}],["responsepeerinfo",{"_index":124,"name":{"126":{},"132":{}},"parent":{}}],["rpccall",{"_index":463,"name":{"769":{}},"parent":{}}],["rpcimpl",{"_index":460,"name":{"766":{}},"parent":{}}],["secret",{"_index":361,"name":{"507":{},"510":{}},"parent":{}}],["secretcontent",{"_index":341,"name":{"460":{},"466":{},"588":{},"594":{}},"parent":{}}],["secretexists",{"_index":85,"name":{"87":{}},"parent":{}}],["secretname",{"_index":339,"name":{"458":{},"464":{},"480":{},"484":{},"498":{},"502":{},"586":{},"592":{}},"parent":{}}],["secretnames",{"_index":333,"name":{"449":{},"452":{}},"parent":{}}],["secretpath",{"_index":340,"name":{"459":{},"465":{},"587":{},"593":{}},"parent":{}}],["sendrequesttoagent",{"_index":420,"name":{"625":{}},"parent":{}}],["server",{"_index":181,"name":{"197":{}},"parent":{}}],["serverstarted",{"_index":182,"name":{"198":{}},"parent":{}}],["setmaxlisteners",{"_index":156,"name":{"170":{}},"parent":{}}],["sharedpubkeys",{"_index":100,"name":{"102":{}},"parent":{}}],["sharevault",{"_index":93,"name":{"95":{}},"parent":{}}],["sign_file",{"_index":208,"name":{"226":{}},"parent":{}}],["signaturepath",{"_index":272,"name":{"331":{},"334":{}},"parent":{}}],["signdata",{"_index":2,"name":{"2":{},"36":{}},"parent":{}}],["signfile",{"_index":38,"name":{"37":{},"634":{}},"parent":{}}],["signfilerequestmessage",{"_index":269,"name":{"322":{},"685":{},"739":{}},"parent":{}}],["signfileresponsemessage",{"_index":274,"name":{"332":{},"686":{},"740":{}},"parent":{}}],["socialdiscovery",{"_index":176,"name":{"192":{}},"parent":{}}],["socket",{"_index":145,"name":{"158":{}},"parent":{}}],["socketpath",{"_index":438,"name":{"698":{}},"parent":{}}],["src/lib/agent/polykeyagent",{"_index":431,"name":{"691":{}},"parent":{"692":{},"702":{},"703":{},"704":{},"705":{},"706":{},"707":{},"708":{},"709":{},"710":{},"711":{},"712":{},"713":{},"714":{},"715":{},"716":{},"717":{},"718":{},"719":{},"720":{},"721":{},"722":{},"723":{},"724":{},"725":{},"726":{},"727":{},"728":{},"729":{},"730":{},"731":{},"732":{},"733":{},"734":{},"735":{},"736":{},"737":{},"738":{},"739":{},"740":{},"741":{},"742":{},"743":{},"744":{}}}],["src/lib/agent/polykeyagent\".polykeyagent",{"_index":434,"name":{},"parent":{"693":{},"694":{},"695":{},"696":{},"697":{},"698":{},"699":{},"700":{},"701":{}}}],["src/lib/agent/polykeyclient",{"_index":417,"name":{"622":{}},"parent":{"623":{},"648":{},"649":{},"650":{},"651":{},"652":{},"653":{},"654":{},"655":{},"656":{},"657":{},"658":{},"659":{},"660":{},"661":{},"662":{},"663":{},"664":{},"665":{},"666":{},"667":{},"668":{},"669":{},"670":{},"671":{},"672":{},"673":{},"674":{},"675":{},"676":{},"677":{},"678":{},"679":{},"680":{},"681":{},"682":{},"683":{},"684":{},"685":{},"686":{},"687":{},"688":{},"689":{},"690":{}}}],["src/lib/agent/polykeyclient\".polykeyclient",{"_index":419,"name":{},"parent":{"624":{},"625":{},"626":{},"627":{},"628":{},"629":{},"630":{},"631":{},"632":{},"633":{},"634":{},"635":{},"636":{},"637":{},"638":{},"639":{},"640":{},"641":{},"642":{},"643":{},"644":{},"645":{},"646":{},"647":{}}}],["src/lib/keys/keymanager",{"_index":7,"name":{"7":{}},"parent":{"8":{},"49":{},"56":{},"60":{}}}],["src/lib/keys/keymanager\".keymanager",{"_index":10,"name":{},"parent":{"9":{},"10":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{}}}],["src/lib/keys/keymanager\".keymanager.pkiinfo",{"_index":13,"name":{},"parent":{"11":{},"12":{},"13":{}}}],["src/lib/keys/keymanager\".keymanagermetadata",{"_index":48,"name":{},"parent":{"50":{}}}],["src/lib/keys/keymanager\".keymanagermetadata.__type",{"_index":50,"name":{},"parent":{"51":{},"52":{},"53":{},"54":{},"55":{}}}],["src/lib/keys/keymanager\".keypair",{"_index":56,"name":{},"parent":{"57":{}}}],["src/lib/keys/keymanager\".keypair.__type",{"_index":58,"name":{},"parent":{"58":{},"59":{}}}],["src/lib/keys/keymanager\".pkinfo",{"_index":61,"name":{},"parent":{"61":{}}}],["src/lib/keys/keymanager\".pkinfo.__type",{"_index":62,"name":{},"parent":{"62":{},"63":{},"64":{}}}],["src/lib/keys/keymanagerworker",{"_index":0,"name":{"0":{}},"parent":{"1":{},"6":{}}}],["src/lib/keys/keymanagerworker\".keymanagerworker",{"_index":3,"name":{},"parent":{"2":{},"3":{},"4":{},"5":{}}}],["src/lib/keys/pki/publickeyinfrastructure",{"_index":445,"name":{"752":{}},"parent":{"753":{}}}],["src/lib/keys/pki/publickeyinfrastructure\".publickeyinfrastructure",{"_index":448,"name":{},"parent":{"754":{},"755":{},"756":{},"757":{}}}],["src/lib/peers/multicastbroadcaster",{"_index":139,"name":{"152":{}},"parent":{"153":{},"181":{},"182":{},"183":{},"184":{},"185":{}}}],["src/lib/peers/multicastbroadcaster\".multicastbroadcaster",{"_index":142,"name":{},"parent":{"154":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{}}}],["src/lib/peers/multicastbroadcaster\".multicastbroadcaster.addpeer",{"_index":143,"name":{},"parent":{"155":{}}}],["src/lib/peers/multicastbroadcaster\".peermessage",{"_index":169,"name":{},"parent":{"186":{}}}],["src/lib/peers/multicastbroadcaster\".peermessage.__type",{"_index":171,"name":{},"parent":{"187":{},"188":{},"189":{},"190":{}}}],["src/lib/peers/peerinfo",{"_index":63,"name":{"65":{}},"parent":{"66":{},"73":{}}}],["src/lib/peers/peerinfo\".address",{"_index":66,"name":{},"parent":{"67":{},"68":{},"69":{},"70":{},"71":{},"72":{}}}],["src/lib/peers/peerinfo\".peerinfo",{"_index":73,"name":{},"parent":{"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{}}}],["src/lib/peers/peermanager",{"_index":175,"name":{"191":{}},"parent":{"192":{},"195":{},"209":{},"212":{}}}],["src/lib/peers/peermanager\".keybasediscovery",{"_index":191,"name":{},"parent":{"210":{},"211":{}}}],["src/lib/peers/peermanager\".peermanager",{"_index":180,"name":{},"parent":{"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{},"207":{},"208":{}}}],["src/lib/peers/peermanager\".peermanagermetadata",{"_index":193,"name":{},"parent":{"213":{}}}],["src/lib/peers/peermanager\".peermanagermetadata.__type",{"_index":194,"name":{},"parent":{"214":{}}}],["src/lib/peers/peermanager\".socialdiscovery",{"_index":177,"name":{},"parent":{"193":{},"194":{}}}],["src/lib/polykey",{"_index":442,"name":{"745":{}},"parent":{"746":{}}}],["src/lib/polykey\".polykey",{"_index":444,"name":{},"parent":{"747":{},"748":{},"749":{},"750":{},"751":{}}}],["src/lib/utils",{"_index":135,"name":{"148":{}},"parent":{"149":{},"150":{},"151":{}}}],["src/lib/vaults/vault",{"_index":79,"name":{"81":{}},"parent":{"82":{},"100":{}}}],["src/lib/vaults/vault\".vault",{"_index":82,"name":{},"parent":{"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{}}}],["src/lib/vaults/vault\".vaultmetadata",{"_index":99,"name":{},"parent":{"101":{}}}],["src/lib/vaults/vault\".vaultmetadata.__type",{"_index":101,"name":{},"parent":{"102":{}}}],["src/lib/vaults/vaultmanager",{"_index":102,"name":{"103":{}},"parent":{"104":{}}}],["src/lib/vaults/vaultmanager\".vaultmanager",{"_index":104,"name":{},"parent":{"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{}}}],["startagent",{"_index":441,"name":{"701":{}},"parent":{}}],["status",{"_index":203,"name":{"221":{}},"parent":{}}],["stop",{"_index":436,"name":{"696":{}},"parent":{}}],["stop_agent",{"_index":202,"name":{"220":{}},"parent":{}}],["stopagent",{"_index":430,"name":{"647":{}},"parent":{}}],["submessage",{"_index":229,"name":{"246":{},"252":{}},"parent":{}}],["successful",{"_index":242,"name":{"273":{},"276":{},"295":{},"298":{},"417":{},"420":{},"433":{},"436":{},"471":{},"474":{},"489":{},"492":{},"527":{},"530":{},"599":{},"602":{},"615":{},"618":{}},"parent":{}}],["tagvault",{"_index":91,"name":{"93":{}},"parent":{}}],["targetpubkey",{"_index":120,"name":{"123":{},"129":{}},"parent":{}}],["tostring",{"_index":70,"name":{"72":{}},"parent":{}}],["type",{"_index":225,"name":{"243":{},"249":{}},"parent":{}}],["udp_multicast_addr",{"_index":167,"name":{"184":{}},"parent":{}}],["udp_multicast_port",{"_index":166,"name":{"183":{}},"parent":{}}],["unlockednodepaths",{"_index":435,"name":{"694":{}},"parent":{}}],["unlockedonly",{"_index":257,"name":{"303":{},"306":{}},"parent":{}}],["unlockidentity",{"_index":26,"name":{"24":{}},"parent":{}}],["unsharevault",{"_index":94,"name":{"96":{}},"parent":{}}],["untagvault",{"_index":92,"name":{"94":{}},"parent":{}}],["update_secret",{"_index":223,"name":{"241":{}},"parent":{}}],["updatesecret",{"_index":87,"name":{"89":{},"645":{}},"parent":{}}],["updatesecretrequestmessage",{"_index":403,"name":{"589":{},"687":{},"741":{}},"parent":{}}],["updatesecretresponsemessage",{"_index":407,"name":{"600":{},"688":{},"742":{}},"parent":{}}],["vault",{"_index":80,"name":{"82":{}},"parent":{}}],["vaultexists",{"_index":112,"name":{"115":{}},"parent":{}}],["vaultkeys",{"_index":108,"name":{"110":{}},"parent":{}}],["vaultmanager",{"_index":103,"name":{"104":{},"748":{}},"parent":{}}],["vaultmetadata",{"_index":98,"name":{"100":{}},"parent":{}}],["vaultname",{"_index":312,"name":{"409":{},"412":{},"425":{},"428":{},"441":{},"444":{},"457":{},"463":{},"479":{},"483":{},"497":{},"501":{},"515":{},"520":{},"585":{},"591":{},"775":{},"778":{},"783":{},"787":{},"793":{},"797":{},"803":{},"807":{}},"parent":{}}],["vaultnames",{"_index":307,"name":{"401":{},"404":{}},"parent":{}}],["vaultpath",{"_index":83,"name":{"84":{}},"parent":{}}],["vaults",{"_index":107,"name":{"109":{}},"parent":{}}],["verified",{"_index":281,"name":{"349":{},"352":{}},"parent":{}}],["verify_file",{"_index":209,"name":{"227":{}},"parent":{}}],["verifydata",{"_index":4,"name":{"3":{},"38":{}},"parent":{}}],["verifyfile",{"_index":39,"name":{"39":{},"635":{}},"parent":{}}],["verifyfilerequestmessage",{"_index":278,"name":{"341":{},"689":{},"743":{}},"parent":{}}],["verifyfileresponsemessage",{"_index":283,"name":{"350":{},"690":{},"744":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.agentmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.agentmessage.html new file mode 100644 index 000000000..0f76b7e5b --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.agentmessage.html @@ -0,0 +1,471 @@ + + + + + + AgentMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class AgentMessage

+
+
+
+
+
+
+
+
+
+

Represents an AgentMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + AgentMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

isResponse

+
isResponse: boolean
+ +
+
+

AgentMessage isResponse.

+
+
+
+
+ +

nodePath

+
nodePath: string
+ +
+
+

AgentMessage nodePath.

+
+
+
+
+ +

subMessage

+
subMessage: Uint8Array
+ +
+
+

AgentMessage subMessage.

+
+
+
+
+ +

type

+ + +
+
+

AgentMessage type.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+
    +
  • decode(r: Uint8Array | Reader, l?: undefined | number): AgentMessage
  • +
+
    +
  • + +
    +
    +

    Decodes an AgentMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns AgentMessage

    +

    AgentMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified AgentMessage message. Does not implicitly {@link agent.AgentMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IAgentMessage
      +
      +

      AgentMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html new file mode 100644 index 000000000..568edcb53 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.createsecretrequestmessage.html @@ -0,0 +1,471 @@ + + + + + + CreateSecretRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class CreateSecretRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a CreateSecretRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + CreateSecretRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

secretContent

+
secretContent: Uint8Array
+ +
+
+

CreateSecretRequestMessage secretContent.

+
+
+
+
+ +

secretName

+
secretName: string
+ +
+
+

CreateSecretRequestMessage secretName.

+
+
+
+
+ +

secretPath

+
secretPath: string
+ +
+
+

CreateSecretRequestMessage secretPath.

+
+
+
+
+ +

vaultName

+
vaultName: string
+ +
+
+

CreateSecretRequestMessage vaultName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a CreateSecretRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns CreateSecretRequestMessage

    +

    CreateSecretRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified CreateSecretRequestMessage message. Does not implicitly {@link agent.CreateSecretRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: ICreateSecretRequestMessage
      +
      +

      CreateSecretRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.createsecretresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.createsecretresponsemessage.html new file mode 100644 index 000000000..070c16fea --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.createsecretresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + CreateSecretResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class CreateSecretResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a CreateSecretResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + CreateSecretResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

successful

+
successful: boolean
+ +
+
+

CreateSecretResponseMessage successful.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a CreateSecretResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns CreateSecretResponseMessage

    +

    CreateSecretResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified CreateSecretResponseMessage message. Does not implicitly {@link agent.CreateSecretResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: ICreateSecretResponseMessage
      +
      +

      CreateSecretResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.decryptfilerequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.decryptfilerequestmessage.html new file mode 100644 index 000000000..8486df746 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.decryptfilerequestmessage.html @@ -0,0 +1,451 @@ + + + + + + DecryptFileRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class DecryptFileRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a DecryptFileRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + DecryptFileRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

filePath

+
filePath: string
+ +
+
+

DecryptFileRequestMessage filePath.

+
+
+
+
+ +

passphrase

+
passphrase: string
+ +
+
+

DecryptFileRequestMessage passphrase.

+
+
+
+
+ +

privateKeyPath

+
privateKeyPath: string
+ +
+
+

DecryptFileRequestMessage privateKeyPath.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a DecryptFileRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns DecryptFileRequestMessage

    +

    DecryptFileRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified DecryptFileRequestMessage message. Does not implicitly {@link agent.DecryptFileRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IDecryptFileRequestMessage
      +
      +

      DecryptFileRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.decryptfileresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.decryptfileresponsemessage.html new file mode 100644 index 000000000..82941f3c7 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.decryptfileresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + DecryptFileResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class DecryptFileResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a DecryptFileResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + DecryptFileResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

decryptedPath

+
decryptedPath: string
+ +
+
+

DecryptFileResponseMessage decryptedPath.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a DecryptFileResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns DecryptFileResponseMessage

    +

    DecryptFileResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified DecryptFileResponseMessage message. Does not implicitly {@link agent.DecryptFileResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IDecryptFileResponseMessage
      +
      +

      DecryptFileResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.deletekeyrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.deletekeyrequestmessage.html new file mode 100644 index 000000000..eb1694385 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.deletekeyrequestmessage.html @@ -0,0 +1,411 @@ + + + + + + DeleteKeyRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class DeleteKeyRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a DeleteKeyRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + DeleteKeyRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

keyName

+
keyName: string
+ +
+
+

DeleteKeyRequestMessage keyName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a DeleteKeyRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns DeleteKeyRequestMessage

    +

    DeleteKeyRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified DeleteKeyRequestMessage message. Does not implicitly {@link agent.DeleteKeyRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IDeleteKeyRequestMessage
      +
      +

      DeleteKeyRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.deletekeyresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.deletekeyresponsemessage.html new file mode 100644 index 000000000..e77e02b65 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.deletekeyresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + DeleteKeyResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class DeleteKeyResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a DeleteKeyResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + DeleteKeyResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

successful

+
successful: boolean
+ +
+
+

DeleteKeyResponseMessage successful.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a DeleteKeyResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns DeleteKeyResponseMessage

    +

    DeleteKeyResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified DeleteKeyResponseMessage message. Does not implicitly {@link agent.DeleteKeyResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IDeleteKeyResponseMessage
      +
      +

      DeleteKeyResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.derivekeyrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.derivekeyrequestmessage.html new file mode 100644 index 000000000..4e861c1ed --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.derivekeyrequestmessage.html @@ -0,0 +1,451 @@ + + + + + + DeriveKeyRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class DeriveKeyRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a DeriveKeyRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + DeriveKeyRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

keyName

+
keyName: string
+ +
+
+

DeriveKeyRequestMessage keyName.

+
+
+
+
+ +

passphrase

+
passphrase: string
+ +
+
+

DeriveKeyRequestMessage passphrase.

+
+
+
+
+ +

vaultName

+
vaultName: string
+ +
+
+

DeriveKeyRequestMessage vaultName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a DeriveKeyRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns DeriveKeyRequestMessage

    +

    DeriveKeyRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified DeriveKeyRequestMessage message. Does not implicitly {@link agent.DeriveKeyRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IDeriveKeyRequestMessage
      +
      +

      DeriveKeyRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.derivekeyresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.derivekeyresponsemessage.html new file mode 100644 index 000000000..12bed9fa4 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.derivekeyresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + DeriveKeyResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class DeriveKeyResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a DeriveKeyResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + DeriveKeyResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

successful

+
successful: boolean
+ +
+
+

DeriveKeyResponseMessage successful.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a DeriveKeyResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns DeriveKeyResponseMessage

    +

    DeriveKeyResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified DeriveKeyResponseMessage message. Does not implicitly {@link agent.DeriveKeyResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IDeriveKeyResponseMessage
      +
      +

      DeriveKeyResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.destroysecretrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.destroysecretrequestmessage.html new file mode 100644 index 000000000..ee04fa9d8 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.destroysecretrequestmessage.html @@ -0,0 +1,431 @@ + + + + + + DestroySecretRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class DestroySecretRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a DestroySecretRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + DestroySecretRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

secretName

+
secretName: string
+ +
+
+

DestroySecretRequestMessage secretName.

+
+
+
+
+ +

vaultName

+
vaultName: string
+ +
+
+

DestroySecretRequestMessage vaultName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a DestroySecretRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns DestroySecretRequestMessage

    +

    DestroySecretRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified DestroySecretRequestMessage message. Does not implicitly {@link agent.DestroySecretRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IDestroySecretRequestMessage
      +
      +

      DestroySecretRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.destroysecretresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.destroysecretresponsemessage.html new file mode 100644 index 000000000..563a5a398 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.destroysecretresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + DestroySecretResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class DestroySecretResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a DestroySecretResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + DestroySecretResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

successful

+
successful: boolean
+ +
+
+

DestroySecretResponseMessage successful.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a DestroySecretResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns DestroySecretResponseMessage

    +

    DestroySecretResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified DestroySecretResponseMessage message. Does not implicitly {@link agent.DestroySecretResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IDestroySecretResponseMessage
      +
      +

      DestroySecretResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.destroyvaultrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.destroyvaultrequestmessage.html new file mode 100644 index 000000000..622284f7d --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.destroyvaultrequestmessage.html @@ -0,0 +1,411 @@ + + + + + + DestroyVaultRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class DestroyVaultRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a DestroyVaultRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + DestroyVaultRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

vaultName

+
vaultName: string
+ +
+
+

DestroyVaultRequestMessage vaultName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a DestroyVaultRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns DestroyVaultRequestMessage

    +

    DestroyVaultRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified DestroyVaultRequestMessage message. Does not implicitly {@link agent.DestroyVaultRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IDestroyVaultRequestMessage
      +
      +

      DestroyVaultRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.destroyvaultresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.destroyvaultresponsemessage.html new file mode 100644 index 000000000..982a4faaa --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.destroyvaultresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + DestroyVaultResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class DestroyVaultResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a DestroyVaultResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + DestroyVaultResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

successful

+
successful: boolean
+ +
+
+

DestroyVaultResponseMessage successful.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a DestroyVaultResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns DestroyVaultResponseMessage

    +

    DestroyVaultResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified DestroyVaultResponseMessage message. Does not implicitly {@link agent.DestroyVaultResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IDestroyVaultResponseMessage
      +
      +

      DestroyVaultResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.encryptfilerequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.encryptfilerequestmessage.html new file mode 100644 index 000000000..ff89ed386 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.encryptfilerequestmessage.html @@ -0,0 +1,431 @@ + + + + + + EncryptFileRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class EncryptFileRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents an EncryptFileRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + EncryptFileRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

filePath

+
filePath: string
+ +
+
+

EncryptFileRequestMessage filePath.

+
+
+
+
+ +

publicKeyPath

+
publicKeyPath: string
+ +
+
+

EncryptFileRequestMessage publicKeyPath.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes an EncryptFileRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns EncryptFileRequestMessage

    +

    EncryptFileRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified EncryptFileRequestMessage message. Does not implicitly {@link agent.EncryptFileRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IEncryptFileRequestMessage
      +
      +

      EncryptFileRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.encryptfileresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.encryptfileresponsemessage.html new file mode 100644 index 000000000..2f3f5e04b --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.encryptfileresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + EncryptFileResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class EncryptFileResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents an EncryptFileResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + EncryptFileResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

encryptedPath

+
encryptedPath: string
+ +
+
+

EncryptFileResponseMessage encryptedPath.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes an EncryptFileResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns EncryptFileResponseMessage

    +

    EncryptFileResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified EncryptFileResponseMessage message. Does not implicitly {@link agent.EncryptFileResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IEncryptFileResponseMessage
      +
      +

      EncryptFileResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.errormessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.errormessage.html new file mode 100644 index 000000000..380ca0c55 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.errormessage.html @@ -0,0 +1,411 @@ + + + + + + ErrorMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class ErrorMessage

+
+
+
+
+
+
+
+
+
+

Represents an ErrorMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + ErrorMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

error

+
error: string
+ +
+
+

ErrorMessage error.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+
    +
  • decode(r: Uint8Array | Reader, l?: undefined | number): ErrorMessage
  • +
+
    +
  • + +
    +
    +

    Decodes an ErrorMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns ErrorMessage

    +

    ErrorMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified ErrorMessage message. Does not implicitly {@link agent.ErrorMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IErrorMessage
      +
      +

      ErrorMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.getkeyrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.getkeyrequestmessage.html new file mode 100644 index 000000000..3aad33299 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.getkeyrequestmessage.html @@ -0,0 +1,411 @@ + + + + + + GetKeyRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class GetKeyRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a GetKeyRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + GetKeyRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

keyName

+
keyName: string
+ +
+
+

GetKeyRequestMessage keyName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a GetKeyRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns GetKeyRequestMessage

    +

    GetKeyRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified GetKeyRequestMessage message. Does not implicitly {@link agent.GetKeyRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IGetKeyRequestMessage
      +
      +

      GetKeyRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.getkeyresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.getkeyresponsemessage.html new file mode 100644 index 000000000..3751784bd --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.getkeyresponsemessage.html @@ -0,0 +1,431 @@ + + + + + + GetKeyResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class GetKeyResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a GetKeyResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + GetKeyResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

keyContent

+
keyContent: string
+ +
+
+

GetKeyResponseMessage keyContent.

+
+
+
+
+ +

keyName

+
keyName: string
+ +
+
+

GetKeyResponseMessage keyName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a GetKeyResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns GetKeyResponseMessage

    +

    GetKeyResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified GetKeyResponseMessage message. Does not implicitly {@link agent.GetKeyResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IGetKeyResponseMessage
      +
      +

      GetKeyResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.getprimarykeypairrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.getprimarykeypairrequestmessage.html new file mode 100644 index 000000000..dfdee8cb6 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.getprimarykeypairrequestmessage.html @@ -0,0 +1,411 @@ + + + + + + GetPrimaryKeyPairRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class GetPrimaryKeyPairRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a GetPrimaryKeyPairRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + GetPrimaryKeyPairRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

includePrivateKey

+
includePrivateKey: boolean
+ +
+
+

GetPrimaryKeyPairRequestMessage includePrivateKey.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a GetPrimaryKeyPairRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns GetPrimaryKeyPairRequestMessage

    +

    GetPrimaryKeyPairRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified GetPrimaryKeyPairRequestMessage message. Does not implicitly {@link agent.GetPrimaryKeyPairRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    + +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.getprimarykeypairresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.getprimarykeypairresponsemessage.html new file mode 100644 index 000000000..5a61fa382 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.getprimarykeypairresponsemessage.html @@ -0,0 +1,431 @@ + + + + + + GetPrimaryKeyPairResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class GetPrimaryKeyPairResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a GetPrimaryKeyPairResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + GetPrimaryKeyPairResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

privateKey

+
privateKey: string
+ +
+
+

GetPrimaryKeyPairResponseMessage privateKey.

+
+
+
+
+ +

publicKey

+
publicKey: string
+ +
+
+

GetPrimaryKeyPairResponseMessage publicKey.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a GetPrimaryKeyPairResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns GetPrimaryKeyPairResponseMessage

    +

    GetPrimaryKeyPairResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified GetPrimaryKeyPairResponseMessage message. Does not implicitly {@link agent.GetPrimaryKeyPairResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    + +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.getsecretrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.getsecretrequestmessage.html new file mode 100644 index 000000000..305424cd5 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.getsecretrequestmessage.html @@ -0,0 +1,431 @@ + + + + + + GetSecretRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class GetSecretRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a GetSecretRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + GetSecretRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

secretName

+
secretName: string
+ +
+
+

GetSecretRequestMessage secretName.

+
+
+
+
+ +

vaultName

+
vaultName: string
+ +
+
+

GetSecretRequestMessage vaultName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a GetSecretRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns GetSecretRequestMessage

    +

    GetSecretRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified GetSecretRequestMessage message. Does not implicitly {@link agent.GetSecretRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IGetSecretRequestMessage
      +
      +

      GetSecretRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.getsecretresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.getsecretresponsemessage.html new file mode 100644 index 000000000..3c49bbb3d --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.getsecretresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + GetSecretResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class GetSecretResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a GetSecretResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + GetSecretResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

secret

+
secret: Uint8Array
+ +
+
+

GetSecretResponseMessage secret.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a GetSecretResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns GetSecretResponseMessage

    +

    GetSecretResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified GetSecretResponseMessage message. Does not implicitly {@link agent.GetSecretResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IGetSecretResponseMessage
      +
      +

      GetSecretResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.listkeysrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.listkeysrequestmessage.html new file mode 100644 index 000000000..3c73f7013 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.listkeysrequestmessage.html @@ -0,0 +1,382 @@ + + + + + + ListKeysRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class ListKeysRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a ListKeysRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + ListKeysRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a ListKeysRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns ListKeysRequestMessage

    +

    ListKeysRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified ListKeysRequestMessage message. Does not implicitly {@link agent.ListKeysRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IListKeysRequestMessage
      +
      +

      ListKeysRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.listkeysresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.listkeysresponsemessage.html new file mode 100644 index 000000000..2b3952449 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.listkeysresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + ListKeysResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class ListKeysResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a ListKeysResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + ListKeysResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

keyNames

+
keyNames: string[]
+ +
+
+

ListKeysResponseMessage keyNames.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a ListKeysResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns ListKeysResponseMessage

    +

    ListKeysResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified ListKeysResponseMessage message. Does not implicitly {@link agent.ListKeysResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IListKeysResponseMessage
      +
      +

      ListKeysResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.listnodesrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.listnodesrequestmessage.html new file mode 100644 index 000000000..813586a99 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.listnodesrequestmessage.html @@ -0,0 +1,411 @@ + + + + + + ListNodesRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class ListNodesRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a ListNodesRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + ListNodesRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

unlockedOnly

+
unlockedOnly: boolean
+ +
+
+

ListNodesRequestMessage unlockedOnly.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a ListNodesRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns ListNodesRequestMessage

    +

    ListNodesRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified ListNodesRequestMessage message. Does not implicitly {@link agent.ListNodesRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IListNodesRequestMessage
      +
      +

      ListNodesRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.listnodesresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.listnodesresponsemessage.html new file mode 100644 index 000000000..233bd7a12 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.listnodesresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + ListNodesResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class ListNodesResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a ListNodesResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + ListNodesResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

nodes

+
nodes: string[]
+ +
+
+

ListNodesResponseMessage nodes.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a ListNodesResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns ListNodesResponseMessage

    +

    ListNodesResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified ListNodesResponseMessage message. Does not implicitly {@link agent.ListNodesResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IListNodesResponseMessage
      +
      +

      ListNodesResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.listsecretsrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.listsecretsrequestmessage.html new file mode 100644 index 000000000..3e5c89786 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.listsecretsrequestmessage.html @@ -0,0 +1,411 @@ + + + + + + ListSecretsRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class ListSecretsRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a ListSecretsRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + ListSecretsRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

vaultName

+
vaultName: string
+ +
+
+

ListSecretsRequestMessage vaultName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a ListSecretsRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns ListSecretsRequestMessage

    +

    ListSecretsRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified ListSecretsRequestMessage message. Does not implicitly {@link agent.ListSecretsRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IListSecretsRequestMessage
      +
      +

      ListSecretsRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.listsecretsresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.listsecretsresponsemessage.html new file mode 100644 index 000000000..4d75a8dec --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.listsecretsresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + ListSecretsResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class ListSecretsResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a ListSecretsResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + ListSecretsResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

secretNames

+
secretNames: string[]
+ +
+
+

ListSecretsResponseMessage secretNames.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a ListSecretsResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns ListSecretsResponseMessage

    +

    ListSecretsResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified ListSecretsResponseMessage message. Does not implicitly {@link agent.ListSecretsResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IListSecretsResponseMessage
      +
      +

      ListSecretsResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.listvaultsrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.listvaultsrequestmessage.html new file mode 100644 index 000000000..19839bf1c --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.listvaultsrequestmessage.html @@ -0,0 +1,382 @@ + + + + + + ListVaultsRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class ListVaultsRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a ListVaultsRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + ListVaultsRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a ListVaultsRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns ListVaultsRequestMessage

    +

    ListVaultsRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified ListVaultsRequestMessage message. Does not implicitly {@link agent.ListVaultsRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IListVaultsRequestMessage
      +
      +

      ListVaultsRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.listvaultsresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.listvaultsresponsemessage.html new file mode 100644 index 000000000..a27276023 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.listvaultsresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + ListVaultsResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class ListVaultsResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a ListVaultsResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + ListVaultsResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

vaultNames

+
vaultNames: string[]
+ +
+
+

ListVaultsResponseMessage vaultNames.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a ListVaultsResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns ListVaultsResponseMessage

    +

    ListVaultsResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified ListVaultsResponseMessage message. Does not implicitly {@link agent.ListVaultsResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IListVaultsResponseMessage
      +
      +

      ListVaultsResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html new file mode 100644 index 000000000..1e4595ce1 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.newnoderequestmessage.html @@ -0,0 +1,471 @@ + + + + + + NewNodeRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class NewNodeRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a NewNodeRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + NewNodeRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

email

+
email: string
+ +
+
+

NewNodeRequestMessage email.

+
+
+
+
+ +

name

+
name: string
+ +
+
+

NewNodeRequestMessage name.

+
+
+
+
+ +

nbits

+
nbits: number
+ +
+
+

NewNodeRequestMessage nbits.

+
+
+
+
+ +

passphrase

+
passphrase: string
+ +
+
+

NewNodeRequestMessage passphrase.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a NewNodeRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns NewNodeRequestMessage

    +

    NewNodeRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified NewNodeRequestMessage message. Does not implicitly {@link agent.NewNodeRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: INewNodeRequestMessage
      +
      +

      NewNodeRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.newnoderesponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.newnoderesponsemessage.html new file mode 100644 index 000000000..f012a00cf --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.newnoderesponsemessage.html @@ -0,0 +1,411 @@ + + + + + + NewNodeResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class NewNodeResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a NewNodeResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + NewNodeResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

successful

+
successful: boolean
+ +
+
+

NewNodeResponseMessage successful.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a NewNodeResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns NewNodeResponseMessage

    +

    NewNodeResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified NewNodeResponseMessage message. Does not implicitly {@link agent.NewNodeResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: INewNodeResponseMessage
      +
      +

      NewNodeResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.newvaultrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.newvaultrequestmessage.html new file mode 100644 index 000000000..4a1052b31 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.newvaultrequestmessage.html @@ -0,0 +1,411 @@ + + + + + + NewVaultRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class NewVaultRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a NewVaultRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + NewVaultRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

vaultName

+
vaultName: string
+ +
+
+

NewVaultRequestMessage vaultName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a NewVaultRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns NewVaultRequestMessage

    +

    NewVaultRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified NewVaultRequestMessage message. Does not implicitly {@link agent.NewVaultRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: INewVaultRequestMessage
      +
      +

      NewVaultRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.newvaultresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.newvaultresponsemessage.html new file mode 100644 index 000000000..57fc78cf4 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.newvaultresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + NewVaultResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class NewVaultResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a NewVaultResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + NewVaultResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

successful

+
successful: boolean
+ +
+
+

NewVaultResponseMessage successful.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a NewVaultResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns NewVaultResponseMessage

    +

    NewVaultResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified NewVaultResponseMessage message. Does not implicitly {@link agent.NewVaultResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: INewVaultResponseMessage
      +
      +

      NewVaultResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.registernoderequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.registernoderequestmessage.html new file mode 100644 index 000000000..9d6bfb765 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.registernoderequestmessage.html @@ -0,0 +1,411 @@ + + + + + + RegisterNodeRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class RegisterNodeRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a RegisterNodeRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + RegisterNodeRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

passphrase

+
passphrase: string
+ +
+
+

RegisterNodeRequestMessage passphrase.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a RegisterNodeRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns RegisterNodeRequestMessage

    +

    RegisterNodeRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified RegisterNodeRequestMessage message. Does not implicitly {@link agent.RegisterNodeRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IRegisterNodeRequestMessage
      +
      +

      RegisterNodeRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.registernoderesponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.registernoderesponsemessage.html new file mode 100644 index 000000000..a293e729d --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.registernoderesponsemessage.html @@ -0,0 +1,411 @@ + + + + + + RegisterNodeResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class RegisterNodeResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a RegisterNodeResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + RegisterNodeResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

successful

+
successful: boolean
+ +
+
+

RegisterNodeResponseMessage successful.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a RegisterNodeResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns RegisterNodeResponseMessage

    +

    RegisterNodeResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified RegisterNodeResponseMessage message. Does not implicitly {@link agent.RegisterNodeResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IRegisterNodeResponseMessage
      +
      +

      RegisterNodeResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.signfilerequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.signfilerequestmessage.html new file mode 100644 index 000000000..77ddb91b7 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.signfilerequestmessage.html @@ -0,0 +1,451 @@ + + + + + + SignFileRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class SignFileRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a SignFileRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + SignFileRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

filePath

+
filePath: string
+ +
+
+

SignFileRequestMessage filePath.

+
+
+
+
+ +

passphrase

+
passphrase: string
+ +
+
+

SignFileRequestMessage passphrase.

+
+
+
+
+ +

privateKeyPath

+
privateKeyPath: string
+ +
+
+

SignFileRequestMessage privateKeyPath.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a SignFileRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns SignFileRequestMessage

    +

    SignFileRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified SignFileRequestMessage message. Does not implicitly {@link agent.SignFileRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: ISignFileRequestMessage
      +
      +

      SignFileRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.signfileresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.signfileresponsemessage.html new file mode 100644 index 000000000..6e3bf344c --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.signfileresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + SignFileResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class SignFileResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a SignFileResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + SignFileResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

signaturePath

+
signaturePath: string
+ +
+
+

SignFileResponseMessage signaturePath.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a SignFileResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns SignFileResponseMessage

    +

    SignFileResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified SignFileResponseMessage message. Does not implicitly {@link agent.SignFileResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: ISignFileResponseMessage
      +
      +

      SignFileResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html new file mode 100644 index 000000000..06f82c40c --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.updatesecretrequestmessage.html @@ -0,0 +1,471 @@ + + + + + + UpdateSecretRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class UpdateSecretRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents an UpdateSecretRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + UpdateSecretRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

secretContent

+
secretContent: Uint8Array
+ +
+
+

UpdateSecretRequestMessage secretContent.

+
+
+
+
+ +

secretName

+
secretName: string
+ +
+
+

UpdateSecretRequestMessage secretName.

+
+
+
+
+ +

secretPath

+
secretPath: string
+ +
+
+

UpdateSecretRequestMessage secretPath.

+
+
+
+
+ +

vaultName

+
vaultName: string
+ +
+
+

UpdateSecretRequestMessage vaultName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes an UpdateSecretRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns UpdateSecretRequestMessage

    +

    UpdateSecretRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified UpdateSecretRequestMessage message. Does not implicitly {@link agent.UpdateSecretRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IUpdateSecretRequestMessage
      +
      +

      UpdateSecretRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.updatesecretresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.updatesecretresponsemessage.html new file mode 100644 index 000000000..ca2267c5d --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.updatesecretresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + UpdateSecretResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class UpdateSecretResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents an UpdateSecretResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + UpdateSecretResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

successful

+
successful: boolean
+ +
+
+

UpdateSecretResponseMessage successful.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes an UpdateSecretResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns UpdateSecretResponseMessage

    +

    UpdateSecretResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified UpdateSecretResponseMessage message. Does not implicitly {@link agent.UpdateSecretResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IUpdateSecretResponseMessage
      +
      +

      UpdateSecretResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.verifyfilerequestmessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.verifyfilerequestmessage.html new file mode 100644 index 000000000..d8d3491f1 --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.verifyfilerequestmessage.html @@ -0,0 +1,431 @@ + + + + + + VerifyFileRequestMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class VerifyFileRequestMessage

+
+
+
+
+
+
+
+
+
+

Represents a VerifyFileRequestMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + VerifyFileRequestMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

filePath

+
filePath: string
+ +
+
+

VerifyFileRequestMessage filePath.

+
+
+
+
+ +

publicKeyPath

+
publicKeyPath: string
+ +
+
+

VerifyFileRequestMessage publicKeyPath.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a VerifyFileRequestMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns VerifyFileRequestMessage

    +

    VerifyFileRequestMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified VerifyFileRequestMessage message. Does not implicitly {@link agent.VerifyFileRequestMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IVerifyFileRequestMessage
      +
      +

      VerifyFileRequestMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_agent_d_.agent.agent.verifyfileresponsemessage.html b/docs/classes/_proto_js_agent_d_.agent.agent.verifyfileresponsemessage.html new file mode 100644 index 000000000..4a00be17b --- /dev/null +++ b/docs/classes/_proto_js_agent_d_.agent.agent.verifyfileresponsemessage.html @@ -0,0 +1,411 @@ + + + + + + VerifyFileResponseMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class VerifyFileResponseMessage

+
+
+
+
+
+
+
+
+
+

Represents a VerifyFileResponseMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + VerifyFileResponseMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

verified

+
verified: boolean
+ +
+
+

VerifyFileResponseMessage verified.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a VerifyFileResponseMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns VerifyFileResponseMessage

    +

    VerifyFileResponseMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified VerifyFileResponseMessage message. Does not implicitly {@link agent.VerifyFileResponseMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IVerifyFileResponseMessage
      +
      +

      VerifyFileResponseMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_git_d_.git.git.gitserver.html b/docs/classes/_proto_js_git_d_.git.git.gitserver.html new file mode 100644 index 000000000..62828277c --- /dev/null +++ b/docs/classes/_proto_js_git_d_.git.git.gitserver.html @@ -0,0 +1,880 @@ + + + + + + GitServer | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class GitServer

+
+
+
+
+
+
+
+
+
+

Represents a GitServer

+
+
+
+
+

Hierarchy

+
    +
  • + Service +
      +
    • + GitServer +
    • +
    +
  • +
+
+
+

Index

+
+
+
+

Type aliases

+ +
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Type aliases

+
+ +

Static RequestInfoCallback

+
RequestInfoCallback: (error: null | Error, response?: InfoReply) => void
+ +
+
+

Callback as used by {@link git.GitServer#requestInfo}.

+
+
+
param
+

Error, if any

+
+
param
+
+
+
+
+

Type declaration

+
    +
  • +
      +
    • (error: null | Error, response?: InfoReply): void
    • +
    +
      +
    • +

      Parameters

      +
        +
      • +
        error: null | Error
        +
      • +
      • +
        Optional response: InfoReply
        +
      • +
      +

      Returns void

      +
    • +
    +
  • +
+
+
+
+ +

Static RequestPackCallback

+
RequestPackCallback: (error: null | Error, response?: PackReply) => void
+ +
+
+

Callback as used by {@link git.GitServer#requestPack}.

+
+
+
param
+

Error, if any

+
+
param
+
+
+
+
+

Type declaration

+
    +
  • +
      +
    • (error: null | Error, response?: PackReply): void
    • +
    +
      +
    • +

      Parameters

      +
        +
      • +
        error: null | Error
        +
      • +
      • +
        Optional response: PackReply
        +
      • +
      +

      Returns void

      +
    • +
    +
  • +
+
+
+
+
+

Constructors

+
+ +

constructor

+
    +
  • new GitServer(rpcImpl: $protobuf.RPCImpl, requestDelimited?: undefined | false | true, responseDelimited?: undefined | false | true): GitServer
  • +
+
    +
  • + +
    +
    +

    Constructs a new GitServer service.

    +
    +
    +

    Parameters

    +
      +
    • +
      rpcImpl: $protobuf.RPCImpl
      +
      +
      +

      RPC implementation

      +
      +
      +
    • +
    • +
      Optional requestDelimited: undefined | false | true
      +
    • +
    • +
      Optional responseDelimited: undefined | false | true
      +
    • +
    +

    Returns GitServer

    +
  • +
+
+
+
+

Properties

+
+ +

requestDelimited

+
requestDelimited: boolean
+ +
+
+

Whether requests are length-delimited.

+
+
+
+
+ +

responseDelimited

+
responseDelimited: boolean
+ +
+
+

Whether responses are length-delimited.

+
+
+
+
+ +

rpcImpl

+
rpcImpl: null | ((method: Method | ((request: TReq | {}, callback?: rpc.ServiceMethodCallback<TRes>) => Promise<Message<TRes>>), requestData: Uint8Array, callback: RPCImplCallback) => void)
+ +
+
+

RPC implementation. Becomes null once the service is ended.

+
+
+
+
+
+

Methods

+
+ +

emit

+
    +
  • emit(evt: string, ...args: any[]): this
  • +
+
    +
  • + +
    +
    +

    Emits an event by calling its listeners with the specified arguments.

    +
    +
    +

    Parameters

    +
      +
    • +
      evt: string
      +
      +

      Event name

      +
      +
    • +
    • +
      Rest ...args: any[]
      +
      +

      Arguments

      +
      +
    • +
    +

    Returns this

    +

    this

    +
  • +
+
+
+ +

end

+
    +
  • end(endedByRPC?: undefined | false | true): Service
  • +
+
    +
  • + +
    +
    +

    Ends this service and emits the end event.

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional endedByRPC: undefined | false | true
      +
    • +
    +

    Returns Service

    +

    this

    +
  • +
+
+
+ +

off

+
    +
  • off(evt?: undefined | string, fn?: EventEmitterListener): this
  • +
+
    +
  • + +
    +
    +

    Removes an event listener or any matching listeners if arguments are omitted.

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional evt: undefined | string
      +
    • +
    • +
      Optional fn: EventEmitterListener
      +
    • +
    +

    Returns this

    +

    this

    +
  • +
+
+
+ +

on

+
    +
  • on(evt: string, fn: EventEmitterListener, ctx?: any): this
  • +
+
    +
  • + +
    +
    +

    Registers an event listener.

    +
    +
    +

    Parameters

    +
      +
    • +
      evt: string
      +
      +

      Event name

      +
      +
    • +
    • +
      fn: EventEmitterListener
      +
      +

      Listener

      +
      +
    • +
    • +
      Optional ctx: any
      +
    • +
    +

    Returns this

    +

    this

    +
  • +
+
+
+ +

requestInfo

+ +
    +
  • + +
    +
    +

    Calls RequestInfo.

    +
    +
    +

    Parameters

    +
      +
    • +
      request: IInfoRequest
      +
      +

      InfoRequest message or plain object

      +
      +
    • +
    • +
      callback: RequestInfoCallback
      +
      +

      Node-style callback called with the error, if any, and InfoReply

      +
      +
    • +
    +

    Returns void

    +
  • +
  • + +
    +
    +

    Calls RequestInfo.

    +
    +
    +

    Parameters

    +
      +
    • +
      request: IInfoRequest
      +
      +

      InfoRequest message or plain object

      +
      +
    • +
    +

    Returns Promise<InfoReply>

    +

    Promise

    +
  • +
+
+
+ +

requestPack

+ +
    +
  • + +
    +
    +

    Calls RequestPack.

    +
    +
    +

    Parameters

    +
      +
    • +
      request: IPackRequest
      +
      +

      PackRequest message or plain object

      +
      +
    • +
    • +
      callback: RequestPackCallback
      +
      +

      Node-style callback called with the error, if any, and PackReply

      +
      +
    • +
    +

    Returns void

    +
  • +
  • + +
    +
    +

    Calls RequestPack.

    +
    +
    +

    Parameters

    +
      +
    • +
      request: IPackRequest
      +
      +

      PackRequest message or plain object

      +
      +
    • +
    +

    Returns Promise<PackReply>

    +

    Promise

    +
  • +
+
+
+ +

rpcCall

+
    +
  • rpcCall<TReq, TRes>(method: Method | ((request: TReq | {}, callback?: rpc.ServiceMethodCallback<TRes>) => Promise<Message<TRes>>), requestCtor: Constructor<TReq>, responseCtor: Constructor<TRes>, request: TReq | {}, callback: rpc.ServiceMethodCallback<TRes>): void
  • +
+
    +
  • + +
    +
    +

    Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.

    +
    +
    +

    Type parameters

    +
      +
    • +

      TReq: Message<TReq>

      +
    • +
    • +

      TRes: Message<TRes>

      +
    • +
    +

    Parameters

    +
      +
    • +
      method: Method | ((request: TReq | {}, callback?: rpc.ServiceMethodCallback<TRes>) => Promise<Message<TRes>>)
      +
      +

      Reflected or static method

      +
      +
    • +
    • +
      requestCtor: Constructor<TReq>
      +
      +

      Request constructor

      +
      +
    • +
    • +
      responseCtor: Constructor<TRes>
      +
      +

      Response constructor

      +
      +
    • +
    • +
      request: TReq | {}
      +
      +

      Request message or plain object

      +
      +
    • +
    • +
      callback: rpc.ServiceMethodCallback<TRes>
      +
      +

      Service callback

      +
      +
    • +
    +

    Returns void

    +
  • +
+
+
+ +

Static create

+
    +
  • create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: undefined | false | true, responseDelimited?: undefined | false | true): GitServer
  • +
+
    +
  • + +
    +
    +

    Creates new GitServer service using the specified rpc implementation.

    +
    +
    +

    Parameters

    +
      +
    • +
      rpcImpl: $protobuf.RPCImpl
      +
      +

      RPC implementation

      +
      +
    • +
    • +
      Optional requestDelimited: undefined | false | true
      +
    • +
    • +
      Optional responseDelimited: undefined | false | true
      +
    • +
    +

    Returns GitServer

    +

    RPC service. Useful where requests and/or responses are streamed.

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Method
  • +
+
    +
  • Inherited property
  • +
  • Inherited method
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_git_d_.git.git.inforeply.html b/docs/classes/_proto_js_git_d_.git.git.inforeply.html new file mode 100644 index 000000000..7389e9fe2 --- /dev/null +++ b/docs/classes/_proto_js_git_d_.git.git.inforeply.html @@ -0,0 +1,455 @@ + + + + + + InfoReply | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class InfoReply

+
+
+
+
+
+
+
+
+
+

Represents an InfoReply.

+
+
+
+
+

Hierarchy

+
    +
  • + InfoReply +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

body

+
body: Uint8Array
+ +
+
+

InfoReply body.

+
+
+
+
+ +

vaultName

+
vaultName: string
+ +
+
+

InfoReply vaultName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ +
    +
  • + +
    +
    +

    Creates a new InfoReply instance using the specified properties.

    +
    +
    +

    Parameters

    + +

    Returns InfoReply

    +

    InfoReply instance

    +
  • +
+
+
+ +

Static decode

+
    +
  • decode(r: Uint8Array | Reader, l?: undefined | number): InfoReply
  • +
+
    +
  • + +
    +
    +

    Decodes an InfoReply message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns InfoReply

    +

    InfoReply

    +
  • +
+
+
+ +

Static encode

+
    +
  • encode(m: IInfoReply, w?: $protobuf.Writer): Writer
  • +
+
    +
  • + +
    +
    +

    Encodes the specified InfoReply message. Does not implicitly {@link git.InfoReply.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IInfoReply
      +
      +

      InfoReply message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_git_d_.git.git.inforequest.html b/docs/classes/_proto_js_git_d_.git.git.inforequest.html new file mode 100644 index 000000000..acf8b2db0 --- /dev/null +++ b/docs/classes/_proto_js_git_d_.git.git.inforequest.html @@ -0,0 +1,435 @@ + + + + + + InfoRequest | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class InfoRequest

+
+
+
+
+
+
+
+
+
+

Represents an InfoRequest.

+
+
+
+
+

Hierarchy

+
    +
  • + InfoRequest +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

vaultName

+
vaultName: string
+ +
+
+

InfoRequest vaultName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ +
    +
  • + +
    +
    +

    Creates a new InfoRequest instance using the specified properties.

    +
    +
    +

    Parameters

    + +

    Returns InfoRequest

    +

    InfoRequest instance

    +
  • +
+
+
+ +

Static decode

+
    +
  • decode(r: Uint8Array | Reader, l?: undefined | number): InfoRequest
  • +
+
    +
  • + +
    +
    +

    Decodes an InfoRequest message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns InfoRequest

    +

    InfoRequest

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified InfoRequest message. Does not implicitly {@link git.InfoRequest.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IInfoRequest
      +
      +

      InfoRequest message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_git_d_.git.git.packreply.html b/docs/classes/_proto_js_git_d_.git.git.packreply.html new file mode 100644 index 000000000..989cf1b56 --- /dev/null +++ b/docs/classes/_proto_js_git_d_.git.git.packreply.html @@ -0,0 +1,455 @@ + + + + + + PackReply | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class PackReply

+
+
+
+
+
+
+
+
+
+

Represents a PackReply.

+
+
+
+
+

Hierarchy

+
    +
  • + PackReply +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

body

+
body: Uint8Array
+ +
+
+

PackReply body.

+
+
+
+
+ +

vaultName

+
vaultName: string
+ +
+
+

PackReply vaultName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ +
    +
  • + +
    +
    +

    Creates a new PackReply instance using the specified properties.

    +
    +
    +

    Parameters

    + +

    Returns PackReply

    +

    PackReply instance

    +
  • +
+
+
+ +

Static decode

+
    +
  • decode(r: Uint8Array | Reader, l?: undefined | number): PackReply
  • +
+
    +
  • + +
    +
    +

    Decodes a PackReply message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns PackReply

    +

    PackReply

    +
  • +
+
+
+ +

Static encode

+
    +
  • encode(m: IPackReply, w?: $protobuf.Writer): Writer
  • +
+
    +
  • + +
    +
    +

    Encodes the specified PackReply message. Does not implicitly {@link git.PackReply.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IPackReply
      +
      +

      PackReply message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_git_d_.git.git.packrequest.html b/docs/classes/_proto_js_git_d_.git.git.packrequest.html new file mode 100644 index 000000000..d6a22f2a3 --- /dev/null +++ b/docs/classes/_proto_js_git_d_.git.git.packrequest.html @@ -0,0 +1,455 @@ + + + + + + PackRequest | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class PackRequest

+
+
+
+
+
+
+
+
+
+

Represents a PackRequest.

+
+
+
+
+

Hierarchy

+
    +
  • + PackRequest +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

body

+
body: Uint8Array
+ +
+
+

PackRequest body.

+
+
+
+
+ +

vaultName

+
vaultName: string
+ +
+
+

PackRequest vaultName.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ +
    +
  • + +
    +
    +

    Creates a new PackRequest instance using the specified properties.

    +
    +
    +

    Parameters

    + +

    Returns PackRequest

    +

    PackRequest instance

    +
  • +
+
+
+ +

Static decode

+
    +
  • decode(r: Uint8Array | Reader, l?: undefined | number): PackRequest
  • +
+
    +
  • + +
    +
    +

    Decodes a PackRequest message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns PackRequest

    +

    PackRequest

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified PackRequest message. Does not implicitly {@link git.PackRequest.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IPackRequest
      +
      +

      PackRequest message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_peer_d_.peer.peer.handshakemessage.html b/docs/classes/_proto_js_peer_d_.peer.peer.handshakemessage.html new file mode 100644 index 000000000..3aa9b25e7 --- /dev/null +++ b/docs/classes/_proto_js_peer_d_.peer.peer.handshakemessage.html @@ -0,0 +1,480 @@ + + + + + + HandshakeMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class HandshakeMessage

+
+
+
+
+
+
+
+
+
+

Represents a HandshakeMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + HandshakeMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

message

+
message: Uint8Array
+ +
+
+

HandshakeMessage message.

+
+
+
+
+ +

requestingPubKey

+
requestingPubKey: Uint8Array
+ +
+
+

HandshakeMessage requestingPubKey.

+
+
+
+
+ +

responsePeerInfo

+
responsePeerInfo: Uint8Array
+ +
+
+

HandshakeMessage responsePeerInfo.

+
+
+
+
+ +

targetPubKey

+
targetPubKey: Uint8Array
+ +
+
+

HandshakeMessage targetPubKey.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+ +
    +
  • + +
    +
    +

    Decodes a HandshakeMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns HandshakeMessage

    +

    HandshakeMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified HandshakeMessage message. Does not implicitly {@link peer.HandshakeMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IHandshakeMessage
      +
      +

      HandshakeMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/_proto_js_peer_d_.peer.peer.peerinfomessage.html b/docs/classes/_proto_js_peer_d_.peer.peer.peerinfomessage.html new file mode 100644 index 000000000..400f27509 --- /dev/null +++ b/docs/classes/_proto_js_peer_d_.peer.peer.peerinfomessage.html @@ -0,0 +1,460 @@ + + + + + + PeerInfoMessage | PolyKey (library) + + + + + +
+
+
+
+ +
+
+ Options +
+
+ All +
    +
  • Public
  • +
  • Public/Protected
  • +
  • All
  • +
+
+ + + + +
+
+ Menu +
+
+
+
+
+
+ +

Class PeerInfoMessage

+
+
+
+
+
+
+
+
+
+

Represents a PeerInfoMessage.

+
+
+
+
+

Hierarchy

+
    +
  • + PeerInfoMessage +
  • +
+
+
+

Implements

+ +
+
+

Index

+
+
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Methods

+ +
+
+
+
+
+

Constructors

+
+ +

constructor

+ + +
+
+
+

Properties

+
+ +

addresses

+
addresses: string[]
+ +
+
+

PeerInfoMessage addresses.

+
+
+
+
+ +

connectedAddr

+
connectedAddr: string
+ +
+
+

PeerInfoMessage connectedAddr.

+
+
+
+
+ +

pubKey

+
pubKey: string
+ +
+
+

PeerInfoMessage pubKey.

+
+
+
+
+
+

Methods

+
+ +

Static create

+ + +
+
+ +

Static decode

+
    +
  • decode(r: Uint8Array | Reader, l?: undefined | number): PeerInfoMessage
  • +
+
    +
  • + +
    +
    +

    Decodes a PeerInfoMessage message from the specified reader or buffer.

    +
    +
    +
    throws
    +

    {Error} If the payload is not a reader or valid buffer

    +
    +
    throws
    +

    {$protobuf.util.ProtocolError} If required fields are missing

    +
    +
    +
    +

    Parameters

    +
      +
    • +
      r: Uint8Array | Reader
      +
      +

      Reader or buffer to decode from

      +
      +
    • +
    • +
      Optional l: undefined | number
      +
    • +
    +

    Returns PeerInfoMessage

    +

    PeerInfoMessage

    +
  • +
+
+
+ +

Static encode

+ +
    +
  • + +
    +
    +

    Encodes the specified PeerInfoMessage message. Does not implicitly {@link peer.PeerInfoMessage.verify|verify} messages.

    +
    +
    +

    Parameters

    +
      +
    • +
      m: IPeerInfoMessage
      +
      +

      PeerInfoMessage message or plain object to encode

      +
      +
    • +
    • +
      Optional w: $protobuf.Writer
      +
    • +
    +

    Returns Writer

    +

    Writer

    +
  • +
+
+
+
+ +
+
+
+
+

Legend

+
+
    +
  • Namespace
  • +
  • Object literal
  • +
  • Variable
  • +
  • Function
  • +
  • Function with type parameter
  • +
  • Type alias
  • +
+
    +
  • Class
  • +
  • Constructor
  • +
  • Property
  • +
+
    +
  • Interface
  • +
+
    +
  • Static method
  • +
+
+
+
+
+

Generated using TypeDoc

+
+
+ + + \ No newline at end of file diff --git a/docs/classes/polykeyagent.html b/docs/classes/_src_lib_agent_polykeyagent_.polykeyagent.html similarity index 68% rename from docs/classes/polykeyagent.html rename to docs/classes/_src_lib_agent_polykeyagent_.polykeyagent.html index 311f521d2..9f45f3b6b 100644 --- a/docs/classes/polykeyagent.html +++ b/docs/classes/_src_lib_agent_polykeyagent_.polykeyagent.html @@ -38,6 +38,8 @@ + + Menu @@ -52,7 +54,10 @@ Globals
  • - PolykeyAgent + "src/lib/agent/PolykeyAgent" +
  • +
  • + PolykeyAgent
  • Class PolykeyAgent

    @@ -77,30 +82,30 @@

    Index

    Constructors

    Properties

    Accessors

    Methods

    @@ -112,16 +117,16 @@

    Constructors

    constructor

    @@ -134,7 +139,7 @@

    Static DAEMON_SCRIPT_P
    DAEMON_SCRIPT_PATH: string = path.join(__dirname, 'internal', 'daemon-script.js')
    @@ -151,7 +156,7 @@

    AllNodePaths

  • Returns string[]

    @@ -168,7 +173,7 @@

    UnlockedNodePaths

  • Returns string[]

    @@ -185,7 +190,7 @@

    Static LogPath

  • Returns string

    @@ -202,7 +207,7 @@

    Static SocketPath

  • Returns string

    @@ -222,7 +227,7 @@

    stop

  • Returns void

    @@ -233,13 +238,13 @@

    Returns void

    Static connectToAgent

      -
    • connectToAgent(getStream?: undefined | (() => Duplex)): PolykeyClient
    • +
    • connectToAgent(getStream?: undefined | (() => Duplex)): PolykeyClient
    -

    Returns PolykeyClient

    +

    Returns PolykeyClient

  • @@ -262,7 +267,7 @@

    Static startAgent

  • Parameters

    @@ -283,41 +288,86 @@

    Returns Promise Globals

  • +
  • + "proto/js/Agent.d" +
  • +
  • + "proto/js/Git.d" +
  • +
  • + "proto/js/Peer.d" +
  • +
  • + "src/lib/Polykey" +
  • +
  • + "src/lib/agent/PolykeyAgent" +
  • +
  • + "src/lib/agent/PolykeyClient" +
  • +
  • + "src/lib/keys/KeyManager" +
  • +
  • + "src/lib/keys/KeyManagerWorker" +
  • +
  • + "src/lib/keys/pki/PublicKeyInfrastructure" +
  • +
  • + "src/lib/peers/MulticastBroadcaster" +
  • +
  • + "src/lib/peers/PeerInfo" +
  • +
  • + "src/lib/peers/PeerManager" +
  • +
  • + "src/lib/utils" +
  • +
  • + "src/lib/vaults/Vault" +
  • +
  • + "src/lib/vaults/VaultManager" +
  • @@ -1513,20 +1560,21 @@

    key

    Legend

      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Class
    • Constructor
    • Property
    • Method
      -
    • Property
    • -
    • Method
    • -
    -
      -
    • Static property
    • -
    • Static method
    • -
    -
      -
    • Inherited method
    • +
    • Interface
    diff --git a/docs/classes/publickeyinfrastructure.html b/docs/classes/_src_lib_keys_pki_publickeyinfrastructure_.publickeyinfrastructure.html similarity index 69% rename from docs/classes/publickeyinfrastructure.html rename to docs/classes/_src_lib_keys_pki_publickeyinfrastructure_.publickeyinfrastructure.html index 37b6ad0cd..b765eef85 100644 --- a/docs/classes/publickeyinfrastructure.html +++ b/docs/classes/_src_lib_keys_pki_publickeyinfrastructure_.publickeyinfrastructure.html @@ -38,6 +38,8 @@ + + Menu @@ -52,7 +54,10 @@ Globals
  • - PublicKeyInfrastructure + "src/lib/keys/pki/PublicKeyInfrastructure" +
  • +
  • + PublicKeyInfrastructure
  • Class PublicKeyInfrastructure

    @@ -84,15 +89,15 @@

    Index

    Properties

    Methods

    @@ -106,7 +111,7 @@

    Static COMMON_NAME

    COMMON_NAME: string = "localhost"
    @@ -116,7 +121,7 @@

    Static N_BITS

    N_BITS: number = 2048
    @@ -126,7 +131,7 @@

    Static ORGANIZATION_NAMEORGANIZATION_NAME: string = "MatrixAI" @@ -143,7 +148,7 @@

    Static createX509Certi
  • @@ -192,26 +197,71 @@
    keyPem: Globals
  • +
  • + "proto/js/Agent.d" +
  • +
  • + "proto/js/Git.d" +
  • +
  • + "proto/js/Peer.d" +
  • +
  • + "src/lib/Polykey" +
  • +
  • + "src/lib/agent/PolykeyAgent" +
  • +
  • + "src/lib/agent/PolykeyClient" +
  • +
  • + "src/lib/keys/KeyManager" +
  • +
  • + "src/lib/keys/KeyManagerWorker" +
  • +
  • + "src/lib/keys/pki/PublicKeyInfrastructure" +
  • +
  • + "src/lib/peers/MulticastBroadcaster" +
  • +
  • + "src/lib/peers/PeerInfo" +
  • +
  • + "src/lib/peers/PeerManager" +
  • +
  • + "src/lib/utils" +
  • +
  • + "src/lib/vaults/Vault" +
  • +
  • + "src/lib/vaults/VaultManager" +
  • @@ -953,17 +1018,21 @@

    Returns numberLegend

      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Class
    • Constructor
    • Property
    • Method
      -
    • Property
    • -
    • Method
    • -
    -
      -
    • Static property
    • -
    • Static method
    • +
    • Interface
    • Inherited method
    • diff --git a/docs/classes/address.html b/docs/classes/_src_lib_peers_peerinfo_.address.html similarity index 65% rename from docs/classes/address.html rename to docs/classes/_src_lib_peers_peerinfo_.address.html index 6185946ec..385c3f778 100644 --- a/docs/classes/address.html +++ b/docs/classes/_src_lib_peers_peerinfo_.address.html @@ -38,6 +38,8 @@
    + + Menu @@ -52,7 +54,10 @@ Globals
  • - Address + "src/lib/peers/PeerInfo" +
  • +
  • + Address
  • Class Address

    @@ -77,22 +82,22 @@

    Index

    Constructors

    Properties

    Methods

    @@ -104,13 +109,13 @@

    Constructors

    constructor

      -
    • new Address(ip: string, port: string): Address
    • +
    • new Address(ip: string, port: string): Address
    -

    Returns Address

    +

    Returns Address

    @@ -135,7 +140,7 @@

    ip

    ip: string
    @@ -145,7 +150,7 @@

    port

    port: string
    @@ -162,7 +167,7 @@

    toString

  • @@ -178,13 +183,13 @@

    Returns string

    Static fromAddressInfo

      -
    • fromAddressInfo(addressInfo: AddressInfo): Address
    • +
    • fromAddressInfo(addressInfo: AddressInfo): Address
    -

    Returns Address

    +

    Returns Address

  • @@ -209,13 +214,13 @@

    Returns

    Static parse

      -
    • parse(addressString: string): Address
    • +
    • parse(addressString: string): Address
    -

    Returns Address

    +

    Returns Address

    @@ -244,37 +249,85 @@

    Returns Globals +
  • + "proto/js/Agent.d" +
  • +
  • + "proto/js/Git.d" +
  • +
  • + "proto/js/Peer.d" +
  • +
  • + "src/lib/Polykey" +
  • +
  • + "src/lib/agent/PolykeyAgent" +
  • +
  • + "src/lib/agent/PolykeyClient" +
  • +
  • + "src/lib/keys/KeyManager" +
  • +
  • + "src/lib/keys/KeyManagerWorker" +
  • +
  • + "src/lib/keys/pki/PublicKeyInfrastructure" +
  • +
  • + "src/lib/peers/MulticastBroadcaster" +
  • +
  • + "src/lib/peers/PeerInfo" +
  • +
  • + "src/lib/peers/PeerManager" +
  • +
  • + "src/lib/utils" +
  • +
  • + "src/lib/vaults/Vault" +
  • +
  • + "src/lib/vaults/VaultManager" +
  • @@ -285,21 +338,25 @@

    Returns
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Class
    • Constructor
    • Property
    • Method
      -
    • Property
    • -
    • Method
    • +
    • Interface
      -
    • Static property
    • Static method
    -
      -
    • Inherited method
    • -
    diff --git a/docs/classes/peerinfo.html b/docs/classes/_src_lib_peers_peerinfo_.peerinfo.html similarity index 65% rename from docs/classes/peerinfo.html rename to docs/classes/_src_lib_peers_peerinfo_.peerinfo.html index e1165451a..f79a991eb 100644 --- a/docs/classes/peerinfo.html +++ b/docs/classes/_src_lib_peers_peerinfo_.peerinfo.html @@ -38,6 +38,8 @@ + +
    Menu @@ -52,7 +54,10 @@ Globals
  • - PeerInfo + "src/lib/peers/PeerInfo" +
  • +
  • + PeerInfo
  • Class PeerInfo

    @@ -77,28 +82,28 @@

    Index

    Constructors

    Properties

    Accessors

    Methods

    @@ -110,13 +115,13 @@

    Constructors

    constructor

      -
    • new PeerInfo(pubKey: string, addresses?: string[], connectedAddr?: undefined | string): PeerInfo
    • +
    • new PeerInfo(pubKey: string, addresses?: string[], connectedAddr?: undefined | string): PeerInfo
    -

    Returns PeerInfo

    +

    Returns PeerInfo

    @@ -141,20 +146,20 @@

    Properties

    addresses

    -
    addresses: Set<Address>
    +
    addresses: Set<Address>

    Optional connectedAddr

    -
    connectedAddr: Address
    +
    connectedAddr: Address
    @@ -164,7 +169,7 @@

    publicKey

    publicKey: string
    @@ -181,7 +186,7 @@

    AdressStringList

  • Returns string[]

    @@ -195,13 +200,13 @@

    Methods

    connect

    Class PeerManager

    @@ -77,29 +82,29 @@

    Index

    Constructors

    Properties

    Methods

    @@ -111,13 +116,13 @@

    Constructors

    constructor

    -

    Returns PeerManager

    +

    Returns PeerManager

  • @@ -151,10 +156,10 @@

    Properties

    multicastBroadcaster

    -
    multicastBroadcaster: MulticastBroadcaster
    +
    multicastBroadcaster: MulticastBroadcaster
    @@ -164,7 +169,7 @@

    server

    server: Server
    @@ -174,7 +179,7 @@

    serverStarted

    serverStarted: boolean = false
    @@ -185,13 +190,13 @@

    Methods

    addPeer

    @@ -365,13 +370,13 @@

    Returns

    getPeer

      -
    • getPeer(publicKey: string): PeerInfo | null
    • +
    • getPeer(publicKey: string): PeerInfo | null
    -

    Returns PeerInfo | null

    +

    Returns PeerInfo | null

    @@ -402,7 +407,7 @@

    hasPeer

  • @@ -430,7 +435,7 @@

    loadMetadata

  • Returns void

    @@ -445,58 +450,112 @@

    Returns void Globals

  • +
  • + "proto/js/Agent.d" +
  • +
  • + "proto/js/Git.d" +
  • +
  • + "proto/js/Peer.d" +
  • +
  • + "src/lib/Polykey" +
  • +
  • + "src/lib/agent/PolykeyAgent" +
  • +
  • + "src/lib/agent/PolykeyClient" +
  • +
  • + "src/lib/keys/KeyManager" +
  • +
  • + "src/lib/keys/KeyManagerWorker" +
  • +
  • + "src/lib/keys/pki/PublicKeyInfrastructure" +
  • +
  • + "src/lib/peers/MulticastBroadcaster" +
  • +
  • + "src/lib/peers/PeerInfo" +
  • +
  • + "src/lib/peers/PeerManager" +
  • +
  • + "src/lib/utils" +
  • +
  • + "src/lib/vaults/Vault" +
  • +
  • + "src/lib/vaults/VaultManager" +
  • @@ -507,20 +566,21 @@

    Returns voidLegend

      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Class
    • Constructor
    • Property
    • Method
      -
    • Property
    • -
    • Method
    • -
    -
      -
    • Static property
    • -
    • Static method
    • -
    -
      -
    • Inherited method
    • +
    • Interface
    diff --git a/docs/classes/polykey.html b/docs/classes/_src_lib_polykey_.polykey.html similarity index 56% rename from docs/classes/polykey.html rename to docs/classes/_src_lib_polykey_.polykey.html index 2c53bca1b..2e0c2fabe 100644 --- a/docs/classes/polykey.html +++ b/docs/classes/_src_lib_polykey_.polykey.html @@ -38,6 +38,8 @@ + + Menu @@ -52,7 +54,10 @@ Globals
  • - Polykey + "src/lib/Polykey" +
  • +
  • + Polykey
  • Class Polykey

    @@ -77,16 +82,16 @@

    Index

    Constructors

    Properties

    @@ -98,13 +103,13 @@

    Constructors

    constructor

    -

    Returns Polykey

    +

    Returns Polykey

    @@ -135,20 +140,20 @@

    Properties

    keyManager

    -
    keyManager: KeyManager
    +
    keyManager: KeyManager

    peerManager

    -
    peerManager: PeerManager
    +
    peerManager: PeerManager
    @@ -158,17 +163,17 @@

    polykeyPath

    polykeyPath: string

    vaultManager

    -
    vaultManager: VaultManager
    +
    vaultManager: VaultManager
    @@ -180,29 +185,74 @@

    vaultManager

  • Globals
  • +
  • + "proto/js/Agent.d" +
  • +
  • + "proto/js/Git.d" +
  • +
  • + "proto/js/Peer.d" +
  • +
  • + "src/lib/Polykey" +
  • +
  • + "src/lib/agent/PolykeyAgent" +
  • +
  • + "src/lib/agent/PolykeyClient" +
  • +
  • + "src/lib/keys/KeyManager" +
  • +
  • + "src/lib/keys/KeyManagerWorker" +
  • +
  • + "src/lib/keys/pki/PublicKeyInfrastructure" +
  • +
  • + "src/lib/peers/MulticastBroadcaster" +
  • +
  • + "src/lib/peers/PeerInfo" +
  • +
  • + "src/lib/peers/PeerManager" +
  • +
  • + "src/lib/utils" +
  • +
  • + "src/lib/vaults/Vault" +
  • +
  • + "src/lib/vaults/VaultManager" +
  • @@ -645,20 +698,21 @@

    Returns PromiseLegend

      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Class
    • Constructor
    • Property
    • Method
      -
    • Property
    • -
    • Method
    • -
    -
      -
    • Static property
    • -
    • Static method
    • -
    -
      -
    • Inherited method
    • +
    • Interface
    diff --git a/docs/classes/vaultmanager.html b/docs/classes/_src_lib_vaults_vaultmanager_.vaultmanager.html similarity index 68% rename from docs/classes/vaultmanager.html rename to docs/classes/_src_lib_vaults_vaultmanager_.vaultmanager.html index 61ee9cc74..b34902c16 100644 --- a/docs/classes/vaultmanager.html +++ b/docs/classes/_src_lib_vaults_vaultmanager_.vaultmanager.html @@ -38,6 +38,8 @@ + + Menu @@ -52,7 +54,10 @@ Globals
  • - VaultManager + "src/lib/vaults/VaultManager" +
  • +
  • + VaultManager
  • Class VaultManager

    @@ -77,30 +82,30 @@

    Index

    Constructors

    Properties

    Methods

    @@ -112,13 +117,13 @@

    Constructors

    constructor

    -

    Returns VaultManager

    +

    Returns VaultManager

    @@ -146,17 +151,17 @@

    fileSystem

    fileSystem: typeof fs

    keyManager

    -
    keyManager: KeyManager
    +
    keyManager: KeyManager
    @@ -166,7 +171,7 @@

    metadataPath

    metadataPath: string
    @@ -176,7 +181,7 @@

    polykeyPath

    polykeyPath: string
    @@ -186,17 +191,17 @@

    vaultKeys

    vaultKeys: Map<string, Buffer>

    vaults

    -
    vaults: Map<string, Vault>
    +
    vaults: Map<string, Vault>
    @@ -207,13 +212,13 @@

    Methods

    cloneVault

      -
    • cloneVault(vaultName: string, gitClient: GitClient): Promise<Vault>
    • +
    • cloneVault(vaultName: string, gitRequest: GitRequest): Promise<Vault>
    -

    Returns Promise<Vault>

    +

    Returns Promise<Vault>

    @@ -241,13 +246,13 @@

    Returns Promise

    createVault

      -
    • createVault(vaultName: string, key?: Buffer): Promise<Vault>
    • +
    • createVault(vaultName: string, key?: Buffer): Promise<Vault>
    @@ -284,7 +289,7 @@

    destroyVault

  • @@ -309,13 +314,13 @@

    Returns void

    getVault

      -
    • getVault(vaultName: string): Vault
    • +
    • getVault(vaultName: string): Vault
    -

    Returns Vault

    +

    Returns Vault

  • @@ -346,7 +351,7 @@

    listVaults

  • @@ -368,7 +373,7 @@

    loadMetadata

  • Returns Promise<void>

    @@ -385,7 +390,7 @@

    vaultExists

  • @@ -414,56 +419,101 @@

    Returns boolean Globals

  • +
  • + "proto/js/Agent.d" +
  • +
  • + "proto/js/Git.d" +
  • +
  • + "proto/js/Peer.d" +
  • +
  • + "src/lib/Polykey" +
  • +
  • + "src/lib/agent/PolykeyAgent" +
  • +
  • + "src/lib/agent/PolykeyClient" +
  • +
  • + "src/lib/keys/KeyManager" +
  • +
  • + "src/lib/keys/KeyManagerWorker" +
  • +
  • + "src/lib/keys/pki/PublicKeyInfrastructure" +
  • +
  • + "src/lib/peers/MulticastBroadcaster" +
  • +
  • + "src/lib/peers/PeerInfo" +
  • +
  • + "src/lib/peers/PeerManager" +
  • +
  • + "src/lib/utils" +
  • +
  • + "src/lib/vaults/Vault" +
  • +
  • + "src/lib/vaults/VaultManager" +
  • - + @@ -1460,20 +154,18 @@

    Returns PromiseLegend

      -
    • Constructor
    • -
    • Property
    • -
    • Method
    • -
    -
      -
    • Property
    • -
    • Method
    • +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
      -
    • Static property
    • -
    • Static method
    • +
    • Interface
      -
    • Inherited method
    • +
    • Class
    diff --git a/docs/index.html b/docs/index.html index efdf9c9c7..087ee98cc 100644 --- a/docs/index.html +++ b/docs/index.html @@ -38,6 +38,8 @@ + + Menu @@ -112,23 +114,28 @@

    Command Line Interface (CLI)

    Here is a demo of the CLI on asciinema.

    The PolyKey CLI exposes various git-style sub commands that can be used to manipulate the PolyKey node:

    +Usage: polykey [options] [command]
    +
    +Options:
    +  --version       output the current version
    +  -h, --help      display help for command
    +
     Commands:
    -  config [options]  configure polykey
    -  keymanager        manipulate the keymanager
    -  node              network operations on the current polykey node
    -  secrets           manipulate secrets for a given vault
    -  vaults            manipulate vaults
    -  crypto            crypto operations
    -  help [command]    display help for command
    +  keys            manipulate keys
    +  secrets         manipulate secrets for a given vault
    +  vaults          manipulate vaults
    +  crypto          crypto operations
    +  agent           control the polykey agent
    +  help [command]  display help for command
     

    Usage looks like the following:

    -polykey node ...
    +polykey agent ...
     polykey vaults ...
     
     # Sub commands are heirarchical like so:
    -polykey vaults add ...
    -polykey secrets remove ...
    +polykey vaults new ...
    +polykey secrets delete ...
     

    PolyKey also exposes a helpful alias, pk, to make typing out commands a little quicker:

    @@ -140,118 +147,203 @@ 

    Command Line Interface (CLI)

    # Either one of -h or --help will do pk -h pk vaults --help -pk secrets add -h +pk secrets new -h
    - -

    Config

    +
    +

    Agent

    -

    With this command you can manipulate the configuration of PolyKey including changing the password, importing new private and public keys and changing the path to polykey.

    +

    With this command you can manipulate the polykey agent including starting/restarting/stopping the agent, creating/importing a new polykey node, and getting the agent status.

    +Usage: polykey agent [options] [command]
    +
    +control the polykey agent
    +
     Options:
    -  -pub, --public-key                    provide the path to an existing public key
    -  -priv, --private-key                 provide the path to an existing private key
    -  -pass, --private-passphrase   provide the passphrase to the private key
    -  -path, --polykey-path               provide the polykey path. defaults to ~/.polykey
    -  -v, --verbose                                    increase verbosity by one level
    +  -h, --help         display help for command
    +
    +Commands:
    +  start [options]    start the agent
    +  restart [options]  restart the agent
    +  status             retrieve the status of the agent
    +  stop [options]     stop the agent
    +  list|ls [options]  list all the nodes controlled by the node
    +  create [options]   create a new polykey node
    +  load [options]     load an existing polykey node
    +  help [command]     display help for command
     

    Example usage:

    -# Change the location of PolyKey, perhaps to another node on the same computer
    -pk config --polykey-path='~/PolyKeyNode2'
    +# managing the polykey agent
    +pk agent stop
    +pk agent start
    +# restart the agent as a daemon
    +pk agent restart -d
    +pk agent status # agent status is 'online'
     
    -# Import a new public key
    -pk config -pub ./keys/publicKey.txt
    -
    -

    You can also easily clear the config to start fresh:

    -
    -pk config clear
    -
    -

    If one of the required configuration parameters is missing from the config store, PolyKey will prompt you for it on the next command.

    - -

    KeyManager

    -
    -

    This command is used to interact with PolyKey's KeyManager. With this command you can generate new keys, import keys and more. - TODO: add commands to interact with the keymanager

    -
    -Commands:
    -  derive [options]  manipulate the keymanager
    +# create a new polykey node
    +pk agent create -k '~/NewPolykeyNode' -n 'John Smith' -e 'john@email.com' -p 'passphrase'
    +
    +# load an existing node
    +pk agent load -k '~/NewPolykeyNode' -p 'passphrase'
    +
    +# list the nodes managed by agent
    +pk agent list # ~/NewPolykeyNode
     
    - -

    Node

    +

    Note: Polykey also provides the ability to set an environment variable, KEYNODE_PATH, instead of specifying the node path with -k '~/NewPolykeyNode'

    +
    +

    Keys

    -

    The node sub command lets you control the daemon responsible for network operations.

    +

    This command is used to interact with PolyKey's KeyManager. With this command you can generate new keys, list keys and more.

    +Usage: polykey keys [options] [command]
    +
    +manipulate keys
    +
    +Options:
    +  -h, --help         display help for command
    +
     Commands:
    -  start           start the polykey node
    -  stop            stop the polykey node
    +  new [options]      derive a new symmetric key
    +  delete [options]   delete a symmetric key from the key manager
    +  list|ls [options]  list all symmetric keys in the keynode
    +  get [options]      get the contents of a specific symmetric key
    +  primary [options]  get the contents of the primary keypair
    +  help [command]     display help for command
     
    -

    TODO: add commands to interact with the node

    +

    Example usage:

    +# create a new key
    +pk keys new -n 'NewKey' -p 'Key Passphrase'
    +
    +# deleting an existing key
    +pk keys delete -n 'NewKey'
    +
    +# list all existing keys
    +pk keys list # 'NewKey'
    +
    +# list primary key with private key included
    +pk keys primary -p
    +# Public Key:
    +# -----BEGIN PGP PUBLIC KEY BLOCK-----
    +# ...
    +# -----END PGP PUBLIC KEY BLOCK-----
    +#
    +# Private Key:
    +# -----BEGIN PGP PRIVATE KEY BLOCK-----
    +# ...
    +# -----END PGP PRIVATE KEY BLOCK-----
     

    Vaults

    The vaults sub command lets you manipulate vaults, e.g. to list the existing vaults, add a new vault or destroy an old vault.

    +Usage: polykey vaults [options] [command]
    +
    +manipulate vaults
    +
    +Options:
    +  -h, --help            display help for command
    +
     Commands:
    -  list|ls [options]  list all available vaults
    -  add                create new vault(s)
    -  remove [options]   destroy an existing vault
    +  list|ls [options]     list all available vaults
    +  new [options]         create new vault(s)
    +  delete|del [options]  delete an existing vault
    +  help [command]        display help for command
     
    -

    Command examples:

    +

    Example usage:

    -# List names of all existing vaults
    -pk vaults ls
    -
    -# Create a new vault called 'SecureVault'
    -pk vaults add 'SecureVault'
    +# create a new vault
    +pk vaults add 'NewVault'
     
    -# Remove 'SecureVault'
    -pk vaults remove --vault-name='SecureVault'
    +# list all existing vaults
    +pk vaults ls # 'NewVault'
     
    -# Remove all vaults at once
    -pk vaults remove -a
    +# delete a vault
    +pk vaults delete 'NewVault'
     

    Secrets

    -

    The secrets sub command lets you manipulate secrets in a specific vault including to add new secrets, remove old secrets and modify existing secrets.

    +

    The secrets sub command lets you manipulate secrets in a specific vault such as adding new secrets, removing old secrets or modifying existing secrets. In addition, polykey can inject variables into a modified environment with the pk secrets env command.

    +Usage: polykey secrets [options] [command]
    +
    +manipulate secrets for a given vault
    +
    +Options:
    +  -h, --help            display help for command
    +
     Commands:
    -  list|ls [options]  list all available secrets for a given vault
    -  add [options]      add a secret to a given vault
    -  remove [options]   remove a secret from a given vault
    +  list|ls [options]     list all available secrets for a given vault
    +  new [options]         create a secret within a given vault, specify an secret
    +                        path with '<vaultName>:<secretName>'
    +  update [options]      update a secret within a given vault, specify an secret
    +                        path with '<vaultName>:<secretName>'
    +  delete|del [options]  delete a secret from a given vault, specify an secret
    +                        path with '<vaultName>:<secretName>'
    +  get [options]         retrieve a secret from a given vault, specify an secret
    +                        path with '<vaultName>:<secretName>'
    +  env [options]         run a modified environment with injected secrets,
    +                        specify an secret path with '<vaultName>:<secretName>'
    +  help [command]        display help for command
     
    -

    Command examples:

    +

    Example usage:

    -# List names of all secrets within 'SecureVault'
    -pk secrets list --vault-name='SecureVault'
    +# add a new secret
    +pk secrets add -f '~/SeretFile' NewVault:NewSecret
     
    -# Add a new secret named 'Secret' to 'SecureVault
    -pk secrets add --vault-name='SecureVault' --secret-name='Secret'
    +# list names of all secrets within specific vaults
    +pk secrets list NewVault AnotherVault
    +# 1. NewVault:NewSecret
    +# 2. AnotherVault:AnotherSecret
     
    -# Remove 'Secret' from 'SecureVault'
    -pk secrets remove --vault-name='SecureVault' --secret-name='Secret'
    +# delete secrets
    +pk secrets delete NewVault:NewSecret AnotherVault:AnotherSecret
    +
    +# retreive a secret
    +pk secrets get NewVault:NewSecret
    +# <NewSecretContent>
    +
    +# enter a modified environment with injected secrets
    +pk secrets env NewVault:NewSecret=SECRET_1 AnotherVault:AnotherSecret=SECRET_2
    +
    +# enter a modified environment with injected secrets and execute a command
    +pk secrets env NewVault:NewSecret=SECRET_1 --command="echo $SECRET_1"
     

    Crypto

    -

    The crypto sub command allows you to perform asymmetric cryptography operations (sign/encrypt/verify/decrypt) on files using the loaded public/prvate keypair. - PolyKey signs and verifies files using a detached signature - TODO: add encryption and decryption

    -
    Commands:
    -  sign [options]    verification operations
    -  verify [options]  signing operations

    Command examples:

    -
    pk crypto sign ./file --signing-key='./my_priv_key' --key-passphrase='password'
    +				

    The crypto sub command allows you to perform asymmetric cryptography operations (sign/encrypt/verify/decrypt) on files using the loaded public/prvate keypair.

    +
    +Usage: polykey crypto [options] [command]
     
    -# If no signing key is provided, polykey will use the loaded private key
    -pk crypto sign ./file
    +crypto operations
     
    +Options:
    +  -h, --help         display help for command
     
    -pk crypto verify ./signed_file --verifying-key='./my_pub_key' --detach-sig='./signed_file.sig'
    +Commands:
    +  verify [options]   verification operations
    +  sign [options]     signing operations [files]
    +  encrypt [options]  encryption operations
    +  decrypt [options]  decryption operations
    +  help [command]     display help for command
    +
    +

    Example usage:

    +
    +# sign a file and store as a detached signature
    +pk crypto sign ./file # creates ./file.sig
     
    -# If no  verifying key is provided, polykey will use the loaded public key
    -pk crypto verify ./signed_file --detach-sig='./signed_file.sig'
    +# verify a file +pk crypto verify -f ./file.sig + +# encrypt a file +pk crypto encrypt ./file + +# decrypt a file +pk crypto decrypt ./file +

    Verbosity

    @@ -272,240 +364,57 @@

    Proto Files

  • Globals
  • - - - + @@ -514,20 +423,18 @@

    Proto Files

    Legend

      -
    • Constructor
    • -
    • Property
    • -
    • Method
    • -
    -
      -
    • Property
    • -
    • Method
    • +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
      -
    • Static property
    • -
    • Static method
    • +
    • Interface
      -
    • Inherited method
    • +
    • Class
    diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.iagentmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.iagentmessage.html new file mode 100644 index 000000000..49833102c --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.iagentmessage.html @@ -0,0 +1,296 @@ + + + + + + IAgentMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IAgentMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of an AgentMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IAgentMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional isResponse

    +
    isResponse: undefined | null | false | true
    + +
    +
    +

    AgentMessage isResponse

    +
    +
    +
    +
    + +

    Optional nodePath

    +
    nodePath: undefined | null | string
    + +
    +
    +

    AgentMessage nodePath

    +
    +
    +
    +
    + +

    Optional subMessage

    +
    subMessage: undefined | null | Uint8Array
    + +
    +
    +

    AgentMessage subMessage

    +
    +
    +
    +
    + +

    Optional type

    + + +
    +
    +

    AgentMessage type

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.icreatesecretrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.icreatesecretrequestmessage.html new file mode 100644 index 000000000..2bb6f784b --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.icreatesecretrequestmessage.html @@ -0,0 +1,296 @@ + + + + + + ICreateSecretRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface ICreateSecretRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a CreateSecretRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + ICreateSecretRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional secretContent

    +
    secretContent: undefined | null | Uint8Array
    + +
    +
    +

    CreateSecretRequestMessage secretContent

    +
    +
    +
    +
    + +

    Optional secretName

    +
    secretName: undefined | null | string
    + +
    +
    +

    CreateSecretRequestMessage secretName

    +
    +
    +
    +
    + +

    Optional secretPath

    +
    secretPath: undefined | null | string
    + +
    +
    +

    CreateSecretRequestMessage secretPath

    +
    +
    +
    +
    + +

    Optional vaultName

    +
    vaultName: undefined | null | string
    + +
    +
    +

    CreateSecretRequestMessage vaultName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.icreatesecretresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.icreatesecretresponsemessage.html new file mode 100644 index 000000000..43ed184f0 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.icreatesecretresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + ICreateSecretResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface ICreateSecretResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a CreateSecretResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + ICreateSecretResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional successful

    +
    successful: undefined | null | false | true
    + +
    +
    +

    CreateSecretResponseMessage successful

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.idecryptfilerequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.idecryptfilerequestmessage.html new file mode 100644 index 000000000..a5fd38c9b --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.idecryptfilerequestmessage.html @@ -0,0 +1,277 @@ + + + + + + IDecryptFileRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IDecryptFileRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a DecryptFileRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IDecryptFileRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional filePath

    +
    filePath: undefined | null | string
    + +
    +
    +

    DecryptFileRequestMessage filePath

    +
    +
    +
    +
    + +

    Optional passphrase

    +
    passphrase: undefined | null | string
    + +
    +
    +

    DecryptFileRequestMessage passphrase

    +
    +
    +
    +
    + +

    Optional privateKeyPath

    +
    privateKeyPath: undefined | null | string
    + +
    +
    +

    DecryptFileRequestMessage privateKeyPath

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.idecryptfileresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.idecryptfileresponsemessage.html new file mode 100644 index 000000000..ba57e40a3 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.idecryptfileresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IDecryptFileResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IDecryptFileResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a DecryptFileResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IDecryptFileResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional decryptedPath

    +
    decryptedPath: undefined | null | string
    + +
    +
    +

    DecryptFileResponseMessage decryptedPath

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.ideletekeyrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.ideletekeyrequestmessage.html new file mode 100644 index 000000000..acc701e3e --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.ideletekeyrequestmessage.html @@ -0,0 +1,239 @@ + + + + + + IDeleteKeyRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IDeleteKeyRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a DeleteKeyRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IDeleteKeyRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional keyName

    +
    keyName: undefined | null | string
    + +
    +
    +

    DeleteKeyRequestMessage keyName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.ideletekeyresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.ideletekeyresponsemessage.html new file mode 100644 index 000000000..80365b781 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.ideletekeyresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IDeleteKeyResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IDeleteKeyResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a DeleteKeyResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IDeleteKeyResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional successful

    +
    successful: undefined | null | false | true
    + +
    +
    +

    DeleteKeyResponseMessage successful

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.iderivekeyrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.iderivekeyrequestmessage.html new file mode 100644 index 000000000..23f0284b7 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.iderivekeyrequestmessage.html @@ -0,0 +1,277 @@ + + + + + + IDeriveKeyRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IDeriveKeyRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a DeriveKeyRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IDeriveKeyRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional keyName

    +
    keyName: undefined | null | string
    + +
    +
    +

    DeriveKeyRequestMessage keyName

    +
    +
    +
    +
    + +

    Optional passphrase

    +
    passphrase: undefined | null | string
    + +
    +
    +

    DeriveKeyRequestMessage passphrase

    +
    +
    +
    +
    + +

    Optional vaultName

    +
    vaultName: undefined | null | string
    + +
    +
    +

    DeriveKeyRequestMessage vaultName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.iderivekeyresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.iderivekeyresponsemessage.html new file mode 100644 index 000000000..c9a148890 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.iderivekeyresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IDeriveKeyResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IDeriveKeyResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a DeriveKeyResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IDeriveKeyResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional successful

    +
    successful: undefined | null | false | true
    + +
    +
    +

    DeriveKeyResponseMessage successful

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.idestroysecretrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.idestroysecretrequestmessage.html new file mode 100644 index 000000000..5cd6cbdb9 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.idestroysecretrequestmessage.html @@ -0,0 +1,258 @@ + + + + + + IDestroySecretRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IDestroySecretRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a DestroySecretRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IDestroySecretRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional secretName

    +
    secretName: undefined | null | string
    + +
    +
    +

    DestroySecretRequestMessage secretName

    +
    +
    +
    +
    + +

    Optional vaultName

    +
    vaultName: undefined | null | string
    + +
    +
    +

    DestroySecretRequestMessage vaultName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.idestroysecretresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.idestroysecretresponsemessage.html new file mode 100644 index 000000000..122ace64a --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.idestroysecretresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IDestroySecretResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IDestroySecretResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a DestroySecretResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IDestroySecretResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional successful

    +
    successful: undefined | null | false | true
    + +
    +
    +

    DestroySecretResponseMessage successful

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.idestroyvaultrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.idestroyvaultrequestmessage.html new file mode 100644 index 000000000..885838a94 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.idestroyvaultrequestmessage.html @@ -0,0 +1,239 @@ + + + + + + IDestroyVaultRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IDestroyVaultRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a DestroyVaultRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IDestroyVaultRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional vaultName

    +
    vaultName: undefined | null | string
    + +
    +
    +

    DestroyVaultRequestMessage vaultName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.idestroyvaultresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.idestroyvaultresponsemessage.html new file mode 100644 index 000000000..7b830bb65 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.idestroyvaultresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IDestroyVaultResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IDestroyVaultResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a DestroyVaultResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IDestroyVaultResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional successful

    +
    successful: undefined | null | false | true
    + +
    +
    +

    DestroyVaultResponseMessage successful

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.iencryptfilerequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.iencryptfilerequestmessage.html new file mode 100644 index 000000000..bc2607269 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.iencryptfilerequestmessage.html @@ -0,0 +1,258 @@ + + + + + + IEncryptFileRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IEncryptFileRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of an EncryptFileRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IEncryptFileRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional filePath

    +
    filePath: undefined | null | string
    + +
    +
    +

    EncryptFileRequestMessage filePath

    +
    +
    +
    +
    + +

    Optional publicKeyPath

    +
    publicKeyPath: undefined | null | string
    + +
    +
    +

    EncryptFileRequestMessage publicKeyPath

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.iencryptfileresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.iencryptfileresponsemessage.html new file mode 100644 index 000000000..1026446cc --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.iencryptfileresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IEncryptFileResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IEncryptFileResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of an EncryptFileResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IEncryptFileResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional encryptedPath

    +
    encryptedPath: undefined | null | string
    + +
    +
    +

    EncryptFileResponseMessage encryptedPath

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.ierrormessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.ierrormessage.html new file mode 100644 index 000000000..d214f97ff --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.ierrormessage.html @@ -0,0 +1,239 @@ + + + + + + IErrorMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IErrorMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of an ErrorMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IErrorMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional error

    +
    error: undefined | null | string
    + +
    +
    +

    ErrorMessage error

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.igetkeyrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.igetkeyrequestmessage.html new file mode 100644 index 000000000..fbc571b83 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.igetkeyrequestmessage.html @@ -0,0 +1,239 @@ + + + + + + IGetKeyRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IGetKeyRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a GetKeyRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IGetKeyRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional keyName

    +
    keyName: undefined | null | string
    + +
    +
    +

    GetKeyRequestMessage keyName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.igetkeyresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.igetkeyresponsemessage.html new file mode 100644 index 000000000..9da4e2a2a --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.igetkeyresponsemessage.html @@ -0,0 +1,258 @@ + + + + + + IGetKeyResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IGetKeyResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a GetKeyResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IGetKeyResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional keyContent

    +
    keyContent: undefined | null | string
    + +
    +
    +

    GetKeyResponseMessage keyContent

    +
    +
    +
    +
    + +

    Optional keyName

    +
    keyName: undefined | null | string
    + +
    +
    +

    GetKeyResponseMessage keyName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairrequestmessage.html new file mode 100644 index 000000000..80f190cd3 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairrequestmessage.html @@ -0,0 +1,239 @@ + + + + + + IGetPrimaryKeyPairRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IGetPrimaryKeyPairRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a GetPrimaryKeyPairRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IGetPrimaryKeyPairRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional includePrivateKey

    +
    includePrivateKey: undefined | null | false | true
    + +
    +
    +

    GetPrimaryKeyPairRequestMessage includePrivateKey

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairresponsemessage.html new file mode 100644 index 000000000..360567486 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.igetprimarykeypairresponsemessage.html @@ -0,0 +1,258 @@ + + + + + + IGetPrimaryKeyPairResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IGetPrimaryKeyPairResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a GetPrimaryKeyPairResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IGetPrimaryKeyPairResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional privateKey

    +
    privateKey: undefined | null | string
    + +
    +
    +

    GetPrimaryKeyPairResponseMessage privateKey

    +
    +
    +
    +
    + +

    Optional publicKey

    +
    publicKey: undefined | null | string
    + +
    +
    +

    GetPrimaryKeyPairResponseMessage publicKey

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.igetsecretrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.igetsecretrequestmessage.html new file mode 100644 index 000000000..8be38066d --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.igetsecretrequestmessage.html @@ -0,0 +1,258 @@ + + + + + + IGetSecretRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IGetSecretRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a GetSecretRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IGetSecretRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional secretName

    +
    secretName: undefined | null | string
    + +
    +
    +

    GetSecretRequestMessage secretName

    +
    +
    +
    +
    + +

    Optional vaultName

    +
    vaultName: undefined | null | string
    + +
    +
    +

    GetSecretRequestMessage vaultName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.igetsecretresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.igetsecretresponsemessage.html new file mode 100644 index 000000000..e4102ab2f --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.igetsecretresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IGetSecretResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IGetSecretResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a GetSecretResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IGetSecretResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional secret

    +
    secret: undefined | null | Uint8Array
    + +
    +
    +

    GetSecretResponseMessage secret

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistkeysrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistkeysrequestmessage.html new file mode 100644 index 000000000..bbd196cbb --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistkeysrequestmessage.html @@ -0,0 +1,202 @@ + + + + + + IListKeysRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IListKeysRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a ListKeysRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IListKeysRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistkeysresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistkeysresponsemessage.html new file mode 100644 index 000000000..f3933f428 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistkeysresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IListKeysResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IListKeysResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a ListKeysResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IListKeysResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional keyNames

    +
    keyNames: undefined | null | string[]
    + +
    +
    +

    ListKeysResponseMessage keyNames

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistnodesrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistnodesrequestmessage.html new file mode 100644 index 000000000..2e1c2c4ab --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistnodesrequestmessage.html @@ -0,0 +1,239 @@ + + + + + + IListNodesRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IListNodesRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a ListNodesRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IListNodesRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional unlockedOnly

    +
    unlockedOnly: undefined | null | false | true
    + +
    +
    +

    ListNodesRequestMessage unlockedOnly

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistnodesresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistnodesresponsemessage.html new file mode 100644 index 000000000..0bd88167d --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistnodesresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IListNodesResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IListNodesResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a ListNodesResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IListNodesResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional nodes

    +
    nodes: undefined | null | string[]
    + +
    +
    +

    ListNodesResponseMessage nodes

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistsecretsrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistsecretsrequestmessage.html new file mode 100644 index 000000000..6f711395a --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistsecretsrequestmessage.html @@ -0,0 +1,239 @@ + + + + + + IListSecretsRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IListSecretsRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a ListSecretsRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IListSecretsRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional vaultName

    +
    vaultName: undefined | null | string
    + +
    +
    +

    ListSecretsRequestMessage vaultName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistsecretsresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistsecretsresponsemessage.html new file mode 100644 index 000000000..99bedda0e --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistsecretsresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IListSecretsResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IListSecretsResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a ListSecretsResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IListSecretsResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional secretNames

    +
    secretNames: undefined | null | string[]
    + +
    +
    +

    ListSecretsResponseMessage secretNames

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistvaultsrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistvaultsrequestmessage.html new file mode 100644 index 000000000..9cb70fdbe --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistvaultsrequestmessage.html @@ -0,0 +1,202 @@ + + + + + + IListVaultsRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IListVaultsRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a ListVaultsRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IListVaultsRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistvaultsresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistvaultsresponsemessage.html new file mode 100644 index 000000000..e5ffafb2b --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.ilistvaultsresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IListVaultsResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IListVaultsResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a ListVaultsResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IListVaultsResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional vaultNames

    +
    vaultNames: undefined | null | string[]
    + +
    +
    +

    ListVaultsResponseMessage vaultNames

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.inewnoderequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.inewnoderequestmessage.html new file mode 100644 index 000000000..d06d46051 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.inewnoderequestmessage.html @@ -0,0 +1,296 @@ + + + + + + INewNodeRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface INewNodeRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a NewNodeRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + INewNodeRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional email

    +
    email: undefined | null | string
    + +
    +
    +

    NewNodeRequestMessage email

    +
    +
    +
    +
    + +

    Optional name

    +
    name: undefined | null | string
    + +
    +
    +

    NewNodeRequestMessage name

    +
    +
    +
    +
    + +

    Optional nbits

    +
    nbits: undefined | null | number
    + +
    +
    +

    NewNodeRequestMessage nbits

    +
    +
    +
    +
    + +

    Optional passphrase

    +
    passphrase: undefined | null | string
    + +
    +
    +

    NewNodeRequestMessage passphrase

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.inewnoderesponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.inewnoderesponsemessage.html new file mode 100644 index 000000000..28a707996 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.inewnoderesponsemessage.html @@ -0,0 +1,239 @@ + + + + + + INewNodeResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface INewNodeResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a NewNodeResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + INewNodeResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional successful

    +
    successful: undefined | null | false | true
    + +
    +
    +

    NewNodeResponseMessage successful

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.inewvaultrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.inewvaultrequestmessage.html new file mode 100644 index 000000000..c98625a80 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.inewvaultrequestmessage.html @@ -0,0 +1,239 @@ + + + + + + INewVaultRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface INewVaultRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a NewVaultRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + INewVaultRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional vaultName

    +
    vaultName: undefined | null | string
    + +
    +
    +

    NewVaultRequestMessage vaultName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.inewvaultresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.inewvaultresponsemessage.html new file mode 100644 index 000000000..3790472ee --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.inewvaultresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + INewVaultResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface INewVaultResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a NewVaultResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + INewVaultResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional successful

    +
    successful: undefined | null | false | true
    + +
    +
    +

    NewVaultResponseMessage successful

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.iregisternoderequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.iregisternoderequestmessage.html new file mode 100644 index 000000000..019a891b5 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.iregisternoderequestmessage.html @@ -0,0 +1,239 @@ + + + + + + IRegisterNodeRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IRegisterNodeRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a RegisterNodeRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IRegisterNodeRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional passphrase

    +
    passphrase: undefined | null | string
    + +
    +
    +

    RegisterNodeRequestMessage passphrase

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.iregisternoderesponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.iregisternoderesponsemessage.html new file mode 100644 index 000000000..053e5befa --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.iregisternoderesponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IRegisterNodeResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IRegisterNodeResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a RegisterNodeResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IRegisterNodeResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional successful

    +
    successful: undefined | null | false | true
    + +
    +
    +

    RegisterNodeResponseMessage successful

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.isignfilerequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.isignfilerequestmessage.html new file mode 100644 index 000000000..e13889ae8 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.isignfilerequestmessage.html @@ -0,0 +1,277 @@ + + + + + + ISignFileRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface ISignFileRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a SignFileRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + ISignFileRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional filePath

    +
    filePath: undefined | null | string
    + +
    +
    +

    SignFileRequestMessage filePath

    +
    +
    +
    +
    + +

    Optional passphrase

    +
    passphrase: undefined | null | string
    + +
    +
    +

    SignFileRequestMessage passphrase

    +
    +
    +
    +
    + +

    Optional privateKeyPath

    +
    privateKeyPath: undefined | null | string
    + +
    +
    +

    SignFileRequestMessage privateKeyPath

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.isignfileresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.isignfileresponsemessage.html new file mode 100644 index 000000000..672473d23 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.isignfileresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + ISignFileResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface ISignFileResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a SignFileResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + ISignFileResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional signaturePath

    +
    signaturePath: undefined | null | string
    + +
    +
    +

    SignFileResponseMessage signaturePath

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretrequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretrequestmessage.html new file mode 100644 index 000000000..06ef8e609 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretrequestmessage.html @@ -0,0 +1,296 @@ + + + + + + IUpdateSecretRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IUpdateSecretRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of an UpdateSecretRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IUpdateSecretRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional secretContent

    +
    secretContent: undefined | null | Uint8Array
    + +
    +
    +

    UpdateSecretRequestMessage secretContent

    +
    +
    +
    +
    + +

    Optional secretName

    +
    secretName: undefined | null | string
    + +
    +
    +

    UpdateSecretRequestMessage secretName

    +
    +
    +
    +
    + +

    Optional secretPath

    +
    secretPath: undefined | null | string
    + +
    +
    +

    UpdateSecretRequestMessage secretPath

    +
    +
    +
    +
    + +

    Optional vaultName

    +
    vaultName: undefined | null | string
    + +
    +
    +

    UpdateSecretRequestMessage vaultName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretresponsemessage.html new file mode 100644 index 000000000..170c66b34 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.iupdatesecretresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IUpdateSecretResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IUpdateSecretResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of an UpdateSecretResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IUpdateSecretResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional successful

    +
    successful: undefined | null | false | true
    + +
    +
    +

    UpdateSecretResponseMessage successful

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.iverifyfilerequestmessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.iverifyfilerequestmessage.html new file mode 100644 index 000000000..668d1aa60 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.iverifyfilerequestmessage.html @@ -0,0 +1,258 @@ + + + + + + IVerifyFileRequestMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IVerifyFileRequestMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a VerifyFileRequestMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IVerifyFileRequestMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional filePath

    +
    filePath: undefined | null | string
    + +
    +
    +

    VerifyFileRequestMessage filePath

    +
    +
    +
    +
    + +

    Optional publicKeyPath

    +
    publicKeyPath: undefined | null | string
    + +
    +
    +

    VerifyFileRequestMessage publicKeyPath

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_agent_d_.agent.agent.iverifyfileresponsemessage.html b/docs/interfaces/_proto_js_agent_d_.agent.agent.iverifyfileresponsemessage.html new file mode 100644 index 000000000..9b34bc118 --- /dev/null +++ b/docs/interfaces/_proto_js_agent_d_.agent.agent.iverifyfileresponsemessage.html @@ -0,0 +1,239 @@ + + + + + + IVerifyFileResponseMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IVerifyFileResponseMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a VerifyFileResponseMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IVerifyFileResponseMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional verified

    +
    verified: undefined | null | false | true
    + +
    +
    +

    VerifyFileResponseMessage verified

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_git_d_.git.git.iinforeply.html b/docs/interfaces/_proto_js_git_d_.git.git.iinforeply.html new file mode 100644 index 000000000..1e6ee6917 --- /dev/null +++ b/docs/interfaces/_proto_js_git_d_.git.git.iinforeply.html @@ -0,0 +1,282 @@ + + + + + + IInfoReply | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IInfoReply

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of an InfoReply.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IInfoReply +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional body

    +
    body: undefined | null | Uint8Array
    + +
    +
    +

    InfoReply body

    +
    +
    +
    +
    + +

    Optional vaultName

    +
    vaultName: undefined | null | string
    + +
    +
    +

    InfoReply vaultName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_git_d_.git.git.iinforequest.html b/docs/interfaces/_proto_js_git_d_.git.git.iinforequest.html new file mode 100644 index 000000000..83e8dfd31 --- /dev/null +++ b/docs/interfaces/_proto_js_git_d_.git.git.iinforequest.html @@ -0,0 +1,263 @@ + + + + + + IInfoRequest | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IInfoRequest

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of an InfoRequest.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IInfoRequest +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional vaultName

    +
    vaultName: undefined | null | string
    + +
    +
    +

    InfoRequest vaultName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_git_d_.git.git.ipackreply.html b/docs/interfaces/_proto_js_git_d_.git.git.ipackreply.html new file mode 100644 index 000000000..4e95fa5a0 --- /dev/null +++ b/docs/interfaces/_proto_js_git_d_.git.git.ipackreply.html @@ -0,0 +1,282 @@ + + + + + + IPackReply | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IPackReply

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a PackReply.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IPackReply +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional body

    +
    body: undefined | null | Uint8Array
    + +
    +
    +

    PackReply body

    +
    +
    +
    +
    + +

    Optional vaultName

    +
    vaultName: undefined | null | string
    + +
    +
    +

    PackReply vaultName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_git_d_.git.git.ipackrequest.html b/docs/interfaces/_proto_js_git_d_.git.git.ipackrequest.html new file mode 100644 index 000000000..d80b9718d --- /dev/null +++ b/docs/interfaces/_proto_js_git_d_.git.git.ipackrequest.html @@ -0,0 +1,282 @@ + + + + + + IPackRequest | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IPackRequest

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a PackRequest.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IPackRequest +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional body

    +
    body: undefined | null | Uint8Array
    + +
    +
    +

    PackRequest body

    +
    +
    +
    +
    + +

    Optional vaultName

    +
    vaultName: undefined | null | string
    + +
    +
    +

    PackRequest vaultName

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_peer_d_.peer.peer.ihandshakemessage.html b/docs/interfaces/_proto_js_peer_d_.peer.peer.ihandshakemessage.html new file mode 100644 index 000000000..27dfe4186 --- /dev/null +++ b/docs/interfaces/_proto_js_peer_d_.peer.peer.ihandshakemessage.html @@ -0,0 +1,305 @@ + + + + + + IHandshakeMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IHandshakeMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a HandshakeMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IHandshakeMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional message

    +
    message: undefined | null | Uint8Array
    + +
    +
    +

    HandshakeMessage message

    +
    +
    +
    +
    + +

    Optional requestingPubKey

    +
    requestingPubKey: undefined | null | Uint8Array
    + +
    +
    +

    HandshakeMessage requestingPubKey

    +
    +
    +
    +
    + +

    Optional responsePeerInfo

    +
    responsePeerInfo: undefined | null | Uint8Array
    + +
    +
    +

    HandshakeMessage responsePeerInfo

    +
    +
    +
    +
    + +

    Optional targetPubKey

    +
    targetPubKey: undefined | null | Uint8Array
    + +
    +
    +

    HandshakeMessage targetPubKey

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/_proto_js_peer_d_.peer.peer.ipeerinfomessage.html b/docs/interfaces/_proto_js_peer_d_.peer.peer.ipeerinfomessage.html new file mode 100644 index 000000000..c0a6b3d5e --- /dev/null +++ b/docs/interfaces/_proto_js_peer_d_.peer.peer.ipeerinfomessage.html @@ -0,0 +1,286 @@ + + + + + + IPeerInfoMessage | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface IPeerInfoMessage

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Properties of a PeerInfoMessage.

    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + IPeerInfoMessage +
    • +
    +
    +
    +

    Implemented by

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional addresses

    +
    addresses: undefined | null | string[]
    + +
    +
    +

    PeerInfoMessage addresses

    +
    +
    +
    +
    + +

    Optional connectedAddr

    +
    connectedAddr: undefined | null | string
    + +
    +
    +

    PeerInfoMessage connectedAddr

    +
    +
    +
    +
    + +

    Optional pubKey

    +
    pubKey: undefined | null | string
    + +
    +
    +

    PeerInfoMessage pubKey

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    • Property
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/interfaces/socialdiscovery.html b/docs/interfaces/_src_lib_peers_peermanager_.socialdiscovery.html similarity index 57% rename from docs/interfaces/socialdiscovery.html rename to docs/interfaces/_src_lib_peers_peermanager_.socialdiscovery.html index 843cb7cbf..597645813 100644 --- a/docs/interfaces/socialdiscovery.html +++ b/docs/interfaces/_src_lib_peers_peermanager_.socialdiscovery.html @@ -38,6 +38,8 @@ + + Menu @@ -52,7 +54,10 @@ Globals
  • - SocialDiscovery + "src/lib/peers/PeerManager" +
  • +
  • + SocialDiscovery
  • Interface SocialDiscovery

    @@ -77,13 +82,13 @@

    Index

    Properties

    Methods

    @@ -97,7 +102,7 @@

    name

    name: string
    @@ -114,7 +119,7 @@

    findUser

  • Parameters

    @@ -138,25 +143,79 @@

    Returns Promise Globals

  • +
  • + "proto/js/Agent.d" +
  • +
  • + "proto/js/Git.d" +
  • +
  • + "proto/js/Peer.d" +
  • +
  • + "src/lib/Polykey" +
  • +
  • + "src/lib/agent/PolykeyAgent" +
  • +
  • + "src/lib/agent/PolykeyClient" +
  • +
  • + "src/lib/keys/KeyManager" +
  • +
  • + "src/lib/keys/KeyManagerWorker" +
  • +
  • + "src/lib/keys/pki/PublicKeyInfrastructure" +
  • +
  • + "src/lib/peers/MulticastBroadcaster" +
  • +
  • + "src/lib/peers/PeerInfo" +
  • +
  • + "src/lib/peers/PeerManager" +
  • +
  • + "src/lib/utils" +
  • +
  • + "src/lib/vaults/Vault" +
  • +
  • + "src/lib/vaults/VaultManager" +
  • @@ -167,20 +226,20 @@

    Returns PromiseLegend

      -
    • Constructor
    • -
    • Property
    • -
    • Method
    • +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
      +
    • Interface
    • Property
    • Method
      -
    • Static property
    • -
    • Static method
    • -
    -
      -
    • Inherited method
    • +
    • Class
    diff --git a/docs/modules/_proto_js_agent_d_.agent.agent.html b/docs/modules/_proto_js_agent_d_.agent.agent.html new file mode 100644 index 000000000..edff3e5df --- /dev/null +++ b/docs/modules/_proto_js_agent_d_.agent.agent.html @@ -0,0 +1,540 @@ + + + + + + agent | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Namespace agent

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Namespace agent.

    +
    +
    +
    +
    +

    Index

    +
    +
    +
    +

    Enumerations

    + +
    +
    +

    Classes

    + +
    +
    +

    Interfaces

    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_proto_js_agent_d_.agent.html b/docs/modules/_proto_js_agent_d_.agent.html new file mode 100644 index 000000000..53bf433c2 --- /dev/null +++ b/docs/modules/_proto_js_agent_d_.agent.html @@ -0,0 +1,181 @@ + + + + + + Agent | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Namespace Agent

    +
    +
    +
    + +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_proto_js_agent_d_.html b/docs/modules/_proto_js_agent_d_.html new file mode 100644 index 000000000..c4153d7d9 --- /dev/null +++ b/docs/modules/_proto_js_agent_d_.html @@ -0,0 +1,173 @@ + + + + + + "proto/js/Agent.d" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "proto/js/Agent.d"

    +
    +
    +
    + +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_proto_js_git_d_.git.git.html b/docs/modules/_proto_js_git_d_.git.git.html new file mode 100644 index 000000000..a437bea6c --- /dev/null +++ b/docs/modules/_proto_js_git_d_.git.git.html @@ -0,0 +1,231 @@ + + + + + + git | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Namespace git

    +
    +
    +
    + +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_proto_js_git_d_.git.html b/docs/modules/_proto_js_git_d_.git.html new file mode 100644 index 000000000..c43a0bac6 --- /dev/null +++ b/docs/modules/_proto_js_git_d_.git.html @@ -0,0 +1,181 @@ + + + + + + Git | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Namespace Git

    +
    +
    +
    + +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_proto_js_git_d_.html b/docs/modules/_proto_js_git_d_.html new file mode 100644 index 000000000..b8ff116bb --- /dev/null +++ b/docs/modules/_proto_js_git_d_.html @@ -0,0 +1,173 @@ + + + + + + "proto/js/Git.d" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "proto/js/Git.d"

    +
    +
    +
    + +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_proto_js_peer_d_.html b/docs/modules/_proto_js_peer_d_.html new file mode 100644 index 000000000..aca96094d --- /dev/null +++ b/docs/modules/_proto_js_peer_d_.html @@ -0,0 +1,173 @@ + + + + + + "proto/js/Peer.d" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "proto/js/Peer.d"

    +
    +
    +
    + +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_proto_js_peer_d_.peer.html b/docs/modules/_proto_js_peer_d_.peer.html new file mode 100644 index 000000000..e3e50a3f1 --- /dev/null +++ b/docs/modules/_proto_js_peer_d_.peer.html @@ -0,0 +1,181 @@ + + + + + + Peer | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Namespace Peer

    +
    +
    +
    + +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_proto_js_peer_d_.peer.peer.html b/docs/modules/_proto_js_peer_d_.peer.peer.html new file mode 100644 index 000000000..9608498d4 --- /dev/null +++ b/docs/modules/_proto_js_peer_d_.peer.peer.html @@ -0,0 +1,211 @@ + + + + + + peer | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Namespace peer

    +
    +
    +
    + +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_src_lib_agent_polykeyagent_.html b/docs/modules/_src_lib_agent_polykeyagent_.html new file mode 100644 index 000000000..ab348b83f --- /dev/null +++ b/docs/modules/_src_lib_agent_polykeyagent_.html @@ -0,0 +1,781 @@ + + + + + + "src/lib/agent/PolykeyAgent" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "src/lib/agent/PolykeyAgent"

    +
    +
    +
    +
    +
    +
    +
    +

    Index

    +
    + +
    +
    +
    +

    Variables

    +
    + +

    AgentMessage

    +
    AgentMessage: AgentMessage
    + +
    +
    + +

    AgentMessageType

    +
    AgentMessageType: AgentMessageType
    + +
    +
    + +

    CreateSecretRequestMessage

    +
    CreateSecretRequestMessage: CreateSecretRequestMessage
    + +
    +
    + +

    CreateSecretResponseMessage

    +
    CreateSecretResponseMessage: CreateSecretResponseMessage
    + +
    +
    + +

    DecryptFileRequestMessage

    +
    DecryptFileRequestMessage: DecryptFileRequestMessage
    + +
    +
    + +

    DecryptFileResponseMessage

    +
    DecryptFileResponseMessage: DecryptFileResponseMessage
    + +
    +
    + +

    DeleteKeyRequestMessage

    +
    DeleteKeyRequestMessage: DeleteKeyRequestMessage
    + +
    +
    + +

    DeleteKeyResponseMessage

    +
    DeleteKeyResponseMessage: DeleteKeyResponseMessage
    + +
    +
    + +

    DeriveKeyRequestMessage

    +
    DeriveKeyRequestMessage: DeriveKeyRequestMessage
    + +
    +
    + +

    DeriveKeyResponseMessage

    +
    DeriveKeyResponseMessage: DeriveKeyResponseMessage
    + +
    +
    + +

    DestroySecretRequestMessage

    +
    DestroySecretRequestMessage: DestroySecretRequestMessage
    + +
    +
    + +

    DestroySecretResponseMessage

    +
    DestroySecretResponseMessage: DestroySecretResponseMessage
    + +
    +
    + +

    DestroyVaultRequestMessage

    +
    DestroyVaultRequestMessage: DestroyVaultRequestMessage
    + +
    +
    + +

    DestroyVaultResponseMessage

    +
    DestroyVaultResponseMessage: DestroyVaultResponseMessage
    + +
    +
    + +

    EncryptFileRequestMessage

    +
    EncryptFileRequestMessage: EncryptFileRequestMessage
    + +
    +
    + +

    EncryptFileResponseMessage

    +
    EncryptFileResponseMessage: EncryptFileResponseMessage
    + +
    +
    + +

    ErrorMessage

    +
    ErrorMessage: ErrorMessage
    + +
    +
    + +

    GetKeyRequestMessage

    +
    GetKeyRequestMessage: GetKeyRequestMessage
    + +
    +
    + +

    GetKeyResponseMessage

    +
    GetKeyResponseMessage: GetKeyResponseMessage
    + +
    +
    + +

    GetPrimaryKeyPairRequestMessage

    +
    GetPrimaryKeyPairRequestMessage: GetPrimaryKeyPairRequestMessage
    + +
    +
    + +

    GetPrimaryKeyPairResponseMessage

    +
    GetPrimaryKeyPairResponseMessage: GetPrimaryKeyPairResponseMessage
    + +
    +
    + +

    GetSecretRequestMessage

    +
    GetSecretRequestMessage: GetSecretRequestMessage
    + +
    +
    + +

    GetSecretResponseMessage

    +
    GetSecretResponseMessage: GetSecretResponseMessage
    + +
    +
    + +

    ListKeysRequestMessage

    +
    ListKeysRequestMessage: ListKeysRequestMessage
    + +
    +
    + +

    ListKeysResponseMessage

    +
    ListKeysResponseMessage: ListKeysResponseMessage
    + +
    +
    + +

    ListNodesRequestMessage

    +
    ListNodesRequestMessage: ListNodesRequestMessage
    + +
    +
    + +

    ListNodesResponseMessage

    +
    ListNodesResponseMessage: ListNodesResponseMessage
    + +
    +
    + +

    ListSecretsRequestMessage

    +
    ListSecretsRequestMessage: ListSecretsRequestMessage
    + +
    +
    + +

    ListSecretsResponseMessage

    +
    ListSecretsResponseMessage: ListSecretsResponseMessage
    + +
    +
    + +

    ListVaultsRequestMessage

    +
    ListVaultsRequestMessage: ListVaultsRequestMessage
    + +
    +
    + +

    ListVaultsResponseMessage

    +
    ListVaultsResponseMessage: ListVaultsResponseMessage
    + +
    +
    + +

    NewNodeRequestMessage

    +
    NewNodeRequestMessage: NewNodeRequestMessage
    + +
    +
    + +

    NewNodeResponseMessage

    +
    NewNodeResponseMessage: NewNodeResponseMessage
    + +
    +
    + +

    NewVaultRequestMessage

    +
    NewVaultRequestMessage: NewVaultRequestMessage
    + +
    +
    + +

    NewVaultResponseMessage

    +
    NewVaultResponseMessage: NewVaultResponseMessage
    + +
    +
    + +

    RegisterNodeRequestMessage

    +
    RegisterNodeRequestMessage: RegisterNodeRequestMessage
    + +
    +
    + +

    RegisterNodeResponseMessage

    +
    RegisterNodeResponseMessage: RegisterNodeResponseMessage
    + +
    +
    + +

    SignFileRequestMessage

    +
    SignFileRequestMessage: SignFileRequestMessage
    + +
    +
    + +

    SignFileResponseMessage

    +
    SignFileResponseMessage: SignFileResponseMessage
    + +
    +
    + +

    UpdateSecretRequestMessage

    +
    UpdateSecretRequestMessage: UpdateSecretRequestMessage
    + +
    +
    + +

    UpdateSecretResponseMessage

    +
    UpdateSecretResponseMessage: UpdateSecretResponseMessage
    + +
    +
    + +

    VerifyFileRequestMessage

    +
    VerifyFileRequestMessage: VerifyFileRequestMessage
    + +
    +
    + +

    VerifyFileResponseMessage

    +
    VerifyFileResponseMessage: VerifyFileResponseMessage
    + +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_src_lib_agent_polykeyclient_.html b/docs/modules/_src_lib_agent_polykeyclient_.html new file mode 100644 index 000000000..7c2ae7938 --- /dev/null +++ b/docs/modules/_src_lib_agent_polykeyclient_.html @@ -0,0 +1,781 @@ + + + + + + "src/lib/agent/PolykeyClient" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "src/lib/agent/PolykeyClient"

    +
    +
    +
    +
    +
    +
    +
    +

    Index

    +
    + +
    +
    +
    +

    Variables

    +
    + +

    AgentMessage

    +
    AgentMessage: AgentMessage
    + +
    +
    + +

    AgentMessageType

    +
    AgentMessageType: AgentMessageType
    + +
    +
    + +

    CreateSecretRequestMessage

    +
    CreateSecretRequestMessage: CreateSecretRequestMessage
    + +
    +
    + +

    CreateSecretResponseMessage

    +
    CreateSecretResponseMessage: CreateSecretResponseMessage
    + +
    +
    + +

    DecryptFileRequestMessage

    +
    DecryptFileRequestMessage: DecryptFileRequestMessage
    + +
    +
    + +

    DecryptFileResponseMessage

    +
    DecryptFileResponseMessage: DecryptFileResponseMessage
    + +
    +
    + +

    DeleteKeyRequestMessage

    +
    DeleteKeyRequestMessage: DeleteKeyRequestMessage
    + +
    +
    + +

    DeleteKeyResponseMessage

    +
    DeleteKeyResponseMessage: DeleteKeyResponseMessage
    + +
    +
    + +

    DeriveKeyRequestMessage

    +
    DeriveKeyRequestMessage: DeriveKeyRequestMessage
    + +
    +
    + +

    DeriveKeyResponseMessage

    +
    DeriveKeyResponseMessage: DeriveKeyResponseMessage
    + +
    +
    + +

    DestroySecretRequestMessage

    +
    DestroySecretRequestMessage: DestroySecretRequestMessage
    + +
    +
    + +

    DestroySecretResponseMessage

    +
    DestroySecretResponseMessage: DestroySecretResponseMessage
    + +
    +
    + +

    DestroyVaultRequestMessage

    +
    DestroyVaultRequestMessage: DestroyVaultRequestMessage
    + +
    +
    + +

    DestroyVaultResponseMessage

    +
    DestroyVaultResponseMessage: DestroyVaultResponseMessage
    + +
    +
    + +

    EncryptFileRequestMessage

    +
    EncryptFileRequestMessage: EncryptFileRequestMessage
    + +
    +
    + +

    EncryptFileResponseMessage

    +
    EncryptFileResponseMessage: EncryptFileResponseMessage
    + +
    +
    + +

    ErrorMessage

    +
    ErrorMessage: ErrorMessage
    + +
    +
    + +

    GetKeyRequestMessage

    +
    GetKeyRequestMessage: GetKeyRequestMessage
    + +
    +
    + +

    GetKeyResponseMessage

    +
    GetKeyResponseMessage: GetKeyResponseMessage
    + +
    +
    + +

    GetPrimaryKeyPairRequestMessage

    +
    GetPrimaryKeyPairRequestMessage: GetPrimaryKeyPairRequestMessage
    + +
    +
    + +

    GetPrimaryKeyPairResponseMessage

    +
    GetPrimaryKeyPairResponseMessage: GetPrimaryKeyPairResponseMessage
    + +
    +
    + +

    GetSecretRequestMessage

    +
    GetSecretRequestMessage: GetSecretRequestMessage
    + +
    +
    + +

    GetSecretResponseMessage

    +
    GetSecretResponseMessage: GetSecretResponseMessage
    + +
    +
    + +

    ListKeysRequestMessage

    +
    ListKeysRequestMessage: ListKeysRequestMessage
    + +
    +
    + +

    ListKeysResponseMessage

    +
    ListKeysResponseMessage: ListKeysResponseMessage
    + +
    +
    + +

    ListNodesRequestMessage

    +
    ListNodesRequestMessage: ListNodesRequestMessage
    + +
    +
    + +

    ListNodesResponseMessage

    +
    ListNodesResponseMessage: ListNodesResponseMessage
    + +
    +
    + +

    ListSecretsRequestMessage

    +
    ListSecretsRequestMessage: ListSecretsRequestMessage
    + +
    +
    + +

    ListSecretsResponseMessage

    +
    ListSecretsResponseMessage: ListSecretsResponseMessage
    + +
    +
    + +

    ListVaultsRequestMessage

    +
    ListVaultsRequestMessage: ListVaultsRequestMessage
    + +
    +
    + +

    ListVaultsResponseMessage

    +
    ListVaultsResponseMessage: ListVaultsResponseMessage
    + +
    +
    + +

    NewNodeRequestMessage

    +
    NewNodeRequestMessage: NewNodeRequestMessage
    + +
    +
    + +

    NewNodeResponseMessage

    +
    NewNodeResponseMessage: NewNodeResponseMessage
    + +
    +
    + +

    NewVaultRequestMessage

    +
    NewVaultRequestMessage: NewVaultRequestMessage
    + +
    +
    + +

    NewVaultResponseMessage

    +
    NewVaultResponseMessage: NewVaultResponseMessage
    + +
    +
    + +

    RegisterNodeRequestMessage

    +
    RegisterNodeRequestMessage: RegisterNodeRequestMessage
    + +
    +
    + +

    RegisterNodeResponseMessage

    +
    RegisterNodeResponseMessage: RegisterNodeResponseMessage
    + +
    +
    + +

    SignFileRequestMessage

    +
    SignFileRequestMessage: SignFileRequestMessage
    + +
    +
    + +

    SignFileResponseMessage

    +
    SignFileResponseMessage: SignFileResponseMessage
    + +
    +
    + +

    UpdateSecretRequestMessage

    +
    UpdateSecretRequestMessage: UpdateSecretRequestMessage
    + +
    +
    + +

    UpdateSecretResponseMessage

    +
    UpdateSecretResponseMessage: UpdateSecretResponseMessage
    + +
    +
    + +

    VerifyFileRequestMessage

    +
    VerifyFileRequestMessage: VerifyFileRequestMessage
    + +
    +
    + +

    VerifyFileResponseMessage

    +
    VerifyFileResponseMessage: VerifyFileResponseMessage
    + +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_src_lib_keys_keymanager_.html b/docs/modules/_src_lib_keys_keymanager_.html new file mode 100644 index 000000000..a0b1ec1eb --- /dev/null +++ b/docs/modules/_src_lib_keys_keymanager_.html @@ -0,0 +1,266 @@ + + + + + + "src/lib/keys/KeyManager" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "src/lib/keys/KeyManager"

    +
    +
    +
    +
    +
    +
    +
    +

    Index

    +
    +
    +
    +

    Classes

    + +
    +
    +

    Type aliases

    + +
    +
    +
    +
    +
    +

    Type aliases

    +
    + +

    KeyManagerMetadata

    +
    KeyManagerMetadata: { caCertPath: string | null; pkiCertPath: string | null; pkiKeyPath: string | null; privateKeyPath: string | null; publicKeyPath: string | null }
    + +
    +

    Type declaration

    +
      +
    • +
      caCertPath: string | null
      +
    • +
    • +
      pkiCertPath: string | null
      +
    • +
    • +
      pkiKeyPath: string | null
      +
    • +
    • +
      privateKeyPath: string | null
      +
    • +
    • +
      publicKeyPath: string | null
      +
    • +
    +
    +
    +
    + +

    KeyPair

    +
    KeyPair: { private: string | null; public: string | null }
    + +
    +

    Type declaration

    +
      +
    • +
      private: string | null
      +
    • +
    • +
      public: string | null
      +
    • +
    +
    +
    +
    + +

    PKInfo

    +
    PKInfo: { caCert: Buffer | null; cert: Buffer | null; key: Buffer | null }
    + +
    +

    Type declaration

    +
      +
    • +
      caCert: Buffer | null
      +
    • +
    • +
      cert: Buffer | null
      +
    • +
    • +
      key: Buffer | null
      +
    • +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_src_lib_keys_keymanagerworker_.html b/docs/modules/_src_lib_keys_keymanagerworker_.html new file mode 100644 index 000000000..4919173d7 --- /dev/null +++ b/docs/modules/_src_lib_keys_keymanagerworker_.html @@ -0,0 +1,354 @@ + + + + + + "src/lib/keys/KeyManagerWorker" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "src/lib/keys/KeyManagerWorker"

    +
    +
    +
    +
    +
    +
    +
    +

    Index

    +
    +
    +
    +

    Type aliases

    + +
    +
    +

    Object literals

    + +
    +
    +
    +
    +
    +

    Type aliases

    +
    + +

    KeyManagerWorker

    +
    KeyManagerWorker: typeof keyManagerWorker
    + +
    +
    +
    +

    Object literals

    +
    + +

    Const keyManagerWorker

    +
    keyManagerWorker: object
    + +
    + +

    decryptData

    +
      +
    • decryptData(data: Buffer, identity: any): Promise<Buffer>
    • +
    +
      +
    • + +
      +
      +

      Decrypts the given data with the provided identity

      +
      +
      +

      Parameters

      +
        +
      • +
        data: Buffer
        +
        +

        The data to be decrypted

        +
        +
      • +
      • +
        identity: any
        +
        +

        Identity to decrypt with

        +
        +
      • +
      +

      Returns Promise<Buffer>

      +
    • +
    +
    +
    + +

    encryptData

    +
      +
    • encryptData(data: Buffer, identity: any): Promise<string>
    • +
    +
      +
    • + +
      +
      +

      Encrypts the given data for the provided identity

      +
      +
      +

      Parameters

      +
        +
      • +
        data: Buffer
        +
        +

        The data to be encrypted

        +
        +
      • +
      • +
        identity: any
        +
        +

        Identity to encrypt for

        +
        +
      • +
      +

      Returns Promise<string>

      +
    • +
    +
    +
    + +

    signData

    +
      +
    • signData(data: Buffer | string, identity: any): Promise<Buffer>
    • +
    +
      +
    • + +
      +
      +

      Signs the given data with the provided identity

      +
      +
      +

      Parameters

      +
        +
      • +
        data: Buffer | string
        +
        +

        Buffer or file containing the data to be signed

        +
        +
      • +
      • +
        identity: any
        +
        +

        Identity with which to sign with.

        +
        +
      • +
      +

      Returns Promise<Buffer>

      +
    • +
    +
    +
    + +

    verifyData

    +
      +
    • verifyData(data: Buffer | string, identity: any): Promise<boolean>
    • +
    +
      +
    • + +
      +
      +

      Verifies the given data with the provided identity

      +
      +
      +

      Parameters

      +
        +
      • +
        data: Buffer | string
        +
        +

        Buffer or file containing the data to be verified

        +
        +
      • +
      • +
        identity: any
        +
        +

        Identity with which to verify with.

        +
        +
      • +
      +

      Returns Promise<boolean>

      +
    • +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_src_lib_keys_pki_publickeyinfrastructure_.html b/docs/modules/_src_lib_keys_pki_publickeyinfrastructure_.html new file mode 100644 index 000000000..02fef4595 --- /dev/null +++ b/docs/modules/_src_lib_keys_pki_publickeyinfrastructure_.html @@ -0,0 +1,171 @@ + + + + + + "src/lib/keys/pki/PublicKeyInfrastructure" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "src/lib/keys/pki/PublicKeyInfrastructure"

    +
    +
    +
    + +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_src_lib_peers_multicastbroadcaster_.html b/docs/modules/_src_lib_peers_multicastbroadcaster_.html new file mode 100644 index 000000000..c4baebe32 --- /dev/null +++ b/docs/modules/_src_lib_peers_multicastbroadcaster_.html @@ -0,0 +1,274 @@ + + + + + + "src/lib/peers/MulticastBroadcaster" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "src/lib/peers/MulticastBroadcaster"

    +
    +
    +
    +
    +
    +
    +
    +

    Index

    +
    +
    +
    +

    Classes

    + +
    +
    +

    Type aliases

    + +
    +
    +

    Variables

    + +
    +
    +
    +
    +
    +

    Type aliases

    +
    + +

    PeerMessage

    +
    PeerMessage: { encryptedLocalPubKey: Buffer; encryptedPeerPubKey: Buffer; encryptedRandomMessage: Buffer; rawRandomMessage: Buffer }
    + +
    +

    Type declaration

    +
      +
    • +
      encryptedLocalPubKey: Buffer
      +
    • +
    • +
      encryptedPeerPubKey: Buffer
      +
    • +
    • +
      encryptedRandomMessage: Buffer
      +
    • +
    • +
      rawRandomMessage: Buffer
      +
    • +
    +
    +
    +
    +
    +

    Variables

    +
    + +

    HandshakeMessage

    +
    HandshakeMessage: HandshakeMessage
    + +
    +
    + +

    PeerInfoMessage

    +
    PeerInfoMessage: PeerInfoMessage
    + +
    +
    + +

    Const UDP_MULTICAST_ADDR

    +
    UDP_MULTICAST_ADDR: string = process.env.UDP_MULTICAST_ADDR ?? '224.0.0.251'
    + +
    +
    + +

    Const UDP_MULTICAST_PORT

    +
    UDP_MULTICAST_PORT: number = parseInt(process.env.UDP_MULTICAST_PORT ?? '5353')
    + +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_src_lib_peers_peerinfo_.html b/docs/modules/_src_lib_peers_peerinfo_.html new file mode 100644 index 000000000..386184f5b --- /dev/null +++ b/docs/modules/_src_lib_peers_peerinfo_.html @@ -0,0 +1,175 @@ + + + + + + "src/lib/peers/PeerInfo" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "src/lib/peers/PeerInfo"

    +
    +
    +
    + +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_src_lib_peers_peermanager_.html b/docs/modules/_src_lib_peers_peermanager_.html new file mode 100644 index 000000000..d834e6b9d --- /dev/null +++ b/docs/modules/_src_lib_peers_peermanager_.html @@ -0,0 +1,268 @@ + + + + + + "src/lib/peers/PeerManager" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "src/lib/peers/PeerManager"

    +
    +
    +
    +
    +
    +
    +
    +

    Index

    +
    +
    +
    +

    Classes

    + +
    +
    +

    Interfaces

    + +
    +
    +

    Type aliases

    + +
    +
    +

    Object literals

    + +
    +
    +
    +
    +
    +

    Type aliases

    +
    + +

    PeerManagerMetadata

    +
    PeerManagerMetadata: { localPeerInfo: PeerInfo | null }
    + +
    +

    Type declaration

    +
      +
    • +
      localPeerInfo: PeerInfo | null
      +
    • +
    +
    +
    +
    +
    +

    Object literals

    +
    + +

    Const keybaseDiscovery

    +
    keybaseDiscovery: object
    + +
    + +

    name

    +
    name: string = "Keybase"
    + +
    +
    + +

    findUser

    +
      +
    • findUser(handle: string, service: string): Promise<string>
    • +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_src_lib_polykey_.html b/docs/modules/_src_lib_polykey_.html new file mode 100644 index 000000000..7573b660a --- /dev/null +++ b/docs/modules/_src_lib_polykey_.html @@ -0,0 +1,171 @@ + + + + + + "src/lib/Polykey" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "src/lib/Polykey"

    +
    +
    +
    + +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_src_lib_utils_.html b/docs/modules/_src_lib_utils_.html new file mode 100644 index 000000000..ccfa6346e --- /dev/null +++ b/docs/modules/_src_lib_utils_.html @@ -0,0 +1,278 @@ + + + + + + "src/lib/utils" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "src/lib/utils"

    +
    +
    +
    +
    +
    +
    +
    +

    Index

    +
    +
    +
    +

    Functions

    + +
    +
    +
    +
    +
    +

    Functions

    +
    + +

    firstPromiseFulfilled

    +
      +
    • firstPromiseFulfilled<T>(ps: Promise<T>[]): Promise<T[]>
    • +
    +
      +
    • + +
      +
      +

      Gets the first promise fulfiled

      +
      +
      +

      Type parameters

      +
        +
      • +

        T

        +
      • +
      +

      Parameters

      +
        +
      • +
        ps: Promise<T>[]
        +
        +

        List of promises

        +
        +
      • +
      +

      Returns Promise<T[]>

      +
    • +
    +
    +
    + +

    invertPromise

    +
      +
    • invertPromise<T>(p: Promise<T>): Promise<T>
    • +
    +
      +
    • + +
      +
      +

      Inverts the provided promise

      +
      +
      +

      Type parameters

      +
        +
      • +

        T

        +
      • +
      +

      Parameters

      +
        +
      • +
        p: Promise<T>
        +
        +

        Promise to invert

        +
        +
      • +
      +

      Returns Promise<T>

      +
    • +
    +
    +
    + +

    randomString

    +
      +
    • randomString(): string
    • +
    +
      +
    • + +
      +
      +

      Returns a 5 character long random string of lower case letters

      +
      +
      +

      Returns string

      +
    • +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_src_lib_vaults_vault_.html b/docs/modules/_src_lib_vaults_vault_.html new file mode 100644 index 000000000..270e6a795 --- /dev/null +++ b/docs/modules/_src_lib_vaults_vault_.html @@ -0,0 +1,201 @@ + + + + + + "src/lib/vaults/Vault" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "src/lib/vaults/Vault"

    +
    +
    +
    +
    +
    +
    +
    +

    Index

    +
    +
    +
    +

    Classes

    + +
    +
    +

    Type aliases

    + +
    +
    +
    +
    +
    +

    Type aliases

    +
    + +

    VaultMetadata

    +
    VaultMetadata: { sharedPubKeys: string[] }
    + +
    +

    Type declaration

    +
      +
    • +
      sharedPubKeys: string[]
      +
    • +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/docs/modules/_src_lib_vaults_vaultmanager_.html b/docs/modules/_src_lib_vaults_vaultmanager_.html new file mode 100644 index 000000000..2cd30b7f2 --- /dev/null +++ b/docs/modules/_src_lib_vaults_vaultmanager_.html @@ -0,0 +1,171 @@ + + + + + + "src/lib/vaults/VaultManager" | PolyKey (library) + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Module "src/lib/vaults/VaultManager"

    +
    +
    +
    + +
    +
    +

    Legend

    +
    +
      +
    • Namespace
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Type alias
    • +
    +
      +
    • Interface
    • +
    +
      +
    • Class
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + \ No newline at end of file diff --git a/nix/node-packages.nix b/nix/node-packages.nix index ea77b8351..fd2f756ae 100644 --- a/nix/node-packages.nix +++ b/nix/node-packages.nix @@ -562,15 +562,6 @@ let sha1 = "73926771923b5a19747ad666aa5cd4bf9c6e9ce8"; }; }; - "base64-js-0.0.2" = { - name = "base64-js"; - packageName = "base64-js"; - version = "0.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz"; - sha1 = "024f0f72afa25b75f9c0ee73cd4f55ec1bed9784"; - }; - }; "base64-js-1.3.0" = { name = "base64-js"; packageName = "base64-js"; @@ -643,15 +634,6 @@ let sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw=="; }; }; - "bops-0.0.7" = { - name = "bops"; - packageName = "bops"; - version = "0.0.7"; - src = fetchurl { - url = "https://registry.npmjs.org/bops/-/bops-0.0.7.tgz"; - sha1 = "b4a0a5a839a406454af0fe05a8b91a7a766a54e2"; - }; - }; "brace-expansion-1.1.11" = { name = "brace-expansion"; packageName = "brace-expansion"; @@ -1543,15 +1525,6 @@ let sha512 = "jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g=="; }; }; - "git-apply-delta-0.0.7" = { - name = "git-apply-delta"; - packageName = "git-apply-delta"; - version = "0.0.7"; - src = fetchurl { - url = "https://registry.npmjs.org/git-apply-delta/-/git-apply-delta-0.0.7.tgz"; - sha1 = "fb76ae144540d79440b52b31de03e63c993c7219"; - }; - }; "glob-7.1.6" = { name = "glob"; packageName = "glob"; @@ -1903,13 +1876,13 @@ let sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; }; }; - "isomorphic-git-1.5.0" = { + "isomorphic-git-1.7.4" = { name = "isomorphic-git"; packageName = "isomorphic-git"; - version = "1.5.0"; + version = "1.7.4"; src = fetchurl { - url = "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.5.0.tgz"; - sha512 = "h4SrvkV6+P776NQdoLhaYGvIB9721JCJ3iT+QWHQjG0xio7eWWszqFfSzIDUAykBR9Muv/zx6Bg73TW5r9YZUg=="; + url = "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.7.4.tgz"; + sha512 = "gzVg61bZLmfojR287p+nT9bbuFhSH0Us9f6pRVp4J9CA/1A/mghBEvcsCgRxalv+XKJ1sQMxWTc90tzn8WnYVA=="; }; }; "js-tokens-4.0.0" = { @@ -2299,13 +2272,13 @@ let sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="; }; }; - "minimisted-2.0.0" = { + "minimisted-2.0.1" = { name = "minimisted"; packageName = "minimisted"; - version = "2.0.0"; + version = "2.0.1"; src = fetchurl { - url = "https://registry.npmjs.org/minimisted/-/minimisted-2.0.0.tgz"; - sha512 = "oP88Dw3LK/pdrKyMdlbmg3W50969UNr4ctISzJfPl+YPYHTAOrS+dihXnsgRNKSRIzDsrnV3eE2CCVlZbpOKdQ=="; + url = "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz"; + sha512 = "1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA=="; }; }; "mkdirp-0.5.1" = { @@ -2956,13 +2929,13 @@ let sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d"; }; }; - "simple-concat-1.0.0" = { + "simple-concat-1.0.1" = { name = "simple-concat"; packageName = "simple-concat"; - version = "1.0.0"; + version = "1.0.1"; src = fetchurl { - url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz"; - sha1 = "7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"; + url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz"; + sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="; }; }; "simple-get-3.1.0" = { @@ -3199,15 +3172,6 @@ let sha1 = "17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"; }; }; - "to-utf8-0.0.1" = { - name = "to-utf8"; - packageName = "to-utf8"; - version = "0.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz"; - sha1 = "d17aea72ff2fba39b9e43601be7b3ff72e089852"; - }; - }; "toidentifier-1.0.0" = { name = "toidentifier"; packageName = "toidentifier"; @@ -3388,15 +3352,6 @@ let sha512 = "CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w=="; }; }; - "varint-0.0.3" = { - name = "varint"; - packageName = "varint"; - version = "0.0.3"; - src = fetchurl { - url = "https://registry.npmjs.org/varint/-/varint-0.0.3.tgz"; - sha1 = "b821de9b04b38b3cd22f72c18d94a9fb72ab3518"; - }; - }; "vary-1.1.2" = { name = "vary"; packageName = "vary"; @@ -3711,6 +3666,7 @@ let sources."crypto-random-string-2.0.0" sources."dayjs-1.8.30" sources."debug-2.6.9" + sources."decompress-response-4.2.1" sources."deep-is-0.1.3" sources."depd-1.1.2" sources."destroy-1.0.4" @@ -3834,12 +3790,6 @@ let sources."gcp-metadata-4.1.4" sources."get-random-values-1.2.0" sources."get-stdin-6.0.0" - (sources."git-apply-delta-0.0.7" // { - dependencies = [ - sources."base64-js-0.0.2" - sources."bops-0.0.7" - ]; - }) sources."glob-parent-5.1.1" sources."global-4.3.2" (sources."google-auth-library-6.0.5" // { @@ -3896,16 +3846,10 @@ let sources."is-typedarray-1.0.0" sources."isarray-1.0.0" sources."isexe-2.0.0" - (sources."isomorphic-git-1.5.0" // { + (sources."isomorphic-git-1.7.4" // { dependencies = [ - sources."decompress-response-4.2.1" - sources."mimic-response-2.1.0" sources."pako-1.0.11" sources."pify-4.0.1" - sources."readable-stream-3.6.0" - sources."safe-buffer-5.2.1" - sources."simple-get-3.1.0" - sources."string_decoder-1.3.0" ]; }) sources."json-bigint-1.0.0" @@ -3950,10 +3894,11 @@ let sources."mime-2.3.1" sources."mime-db-1.44.0" sources."mime-types-2.1.27" + sources."mimic-response-2.1.0" sources."min-document-2.19.0" sources."minimatch-3.0.4" sources."minimist-0.0.8" - (sources."minimisted-2.0.0" // { + (sources."minimisted-2.0.1" // { dependencies = [ sources."minimist-1.2.5" ]; @@ -4019,7 +3964,8 @@ let sources."setprototypeof-1.1.1" sources."sha.js-2.4.11" sources."signal-exit-3.0.2" - sources."simple-concat-1.0.0" + sources."simple-concat-1.0.1" + sources."simple-get-3.1.0" (sources."slice-ansi-2.1.0" // { dependencies = [ sources."ansi-styles-3.2.1" @@ -4078,7 +4024,6 @@ let }) sources."tiny-worker-2.3.0" sources."to-array-0.1.4" - sources."to-utf8-0.0.1" sources."toidentifier-1.0.0" sources."triplesec-3.0.27" sources."tslib-1.11.1" @@ -4107,7 +4052,6 @@ let sources."util-deprecate-1.0.2" sources."utils-merge-1.0.1" sources."v8-compile-cache-2.0.3" - sources."varint-0.0.3" sources."vary-1.1.2" (sources."virtualfs-2.2.0" // { dependencies = [ diff --git a/package-lock.json b/package-lock.json index 29d16f03f..7fa0f7e47 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5629,6 +5629,14 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "requires": { + "mimic-response": "^2.0.0" + } + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -8530,31 +8538,6 @@ "assert-plus": "^1.0.0" } }, - "git-apply-delta": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/git-apply-delta/-/git-apply-delta-0.0.7.tgz", - "integrity": "sha1-+3auFEVA15RAtSsx3gPmPJk8chk=", - "requires": { - "bops": "~0.0.6", - "varint": "0.0.3" - }, - "dependencies": { - "base64-js": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", - "integrity": "sha1-Ak8Pcq+iW3X5wO5zzU9V7Bvtl4Q=" - }, - "bops": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/bops/-/bops-0.0.7.tgz", - "integrity": "sha1-tKClqDmkBkVK8P4FqLkaenZqVOI=", - "requires": { - "base64-js": "0.0.2", - "to-utf8": "0.0.1" - } - } - } - }, "git-up": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/git-up/-/git-up-2.0.10.tgz", @@ -10179,15 +10162,14 @@ "dev": true }, "isomorphic-git": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.5.0.tgz", - "integrity": "sha512-h4SrvkV6+P776NQdoLhaYGvIB9721JCJ3iT+QWHQjG0xio7eWWszqFfSzIDUAykBR9Muv/zx6Bg73TW5r9YZUg==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.7.4.tgz", + "integrity": "sha512-gzVg61bZLmfojR287p+nT9bbuFhSH0Us9f6pRVp4J9CA/1A/mghBEvcsCgRxalv+XKJ1sQMxWTc90tzn8WnYVA==", "requires": { "async-lock": "^1.1.0", "clean-git-ref": "^2.0.1", "crc-32": "^1.2.0", "diff3": "0.0.3", - "git-apply-delta": "0.0.7", "ignore": "^5.1.4", "minimisted": "^2.0.0", "pako": "^1.0.10", @@ -10197,19 +10179,6 @@ "simple-get": "^3.0.2" }, "dependencies": { - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" - }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -10219,39 +10188,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } } } }, @@ -14203,6 +14139,11 @@ "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", "dev": true }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" + }, "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -14237,11 +14178,11 @@ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "minimisted": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/minimisted/-/minimisted-2.0.0.tgz", - "integrity": "sha512-oP88Dw3LK/pdrKyMdlbmg3W50969UNr4ctISzJfPl+YPYHTAOrS+dihXnsgRNKSRIzDsrnV3eE2CCVlZbpOKdQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz", + "integrity": "sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==", "requires": { - "minimist": "^1.2.0" + "minimist": "^1.2.5" }, "dependencies": { "minimist": { @@ -17282,9 +17223,19 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } }, "simple-swizzle": { "version": "0.2.2", @@ -18651,11 +18602,6 @@ "through2": "^2.0.3" } }, - "to-utf8": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", - "integrity": "sha1-0Xrqcv8vujm55DYBvns/9y4ImFI=" - }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -19578,11 +19524,6 @@ "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", "dev": true }, - "varint": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/varint/-/varint-0.0.3.tgz", - "integrity": "sha1-uCHemwSzizzSL3LBjZSp+3KrNRg=" - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/proto/js/Agent.d.ts b/proto/js/Agent.d.ts index 2b2bfe66d..4f4642f0d 100644 --- a/proto/js/Agent.d.ts +++ b/proto/js/Agent.d.ts @@ -1,2059 +1,2059 @@ import * as $protobuf from "protobufjs"; -/** Namespace agent. */ -export namespace agent { - - /** AgentMessageType enum. */ - enum AgentMessageType { - ERROR = 0, - STOP_AGENT = 1, - STATUS = 2, - REGISTER_NODE = 3, - NEW_NODE = 4, - LIST_NODES = 5, - DERIVE_KEY = 6, - SIGN_FILE = 7, - VERIFY_FILE = 8, - LIST_VAULTS = 9, - NEW_VAULT = 10, - DESTROY_VAULT = 11, - LIST_SECRETS = 12, - CREATE_SECRET = 13, - DESTROY_SECRET = 14, - GET_SECRET = 15, - LIST_KEYS = 16, - GET_KEY = 17, - DELETE_KEY = 18, - ENCRYPT_FILE = 19, - DECRYPT_FILE = 20, - GET_PRIMARY_KEYPAIR = 21, - UPDATE_SECRET = 22 - } - - /** Properties of an AgentMessage. */ - interface IAgentMessage { - - /** AgentMessage type */ - type?: (agent.AgentMessageType|null); - - /** AgentMessage isResponse */ - isResponse?: (boolean|null); - - /** AgentMessage nodePath */ - nodePath?: (string|null); - - /** AgentMessage subMessage */ - subMessage?: (Uint8Array|null); - } - - /** Represents an AgentMessage. */ - class AgentMessage implements IAgentMessage { - - /** - * Constructs a new AgentMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IAgentMessage); - - /** AgentMessage type. */ - public type: agent.AgentMessageType; - - /** AgentMessage isResponse. */ - public isResponse: boolean; - - /** AgentMessage nodePath. */ - public nodePath: string; - - /** AgentMessage subMessage. */ - public subMessage: Uint8Array; - - /** - * Creates a new AgentMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns AgentMessage instance - */ - public static create(properties?: agent.IAgentMessage): agent.AgentMessage; - - /** - * Encodes the specified AgentMessage message. Does not implicitly {@link agent.AgentMessage.verify|verify} messages. - * @param m AgentMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IAgentMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an AgentMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns AgentMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.AgentMessage; - } - - /** Properties of an ErrorMessage. */ - interface IErrorMessage { - - /** ErrorMessage error */ - error?: (string|null); - } - - /** Represents an ErrorMessage. */ - class ErrorMessage implements IErrorMessage { - - /** - * Constructs a new ErrorMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IErrorMessage); - - /** ErrorMessage error. */ - public error: string; - - /** - * Creates a new ErrorMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns ErrorMessage instance - */ - public static create(properties?: agent.IErrorMessage): agent.ErrorMessage; - - /** - * Encodes the specified ErrorMessage message. Does not implicitly {@link agent.ErrorMessage.verify|verify} messages. - * @param m ErrorMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IErrorMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an ErrorMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns ErrorMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ErrorMessage; - } - - /** Properties of a RegisterNodeRequestMessage. */ - interface IRegisterNodeRequestMessage { - - /** RegisterNodeRequestMessage passphrase */ - passphrase?: (string|null); - } - - /** Represents a RegisterNodeRequestMessage. */ - class RegisterNodeRequestMessage implements IRegisterNodeRequestMessage { - - /** - * Constructs a new RegisterNodeRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IRegisterNodeRequestMessage); - - /** RegisterNodeRequestMessage passphrase. */ - public passphrase: string; - - /** - * Creates a new RegisterNodeRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns RegisterNodeRequestMessage instance - */ - public static create(properties?: agent.IRegisterNodeRequestMessage): agent.RegisterNodeRequestMessage; - - /** - * Encodes the specified RegisterNodeRequestMessage message. Does not implicitly {@link agent.RegisterNodeRequestMessage.verify|verify} messages. - * @param m RegisterNodeRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IRegisterNodeRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a RegisterNodeRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns RegisterNodeRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.RegisterNodeRequestMessage; - } - - /** Properties of a RegisterNodeResponseMessage. */ - interface IRegisterNodeResponseMessage { - - /** RegisterNodeResponseMessage successful */ - successful?: (boolean|null); - } - - /** Represents a RegisterNodeResponseMessage. */ - class RegisterNodeResponseMessage implements IRegisterNodeResponseMessage { - - /** - * Constructs a new RegisterNodeResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IRegisterNodeResponseMessage); - - /** RegisterNodeResponseMessage successful. */ - public successful: boolean; - - /** - * Creates a new RegisterNodeResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns RegisterNodeResponseMessage instance - */ - public static create(properties?: agent.IRegisterNodeResponseMessage): agent.RegisterNodeResponseMessage; - - /** - * Encodes the specified RegisterNodeResponseMessage message. Does not implicitly {@link agent.RegisterNodeResponseMessage.verify|verify} messages. - * @param m RegisterNodeResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IRegisterNodeResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a RegisterNodeResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns RegisterNodeResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.RegisterNodeResponseMessage; - } - - /** Properties of a NewNodeRequestMessage. */ - interface INewNodeRequestMessage { - - /** NewNodeRequestMessage name */ - name?: (string|null); - - /** NewNodeRequestMessage email */ - email?: (string|null); - - /** NewNodeRequestMessage passphrase */ - passphrase?: (string|null); - - /** NewNodeRequestMessage nbits */ - nbits?: (number|null); - } - - /** Represents a NewNodeRequestMessage. */ - class NewNodeRequestMessage implements INewNodeRequestMessage { - - /** - * Constructs a new NewNodeRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.INewNodeRequestMessage); - - /** NewNodeRequestMessage name. */ - public name: string; - - /** NewNodeRequestMessage email. */ - public email: string; - - /** NewNodeRequestMessage passphrase. */ - public passphrase: string; - - /** NewNodeRequestMessage nbits. */ - public nbits: number; - - /** - * Creates a new NewNodeRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns NewNodeRequestMessage instance - */ - public static create(properties?: agent.INewNodeRequestMessage): agent.NewNodeRequestMessage; - - /** - * Encodes the specified NewNodeRequestMessage message. Does not implicitly {@link agent.NewNodeRequestMessage.verify|verify} messages. - * @param m NewNodeRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.INewNodeRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a NewNodeRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns NewNodeRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.NewNodeRequestMessage; - } - - /** Properties of a NewNodeResponseMessage. */ - interface INewNodeResponseMessage { - - /** NewNodeResponseMessage successful */ - successful?: (boolean|null); - } - - /** Represents a NewNodeResponseMessage. */ - class NewNodeResponseMessage implements INewNodeResponseMessage { - - /** - * Constructs a new NewNodeResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.INewNodeResponseMessage); - - /** NewNodeResponseMessage successful. */ - public successful: boolean; - - /** - * Creates a new NewNodeResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns NewNodeResponseMessage instance - */ - public static create(properties?: agent.INewNodeResponseMessage): agent.NewNodeResponseMessage; - - /** - * Encodes the specified NewNodeResponseMessage message. Does not implicitly {@link agent.NewNodeResponseMessage.verify|verify} messages. - * @param m NewNodeResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.INewNodeResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a NewNodeResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns NewNodeResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.NewNodeResponseMessage; - } - - /** Properties of a ListNodesRequestMessage. */ - interface IListNodesRequestMessage { - - /** ListNodesRequestMessage unlockedOnly */ - unlockedOnly?: (boolean|null); - } - - /** Represents a ListNodesRequestMessage. */ - class ListNodesRequestMessage implements IListNodesRequestMessage { - - /** - * Constructs a new ListNodesRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IListNodesRequestMessage); - - /** ListNodesRequestMessage unlockedOnly. */ - public unlockedOnly: boolean; - - /** - * Creates a new ListNodesRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns ListNodesRequestMessage instance - */ - public static create(properties?: agent.IListNodesRequestMessage): agent.ListNodesRequestMessage; - - /** - * Encodes the specified ListNodesRequestMessage message. Does not implicitly {@link agent.ListNodesRequestMessage.verify|verify} messages. - * @param m ListNodesRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IListNodesRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListNodesRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns ListNodesRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListNodesRequestMessage; - } - - /** Properties of a ListNodesResponseMessage. */ - interface IListNodesResponseMessage { - - /** ListNodesResponseMessage nodes */ - nodes?: (string[]|null); - } - - /** Represents a ListNodesResponseMessage. */ - class ListNodesResponseMessage implements IListNodesResponseMessage { - - /** - * Constructs a new ListNodesResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IListNodesResponseMessage); - - /** ListNodesResponseMessage nodes. */ - public nodes: string[]; - - /** - * Creates a new ListNodesResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns ListNodesResponseMessage instance - */ - public static create(properties?: agent.IListNodesResponseMessage): agent.ListNodesResponseMessage; - - /** - * Encodes the specified ListNodesResponseMessage message. Does not implicitly {@link agent.ListNodesResponseMessage.verify|verify} messages. - * @param m ListNodesResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IListNodesResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListNodesResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns ListNodesResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListNodesResponseMessage; - } - - /** Properties of a SignFileRequestMessage. */ - interface ISignFileRequestMessage { - - /** SignFileRequestMessage filePath */ - filePath?: (string|null); - - /** SignFileRequestMessage privateKeyPath */ - privateKeyPath?: (string|null); - - /** SignFileRequestMessage passphrase */ - passphrase?: (string|null); - } - - /** Represents a SignFileRequestMessage. */ - class SignFileRequestMessage implements ISignFileRequestMessage { - - /** - * Constructs a new SignFileRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.ISignFileRequestMessage); - - /** SignFileRequestMessage filePath. */ - public filePath: string; - - /** SignFileRequestMessage privateKeyPath. */ - public privateKeyPath: string; - - /** SignFileRequestMessage passphrase. */ - public passphrase: string; - - /** - * Creates a new SignFileRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns SignFileRequestMessage instance - */ - public static create(properties?: agent.ISignFileRequestMessage): agent.SignFileRequestMessage; - - /** - * Encodes the specified SignFileRequestMessage message. Does not implicitly {@link agent.SignFileRequestMessage.verify|verify} messages. - * @param m SignFileRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.ISignFileRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a SignFileRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns SignFileRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.SignFileRequestMessage; - } - - /** Properties of a SignFileResponseMessage. */ - interface ISignFileResponseMessage { - - /** SignFileResponseMessage signaturePath */ - signaturePath?: (string|null); - } - - /** Represents a SignFileResponseMessage. */ - class SignFileResponseMessage implements ISignFileResponseMessage { - - /** - * Constructs a new SignFileResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.ISignFileResponseMessage); - - /** SignFileResponseMessage signaturePath. */ - public signaturePath: string; - - /** - * Creates a new SignFileResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns SignFileResponseMessage instance - */ - public static create(properties?: agent.ISignFileResponseMessage): agent.SignFileResponseMessage; - - /** - * Encodes the specified SignFileResponseMessage message. Does not implicitly {@link agent.SignFileResponseMessage.verify|verify} messages. - * @param m SignFileResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.ISignFileResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a SignFileResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns SignFileResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.SignFileResponseMessage; - } - - /** Properties of a VerifyFileRequestMessage. */ - interface IVerifyFileRequestMessage { - - /** VerifyFileRequestMessage filePath */ - filePath?: (string|null); - - /** VerifyFileRequestMessage signaturePath */ - signaturePath?: (string|null); - - /** VerifyFileRequestMessage publicKeyPath */ - publicKeyPath?: (string|null); - } - - /** Represents a VerifyFileRequestMessage. */ - class VerifyFileRequestMessage implements IVerifyFileRequestMessage { - - /** - * Constructs a new VerifyFileRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IVerifyFileRequestMessage); - - /** VerifyFileRequestMessage filePath. */ - public filePath: string; - - /** VerifyFileRequestMessage signaturePath. */ - public signaturePath: string; - - /** VerifyFileRequestMessage publicKeyPath. */ - public publicKeyPath: string; - - /** - * Creates a new VerifyFileRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns VerifyFileRequestMessage instance - */ - public static create(properties?: agent.IVerifyFileRequestMessage): agent.VerifyFileRequestMessage; - - /** - * Encodes the specified VerifyFileRequestMessage message. Does not implicitly {@link agent.VerifyFileRequestMessage.verify|verify} messages. - * @param m VerifyFileRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IVerifyFileRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a VerifyFileRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns VerifyFileRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.VerifyFileRequestMessage; - } - - /** Properties of a VerifyFileResponseMessage. */ - interface IVerifyFileResponseMessage { - - /** VerifyFileResponseMessage verified */ - verified?: (boolean|null); - } - - /** Represents a VerifyFileResponseMessage. */ - class VerifyFileResponseMessage implements IVerifyFileResponseMessage { - - /** - * Constructs a new VerifyFileResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IVerifyFileResponseMessage); - - /** VerifyFileResponseMessage verified. */ - public verified: boolean; - - /** - * Creates a new VerifyFileResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns VerifyFileResponseMessage instance - */ - public static create(properties?: agent.IVerifyFileResponseMessage): agent.VerifyFileResponseMessage; - - /** - * Encodes the specified VerifyFileResponseMessage message. Does not implicitly {@link agent.VerifyFileResponseMessage.verify|verify} messages. - * @param m VerifyFileResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IVerifyFileResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a VerifyFileResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns VerifyFileResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.VerifyFileResponseMessage; - } - - /** Properties of an EncryptFileRequestMessage. */ - interface IEncryptFileRequestMessage { - - /** EncryptFileRequestMessage filePath */ - filePath?: (string|null); - - /** EncryptFileRequestMessage publicKeyPath */ - publicKeyPath?: (string|null); - } - - /** Represents an EncryptFileRequestMessage. */ - class EncryptFileRequestMessage implements IEncryptFileRequestMessage { - - /** - * Constructs a new EncryptFileRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IEncryptFileRequestMessage); - - /** EncryptFileRequestMessage filePath. */ - public filePath: string; - - /** EncryptFileRequestMessage publicKeyPath. */ - public publicKeyPath: string; - - /** - * Creates a new EncryptFileRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns EncryptFileRequestMessage instance - */ - public static create(properties?: agent.IEncryptFileRequestMessage): agent.EncryptFileRequestMessage; - - /** - * Encodes the specified EncryptFileRequestMessage message. Does not implicitly {@link agent.EncryptFileRequestMessage.verify|verify} messages. - * @param m EncryptFileRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IEncryptFileRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an EncryptFileRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns EncryptFileRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.EncryptFileRequestMessage; - } - - /** Properties of an EncryptFileResponseMessage. */ - interface IEncryptFileResponseMessage { - - /** EncryptFileResponseMessage encryptedPath */ - encryptedPath?: (string|null); - } - - /** Represents an EncryptFileResponseMessage. */ - class EncryptFileResponseMessage implements IEncryptFileResponseMessage { - - /** - * Constructs a new EncryptFileResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IEncryptFileResponseMessage); - - /** EncryptFileResponseMessage encryptedPath. */ - public encryptedPath: string; - - /** - * Creates a new EncryptFileResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns EncryptFileResponseMessage instance - */ - public static create(properties?: agent.IEncryptFileResponseMessage): agent.EncryptFileResponseMessage; - - /** - * Encodes the specified EncryptFileResponseMessage message. Does not implicitly {@link agent.EncryptFileResponseMessage.verify|verify} messages. - * @param m EncryptFileResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IEncryptFileResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an EncryptFileResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns EncryptFileResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.EncryptFileResponseMessage; - } - - /** Properties of a DecryptFileRequestMessage. */ - interface IDecryptFileRequestMessage { - - /** DecryptFileRequestMessage filePath */ - filePath?: (string|null); - - /** DecryptFileRequestMessage privateKeyPath */ - privateKeyPath?: (string|null); - - /** DecryptFileRequestMessage passphrase */ - passphrase?: (string|null); - } - - /** Represents a DecryptFileRequestMessage. */ - class DecryptFileRequestMessage implements IDecryptFileRequestMessage { - - /** - * Constructs a new DecryptFileRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IDecryptFileRequestMessage); - - /** DecryptFileRequestMessage filePath. */ - public filePath: string; - - /** DecryptFileRequestMessage privateKeyPath. */ - public privateKeyPath: string; - - /** DecryptFileRequestMessage passphrase. */ - public passphrase: string; - - /** - * Creates a new DecryptFileRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns DecryptFileRequestMessage instance - */ - public static create(properties?: agent.IDecryptFileRequestMessage): agent.DecryptFileRequestMessage; - - /** - * Encodes the specified DecryptFileRequestMessage message. Does not implicitly {@link agent.DecryptFileRequestMessage.verify|verify} messages. - * @param m DecryptFileRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IDecryptFileRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DecryptFileRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns DecryptFileRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DecryptFileRequestMessage; - } - - /** Properties of a DecryptFileResponseMessage. */ - interface IDecryptFileResponseMessage { - - /** DecryptFileResponseMessage decryptedPath */ - decryptedPath?: (string|null); - } - - /** Represents a DecryptFileResponseMessage. */ - class DecryptFileResponseMessage implements IDecryptFileResponseMessage { - - /** - * Constructs a new DecryptFileResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IDecryptFileResponseMessage); - - /** DecryptFileResponseMessage decryptedPath. */ - public decryptedPath: string; - - /** - * Creates a new DecryptFileResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns DecryptFileResponseMessage instance - */ - public static create(properties?: agent.IDecryptFileResponseMessage): agent.DecryptFileResponseMessage; - - /** - * Encodes the specified DecryptFileResponseMessage message. Does not implicitly {@link agent.DecryptFileResponseMessage.verify|verify} messages. - * @param m DecryptFileResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IDecryptFileResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DecryptFileResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns DecryptFileResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DecryptFileResponseMessage; - } - - /** Properties of a ListVaultsRequestMessage. */ - interface IListVaultsRequestMessage { - } - - /** Represents a ListVaultsRequestMessage. */ - class ListVaultsRequestMessage implements IListVaultsRequestMessage { - - /** - * Constructs a new ListVaultsRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IListVaultsRequestMessage); - - /** - * Creates a new ListVaultsRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns ListVaultsRequestMessage instance - */ - public static create(properties?: agent.IListVaultsRequestMessage): agent.ListVaultsRequestMessage; - - /** - * Encodes the specified ListVaultsRequestMessage message. Does not implicitly {@link agent.ListVaultsRequestMessage.verify|verify} messages. - * @param m ListVaultsRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IListVaultsRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListVaultsRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns ListVaultsRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListVaultsRequestMessage; - } - - /** Properties of a ListVaultsResponseMessage. */ - interface IListVaultsResponseMessage { - - /** ListVaultsResponseMessage vaultNames */ - vaultNames?: (string[]|null); - } - - /** Represents a ListVaultsResponseMessage. */ - class ListVaultsResponseMessage implements IListVaultsResponseMessage { - - /** - * Constructs a new ListVaultsResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IListVaultsResponseMessage); - - /** ListVaultsResponseMessage vaultNames. */ - public vaultNames: string[]; - - /** - * Creates a new ListVaultsResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns ListVaultsResponseMessage instance - */ - public static create(properties?: agent.IListVaultsResponseMessage): agent.ListVaultsResponseMessage; - - /** - * Encodes the specified ListVaultsResponseMessage message. Does not implicitly {@link agent.ListVaultsResponseMessage.verify|verify} messages. - * @param m ListVaultsResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IListVaultsResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListVaultsResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns ListVaultsResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListVaultsResponseMessage; - } - - /** Properties of a NewVaultRequestMessage. */ - interface INewVaultRequestMessage { - - /** NewVaultRequestMessage vaultName */ - vaultName?: (string|null); - } - - /** Represents a NewVaultRequestMessage. */ - class NewVaultRequestMessage implements INewVaultRequestMessage { - - /** - * Constructs a new NewVaultRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.INewVaultRequestMessage); - - /** NewVaultRequestMessage vaultName. */ - public vaultName: string; - - /** - * Creates a new NewVaultRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns NewVaultRequestMessage instance - */ - public static create(properties?: agent.INewVaultRequestMessage): agent.NewVaultRequestMessage; - - /** - * Encodes the specified NewVaultRequestMessage message. Does not implicitly {@link agent.NewVaultRequestMessage.verify|verify} messages. - * @param m NewVaultRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.INewVaultRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a NewVaultRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns NewVaultRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.NewVaultRequestMessage; - } - - /** Properties of a NewVaultResponseMessage. */ - interface INewVaultResponseMessage { - - /** NewVaultResponseMessage successful */ - successful?: (boolean|null); - } - - /** Represents a NewVaultResponseMessage. */ - class NewVaultResponseMessage implements INewVaultResponseMessage { - - /** - * Constructs a new NewVaultResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.INewVaultResponseMessage); - - /** NewVaultResponseMessage successful. */ - public successful: boolean; - - /** - * Creates a new NewVaultResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns NewVaultResponseMessage instance - */ - public static create(properties?: agent.INewVaultResponseMessage): agent.NewVaultResponseMessage; - - /** - * Encodes the specified NewVaultResponseMessage message. Does not implicitly {@link agent.NewVaultResponseMessage.verify|verify} messages. - * @param m NewVaultResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.INewVaultResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a NewVaultResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns NewVaultResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.NewVaultResponseMessage; - } - - /** Properties of a DestroyVaultRequestMessage. */ - interface IDestroyVaultRequestMessage { - - /** DestroyVaultRequestMessage vaultName */ - vaultName?: (string|null); - } - - /** Represents a DestroyVaultRequestMessage. */ - class DestroyVaultRequestMessage implements IDestroyVaultRequestMessage { - - /** - * Constructs a new DestroyVaultRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IDestroyVaultRequestMessage); - - /** DestroyVaultRequestMessage vaultName. */ - public vaultName: string; - - /** - * Creates a new DestroyVaultRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns DestroyVaultRequestMessage instance - */ - public static create(properties?: agent.IDestroyVaultRequestMessage): agent.DestroyVaultRequestMessage; - - /** - * Encodes the specified DestroyVaultRequestMessage message. Does not implicitly {@link agent.DestroyVaultRequestMessage.verify|verify} messages. - * @param m DestroyVaultRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IDestroyVaultRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DestroyVaultRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns DestroyVaultRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DestroyVaultRequestMessage; - } - - /** Properties of a DestroyVaultResponseMessage. */ - interface IDestroyVaultResponseMessage { - - /** DestroyVaultResponseMessage successful */ - successful?: (boolean|null); - } - - /** Represents a DestroyVaultResponseMessage. */ - class DestroyVaultResponseMessage implements IDestroyVaultResponseMessage { - - /** - * Constructs a new DestroyVaultResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IDestroyVaultResponseMessage); - - /** DestroyVaultResponseMessage successful. */ - public successful: boolean; - - /** - * Creates a new DestroyVaultResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns DestroyVaultResponseMessage instance - */ - public static create(properties?: agent.IDestroyVaultResponseMessage): agent.DestroyVaultResponseMessage; - - /** - * Encodes the specified DestroyVaultResponseMessage message. Does not implicitly {@link agent.DestroyVaultResponseMessage.verify|verify} messages. - * @param m DestroyVaultResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IDestroyVaultResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DestroyVaultResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns DestroyVaultResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DestroyVaultResponseMessage; - } - - /** Properties of a ListSecretsRequestMessage. */ - interface IListSecretsRequestMessage { - - /** ListSecretsRequestMessage vaultName */ - vaultName?: (string|null); - } - - /** Represents a ListSecretsRequestMessage. */ - class ListSecretsRequestMessage implements IListSecretsRequestMessage { - - /** - * Constructs a new ListSecretsRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IListSecretsRequestMessage); - - /** ListSecretsRequestMessage vaultName. */ - public vaultName: string; - - /** - * Creates a new ListSecretsRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns ListSecretsRequestMessage instance - */ - public static create(properties?: agent.IListSecretsRequestMessage): agent.ListSecretsRequestMessage; - - /** - * Encodes the specified ListSecretsRequestMessage message. Does not implicitly {@link agent.ListSecretsRequestMessage.verify|verify} messages. - * @param m ListSecretsRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IListSecretsRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListSecretsRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns ListSecretsRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListSecretsRequestMessage; - } - - /** Properties of a ListSecretsResponseMessage. */ - interface IListSecretsResponseMessage { - - /** ListSecretsResponseMessage secretNames */ - secretNames?: (string[]|null); - } - - /** Represents a ListSecretsResponseMessage. */ - class ListSecretsResponseMessage implements IListSecretsResponseMessage { - - /** - * Constructs a new ListSecretsResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IListSecretsResponseMessage); - - /** ListSecretsResponseMessage secretNames. */ - public secretNames: string[]; - - /** - * Creates a new ListSecretsResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns ListSecretsResponseMessage instance - */ - public static create(properties?: agent.IListSecretsResponseMessage): agent.ListSecretsResponseMessage; - - /** - * Encodes the specified ListSecretsResponseMessage message. Does not implicitly {@link agent.ListSecretsResponseMessage.verify|verify} messages. - * @param m ListSecretsResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IListSecretsResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListSecretsResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns ListSecretsResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListSecretsResponseMessage; - } - - /** Properties of a CreateSecretRequestMessage. */ - interface ICreateSecretRequestMessage { - - /** CreateSecretRequestMessage vaultName */ - vaultName?: (string|null); - - /** CreateSecretRequestMessage secretName */ - secretName?: (string|null); - - /** CreateSecretRequestMessage secretPath */ - secretPath?: (string|null); - - /** CreateSecretRequestMessage secretContent */ - secretContent?: (Uint8Array|null); - } - - /** Represents a CreateSecretRequestMessage. */ - class CreateSecretRequestMessage implements ICreateSecretRequestMessage { - - /** - * Constructs a new CreateSecretRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.ICreateSecretRequestMessage); - - /** CreateSecretRequestMessage vaultName. */ - public vaultName: string; - - /** CreateSecretRequestMessage secretName. */ - public secretName: string; - - /** CreateSecretRequestMessage secretPath. */ - public secretPath: string; - - /** CreateSecretRequestMessage secretContent. */ - public secretContent: Uint8Array; - - /** - * Creates a new CreateSecretRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns CreateSecretRequestMessage instance - */ - public static create(properties?: agent.ICreateSecretRequestMessage): agent.CreateSecretRequestMessage; - - /** - * Encodes the specified CreateSecretRequestMessage message. Does not implicitly {@link agent.CreateSecretRequestMessage.verify|verify} messages. - * @param m CreateSecretRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.ICreateSecretRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a CreateSecretRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns CreateSecretRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.CreateSecretRequestMessage; - } - - /** Properties of a CreateSecretResponseMessage. */ - interface ICreateSecretResponseMessage { - - /** CreateSecretResponseMessage successful */ - successful?: (boolean|null); - } - - /** Represents a CreateSecretResponseMessage. */ - class CreateSecretResponseMessage implements ICreateSecretResponseMessage { - - /** - * Constructs a new CreateSecretResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.ICreateSecretResponseMessage); - - /** CreateSecretResponseMessage successful. */ - public successful: boolean; - - /** - * Creates a new CreateSecretResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns CreateSecretResponseMessage instance - */ - public static create(properties?: agent.ICreateSecretResponseMessage): agent.CreateSecretResponseMessage; - - /** - * Encodes the specified CreateSecretResponseMessage message. Does not implicitly {@link agent.CreateSecretResponseMessage.verify|verify} messages. - * @param m CreateSecretResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.ICreateSecretResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a CreateSecretResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns CreateSecretResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.CreateSecretResponseMessage; - } - - /** Properties of a DestroySecretRequestMessage. */ - interface IDestroySecretRequestMessage { - - /** DestroySecretRequestMessage vaultName */ - vaultName?: (string|null); - - /** DestroySecretRequestMessage secretName */ - secretName?: (string|null); - } - - /** Represents a DestroySecretRequestMessage. */ - class DestroySecretRequestMessage implements IDestroySecretRequestMessage { - - /** - * Constructs a new DestroySecretRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IDestroySecretRequestMessage); - - /** DestroySecretRequestMessage vaultName. */ - public vaultName: string; - - /** DestroySecretRequestMessage secretName. */ - public secretName: string; - - /** - * Creates a new DestroySecretRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns DestroySecretRequestMessage instance - */ - public static create(properties?: agent.IDestroySecretRequestMessage): agent.DestroySecretRequestMessage; - - /** - * Encodes the specified DestroySecretRequestMessage message. Does not implicitly {@link agent.DestroySecretRequestMessage.verify|verify} messages. - * @param m DestroySecretRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IDestroySecretRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DestroySecretRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns DestroySecretRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DestroySecretRequestMessage; - } - - /** Properties of a DestroySecretResponseMessage. */ - interface IDestroySecretResponseMessage { - - /** DestroySecretResponseMessage successful */ - successful?: (boolean|null); - } - - /** Represents a DestroySecretResponseMessage. */ - class DestroySecretResponseMessage implements IDestroySecretResponseMessage { - - /** - * Constructs a new DestroySecretResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IDestroySecretResponseMessage); - - /** DestroySecretResponseMessage successful. */ - public successful: boolean; - - /** - * Creates a new DestroySecretResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns DestroySecretResponseMessage instance - */ - public static create(properties?: agent.IDestroySecretResponseMessage): agent.DestroySecretResponseMessage; - - /** - * Encodes the specified DestroySecretResponseMessage message. Does not implicitly {@link agent.DestroySecretResponseMessage.verify|verify} messages. - * @param m DestroySecretResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IDestroySecretResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DestroySecretResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns DestroySecretResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DestroySecretResponseMessage; - } - - /** Properties of a GetSecretRequestMessage. */ - interface IGetSecretRequestMessage { - - /** GetSecretRequestMessage vaultName */ - vaultName?: (string|null); - - /** GetSecretRequestMessage secretName */ - secretName?: (string|null); - } - - /** Represents a GetSecretRequestMessage. */ - class GetSecretRequestMessage implements IGetSecretRequestMessage { - - /** - * Constructs a new GetSecretRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IGetSecretRequestMessage); - - /** GetSecretRequestMessage vaultName. */ - public vaultName: string; - - /** GetSecretRequestMessage secretName. */ - public secretName: string; - - /** - * Creates a new GetSecretRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns GetSecretRequestMessage instance - */ - public static create(properties?: agent.IGetSecretRequestMessage): agent.GetSecretRequestMessage; - - /** - * Encodes the specified GetSecretRequestMessage message. Does not implicitly {@link agent.GetSecretRequestMessage.verify|verify} messages. - * @param m GetSecretRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IGetSecretRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a GetSecretRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns GetSecretRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.GetSecretRequestMessage; - } - - /** Properties of a GetSecretResponseMessage. */ - interface IGetSecretResponseMessage { - - /** GetSecretResponseMessage secret */ - secret?: (Uint8Array|null); - } - - /** Represents a GetSecretResponseMessage. */ - class GetSecretResponseMessage implements IGetSecretResponseMessage { - - /** - * Constructs a new GetSecretResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IGetSecretResponseMessage); - - /** GetSecretResponseMessage secret. */ - public secret: Uint8Array; - - /** - * Creates a new GetSecretResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns GetSecretResponseMessage instance - */ - public static create(properties?: agent.IGetSecretResponseMessage): agent.GetSecretResponseMessage; - - /** - * Encodes the specified GetSecretResponseMessage message. Does not implicitly {@link agent.GetSecretResponseMessage.verify|verify} messages. - * @param m GetSecretResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IGetSecretResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a GetSecretResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns GetSecretResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.GetSecretResponseMessage; - } - - /** Properties of a DeriveKeyRequestMessage. */ - interface IDeriveKeyRequestMessage { - - /** DeriveKeyRequestMessage vaultName */ - vaultName?: (string|null); - - /** DeriveKeyRequestMessage keyName */ - keyName?: (string|null); - - /** DeriveKeyRequestMessage passphrase */ - passphrase?: (string|null); - } - - /** Represents a DeriveKeyRequestMessage. */ - class DeriveKeyRequestMessage implements IDeriveKeyRequestMessage { - - /** - * Constructs a new DeriveKeyRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IDeriveKeyRequestMessage); - - /** DeriveKeyRequestMessage vaultName. */ - public vaultName: string; - - /** DeriveKeyRequestMessage keyName. */ - public keyName: string; - - /** DeriveKeyRequestMessage passphrase. */ - public passphrase: string; - - /** - * Creates a new DeriveKeyRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns DeriveKeyRequestMessage instance - */ - public static create(properties?: agent.IDeriveKeyRequestMessage): agent.DeriveKeyRequestMessage; - - /** - * Encodes the specified DeriveKeyRequestMessage message. Does not implicitly {@link agent.DeriveKeyRequestMessage.verify|verify} messages. - * @param m DeriveKeyRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IDeriveKeyRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DeriveKeyRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns DeriveKeyRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DeriveKeyRequestMessage; - } - - /** Properties of a DeriveKeyResponseMessage. */ - interface IDeriveKeyResponseMessage { - - /** DeriveKeyResponseMessage successful */ - successful?: (boolean|null); - } - - /** Represents a DeriveKeyResponseMessage. */ - class DeriveKeyResponseMessage implements IDeriveKeyResponseMessage { - - /** - * Constructs a new DeriveKeyResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IDeriveKeyResponseMessage); - - /** DeriveKeyResponseMessage successful. */ - public successful: boolean; - - /** - * Creates a new DeriveKeyResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns DeriveKeyResponseMessage instance - */ - public static create(properties?: agent.IDeriveKeyResponseMessage): agent.DeriveKeyResponseMessage; - - /** - * Encodes the specified DeriveKeyResponseMessage message. Does not implicitly {@link agent.DeriveKeyResponseMessage.verify|verify} messages. - * @param m DeriveKeyResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IDeriveKeyResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DeriveKeyResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns DeriveKeyResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DeriveKeyResponseMessage; - } - - /** Properties of a ListKeysRequestMessage. */ - interface IListKeysRequestMessage { - } - - /** Represents a ListKeysRequestMessage. */ - class ListKeysRequestMessage implements IListKeysRequestMessage { - - /** - * Constructs a new ListKeysRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IListKeysRequestMessage); - - /** - * Creates a new ListKeysRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns ListKeysRequestMessage instance - */ - public static create(properties?: agent.IListKeysRequestMessage): agent.ListKeysRequestMessage; - - /** - * Encodes the specified ListKeysRequestMessage message. Does not implicitly {@link agent.ListKeysRequestMessage.verify|verify} messages. - * @param m ListKeysRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IListKeysRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListKeysRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns ListKeysRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListKeysRequestMessage; - } - - /** Properties of a ListKeysResponseMessage. */ - interface IListKeysResponseMessage { - - /** ListKeysResponseMessage keyNames */ - keyNames?: (string[]|null); - } - - /** Represents a ListKeysResponseMessage. */ - class ListKeysResponseMessage implements IListKeysResponseMessage { - - /** - * Constructs a new ListKeysResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IListKeysResponseMessage); - - /** ListKeysResponseMessage keyNames. */ - public keyNames: string[]; - - /** - * Creates a new ListKeysResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns ListKeysResponseMessage instance - */ - public static create(properties?: agent.IListKeysResponseMessage): agent.ListKeysResponseMessage; - - /** - * Encodes the specified ListKeysResponseMessage message. Does not implicitly {@link agent.ListKeysResponseMessage.verify|verify} messages. - * @param m ListKeysResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IListKeysResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListKeysResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns ListKeysResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListKeysResponseMessage; - } - - /** Properties of a GetKeyRequestMessage. */ - interface IGetKeyRequestMessage { - - /** GetKeyRequestMessage keyName */ - keyName?: (string|null); - } - - /** Represents a GetKeyRequestMessage. */ - class GetKeyRequestMessage implements IGetKeyRequestMessage { - - /** - * Constructs a new GetKeyRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IGetKeyRequestMessage); - - /** GetKeyRequestMessage keyName. */ - public keyName: string; - - /** - * Creates a new GetKeyRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns GetKeyRequestMessage instance - */ - public static create(properties?: agent.IGetKeyRequestMessage): agent.GetKeyRequestMessage; - - /** - * Encodes the specified GetKeyRequestMessage message. Does not implicitly {@link agent.GetKeyRequestMessage.verify|verify} messages. - * @param m GetKeyRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IGetKeyRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a GetKeyRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns GetKeyRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.GetKeyRequestMessage; - } - - /** Properties of a GetKeyResponseMessage. */ - interface IGetKeyResponseMessage { - - /** GetKeyResponseMessage keyName */ - keyName?: (string|null); - - /** GetKeyResponseMessage keyContent */ - keyContent?: (string|null); - } - - /** Represents a GetKeyResponseMessage. */ - class GetKeyResponseMessage implements IGetKeyResponseMessage { - - /** - * Constructs a new GetKeyResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IGetKeyResponseMessage); - - /** GetKeyResponseMessage keyName. */ - public keyName: string; - - /** GetKeyResponseMessage keyContent. */ - public keyContent: string; - - /** - * Creates a new GetKeyResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns GetKeyResponseMessage instance - */ - public static create(properties?: agent.IGetKeyResponseMessage): agent.GetKeyResponseMessage; - - /** - * Encodes the specified GetKeyResponseMessage message. Does not implicitly {@link agent.GetKeyResponseMessage.verify|verify} messages. - * @param m GetKeyResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IGetKeyResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a GetKeyResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns GetKeyResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.GetKeyResponseMessage; - } - - /** Properties of a GetPrimaryKeyPairRequestMessage. */ - interface IGetPrimaryKeyPairRequestMessage { - - /** GetPrimaryKeyPairRequestMessage includePrivateKey */ - includePrivateKey?: (boolean|null); - } - - /** Represents a GetPrimaryKeyPairRequestMessage. */ - class GetPrimaryKeyPairRequestMessage implements IGetPrimaryKeyPairRequestMessage { - - /** - * Constructs a new GetPrimaryKeyPairRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IGetPrimaryKeyPairRequestMessage); - - /** GetPrimaryKeyPairRequestMessage includePrivateKey. */ - public includePrivateKey: boolean; - - /** - * Creates a new GetPrimaryKeyPairRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns GetPrimaryKeyPairRequestMessage instance - */ - public static create(properties?: agent.IGetPrimaryKeyPairRequestMessage): agent.GetPrimaryKeyPairRequestMessage; - - /** - * Encodes the specified GetPrimaryKeyPairRequestMessage message. Does not implicitly {@link agent.GetPrimaryKeyPairRequestMessage.verify|verify} messages. - * @param m GetPrimaryKeyPairRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IGetPrimaryKeyPairRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a GetPrimaryKeyPairRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns GetPrimaryKeyPairRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.GetPrimaryKeyPairRequestMessage; - } - - /** Properties of a GetPrimaryKeyPairResponseMessage. */ - interface IGetPrimaryKeyPairResponseMessage { - - /** GetPrimaryKeyPairResponseMessage publicKey */ - publicKey?: (string|null); - - /** GetPrimaryKeyPairResponseMessage privateKey */ - privateKey?: (string|null); - } - - /** Represents a GetPrimaryKeyPairResponseMessage. */ - class GetPrimaryKeyPairResponseMessage implements IGetPrimaryKeyPairResponseMessage { - - /** - * Constructs a new GetPrimaryKeyPairResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IGetPrimaryKeyPairResponseMessage); - - /** GetPrimaryKeyPairResponseMessage publicKey. */ - public publicKey: string; - - /** GetPrimaryKeyPairResponseMessage privateKey. */ - public privateKey: string; - - /** - * Creates a new GetPrimaryKeyPairResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns GetPrimaryKeyPairResponseMessage instance - */ - public static create(properties?: agent.IGetPrimaryKeyPairResponseMessage): agent.GetPrimaryKeyPairResponseMessage; - - /** - * Encodes the specified GetPrimaryKeyPairResponseMessage message. Does not implicitly {@link agent.GetPrimaryKeyPairResponseMessage.verify|verify} messages. - * @param m GetPrimaryKeyPairResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IGetPrimaryKeyPairResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a GetPrimaryKeyPairResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns GetPrimaryKeyPairResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.GetPrimaryKeyPairResponseMessage; - } - - /** Properties of an UpdateSecretRequestMessage. */ - interface IUpdateSecretRequestMessage { - - /** UpdateSecretRequestMessage vaultName */ - vaultName?: (string|null); - - /** UpdateSecretRequestMessage secretName */ - secretName?: (string|null); - - /** UpdateSecretRequestMessage secretPath */ - secretPath?: (string|null); - - /** UpdateSecretRequestMessage secretContent */ - secretContent?: (Uint8Array|null); - } - - /** Represents an UpdateSecretRequestMessage. */ - class UpdateSecretRequestMessage implements IUpdateSecretRequestMessage { - - /** - * Constructs a new UpdateSecretRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IUpdateSecretRequestMessage); - - /** UpdateSecretRequestMessage vaultName. */ - public vaultName: string; - - /** UpdateSecretRequestMessage secretName. */ - public secretName: string; - - /** UpdateSecretRequestMessage secretPath. */ - public secretPath: string; - - /** UpdateSecretRequestMessage secretContent. */ - public secretContent: Uint8Array; - - /** - * Creates a new UpdateSecretRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns UpdateSecretRequestMessage instance - */ - public static create(properties?: agent.IUpdateSecretRequestMessage): agent.UpdateSecretRequestMessage; - - /** - * Encodes the specified UpdateSecretRequestMessage message. Does not implicitly {@link agent.UpdateSecretRequestMessage.verify|verify} messages. - * @param m UpdateSecretRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IUpdateSecretRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an UpdateSecretRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns UpdateSecretRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.UpdateSecretRequestMessage; - } - - /** Properties of an UpdateSecretResponseMessage. */ - interface IUpdateSecretResponseMessage { - - /** UpdateSecretResponseMessage successful */ - successful?: (boolean|null); - } - - /** Represents an UpdateSecretResponseMessage. */ - class UpdateSecretResponseMessage implements IUpdateSecretResponseMessage { - - /** - * Constructs a new UpdateSecretResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IUpdateSecretResponseMessage); - - /** UpdateSecretResponseMessage successful. */ - public successful: boolean; - - /** - * Creates a new UpdateSecretResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns UpdateSecretResponseMessage instance - */ - public static create(properties?: agent.IUpdateSecretResponseMessage): agent.UpdateSecretResponseMessage; - - /** - * Encodes the specified UpdateSecretResponseMessage message. Does not implicitly {@link agent.UpdateSecretResponseMessage.verify|verify} messages. - * @param m UpdateSecretResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IUpdateSecretResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an UpdateSecretResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns UpdateSecretResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.UpdateSecretResponseMessage; - } - - /** Properties of a DeleteKeyRequestMessage. */ - interface IDeleteKeyRequestMessage { - - /** DeleteKeyRequestMessage keyName */ - keyName?: (string|null); - } - - /** Represents a DeleteKeyRequestMessage. */ - class DeleteKeyRequestMessage implements IDeleteKeyRequestMessage { - - /** - * Constructs a new DeleteKeyRequestMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IDeleteKeyRequestMessage); - - /** DeleteKeyRequestMessage keyName. */ - public keyName: string; - - /** - * Creates a new DeleteKeyRequestMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns DeleteKeyRequestMessage instance - */ - public static create(properties?: agent.IDeleteKeyRequestMessage): agent.DeleteKeyRequestMessage; - - /** - * Encodes the specified DeleteKeyRequestMessage message. Does not implicitly {@link agent.DeleteKeyRequestMessage.verify|verify} messages. - * @param m DeleteKeyRequestMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IDeleteKeyRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DeleteKeyRequestMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns DeleteKeyRequestMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DeleteKeyRequestMessage; - } - - /** Properties of a DeleteKeyResponseMessage. */ - interface IDeleteKeyResponseMessage { - - /** DeleteKeyResponseMessage successful */ - successful?: (boolean|null); - } - - /** Represents a DeleteKeyResponseMessage. */ - class DeleteKeyResponseMessage implements IDeleteKeyResponseMessage { - - /** - * Constructs a new DeleteKeyResponseMessage. - * @param [p] Properties to set - */ - constructor(p?: agent.IDeleteKeyResponseMessage); - - /** DeleteKeyResponseMessage successful. */ - public successful: boolean; - - /** - * Creates a new DeleteKeyResponseMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns DeleteKeyResponseMessage instance - */ - public static create(properties?: agent.IDeleteKeyResponseMessage): agent.DeleteKeyResponseMessage; - - /** - * Encodes the specified DeleteKeyResponseMessage message. Does not implicitly {@link agent.DeleteKeyResponseMessage.verify|verify} messages. - * @param m DeleteKeyResponseMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: agent.IDeleteKeyResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DeleteKeyResponseMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns DeleteKeyResponseMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DeleteKeyResponseMessage; +export = Agent; + +declare namespace Agent { + + + /** Namespace agent. */ + namespace agent { + + /** AgentMessageType enum. */ + enum AgentMessageType { + ERROR = 0, + STOP_AGENT = 1, + STATUS = 2, + REGISTER_NODE = 3, + NEW_NODE = 4, + LIST_NODES = 5, + DERIVE_KEY = 6, + SIGN_FILE = 7, + VERIFY_FILE = 8, + LIST_VAULTS = 9, + NEW_VAULT = 10, + DESTROY_VAULT = 11, + LIST_SECRETS = 12, + CREATE_SECRET = 13, + DESTROY_SECRET = 14, + GET_SECRET = 15, + LIST_KEYS = 16, + GET_KEY = 17, + DELETE_KEY = 18, + ENCRYPT_FILE = 19, + DECRYPT_FILE = 20, + GET_PRIMARY_KEYPAIR = 21, + UPDATE_SECRET = 22 + } + + /** Properties of an AgentMessage. */ + interface IAgentMessage { + + /** AgentMessage type */ + type?: (agent.AgentMessageType|null); + + /** AgentMessage isResponse */ + isResponse?: (boolean|null); + + /** AgentMessage nodePath */ + nodePath?: (string|null); + + /** AgentMessage subMessage */ + subMessage?: (Uint8Array|null); + } + + /** Represents an AgentMessage. */ + class AgentMessage implements IAgentMessage { + + /** + * Constructs a new AgentMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IAgentMessage); + + /** AgentMessage type. */ + public type: agent.AgentMessageType; + + /** AgentMessage isResponse. */ + public isResponse: boolean; + + /** AgentMessage nodePath. */ + public nodePath: string; + + /** AgentMessage subMessage. */ + public subMessage: Uint8Array; + + /** + * Creates a new AgentMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns AgentMessage instance + */ + public static create(properties?: agent.IAgentMessage): agent.AgentMessage; + + /** + * Encodes the specified AgentMessage message. Does not implicitly {@link agent.AgentMessage.verify|verify} messages. + * @param m AgentMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IAgentMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an AgentMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns AgentMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.AgentMessage; + } + + /** Properties of an ErrorMessage. */ + interface IErrorMessage { + + /** ErrorMessage error */ + error?: (string|null); + } + + /** Represents an ErrorMessage. */ + class ErrorMessage implements IErrorMessage { + + /** + * Constructs a new ErrorMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IErrorMessage); + + /** ErrorMessage error. */ + public error: string; + + /** + * Creates a new ErrorMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns ErrorMessage instance + */ + public static create(properties?: agent.IErrorMessage): agent.ErrorMessage; + + /** + * Encodes the specified ErrorMessage message. Does not implicitly {@link agent.ErrorMessage.verify|verify} messages. + * @param m ErrorMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IErrorMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ErrorMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns ErrorMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ErrorMessage; + } + + /** Properties of a RegisterNodeRequestMessage. */ + interface IRegisterNodeRequestMessage { + + /** RegisterNodeRequestMessage passphrase */ + passphrase?: (string|null); + } + + /** Represents a RegisterNodeRequestMessage. */ + class RegisterNodeRequestMessage implements IRegisterNodeRequestMessage { + + /** + * Constructs a new RegisterNodeRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IRegisterNodeRequestMessage); + + /** RegisterNodeRequestMessage passphrase. */ + public passphrase: string; + + /** + * Creates a new RegisterNodeRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns RegisterNodeRequestMessage instance + */ + public static create(properties?: agent.IRegisterNodeRequestMessage): agent.RegisterNodeRequestMessage; + + /** + * Encodes the specified RegisterNodeRequestMessage message. Does not implicitly {@link agent.RegisterNodeRequestMessage.verify|verify} messages. + * @param m RegisterNodeRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IRegisterNodeRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RegisterNodeRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns RegisterNodeRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.RegisterNodeRequestMessage; + } + + /** Properties of a RegisterNodeResponseMessage. */ + interface IRegisterNodeResponseMessage { + + /** RegisterNodeResponseMessage successful */ + successful?: (boolean|null); + } + + /** Represents a RegisterNodeResponseMessage. */ + class RegisterNodeResponseMessage implements IRegisterNodeResponseMessage { + + /** + * Constructs a new RegisterNodeResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IRegisterNodeResponseMessage); + + /** RegisterNodeResponseMessage successful. */ + public successful: boolean; + + /** + * Creates a new RegisterNodeResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns RegisterNodeResponseMessage instance + */ + public static create(properties?: agent.IRegisterNodeResponseMessage): agent.RegisterNodeResponseMessage; + + /** + * Encodes the specified RegisterNodeResponseMessage message. Does not implicitly {@link agent.RegisterNodeResponseMessage.verify|verify} messages. + * @param m RegisterNodeResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IRegisterNodeResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RegisterNodeResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns RegisterNodeResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.RegisterNodeResponseMessage; + } + + /** Properties of a NewNodeRequestMessage. */ + interface INewNodeRequestMessage { + + /** NewNodeRequestMessage name */ + name?: (string|null); + + /** NewNodeRequestMessage email */ + email?: (string|null); + + /** NewNodeRequestMessage passphrase */ + passphrase?: (string|null); + + /** NewNodeRequestMessage nbits */ + nbits?: (number|null); + } + + /** Represents a NewNodeRequestMessage. */ + class NewNodeRequestMessage implements INewNodeRequestMessage { + + /** + * Constructs a new NewNodeRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.INewNodeRequestMessage); + + /** NewNodeRequestMessage name. */ + public name: string; + + /** NewNodeRequestMessage email. */ + public email: string; + + /** NewNodeRequestMessage passphrase. */ + public passphrase: string; + + /** NewNodeRequestMessage nbits. */ + public nbits: number; + + /** + * Creates a new NewNodeRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns NewNodeRequestMessage instance + */ + public static create(properties?: agent.INewNodeRequestMessage): agent.NewNodeRequestMessage; + + /** + * Encodes the specified NewNodeRequestMessage message. Does not implicitly {@link agent.NewNodeRequestMessage.verify|verify} messages. + * @param m NewNodeRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.INewNodeRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a NewNodeRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns NewNodeRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.NewNodeRequestMessage; + } + + /** Properties of a NewNodeResponseMessage. */ + interface INewNodeResponseMessage { + + /** NewNodeResponseMessage successful */ + successful?: (boolean|null); + } + + /** Represents a NewNodeResponseMessage. */ + class NewNodeResponseMessage implements INewNodeResponseMessage { + + /** + * Constructs a new NewNodeResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.INewNodeResponseMessage); + + /** NewNodeResponseMessage successful. */ + public successful: boolean; + + /** + * Creates a new NewNodeResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns NewNodeResponseMessage instance + */ + public static create(properties?: agent.INewNodeResponseMessage): agent.NewNodeResponseMessage; + + /** + * Encodes the specified NewNodeResponseMessage message. Does not implicitly {@link agent.NewNodeResponseMessage.verify|verify} messages. + * @param m NewNodeResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.INewNodeResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a NewNodeResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns NewNodeResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.NewNodeResponseMessage; + } + + /** Properties of a ListNodesRequestMessage. */ + interface IListNodesRequestMessage { + + /** ListNodesRequestMessage unlockedOnly */ + unlockedOnly?: (boolean|null); + } + + /** Represents a ListNodesRequestMessage. */ + class ListNodesRequestMessage implements IListNodesRequestMessage { + + /** + * Constructs a new ListNodesRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IListNodesRequestMessage); + + /** ListNodesRequestMessage unlockedOnly. */ + public unlockedOnly: boolean; + + /** + * Creates a new ListNodesRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns ListNodesRequestMessage instance + */ + public static create(properties?: agent.IListNodesRequestMessage): agent.ListNodesRequestMessage; + + /** + * Encodes the specified ListNodesRequestMessage message. Does not implicitly {@link agent.ListNodesRequestMessage.verify|verify} messages. + * @param m ListNodesRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IListNodesRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListNodesRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns ListNodesRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListNodesRequestMessage; + } + + /** Properties of a ListNodesResponseMessage. */ + interface IListNodesResponseMessage { + + /** ListNodesResponseMessage nodes */ + nodes?: (string[]|null); + } + + /** Represents a ListNodesResponseMessage. */ + class ListNodesResponseMessage implements IListNodesResponseMessage { + + /** + * Constructs a new ListNodesResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IListNodesResponseMessage); + + /** ListNodesResponseMessage nodes. */ + public nodes: string[]; + + /** + * Creates a new ListNodesResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns ListNodesResponseMessage instance + */ + public static create(properties?: agent.IListNodesResponseMessage): agent.ListNodesResponseMessage; + + /** + * Encodes the specified ListNodesResponseMessage message. Does not implicitly {@link agent.ListNodesResponseMessage.verify|verify} messages. + * @param m ListNodesResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IListNodesResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListNodesResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns ListNodesResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListNodesResponseMessage; + } + + /** Properties of a SignFileRequestMessage. */ + interface ISignFileRequestMessage { + + /** SignFileRequestMessage filePath */ + filePath?: (string|null); + + /** SignFileRequestMessage privateKeyPath */ + privateKeyPath?: (string|null); + + /** SignFileRequestMessage passphrase */ + passphrase?: (string|null); + } + + /** Represents a SignFileRequestMessage. */ + class SignFileRequestMessage implements ISignFileRequestMessage { + + /** + * Constructs a new SignFileRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.ISignFileRequestMessage); + + /** SignFileRequestMessage filePath. */ + public filePath: string; + + /** SignFileRequestMessage privateKeyPath. */ + public privateKeyPath: string; + + /** SignFileRequestMessage passphrase. */ + public passphrase: string; + + /** + * Creates a new SignFileRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns SignFileRequestMessage instance + */ + public static create(properties?: agent.ISignFileRequestMessage): agent.SignFileRequestMessage; + + /** + * Encodes the specified SignFileRequestMessage message. Does not implicitly {@link agent.SignFileRequestMessage.verify|verify} messages. + * @param m SignFileRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.ISignFileRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SignFileRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns SignFileRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.SignFileRequestMessage; + } + + /** Properties of a SignFileResponseMessage. */ + interface ISignFileResponseMessage { + + /** SignFileResponseMessage signaturePath */ + signaturePath?: (string|null); + } + + /** Represents a SignFileResponseMessage. */ + class SignFileResponseMessage implements ISignFileResponseMessage { + + /** + * Constructs a new SignFileResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.ISignFileResponseMessage); + + /** SignFileResponseMessage signaturePath. */ + public signaturePath: string; + + /** + * Creates a new SignFileResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns SignFileResponseMessage instance + */ + public static create(properties?: agent.ISignFileResponseMessage): agent.SignFileResponseMessage; + + /** + * Encodes the specified SignFileResponseMessage message. Does not implicitly {@link agent.SignFileResponseMessage.verify|verify} messages. + * @param m SignFileResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.ISignFileResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SignFileResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns SignFileResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.SignFileResponseMessage; + } + + /** Properties of a VerifyFileRequestMessage. */ + interface IVerifyFileRequestMessage { + + /** VerifyFileRequestMessage filePath */ + filePath?: (string|null); + + /** VerifyFileRequestMessage publicKeyPath */ + publicKeyPath?: (string|null); + } + + /** Represents a VerifyFileRequestMessage. */ + class VerifyFileRequestMessage implements IVerifyFileRequestMessage { + + /** + * Constructs a new VerifyFileRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IVerifyFileRequestMessage); + + /** VerifyFileRequestMessage filePath. */ + public filePath: string; + + /** VerifyFileRequestMessage publicKeyPath. */ + public publicKeyPath: string; + + /** + * Creates a new VerifyFileRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns VerifyFileRequestMessage instance + */ + public static create(properties?: agent.IVerifyFileRequestMessage): agent.VerifyFileRequestMessage; + + /** + * Encodes the specified VerifyFileRequestMessage message. Does not implicitly {@link agent.VerifyFileRequestMessage.verify|verify} messages. + * @param m VerifyFileRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IVerifyFileRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a VerifyFileRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns VerifyFileRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.VerifyFileRequestMessage; + } + + /** Properties of a VerifyFileResponseMessage. */ + interface IVerifyFileResponseMessage { + + /** VerifyFileResponseMessage verified */ + verified?: (boolean|null); + } + + /** Represents a VerifyFileResponseMessage. */ + class VerifyFileResponseMessage implements IVerifyFileResponseMessage { + + /** + * Constructs a new VerifyFileResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IVerifyFileResponseMessage); + + /** VerifyFileResponseMessage verified. */ + public verified: boolean; + + /** + * Creates a new VerifyFileResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns VerifyFileResponseMessage instance + */ + public static create(properties?: agent.IVerifyFileResponseMessage): agent.VerifyFileResponseMessage; + + /** + * Encodes the specified VerifyFileResponseMessage message. Does not implicitly {@link agent.VerifyFileResponseMessage.verify|verify} messages. + * @param m VerifyFileResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IVerifyFileResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a VerifyFileResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns VerifyFileResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.VerifyFileResponseMessage; + } + + /** Properties of an EncryptFileRequestMessage. */ + interface IEncryptFileRequestMessage { + + /** EncryptFileRequestMessage filePath */ + filePath?: (string|null); + + /** EncryptFileRequestMessage publicKeyPath */ + publicKeyPath?: (string|null); + } + + /** Represents an EncryptFileRequestMessage. */ + class EncryptFileRequestMessage implements IEncryptFileRequestMessage { + + /** + * Constructs a new EncryptFileRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IEncryptFileRequestMessage); + + /** EncryptFileRequestMessage filePath. */ + public filePath: string; + + /** EncryptFileRequestMessage publicKeyPath. */ + public publicKeyPath: string; + + /** + * Creates a new EncryptFileRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns EncryptFileRequestMessage instance + */ + public static create(properties?: agent.IEncryptFileRequestMessage): agent.EncryptFileRequestMessage; + + /** + * Encodes the specified EncryptFileRequestMessage message. Does not implicitly {@link agent.EncryptFileRequestMessage.verify|verify} messages. + * @param m EncryptFileRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IEncryptFileRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EncryptFileRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns EncryptFileRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.EncryptFileRequestMessage; + } + + /** Properties of an EncryptFileResponseMessage. */ + interface IEncryptFileResponseMessage { + + /** EncryptFileResponseMessage encryptedPath */ + encryptedPath?: (string|null); + } + + /** Represents an EncryptFileResponseMessage. */ + class EncryptFileResponseMessage implements IEncryptFileResponseMessage { + + /** + * Constructs a new EncryptFileResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IEncryptFileResponseMessage); + + /** EncryptFileResponseMessage encryptedPath. */ + public encryptedPath: string; + + /** + * Creates a new EncryptFileResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns EncryptFileResponseMessage instance + */ + public static create(properties?: agent.IEncryptFileResponseMessage): agent.EncryptFileResponseMessage; + + /** + * Encodes the specified EncryptFileResponseMessage message. Does not implicitly {@link agent.EncryptFileResponseMessage.verify|verify} messages. + * @param m EncryptFileResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IEncryptFileResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EncryptFileResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns EncryptFileResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.EncryptFileResponseMessage; + } + + /** Properties of a DecryptFileRequestMessage. */ + interface IDecryptFileRequestMessage { + + /** DecryptFileRequestMessage filePath */ + filePath?: (string|null); + + /** DecryptFileRequestMessage privateKeyPath */ + privateKeyPath?: (string|null); + + /** DecryptFileRequestMessage passphrase */ + passphrase?: (string|null); + } + + /** Represents a DecryptFileRequestMessage. */ + class DecryptFileRequestMessage implements IDecryptFileRequestMessage { + + /** + * Constructs a new DecryptFileRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IDecryptFileRequestMessage); + + /** DecryptFileRequestMessage filePath. */ + public filePath: string; + + /** DecryptFileRequestMessage privateKeyPath. */ + public privateKeyPath: string; + + /** DecryptFileRequestMessage passphrase. */ + public passphrase: string; + + /** + * Creates a new DecryptFileRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns DecryptFileRequestMessage instance + */ + public static create(properties?: agent.IDecryptFileRequestMessage): agent.DecryptFileRequestMessage; + + /** + * Encodes the specified DecryptFileRequestMessage message. Does not implicitly {@link agent.DecryptFileRequestMessage.verify|verify} messages. + * @param m DecryptFileRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IDecryptFileRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DecryptFileRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns DecryptFileRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DecryptFileRequestMessage; + } + + /** Properties of a DecryptFileResponseMessage. */ + interface IDecryptFileResponseMessage { + + /** DecryptFileResponseMessage decryptedPath */ + decryptedPath?: (string|null); + } + + /** Represents a DecryptFileResponseMessage. */ + class DecryptFileResponseMessage implements IDecryptFileResponseMessage { + + /** + * Constructs a new DecryptFileResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IDecryptFileResponseMessage); + + /** DecryptFileResponseMessage decryptedPath. */ + public decryptedPath: string; + + /** + * Creates a new DecryptFileResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns DecryptFileResponseMessage instance + */ + public static create(properties?: agent.IDecryptFileResponseMessage): agent.DecryptFileResponseMessage; + + /** + * Encodes the specified DecryptFileResponseMessage message. Does not implicitly {@link agent.DecryptFileResponseMessage.verify|verify} messages. + * @param m DecryptFileResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IDecryptFileResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DecryptFileResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns DecryptFileResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DecryptFileResponseMessage; + } + + /** Properties of a ListVaultsRequestMessage. */ + interface IListVaultsRequestMessage { + } + + /** Represents a ListVaultsRequestMessage. */ + class ListVaultsRequestMessage implements IListVaultsRequestMessage { + + /** + * Constructs a new ListVaultsRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IListVaultsRequestMessage); + + /** + * Creates a new ListVaultsRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns ListVaultsRequestMessage instance + */ + public static create(properties?: agent.IListVaultsRequestMessage): agent.ListVaultsRequestMessage; + + /** + * Encodes the specified ListVaultsRequestMessage message. Does not implicitly {@link agent.ListVaultsRequestMessage.verify|verify} messages. + * @param m ListVaultsRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IListVaultsRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListVaultsRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns ListVaultsRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListVaultsRequestMessage; + } + + /** Properties of a ListVaultsResponseMessage. */ + interface IListVaultsResponseMessage { + + /** ListVaultsResponseMessage vaultNames */ + vaultNames?: (string[]|null); + } + + /** Represents a ListVaultsResponseMessage. */ + class ListVaultsResponseMessage implements IListVaultsResponseMessage { + + /** + * Constructs a new ListVaultsResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IListVaultsResponseMessage); + + /** ListVaultsResponseMessage vaultNames. */ + public vaultNames: string[]; + + /** + * Creates a new ListVaultsResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns ListVaultsResponseMessage instance + */ + public static create(properties?: agent.IListVaultsResponseMessage): agent.ListVaultsResponseMessage; + + /** + * Encodes the specified ListVaultsResponseMessage message. Does not implicitly {@link agent.ListVaultsResponseMessage.verify|verify} messages. + * @param m ListVaultsResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IListVaultsResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListVaultsResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns ListVaultsResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListVaultsResponseMessage; + } + + /** Properties of a NewVaultRequestMessage. */ + interface INewVaultRequestMessage { + + /** NewVaultRequestMessage vaultName */ + vaultName?: (string|null); + } + + /** Represents a NewVaultRequestMessage. */ + class NewVaultRequestMessage implements INewVaultRequestMessage { + + /** + * Constructs a new NewVaultRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.INewVaultRequestMessage); + + /** NewVaultRequestMessage vaultName. */ + public vaultName: string; + + /** + * Creates a new NewVaultRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns NewVaultRequestMessage instance + */ + public static create(properties?: agent.INewVaultRequestMessage): agent.NewVaultRequestMessage; + + /** + * Encodes the specified NewVaultRequestMessage message. Does not implicitly {@link agent.NewVaultRequestMessage.verify|verify} messages. + * @param m NewVaultRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.INewVaultRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a NewVaultRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns NewVaultRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.NewVaultRequestMessage; + } + + /** Properties of a NewVaultResponseMessage. */ + interface INewVaultResponseMessage { + + /** NewVaultResponseMessage successful */ + successful?: (boolean|null); + } + + /** Represents a NewVaultResponseMessage. */ + class NewVaultResponseMessage implements INewVaultResponseMessage { + + /** + * Constructs a new NewVaultResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.INewVaultResponseMessage); + + /** NewVaultResponseMessage successful. */ + public successful: boolean; + + /** + * Creates a new NewVaultResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns NewVaultResponseMessage instance + */ + public static create(properties?: agent.INewVaultResponseMessage): agent.NewVaultResponseMessage; + + /** + * Encodes the specified NewVaultResponseMessage message. Does not implicitly {@link agent.NewVaultResponseMessage.verify|verify} messages. + * @param m NewVaultResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.INewVaultResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a NewVaultResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns NewVaultResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.NewVaultResponseMessage; + } + + /** Properties of a DestroyVaultRequestMessage. */ + interface IDestroyVaultRequestMessage { + + /** DestroyVaultRequestMessage vaultName */ + vaultName?: (string|null); + } + + /** Represents a DestroyVaultRequestMessage. */ + class DestroyVaultRequestMessage implements IDestroyVaultRequestMessage { + + /** + * Constructs a new DestroyVaultRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IDestroyVaultRequestMessage); + + /** DestroyVaultRequestMessage vaultName. */ + public vaultName: string; + + /** + * Creates a new DestroyVaultRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns DestroyVaultRequestMessage instance + */ + public static create(properties?: agent.IDestroyVaultRequestMessage): agent.DestroyVaultRequestMessage; + + /** + * Encodes the specified DestroyVaultRequestMessage message. Does not implicitly {@link agent.DestroyVaultRequestMessage.verify|verify} messages. + * @param m DestroyVaultRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IDestroyVaultRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DestroyVaultRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns DestroyVaultRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DestroyVaultRequestMessage; + } + + /** Properties of a DestroyVaultResponseMessage. */ + interface IDestroyVaultResponseMessage { + + /** DestroyVaultResponseMessage successful */ + successful?: (boolean|null); + } + + /** Represents a DestroyVaultResponseMessage. */ + class DestroyVaultResponseMessage implements IDestroyVaultResponseMessage { + + /** + * Constructs a new DestroyVaultResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IDestroyVaultResponseMessage); + + /** DestroyVaultResponseMessage successful. */ + public successful: boolean; + + /** + * Creates a new DestroyVaultResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns DestroyVaultResponseMessage instance + */ + public static create(properties?: agent.IDestroyVaultResponseMessage): agent.DestroyVaultResponseMessage; + + /** + * Encodes the specified DestroyVaultResponseMessage message. Does not implicitly {@link agent.DestroyVaultResponseMessage.verify|verify} messages. + * @param m DestroyVaultResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IDestroyVaultResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DestroyVaultResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns DestroyVaultResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DestroyVaultResponseMessage; + } + + /** Properties of a ListSecretsRequestMessage. */ + interface IListSecretsRequestMessage { + + /** ListSecretsRequestMessage vaultName */ + vaultName?: (string|null); + } + + /** Represents a ListSecretsRequestMessage. */ + class ListSecretsRequestMessage implements IListSecretsRequestMessage { + + /** + * Constructs a new ListSecretsRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IListSecretsRequestMessage); + + /** ListSecretsRequestMessage vaultName. */ + public vaultName: string; + + /** + * Creates a new ListSecretsRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns ListSecretsRequestMessage instance + */ + public static create(properties?: agent.IListSecretsRequestMessage): agent.ListSecretsRequestMessage; + + /** + * Encodes the specified ListSecretsRequestMessage message. Does not implicitly {@link agent.ListSecretsRequestMessage.verify|verify} messages. + * @param m ListSecretsRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IListSecretsRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListSecretsRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns ListSecretsRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListSecretsRequestMessage; + } + + /** Properties of a ListSecretsResponseMessage. */ + interface IListSecretsResponseMessage { + + /** ListSecretsResponseMessage secretNames */ + secretNames?: (string[]|null); + } + + /** Represents a ListSecretsResponseMessage. */ + class ListSecretsResponseMessage implements IListSecretsResponseMessage { + + /** + * Constructs a new ListSecretsResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IListSecretsResponseMessage); + + /** ListSecretsResponseMessage secretNames. */ + public secretNames: string[]; + + /** + * Creates a new ListSecretsResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns ListSecretsResponseMessage instance + */ + public static create(properties?: agent.IListSecretsResponseMessage): agent.ListSecretsResponseMessage; + + /** + * Encodes the specified ListSecretsResponseMessage message. Does not implicitly {@link agent.ListSecretsResponseMessage.verify|verify} messages. + * @param m ListSecretsResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IListSecretsResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListSecretsResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns ListSecretsResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListSecretsResponseMessage; + } + + /** Properties of a CreateSecretRequestMessage. */ + interface ICreateSecretRequestMessage { + + /** CreateSecretRequestMessage vaultName */ + vaultName?: (string|null); + + /** CreateSecretRequestMessage secretName */ + secretName?: (string|null); + + /** CreateSecretRequestMessage secretPath */ + secretPath?: (string|null); + + /** CreateSecretRequestMessage secretContent */ + secretContent?: (Uint8Array|null); + } + + /** Represents a CreateSecretRequestMessage. */ + class CreateSecretRequestMessage implements ICreateSecretRequestMessage { + + /** + * Constructs a new CreateSecretRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.ICreateSecretRequestMessage); + + /** CreateSecretRequestMessage vaultName. */ + public vaultName: string; + + /** CreateSecretRequestMessage secretName. */ + public secretName: string; + + /** CreateSecretRequestMessage secretPath. */ + public secretPath: string; + + /** CreateSecretRequestMessage secretContent. */ + public secretContent: Uint8Array; + + /** + * Creates a new CreateSecretRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns CreateSecretRequestMessage instance + */ + public static create(properties?: agent.ICreateSecretRequestMessage): agent.CreateSecretRequestMessage; + + /** + * Encodes the specified CreateSecretRequestMessage message. Does not implicitly {@link agent.CreateSecretRequestMessage.verify|verify} messages. + * @param m CreateSecretRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.ICreateSecretRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CreateSecretRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns CreateSecretRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.CreateSecretRequestMessage; + } + + /** Properties of a CreateSecretResponseMessage. */ + interface ICreateSecretResponseMessage { + + /** CreateSecretResponseMessage successful */ + successful?: (boolean|null); + } + + /** Represents a CreateSecretResponseMessage. */ + class CreateSecretResponseMessage implements ICreateSecretResponseMessage { + + /** + * Constructs a new CreateSecretResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.ICreateSecretResponseMessage); + + /** CreateSecretResponseMessage successful. */ + public successful: boolean; + + /** + * Creates a new CreateSecretResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns CreateSecretResponseMessage instance + */ + public static create(properties?: agent.ICreateSecretResponseMessage): agent.CreateSecretResponseMessage; + + /** + * Encodes the specified CreateSecretResponseMessage message. Does not implicitly {@link agent.CreateSecretResponseMessage.verify|verify} messages. + * @param m CreateSecretResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.ICreateSecretResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CreateSecretResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns CreateSecretResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.CreateSecretResponseMessage; + } + + /** Properties of a DestroySecretRequestMessage. */ + interface IDestroySecretRequestMessage { + + /** DestroySecretRequestMessage vaultName */ + vaultName?: (string|null); + + /** DestroySecretRequestMessage secretName */ + secretName?: (string|null); + } + + /** Represents a DestroySecretRequestMessage. */ + class DestroySecretRequestMessage implements IDestroySecretRequestMessage { + + /** + * Constructs a new DestroySecretRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IDestroySecretRequestMessage); + + /** DestroySecretRequestMessage vaultName. */ + public vaultName: string; + + /** DestroySecretRequestMessage secretName. */ + public secretName: string; + + /** + * Creates a new DestroySecretRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns DestroySecretRequestMessage instance + */ + public static create(properties?: agent.IDestroySecretRequestMessage): agent.DestroySecretRequestMessage; + + /** + * Encodes the specified DestroySecretRequestMessage message. Does not implicitly {@link agent.DestroySecretRequestMessage.verify|verify} messages. + * @param m DestroySecretRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IDestroySecretRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DestroySecretRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns DestroySecretRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DestroySecretRequestMessage; + } + + /** Properties of a DestroySecretResponseMessage. */ + interface IDestroySecretResponseMessage { + + /** DestroySecretResponseMessage successful */ + successful?: (boolean|null); + } + + /** Represents a DestroySecretResponseMessage. */ + class DestroySecretResponseMessage implements IDestroySecretResponseMessage { + + /** + * Constructs a new DestroySecretResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IDestroySecretResponseMessage); + + /** DestroySecretResponseMessage successful. */ + public successful: boolean; + + /** + * Creates a new DestroySecretResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns DestroySecretResponseMessage instance + */ + public static create(properties?: agent.IDestroySecretResponseMessage): agent.DestroySecretResponseMessage; + + /** + * Encodes the specified DestroySecretResponseMessage message. Does not implicitly {@link agent.DestroySecretResponseMessage.verify|verify} messages. + * @param m DestroySecretResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IDestroySecretResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DestroySecretResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns DestroySecretResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DestroySecretResponseMessage; + } + + /** Properties of a GetSecretRequestMessage. */ + interface IGetSecretRequestMessage { + + /** GetSecretRequestMessage vaultName */ + vaultName?: (string|null); + + /** GetSecretRequestMessage secretName */ + secretName?: (string|null); + } + + /** Represents a GetSecretRequestMessage. */ + class GetSecretRequestMessage implements IGetSecretRequestMessage { + + /** + * Constructs a new GetSecretRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IGetSecretRequestMessage); + + /** GetSecretRequestMessage vaultName. */ + public vaultName: string; + + /** GetSecretRequestMessage secretName. */ + public secretName: string; + + /** + * Creates a new GetSecretRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns GetSecretRequestMessage instance + */ + public static create(properties?: agent.IGetSecretRequestMessage): agent.GetSecretRequestMessage; + + /** + * Encodes the specified GetSecretRequestMessage message. Does not implicitly {@link agent.GetSecretRequestMessage.verify|verify} messages. + * @param m GetSecretRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IGetSecretRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetSecretRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns GetSecretRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.GetSecretRequestMessage; + } + + /** Properties of a GetSecretResponseMessage. */ + interface IGetSecretResponseMessage { + + /** GetSecretResponseMessage secret */ + secret?: (Uint8Array|null); + } + + /** Represents a GetSecretResponseMessage. */ + class GetSecretResponseMessage implements IGetSecretResponseMessage { + + /** + * Constructs a new GetSecretResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IGetSecretResponseMessage); + + /** GetSecretResponseMessage secret. */ + public secret: Uint8Array; + + /** + * Creates a new GetSecretResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns GetSecretResponseMessage instance + */ + public static create(properties?: agent.IGetSecretResponseMessage): agent.GetSecretResponseMessage; + + /** + * Encodes the specified GetSecretResponseMessage message. Does not implicitly {@link agent.GetSecretResponseMessage.verify|verify} messages. + * @param m GetSecretResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IGetSecretResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetSecretResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns GetSecretResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.GetSecretResponseMessage; + } + + /** Properties of a DeriveKeyRequestMessage. */ + interface IDeriveKeyRequestMessage { + + /** DeriveKeyRequestMessage vaultName */ + vaultName?: (string|null); + + /** DeriveKeyRequestMessage keyName */ + keyName?: (string|null); + + /** DeriveKeyRequestMessage passphrase */ + passphrase?: (string|null); + } + + /** Represents a DeriveKeyRequestMessage. */ + class DeriveKeyRequestMessage implements IDeriveKeyRequestMessage { + + /** + * Constructs a new DeriveKeyRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IDeriveKeyRequestMessage); + + /** DeriveKeyRequestMessage vaultName. */ + public vaultName: string; + + /** DeriveKeyRequestMessage keyName. */ + public keyName: string; + + /** DeriveKeyRequestMessage passphrase. */ + public passphrase: string; + + /** + * Creates a new DeriveKeyRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns DeriveKeyRequestMessage instance + */ + public static create(properties?: agent.IDeriveKeyRequestMessage): agent.DeriveKeyRequestMessage; + + /** + * Encodes the specified DeriveKeyRequestMessage message. Does not implicitly {@link agent.DeriveKeyRequestMessage.verify|verify} messages. + * @param m DeriveKeyRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IDeriveKeyRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DeriveKeyRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns DeriveKeyRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DeriveKeyRequestMessage; + } + + /** Properties of a DeriveKeyResponseMessage. */ + interface IDeriveKeyResponseMessage { + + /** DeriveKeyResponseMessage successful */ + successful?: (boolean|null); + } + + /** Represents a DeriveKeyResponseMessage. */ + class DeriveKeyResponseMessage implements IDeriveKeyResponseMessage { + + /** + * Constructs a new DeriveKeyResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IDeriveKeyResponseMessage); + + /** DeriveKeyResponseMessage successful. */ + public successful: boolean; + + /** + * Creates a new DeriveKeyResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns DeriveKeyResponseMessage instance + */ + public static create(properties?: agent.IDeriveKeyResponseMessage): agent.DeriveKeyResponseMessage; + + /** + * Encodes the specified DeriveKeyResponseMessage message. Does not implicitly {@link agent.DeriveKeyResponseMessage.verify|verify} messages. + * @param m DeriveKeyResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IDeriveKeyResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DeriveKeyResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns DeriveKeyResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DeriveKeyResponseMessage; + } + + /** Properties of a ListKeysRequestMessage. */ + interface IListKeysRequestMessage { + } + + /** Represents a ListKeysRequestMessage. */ + class ListKeysRequestMessage implements IListKeysRequestMessage { + + /** + * Constructs a new ListKeysRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IListKeysRequestMessage); + + /** + * Creates a new ListKeysRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns ListKeysRequestMessage instance + */ + public static create(properties?: agent.IListKeysRequestMessage): agent.ListKeysRequestMessage; + + /** + * Encodes the specified ListKeysRequestMessage message. Does not implicitly {@link agent.ListKeysRequestMessage.verify|verify} messages. + * @param m ListKeysRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IListKeysRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListKeysRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns ListKeysRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListKeysRequestMessage; + } + + /** Properties of a ListKeysResponseMessage. */ + interface IListKeysResponseMessage { + + /** ListKeysResponseMessage keyNames */ + keyNames?: (string[]|null); + } + + /** Represents a ListKeysResponseMessage. */ + class ListKeysResponseMessage implements IListKeysResponseMessage { + + /** + * Constructs a new ListKeysResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IListKeysResponseMessage); + + /** ListKeysResponseMessage keyNames. */ + public keyNames: string[]; + + /** + * Creates a new ListKeysResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns ListKeysResponseMessage instance + */ + public static create(properties?: agent.IListKeysResponseMessage): agent.ListKeysResponseMessage; + + /** + * Encodes the specified ListKeysResponseMessage message. Does not implicitly {@link agent.ListKeysResponseMessage.verify|verify} messages. + * @param m ListKeysResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IListKeysResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListKeysResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns ListKeysResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.ListKeysResponseMessage; + } + + /** Properties of a GetKeyRequestMessage. */ + interface IGetKeyRequestMessage { + + /** GetKeyRequestMessage keyName */ + keyName?: (string|null); + } + + /** Represents a GetKeyRequestMessage. */ + class GetKeyRequestMessage implements IGetKeyRequestMessage { + + /** + * Constructs a new GetKeyRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IGetKeyRequestMessage); + + /** GetKeyRequestMessage keyName. */ + public keyName: string; + + /** + * Creates a new GetKeyRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns GetKeyRequestMessage instance + */ + public static create(properties?: agent.IGetKeyRequestMessage): agent.GetKeyRequestMessage; + + /** + * Encodes the specified GetKeyRequestMessage message. Does not implicitly {@link agent.GetKeyRequestMessage.verify|verify} messages. + * @param m GetKeyRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IGetKeyRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetKeyRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns GetKeyRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.GetKeyRequestMessage; + } + + /** Properties of a GetKeyResponseMessage. */ + interface IGetKeyResponseMessage { + + /** GetKeyResponseMessage keyName */ + keyName?: (string|null); + + /** GetKeyResponseMessage keyContent */ + keyContent?: (string|null); + } + + /** Represents a GetKeyResponseMessage. */ + class GetKeyResponseMessage implements IGetKeyResponseMessage { + + /** + * Constructs a new GetKeyResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IGetKeyResponseMessage); + + /** GetKeyResponseMessage keyName. */ + public keyName: string; + + /** GetKeyResponseMessage keyContent. */ + public keyContent: string; + + /** + * Creates a new GetKeyResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns GetKeyResponseMessage instance + */ + public static create(properties?: agent.IGetKeyResponseMessage): agent.GetKeyResponseMessage; + + /** + * Encodes the specified GetKeyResponseMessage message. Does not implicitly {@link agent.GetKeyResponseMessage.verify|verify} messages. + * @param m GetKeyResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IGetKeyResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetKeyResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns GetKeyResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.GetKeyResponseMessage; + } + + /** Properties of a GetPrimaryKeyPairRequestMessage. */ + interface IGetPrimaryKeyPairRequestMessage { + + /** GetPrimaryKeyPairRequestMessage includePrivateKey */ + includePrivateKey?: (boolean|null); + } + + /** Represents a GetPrimaryKeyPairRequestMessage. */ + class GetPrimaryKeyPairRequestMessage implements IGetPrimaryKeyPairRequestMessage { + + /** + * Constructs a new GetPrimaryKeyPairRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IGetPrimaryKeyPairRequestMessage); + + /** GetPrimaryKeyPairRequestMessage includePrivateKey. */ + public includePrivateKey: boolean; + + /** + * Creates a new GetPrimaryKeyPairRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns GetPrimaryKeyPairRequestMessage instance + */ + public static create(properties?: agent.IGetPrimaryKeyPairRequestMessage): agent.GetPrimaryKeyPairRequestMessage; + + /** + * Encodes the specified GetPrimaryKeyPairRequestMessage message. Does not implicitly {@link agent.GetPrimaryKeyPairRequestMessage.verify|verify} messages. + * @param m GetPrimaryKeyPairRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IGetPrimaryKeyPairRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetPrimaryKeyPairRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns GetPrimaryKeyPairRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.GetPrimaryKeyPairRequestMessage; + } + + /** Properties of a GetPrimaryKeyPairResponseMessage. */ + interface IGetPrimaryKeyPairResponseMessage { + + /** GetPrimaryKeyPairResponseMessage publicKey */ + publicKey?: (string|null); + + /** GetPrimaryKeyPairResponseMessage privateKey */ + privateKey?: (string|null); + } + + /** Represents a GetPrimaryKeyPairResponseMessage. */ + class GetPrimaryKeyPairResponseMessage implements IGetPrimaryKeyPairResponseMessage { + + /** + * Constructs a new GetPrimaryKeyPairResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IGetPrimaryKeyPairResponseMessage); + + /** GetPrimaryKeyPairResponseMessage publicKey. */ + public publicKey: string; + + /** GetPrimaryKeyPairResponseMessage privateKey. */ + public privateKey: string; + + /** + * Creates a new GetPrimaryKeyPairResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns GetPrimaryKeyPairResponseMessage instance + */ + public static create(properties?: agent.IGetPrimaryKeyPairResponseMessage): agent.GetPrimaryKeyPairResponseMessage; + + /** + * Encodes the specified GetPrimaryKeyPairResponseMessage message. Does not implicitly {@link agent.GetPrimaryKeyPairResponseMessage.verify|verify} messages. + * @param m GetPrimaryKeyPairResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IGetPrimaryKeyPairResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetPrimaryKeyPairResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns GetPrimaryKeyPairResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.GetPrimaryKeyPairResponseMessage; + } + + /** Properties of an UpdateSecretRequestMessage. */ + interface IUpdateSecretRequestMessage { + + /** UpdateSecretRequestMessage vaultName */ + vaultName?: (string|null); + + /** UpdateSecretRequestMessage secretName */ + secretName?: (string|null); + + /** UpdateSecretRequestMessage secretPath */ + secretPath?: (string|null); + + /** UpdateSecretRequestMessage secretContent */ + secretContent?: (Uint8Array|null); + } + + /** Represents an UpdateSecretRequestMessage. */ + class UpdateSecretRequestMessage implements IUpdateSecretRequestMessage { + + /** + * Constructs a new UpdateSecretRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IUpdateSecretRequestMessage); + + /** UpdateSecretRequestMessage vaultName. */ + public vaultName: string; + + /** UpdateSecretRequestMessage secretName. */ + public secretName: string; + + /** UpdateSecretRequestMessage secretPath. */ + public secretPath: string; + + /** UpdateSecretRequestMessage secretContent. */ + public secretContent: Uint8Array; + + /** + * Creates a new UpdateSecretRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns UpdateSecretRequestMessage instance + */ + public static create(properties?: agent.IUpdateSecretRequestMessage): agent.UpdateSecretRequestMessage; + + /** + * Encodes the specified UpdateSecretRequestMessage message. Does not implicitly {@link agent.UpdateSecretRequestMessage.verify|verify} messages. + * @param m UpdateSecretRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IUpdateSecretRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an UpdateSecretRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns UpdateSecretRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.UpdateSecretRequestMessage; + } + + /** Properties of an UpdateSecretResponseMessage. */ + interface IUpdateSecretResponseMessage { + + /** UpdateSecretResponseMessage successful */ + successful?: (boolean|null); + } + + /** Represents an UpdateSecretResponseMessage. */ + class UpdateSecretResponseMessage implements IUpdateSecretResponseMessage { + + /** + * Constructs a new UpdateSecretResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IUpdateSecretResponseMessage); + + /** UpdateSecretResponseMessage successful. */ + public successful: boolean; + + /** + * Creates a new UpdateSecretResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns UpdateSecretResponseMessage instance + */ + public static create(properties?: agent.IUpdateSecretResponseMessage): agent.UpdateSecretResponseMessage; + + /** + * Encodes the specified UpdateSecretResponseMessage message. Does not implicitly {@link agent.UpdateSecretResponseMessage.verify|verify} messages. + * @param m UpdateSecretResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IUpdateSecretResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an UpdateSecretResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns UpdateSecretResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.UpdateSecretResponseMessage; + } + + /** Properties of a DeleteKeyRequestMessage. */ + interface IDeleteKeyRequestMessage { + + /** DeleteKeyRequestMessage keyName */ + keyName?: (string|null); + } + + /** Represents a DeleteKeyRequestMessage. */ + class DeleteKeyRequestMessage implements IDeleteKeyRequestMessage { + + /** + * Constructs a new DeleteKeyRequestMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IDeleteKeyRequestMessage); + + /** DeleteKeyRequestMessage keyName. */ + public keyName: string; + + /** + * Creates a new DeleteKeyRequestMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns DeleteKeyRequestMessage instance + */ + public static create(properties?: agent.IDeleteKeyRequestMessage): agent.DeleteKeyRequestMessage; + + /** + * Encodes the specified DeleteKeyRequestMessage message. Does not implicitly {@link agent.DeleteKeyRequestMessage.verify|verify} messages. + * @param m DeleteKeyRequestMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IDeleteKeyRequestMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DeleteKeyRequestMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns DeleteKeyRequestMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DeleteKeyRequestMessage; + } + + /** Properties of a DeleteKeyResponseMessage. */ + interface IDeleteKeyResponseMessage { + + /** DeleteKeyResponseMessage successful */ + successful?: (boolean|null); + } + + /** Represents a DeleteKeyResponseMessage. */ + class DeleteKeyResponseMessage implements IDeleteKeyResponseMessage { + + /** + * Constructs a new DeleteKeyResponseMessage. + * @param [p] Properties to set + */ + constructor(p?: agent.IDeleteKeyResponseMessage); + + /** DeleteKeyResponseMessage successful. */ + public successful: boolean; + + /** + * Creates a new DeleteKeyResponseMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns DeleteKeyResponseMessage instance + */ + public static create(properties?: agent.IDeleteKeyResponseMessage): agent.DeleteKeyResponseMessage; + + /** + * Encodes the specified DeleteKeyResponseMessage message. Does not implicitly {@link agent.DeleteKeyResponseMessage.verify|verify} messages. + * @param m DeleteKeyResponseMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: agent.IDeleteKeyResponseMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DeleteKeyResponseMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns DeleteKeyResponseMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): agent.DeleteKeyResponseMessage; + } } } diff --git a/proto/js/Agent.js b/proto/js/Agent.js index fde86b3db..9360b94d4 100644 --- a/proto/js/Agent.js +++ b/proto/js/Agent.js @@ -1128,7 +1128,6 @@ $root.agent = (function() { * @memberof agent * @interface IVerifyFileRequestMessage * @property {string|null} [filePath] VerifyFileRequestMessage filePath - * @property {string|null} [signaturePath] VerifyFileRequestMessage signaturePath * @property {string|null} [publicKeyPath] VerifyFileRequestMessage publicKeyPath */ @@ -1155,14 +1154,6 @@ $root.agent = (function() { */ VerifyFileRequestMessage.prototype.filePath = ""; - /** - * VerifyFileRequestMessage signaturePath. - * @member {string} signaturePath - * @memberof agent.VerifyFileRequestMessage - * @instance - */ - VerifyFileRequestMessage.prototype.signaturePath = ""; - /** * VerifyFileRequestMessage publicKeyPath. * @member {string} publicKeyPath @@ -1197,10 +1188,8 @@ $root.agent = (function() { w = $Writer.create(); if (m.filePath != null && Object.hasOwnProperty.call(m, "filePath")) w.uint32(10).string(m.filePath); - if (m.signaturePath != null && Object.hasOwnProperty.call(m, "signaturePath")) - w.uint32(18).string(m.signaturePath); if (m.publicKeyPath != null && Object.hasOwnProperty.call(m, "publicKeyPath")) - w.uint32(26).string(m.publicKeyPath); + w.uint32(18).string(m.publicKeyPath); return w; }; @@ -1226,9 +1215,6 @@ $root.agent = (function() { m.filePath = r.string(); break; case 2: - m.signaturePath = r.string(); - break; - case 3: m.publicKeyPath = r.string(); break; default: diff --git a/proto/js/Git.d.ts b/proto/js/Git.d.ts index 0fe0499bd..2c6738ae8 100644 --- a/proto/js/Git.d.ts +++ b/proto/js/Git.d.ts @@ -1,268 +1,274 @@ import * as $protobuf from "protobufjs"; -/** Namespace git. */ -export namespace git { - - /** Represents a GitServer */ - class GitServer extends $protobuf.rpc.Service { - - /** - * Constructs a new GitServer service. - * @param rpcImpl RPC implementation - * @param [requestDelimited=false] Whether requests are length-delimited - * @param [responseDelimited=false] Whether responses are length-delimited - */ - constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); - - /** - * Creates new GitServer service using the specified rpc implementation. - * @param rpcImpl RPC implementation - * @param [requestDelimited=false] Whether requests are length-delimited - * @param [responseDelimited=false] Whether responses are length-delimited - * @returns RPC service. Useful where requests and/or responses are streamed. - */ - public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): GitServer; - - /** - * Calls RequestInfo. - * @param request InfoRequest message or plain object - * @param callback Node-style callback called with the error, if any, and InfoReply - */ - public requestInfo(request: git.IInfoRequest, callback: git.GitServer.RequestInfoCallback): void; - - /** - * Calls RequestInfo. - * @param request InfoRequest message or plain object - * @returns Promise - */ - public requestInfo(request: git.IInfoRequest): Promise; - - /** - * Calls RequestPack. - * @param request PackRequest message or plain object - * @param callback Node-style callback called with the error, if any, and PackReply - */ - public requestPack(request: git.IPackRequest, callback: git.GitServer.RequestPackCallback): void; - - /** - * Calls RequestPack. - * @param request PackRequest message or plain object - * @returns Promise - */ - public requestPack(request: git.IPackRequest): Promise; - } - - namespace GitServer { - - /** - * Callback as used by {@link git.GitServer#requestInfo}. - * @param error Error, if any - * @param [response] InfoReply - */ - type RequestInfoCallback = (error: (Error|null), response?: git.InfoReply) => void; - - /** - * Callback as used by {@link git.GitServer#requestPack}. - * @param error Error, if any - * @param [response] PackReply - */ - type RequestPackCallback = (error: (Error|null), response?: git.PackReply) => void; - } - - /** Properties of an InfoRequest. */ - interface IInfoRequest { - - /** InfoRequest vaultName */ - vaultName?: (string|null); - } - - /** Represents an InfoRequest. */ - class InfoRequest implements IInfoRequest { - - /** - * Constructs a new InfoRequest. - * @param [p] Properties to set - */ - constructor(p?: git.IInfoRequest); - - /** InfoRequest vaultName. */ - public vaultName: string; - - /** - * Creates a new InfoRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns InfoRequest instance - */ - public static create(properties?: git.IInfoRequest): git.InfoRequest; - - /** - * Encodes the specified InfoRequest message. Does not implicitly {@link git.InfoRequest.verify|verify} messages. - * @param m InfoRequest message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: git.IInfoRequest, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an InfoRequest message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns InfoRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): git.InfoRequest; - } - - /** Properties of an InfoReply. */ - interface IInfoReply { - - /** InfoReply vaultName */ - vaultName?: (string|null); - - /** InfoReply body */ - body?: (Uint8Array|null); - } - - /** Represents an InfoReply. */ - class InfoReply implements IInfoReply { - - /** - * Constructs a new InfoReply. - * @param [p] Properties to set - */ - constructor(p?: git.IInfoReply); - - /** InfoReply vaultName. */ - public vaultName: string; - - /** InfoReply body. */ - public body: Uint8Array; - - /** - * Creates a new InfoReply instance using the specified properties. - * @param [properties] Properties to set - * @returns InfoReply instance - */ - public static create(properties?: git.IInfoReply): git.InfoReply; - - /** - * Encodes the specified InfoReply message. Does not implicitly {@link git.InfoReply.verify|verify} messages. - * @param m InfoReply message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: git.IInfoReply, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an InfoReply message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns InfoReply - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): git.InfoReply; - } - - /** Properties of a PackRequest. */ - interface IPackRequest { - - /** PackRequest vaultName */ - vaultName?: (string|null); - - /** PackRequest body */ - body?: (Uint8Array|null); - } - - /** Represents a PackRequest. */ - class PackRequest implements IPackRequest { - - /** - * Constructs a new PackRequest. - * @param [p] Properties to set - */ - constructor(p?: git.IPackRequest); - - /** PackRequest vaultName. */ - public vaultName: string; - - /** PackRequest body. */ - public body: Uint8Array; - - /** - * Creates a new PackRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns PackRequest instance - */ - public static create(properties?: git.IPackRequest): git.PackRequest; - - /** - * Encodes the specified PackRequest message. Does not implicitly {@link git.PackRequest.verify|verify} messages. - * @param m PackRequest message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: git.IPackRequest, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a PackRequest message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns PackRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): git.PackRequest; - } - - /** Properties of a PackReply. */ - interface IPackReply { - - /** PackReply vaultName */ - vaultName?: (string|null); - - /** PackReply body */ - body?: (Uint8Array|null); - } - - /** Represents a PackReply. */ - class PackReply implements IPackReply { - - /** - * Constructs a new PackReply. - * @param [p] Properties to set - */ - constructor(p?: git.IPackReply); - - /** PackReply vaultName. */ - public vaultName: string; - - /** PackReply body. */ - public body: Uint8Array; - - /** - * Creates a new PackReply instance using the specified properties. - * @param [properties] Properties to set - * @returns PackReply instance - */ - public static create(properties?: git.IPackReply): git.PackReply; - - /** - * Encodes the specified PackReply message. Does not implicitly {@link git.PackReply.verify|verify} messages. - * @param m PackReply message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: git.IPackReply, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a PackReply message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns PackReply - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): git.PackReply; +export = Git; + +declare namespace Git { + + + /** Namespace git. */ + namespace git { + + /** Represents a GitServer */ + class GitServer extends $protobuf.rpc.Service { + + /** + * Constructs a new GitServer service. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + */ + constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); + + /** + * Creates new GitServer service using the specified rpc implementation. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + * @returns RPC service. Useful where requests and/or responses are streamed. + */ + public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): GitServer; + + /** + * Calls RequestInfo. + * @param request InfoRequest message or plain object + * @param callback Node-style callback called with the error, if any, and InfoReply + */ + public requestInfo(request: git.IInfoRequest, callback: git.GitServer.RequestInfoCallback): void; + + /** + * Calls RequestInfo. + * @param request InfoRequest message or plain object + * @returns Promise + */ + public requestInfo(request: git.IInfoRequest): Promise; + + /** + * Calls RequestPack. + * @param request PackRequest message or plain object + * @param callback Node-style callback called with the error, if any, and PackReply + */ + public requestPack(request: git.IPackRequest, callback: git.GitServer.RequestPackCallback): void; + + /** + * Calls RequestPack. + * @param request PackRequest message or plain object + * @returns Promise + */ + public requestPack(request: git.IPackRequest): Promise; + } + + namespace GitServer { + + /** + * Callback as used by {@link git.GitServer#requestInfo}. + * @param error Error, if any + * @param [response] InfoReply + */ + type RequestInfoCallback = (error: (Error|null), response?: git.InfoReply) => void; + + /** + * Callback as used by {@link git.GitServer#requestPack}. + * @param error Error, if any + * @param [response] PackReply + */ + type RequestPackCallback = (error: (Error|null), response?: git.PackReply) => void; + } + + /** Properties of an InfoRequest. */ + interface IInfoRequest { + + /** InfoRequest vaultName */ + vaultName?: (string|null); + } + + /** Represents an InfoRequest. */ + class InfoRequest implements IInfoRequest { + + /** + * Constructs a new InfoRequest. + * @param [p] Properties to set + */ + constructor(p?: git.IInfoRequest); + + /** InfoRequest vaultName. */ + public vaultName: string; + + /** + * Creates a new InfoRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns InfoRequest instance + */ + public static create(properties?: git.IInfoRequest): git.InfoRequest; + + /** + * Encodes the specified InfoRequest message. Does not implicitly {@link git.InfoRequest.verify|verify} messages. + * @param m InfoRequest message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: git.IInfoRequest, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an InfoRequest message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns InfoRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): git.InfoRequest; + } + + /** Properties of an InfoReply. */ + interface IInfoReply { + + /** InfoReply vaultName */ + vaultName?: (string|null); + + /** InfoReply body */ + body?: (Uint8Array|null); + } + + /** Represents an InfoReply. */ + class InfoReply implements IInfoReply { + + /** + * Constructs a new InfoReply. + * @param [p] Properties to set + */ + constructor(p?: git.IInfoReply); + + /** InfoReply vaultName. */ + public vaultName: string; + + /** InfoReply body. */ + public body: Uint8Array; + + /** + * Creates a new InfoReply instance using the specified properties. + * @param [properties] Properties to set + * @returns InfoReply instance + */ + public static create(properties?: git.IInfoReply): git.InfoReply; + + /** + * Encodes the specified InfoReply message. Does not implicitly {@link git.InfoReply.verify|verify} messages. + * @param m InfoReply message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: git.IInfoReply, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an InfoReply message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns InfoReply + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): git.InfoReply; + } + + /** Properties of a PackRequest. */ + interface IPackRequest { + + /** PackRequest vaultName */ + vaultName?: (string|null); + + /** PackRequest body */ + body?: (Uint8Array|null); + } + + /** Represents a PackRequest. */ + class PackRequest implements IPackRequest { + + /** + * Constructs a new PackRequest. + * @param [p] Properties to set + */ + constructor(p?: git.IPackRequest); + + /** PackRequest vaultName. */ + public vaultName: string; + + /** PackRequest body. */ + public body: Uint8Array; + + /** + * Creates a new PackRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns PackRequest instance + */ + public static create(properties?: git.IPackRequest): git.PackRequest; + + /** + * Encodes the specified PackRequest message. Does not implicitly {@link git.PackRequest.verify|verify} messages. + * @param m PackRequest message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: git.IPackRequest, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PackRequest message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns PackRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): git.PackRequest; + } + + /** Properties of a PackReply. */ + interface IPackReply { + + /** PackReply vaultName */ + vaultName?: (string|null); + + /** PackReply body */ + body?: (Uint8Array|null); + } + + /** Represents a PackReply. */ + class PackReply implements IPackReply { + + /** + * Constructs a new PackReply. + * @param [p] Properties to set + */ + constructor(p?: git.IPackReply); + + /** PackReply vaultName. */ + public vaultName: string; + + /** PackReply body. */ + public body: Uint8Array; + + /** + * Creates a new PackReply instance using the specified properties. + * @param [properties] Properties to set + * @returns PackReply instance + */ + public static create(properties?: git.IPackReply): git.PackReply; + + /** + * Encodes the specified PackReply message. Does not implicitly {@link git.PackReply.verify|verify} messages. + * @param m PackReply message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: git.IPackReply, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PackReply message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns PackReply + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): git.PackReply; + } } } diff --git a/proto/js/Peer.d.ts b/proto/js/Peer.d.ts index 5daebdc52..1fd748fd4 100644 --- a/proto/js/Peer.d.ts +++ b/proto/js/Peer.d.ts @@ -1,124 +1,130 @@ import * as $protobuf from "protobufjs"; -/** Namespace peer. */ -export namespace peer { +export = Peer; - /** Properties of a HandshakeMessage. */ - interface IHandshakeMessage { +declare namespace Peer { - /** HandshakeMessage targetPubKey */ - targetPubKey?: (Uint8Array|null); - /** HandshakeMessage requestingPubKey */ - requestingPubKey?: (Uint8Array|null); + /** Namespace peer. */ + namespace peer { - /** HandshakeMessage message */ - message?: (Uint8Array|null); + /** Properties of a HandshakeMessage. */ + interface IHandshakeMessage { - /** HandshakeMessage responsePeerInfo */ - responsePeerInfo?: (Uint8Array|null); - } - - /** Represents a HandshakeMessage. */ - class HandshakeMessage implements IHandshakeMessage { - - /** - * Constructs a new HandshakeMessage. - * @param [p] Properties to set - */ - constructor(p?: peer.IHandshakeMessage); - - /** HandshakeMessage targetPubKey. */ - public targetPubKey: Uint8Array; - - /** HandshakeMessage requestingPubKey. */ - public requestingPubKey: Uint8Array; - - /** HandshakeMessage message. */ - public message: Uint8Array; - - /** HandshakeMessage responsePeerInfo. */ - public responsePeerInfo: Uint8Array; - - /** - * Creates a new HandshakeMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns HandshakeMessage instance - */ - public static create(properties?: peer.IHandshakeMessage): peer.HandshakeMessage; - - /** - * Encodes the specified HandshakeMessage message. Does not implicitly {@link peer.HandshakeMessage.verify|verify} messages. - * @param m HandshakeMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: peer.IHandshakeMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a HandshakeMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns HandshakeMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): peer.HandshakeMessage; - } - - /** Properties of a PeerInfoMessage. */ - interface IPeerInfoMessage { + /** HandshakeMessage targetPubKey */ + targetPubKey?: (Uint8Array|null); - /** PeerInfoMessage pubKey */ - pubKey?: (string|null); - - /** PeerInfoMessage addresses */ - addresses?: (string[]|null); - - /** PeerInfoMessage connectedAddr */ - connectedAddr?: (string|null); - } + /** HandshakeMessage requestingPubKey */ + requestingPubKey?: (Uint8Array|null); - /** Represents a PeerInfoMessage. */ - class PeerInfoMessage implements IPeerInfoMessage { - - /** - * Constructs a new PeerInfoMessage. - * @param [p] Properties to set - */ - constructor(p?: peer.IPeerInfoMessage); - - /** PeerInfoMessage pubKey. */ - public pubKey: string; - - /** PeerInfoMessage addresses. */ - public addresses: string[]; - - /** PeerInfoMessage connectedAddr. */ - public connectedAddr: string; - - /** - * Creates a new PeerInfoMessage instance using the specified properties. - * @param [properties] Properties to set - * @returns PeerInfoMessage instance - */ - public static create(properties?: peer.IPeerInfoMessage): peer.PeerInfoMessage; - - /** - * Encodes the specified PeerInfoMessage message. Does not implicitly {@link peer.PeerInfoMessage.verify|verify} messages. - * @param m PeerInfoMessage message or plain object to encode - * @param [w] Writer to encode to - * @returns Writer - */ - public static encode(m: peer.IPeerInfoMessage, w?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a PeerInfoMessage message from the specified reader or buffer. - * @param r Reader or buffer to decode from - * @param [l] Message length if known beforehand - * @returns PeerInfoMessage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): peer.PeerInfoMessage; + /** HandshakeMessage message */ + message?: (Uint8Array|null); + + /** HandshakeMessage responsePeerInfo */ + responsePeerInfo?: (Uint8Array|null); + } + + /** Represents a HandshakeMessage. */ + class HandshakeMessage implements IHandshakeMessage { + + /** + * Constructs a new HandshakeMessage. + * @param [p] Properties to set + */ + constructor(p?: peer.IHandshakeMessage); + + /** HandshakeMessage targetPubKey. */ + public targetPubKey: Uint8Array; + + /** HandshakeMessage requestingPubKey. */ + public requestingPubKey: Uint8Array; + + /** HandshakeMessage message. */ + public message: Uint8Array; + + /** HandshakeMessage responsePeerInfo. */ + public responsePeerInfo: Uint8Array; + + /** + * Creates a new HandshakeMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns HandshakeMessage instance + */ + public static create(properties?: peer.IHandshakeMessage): peer.HandshakeMessage; + + /** + * Encodes the specified HandshakeMessage message. Does not implicitly {@link peer.HandshakeMessage.verify|verify} messages. + * @param m HandshakeMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: peer.IHandshakeMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a HandshakeMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns HandshakeMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): peer.HandshakeMessage; + } + + /** Properties of a PeerInfoMessage. */ + interface IPeerInfoMessage { + + /** PeerInfoMessage pubKey */ + pubKey?: (string|null); + + /** PeerInfoMessage addresses */ + addresses?: (string[]|null); + + /** PeerInfoMessage connectedAddr */ + connectedAddr?: (string|null); + } + + /** Represents a PeerInfoMessage. */ + class PeerInfoMessage implements IPeerInfoMessage { + + /** + * Constructs a new PeerInfoMessage. + * @param [p] Properties to set + */ + constructor(p?: peer.IPeerInfoMessage); + + /** PeerInfoMessage pubKey. */ + public pubKey: string; + + /** PeerInfoMessage addresses. */ + public addresses: string[]; + + /** PeerInfoMessage connectedAddr. */ + public connectedAddr: string; + + /** + * Creates a new PeerInfoMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns PeerInfoMessage instance + */ + public static create(properties?: peer.IPeerInfoMessage): peer.PeerInfoMessage; + + /** + * Encodes the specified PeerInfoMessage message. Does not implicitly {@link peer.PeerInfoMessage.verify|verify} messages. + * @param m PeerInfoMessage message or plain object to encode + * @param [w] Writer to encode to + * @returns Writer + */ + public static encode(m: peer.IPeerInfoMessage, w?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PeerInfoMessage message from the specified reader or buffer. + * @param r Reader or buffer to decode from + * @param [l] Message length if known beforehand + * @returns PeerInfoMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): peer.PeerInfoMessage; + } } }