@bitgo-beta/utxo-bin 2.8.3-beta.96 → 2.8.3-beta.960

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/README.md +4 -4
  2. package/dist/bin/index.js +39 -4
  3. package/dist/src/AddressParser.d.ts +0 -1
  4. package/dist/src/AddressParser.d.ts.map +1 -1
  5. package/dist/src/AddressParser.js +48 -9
  6. package/dist/src/InputParser.d.ts +1 -2
  7. package/dist/src/InputParser.d.ts.map +1 -1
  8. package/dist/src/InputParser.js +66 -23
  9. package/dist/src/OutputParser.d.ts +3 -3
  10. package/dist/src/OutputParser.d.ts.map +1 -1
  11. package/dist/src/OutputParser.js +52 -6
  12. package/dist/src/Parser.d.ts +3 -3
  13. package/dist/src/Parser.d.ts.map +1 -1
  14. package/dist/src/Parser.js +12 -5
  15. package/dist/src/ParserTx.d.ts +3 -4
  16. package/dist/src/ParserTx.d.ts.map +1 -1
  17. package/dist/src/ParserTx.js +41 -9
  18. package/dist/src/ScriptParser.d.ts +8 -6
  19. package/dist/src/ScriptParser.d.ts.map +1 -1
  20. package/dist/src/ScriptParser.js +60 -8
  21. package/dist/src/TxParser.d.ts +3 -2
  22. package/dist/src/TxParser.d.ts.map +1 -1
  23. package/dist/src/TxParser.js +44 -11
  24. package/dist/src/args/format.d.ts +8 -0
  25. package/dist/src/args/format.d.ts.map +1 -0
  26. package/dist/src/args/format.js +15 -0
  27. package/dist/src/args/index.d.ts +5 -0
  28. package/dist/src/args/index.d.ts.map +1 -0
  29. package/dist/src/args/index.js +21 -0
  30. package/dist/src/args/parseNetwork.d.ts +25 -0
  31. package/dist/src/args/parseNetwork.d.ts.map +1 -0
  32. package/dist/src/args/parseNetwork.js +108 -0
  33. package/dist/src/args/parseString.d.ts +40 -0
  34. package/dist/src/args/parseString.d.ts.map +1 -0
  35. package/dist/src/args/parseString.js +153 -0
  36. package/dist/src/args/walletKeys.d.ts +38 -0
  37. package/dist/src/args/walletKeys.d.ts.map +1 -0
  38. package/dist/src/args/walletKeys.js +64 -0
  39. package/dist/src/bip32.d.ts +5 -0
  40. package/dist/src/bip32.d.ts.map +1 -0
  41. package/dist/src/bip32.js +56 -0
  42. package/dist/src/commands/cmdAddress/cmdGenerate.d.ts +21 -0
  43. package/dist/src/commands/cmdAddress/cmdGenerate.d.ts.map +1 -0
  44. package/dist/src/commands/cmdAddress/cmdGenerate.js +89 -0
  45. package/dist/src/commands/cmdAddress/cmdParse.d.ts +20 -0
  46. package/dist/src/commands/cmdAddress/cmdParse.d.ts.map +1 -0
  47. package/dist/src/commands/cmdAddress/cmdParse.js +28 -0
  48. package/dist/src/commands/cmdAddress/index.d.ts +3 -0
  49. package/dist/src/commands/cmdAddress/index.d.ts.map +1 -0
  50. package/dist/src/commands/cmdAddress/index.js +16 -0
  51. package/dist/src/commands/cmdBip32.d.ts +16 -0
  52. package/dist/src/commands/cmdBip32.d.ts.map +1 -0
  53. package/dist/src/commands/cmdBip32.js +78 -0
  54. package/dist/src/commands/cmdParseScript.d.ts +18 -0
  55. package/dist/src/commands/cmdParseScript.d.ts.map +1 -0
  56. package/dist/src/commands/cmdParseScript.js +27 -0
  57. package/dist/src/commands/cmdParseTx.d.ts +30 -0
  58. package/dist/src/commands/cmdParseTx.d.ts.map +1 -0
  59. package/dist/src/commands/cmdParseTx.js +153 -0
  60. package/dist/src/commands/cmdPsbt/cmdAddDescriptorInput.d.ts +13 -0
  61. package/dist/src/commands/cmdPsbt/cmdAddDescriptorInput.d.ts.map +1 -0
  62. package/dist/src/commands/cmdPsbt/cmdAddDescriptorInput.js +100 -0
  63. package/dist/src/commands/cmdPsbt/cmdAddOutput.d.ts +11 -0
  64. package/dist/src/commands/cmdPsbt/cmdAddOutput.d.ts.map +1 -0
  65. package/dist/src/commands/cmdPsbt/cmdAddOutput.js +122 -0
  66. package/dist/src/commands/cmdPsbt/cmdCreate.d.ts +9 -0
  67. package/dist/src/commands/cmdPsbt/cmdCreate.d.ts.map +1 -0
  68. package/dist/src/commands/cmdPsbt/cmdCreate.js +23 -0
  69. package/dist/src/commands/cmdPsbt/cmdFinalize.d.ts +11 -0
  70. package/dist/src/commands/cmdPsbt/cmdFinalize.d.ts.map +1 -0
  71. package/dist/src/commands/cmdPsbt/cmdFinalize.js +43 -0
  72. package/dist/src/commands/cmdPsbt/cmdSign.d.ts +7 -0
  73. package/dist/src/commands/cmdPsbt/cmdSign.d.ts.map +1 -0
  74. package/dist/src/commands/cmdPsbt/cmdSign.js +57 -0
  75. package/dist/src/commands/cmdPsbt/index.d.ts +8 -0
  76. package/dist/src/commands/cmdPsbt/index.d.ts.map +1 -0
  77. package/dist/src/commands/cmdPsbt/index.js +27 -0
  78. package/dist/src/commands/cmdPsbt/withPsbt.d.ts +63 -0
  79. package/dist/src/commands/cmdPsbt/withPsbt.d.ts.map +1 -0
  80. package/dist/src/commands/cmdPsbt/withPsbt.js +99 -0
  81. package/dist/src/commands/cmdPsbt/wrap.d.ts +5 -0
  82. package/dist/src/commands/cmdPsbt/wrap.d.ts.map +1 -0
  83. package/dist/src/commands/cmdPsbt/wrap.js +60 -0
  84. package/dist/src/commands/formatString.d.ts +8 -0
  85. package/dist/src/commands/formatString.d.ts.map +1 -0
  86. package/dist/src/commands/formatString.js +14 -0
  87. package/dist/src/commands/index.d.ts +6 -0
  88. package/dist/src/commands/index.d.ts.map +1 -0
  89. package/dist/src/commands/index.js +22 -0
  90. package/dist/src/ecdsa.d.ts +1 -2
  91. package/dist/src/ecdsa.d.ts.map +1 -1
  92. package/dist/src/ecdsa.js +9 -9
  93. package/dist/src/fetch.d.ts +8 -1
  94. package/dist/src/fetch.d.ts.map +1 -1
  95. package/dist/src/fetch.js +77 -11
  96. package/dist/src/format.d.ts.map +1 -1
  97. package/dist/src/format.js +9 -8
  98. package/dist/src/generateAddress.d.ts +24 -9
  99. package/dist/src/generateAddress.d.ts.map +1 -1
  100. package/dist/src/generateAddress.js +99 -26
  101. package/dist/src/hollowSegwitSpend.d.ts +1 -1
  102. package/dist/src/hollowSegwitSpend.d.ts.map +1 -1
  103. package/dist/src/hollowSegwitSpend.js +37 -5
  104. package/dist/src/parseUnknown.js +4 -5
  105. package/dist/test/args/stringToBuffer.d.ts.map +1 -0
  106. package/dist/test/args/stringToBuffer.js +49 -0
  107. package/dist/test/bip32.d.ts +2 -0
  108. package/dist/test/bip32.d.ts.map +1 -0
  109. package/dist/test/bip32.js +55 -0
  110. package/dist/test/bip32.util.d.ts +6 -0
  111. package/dist/test/bip32.util.d.ts.map +1 -0
  112. package/dist/test/bip32.util.js +46 -0
  113. package/dist/test/cmdPsbt.d.ts +2 -0
  114. package/dist/test/cmdPsbt.d.ts.map +1 -0
  115. package/dist/test/cmdPsbt.js +138 -0
  116. package/dist/test/fixtures.d.ts +4 -4
  117. package/dist/test/fixtures.d.ts.map +1 -1
  118. package/dist/test/fixtures.js +45 -13
  119. package/dist/test/generateAddress.js +63 -13
  120. package/dist/test/parseAddress.d.ts +1 -5
  121. package/dist/test/parseAddress.d.ts.map +1 -1
  122. package/dist/test/parseAddress.js +54 -22
  123. package/dist/test/parseScript.js +45 -9
  124. package/dist/test/parseTransaction.js +49 -12
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +9 -8
  127. package/dist/src/commands.d.ts +0 -78
  128. package/dist/src/commands.d.ts.map +0 -1
  129. package/dist/src/commands.js +0 -284
  130. package/dist/src/parseString.d.ts +0 -5
  131. package/dist/src/parseString.d.ts.map +0 -1
  132. package/dist/src/parseString.js +0 -29
  133. package/dist/src/readStdin.d.ts +0 -5
  134. package/dist/src/readStdin.d.ts.map +0 -1
  135. package/dist/src/readStdin.js +0 -42
  136. package/dist/test/stringToBuffer.d.ts.map +0 -1
  137. package/dist/test/stringToBuffer.js +0 -16
  138. /package/dist/test/{stringToBuffer.d.ts → args/stringToBuffer.d.ts} +0 -0
