@bitgo/utxo-bin 2.9.3 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,90 +3,52 @@
3
3
  This repository contains a CLI tool for parsing BitGo wallet transactions (withdrawals) and
4
4
  formatting them for terminal output.
5
5
 
6
- ## Sample Usage
6
+ # Installation
7
7
 
8
+ ```bash
9
+ npm install --global @bitgo/utxo-bin
8
10
  ```
9
- » jq -r '.transaction.hex' \
10
- ../utxo-lib/test/integration_local_rpc/fixtures/testnet/v1/spend_p2shP2wsh.json |
11
- yarn ts-node bin/index.ts parse -n bitcoin -
12
-
13
- reading from stdin
14
- transaction
15
- ├── id: a7b64a92c6fb7e0c6ea0b95c0db8a3253347d22f76562df4dc187ed5d442767b
16
- ├── version: 1
17
- ├── hasWitnesses: true
18
- ├─┬ inputs: 2
19
- │ ├─┬ 0: 61268e441d4078474679c063d1c268b5098163410553329dac0c8069f51bba97:0
20
- │ │ ├── script: 2200201553f31a3e25e770b7bc857b82909e83734dbfe4bcdb5a5e6fc419b6920c398a
21
- │ │ ├── witness: witnessscripthash
22
- │ │ └─┬ signature: p2shP2wsh
23
- │ │ └── buffers: 72 72
24
- │ └─┬ 1: 1761eea952ede40e9f363134f8ee4fb72658f02c4fbb13c882bb2f020a9e512e:1
25
- │ ├── script: 2200201553f31a3e25e770b7bc857b82909e83734dbfe4bcdb5a5e6fc419b6920c398a
26
- │ ├── witness: witnessscripthash
27
- │ └─┬ signature: p2shP2wsh
28
- │ └── buffers: 72 71
29
- └─┬ outputs: 2
30
- └─┬ 0: 34qSMWWEvrKnykAwMYLyjsKUfD976EjRJL
31
- └── value: 1.99999
11
+
12
+ # Sample Usage
13
+
14
+ ## parseTx
15
+
16
+ #### From hex
17
+
18
+ ```bash
19
+ utxo-bin -n bitcoin parseTx --stdin
20
+ <paste txhex>
21
+ <Ctrl-D>
22
+ ```
23
+
24
+ Or
25
+
26
+ ```bash
27
+ utxo-bin -n bitcoin parseTx --clipboard
28
+ ```
29
+
30
+ #### From txid
31
+ ```bash
32
+ utxo-bin -n bitcoin parseTx --txid b0b7e5c2fbbbeb42478f91e1c14b300624a9419631e70dd1564084fb28a55155
33
+ ```
34
+
35
+ #### Lookup inputs
36
+
37
+ ```bash
38
+ utxo-bin -n bitcoin parseTx \
39
+ --txid b0b7e5c2fbbbeb42478f91e1c14b300624a9419631e70dd1564084fb28a55155 \
40
+ --fetchInputs
41
+ ```
42
+
43
+
44
+ ## parseAddress
45
+
46
+ ```
47
+ utxo-bin -n bitcoin parseAddress 3QJmV3qfvL9SuYo34YihAf3sRCW3qSinyC
32
48
  ```
33
49
 
34
- With `--all`:
50
+ Convert to other networks:
35
51
 
36
52
  ```
37
- » jq -r '.transaction.hex' \
38
- ../utxo-lib/test/integration_local_rpc/fixtures/testnet/v1/spend_p2shP2wsh.json |
39
- yarn ts-node bin/index.ts parse --all -n bitcoin -
40
-
41
- reading from stdin
42
- transaction
43
- ├── id: a7b64a92c6fb7e0c6ea0b95c0db8a3253347d22f76562df4dc187ed5d442767b
44
- ├── version: 1
45
- ├── hasWitnesses: true
46
- ├─┬ inputs: 2
47
- │ ├─┬ 0: 61268e441d4078474679c063d1c268b5098163410553329dac0c8069f51bba97:0
48
- │ │ ├─┬ script: scripthash
49
- │ │ │ └─┬ 0: 00201553f31a3e25e770b7bc857b82909e83734dbfe4bcdb5a5e6fc419b6920c398a
50
- │ │ │ └── asm:
51
- │ │ │ OP_0
52
- │ │ │ 1553f31a3e25e770b7bc857b82909e83734dbfe4bcdb5a5e6fc419b6920c398a
53
- │ │ ├─┬ witness: witnessscripthash
54
- │ │ │ ├── 0: []
55
- │ │ │ ├── 1: 3045022100cb6125485a4e9e2d98dafde8074a29d43ef28ffdd34f0d7f8048423f1fd54c01022065798d67d21f18383db7c4e9532e497b1b54d7e9c3676a079d9502cd0663963c01
56
- │ │ │ ├── 2: 3045022100c3a36135223671fac881d4a48f16b2698500887ac91530b4145000ba4950967902200737c216d2cc705b3d6d88d8443870be168c9bfad2525795ac14ec4ea3598ca801
57
- │ │ │ └─┬ 3: 5221028fedaf75b5b08cddf3bf4631c658b68ee6766a8e999467a641d7cb7aaaecec972103316bc27d95b96418349afc6298c259bb999c6e8f39a7217787ad53602be7c1472102e21c29b4a7eeace9c7a8cefb568ca00c86ff9bf5e79e07e5442c29d4a0950d0453ae
58
- │ │ │ └── asm:
59
- │ │ │ OP_2
60
- │ │ │ 028fedaf75b5b08cddf3bf4631c658b68ee6766a8e999467a641d7cb7aaaecec97
61
- │ │ │ 03316bc27d95b96418349afc6298c259bb999c6e8f39a7217787ad53602be7c147
62
- │ │ │ 02e21c29b4a7eeace9c7a8cefb568ca00c86ff9bf5e79e07e5442c29d4a0950d04
63
- │ │ │ OP_3
64
- │ │ │ OP_CHECKMULTISIG
65
- │ │ └─┬ signature: p2shP2wsh
66
- │ │ ├── 0: 3045022100cb6125485a4e9e2d98dafde8074a29d43ef28ffdd34f0d7f8048423f1fd54c01022065798d67d21f18383db7c4e9532e497b1b54d7e9c3676a079d9502cd0663963c01
67
- │ │ └── 1: 3045022100c3a36135223671fac881d4a48f16b2698500887ac91530b4145000ba4950967902200737c216d2cc705b3d6d88d8443870be168c9bfad2525795ac14ec4ea3598ca801
68
- │ └─┬ 1: 1761eea952ede40e9f363134f8ee4fb72658f02c4fbb13c882bb2f020a9e512e:1
69
- │ ├─┬ script: scripthash
70
- │ │ └─┬ 0: 00201553f31a3e25e770b7bc857b82909e83734dbfe4bcdb5a5e6fc419b6920c398a
71
- │ │ └── asm:
72
- │ │ OP_0
73
- │ │ 1553f31a3e25e770b7bc857b82909e83734dbfe4bcdb5a5e6fc419b6920c398a
74
- │ ├─┬ witness: witnessscripthash
75
- │ │ ├── 0: []
76
- │ │ ├── 1: 3045022100f0279fa27d0f85c4c3ee7ea3104963bd88ec02f62f23ae0b73d122293e58c7b8022024b8c9dca8d9d77bda69da70282a45422c2baf0d4a05ecbe57a48b65f92d950d01
77
- │ │ ├── 2: 304402203bb213db0b4842ea5f8c1b9290c8b42dbe65f72bee29e4ad7e8d57e5f16390010220347df34c34a4df5fabe8571c7168c8111df7275a56672126f434bdc44fea6c5901
78
- │ │ └─┬ 3: 5221028fedaf75b5b08cddf3bf4631c658b68ee6766a8e999467a641d7cb7aaaecec972103316bc27d95b96418349afc6298c259bb999c6e8f39a7217787ad53602be7c1472102e21c29b4a7eeace9c7a8cefb568ca00c86ff9bf5e79e07e5442c29d4a0950d0453ae
79
- │ │ └── asm:
80
- │ │ OP_2
81
- │ │ 028fedaf75b5b08cddf3bf4631c658b68ee6766a8e999467a641d7cb7aaaecec97
82
- │ │ 03316bc27d95b96418349afc6298c259bb999c6e8f39a7217787ad53602be7c147
83
- │ │ 02e21c29b4a7eeace9c7a8cefb568ca00c86ff9bf5e79e07e5442c29d4a0950d04
84
- │ │ OP_3
85
- │ │ OP_CHECKMULTISIG
86
- │ └─┬ signature: p2shP2wsh
87
- │ ├── 0: 3045022100f0279fa27d0f85c4c3ee7ea3104963bd88ec02f62f23ae0b73d122293e58c7b8022024b8c9dca8d9d77bda69da70282a45422c2baf0d4a05ecbe57a48b65f92d950d01
88
- │ └── 1: 304402203bb213db0b4842ea5f8c1b9290c8b42dbe65f72bee29e4ad7e8d57e5f16390010220347df34c34a4df5fabe8571c7168c8111df7275a56672126f434bdc44fea6c5901
89
- └─┬ outputs: 2
90
- └─┬ 0: 34qSMWWEvrKnykAwMYLyjsKUfD976EjRJL
91
- └── value: 1.99999
53
+ utxo-bin -n bitcoin parseAddress 3QJmV3qfvL9SuYo34YihAf3sRCW3qSinyC --convert
92
54
  ```
@@ -5,6 +5,7 @@ declare type OutputFormat = 'tree' | 'json';
5
5
  declare type ArgsParseTransaction = {
6
6
  network: string;
7
7
  stdin: boolean;
8
+ clipboard: boolean;
8
9
  path?: string;
9
10
  txid?: string;
10
11
  all: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,aAAK,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpC,aAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,GAAG,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AAE7C,aAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAyCF,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAYjF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,aAAa,CAEtE;AAED,eAAO,MAAM,UAAU;;;;0BAKV,MAAM,IAAI,CAAC,OAAO,CAAC,KAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;6BAsB7C,MAAM,SAAS,CAAC,oBAAoB,CAAC,KAAG,QAAQ,IAAI,CAAC;CAkDjE,CAAC;AAEX,eAAO,MAAM,eAAe;;;;0BAIf,MAAM,IAAI,CAAC,OAAO,CAAC,KAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;6BAS/C,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,IAAI;CAI9C,CAAC"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,aAAK,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpC,aAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,GAAG,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AAE7C,aAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAyCF,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAYjF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,aAAa,CAEtE;AAED,eAAO,MAAM,UAAU;;;;0BAKV,MAAM,IAAI,CAAC,OAAO,CAAC,KAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;6BAuB7C,MAAM,SAAS,CAAC,oBAAoB,CAAC,KAAG,QAAQ,IAAI,CAAC;CA+DjE,CAAC;AAEX,eAAO,MAAM,eAAe;;;;0BAIf,MAAM,IAAI,CAAC,OAAO,CAAC,KAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;6BAS/C,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,IAAI;CAI9C,CAAC"}