@@ -1,19 +1,55 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const assert = require("assert");
4
- const utxolib = require("@bitgo-beta/utxo-lib");
5
- const fixtures_1 = require("./fixtures");
36
+ const assert = __importStar(require("assert"));
37
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
6
38
  const ScriptParser_1 = require("../src/ScriptParser");
39
+ const fixtures_1 = require("./fixtures");
40
+ function getParser() {
41
+ return new ScriptParser_1.ScriptParser({ network: utxolib.networks.bitcoin });
42
+ }
7
43
  function testParseScript(type) {
8
44
  let tx;
9
45
  before('setup transaction', async function () {
10
- tx = await fixtures_1.getTransactionWithSpendType(utxolib.networks.testnet, {
46
+ tx = await (0, fixtures_1.getTransactionWithSpendType)(utxolib.networks.testnet, 'test/fixtures/parse/psbt', {
11
47
  scriptType: type,
12
48
  spendType: type === 'p2trMusig2' ? 'scriptPath' : undefined,
13
49
  fixtureType: 'psbtFullSigned',
14
50
  });
15
51
  });
16
- const parser = new ScriptParser_1.ScriptParser();
52
+ const parser = getParser();
17
53
  function parse(label, script) {
18
54
  return parser.node(label, undefined, [parser.parse(script)]);
19
55
  }
@@ -27,12 +63,12 @@ function testParseScript(type) {
27
63
  ...(input.witnessScript ? [parse('witnessScript', input.witnessScript)] : []),
28
64
  ];
29
65
  });
30
- const root = new ScriptParser_1.ScriptParser().node('inputScripts', undefined, nodes);
31
- const formatted = fixtures_1.formatTreeNoColor(root, { showAll: true });
32
- assert.strictEqual(formatted, await fixtures_1.getFixtureString(`test/fixtures/formatScript/${type}.txt`, formatted));
66
+ const root = getParser().node('inputScripts', undefined, nodes);
67
+ const formatted = (0, fixtures_1.formatTreeNoColor)(root, { showAll: true });
68
+ assert.strictEqual(formatted, await (0, fixtures_1.getFixtureString)(`test/fixtures/formatScript/${type}.txt`, formatted));
33
69
  });
34
70
  }
35
71
  utxolib.bitgo.outputScripts.scriptTypes2Of3.forEach((scriptType) => {
36
72
  testParseScript(scriptType);
37
73
  });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VTY3JpcHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L3BhcnNlU2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBQ2pDLGdEQUFnRDtBQUNoRCx5Q0FBNkc7QUFFN0csc0RBQW1EO0FBRW5ELFNBQVMsZUFBZSxDQUFDLElBQWdEO0lBQ3ZFLElBQUksRUFBaUIsQ0FBQztJQUN0QixNQUFNLENBQUMsbUJBQW1CLEVBQUUsS0FBSztRQUMvQixFQUFFLEdBQUcsTUFBTSxzQ0FBMkIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUMvRCxVQUFVLEVBQUUsSUFBSTtZQUNoQixTQUFTLEVBQUUsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzNELFdBQVcsRUFBRSxnQkFBZ0I7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFJLDJCQUFZLEVBQUUsQ0FBQztJQUVsQyxTQUFTLEtBQUssQ0FBQyxLQUFhLEVBQUUsTUFBYztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxFQUFFLENBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFFLEtBQUs7UUFDOUIsSUFBSSxFQUFFLENBQUMsV0FBVyxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFO1lBQzNELE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3BCO1FBRUQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3pELE9BQU87Z0JBQ0wsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMxRSxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDOUUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQUcsSUFBSSwyQkFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkUsTUFBTSxTQUFTLEdBQUcsNEJBQWlCLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFN0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsTUFBTSwyQkFBZ0IsQ0FBQyw4QkFBOEIsSUFBSSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM3RyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7SUFDakUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGZvcm1hdFRyZWVOb0NvbG9yLCBnZXRGaXh0dXJlU3RyaW5nLCBnZXRUcmFuc2FjdGlvbldpdGhTcGVuZFR5cGUsIFBhcnNlZEZpeHR1cmUgfSBmcm9tICcuL2ZpeHR1cmVzJztcbmltcG9ydCB7IFBhcnNlck5vZGUgfSBmcm9tICcuLi9zcmMvUGFyc2VyJztcbmltcG9ydCB7IFNjcmlwdFBhcnNlciB9IGZyb20gJy4uL3NyYy9TY3JpcHRQYXJzZXInO1xuXG5mdW5jdGlvbiB0ZXN0UGFyc2VTY3JpcHQodHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzKSB7XG4gIGxldCB0eDogUGFyc2VkRml4dHVyZTtcbiAgYmVmb3JlKCdzZXR1cCB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICB0eCA9IGF3YWl0IGdldFRyYW5zYWN0aW9uV2l0aFNwZW5kVHlwZSh1dHhvbGliLm5ldHdvcmtzLnRlc3RuZXQsIHtcbiAgICAgIHNjcmlwdFR5cGU6IHR5cGUsXG4gICAgICBzcGVuZFR5cGU6IHR5cGUgPT09ICdwMnRyTXVzaWcyJyA/ICdzY3JpcHRQYXRoJyA6IHVuZGVmaW5lZCxcbiAgICAgIGZpeHR1cmVUeXBlOiAncHNidEZ1bGxTaWduZWQnLFxuICAgIH0pO1xuICB9KTtcblxuICBjb25zdCBwYXJzZXIgPSBuZXcgU2NyaXB0UGFyc2VyKCk7XG5cbiAgZnVuY3Rpb24gcGFyc2UobGFiZWw6IHN0cmluZywgc2NyaXB0OiBCdWZmZXIpOiBQYXJzZXJOb2RlIHtcbiAgICByZXR1cm4gcGFyc2VyLm5vZGUobGFiZWwsIHVuZGVmaW5lZCwgW3BhcnNlci5wYXJzZShzY3JpcHQpXSk7XG4gIH1cblxuICBpdChgcGFyc2Ugc2NyaXB0ICR7dHlwZX1gLCBhc3luYyBmdW5jdGlvbiAodGhpczogTW9jaGEuQ29udGV4dCkge1xuICAgIGlmICh0eC50cmFuc2FjdGlvbiBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5za2lwKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZXMgPSB0eC50cmFuc2FjdGlvbi5kYXRhLmlucHV0cy5mbGF0TWFwKChpbnB1dCkgPT4ge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4uKGlucHV0LnJlZGVlbVNjcmlwdCA/IFtwYXJzZSgncmVkZWVtU2NyaXB0JywgaW5wdXQucmVkZWVtU2NyaXB0KV0gOiBbXSksXG4gICAgICAgIC4uLihpbnB1dC53aXRuZXNzU2NyaXB0ID8gW3BhcnNlKCd3aXRuZXNzU2NyaXB0JywgaW5wdXQud2l0bmVzc1NjcmlwdCldIDogW10pLFxuICAgICAgXTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJvb3QgPSBuZXcgU2NyaXB0UGFyc2VyKCkubm9kZSgnaW5wdXRTY3JpcHRzJywgdW5kZWZpbmVkLCBub2Rlcyk7XG5cbiAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRUcmVlTm9Db2xvcihyb290LCB7IHNob3dBbGw6IHRydWUgfSk7XG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZm9ybWF0dGVkLCBhd2FpdCBnZXRGaXh0dXJlU3RyaW5nKGB0ZXN0L2ZpeHR1cmVzL2Zvcm1hdFNjcmlwdC8ke3R5cGV9LnR4dGAsIGZvcm1hdHRlZCkpO1xuICB9KTtcbn1cblxudXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLnNjcmlwdFR5cGVzMk9mMy5mb3JFYWNoKChzY3JpcHRUeXBlKSA9PiB7XG4gIHRlc3RQYXJzZVNjcmlwdChzY3JpcHRUeXBlKTtcbn0pO1xuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VTY3JpcHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L3BhcnNlU2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBRWpDLDhEQUFnRDtBQUdoRCxzREFBbUQ7QUFFbkQseUNBQTZHO0FBRTdHLFNBQVMsU0FBUztJQUNoQixPQUFPLElBQUksMkJBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLElBQWdEO0lBQ3ZFLElBQUksRUFBaUIsQ0FBQztJQUN0QixNQUFNLENBQUMsbUJBQW1CLEVBQUUsS0FBSztRQUMvQixFQUFFLEdBQUcsTUFBTSxJQUFBLHNDQUEyQixFQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFO1lBQzNGLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFNBQVMsRUFBRSxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDM0QsV0FBVyxFQUFFLGdCQUFnQjtTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBRTNCLFNBQVMsS0FBSyxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELEVBQUUsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUUsS0FBSztRQUM5QixJQUFJLEVBQUUsQ0FBQyxXQUFXLFlBQVksT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM1RCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3pELE9BQU87Z0JBQ0wsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMxRSxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDOUUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQUcsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFaEUsTUFBTSxTQUFTLEdBQUcsSUFBQSw0QkFBaUIsRUFBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU3RCxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxNQUFNLElBQUEsMkJBQWdCLEVBQUMsOEJBQThCLElBQUksTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDN0csQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO0lBQ2pFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgUGFyc2VyTm9kZSB9IGZyb20gJy4uL3NyYy9QYXJzZXInO1xuaW1wb3J0IHsgU2NyaXB0UGFyc2VyIH0gZnJvbSAnLi4vc3JjL1NjcmlwdFBhcnNlcic7XG5cbmltcG9ydCB7IGZvcm1hdFRyZWVOb0NvbG9yLCBnZXRGaXh0dXJlU3RyaW5nLCBnZXRUcmFuc2FjdGlvbldpdGhTcGVuZFR5cGUsIFBhcnNlZEZpeHR1cmUgfSBmcm9tICcuL2ZpeHR1cmVzJztcblxuZnVuY3Rpb24gZ2V0UGFyc2VyKCk6IFNjcmlwdFBhcnNlciB7XG4gIHJldHVybiBuZXcgU2NyaXB0UGFyc2VyKHsgbmV0d29yazogdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luIH0pO1xufVxuXG5mdW5jdGlvbiB0ZXN0UGFyc2VTY3JpcHQodHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzKSB7XG4gIGxldCB0eDogUGFyc2VkRml4dHVyZTtcbiAgYmVmb3JlKCdzZXR1cCB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICB0eCA9IGF3YWl0IGdldFRyYW5zYWN0aW9uV2l0aFNwZW5kVHlwZSh1dHhvbGliLm5ldHdvcmtzLnRlc3RuZXQsICd0ZXN0L2ZpeHR1cmVzL3BhcnNlL3BzYnQnLCB7XG4gICAgICBzY3JpcHRUeXBlOiB0eXBlLFxuICAgICAgc3BlbmRUeXBlOiB0eXBlID09PSAncDJ0ck11c2lnMicgPyAnc2NyaXB0UGF0aCcgOiB1bmRlZmluZWQsXG4gICAgICBmaXh0dXJlVHlwZTogJ3BzYnRGdWxsU2lnbmVkJyxcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgcGFyc2VyID0gZ2V0UGFyc2VyKCk7XG5cbiAgZnVuY3Rpb24gcGFyc2UobGFiZWw6IHN0cmluZywgc2NyaXB0OiBCdWZmZXIpOiBQYXJzZXJOb2RlIHtcbiAgICByZXR1cm4gcGFyc2VyLm5vZGUobGFiZWwsIHVuZGVmaW5lZCwgW3BhcnNlci5wYXJzZShzY3JpcHQpXSk7XG4gIH1cblxuICBpdChgcGFyc2Ugc2NyaXB0ICR7dHlwZX1gLCBhc3luYyBmdW5jdGlvbiAodGhpczogTW9jaGEuQ29udGV4dCkge1xuICAgIGlmICh0eC50cmFuc2FjdGlvbiBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5za2lwKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZXMgPSB0eC50cmFuc2FjdGlvbi5kYXRhLmlucHV0cy5mbGF0TWFwKChpbnB1dCkgPT4ge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4uKGlucHV0LnJlZGVlbVNjcmlwdCA/IFtwYXJzZSgncmVkZWVtU2NyaXB0JywgaW5wdXQucmVkZWVtU2NyaXB0KV0gOiBbXSksXG4gICAgICAgIC4uLihpbnB1dC53aXRuZXNzU2NyaXB0ID8gW3BhcnNlKCd3aXRuZXNzU2NyaXB0JywgaW5wdXQud2l0bmVzc1NjcmlwdCldIDogW10pLFxuICAgICAgXTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJvb3QgPSBnZXRQYXJzZXIoKS5ub2RlKCdpbnB1dFNjcmlwdHMnLCB1bmRlZmluZWQsIG5vZGVzKTtcblxuICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFRyZWVOb0NvbG9yKHJvb3QsIHsgc2hvd0FsbDogdHJ1ZSB9KTtcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChmb3JtYXR0ZWQsIGF3YWl0IGdldEZpeHR1cmVTdHJpbmcoYHRlc3QvZml4dHVyZXMvZm9ybWF0U2NyaXB0LyR7dHlwZX0udHh0YCwgZm9ybWF0dGVkKSk7XG4gIH0pO1xufVxuXG51dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuc2NyaXB0VHlwZXMyT2YzLmZvckVhY2goKHNjcmlwdFR5cGUpID0+IHtcbiAgdGVzdFBhcnNlU2NyaXB0KHNjcmlwdFR5cGUpO1xufSk7XG4iXX0=