@@ -4,13 +4,14 @@ exports.cmdParseAddress = exports.cmdParseTx = exports.getAddressParser = export
4
4
  const fs = require("fs");
5
5
  const process = require("process");
6
6
  const util_1 = require("util");
7
- const stdin = process.stdin;
7
+ const clipboardy = require("clipboardy");
8
8
  const utxolib = require("@bitgo/utxo-lib");
9
9
  const format_1 = require("./format");
10
10
  const fetch_1 = require("./fetch");
11
11
  const TxParser_1 = require("./TxParser");
12
12
  const AddressParser_1 = require("./AddressParser");
13
13
  const blockapis_1 = require("@bitgo/blockapis");
14
+ const readStdin_1 = require("./readStdin");
14
15
  async function getClient({ cache }) {
15
16
  if (cache) {
16
17
  const mkdir = util_1.promisify(fs.mkdir);
@@ -71,6 +72,7 @@ exports.cmdParseTx = {
71
72
  return b
72
73
  .option('path', { type: 'string', nargs: 1, default: '' })
73
74
  .option('stdin', { type: 'boolean', default: false })
75
+ .option('clipboard', { type: 'boolean', default: false })
74
76
  .option('txid', { type: 'string' })
75
77
  .option('fetchAll', { type: 'boolean', default: false })
76
78
  .option('fetchStatus', { type: 'boolean', default: false })
@@ -93,17 +95,28 @@ exports.cmdParseTx = {
93
95
  let data;
94
96
  const httpClient = await getClient({ cache: argv.cache });
95
97
  if (argv.txid) {
96
- console.log('fetching txHex via blockapi...');
97
98
  data = await fetch_1.fetchTransactionHex(httpClient, argv.txid, network);
98
99
  }
99
100
  if (argv.stdin || argv.path === '-') {
100
101
  if (data) {
101
102
  throw new Error(`conflicting arguments`);
102
103
  }
103
- console.log('reading from stdin');
104
- data = fs.readFileSync(stdin.fd, 'utf8');
104
+ console.log('Reading from stdin. Please paste hex-encoded transaction data.');
105
+ console.log('Press Ctrl-D to finish, or Ctrl-C to cancel.');
106
+ if (process.stdin.isTTY) {
107
+ data = await readStdin_1.readStdin();
108
+ }
109
+ else {
110
+ data = await fs.promises.readFile('/dev/stdin', 'utf8');
111
+ }
112
+ }
113
+ if (argv.clipboard) {
114
+ if (data) {
115
+ throw new Error(`conflicting arguments`);
116
+ }
117
+ data = await clipboardy.read();
105
118
  }
106
- else if (argv.path) {
119
+ if (argv.path) {
107
120
  if (data) {
108
121
  throw new Error(`conflicting arguments`);
109
122
  }
@@ -149,4 +162,4 @@ exports.cmdParseAddress = {
149
162
  console.log(formatString(parsed, argv));
150
163
  },
151
164
  };
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEseUJBQXlCO0FBQ3pCLG1DQUFtQztBQUNuQywrQkFBaUM7QUFFakMsTUFBTSxLQUFLLEdBQVEsT0FBTyxDQUFDLEtBQUssQ0FBQztBQUVqQywyQ0FBMkM7QUFHM0MscUNBQXNDO0FBQ3RDLG1DQU1pQjtBQUNqQix5Q0FBb0Q7QUFDcEQsbURBQWdEO0FBQ2hELGdEQUFpRjtBQTJCakYsS0FBSyxVQUFVLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBc0I7SUFDcEQsSUFBSSxLQUFLLEVBQUU7UUFDVCxNQUFNLEtBQUssR0FBRyxnQkFBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztRQUNuRCxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksNkJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbkM7SUFDRCxPQUFPLElBQUksMEJBQWMsRUFBRSxDQUFDO0FBQzlCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLElBQVk7SUFDckMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUEyQixDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDL0M7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBMEM7SUFDNUQsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELFNB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QUNqQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7SUFDcEIsUUFBUSxFQUFFLGVBQWU7SUFDekIsT0FBTyxDQUFDLENBQXNCO1FBQzVCLE9BQU8sQ0FBQzthQUNMLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQzthQUNqRCxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQVcsQ0FBQzthQUN6RSxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDdEQsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ2xELFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBdUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ08sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHByb2Nlc3MgZnJvbSAncHJvY2Vzcyc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcblxuY29uc3Qgc3RkaW46IGFueSA9IHByb2Nlc3Muc3RkaW47XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgUGFyc2VyTm9kZSB9IGZyb20gJy4vUGFyc2VyJztcbmltcG9ydCB7IGZvcm1hdFRyZWUgfSBmcm9tICcuL2Zvcm1hdCc7XG5pbXBvcnQge1xuICBmZXRjaE91dHB1dFNwZW5kcyxcbiAgZmV0Y2hQcmV2T3V0cHV0cyxcbiAgZmV0Y2hQcmV2T3V0cHV0U3BlbmRzLFxuICBmZXRjaFRyYW5zYWN0aW9uSGV4LFxuICBmZXRjaFRyYW5zYWN0aW9uU3RhdHVzLFxufSBmcm9tICcuL2ZldGNoJztcbmltcG9ydCB7IFR4UGFyc2VyLCBUeFBhcnNlckFyZ3MgfSBmcm9tICcuL1R4UGFyc2VyJztcbmltcG9ydCB7IEFkZHJlc3NQYXJzZXIgfSBmcm9tICcuL0FkZHJlc3NQYXJzZXInO1xuaW1wb3J0IHsgQmFzZUh0dHBDbGllbnQsIENhY2hpbmdIdHRwQ2xpZW50LCBIdHRwQ2xpZW50IH0gZnJvbSAnQGJpdGdvL2Jsb2NrYXBpcyc7XG5cbnR5cGUgT3V0cHV0Rm9ybWF0ID0gJ3RyZWUnIHwgJ2pzb24nO1xuXG50eXBlIEFyZ3NQYXJzZVRyYW5zYWN0aW9uID0ge1xuICBuZXR3b3JrOiBzdHJpbmc7XG4gIHN0ZGluOiBib29sZWFuO1xuICBwYXRoPzogc3RyaW5nO1xuICB0eGlkPzogc3RyaW5nO1xuICBhbGw6IGJvb2xlYW47XG4gIGNhY2hlOiBib29sZWFuO1xuICBmb3JtYXQ6IE91dHB1dEZvcm1hdDtcbiAgZmV0Y2hBbGw6IGJvb2xlYW47XG4gIGZldGNoU3RhdHVzOiBib29sZWFuO1xuICBmZXRjaElucHV0czogYm9vbGVhbjtcbiAgZmV0Y2hTcGVuZHM6IGJvb2xlYW47XG4gIHBhcnNlU2lnbmF0dXJlRGF0YTogYm9vbGVhbjtcbn0gJiBPbWl0PFR4UGFyc2VyQXJncywgJ3BhcnNlU2lnbmF0dXJlRGF0YSc+O1xuXG50eXBlIEFyZ3NQYXJzZUFkZHJlc3MgPSB7XG4gIG5ldHdvcms/OiBzdHJpbmc7XG4gIGFsbDogYm9vbGVhbjtcbiAgZm9ybWF0OiBPdXRwdXRGb3JtYXQ7XG4gIGNvbnZlcnQ6IGJvb2xlYW47XG4gIGFkZHJlc3M6IHN0cmluZztcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENsaWVudCh7IGNhY2hlIH06IHsgY2FjaGU6IGJvb2xlYW4gfSk6IFByb21pc2U8SHR0cENsaWVudD4ge1xuICBpZiAoY2FjaGUpIHtcbiAgICBjb25zdCBta2RpciA9IHByb21pc2lmeShmcy5ta2Rpcik7XG4gICAgY29uc3QgZGlyID0gYCR7cHJvY2Vzcy5lbnYuSE9NRX0vLmNhY2hlL3V0eG8tYmluL2A7XG4gICAgYXdhaXQgbWtkaXIoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICByZXR1cm4gbmV3IENhY2hpbmdIdHRwQ2xpZW50KGRpcik7XG4gIH1cbiAgcmV0dXJuIG5ldyBCYXNlSHR0cENsaWVudCgpO1xufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrRm9yTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgbmV0d29yayA9IHV0eG9saWIubmV0d29ya3NbbmFtZSBhcyB1dHhvbGliLk5ldHdvcmtOYW1lXTtcbiAgaWYgKCFuZXR3b3JrKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmsgJHtuZXR3b3JrfWApO1xuICB9XG4gIHJldHVybiBuZXR3b3JrO1xufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrKGFyZ3Y6IHlhcmdzLkFyZ3VtZW50czx7IG5ldHdvcms6IHN0cmluZyB9Pik6IHV0eG9saWIuTmV0d29yayB7XG4gIHJldHVybiBnZXROZXR3b3JrRm9yTmFtZShhcmd2Lm5ldHdvcmspO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRTdHJpbmcocGFyc2VkOiBQYXJzZXJOb2RlLCBhcmd2OiB5YXJncy5Bcmd1bWVudHM8eyBmb3JtYXQ6IE91dHB1dEZvcm1hdDsgYWxsOiBib29sZWFuIH0+KTogc3RyaW5nIHtcbiAgc3dpdGNoIChhcmd2LmZvcm1hdCkge1xuICAgIGNhc2UgJ2pzb24nOlxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHBhcnNlZCwgbnVsbCwgMik7XG4gICAgY2FzZSAndHJlZSc6XG4gICAgICByZXR1cm4gZm9ybWF0VHJlZShwYXJzZWQsIHsgaGlkZTogYXJndi5hbGwgPyBbXSA6IHVuZGVmaW5lZCB9KTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgZm9ybWF0ICR7YXJndi5mb3JtYXR9YCk7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVOZXR3b3JrPFQgZXh0ZW5kcyB7IG5ldHdvcms/OiBzdHJpbmcgfT4oYXJnczogVCk6IFQgJiB7IG5ldHdvcms/OiB1dHhvbGliLk5ldHdvcmsgfSB7XG4gIGlmIChhcmdzLm5ldHdvcmspIHtcbiAgICByZXR1cm4geyAuLi5hcmdzLCBuZXR3b3JrOiBnZXROZXR3b3JrRm9yTmFtZShhcmdzLm5ldHdvcmspIH07XG4gIH1cbiAgcmV0dXJuIHsgLi4uYXJncywgbmV0d29yazogdW5kZWZpbmVkIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeFBhcnNlcihhcmd2OiB5YXJncy5Bcmd1bWVudHM8QXJnc1BhcnNlVHJhbnNhY3Rpb24+KTogVHhQYXJzZXIge1xuICBpZiAoYXJndi5hbGwpIHtcbiAgICByZXR1cm4gbmV3IFR4UGFyc2VyKFR4UGFyc2VyLlBBUlNFX0FMTCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBUeFBhcnNlcih7XG4gICAgLi4uYXJndixcbiAgICBwYXJzZVNpZ25hdHVyZURhdGE6IHtcbiAgICAgIHNjcmlwdDogYXJndi5wYXJzZVNpZ25hdHVyZURhdGEsXG4gICAgICBlY2RzYTogYXJndi5wYXJzZVNpZ25hdHVyZURhdGEsXG4gICAgICBzY2hub3JyOiBhcmd2LnBhcnNlU2lnbmF0dXJlRGF0YSxcbiAgICB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFkZHJlc3NQYXJzZXIoYXJndjogQXJnc1BhcnNlQWRkcmVzcyk6IEFkZHJlc3NQYXJzZXIge1xuICByZXR1cm4gbmV3IEFkZHJlc3NQYXJzZXIocmVzb2x2ZU5ldHdvcmsoYXJndikpO1xufVxuXG5leHBvcnQgY29uc3QgY21kUGFyc2VUeCA9IHtcbiAgY29tbWFuZDogJ3BhcnNlVHggW3BhdGhdJyxcbiAgYWxpYXNlczogWydwYXJzZScsICd0eCddLFxuICBkZXNjcmliZTogJ2Rpc3BsYXkgdHJhbnNhY3Rpb24gY29tcG9uZW50cyBpbiBodW1hbi1yZWFkYWJsZSBmb3JtJyxcblxuICBidWlsZGVyKGI6IHlhcmdzLkFyZ3Y8dW5rbm93bj4pOiB5YXJncy5Bcmd2PEFyZ3NQYXJzZVRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIGJcbiAgICAgIC5vcHRpb24oJ3BhdGgnLCB7IHR5cGU6ICdzdHJpbmcnLCBuYXJnczogMSwgZGVmYXVsdDogJycgfSlcbiAgICAgIC5vcHRpb24oJ3N0ZGluJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCd0eGlkJywgeyB0eXBlOiAnc3RyaW5nJyB9KVxuICAgICAgLm9wdGlvbignZmV0Y2hBbGwnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ2ZldGNoU3RhdHVzJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdmZXRjaElucHV0cycsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignZmV0Y2hTcGVuZHMnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ25ldHdvcmsnLCB7IGFsaWFzOiAnbicsIHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSlcbiAgICAgIC5vcHRpb24oJ3BhcnNlU2NyaXB0QXNtJywgeyBhbGlhczogJ3NjcmlwdGFzbScsIHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ3BhcnNlU2NyaXB0RGF0YScsIHsgYWxpYXM6ICdzY3JpcHRkYXRhJywgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbigncGFyc2VTaWduYXR1cmVEYXRhJywgeyBhbGlhczogJ3NpZ2RhdGEnLCB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdwYXJzZU91dHB1dFNjcmlwdCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignbWF4T3V0cHV0cycsIHsgdHlwZTogJ251bWJlcicgfSlcbiAgICAgIC5vcHRpb24oJ3ZpbicsIHsgdHlwZTogJ251bWJlcicgfSlcbiAgICAgIC5hcnJheSgndmluJylcbiAgICAgIC5vcHRpb24oJ2FsbCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignY2FjaGUnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UsIGRlc2NyaXB0aW9uOiAndXNlIGxvY2FsIGNhY2hlIGZvciBodHRwIHJlc3BvbnNlcycgfSlcbiAgICAgIC5vcHRpb24oJ2Zvcm1hdCcsIHsgY2hvaWNlczogWyd0cmVlJywgJ2pzb24nXSwgZGVmYXVsdDogJ3RyZWUnIH0gYXMgY29uc3QpO1xuICB9LFxuXG4gIGFzeW5jIGhhbmRsZXIoYXJndjogeWFyZ3MuQXJndW1lbnRzPEFyZ3NQYXJzZVRyYW5zYWN0aW9uPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG5ldHdvcmsgPSBnZXROZXR3b3JrKGFyZ3YpO1xuICAgIGxldCBkYXRhO1xuXG4gICAgY29uc3QgaHR0cENsaWVudCA9IGF3YWl0IGdldENsaWVudCh7IGNhY2hlOiBhcmd2LmNhY2hlIH0pO1xuXG4gICAgaWYgKGFyZ3YudHhpZCkge1xuICAgICAgY29uc29sZS5sb2coJ2ZldGNoaW5nIHR4SGV4IHZpYSBibG9ja2FwaS4uLicpO1xuICAgICAgZGF0YSA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25IZXgoaHR0cENsaWVudCwgYXJndi50eGlkLCBuZXR3b3JrKTtcbiAgICB9XG5cbiAgICBpZiAoYXJndi5zdGRpbiB8fCBhcmd2LnBhdGggPT09ICctJykge1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb25mbGljdGluZyBhcmd1bWVudHNgKTtcbiAgICAgIH1cbiAgICAgIGNvbnNvbGUubG9nKCdyZWFkaW5nIGZyb20gc3RkaW4nKTtcbiAgICAgIGRhdGEgPSBmcy5yZWFkRmlsZVN5bmMoc3RkaW4uZmQsICd1dGY4Jyk7XG4gICAgfSBlbHNlIGlmIChhcmd2LnBhdGgpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY29uZmxpY3RpbmcgYXJndW1lbnRzYCk7XG4gICAgICB9XG4gICAgICBkYXRhID0gKGF3YWl0IGZzLnByb21pc2VzLnJlYWRGaWxlKGFyZ3YucGF0aCwgJ3V0ZjgnKSkudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbm8gdHhkYXRhYCk7XG4gICAgfVxuICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1xccyovZywgJycpO1xuXG4gICAgY29uc3QgdHggPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUhleChkYXRhLCBuZXR3b3JrKTtcbiAgICBjb25zdCB0eGlkID0gdHguZ2V0SWQoKTtcbiAgICBpZiAoYXJndi50eGlkICYmIHR4aWQgIT09IGFyZ3YudHhpZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb21wdXRlZCB0eGlkIGRvZXMgbm90IG1hdGNoIHR4aWQgYXJndW1lbnRgKTtcbiAgICB9XG5cbiAgICBpZiAoYXJndi5mZXRjaEFsbCkge1xuICAgICAgYXJndi5mZXRjaFN0YXR1cyA9IHRydWU7XG4gICAgICBhcmd2LmZldGNoSW5wdXRzID0gdHJ1ZTtcbiAgICAgIGFyZ3YuZmV0Y2hTcGVuZHMgPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZCA9IGdldFR4UGFyc2VyKGFyZ3YpLnBhcnNlKHR4LCB7XG4gICAgICBzdGF0dXM6IGFyZ3YuZmV0Y2hTdGF0dXMgPyBhd2FpdCBmZXRjaFRyYW5zYWN0aW9uU3RhdHVzKGh0dHBDbGllbnQsIHR4aWQsIG5ldHdvcmspIDogdW5kZWZpbmVkLFxuICAgICAgcHJldk91dHB1dHM6IGFyZ3YuZmV0Y2hJbnB1dHMgPyBhd2FpdCBmZXRjaFByZXZPdXRwdXRzKGh0dHBDbGllbnQsIHR4KSA6IHVuZGVmaW5lZCxcbiAgICAgIHByZXZPdXRwdXRTcGVuZHM6IGFyZ3YuZmV0Y2hTcGVuZHMgPyBhd2FpdCBmZXRjaFByZXZPdXRwdXRTcGVuZHMoaHR0cENsaWVudCwgdHgpIDogdW5kZWZpbmVkLFxuICAgICAgb3V0cHV0U3BlbmRzOiBhcmd2LmZldGNoU3BlbmRzID8gYXdhaXQgZmV0Y2hPdXRwdXRTcGVuZHMoaHR0cENsaWVudCwgdHgpIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coZm9ybWF0U3RyaW5nKHBhcnNlZCwgYXJndikpO1xuICB9LFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IGNtZFBhcnNlQWRkcmVzcyA9IHtcbiAgY29tbWFuZDogJ3BhcnNlQWRkcmVzcyBbYWRkcmVzc10nLFxuICBhbGlhc2VzOiBbJ2FkZHJlc3MnXSxcbiAgZGVzY3JpYmU6ICdwYXJzZSBhZGRyZXNzJyxcbiAgYnVpbGRlcihiOiB5YXJncy5Bcmd2PHVua25vd24+KTogeWFyZ3MuQXJndjxBcmdzUGFyc2VBZGRyZXNzPiB7XG4gICAgcmV0dXJuIGJcbiAgICAgIC5vcHRpb24oJ25ldHdvcmsnLCB7IGFsaWFzOiAnbicsIHR5cGU6ICdzdHJpbmcnIH0pXG4gICAgICAub3B0aW9uKCdmb3JtYXQnLCB7IGNob2ljZXM6IFsndHJlZScsICdqc29uJ10sIGRlZmF1bHQ6ICd0cmVlJyB9IGFzIGNvbnN0KVxuICAgICAgLm9wdGlvbignY29udmVydCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignYWxsJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAucG9zaXRpb25hbCgnYWRkcmVzcycsIHsgdHlwZTogJ3N0cmluZycsIGRlbWFuZE9wdGlvbjogdHJ1ZSB9KTtcbiAgfSxcblxuICBoYW5kbGVyKGFyZ3Y6IHlhcmdzLkFyZ3VtZW50czxBcmdzUGFyc2VBZGRyZXNzPik6IHZvaWQge1xuICAgIGNvbnN0IHBhcnNlZCA9IGdldEFkZHJlc3NQYXJzZXIoYXJndikucGFyc2UoYXJndi5hZGRyZXNzKTtcbiAgICBjb25zb2xlLmxvZyhmb3JtYXRTdHJpbmcocGFyc2VkLCBhcmd2KSk7XG4gIH0sXG59IGFzIGNvbnN0O1xuIl19
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEseUJBQXlCO0FBQ3pCLG1DQUFtQztBQUNuQywrQkFBaUM7QUFFakMseUNBQXlDO0FBQ3pDLDJDQUEyQztBQUczQyxxQ0FBc0M7QUFDdEMsbUNBTWlCO0FBQ2pCLHlDQUFvRDtBQUNwRCxtREFBZ0Q7QUFDaEQsZ0RBQWlGO0FBQ2pGLDJDQUF3QztBQTRCeEMsS0FBSyxVQUFVLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBc0I7SUFDcEQsSUFBSSxLQUFLLEVBQUU7UUFDVCxNQUFNLEtBQUssR0FBRyxnQkFBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztRQUNuRCxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksNkJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbkM7SUFDRCxPQUFPLElBQUksMEJBQWMsRUFBRSxDQUFDO0FBQzlCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLElBQVk7SUFDckMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUEyQixDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDL0M7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBMEM7SUFDNUQsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLE1B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Q0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ08sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHByb2Nlc3MgZnJvbSAncHJvY2Vzcyc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcblxuaW1wb3J0ICogYXMgY2xpcGJvYXJkeSBmcm9tICdjbGlwYm9hcmR5JztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgUGFyc2VyTm9kZSB9IGZyb20gJy4vUGFyc2VyJztcbmltcG9ydCB7IGZvcm1hdFRyZWUgfSBmcm9tICcuL2Zvcm1hdCc7XG5pbXBvcnQge1xuICBmZXRjaE91dHB1dFNwZW5kcyxcbiAgZmV0Y2hQcmV2T3V0cHV0cyxcbiAgZmV0Y2hQcmV2T3V0cHV0U3BlbmRzLFxuICBmZXRjaFRyYW5zYWN0aW9uSGV4LFxuICBmZXRjaFRyYW5zYWN0aW9uU3RhdHVzLFxufSBmcm9tICcuL2ZldGNoJztcbmltcG9ydCB7IFR4UGFyc2VyLCBUeFBhcnNlckFyZ3MgfSBmcm9tICcuL1R4UGFyc2VyJztcbmltcG9ydCB7IEFkZHJlc3NQYXJzZXIgfSBmcm9tICcuL0FkZHJlc3NQYXJzZXInO1xuaW1wb3J0IHsgQmFzZUh0dHBDbGllbnQsIENhY2hpbmdIdHRwQ2xpZW50LCBIdHRwQ2xpZW50IH0gZnJvbSAnQGJpdGdvL2Jsb2NrYXBpcyc7XG5pbXBvcnQgeyByZWFkU3RkaW4gfSBmcm9tICcuL3JlYWRTdGRpbic7XG5cbnR5cGUgT3V0cHV0Rm9ybWF0ID0gJ3RyZWUnIHwgJ2pzb24nO1xuXG50eXBlIEFyZ3NQYXJzZVRyYW5zYWN0aW9uID0ge1xuICBuZXR3b3JrOiBzdHJpbmc7XG4gIHN0ZGluOiBib29sZWFuO1xuICBjbGlwYm9hcmQ6IGJvb2xlYW47XG4gIHBhdGg/OiBzdHJpbmc7XG4gIHR4aWQ/OiBzdHJpbmc7XG4gIGFsbDogYm9vbGVhbjtcbiAgY2FjaGU6IGJvb2xlYW47XG4gIGZvcm1hdDogT3V0cHV0Rm9ybWF0O1xuICBmZXRjaEFsbDogYm9vbGVhbjtcbiAgZmV0Y2hTdGF0dXM6IGJvb2xlYW47XG4gIGZldGNoSW5wdXRzOiBib29sZWFuO1xuICBmZXRjaFNwZW5kczogYm9vbGVhbjtcbiAgcGFyc2VTaWduYXR1cmVEYXRhOiBib29sZWFuO1xufSAmIE9taXQ8VHhQYXJzZXJBcmdzLCAncGFyc2VTaWduYXR1cmVEYXRhJz47XG5cbnR5cGUgQXJnc1BhcnNlQWRkcmVzcyA9IHtcbiAgbmV0d29yaz86IHN0cmluZztcbiAgYWxsOiBib29sZWFuO1xuICBmb3JtYXQ6IE91dHB1dEZvcm1hdDtcbiAgY29udmVydDogYm9vbGVhbjtcbiAgYWRkcmVzczogc3RyaW5nO1xufTtcblxuYXN5bmMgZnVuY3Rpb24gZ2V0Q2xpZW50KHsgY2FjaGUgfTogeyBjYWNoZTogYm9vbGVhbiB9KTogUHJvbWlzZTxIdHRwQ2xpZW50PiB7XG4gIGlmIChjYWNoZSkge1xuICAgIGNvbnN0IG1rZGlyID0gcHJvbWlzaWZ5KGZzLm1rZGlyKTtcbiAgICBjb25zdCBkaXIgPSBgJHtwcm9jZXNzLmVudi5IT01FfS8uY2FjaGUvdXR4by1iaW4vYDtcbiAgICBhd2FpdCBta2RpcihkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIHJldHVybiBuZXcgQ2FjaGluZ0h0dHBDbGllbnQoZGlyKTtcbiAgfVxuICByZXR1cm4gbmV3IEJhc2VIdHRwQ2xpZW50KCk7XG59XG5cbmZ1bmN0aW9uIGdldE5ldHdvcmtGb3JOYW1lKG5hbWU6IHN0cmluZykge1xuICBjb25zdCBuZXR3b3JrID0gdXR4b2xpYi5uZXR3b3Jrc1tuYW1lIGFzIHV0eG9saWIuTmV0d29ya05hbWVdO1xuICBpZiAoIW5ldHdvcmspIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbmV0d29yayAke25ldHdvcmt9YCk7XG4gIH1cbiAgcmV0dXJuIG5ldHdvcms7XG59XG5cbmZ1bmN0aW9uIGdldE5ldHdvcmsoYXJndjogeWFyZ3MuQXJndW1lbnRzPHsgbmV0d29yazogc3RyaW5nIH0+KTogdXR4b2xpYi5OZXR3b3JrIHtcbiAgcmV0dXJuIGdldE5ldHdvcmtGb3JOYW1lKGFyZ3YubmV0d29yayk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFN0cmluZyhwYXJzZWQ6IFBhcnNlck5vZGUsIGFyZ3Y6IHlhcmdzLkFyZ3VtZW50czx7IGZvcm1hdDogT3V0cHV0Rm9ybWF0OyBhbGw6IGJvb2xlYW4gfT4pOiBzdHJpbmcge1xuICBzd2l0Y2ggKGFyZ3YuZm9ybWF0KSB7XG4gICAgY2FzZSAnanNvbic6XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocGFyc2VkLCBudWxsLCAyKTtcbiAgICBjYXNlICd0cmVlJzpcbiAgICAgIHJldHVybiBmb3JtYXRUcmVlKHBhcnNlZCwgeyBoaWRlOiBhcmd2LmFsbCA/IFtdIDogdW5kZWZpbmVkIH0pO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBmb3JtYXQgJHthcmd2LmZvcm1hdH1gKTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZU5ldHdvcms8VCBleHRlbmRzIHsgbmV0d29yaz86IHN0cmluZyB9PihhcmdzOiBUKTogVCAmIHsgbmV0d29yaz86IHV0eG9saWIuTmV0d29yayB9IHtcbiAgaWYgKGFyZ3MubmV0d29yaykge1xuICAgIHJldHVybiB7IC4uLmFyZ3MsIG5ldHdvcms6IGdldE5ldHdvcmtGb3JOYW1lKGFyZ3MubmV0d29yaykgfTtcbiAgfVxuICByZXR1cm4geyAuLi5hcmdzLCBuZXR3b3JrOiB1bmRlZmluZWQgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFR4UGFyc2VyKGFyZ3Y6IHlhcmdzLkFyZ3VtZW50czxBcmdzUGFyc2VUcmFuc2FjdGlvbj4pOiBUeFBhcnNlciB7XG4gIGlmIChhcmd2LmFsbCkge1xuICAgIHJldHVybiBuZXcgVHhQYXJzZXIoVHhQYXJzZXIuUEFSU0VfQUxMKTtcbiAgfVxuICByZXR1cm4gbmV3IFR4UGFyc2VyKHtcbiAgICAuLi5hcmd2LFxuICAgIHBhcnNlU2lnbmF0dXJlRGF0YToge1xuICAgICAgc2NyaXB0OiBhcmd2LnBhcnNlU2lnbmF0dXJlRGF0YSxcbiAgICAgIGVjZHNhOiBhcmd2LnBhcnNlU2lnbmF0dXJlRGF0YSxcbiAgICAgIHNjaG5vcnI6IGFyZ3YucGFyc2VTaWduYXR1cmVEYXRhLFxuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc1BhcnNlcihhcmd2OiBBcmdzUGFyc2VBZGRyZXNzKTogQWRkcmVzc1BhcnNlciB7XG4gIHJldHVybiBuZXcgQWRkcmVzc1BhcnNlcihyZXNvbHZlTmV0d29yayhhcmd2KSk7XG59XG5cbmV4cG9ydCBjb25zdCBjbWRQYXJzZVR4ID0ge1xuICBjb21tYW5kOiAncGFyc2VUeCBbcGF0aF0nLFxuICBhbGlhc2VzOiBbJ3BhcnNlJywgJ3R4J10sXG4gIGRlc2NyaWJlOiAnZGlzcGxheSB0cmFuc2FjdGlvbiBjb21wb25lbnRzIGluIGh1bWFuLXJlYWRhYmxlIGZvcm0nLFxuXG4gIGJ1aWxkZXIoYjogeWFyZ3MuQXJndjx1bmtub3duPik6IHlhcmdzLkFyZ3Y8QXJnc1BhcnNlVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gYlxuICAgICAgLm9wdGlvbigncGF0aCcsIHsgdHlwZTogJ3N0cmluZycsIG5hcmdzOiAxLCBkZWZhdWx0OiAnJyB9KVxuICAgICAgLm9wdGlvbignc3RkaW4nLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ2NsaXBib2FyZCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbigndHhpZCcsIHsgdHlwZTogJ3N0cmluZycgfSlcbiAgICAgIC5vcHRpb24oJ2ZldGNoQWxsJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdmZXRjaFN0YXR1cycsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignZmV0Y2hJbnB1dHMnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ2ZldGNoU3BlbmRzJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCduZXR3b3JrJywgeyBhbGlhczogJ24nLCB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0pXG4gICAgICAub3B0aW9uKCdwYXJzZVNjcmlwdEFzbScsIHsgYWxpYXM6ICdzY3JpcHRhc20nLCB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdwYXJzZVNjcmlwdERhdGEnLCB7IGFsaWFzOiAnc2NyaXB0ZGF0YScsIHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ3BhcnNlU2lnbmF0dXJlRGF0YScsIHsgYWxpYXM6ICdzaWdkYXRhJywgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbigncGFyc2VPdXRwdXRTY3JpcHQnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ21heE91dHB1dHMnLCB7IHR5cGU6ICdudW1iZXInIH0pXG4gICAgICAub3B0aW9uKCd2aW4nLCB7IHR5cGU6ICdudW1iZXInIH0pXG4gICAgICAuYXJyYXkoJ3ZpbicpXG4gICAgICAub3B0aW9uKCdhbGwnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ2NhY2hlJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ3VzZSBsb2NhbCBjYWNoZSBmb3IgaHR0cCByZXNwb25zZXMnIH0pXG4gICAgICAub3B0aW9uKCdmb3JtYXQnLCB7IGNob2ljZXM6IFsndHJlZScsICdqc29uJ10sIGRlZmF1bHQ6ICd0cmVlJyB9IGFzIGNvbnN0KTtcbiAgfSxcblxuICBhc3luYyBoYW5kbGVyKGFyZ3Y6IHlhcmdzLkFyZ3VtZW50czxBcmdzUGFyc2VUcmFuc2FjdGlvbj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBuZXR3b3JrID0gZ2V0TmV0d29yayhhcmd2KTtcbiAgICBsZXQgZGF0YTtcblxuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCBnZXRDbGllbnQoeyBjYWNoZTogYXJndi5jYWNoZSB9KTtcblxuICAgIGlmIChhcmd2LnR4aWQpIHtcbiAgICAgIGRhdGEgPSBhd2FpdCBmZXRjaFRyYW5zYWN0aW9uSGV4KGh0dHBDbGllbnQsIGFyZ3YudHhpZCwgbmV0d29yayk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3Yuc3RkaW4gfHwgYXJndi5wYXRoID09PSAnLScpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY29uZmxpY3RpbmcgYXJndW1lbnRzYCk7XG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZygnUmVhZGluZyBmcm9tIHN0ZGluLiBQbGVhc2UgcGFzdGUgaGV4LWVuY29kZWQgdHJhbnNhY3Rpb24gZGF0YS4nKTtcbiAgICAgIGNvbnNvbGUubG9nKCdQcmVzcyBDdHJsLUQgdG8gZmluaXNoLCBvciBDdHJsLUMgdG8gY2FuY2VsLicpO1xuICAgICAgaWYgKHByb2Nlc3Muc3RkaW4uaXNUVFkpIHtcbiAgICAgICAgZGF0YSA9IGF3YWl0IHJlYWRTdGRpbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YSA9IGF3YWl0IGZzLnByb21pc2VzLnJlYWRGaWxlKCcvZGV2L3N0ZGluJywgJ3V0ZjgnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYXJndi5jbGlwYm9hcmQpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY29uZmxpY3RpbmcgYXJndW1lbnRzYCk7XG4gICAgICB9XG4gICAgICBkYXRhID0gYXdhaXQgY2xpcGJvYXJkeS5yZWFkKCk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3YucGF0aCkge1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb25mbGljdGluZyBhcmd1bWVudHNgKTtcbiAgICAgIH1cbiAgICAgIGRhdGEgPSAoYXdhaXQgZnMucHJvbWlzZXMucmVhZEZpbGUoYXJndi5wYXRoLCAndXRmOCcpKS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICghZGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBubyB0eGRhdGFgKTtcbiAgICB9XG4gICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvXFxzKi9nLCAnJyk7XG5cbiAgICBjb25zdCB0eCA9IHV0eG9saWIuYml0Z28uY3JlYXRlVHJhbnNhY3Rpb25Gcm9tSGV4KGRhdGEsIG5ldHdvcmspO1xuICAgIGNvbnN0IHR4aWQgPSB0eC5nZXRJZCgpO1xuICAgIGlmIChhcmd2LnR4aWQgJiYgdHhpZCAhPT0gYXJndi50eGlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbXB1dGVkIHR4aWQgZG9lcyBub3QgbWF0Y2ggdHhpZCBhcmd1bWVudGApO1xuICAgIH1cblxuICAgIGlmIChhcmd2LmZldGNoQWxsKSB7XG4gICAgICBhcmd2LmZldGNoU3RhdHVzID0gdHJ1ZTtcbiAgICAgIGFyZ3YuZmV0Y2hJbnB1dHMgPSB0cnVlO1xuICAgICAgYXJndi5mZXRjaFNwZW5kcyA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkID0gZ2V0VHhQYXJzZXIoYXJndikucGFyc2UodHgsIHtcbiAgICAgIHN0YXR1czogYXJndi5mZXRjaFN0YXR1cyA/IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25TdGF0dXMoaHR0cENsaWVudCwgdHhpZCwgbmV0d29yaykgOiB1bmRlZmluZWQsXG4gICAgICBwcmV2T3V0cHV0czogYXJndi5mZXRjaElucHV0cyA/IGF3YWl0IGZldGNoUHJldk91dHB1dHMoaHR0cENsaWVudCwgdHgpIDogdW5kZWZpbmVkLFxuICAgICAgcHJldk91dHB1dFNwZW5kczogYXJndi5mZXRjaFNwZW5kcyA/IGF3YWl0IGZldGNoUHJldk91dHB1dFNwZW5kcyhodHRwQ2xpZW50LCB0eCkgOiB1bmRlZmluZWQsXG4gICAgICBvdXRwdXRTcGVuZHM6IGFyZ3YuZmV0Y2hTcGVuZHMgPyBhd2FpdCBmZXRjaE91dHB1dFNwZW5kcyhodHRwQ2xpZW50LCB0eCkgOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhmb3JtYXRTdHJpbmcocGFyc2VkLCBhcmd2KSk7XG4gIH0sXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgY21kUGFyc2VBZGRyZXNzID0ge1xuICBjb21tYW5kOiAncGFyc2VBZGRyZXNzIFthZGRyZXNzXScsXG4gIGFsaWFzZXM6IFsnYWRkcmVzcyddLFxuICBkZXNjcmliZTogJ3BhcnNlIGFkZHJlc3MnLFxuICBidWlsZGVyKGI6IHlhcmdzLkFyZ3Y8dW5rbm93bj4pOiB5YXJncy5Bcmd2PEFyZ3NQYXJzZUFkZHJlc3M+IHtcbiAgICByZXR1cm4gYlxuICAgICAgLm9wdGlvbignbmV0d29yaycsIHsgYWxpYXM6ICduJywgdHlwZTogJ3N0cmluZycgfSlcbiAgICAgIC5vcHRpb24oJ2Zvcm1hdCcsIHsgY2hvaWNlczogWyd0cmVlJywgJ2pzb24nXSwgZGVmYXVsdDogJ3RyZWUnIH0gYXMgY29uc3QpXG4gICAgICAub3B0aW9uKCdjb252ZXJ0JywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdhbGwnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5wb3NpdGlvbmFsKCdhZGRyZXNzJywgeyB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0pO1xuICB9LFxuXG4gIGhhbmRsZXIoYXJndjogeWFyZ3MuQXJndW1lbnRzPEFyZ3NQYXJzZUFkZHJlc3M+KTogdm9pZCB7XG4gICAgY29uc3QgcGFyc2VkID0gZ2V0QWRkcmVzc1BhcnNlcihhcmd2KS5wYXJzZShhcmd2LmFkZHJlc3MpO1xuICAgIGNvbnNvbGUubG9nKGZvcm1hdFN0cmluZyhwYXJzZWQsIGFyZ3YpKTtcbiAgfSxcbn0gYXMgY29uc3Q7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Reads from stdin until Ctrl-D is pressed.
3
+ */
4
+ export declare function readStdin(): Promise<string>;
5
+ //# sourceMappingURL=readStdin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readStdin.d.ts","sourceRoot":"","sources":["../../src/readStdin.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAgCjD"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ /*
3
+ * Contains a high-performance implementation of reading from stdin.
4
+ * Standard readline is extremely slow for long lines.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.readStdin = void 0;
8
+ /**
9
+ * Reads from stdin until Ctrl-D is pressed.
10
+ */
11
+ async function readStdin() {
12
+ return new Promise((resolve, reject) => {
13
+ // Using readline is not an option because it is extremely slow for long lines.
14
+ // By enabling raw mode, we can read more than 4096 bytes, but it requires manual Ctrl-C/Ctrl-D handling
15
+ if (!process.stdin.setRawMode) {
16
+ throw new Error('stdin is not a tty');
17
+ }
18
+ process.stdin.setRawMode(true);
19
+ const buf = [];
20
+ process.stdin.on('data', (chunk) => {
21
+ if (chunk[0] === 0x03) {
22
+ // Ctrl-C
23
+ process.exit(130);
24
+ }
25
+ if (chunk[0] === 0x04) {
26
+ // Ctrl-D
27
+ process.stdin.emit('end');
28
+ return;
29
+ }
30
+ buf.push(chunk);
31
+ process.stdout.write(chunk);
32
+ });
33
+ process.stdin.on('end', () => {
34
+ resolve(Buffer.concat(buf).toString('utf8'));
35
+ });
36
+ process.stdin.on('error', (err) => {
37
+ reject(err);
38
+ });
39
+ });
40
+ }
41
+ exports.readStdin = readStdin;
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZFN0ZGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlYWRTdGRpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFFSDs7R0FFRztBQUNJLEtBQUssVUFBVSxTQUFTO0lBQzdCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckMsK0VBQStFO1FBQy9FLHdHQUF3RztRQUN4RyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsTUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO1FBRXpCLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2pDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDckIsU0FBUztnQkFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ25CO1lBQ0QsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNyQixTQUFTO2dCQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixPQUFPO2FBQ1I7WUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUMzQixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBaENELDhCQWdDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb250YWlucyBhIGhpZ2gtcGVyZm9ybWFuY2UgaW1wbGVtZW50YXRpb24gb2YgcmVhZGluZyBmcm9tIHN0ZGluLlxuICogU3RhbmRhcmQgcmVhZGxpbmUgaXMgZXh0cmVtZWx5IHNsb3cgZm9yIGxvbmcgbGluZXMuXG4gKi9cblxuLyoqXG4gKiBSZWFkcyBmcm9tIHN0ZGluIHVudGlsIEN0cmwtRCBpcyBwcmVzc2VkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFN0ZGluKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgLy8gVXNpbmcgcmVhZGxpbmUgaXMgbm90IGFuIG9wdGlvbiBiZWNhdXNlIGl0IGlzIGV4dHJlbWVseSBzbG93IGZvciBsb25nIGxpbmVzLlxuICAgIC8vIEJ5IGVuYWJsaW5nIHJhdyBtb2RlLCB3ZSBjYW4gcmVhZCBtb3JlIHRoYW4gNDA5NiBieXRlcywgYnV0IGl0IHJlcXVpcmVzIG1hbnVhbCBDdHJsLUMvQ3RybC1EIGhhbmRsaW5nXG4gICAgaWYgKCFwcm9jZXNzLnN0ZGluLnNldFJhd01vZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc3RkaW4gaXMgbm90IGEgdHR5Jyk7XG4gICAgfVxuICAgIHByb2Nlc3Muc3RkaW4uc2V0UmF3TW9kZSh0cnVlKTtcbiAgICBjb25zdCBidWY6IEJ1ZmZlcltdID0gW107XG5cbiAgICBwcm9jZXNzLnN0ZGluLm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgICBpZiAoY2h1bmtbMF0gPT09IDB4MDMpIHtcbiAgICAgICAgLy8gQ3RybC1DXG4gICAgICAgIHByb2Nlc3MuZXhpdCgxMzApO1xuICAgICAgfVxuICAgICAgaWYgKGNodW5rWzBdID09PSAweDA0KSB7XG4gICAgICAgIC8vIEN0cmwtRFxuICAgICAgICBwcm9jZXNzLnN0ZGluLmVtaXQoJ2VuZCcpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBidWYucHVzaChjaHVuayk7XG4gICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShjaHVuayk7XG4gICAgfSk7XG5cbiAgICBwcm9jZXNzLnN0ZGluLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICByZXNvbHZlKEJ1ZmZlci5jb25jYXQoYnVmKS50b1N0cmluZygndXRmOCcpKTtcbiAgICB9KTtcblxuICAgIHByb2Nlc3Muc3RkaW4ub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfSk7XG4gIH0pO1xufVxuIl19
@@ -576,19 +576,19 @@
576
576
  "signature": "e46c000f93dafb4fc49a0ac11087aa2f5eef0901a86cd653ecae0b73352a3628",
577
577
  "affectsGlobalScope": false
578
578
  },
579
- "../../../node_modules/bip32/types/bip32.d.ts": {
580
- "version": "bcba99e785dcaf8c662da39e88d4b19b7bd1ac6f2747326627af703aeee75076",
581
- "signature": "bcba99e785dcaf8c662da39e88d4b19b7bd1ac6f2747326627af703aeee75076",
579
+ "../../../node_modules/bip174/src/lib/proprietarykeyval.d.ts": {
580
+ "version": "e4c94bbc250fdc12eb67d2eeab41b50771be16ea342f2f9a13a85854e2c2f385",
581
+ "signature": "e4c94bbc250fdc12eb67d2eeab41b50771be16ea342f2f9a13a85854e2c2f385",
582
582
  "affectsGlobalScope": false
583
583
  },
584
- "../../../node_modules/bip32/types/index.d.ts": {
585
- "version": "6bc78ca431af68b902781d24cbf7c6ae662e6b1610e56ed6173f3a9384c50304",
586
- "signature": "6bc78ca431af68b902781d24cbf7c6ae662e6b1610e56ed6173f3a9384c50304",
584
+ "../../utxo-lib/dist/src/bitgo/psbtutil.d.ts": {
585
+ "version": "a0107282db48398c6c2846f4a0a4ce5f1c43b2259ab1aad4c956e898bc44b00e",
586
+ "signature": "a0107282db48398c6c2846f4a0a4ce5f1c43b2259ab1aad4c956e898bc44b00e",
587
587
  "affectsGlobalScope": false
588
588
  },
589
- "../../../node_modules/bip174/src/lib/proprietarykeyval.d.ts": {
590
- "version": "e4c94bbc250fdc12eb67d2eeab41b50771be16ea342f2f9a13a85854e2c2f385",
591
- "signature": "e4c94bbc250fdc12eb67d2eeab41b50771be16ea342f2f9a13a85854e2c2f385",
589
+ "../../utxo-lib/dist/src/bitgo/musig2.d.ts": {
590
+ "version": "d36976b497242d0ce26b09d80cef24f18cf4e93db3221badac8f0c88eb4a6037",
591
+ "signature": "d36976b497242d0ce26b09d80cef24f18cf4e93db3221badac8f0c88eb4a6037",
592
592
  "affectsGlobalScope": false
593
593
  },
594
594
  "../../utxo-lib/dist/src/bitgo/utxotransaction.d.ts": {
@@ -596,19 +596,24 @@
596
596
  "signature": "684e031ec8a911ebe107159504ed48b2a20367a0a1bc1e0500c35c1f85280669",
597
597
  "affectsGlobalScope": false
598
598
  },
599
- "../../utxo-lib/dist/src/bitgo/utxopsbt.d.ts": {
600
- "version": "027e951cb339115bf9c7b436163a64cb20d3f55845b80ee13dcb826e10dfe913",
601
- "signature": "027e951cb339115bf9c7b436163a64cb20d3f55845b80ee13dcb826e10dfe913",
599
+ "../../utxo-lib/dist/src/bitgo/dash/dashtransaction.d.ts": {
600
+ "version": "7df2b9c4e93eeab03cc5eba9061a6468b682b605c55312ca09e4c9c201819c10",
601
+ "signature": "7df2b9c4e93eeab03cc5eba9061a6468b682b605c55312ca09e4c9c201819c10",
602
602
  "affectsGlobalScope": false
603
603
  },
604
- "../../utxo-lib/dist/src/bitgo/musig2.d.ts": {
605
- "version": "8bc8241accb39914797ffd42846b541ccd25e732a7173d281a8b1859ef54deab",
606
- "signature": "8bc8241accb39914797ffd42846b541ccd25e732a7173d281a8b1859ef54deab",
604
+ "../../../node_modules/bip32/types/bip32.d.ts": {
605
+ "version": "bcba99e785dcaf8c662da39e88d4b19b7bd1ac6f2747326627af703aeee75076",
606
+ "signature": "bcba99e785dcaf8c662da39e88d4b19b7bd1ac6f2747326627af703aeee75076",
607
607
  "affectsGlobalScope": false
608
608
  },
609
- "../../utxo-lib/dist/src/bitgo/dash/dashtransaction.d.ts": {
610
- "version": "7df2b9c4e93eeab03cc5eba9061a6468b682b605c55312ca09e4c9c201819c10",
611
- "signature": "7df2b9c4e93eeab03cc5eba9061a6468b682b605c55312ca09e4c9c201819c10",
609
+ "../../../node_modules/bip32/types/index.d.ts": {
610
+ "version": "6bc78ca431af68b902781d24cbf7c6ae662e6b1610e56ed6173f3a9384c50304",
611
+ "signature": "6bc78ca431af68b902781d24cbf7c6ae662e6b1610e56ed6173f3a9384c50304",
612
+ "affectsGlobalScope": false
613
+ },
614
+ "../../utxo-lib/dist/src/bitgo/utxopsbt.d.ts": {
615
+ "version": "a8db149014f37dec9784d021efd063da2c964fb841ab5498cd37a4ff1b3fd3bf",
616
+ "signature": "a8db149014f37dec9784d021efd063da2c964fb841ab5498cd37a4ff1b3fd3bf",
612
617
  "affectsGlobalScope": false
613
618
  },
614
619
  "../../utxo-lib/dist/src/bitgo/dash/dashpsbt.d.ts": {
@@ -667,13 +672,13 @@
667
672
  "affectsGlobalScope": false
668
673
  },
669
674
  "../../utxo-lib/dist/src/bitgo/wallet/unspent.d.ts": {
670
- "version": "2a61ab34ec6f30af68b2ecfeb63b08050098fefc870dd8cb99f91deb69ace492",
671
- "signature": "2a61ab34ec6f30af68b2ecfeb63b08050098fefc870dd8cb99f91deb69ace492",
675
+ "version": "abc70e9efe86f9037a1696881ad60ca634018d5a093ad3250c43bb0a3e3b6c1e",
676
+ "signature": "abc70e9efe86f9037a1696881ad60ca634018d5a093ad3250c43bb0a3e3b6c1e",
672
677
  "affectsGlobalScope": false
673
678
  },
674
679
  "../../utxo-lib/dist/src/bitgo/wallet/psbt.d.ts": {
675
- "version": "efa712fd9b5cfa2c103a45bdacb46b945a8e4b3e063b8e89f6b8adc50ca7f267",
676
- "signature": "efa712fd9b5cfa2c103a45bdacb46b945a8e4b3e063b8e89f6b8adc50ca7f267",
680
+ "version": "8651a3eeab1f7b4d59c3175b471b9b3cab0903d91ba7da64a13fe008ff894c56",
681
+ "signature": "8651a3eeab1f7b4d59c3175b471b9b3cab0903d91ba7da64a13fe008ff894c56",
677
682
  "affectsGlobalScope": false
678
683
  },
679
684
  "../../utxo-lib/dist/src/bitgo/wallet/walletoutput.d.ts": {
@@ -737,8 +742,8 @@
737
742
  "affectsGlobalScope": false
738
743
  },
739
744
  "../../utxo-lib/dist/src/bitgo/index.d.ts": {
740
- "version": "eac1f5a39248a7a121e87f55cd479dfe45739d76918718701f4758d4e69c015b",
741
- "signature": "eac1f5a39248a7a121e87f55cd479dfe45739d76918718701f4758d4e69c015b",
745
+ "version": "f9dd9c67823de7f36be167f3a7cae7921a0f2e191543a65d1530c279f880b80b",
746
+ "signature": "f9dd9c67823de7f36be167f3a7cae7921a0f2e191543a65d1530c279f880b80b",
742
747
  "affectsGlobalScope": false
743
748
  },
744
749
  "../../utxo-lib/dist/src/address.d.ts": {
@@ -762,8 +767,8 @@
762
767
  "affectsGlobalScope": false
763
768
  },
764
769
  "../../utxo-lib/dist/src/testutil/mock.d.ts": {
765
- "version": "281fd72521d5c85008445779e15086caf1dc82221c17cff47f9203345233771e",
766
- "signature": "281fd72521d5c85008445779e15086caf1dc82221c17cff47f9203345233771e",
770
+ "version": "b172212e75e5f3f9383dd1cf04f73e25379336ca8c3b54aed8012616bf1b0f84",
771
+ "signature": "b172212e75e5f3f9383dd1cf04f73e25379336ca8c3b54aed8012616bf1b0f84",
767
772
  "affectsGlobalScope": false
768
773
  },
769
774
  "../../utxo-lib/dist/src/testutil/psbt.d.ts": {
@@ -771,9 +776,14 @@
771
776
  "signature": "71d8e8a1b63e255b56a1a9ac448d2eec14a7edeb2709691391a267081f8c2bf1",
772
777
  "affectsGlobalScope": false
773
778
  },
779
+ "../../utxo-lib/dist/src/testutil/transaction.d.ts": {
780
+ "version": "1581c3bb86d261b46ba0e87d643608d1d73f6b9cddb2f0399349dc464431797a",
781
+ "signature": "1581c3bb86d261b46ba0e87d643608d1d73f6b9cddb2f0399349dc464431797a",
782
+ "affectsGlobalScope": false
783
+ },
774
784
  "../../utxo-lib/dist/src/testutil/index.d.ts": {
775
- "version": "7a93efebf1bd1a23b8dda3e9a2d4be93aca08dfd8d014b11298dd141c1c23926",
776
- "signature": "7a93efebf1bd1a23b8dda3e9a2d4be93aca08dfd8d014b11298dd141c1c23926",
785
+ "version": "cd20c95c5e1156fd6f1f6e01e789fc98ade117fd3dd1d8ec56827ab711347b14",
786
+ "signature": "cd20c95c5e1156fd6f1f6e01e789fc98ade117fd3dd1d8ec56827ab711347b14",
777
787
  "affectsGlobalScope": false
778
788
  },
779
789
  "../../utxo-lib/dist/src/noble_ecc.d.ts": {
@@ -1046,14 +1056,19 @@
1046
1056
  "signature": "b7b0003c5404c9cae2d7caf5d6b469b190cea06cce7815ba0e479a4457875290",
1047
1057
  "affectsGlobalScope": false
1048
1058
  },
1059
+ "../../../node_modules/clipboardy/index.d.ts": {
1060
+ "version": "45335b5a58b3252030108af7ff3654402c3fd8317417d11c6993207d6dbebd6f",
1061
+ "signature": "45335b5a58b3252030108af7ff3654402c3fd8317417d11c6993207d6dbebd6f",
1062
+ "affectsGlobalScope": false
1063
+ },
1049
1064
  "../../statics/dist/src/networks.d.ts": {
1050
- "version": "fc24bdfb504a25e669af40752735b313c8a044cde8b4b2ea252aed328d2b6170",
1051
- "signature": "fc24bdfb504a25e669af40752735b313c8a044cde8b4b2ea252aed328d2b6170",
1065
+ "version": "fd593401f16e3e9c62a4122ea01fd56bf62fc0e84051c313425a8822fa0501c0",
1066
+ "signature": "fd593401f16e3e9c62a4122ea01fd56bf62fc0e84051c313425a8822fa0501c0",
1052
1067
  "affectsGlobalScope": false
1053
1068
  },
1054
1069
  "../../statics/dist/src/base.d.ts": {
1055
- "version": "cfca7aa7fca995a0a6b0aebf6527480a720561a35194cb504fb80c5988de979a",
1056
- "signature": "cfca7aa7fca995a0a6b0aebf6527480a720561a35194cb504fb80c5988de979a",
1070
+ "version": "f8f6b03accc295ee647b47c65402218aa9399e7a7854a744164eb863057d4a7e",
1071
+ "signature": "f8f6b03accc295ee647b47c65402218aa9399e7a7854a744164eb863057d4a7e",
1057
1072
  "affectsGlobalScope": false
1058
1073
  },
1059
1074
  "../../statics/dist/src/map.d.ts": {
@@ -1101,9 +1116,14 @@
1101
1116
  "signature": "191b256520e9a46081f1a28a722616c0c6e71c3ec2da7f16cb6801ebb13c54ac",
1102
1117
  "affectsGlobalScope": false
1103
1118
  },
1119
+ "../src/readstdin.ts": {
1120
+ "version": "f18d50e802b3a8d0598ede1f646f23424805d3e44b8d295048cc81a027c2ae33",
1121
+ "signature": "6e08c54917ba2bfdb02d699b986c05be97302d60b1b279ff7aeef05ad715b222",
1122
+ "affectsGlobalScope": false
1123
+ },
1104
1124
  "../src/commands.ts": {
1105
- "version": "706eb4052cdb8cb35f842a289e1f9c925be5364742ba98f8f1a483f7d3de3e10",
1106
- "signature": "4b31626e7246e02808e806c3a26874988cfd6a59d62bfc860550c653cd923215",
1125
+ "version": "1edc5f26fe9fa5c9099c89c997a620fab5e94280a1bcd8b5ccc8db17327ac479",
1126
+ "signature": "64099cacd30368a48f81eb93c7dce4de072db5f5a5cf1095a3012e3cce1429e2",
1107
1127
  "affectsGlobalScope": false
1108
1128
  },
1109
1129
  "../bin/index.ts": {
@@ -2043,12 +2063,14 @@
2043
2063
  "../../../node_modules/@types/node/process.d.ts",
2044
2064
  "../../../node_modules/@types/node/util.d.ts",
2045
2065
  "../../../node_modules/@types/yargs/index.d.ts",
2066
+ "../../../node_modules/clipboardy/index.d.ts",
2046
2067
  "../../blockapis/dist/src/index.d.ts",
2047
2068
  "../../utxo-lib/dist/src/index.d.ts",
2048
2069
  "../src/addressparser.ts",
2049
2070
  "../src/fetch.ts",
2050
2071
  "../src/format.ts",
2051
2072
  "../src/parser.ts",
2073
+ "../src/readstdin.ts",
2052
2074
  "../src/txparser.ts"
2053
2075
  ],
2054
2076
  "../src/fetch.ts": [
@@ -2135,6 +2157,7 @@
2135
2157
  "../../utxo-lib/dist/src/bitgo/nonstandardhalfsigned.d.ts",
2136
2158
  "../../utxo-lib/dist/src/bitgo/outputscripts.d.ts",
2137
2159
  "../../utxo-lib/dist/src/bitgo/parseinput.d.ts",
2160
+ "../../utxo-lib/dist/src/bitgo/psbtutil.d.ts",
2138
2161
  "../../utxo-lib/dist/src/bitgo/signature.d.ts",
2139
2162
  "../../utxo-lib/dist/src/bitgo/tnumber.d.ts",
2140
2163
  "../../utxo-lib/dist/src/bitgo/transaction.d.ts",
@@ -2177,11 +2200,10 @@
2177
2200
  ],
2178
2201
  "../../utxo-lib/dist/src/bitgo/musig2.d.ts": [
2179
2202
  "../../../node_modules/@brandonblack/musig/lib/index.d.ts",
2203
+ "../../../node_modules/bip174/src/lib/interfaces.d.ts",
2204
+ "../../utxo-lib/dist/src/bitgo/psbtutil.d.ts",
2180
2205
  "../../utxo-lib/dist/src/bitgo/types.d.ts",
2181
- "../../utxo-lib/dist/src/bitgo/utxopsbt.d.ts",
2182
- "../../utxo-lib/dist/src/bitgo/utxotransaction.d.ts",
2183
- "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
2184
- "../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
2206
+ "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
2185
2207
  ],
2186
2208
  "../../utxo-lib/dist/src/bitgo/nonstandardhalfsigned.d.ts": [
2187
2209
  "../../utxo-lib/dist/src/index.d.ts"
@@ -2197,6 +2219,11 @@
2197
2219
  "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
2198
2220
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
2199
2221
  ],
2222
+ "../../utxo-lib/dist/src/bitgo/psbtutil.d.ts": [
2223
+ "../../../node_modules/bip174/src/lib/interfaces.d.ts",
2224
+ "../../../node_modules/bip174/src/lib/proprietarykeyval.d.ts",
2225
+ "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
2226
+ ],
2200
2227
  "../../utxo-lib/dist/src/bitgo/signature.d.ts": [
2201
2228
  "../../../node_modules/bip32/types/index.d.ts",
2202
2229
  "../../utxo-lib/dist/src/bitgo/outputscripts.d.ts",
@@ -2227,9 +2254,9 @@
2227
2254
  ],
2228
2255
  "../../utxo-lib/dist/src/bitgo/utxopsbt.d.ts": [
2229
2256
  "../../../node_modules/bip174/src/lib/interfaces.d.ts",
2230
- "../../../node_modules/bip174/src/lib/proprietarykeyval.d.ts",
2231
2257
  "../../../node_modules/bip174/src/lib/psbt.d.ts",
2232
2258
  "../../../node_modules/bip32/types/index.d.ts",
2259
+ "../../utxo-lib/dist/src/bitgo/psbtutil.d.ts",
2233
2260
  "../../utxo-lib/dist/src/bitgo/types.d.ts",
2234
2261
  "../../utxo-lib/dist/src/bitgo/utxotransaction.d.ts",
2235
2262
  "../../utxo-lib/dist/src/index.d.ts",
@@ -2260,8 +2287,11 @@
2260
2287
  "../../utxo-lib/dist/src/bitgo/wallet/walletunspentsigner.d.ts"
2261
2288
  ],
2262
2289
  "../../utxo-lib/dist/src/bitgo/wallet/psbt.d.ts": [
2290
+ "../../../node_modules/bip174/src/lib/interfaces.d.ts",
2263
2291
  "../../../node_modules/bip32/types/index.d.ts",
2264
2292
  "../../utxo-lib/dist/src/bitgo/parseinput.d.ts",
2293
+ "../../utxo-lib/dist/src/bitgo/psbtutil.d.ts",
2294
+ "../../utxo-lib/dist/src/bitgo/types.d.ts",
2265
2295
  "../../utxo-lib/dist/src/bitgo/utxopsbt.d.ts",
2266
2296
  "../../utxo-lib/dist/src/bitgo/utxotransaction.d.ts",
2267
2297
  "../../utxo-lib/dist/src/bitgo/wallet/unspent.d.ts",
@@ -2366,7 +2396,8 @@
2366
2396
  "../../utxo-lib/dist/src/testutil/index.d.ts": [
2367
2397
  "../../utxo-lib/dist/src/testutil/keys.d.ts",
2368
2398
  "../../utxo-lib/dist/src/testutil/mock.d.ts",
2369
- "../../utxo-lib/dist/src/testutil/psbt.d.ts"
2399
+ "../../utxo-lib/dist/src/testutil/psbt.d.ts",
2400
+ "../../utxo-lib/dist/src/testutil/transaction.d.ts"
2370
2401
  ],
2371
2402
  "../../utxo-lib/dist/src/testutil/keys.d.ts": [
2372
2403
  "../../../node_modules/bip32/types/index.d.ts",
@@ -2383,6 +2414,11 @@
2383
2414
  "../../utxo-lib/dist/src/bitgo/outputscripts.d.ts",
2384
2415
  "../../utxo-lib/dist/src/networks.d.ts"
2385
2416
  ],
2417
+ "../../utxo-lib/dist/src/testutil/transaction.d.ts": [
2418
+ "../../utxo-lib/dist/src/bitgo/index.d.ts",
2419
+ "../../utxo-lib/dist/src/bitgo/outputscripts.d.ts",
2420
+ "../../utxo-lib/dist/src/networks.d.ts"
2421
+ ],
2386
2422
  "../../utxo-lib/dist/src/transaction_builder.d.ts": [
2387
2423
  "../../utxo-lib/dist/src/index.d.ts",
2388
2424
  "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
@@ -3632,6 +3668,7 @@
3632
3668
  "../../utxo-lib/dist/src/bitgo/nonstandardhalfsigned.d.ts",
3633
3669
  "../../utxo-lib/dist/src/bitgo/outputscripts.d.ts",
3634
3670
  "../../utxo-lib/dist/src/bitgo/parseinput.d.ts",
3671
+ "../../utxo-lib/dist/src/bitgo/psbtutil.d.ts",
3635
3672
  "../../utxo-lib/dist/src/bitgo/signature.d.ts",
3636
3673
  "../../utxo-lib/dist/src/bitgo/tnumber.d.ts",
3637
3674
  "../../utxo-lib/dist/src/bitgo/transaction.d.ts",
@@ -3674,11 +3711,10 @@
3674
3711
  ],
3675
3712
  "../../utxo-lib/dist/src/bitgo/musig2.d.ts": [
3676
3713
  "../../../node_modules/@brandonblack/musig/lib/index.d.ts",
3714
+ "../../../node_modules/bip174/src/lib/interfaces.d.ts",
3715
+ "../../utxo-lib/dist/src/bitgo/psbtutil.d.ts",
3677
3716
  "../../utxo-lib/dist/src/bitgo/types.d.ts",
3678
- "../../utxo-lib/dist/src/bitgo/utxopsbt.d.ts",
3679
- "../../utxo-lib/dist/src/bitgo/utxotransaction.d.ts",
3680
- "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
3681
- "../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
3717
+ "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
3682
3718
  ],
3683
3719
  "../../utxo-lib/dist/src/bitgo/nonstandardhalfsigned.d.ts": [
3684
3720
  "../../utxo-lib/dist/src/index.d.ts"
@@ -3694,6 +3730,11 @@
3694
3730
  "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
3695
3731
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
3696
3732
  ],
3733
+ "../../utxo-lib/dist/src/bitgo/psbtutil.d.ts": [
3734
+ "../../../node_modules/bip174/src/lib/interfaces.d.ts",
3735
+ "../../../node_modules/bip174/src/lib/proprietarykeyval.d.ts",
3736
+ "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
3737
+ ],
3697
3738
  "../../utxo-lib/dist/src/bitgo/signature.d.ts": [
3698
3739
  "../../../node_modules/bip32/types/index.d.ts",
3699
3740
  "../../utxo-lib/dist/src/bitgo/outputscripts.d.ts",
@@ -3724,9 +3765,9 @@
3724
3765
  ],
3725
3766
  "../../utxo-lib/dist/src/bitgo/utxopsbt.d.ts": [
3726
3767
  "../../../node_modules/bip174/src/lib/interfaces.d.ts",
3727
- "../../../node_modules/bip174/src/lib/proprietarykeyval.d.ts",
3728
3768
  "../../../node_modules/bip174/src/lib/psbt.d.ts",
3729
3769
  "../../../node_modules/bip32/types/index.d.ts",
3770
+ "../../utxo-lib/dist/src/bitgo/psbtutil.d.ts",
3730
3771
  "../../utxo-lib/dist/src/bitgo/types.d.ts",
3731
3772
  "../../utxo-lib/dist/src/bitgo/utxotransaction.d.ts",
3732
3773
  "../../utxo-lib/dist/src/index.d.ts",
@@ -3757,8 +3798,11 @@
3757
3798
  "../../utxo-lib/dist/src/bitgo/wallet/walletunspentsigner.d.ts"
3758
3799
  ],
3759
3800
  "../../utxo-lib/dist/src/bitgo/wallet/psbt.d.ts": [
3801
+ "../../../node_modules/bip174/src/lib/interfaces.d.ts",
3760
3802
  "../../../node_modules/bip32/types/index.d.ts",
3761
3803
  "../../utxo-lib/dist/src/bitgo/parseinput.d.ts",
3804
+ "../../utxo-lib/dist/src/bitgo/psbtutil.d.ts",
3805
+ "../../utxo-lib/dist/src/bitgo/types.d.ts",
3762
3806
  "../../utxo-lib/dist/src/bitgo/utxopsbt.d.ts",
3763
3807
  "../../utxo-lib/dist/src/bitgo/utxotransaction.d.ts",
3764
3808
  "../../utxo-lib/dist/src/bitgo/wallet/unspent.d.ts",
@@ -3863,7 +3907,8 @@
3863
3907
  "../../utxo-lib/dist/src/testutil/index.d.ts": [
3864
3908
  "../../utxo-lib/dist/src/testutil/keys.d.ts",
3865
3909
  "../../utxo-lib/dist/src/testutil/mock.d.ts",
3866
- "../../utxo-lib/dist/src/testutil/psbt.d.ts"
3910
+ "../../utxo-lib/dist/src/testutil/psbt.d.ts",
3911
+ "../../utxo-lib/dist/src/testutil/transaction.d.ts"
3867
3912
  ],
3868
3913
  "../../utxo-lib/dist/src/testutil/keys.d.ts": [
3869
3914
  "../../../node_modules/bip32/types/index.d.ts",
@@ -3880,6 +3925,11 @@
3880
3925
  "../../utxo-lib/dist/src/bitgo/outputscripts.d.ts",
3881
3926
  "../../utxo-lib/dist/src/networks.d.ts"
3882
3927
  ],
3928
+ "../../utxo-lib/dist/src/testutil/transaction.d.ts": [
3929
+ "../../utxo-lib/dist/src/bitgo/index.d.ts",
3930
+ "../../utxo-lib/dist/src/bitgo/outputscripts.d.ts",
3931
+ "../../utxo-lib/dist/src/networks.d.ts"
3932
+ ],
3883
3933
  "../../utxo-lib/dist/src/transaction_builder.d.ts": [
3884
3934
  "../../utxo-lib/dist/src/index.d.ts",
3885
3935
  "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
@@ -4988,6 +5038,7 @@
4988
5038
  "../src/hollowsegwitspend.ts",
4989
5039
  "../src/inputoutputparser.ts",
4990
5040
  "../src/parser.ts",
5041
+ "../src/readstdin.ts",
4991
5042
  "../src/txparser.ts",
4992
5043
  "../../utxo-lib/dist/src/address.d.ts",
4993
5044
  "../../utxo-lib/dist/src/addressformat.d.ts",
@@ -5007,6 +5058,7 @@
5007
5058
  "../../utxo-lib/dist/src/bitgo/nonstandardhalfsigned.d.ts",
5008
5059
  "../../utxo-lib/dist/src/bitgo/outputscripts.d.ts",
5009
5060
  "../../utxo-lib/dist/src/bitgo/parseinput.d.ts",
5061
+ "../../utxo-lib/dist/src/bitgo/psbtutil.d.ts",
5010
5062
  "../../utxo-lib/dist/src/bitgo/signature.d.ts",
5011
5063
  "../../utxo-lib/dist/src/bitgo/tnumber.d.ts",
5012
5064
  "../../utxo-lib/dist/src/bitgo/transaction.d.ts",
@@ -5039,6 +5091,7 @@
5039
5091
  "../../utxo-lib/dist/src/testutil/keys.d.ts",
5040
5092
  "../../utxo-lib/dist/src/testutil/mock.d.ts",
5041
5093
  "../../utxo-lib/dist/src/testutil/psbt.d.ts",
5094
+ "../../utxo-lib/dist/src/testutil/transaction.d.ts",
5042
5095
  "../../utxo-lib/dist/src/transaction_builder.d.ts",
5043
5096
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/address.d.ts",
5044
5097
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/block.d.ts",
@@ -5302,6 +5355,7 @@
5302
5355
  "../../../node_modules/bitcoinjs-lib/src/types.d.ts",
5303
5356
  "../../../node_modules/buffer/index.d.ts",
5304
5357
  "../../../node_modules/chalk/index.d.ts",
5358
+ "../../../node_modules/clipboardy/index.d.ts",
5305
5359
  "../../../node_modules/csstype/index.d.ts",
5306
5360
  "../../../node_modules/ecpair/src/ecpair.d.ts",
5307
5361
  "../../../node_modules/ecpair/src/index.d.ts",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bitgo/utxo-bin",
3
3
  "description": "Command-line utility for BitGo UTXO transactions",
4
- "version": "2.9.3",
4
+ "version": "2.10.0",
5
5
  "files": [
6
6
  "dist/**/*"
7
7
  ],
@@ -26,9 +26,9 @@
26
26
  },
27
27
  "bin": "./dist/bin/index.js",
28
28
  "dependencies": {
29
- "@bitgo/blockapis": "^1.6.7",
30
- "@bitgo/statics": "^16.0.0",
31
- "@bitgo/utxo-lib": "^8.4.0",
29
+ "@bitgo/blockapis": "^1.6.9",
30
+ "@bitgo/statics": "^16.2.0",
31
+ "@bitgo/utxo-lib": "^9.1.0",
32
32
  "archy": "^1.0.0",
33
33
  "bech32": "^2.0.0",
34
34
  "bitcoinjs-lib": "npm:@bitgo-forks/bitcoinjs-lib@7.1.0-master.2",
@@ -36,6 +36,7 @@
36
36
  "bs58check": "^2.1.2",
37
37
  "cashaddress": "^1.1.0",
38
38
  "chalk": "4",
39
+ "clipboardy": "^2.3.0",
39
40
  "elliptic": "^6.5.2",
40
41
  "yargs": "^17.3.1"
41
42
  },
@@ -54,5 +55,5 @@
54
55
  "access": "public"
55
56
  },
56
57
  "license": "MIT",
57
- "gitHead": "5d97fba87a565f6291dcec6a7be6d0696510893f"
58
+ "gitHead": "968f6e132c14bc69d20ec1991a4e316166ecdbdd"
58
59
  }