@@ -1,10 +1,46 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const yargs = require("yargs");
4
- const assert = require("assert");
5
- const utxolib = require("@bitgo-beta/utxo-lib");
6
- const fixtures_1 = require("./fixtures");
39
+ const assert_1 = __importDefault(require("assert"));
40
+ const yargs_1 = __importDefault(require("yargs"));
41
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
7
42
  const commands_1 = require("../src/commands");
43
+ const fixtures_1 = require("./fixtures");
8
44
  function getArgs({ showAll }) {
9
45
  return showAll ? ['--all'] : [];
10
46
  }
@@ -24,17 +60,18 @@ function getParams() {
24
60
  });
25
61
  }
26
62
  getParams().forEach(({ scriptType, spendType, fixtureType, showAll }) => {
27
- describe(`parse ${fixtureType} ${scriptType} ${spendType ? spendType : 'default'} spend [args=${getArgs({
28
- showAll,
29
- })}`, function () {
63
+ const args = getArgs({ showAll });
64
+ describe(`parse ${fixtureType} ${scriptType} ${spendType ? spendType : 'default'} spend [args=${args}]`, function () {
30
65
  function parse(tx, prevOutputs) {
31
- return commands_1.getTxParser(yargs.command(commands_1.cmdParseTx).parse([...getArgs({ showAll }), '--parseError=throw'])).parse(tx, {
66
+ return (0, commands_1.getTxParser)((0, yargs_1.default)([])
67
+ .command(commands_1.cmdParseTx)
68
+ .parse([...getArgs({ showAll }), '--parseError=throw'])).parse(tx, {
32
69
  prevOutputs,
33
70
  });
34
71
  }
35
72
  let fixture;
36
73
  before(async function () {
37
- fixture = await fixtures_1.getTransactionWithSpendType(utxolib.networks.testnet, {
74
+ fixture = await (0, fixtures_1.getTransactionWithSpendType)(utxolib.networks.testnet, 'test/fixtures/parse/psbt', {
38
75
  scriptType,
39
76
  spendType,
40
77
  fixtureType,
@@ -51,16 +88,16 @@ getParams().forEach(({ scriptType, spendType, fixtureType, showAll }) => {
51
88
  if (usePrevOuts && !fixture.prevOutputs) {
52
89
  this.skip();
53
90
  }
54
- const formatted = fixtures_1.formatTreeNoColor(parse(fixture.transaction, usePrevOuts ? fixture.prevOutputs : undefined), {
91
+ const formatted = (0, fixtures_1.formatTreeNoColor)(parse(fixture.transaction, usePrevOuts ? fixture.prevOutputs : undefined), {
55
92
  showAll,
56
93
  });
57
94
  const fixtureName = spendType ? `${scriptType}_${spendType}` : scriptType;
58
95
  const filename = [fixtureName, fixtureType, showAll ? 'all' : '', usePrevOuts ? 'prevOuts' : '']
59
96
  .filter((v) => v !== '')
60
97
  .join('_');
61
- assert.strictEqual(formatted, await fixtures_1.getFixtureString(`test/fixtures/formatTransaction/${filename}.txt`, formatted));
98
+ assert_1.default.strictEqual(formatted, await (0, fixtures_1.getFixtureString)(`test/fixtures/formatTransaction/${filename}.txt`, formatted));
62
99
  });
63
100
  });
64
101
  });
65
102
  });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Rlc3QvcGFyc2VUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLCtCQUErQjtBQUMvQixpQ0FBaUM7QUFDakMsZ0RBQWdEO0FBQ2hELHlDQUE2RztBQUU3Ryw4Q0FBMEQ7QUFVMUQsU0FBUyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQXdCO0lBQ2hELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDbEMsQ0FBQztBQUVELFNBQVMsU0FBUztJQUNoQixPQUFRLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDbEgsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN2QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQWdCLEVBQUU7Z0JBQ3RGLElBQUksVUFBVSxLQUFLLFlBQVksRUFBRTtvQkFDL0IsT0FBTzt3QkFDTCxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUU7d0JBQzFELEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRTtxQkFDOUQsQ0FBQztpQkFDSDtnQkFDRCxPQUFPLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN0RSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO0lBQ3RFLFFBQVEsQ0FBQyxTQUFTLFdBQVcsSUFBSSxVQUFVLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsZ0JBQWdCLE9BQU8sQ0FBQztRQUN0RyxPQUFPO0tBQ1IsQ0FBQyxFQUFFLEVBQUU7UUFDSixTQUFTLEtBQUssQ0FBQyxFQUFZLEVBQUUsV0FBd0M7WUFDbkUsT0FBTyxzQkFBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFRLENBQUMsQ0FBQyxLQUFLLENBQy9HLEVBQUUsRUFDRjtnQkFDRSxXQUFXO2FBQ1osQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksT0FBc0IsQ0FBQztRQUMzQixNQUFNLENBQUMsS0FBSztZQUNWLE9BQU8sR0FBRyxNQUFNLHNDQUEyQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUNwRSxVQUFVO2dCQUNWLFNBQVM7Z0JBQ1QsV0FBVzthQUNaLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUNYLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0IsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFO2dCQUN2QixLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDakQ7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3BDLEVBQUUsQ0FBQyx3QkFBd0IsV0FBVyxHQUFHLEVBQUUsS0FBSztnQkFDOUMsSUFBSSxXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO29CQUN2QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ2I7Z0JBQ0QsTUFBTSxTQUFTLEdBQUcsNEJBQWlCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDN0csT0FBTztpQkFDUixDQUFDLENBQUM7Z0JBQ0gsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO2dCQUMxRSxNQUFNLFFBQVEsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3FCQUM3RixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7cUJBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNLENBQUMsV0FBVyxDQUNoQixTQUFTLEVBQ1QsTUFBTSwyQkFBZ0IsQ0FBQyxtQ0FBbUMsUUFBUSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQ3JGLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG1vY2hhIGZyb20gJ21vY2hhJztcbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBmb3JtYXRUcmVlTm9Db2xvciwgZ2V0Rml4dHVyZVN0cmluZywgZ2V0VHJhbnNhY3Rpb25XaXRoU3BlbmRUeXBlLCBQYXJzZWRGaXh0dXJlIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5pbXBvcnQgeyBQYXJzZXJOb2RlIH0gZnJvbSAnLi4vc3JjL1BhcnNlcic7XG5pbXBvcnQgeyBjbWRQYXJzZVR4LCBnZXRUeFBhcnNlciB9IGZyb20gJy4uL3NyYy9jb21tYW5kcyc7XG5pbXBvcnQgeyBQYXJzZXJUeCB9IGZyb20gJy4uL3NyYy9QYXJzZXJUeCc7XG5cbnR5cGUgVGVzdFBhcmFtcyA9IHtcbiAgc2NyaXB0VHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzO1xuICBzcGVuZFR5cGU6ICdrZXlQYXRoJyB8ICdzY3JpcHRQYXRoJyB8IHVuZGVmaW5lZDtcbiAgZml4dHVyZVR5cGU6ICdwc2J0VW5zaWduZWQnIHwgJ3BzYnRIYWxmU2lnbmVkJyB8ICdwc2J0RnVsbFNpZ25lZCcgfCAnbmV0d29ya0Z1bGxTaWduZWQnO1xuICBzaG93QWxsOiBib29sZWFuO1xufTtcblxuZnVuY3Rpb24gZ2V0QXJncyh7IHNob3dBbGwgfTogeyBzaG93QWxsOiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBzaG93QWxsID8gWyctLWFsbCddIDogW107XG59XG5cbmZ1bmN0aW9uIGdldFBhcmFtcygpOiBUZXN0UGFyYW1zW10ge1xuICByZXR1cm4gKFsncHNidFVuc2lnbmVkJywgJ3BzYnRIYWxmU2lnbmVkJywgJ3BzYnRGdWxsU2lnbmVkJywgJ25ldHdvcmtGdWxsU2lnbmVkJ10gYXMgY29uc3QpLmZsYXRNYXAoKGZpeHR1cmVUeXBlKSA9PiB7XG4gICAgcmV0dXJuIFtmYWxzZSwgdHJ1ZV0uZmxhdE1hcCgoc2hvd0FsbCkgPT4ge1xuICAgICAgcmV0dXJuIHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjMuZmxhdE1hcCgoc2NyaXB0VHlwZSk6IFRlc3RQYXJhbXNbXSA9PiB7XG4gICAgICAgIGlmIChzY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMicpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBzY3JpcHRUeXBlLCBzcGVuZFR5cGU6ICdrZXlQYXRoJywgc2hvd0FsbCwgZml4dHVyZVR5cGUgfSxcbiAgICAgICAgICAgIHsgc2NyaXB0VHlwZSwgc3BlbmRUeXBlOiAnc2NyaXB0UGF0aCcsIHNob3dBbGwsIGZpeHR1cmVUeXBlIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3sgc2NyaXB0VHlwZSwgc3BlbmRUeXBlOiB1bmRlZmluZWQsIHNob3dBbGwsIGZpeHR1cmVUeXBlIH1dO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5nZXRQYXJhbXMoKS5mb3JFYWNoKCh7IHNjcmlwdFR5cGUsIHNwZW5kVHlwZSwgZml4dHVyZVR5cGUsIHNob3dBbGwgfSkgPT4ge1xuICBkZXNjcmliZShgcGFyc2UgJHtmaXh0dXJlVHlwZX0gJHtzY3JpcHRUeXBlfSAke3NwZW5kVHlwZSA/IHNwZW5kVHlwZSA6ICdkZWZhdWx0J30gc3BlbmQgW2FyZ3M9JHtnZXRBcmdzKHtcbiAgICBzaG93QWxsLFxuICB9KX1gLCBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gcGFyc2UodHg6IFBhcnNlclR4LCBwcmV2T3V0cHV0cz86IHV0eG9saWIuVHhPdXRwdXQ8YmlnaW50PltdKTogUGFyc2VyTm9kZSB7XG4gICAgICByZXR1cm4gZ2V0VHhQYXJzZXIoeWFyZ3MuY29tbWFuZChjbWRQYXJzZVR4KS5wYXJzZShbLi4uZ2V0QXJncyh7IHNob3dBbGwgfSksICctLXBhcnNlRXJyb3I9dGhyb3cnXSkgYXMgYW55KS5wYXJzZShcbiAgICAgICAgdHgsXG4gICAgICAgIHtcbiAgICAgICAgICBwcmV2T3V0cHV0cyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgZml4dHVyZTogUGFyc2VkRml4dHVyZTtcbiAgICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgZml4dHVyZSA9IGF3YWl0IGdldFRyYW5zYWN0aW9uV2l0aFNwZW5kVHlwZSh1dHhvbGliLm5ldHdvcmtzLnRlc3RuZXQsIHtcbiAgICAgICAgc2NyaXB0VHlwZSxcbiAgICAgICAgc3BlbmRUeXBlLFxuICAgICAgICBmaXh0dXJlVHlwZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoYHBhcnNlc2AsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHBhcnNlKGZpeHR1cmUudHJhbnNhY3Rpb24pO1xuICAgICAgaWYgKGZpeHR1cmUucHJldk91dHB1dHMpIHtcbiAgICAgICAgcGFyc2UoZml4dHVyZS50cmFuc2FjdGlvbiwgZml4dHVyZS5wcmV2T3V0cHV0cyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBbZmFsc2UsIHRydWVdLmZvckVhY2goKHVzZVByZXZPdXRzKSA9PiB7XG4gICAgICBpdChgZm9ybWF0cyBbdXNlUHJldk91dHM9JHt1c2VQcmV2T3V0c31dYCwgYXN5bmMgZnVuY3Rpb24gKHRoaXM6IG1vY2hhLkNvbnRleHQpIHtcbiAgICAgICAgaWYgKHVzZVByZXZPdXRzICYmICFmaXh0dXJlLnByZXZPdXRwdXRzKSB7XG4gICAgICAgICAgdGhpcy5za2lwKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0VHJlZU5vQ29sb3IocGFyc2UoZml4dHVyZS50cmFuc2FjdGlvbiwgdXNlUHJldk91dHMgPyBmaXh0dXJlLnByZXZPdXRwdXRzIDogdW5kZWZpbmVkKSwge1xuICAgICAgICAgIHNob3dBbGwsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBmaXh0dXJlTmFtZSA9IHNwZW5kVHlwZSA/IGAke3NjcmlwdFR5cGV9XyR7c3BlbmRUeXBlfWAgOiBzY3JpcHRUeXBlO1xuICAgICAgICBjb25zdCBmaWxlbmFtZSA9IFtmaXh0dXJlTmFtZSwgZml4dHVyZVR5cGUsIHNob3dBbGwgPyAnYWxsJyA6ICcnLCB1c2VQcmV2T3V0cyA/ICdwcmV2T3V0cycgOiAnJ11cbiAgICAgICAgICAuZmlsdGVyKCh2KSA9PiB2ICE9PSAnJylcbiAgICAgICAgICAuam9pbignXycpO1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICAgICAgZm9ybWF0dGVkLFxuICAgICAgICAgIGF3YWl0IGdldEZpeHR1cmVTdHJpbmcoYHRlc3QvZml4dHVyZXMvZm9ybWF0VHJhbnNhY3Rpb24vJHtmaWxlbmFtZX0udHh0YCwgZm9ybWF0dGVkKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Rlc3QvcGFyc2VUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUU1QixrREFBMEI7QUFFMUIsOERBQWdEO0FBSWhELDhDQUEwRDtBQUUxRCx5Q0FBNkc7QUFTN0csU0FBUyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQXdCO0lBQ2hELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDbEMsQ0FBQztBQUVELFNBQVMsU0FBUztJQUNoQixPQUFRLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDbEgsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN2QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQWdCLEVBQUU7Z0JBQ3RGLElBQUksVUFBVSxLQUFLLFlBQVksRUFBRSxDQUFDO29CQUNoQyxPQUFPO3dCQUNMLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRTt3QkFDMUQsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFO3FCQUM5RCxDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDdEUsQ0FBQyxD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QUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB5YXJncyBmcm9tICd5YXJncyc7XG5pbXBvcnQgKiBhcyBtb2NoYSBmcm9tICdtb2NoYSc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgUGFyc2VyTm9kZSB9IGZyb20gJy4uL3NyYy9QYXJzZXInO1xuaW1wb3J0IHsgUGFyc2VyVHggfSBmcm9tICcuLi9zcmMvUGFyc2VyVHgnO1xuaW1wb3J0IHsgY21kUGFyc2VUeCwgZ2V0VHhQYXJzZXIgfSBmcm9tICcuLi9zcmMvY29tbWFuZHMnO1xuXG5pbXBvcnQgeyBmb3JtYXRUcmVlTm9Db2xvciwgZ2V0Rml4dHVyZVN0cmluZywgZ2V0VHJhbnNhY3Rpb25XaXRoU3BlbmRUeXBlLCBQYXJzZWRGaXh0dXJlIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5cbnR5cGUgVGVzdFBhcmFtcyA9IHtcbiAgc2NyaXB0VHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzO1xuICBzcGVuZFR5cGU6ICdrZXlQYXRoJyB8ICdzY3JpcHRQYXRoJyB8IHVuZGVmaW5lZDtcbiAgZml4dHVyZVR5cGU6ICdwc2J0VW5zaWduZWQnIHwgJ3BzYnRIYWxmU2lnbmVkJyB8ICdwc2J0RnVsbFNpZ25lZCcgfCAnbmV0d29ya0Z1bGxTaWduZWQnO1xuICBzaG93QWxsOiBib29sZWFuO1xufTtcblxuZnVuY3Rpb24gZ2V0QXJncyh7IHNob3dBbGwgfTogeyBzaG93QWxsOiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBzaG93QWxsID8gWyctLWFsbCddIDogW107XG59XG5cbmZ1bmN0aW9uIGdldFBhcmFtcygpOiBUZXN0UGFyYW1zW10ge1xuICByZXR1cm4gKFsncHNidFVuc2lnbmVkJywgJ3BzYnRIYWxmU2lnbmVkJywgJ3BzYnRGdWxsU2lnbmVkJywgJ25ldHdvcmtGdWxsU2lnbmVkJ10gYXMgY29uc3QpLmZsYXRNYXAoKGZpeHR1cmVUeXBlKSA9PiB7XG4gICAgcmV0dXJuIFtmYWxzZSwgdHJ1ZV0uZmxhdE1hcCgoc2hvd0FsbCkgPT4ge1xuICAgICAgcmV0dXJuIHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjMuZmxhdE1hcCgoc2NyaXB0VHlwZSk6IFRlc3RQYXJhbXNbXSA9PiB7XG4gICAgICAgIGlmIChzY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMicpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBzY3JpcHRUeXBlLCBzcGVuZFR5cGU6ICdrZXlQYXRoJywgc2hvd0FsbCwgZml4dHVyZVR5cGUgfSxcbiAgICAgICAgICAgIHsgc2NyaXB0VHlwZSwgc3BlbmRUeXBlOiAnc2NyaXB0UGF0aCcsIHNob3dBbGwsIGZpeHR1cmVUeXBlIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3sgc2NyaXB0VHlwZSwgc3BlbmRUeXBlOiB1bmRlZmluZWQsIHNob3dBbGwsIGZpeHR1cmVUeXBlIH1dO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5nZXRQYXJhbXMoKS5mb3JFYWNoKCh7IHNjcmlwdFR5cGUsIHNwZW5kVHlwZSwgZml4dHVyZVR5cGUsIHNob3dBbGwgfSkgPT4ge1xuICBjb25zdCBhcmdzID0gZ2V0QXJncyh7IHNob3dBbGwgfSk7XG4gIGRlc2NyaWJlKGBwYXJzZSAke2ZpeHR1cmVUeXBlfSAke3NjcmlwdFR5cGV9ICR7c3BlbmRUeXBlID8gc3BlbmRUeXBlIDogJ2RlZmF1bHQnfSBzcGVuZCBbYXJncz0ke2FyZ3N9XWAsIGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBwYXJzZSh0eDogUGFyc2VyVHgsIHByZXZPdXRwdXRzPzogdXR4b2xpYi5UeE91dHB1dDxiaWdpbnQ+W10pOiBQYXJzZXJOb2RlIHtcbiAgICAgIHJldHVybiBnZXRUeFBhcnNlcihcbiAgICAgICAgeWFyZ3MoW10pXG4gICAgICAgICAgLmNvbW1hbmQoY21kUGFyc2VUeClcbiAgICAgICAgICAucGFyc2UoWy4uLmdldEFyZ3MoeyBzaG93QWxsIH0pLCAnLS1wYXJzZUVycm9yPXRocm93J10pIGFzIGFueVxuICAgICAgKS5wYXJzZSh0eCwge1xuICAgICAgICBwcmV2T3V0cHV0cyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCBmaXh0dXJlOiBQYXJzZWRGaXh0dXJlO1xuICAgIGJlZm9yZShhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBmaXh0dXJlID0gYXdhaXQgZ2V0VHJhbnNhY3Rpb25XaXRoU3BlbmRUeXBlKHV0eG9saWIubmV0d29ya3MudGVzdG5ldCwgJ3Rlc3QvZml4dHVyZXMvcGFyc2UvcHNidCcsIHtcbiAgICAgICAgc2NyaXB0VHlwZSxcbiAgICAgICAgc3BlbmRUeXBlLFxuICAgICAgICBmaXh0dXJlVHlwZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoYHBhcnNlc2AsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHBhcnNlKGZpeHR1cmUudHJhbnNhY3Rpb24pO1xuICAgICAgaWYgKGZpeHR1cmUucHJldk91dHB1dHMpIHtcbiAgICAgICAgcGFyc2UoZml4dHVyZS50cmFuc2FjdGlvbiwgZml4dHVyZS5wcmV2T3V0cHV0cyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBbZmFsc2UsIHRydWVdLmZvckVhY2goKHVzZVByZXZPdXRzKSA9PiB7XG4gICAgICBpdChgZm9ybWF0cyBbdXNlUHJldk91dHM9JHt1c2VQcmV2T3V0c31dYCwgYXN5bmMgZnVuY3Rpb24gKHRoaXM6IG1vY2hhLkNvbnRleHQpIHtcbiAgICAgICAgaWYgKHVzZVByZXZPdXRzICYmICFmaXh0dXJlLnByZXZPdXRwdXRzKSB7XG4gICAgICAgICAgdGhpcy5za2lwKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0VHJlZU5vQ29sb3IocGFyc2UoZml4dHVyZS50cmFuc2FjdGlvbiwgdXNlUHJldk91dHMgPyBmaXh0dXJlLnByZXZPdXRwdXRzIDogdW5kZWZpbmVkKSwge1xuICAgICAgICAgIHNob3dBbGwsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBmaXh0dXJlTmFtZSA9IHNwZW5kVHlwZSA/IGAke3NjcmlwdFR5cGV9XyR7c3BlbmRUeXBlfWAgOiBzY3JpcHRUeXBlO1xuICAgICAgICBjb25zdCBmaWxlbmFtZSA9IFtmaXh0dXJlTmFtZSwgZml4dHVyZVR5cGUsIHNob3dBbGwgPyAnYWxsJyA6ICcnLCB1c2VQcmV2T3V0cyA/ICdwcmV2T3V0cycgOiAnJ11cbiAgICAgICAgICAuZmlsdGVyKCh2KSA9PiB2ICE9PSAnJylcbiAgICAgICAgICAuam9pbignXycpO1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICAgICAgZm9ybWF0dGVkLFxuICAgICAgICAgIGF3YWl0IGdldEZpeHR1cmVTdHJpbmcoYHRlc3QvZml4dHVyZXMvZm9ybWF0VHJhbnNhY3Rpb24vJHtmaWxlbmFtZX0udHh0YCwgZm9ybWF0dGVkKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=